diff --git a/program/views.py b/program/views.py
index 876e5b609f36e45360a8dca8c0f1f8e5cb9d97a6..d99e828da318756f3927e9ab1da59c8192ffe8b9 100644
--- a/program/views.py
+++ b/program/views.py
@@ -437,7 +437,8 @@ class APIUserViewSet(viewsets.ModelViewSet):
 class APIShowViewSet(viewsets.ModelViewSet):
     """
     /api/v1/shows/                                             Returns all shows (GET, POST)
-    /api/v1/shows/?active=true                                 Returns all active shows (GET)
+    /api/v1/shows/?active=true                                 Returns all active shows (= currently running) (GET)
+    /api/v1/shows/?active=false                                Returns all inactive shows (= past or upcoming) (GET)
     /api/v1/shows/?host=1                                      Returns shows assigned to a given host (GET)
     /api/v1/shows/?owner=1                                     Returns shows of a given owner (GET)
     /api/v1/shows/1                                            Used for retrieving a single show or update (if owned) (GET, PUT, DELETE)
@@ -465,18 +466,22 @@ class APIShowViewSet(viewsets.ModelViewSet):
 
         '''Filters'''
 
-        if self.request.GET.get('active') == 'true':
+        if self.request.GET.get('active') == 'true' or self.request.GET.get('active') == 'false':
             '''Filter currently running shows'''
 
             # Get currently running schedules to filter by first
             # For single dates we test if there'll be one in the future (and ignore the until date)
             # TODO: Really consider dstart? (=currently active, not just upcoming ones)
             # Add limit for future?
-            schedules = Schedule.objects.filter( Q(rrule_id__gt=1,dstart__lte=date.today(),until__gte=date.today()) |
+            show_ids = Schedule.objects.filter( Q(rrule_id__gt=1,dstart__lte=date.today(),until__gte=date.today()) |
                                                  Q(rrule_id=1,dstart__gte=date.today())
                                                ).distinct().values_list('show_id', flat=True)
 
-            shows = Show.objects.filter(id__in=schedules)
+            shows = Show.objects.filter(id__in=show_ids)
+
+        if self.request.GET.get('active') == 'false':
+            '''Return all shows except those which are running'''
+            shows = Show.objects.exclude(id__in=show_ids)
 
         if self.request.GET.get('owner') != None:
             '''Filter shows by owner'''
@@ -987,9 +992,10 @@ class APINoteViewSet(viewsets.ModelViewSet):
 
 class APICategoryViewSet(viewsets.ModelViewSet):
     """
-    /api/v1/categories/             Returns all categories (GET, POST)
-    /api/v1/categories/?active=true Returns all active categories (GET)
-    /api/v1/categories/1            Returns a category by its ID (GET, PUT, DELETE)
+    /api/v1/categories/              Returns all categories (GET, POST)
+    /api/v1/categories/?active=true  Returns all active categories (GET)
+    /api/v1/categories/?active=false Returns all inactive categories (GET)
+    /api/v1/categories/1             Returns a category by its ID (GET, PUT, DELETE)
     """
     queryset = Category.objects.all()
     serializer_class = CategorySerializer
@@ -1002,14 +1008,18 @@ class APICategoryViewSet(viewsets.ModelViewSet):
         if self.request.GET.get('active') == 'true':
             return Category.objects.filter(is_active=True)
 
+        if self.request.GET.get('active') == 'false':
+            return Category.objects.filter(is_active=False)
+
         return Category.objects.all()
 
 
 class APITypeViewSet(viewsets.ModelViewSet):
     """
-    /api/v1/types/             Returns all types (GET, POST)
-    /api/v1/types/?active=true Returns all active types (GET)
-    /api/v1/types/1            Returns a type by its ID (GET, PUT, DELETE)
+    /api/v1/types/              Returns all types (GET, POST)
+    /api/v1/types/?active=true  Returns all active types (GET)
+    /api/v1/types/?active=false Returns all active types (GET)
+    /api/v1/types/1             Returns a type by its ID (GET, PUT, DELETE)
     """
 
     queryset = Type.objects.all()
@@ -1022,6 +1032,9 @@ class APITypeViewSet(viewsets.ModelViewSet):
         if self.request.GET.get('active') == 'true':
             return Type.objects.filter(is_active=True)
 
+        if self.request.GET.get('active') == 'false':
+            return Type.objects.filter(is_active=False)
+
         return Type.objects.all()
 
 
@@ -1042,15 +1055,19 @@ class APITopicViewSet(viewsets.ModelViewSet):
         if self.request.GET.get('active') == 'true':
             return Topic.objects.filter(is_active=True)
 
+        if self.request.GET.get('active') == 'false':
+            return Topic.objects.filter(is_active=False)
+
         return Topic.objects.all()
 
 
 
 class APIMusicFocusViewSet(viewsets.ModelViewSet):
     """
