diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py
index 828cb998..9c0ba004 100644
--- a/web/pgadmin/tools/sqleditor/__init__.py
+++ b/web/pgadmin/tools/sqleditor/__init__.py
@@ -73,6 +73,35 @@ class SqlEditorModule(PgAdminModule):
     def get_panels(self):
         return []
 
+    def get_exposed_url_endpoints(self):
+        """
+        Returns:
+            list: URL endpoints for sqleditor module
+        """
+        return [
+            'sqleditor.view_data_start',
+            'sqleditor.query_tool_start',
+            'sqleditor.query_tool_preferences',
+            'sqleditor.get_columns',
+            'sqleditor.poll',
+            'sqleditor.fetch_types',
+            'sqleditor.save',
+            'sqleditor.get_filter',
+            'sqleditor.apply_filter',
+            'sqleditor.inclusive_filter',
+            'sqleditor.exclusive_filter',
+            'sqleditor.remove_filter',
+            'sqleditor.set_limit',
+            'sqleditor.cancel_transaction',
+            'sqleditor.get_object_name',
+            'sqleditor.auto_commit',
+            'sqleditor.auto_rollback',
+            'sqleditor.autocomplete',
+            'sqleditor.load_file',
+            'sqleditor.save_file',
+            'sqleditor.query_tool_download'
+        ]
+
     def register_preferences(self):
         self.info_notifier_timeout = self.preference.register(
             'display', 'info_notifier_timeout',
@@ -216,7 +245,10 @@ def check_transaction_status(trans_id):
                None, trans_obj, session_obj
 
 
-@blueprint.route('/view_data/start/<int:trans_id>', methods=["GET"])
+@blueprint.route(
+    '/view_data/start/<int:trans_id>',
+     methods=["GET"], endpoint='view_data_start'
+)
 @login_required
 def start_view_data(trans_id):
     """
@@ -273,7 +305,10 @@ def start_view_data(trans_id):
     )
 
 
-@blueprint.route('/query_tool/start/<int:trans_id>', methods=["PUT", "POST"])
+@blueprint.route(
+    '/query_tool/start/<int:trans_id>',
+    methods=["PUT", "POST"], endpoint='query_tool_start'
+)
 @login_required
 def start_query_tool(trans_id):
     """
@@ -375,7 +410,10 @@ def start_query_tool(trans_id):
     )
 
 
-@blueprint.route('/query_tool/preferences/<int:trans_id>', methods=["GET", "PUT"])
+@blueprint.route(
+    '/query_tool/preferences/<int:trans_id>',
+    methods=["GET", "PUT"], endpoint='query_tool_preferences'
+)
 @login_required
 def preferences(trans_id):
     """
@@ -429,7 +467,9 @@ def preferences(trans_id):
         return success_return()
 
 
-@blueprint.route('/columns/<int:trans_id>', methods=["GET"])
+@blueprint.route(
+    '/columns/<int:trans_id>', methods=["GET"], endpoint='get_columns'
+)
 @login_required
 def get_columns(trans_id):
     """
@@ -488,7 +528,7 @@ def get_columns(trans_id):
                                     'primary_keys': primary_keys})
 
 
-@blueprint.route('/poll/<int:trans_id>', methods=["GET"])
+@blueprint.route('/poll/<int:trans_id>', methods=["GET"], endpoint='poll')
 @login_required
 def poll(trans_id):
     """
@@ -564,7 +604,9 @@ def poll(trans_id):
     )
 
 
-@blueprint.route('/fetch/types/<int:trans_id>', methods=["GET"])
+@blueprint.route(
+    '/fetch/types/<int:trans_id>', methods=["GET"], endpoint='fetch_types'
+)
 @login_required
 def fetch_pg_types(trans_id):
     """
@@ -606,7 +648,9 @@ def fetch_pg_types(trans_id):
     return make_json_response(data={'status': status, 'result': res})
 
 
-@blueprint.route('/save/<int:trans_id>', methods=["PUT", "POST"])
+@blueprint.route(
+    '/save/<int:trans_id>', methods=["PUT", "POST"], endpoint='save'
+)
 @login_required
 def save(trans_id):
     """
@@ -652,7 +696,10 @@ def save(trans_id):
     )
 
 
-@blueprint.route('/filter/get/<int:trans_id>', methods=["GET"])
+@blueprint.route(
+    '/filter/get/<int:trans_id>',
+    methods=["GET"], endpoint='get_filter'
+)
 @login_required
 def get_filter(trans_id):
     """
