diff --git a/memopol/api.py b/memopol/api.py
new file mode 100644
index 0000000000000000000000000000000000000000..f5c44470116e73fdf7bbccf1ff380f02b8b7a174
--- /dev/null
+++ b/memopol/api.py
@@ -0,0 +1,24 @@
+from rest_framework import routers
+
+from representatives.api import (
+    ConstituencyViewSet,
+    GroupViewSet,
+    MandateViewSet,
+    RepresentativeViewSet,
+)
+
+from representatives_votes.api import (
+    DossierViewSet,
+    ProposalViewSet,
+    VoteViewSet,
+)
+
+router = routers.DefaultRouter()
+
+router.register(r'constituencies', ConstituencyViewSet)
+router.register(r'dossiers', DossierViewSet)
+router.register(r'groups', GroupViewSet)
+router.register(r'mandates', MandateViewSet)
+router.register(r'proposals', ProposalViewSet)
+router.register(r'representatives', RepresentativeViewSet)
+router.register(r'votes', VoteViewSet)
diff --git a/memopol/settings.py b/memopol/settings.py
index 24a7ca03c96d593273ed0860980761bff34ad057..02478a728db71dac50df375491c7ac405654c1e0 100644
--- a/memopol/settings.py
+++ b/memopol/settings.py
@@ -84,6 +84,7 @@ INSTALLED_APPS = (
     'bootstrap3',
     'datetimewidget',
     'django_filters',
+    'rest_framework',
     'taggit',
     # ---
     'core',
diff --git a/memopol/urls.py b/memopol/urls.py
index af56bd92c0e815fae818c1d84cdd300e56189261..5c884fd654aec672acaca3f5e6df649d94e90590 100644
--- a/memopol/urls.py
+++ b/memopol/urls.py
@@ -4,6 +4,7 @@ from django.contrib import admin
 from django.views import generic
 
 import views
+import api
 
 admin.autodiscover()
 
@@ -34,5 +35,6 @@ urlpatterns = [
         namespace='representatives_votes')),
     url(r'positions/', include('representatives_positions.urls',
         namespace='representatives_positions')),
+    url(r'api/', include(api.router.urls)),
     url(r'^$', generic.TemplateView.as_view(template_name='home.html')),
 ]
diff --git a/setup.py b/setup.py
index 3ef3b72f54a2deec45503c8e33d4adb7d9d74ae0..251504682ec3df0becb54881ba0205ab01e8d98a 100644
--- a/setup.py
+++ b/setup.py
@@ -15,10 +15,11 @@ setup(name='political-memory',
         'django-compressor>=1.6,<1.7',
         'django-datetime-widget>=0.9,<1.0',
         'django-filter>=0.11,<0.12',
-        'django-representatives>=0.0.9',
-        'django-representatives-votes>=0.0.7',
+        'django-representatives-votes>=0.0.12',
+        'django-representatives>=0.0.13',
         'django-taggit>=0.17,<0.18',
         'django>=1.8,<1.9',
+        'djangorestframework>=3.2.0,<3.3.0',
         'hamlpy>=0.82,<0.83',
         'ijson>=2.2,<2.3',
         'lesscpy',