-    /api/v1/musicfocus/             Returns all musicfocuses (GET, POST)
-    /api/v1/musicfocus/?active=true Returns all active musicfocuses (GET)
-    /api/v1/musicfocus/1            Returns a musicfocus by its ID (GET, PUT, DELETE)
+    /api/v1/musicfocus/              Returns all musicfocuses (GET, POST)
+    /api/v1/musicfocus/?active=true  Returns all active musicfocuses (GET)
+    /api/v1/musicfocus/?active=false Returns all inactive musicfocuses (GET)
+    /api/v1/musicfocus/1             Returns a musicfocus by its ID (GET, PUT, DELETE)
     """
 
     queryset = MusicFocus.objects.all()
@@ -1063,15 +1080,19 @@ class APIMusicFocusViewSet(viewsets.ModelViewSet):
         if self.request.GET.get('active') == 'true':
             return MusicFocus.objects.filter(is_active=True)
 
+        if self.request.GET.get('active') == 'false':
+            return MusicFocus.objects.filter(is_active=False)
+
         return MusicFocus.objects.all()
 
 
 
 class APIFundingCategoryViewSet(viewsets.ModelViewSet):
     """
-    /api/v1/fundingcategories/             Returns all fundingcategories (GET, POST)
-    /api/v1/fundingcategories/?active=true Returns all active fundingcategories (GET)
-    /api/v1/fundingcategories/1            Returns a fundingcategory by its ID (GET, PUT, DELETE)
+    /api/v1/fundingcategories/              Returns all fundingcategories (GET, POST)
+    /api/v1/fundingcategories/?active=true  Returns all active fundingcategories (GET)
+    /api/v1/fundingcategories/?active=false Returns all active fundingcategories (GET)
+    /api/v1/fundingcategories/1             Returns a fundingcategory by its ID (GET, PUT, DELETE)
     """
 
     queryset = FundingCategory.objects.all()
@@ -1084,15 +1105,19 @@ class APIFundingCategoryViewSet(viewsets.ModelViewSet):
         if self.request.GET.get('active') == 'true':
             return FundingCategory.objects.filter(is_active=True)
 
+        if self.request.GET.get('active') == 'false':
+            return FundingCategory.objects.filter(is_active=False)
+
         return FundingCategory.objects.all()
 
 
 
 class APILanguageViewSet(viewsets.ModelViewSet):
     """
-    /api/v1/languages/             Returns all languages (GET, POST)
-    /api/v1/languages/?active=true Returns all active languages (GET)
-    /api/v1/languages/1            Returns a language by its ID (GET, PUT, DELETE)
+    /api/v1/languages/              Returns all languages (GET, POST)
+    /api/v1/languages/?active=true  Returns all active languages (GET)
+    /api/v1/languages/?active=false Returns all active languages (GET)
+    /api/v1/languages/1             Returns a language by its ID (GET, PUT, DELETE)
     """
 
     queryset = Language.objects.all()
@@ -1105,15 +1130,19 @@ class APILanguageViewSet(viewsets.ModelViewSet):
         if self.request.GET.get('active') == 'true':
             return Language.objects.filter(is_active=True)
 
+        if self.request.GET.get('active') == 'false':
+            return Language.objects.filter(is_active=False)
+
         return Language.objects.all()
 
 
 
 class APIHostViewSet(viewsets.ModelViewSet):
     """
-    /api/v1/hosts/             Returns all hosts (GET, POST)
-    /api/v1/hosts/?active=true Returns all active hosts (GET)
-    /api/v1/hosts/1            Returns a host by its ID (GET, PUT, DELETE)
+    /api/v1/hosts/              Returns all hosts (GET, POST)
+    /api/v1/hosts/?active=true  Returns all active hosts (GET)
+    /api/v1/hosts/?active=false Returns all active hosts (GET)
+    /api/v1/hosts/1             Returns a host by its ID (GET, PUT, DELETE)
     """
 
     queryset = Host.objects.all()
@@ -1127,4 +1156,7 @@ class APIHostViewSet(viewsets.ModelViewSet):
         if self.request.GET.get('active') == 'true':
             return Host.objects.filter(is_active=True)
 
+        if self.request.GET.get('active') == 'false':
+            return Host.objects.filter(is_active=False)
+
         return Host.objects.all()
\ No newline at end of file