diff --git a/smash/web/api_urls.py b/smash/web/api_urls.py
index 9440d2450cd744b59c26da1b6e4d8f608806cc8c..304f018ed9f83b9d6e3be8c5cdefa1523c4805f9 100644
--- a/smash/web/api_urls.py
+++ b/smash/web/api_urls.py
@@ -25,7 +25,7 @@ urlpatterns = [
     url(r'^appointment_types$', appointment_type.appointment_types, name='web.api.appointment_types'),
 
     # appointments
-    url(r'^configuration_items$', configuration.configuration_items, name='web.api.configuration'),
+    url(r'^configuration_items$', configuration.configuration_items, name='web.api.configuration_items'),
 
     # subjects data
     url(r'^cities$', subject.cities, name='web.api.cities'),
diff --git a/smash/web/api_views/configuration.py b/smash/web/api_views/configuration.py
index 62d77774b8302245d2aaf9f118ee01c95a847bcc..efa7daf01d38021fc713b615bad5938ac526615f 100644
--- a/smash/web/api_views/configuration.py
+++ b/smash/web/api_views/configuration.py
@@ -6,14 +6,28 @@ from web.models import ConfigurationItem
 
 @login_required
 def configuration_items(request):
+    # id of the query from dataTable: https://datatables.net/manual/server-side
+    draw = int(request.GET.get("draw", "-1"))
+
+    start = int(request.GET.get("start", "0"))
+    length = int(request.GET.get("length", "10"))
+
     items = ConfigurationItem.objects.all()
+    count = items.count()
+    count_filtered = count
+
+    sliced_items = items[start:(start + length)]
+
     data = []
-    for configuration_item in items:
+    for configuration_item in sliced_items:
         data.append({
             "id": configuration_item.id,
             "name": configuration_item.name,
             "value": configuration_item.value
         })
     return JsonResponse({
+        "draw": draw,
+        "recordsTotal": count,
+        "recordsFiltered": count_filtered,
         "data": data
     })