diff --git a/api/lib/perm/acl/resource.py b/api/lib/perm/acl/resource.py
index 18fa462..dcc08f8 100644
--- a/api/lib/perm/acl/resource.py
+++ b/api/lib/perm/acl/resource.py
@@ -137,13 +137,16 @@ class ResourceGroupCRUD(object):
 
 class ResourceCRUD(object):
     @staticmethod
-    def search(q, app_id, page=1, page_size=None):
+    def search(q, app_id, resource_type_id=None, page=1, page_size=None):
         query = db.session.query(Resource).filter(
             Resource.deleted.is_(False)).filter(Resource.app_id == app_id)
 
         if q:
             query = query.filter(Resource.name.ilike("%{0}%".format(q)))
 
+        if resource_type_id:
+            query = query.filter(Resource.resource_type_id == resource_type_id)
+
         numfound = query.count()
 
         return numfound, query.offset((page - 1) * page_size).limit(page_size)
diff --git a/api/views/acl/resources.py b/api/views/acl/resources.py
index 4b7ddbb..37c593a 100644
--- a/api/views/acl/resources.py
+++ b/api/views/acl/resources.py
@@ -72,9 +72,10 @@ class ResourceView(APIView):
         page = get_page(request.values.get("page", 1))
         page_size = get_page_size(request.values.get("page_size"))
         q = request.values.get('q')
+        resource_type_id = request.values.get('resource_type_id')
         app_id = request.values.get('app_id')
 
-        numfound, res = ResourceCRUD.search(q, app_id, page, page_size)
+        numfound, res = ResourceCRUD.search(q, app_id, resource_type_id, page, page_size)
 
         return self.jsonify(numfound=numfound,
                             page=page,