diff --git a/api/config/settings/common.py b/api/config/settings/common.py
index a4c53c01ad2a256449e8ce026daa60f86a4e4c33..e443007b5a58ba45dee55c33b28b5e4a21f11032 100644
--- a/api/config/settings/common.py
+++ b/api/config/settings/common.py
@@ -213,16 +213,19 @@ if PLUGINS:
 else:
     logger.info("Running with no plugins")
 
+ADDITIONAL_APPS = env.list("ADDITIONAL_APPS", default=[])
 INSTALLED_APPS = (
     DJANGO_APPS
     + THIRD_PARTY_APPS
     + LOCAL_APPS
     + tuple(["{}.apps.Plugin".format(p) for p in PLUGINS])
+    + tuple(ADDITIONAL_APPS)
 )
 
 # MIDDLEWARE CONFIGURATION
 # ------------------------------------------------------------------------------
-MIDDLEWARE = (
+ADDITIONAL_MIDDLEWARES_BEFORE = env.list("ADDITIONAL_MIDDLEWARES_BEFORE", default=[])
+MIDDLEWARE = tuple(ADDITIONAL_MIDDLEWARES_BEFORE) + (
     "django.middleware.security.SecurityMiddleware",
     "django.middleware.clickjacking.XFrameOptionsMiddleware",
     "corsheaders.middleware.CorsMiddleware",
diff --git a/api/config/urls.py b/api/config/urls.py
index 015047f67fd0834bbba477b98d7fca4f63acf81a..2cd4f466299231ebc5dc1e6d40b7afb49e9919c2 100644
--- a/api/config/urls.py
+++ b/api/config/urls.py
@@ -40,3 +40,8 @@ if settings.DEBUG:
         urlpatterns = [
             path("api/__debug__/", include(debug_toolbar.urls))
         ] + urlpatterns
+
+    if "silk" in settings.INSTALLED_APPS:
+        urlpatterns = [
+            url(r"^api/silk/", include("silk.urls", namespace="silk"))
+        ] + urlpatterns
diff --git a/api/requirements/local.txt b/api/requirements/local.txt
index d60e07e7b28abb9b77eb42749d5427fe1c9ce219..dc39e4218bfcb2d31cef38499106834034c4f265 100644
--- a/api/requirements/local.txt
+++ b/api/requirements/local.txt
@@ -15,3 +15,4 @@ profiling
 asynctest==0.12.2
 aioresponses==0.6.0
 https://github.com/dmclain/django-debug-toolbar-line-profiler/archive/master.zip
+django-silk