@@ -675,7 +722,10 @@ def get_filter(trans_id):
     return make_json_response(data={'status': status, 'result': res})
 
 
-@blueprint.route('/filter/apply/<int:trans_id>', methods=["PUT", "POST"])
+@blueprint.route(
+    '/filter/apply/<int:trans_id>',
+    methods=["PUT", "POST"], endpoint='apply_filter'
+)
 @login_required
 def apply_filter(trans_id):
     """
@@ -707,7 +757,10 @@ def apply_filter(trans_id):
     return make_json_response(data={'status': status, 'result': res})
 
 
-@blueprint.route('/filter/inclusive/<int:trans_id>', methods=["PUT", "POST"])
+@blueprint.route(
+    '/filter/inclusive/<int:trans_id>',
+    methods=["PUT", "POST"], endpoint='inclusive_filter'
+)
 @login_required
 def append_filter_inclusive(trans_id):
     """
@@ -750,7 +803,10 @@ def append_filter_inclusive(trans_id):
     return make_json_response(data={'status': status, 'result': res})
 
 
-@blueprint.route('/filter/exclusive/<int:trans_id>', methods=["PUT", "POST"])
+@blueprint.route(
+    '/filter/exclusive/<int:trans_id>',
+    methods=["PUT", "POST"], endpoint='exclusive_filter'
+)
 @login_required
 def append_filter_exclusive(trans_id):
     """
@@ -794,7 +850,10 @@ def append_filter_exclusive(trans_id):
     return make_json_response(data={'status': status, 'result': res})
 
 
-@blueprint.route('/filter/remove/<int:trans_id>', methods=["PUT", "POST"])
+@blueprint.route(
+    '/filter/remove/<int:trans_id>',
+    methods=["PUT", "POST"], endpoint='remove_filter'
+)
 @login_required
 def remove_filter(trans_id):
     """
@@ -825,7 +884,9 @@ def remove_filter(trans_id):
     return make_json_response(data={'status': status, 'result': res})
 
 
-@blueprint.route('/limit/<int:trans_id>', methods=["PUT", "POST"])
+@blueprint.route(
+    '/limit/<int:trans_id>', methods=["PUT", "POST"], endpoint='set_limit'
+)
 @login_required
 def set_limit(trans_id):
     """
@@ -860,7 +921,10 @@ def set_limit(trans_id):
     return make_json_response(data={'status': status, 'result': res})
 
 
-@blueprint.route('/cancel/<int:trans_id>', methods=["PUT", "POST"])
+@blueprint.route(
+    '/cancel/<int:trans_id>',
+    methods=["PUT", "POST"], endpoint='cancel_transaction'
+)
 @login_required
 def cancel_transaction(trans_id):
     """
@@ -925,7 +989,10 @@ def cancel_transaction(trans_id):
     )
 
 
-@blueprint.route('/object/get/<int:trans_id>', methods=["GET"])
+@blueprint.route(
+    '/object/get/<int:trans_id>',
+    methods=["GET"], endpoint='get_object_name'
+)
 @login_required
 def get_object_name(trans_id):
     """
@@ -948,7 +1015,10 @@ def get_object_name(trans_id):
     return make_json_response(data={'status': status, 'result': res})
 
 
-@blueprint.route('/auto_commit/<int:trans_id>', methods=["PUT", "POST"])
+@blueprint.route(
+    '/auto_commit/<int:trans_id>',
+    methods=["PUT", "POST"], endpoint='auto_commit'
+)
 @login_required
 def set_auto_commit(trans_id):
     """
@@ -986,7 +1056,10 @@ def set_auto_commit(trans_id):
     return make_json_response(data={'status': status, 'result': res})
 
 
-@blueprint.route('/auto_rollback/<int:trans_id>', methods=["PUT", "POST"])
+@blueprint.route(
+    '/auto_rollback/<int:trans_id>',
+    methods=["PUT", "POST"], endpoint='auto_rollback'
+)
 @login_required
 def set_auto_rollback(trans_id):
     """
@@ -1024,7 +1097,10 @@ def set_auto_rollback(trans_id):
     return make_json_response(data={'status': status, 'result': res})
 
 
-@blueprint.route('/autocomplete/<int:trans_id>', methods=["PUT", "POST"])
+@blueprint.route(
+    '/autocomplete/<int:trans_id>',
+    methods=["PUT", "POST"], endpoint='autocomplete'
+)
 @login_required
 def auto_complete(trans_id):
     """
