diff --git a/xos/api/tenant/onos/app.py b/xos/api/tenant/onos/app.py
index 481057d..d4d3ab0 100644
--- a/xos/api/tenant/onos/app.py
+++ b/xos/api/tenant/onos/app.py
@@ -38,7 +38,6 @@
     base_name = "app"
     method_name = "app"
     method_kind = "viewset"
-    queryset = ONOSApp.get_tenant_objects().all()
     serializer_class = ONOSAppSerializer
 
     custom_serializers = {"set_attribute": TenantAttributeSerializer}
@@ -52,9 +51,25 @@
 
         return patterns
 
+    def get_queryset(self):
+        queryset = ONOSApp.get_tenant_objects().all()
+
+        # Since name isn't a real database field of the Tenant object, we have
+        # to go through some extra work...
+        name = self.request.query_params.get('name', None)
+        if name is not None:
+            ids = [x.id for x in queryset.all() if x.name == name]
+            return queryset.filter(id__in=ids)
+
+        return queryset
+
     def get_attributes(self, request, pk=None):
         app = self.get_object()
-        return Response(TenantAttributeSerializer(app.tenantattributes.all(), many=True).data)
+        qs = app.tenantattributes.all()
+        name = self.request.query_params.get('attribute_name', None)
+        if name is not None:
+            qs = qs.filter(name=name)
+        return Response(TenantAttributeSerializer(qs, many=True).data)
 
     def add_attribute(self, request, pk=None):
         app = self.get_object()
