diff --git a/dashboardv2/public/js/templates/audit/AuditTableLayoutView_tmpl.html b/dashboardv2/public/js/templates/audit/AuditTableLayoutView_tmpl.html
index 2bf3880..533f596 100644
--- a/dashboardv2/public/js/templates/audit/AuditTableLayoutView_tmpl.html
+++ b/dashboardv2/public/js/templates/audit/AuditTableLayoutView_tmpl.html
@@ -23,10 +23,10 @@
     <div id="r_auditTableLayoutView"></div>
     <ul class="pager">
         <li>
-            <button data-id="previousAuditData">Previous</button>
+            <button class="btn" data-id="previousAuditData">Previous</button>
         </li>
         <li>
-            <button data-id="nextAuditData">Next</button>
+            <button class="btn" data-id="nextAuditData">Next</button>
         </li>
     </ul>
 </div>
diff --git a/dashboardv2/public/js/templates/search/SearchResultLayoutView_tmpl.html b/dashboardv2/public/js/templates/search/SearchResultLayoutView_tmpl.html
index e3b3cc9..8e860d8 100644
--- a/dashboardv2/public/js/templates/search/SearchResultLayoutView_tmpl.html
+++ b/dashboardv2/public/js/templates/search/SearchResultLayoutView_tmpl.html
@@ -19,5 +19,18 @@
         <i class="fa fa-refresh fa-spin-custom"></i>
     </div>
     <div class="ellipsis"><span class="searchResult" style=" font-size: 16px;"></span></div>
-    <div id="r_searchResultTableLayoutView" class="searchTable"></div>
+    <div class="searchTable">
+        <div id="r_searchResultTableLayoutView">
+        </div>
+        <div data-id="paginationDiv" style="display:none">
+            <ul class="pager">
+                <li>
+                    <button class="btn" data-id="previousData" disabled=true>Previous</button>
+                </li>
+                <li>
+                    <button class="btn" data-id="nextData">Next</button>
+                </li>
+            </ul>
+        </div>
+    </div>
 </div>
diff --git a/dashboardv2/public/js/views/audit/AuditTableLayoutView.js b/dashboardv2/public/js/views/audit/AuditTableLayoutView.js
index 23cc50d..7e5216d 100644
--- a/dashboardv2/public/js/views/audit/AuditTableLayoutView.js
+++ b/dashboardv2/public/js/views/audit/AuditTableLayoutView.js
@@ -101,12 +101,12 @@
                         that.$('.auditTable').show();
                         options.previous.attr('disabled', true);
                         if (that.entityCollection.models.length <= 1) {
-                            that.pervOld.pop();
                             options.next.attr('disabled', true);
                         }
                         if (that.entityCollection.models.length == 1 && that.next == that.entityCollection.last().get('eventKey')) {
                             options.next.attr('disabled', true);
                             options.previous.removeAttr("disabled");
+                            that.entityCollection.reset();
                         } else {
                             if (that.entityCollection.models.length > 0) {
                                 that.next = that.entityCollection.last().get('eventKey');
diff --git a/dashboardv2/public/js/views/search/SearchResultLayoutView.js b/dashboardv2/public/js/views/search/SearchResultLayoutView.js
index eb63420..b30de40 100644
--- a/dashboardv2/public/js/views/search/SearchResultLayoutView.js
+++ b/dashboardv2/public/js/views/search/SearchResultLayoutView.js
@@ -50,7 +50,10 @@
                 addTag: '[data-id="addTag"]',
                 addTerm: '[data-id="addTerm"]',
                 showMoreLess: '[data-id="showMoreLess"]',
-                showMoreLessTerm: '[data-id="showMoreLessTerm"]'
+                showMoreLessTerm: '[data-id="showMoreLessTerm"]',
+                paginationDiv: '[data-id="paginationDiv"]',
+                previousData: "[data-id='previousData']",
+                nextData: "[data-id='nextData']"
             },
 
             /** ui events hash */
@@ -97,6 +100,8 @@
                         $(e.currentTarget).find('span').text('Show less');
                     }
                 };
