diff --git a/smash/web/api_urls.py b/smash/web/api_urls.py
index 67379b2ebd2302f67347ca7c3577e02d886bbe3a..372aa370c6f24960f3122b1c18b24e8494fac9a0 100644
--- a/smash/web/api_urls.py
+++ b/smash/web/api_urls.py
@@ -54,6 +54,10 @@ urlpatterns = [
     url(r'^specializations$', worker.specializations, name='web.api.specializations'),
     url(r'^units$', worker.units, name='web.api.units'),
 
+    # workers
+    url(r'^workers/(?P<worker_role>[A-z]+)/$', worker.get_workers, name='web.api.workers'),
+
+    # daily planning data
     url(r'^daily_planning/workers/$', worker.workers_for_daily_planning, name='web.api.workers.daily_planning'),
     url(r'^daily_planning/workers/availabilities$', worker.availabilities,
         name='web.api.workers.daily_planning.availabilities$'),
diff --git a/smash/web/api_views/worker.py b/smash/web/api_views/worker.py
index bdf249541b8f3ac637b1ca4b35e332806cc7c782..881f15287d969ffaea7a1fb6b58fdb1f23ca78ca 100644
--- a/smash/web/api_views/worker.py
+++ b/smash/web/api_views/worker.py
@@ -61,3 +61,27 @@ def availabilities(request):
     return JsonResponse({
         "availabilities": result,
     })
+
+
+def get_workers(request, worker_role):
+    all_workers = Worker.get_workers_by_worker_type(worker_role).distinct()
+    count = all_workers.count()
+
+    data = []
+    for voucher_type in all_workers:
+        data.append(serialize_worker(voucher_type))
+
+    return JsonResponse({
+        "recordsTotal": count,
+        "recordsFiltered": count,
+        "data": data,
+    })
+
+
+def serialize_worker(worker):
+    result = {
+        "first_name": worker.first_name,
+        "last_name": worker.last_name,
+        "id": worker.id,
+    }
+    return result