@@ -1232,7 +1308,7 @@ def is_begin_required(query):
     return True
 
 
-@blueprint.route('/load_file/', methods=["PUT", "POST"])
+@blueprint.route('/load_file/', methods=["PUT", "POST"], endpoint='load_file')
 @login_required
 def load_file():
     """
@@ -1282,7 +1358,7 @@ def load_file():
     )
 
 
-@blueprint.route('/save_file/', methods=["PUT", "POST"])
+@blueprint.route('/save_file/', methods=["PUT", "POST"], endpoint='save_file')
 @login_required
 def save_file():
     """
@@ -1342,7 +1418,11 @@ def save_file():
     )
 
 
-@blueprint.route('/query_tool/download/<int:trans_id>', methods=["GET"])
+@blueprint.route(
+    '/query_tool/download/<int:trans_id>',
+    methods=["GET"],
+    endpoint='query_tool_download'
+)
 @login_required
 def start_query_download_tool(trans_id):
     sync_conn = None
diff --git a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
index e6c97ec4..cac2e550 100644
--- a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
+++ b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
@@ -1,6 +1,6 @@
 define([
-    'jquery', 'underscore', 'underscore.string', 'alertify', 'pgadmin',
-    'backbone', 'backgrid', 'codemirror', 'pgadmin.misc.explain',
+    'sources/gettext','sources/url_for', 'jquery', 'underscore', 'underscore.string', 'alertify',
+    'pgadmin', 'backbone', 'backgrid', 'codemirror', 'pgadmin.misc.explain',
     'sources/selection/grid_selector',
     'sources/selection/active_cell_capture',
     'sources/selection/clipboard',
@@ -9,8 +9,8 @@ define([
     'sources/slickgrid/event_handlers/handle_query_output_keyboard_event',
     'sources/selection/xcell_selection_model',
     'sources/selection/set_staged_rows',
-    'sources/gettext',
     'sources/sqleditor_utils',
+
     'sources/generated/history',
     'sources/generated/reactComponents',
 
@@ -25,13 +25,14 @@ define([
     'codemirror/addon/search/search',
     'codemirror/addon/search/searchcursor',
     'codemirror/addon/search/jump-to-line',
+
     'backgrid.sizeable.columns',
     'slick.pgadmin.formatters',
     'slick.pgadmin.editors',
 ], function(
-  $, _, S, alertify, pgAdmin, Backbone, Backgrid, CodeMirror,
+  gettext, url_for, $, _, S, alertify, pgAdmin, Backbone, Backgrid, CodeMirror,
   pgExplain, GridSelector, ActiveCellCapture, clipboard, copyData, RangeSelectionHelper, handleQueryOutputKeyboardEvent,
-    XCellSelectionModel, setStagedRows, gettext, SqlEditorUtils, HistoryBundle, reactComponents
+    XCellSelectionModel, setStagedRows,  SqlEditorUtils, HistoryBundle, reactComponents
 ) {
     /* Return back, this has been called more than once */
     if (pgAdmin.SqlEditor)
@@ -108,7 +109,6 @@ define([
           filter = self.$el.find('#sql_filter');
 
         $('.editor-title').text(_.unescape(self.editor_title));
-
         self.filter_obj = CodeMirror.fromTextArea(filter.get(0), {
             lineNumbers: true,
             matchBrackets: true,
@@ -132,7 +132,7 @@ define([
           '#editor-panel', {
           allowContextMenu: false,
           allowCollapse: false,
-          themePath: '{{ url_for("static", filename="css") }}',
+          themePath: url_for('static', {'filename': 'css'}),
           theme: 'webcabin.overrides.css'
         });
 
@@ -288,8 +288,7 @@ define([
               ctx = {
                 editor: editor,
                 // URL for auto-complete
-                url: "{{ url_for('sqleditor.index') }}" + "autocomplete/" +
-                  self.transId,
+                url: url_for('sqleditor.autocomplete', {'trans_id': self.transId}),
                 data: data,
                 // Get the line number in the cursor position
                 current_line: cur.line,
@@ -534,7 +533,8 @@ define([
           collection = [];
         }
 
-        var grid_columns = [];
+        var grid_columns = [],
+          table_name;
         var column_size = self.handler['col_size'],
           query = self.handler.query,
           // Extract table name from query
@@ -874,7 +874,7 @@ define([
         if (self.history_grid) {
           self.history_grid.remove();
         }
-        
+
         self.history_collection = new HistoryBundle.historyCollection([]);
 
         let queryHistoryElement = reactComponents.React.createElement(
@@ -1517,7 +1517,7 @@ define([
           );
 
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "view_data/start/" + self.transId,
+            url: url_for('sqleditor.view_data_start', {'trans_id': self.transId}),
             method: 'GET',
             success: function(res) {
               if (res.data.status) {
@@ -1588,7 +1588,7 @@ define([
           // or use the columns data stored locally from previous call?
           if (self.FETCH_COLUMNS_FROM_SERVER) {
             $.ajax({
-              url: "{{ url_for('sqleditor.index') }}" + "columns/" + self.transId,
+              url: url_for('sqleditor.get_columns', {'trans_id': self.transId}),
               method: 'GET',
               success: function(res) {
                 poll_result.colinfo = res.data.columns;
@@ -1660,7 +1660,7 @@ define([
           setTimeout(
             function() {
               $.ajax({
-                url: "{{ url_for('sqleditor.index') }}" + "poll/" + self.transId,
+                url: url_for('sqleditor.poll', {'trans_id': self.transId}),
                 method: 'GET',
                 success: function(res) {
                   if (res.data.status === 'Success') {
@@ -1863,7 +1863,7 @@ define([
 
           // Make ajax call to fetch the pg types to map numeric data type
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "fetch/types/" + self.transId,
+            url: url_for('sqleditor.fetch_types', {'trans_id': self.transId}),
             method: 'GET',
             success: function(res) {
               if (res.data.status) {
@@ -1888,7 +1888,9 @@ define([
                   // To show column label and data type in multiline,
                   // The elements should be put inside the div.
                   // Create column label and type.
-                  var col_type = column_label = '';
+                  var col_type = '',
+                    column_label = '',
+                    col_cell;
                   var type = pg_types[c.type_code] ?
                                pg_types[c.type_code][0] :
                                // This is the case where user might
@@ -2020,7 +2022,8 @@ define([
           var self = this;
 
           // Calculate the difference in milliseconds
-          var difference_ms = miliseconds = end_time.getTime() - start_time.getTime();
+          var difference_ms, miliseconds;
+          difference_ms = miliseconds = end_time.getTime() - start_time.getTime();
           //take out milliseconds
           difference_ms = difference_ms/1000;
           var seconds = Math.floor(difference_ms % 60);
@@ -2191,7 +2194,7 @@ define([
 
             // Make ajax call to save the data
             $.ajax({
-              url: "{{ url_for('sqleditor.index') }}" + "save/" + self.transId,
+              url: url_for('sqleditor.save', {'trans_id': self.transId}),
               method: 'POST',
               contentType: "application/json",
               data: JSON.stringify(req_data),
@@ -2419,7 +2422,7 @@ define([
 
           // Make ajax call to load the data from file
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "load_file/",
+            url: url_for('sqleditor.load_file'),
             method: 'POST',
             contentType: "application/json",
             data: JSON.stringify(data),
@@ -2464,7 +2467,7 @@ define([
 
           // Make ajax call to save the data to file
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "save_file/",
+            url: url_for('sqleditor.save_file'),
             method: 'POST',
             contentType: "application/json",
             data: JSON.stringify(data),
@@ -2584,7 +2587,7 @@ define([
             gettext("Loading the existing filter options...")
           );
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "filter/get/" + self.transId,
+            url: url_for('sqleditor.get_filter', {'trans_id': self.transId}),
             method: 'GET',
             success: function(res) {
               self.trigger('pgadmin-sqleditor:loading-icon:hide');
@@ -2656,7 +2659,7 @@ define([
 
           // Make ajax call to include the filter by selection
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "filter/inclusive/" + self.transId,
+            url: url_for('sqleditor.inclusive_filter', {'trans_id': self.transId}),
             method: 'POST',
             contentType: "application/json",
             data: JSON.stringify(data),
@@ -2726,7 +2729,7 @@ define([
 
           // Make ajax call to exclude the filter by selection.
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "filter/exclusive/" + self.transId,
+            url: url_for('sqleditor.exclusive_filter', {'trans_id': self.transId}),
             method: 'POST',
             contentType: "application/json",
             data: JSON.stringify(data),
@@ -2779,7 +2782,7 @@ define([
 
           // Make ajax call to exclude the filter by selection.
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "filter/remove/" + self.transId,
+            url: url_for('sqleditor.remove_filter', {'trans_id': self.transId}),
             method: 'POST',
             success: function(res) {
               self.trigger('pgadmin-sqleditor:loading-icon:hide');
@@ -2830,7 +2833,7 @@ define([
 
           // Make ajax call to include the filter by selection
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "filter/apply/" + self.transId,
+            url: url_for('sqleditor.apply_filter', {'trans_id': self.transId}),
             method: 'POST',
             contentType: "application/json",
             data: JSON.stringify(sql),
@@ -2953,7 +2956,7 @@ define([
           );
           // Make ajax call to change the limit
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "limit/" + self.transId,
+            url: url_for('sqleditor.set_limit', {'trans_id': self.transId}),
             method: 'POST',
             contentType: "application/json",
             data: JSON.stringify(limit),
@@ -3041,7 +3044,7 @@ define([
           $("#btn-cancel-query").prop('disabled', false);
 
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "query_tool/start/" + self.transId,
+            url: url_for('sqleditor.query_tool_start', {'trans_id': self.transId}),
             method: 'POST',
             contentType: "application/json",
             data: JSON.stringify(sql),
@@ -3167,7 +3170,7 @@ define([
 
           $("#btn-cancel-query").prop('disabled', true);
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "cancel/" + self.transId,
+            url: url_for('sqleditor.cancel_transaction', {'trans_id': self.transId}),
             method: 'POST',
             contentType: "application/json",
             success: function(res) {
@@ -3218,7 +3221,7 @@ define([
            */
           if (!self.is_query_tool) {
             $.ajax({
-              url: "{{ url_for('sqleditor.index') }}" + "object/get/" + self.transId,
+              url: url_for('sqleditor.get_object_name', {'trans_id': self.transId}),
               method: 'GET',
               success: function(res) {
                 if (res.data.status) {
@@ -3252,7 +3255,7 @@ define([
         _trigger_csv_download: function(query, filename) {
           var self = this,
             link = $(this.container).find("#download-csv"),
-            url = "{{ url_for('sqleditor.index') }}" + "query_tool/download/" + self.transId;
+            url = url_for('sqleditor.query_tool_download', {'trans_id': self.transId});
 
           url +="?" + $.param({query:query, filename:filename});
           link.attr("src", url);
@@ -3271,7 +3274,7 @@ define([
 
           // Make ajax call to change the limit
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "auto_rollback/" + self.transId,
+            url: url_for('sqleditor.auto_rollback', {'trans_id': self.transId}),
             method: 'POST',
             contentType: "application/json",
             data: JSON.stringify(auto_rollback),
@@ -3310,7 +3313,7 @@ define([
 
           // Make ajax call to change the limit
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "auto_commit/" + self.transId,
+            url: url_for('sqleditor.auto_commit', {'trans_id': self.transId}),
             method: 'POST',
             contentType: "application/json",
             data: JSON.stringify(auto_commit),
@@ -3379,7 +3382,7 @@ define([
           };
 
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "query_tool/preferences/" + self.transId ,
+            url: url_for('sqleditor.query_tool_preferences', {'trans_id': self.transId}),
             method: 'PUT',
             contentType: "application/json",
             data: JSON.stringify(data),
@@ -3417,7 +3420,7 @@ define([
           };
 
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "query_tool/preferences/" + self.transId ,
+            url: url_for('sqleditor.query_tool_preferences', {'trans_id': self.transId}),
             method: 'PUT',
             contentType: "application/json",
             data: JSON.stringify(data),
@@ -3454,7 +3457,7 @@ define([
           };
 
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "query_tool/preferences/" + self.transId ,
+            url: url_for('sqleditor.query_tool_preferences', {'trans_id': self.transId}),
             method: 'PUT',
             contentType: "application/json",
             data: JSON.stringify(data),
@@ -3490,7 +3493,7 @@ define([
           };
 
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "query_tool/preferences/" + self.transId ,
+            url: url_for('sqleditor.query_tool_preferences', {'trans_id': self.transId}),
             method: 'PUT',
             contentType: "application/json",
             data: JSON.stringify(data),
@@ -3564,7 +3567,7 @@ define([
               };
 
           $.ajax({
-            url: "{{ url_for('sqleditor.index') }}" + "query_tool/preferences/" + self.transId ,
+            url: url_for('sqleditor.query_tool_preferences', {'trans_id': self.transId}),
             method: 'GET',
             success: function(res) {
               if (res.data) {