+                events["click " + this.ui.nextData] = "onClicknextData";
+                events["click " + this.ui.previousData] = "onClickpreviousData";
                 return events;
             },
             /**
@@ -105,15 +110,22 @@
              */
             initialize: function(options) {
                 _.extend(this, _.pick(options, 'globalVent', 'vent', 'value'));
+                var pagination = "";
                 this.entityModel = new VEntity();
                 this.searchCollection = new VSearchList();
+                this.limit = 25;
                 this.fetchList = 0;
+                if (options.value.searchType == "dsl") {
+                    pagination = false;
+                } else {
+                    pagination = true;
+                }
                 this.commonTableOptions = {
                     collection: this.searchCollection,
                     includeFilter: false,
-                    includePagination: true,
+                    includePagination: pagination,
                     includePageSize: false,
-                    includeFooterRecords: true,
+                    includeFooterRecords: false,
                     includeSizeAbleColumns: false,
                     gridOpts: {
                         emptyText: 'No Record found!',
@@ -162,7 +174,6 @@
                 }, this);
             },
             onRender: function() {
-                //this.renderTableLayoutView();
                 var value = {},
                     that = this;
                 if (this.value) {
@@ -171,7 +182,6 @@
                     value = {
                         'query': '',
                         'searchType': 'fulltext'
-
                     };
                 }
                 this.fetchCollection(value);
@@ -193,14 +203,22 @@
                 if (Globals.searchApiCallRef) {
                     Globals.searchApiCallRef.abort();
                 }
+                $.extend(this.searchCollection.queryParams, { limit: this.limit });
                 if (value) {
                     if (value.searchType) {
                         this.searchCollection.url = "/api/atlas/discovery/search/" + value.searchType;
+                        if (value.searchType === "dsl") {
+                            $.extend(this.searchCollection.queryParams, { limit: this.limit });
+                            this.offset = 0;
+                        }
                     }
                     _.extend(this.searchCollection.queryParams, { 'query': value.query });
                 }
                 Globals.searchApiCallRef = this.searchCollection.fetch({
                     success: function() {
+                        if (that.searchCollection.length === 0) {
+                            that.ui.nextData.attr('disabled', true);
+                        }
                         Globals.searchApiCallRef = undefined;
                         if (that.searchCollection.toJSON().length == 0) {
                             that.checkTableFetch();
@@ -264,6 +282,11 @@
                     this.$('.fontLoader').hide();
                     this.$('.searchTable').show();
                     this.$('.searchResult').show();
+                    if (this.value.searchType == "dsl") {
+                        this.ui.paginationDiv.show();
+                    } else {
+                        this.ui.paginationDiv.hide();
+                    }
                 }
             },
             getEntityTableColumns: function() {
@@ -555,7 +578,35 @@
                         that.fetchCollection();
                     }
                 });
-            }
+            },
+            onClicknextData: function() {
+                var that = this;
+                this.ui.previousData.removeAttr("disabled");
+                $.extend(this.searchCollection.queryParams, {
+                    offset: function() {
+                        that.offset = that.offset + that.limit;
+                        return that.offset;
+                    }
+                });
+                if (this.offset > this.limit) {
+                    this.ui.nextData.attr('disabled', true);
+                }
+                this.fetchCollection();
+            },
+            onClickpreviousData: function() {
+                var that = this;
+                this.ui.nextData.removeAttr("disabled");
+                $.extend(this.searchCollection.queryParams, {
+                    offset: function() {
+                        that.offset = that.offset - that.limit;
+                        return that.offset;
+                    }
+                });
+                if (this.offset <= that.limit) {
+                    this.ui.previousData.attr('disabled', true);
+                }
+                this.fetchCollection();
+            },
         });
     return SearchResultLayoutView;
 });
diff --git a/release-log.txt b/release-log.txt
index 9a26e88..79aee37 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -6,8 +6,9 @@
 
 
 ALL CHANGES:
+ATLAS-1001 UI Paginate search APIs (kevalbhatt18 via sumasai)
 ATLAS-1042 Performance improvement changes for propertykey+typeName based queries (sumasai via shwethags)
-ATLAS-1036 Multiple instances of AtlasPluginClassloader getting initialized (sumasai, mneethiraj)
+ATLAS-1038 Multiple instances of AtlasPluginClassloader getting initialized (sumasai, mneethiraj)
 ATLAS-1033 fix for issues flagged by Coverity scan (mneethiraj via sumasai)
 ATLAS-1036 Compilation error on java 1.8 - GraphBackedDiscoveryService (shwethags via sumasai)
 ATLAS-1034 Incorrect Falcon hook impl class name in Falcon hook shim (mneethiraj via shwethags)
