diff --git a/xos/api/import_methods.py b/xos/api/import_methods.py
index d53556c..1b5e3ca 100644
--- a/xos/api/import_methods.py
+++ b/xos/api/import_methods.py
@@ -1,6 +1,7 @@
 from django.views.generic import View
 from django.conf.urls import patterns, url, include
 from rest_framework.routers import DefaultRouter
+from xosapi_helpers import XOSIndexViewSet
 import os, sys
 import inspect
 import importlib
@@ -35,6 +36,7 @@
     return module
 
 def import_api_methods(dirname=None, api_path="api", api_module="api"):
+    has_index_view = False
     subdirs=[]
     urlpatterns=[]
 
@@ -61,10 +63,12 @@
                             method_name = os.path.join(api_path, method_name)
                         else:
                             method_name = api_path
+                            has_index_view = True
                         view_urls.append( (method_kind, method_name, classname, c) )
 
         elif os.path.isdir(pathname):
             urlpatterns.extend(import_api_methods(pathname, os.path.join(api_path, fn), api_module+"." + fn))
+            subdirs.append(fn)
 
     for view_url in view_urls:
         if view_url[0] == "list":
@@ -75,6 +79,9 @@
            viewset = view_url[3]
            urlpatterns.extend(viewset.get_urlpatterns(api_path="^"+api_path+"/"))
 
+    if not has_index_view:
+        urlpatterns.append(url('^' + api_path + '/$', XOSIndexViewSet.as_view({'get': 'list'}, view_urls=view_urls, subdirs=subdirs), name="api_path"+"_index"))
+
     return urlpatterns
 
 urlpatterns = import_api_methods()
