diff --git a/inventory_provider/routes/poller.py b/inventory_provider/routes/poller.py
index ad87d6866e6f017371e2efcbca720cb52543af5b..52fcd5dc5065ae919629fe6d732542c5dd8624ce 100644
--- a/inventory_provider/routes/poller.py
+++ b/inventory_provider/routes/poller.py
@@ -88,12 +88,23 @@ def poller_interface_oids(hostname):
 @common.require_accepts_json
 def service_category_interfaces(category):
 
-    result = []
-
-    r = common.get_current_redis()
-    for k in r.scan_iter(f'interface-services:{category.lower()}:*'):
-        ifc = r.get(k.decode('utf-8'))
-        result.append(json.loads(ifc.decode('utf-8')))
+    def _interfaces():
+        r = common.get_current_redis()
+        for k in r.scan_iter(f'interface-services:{category.lower()}:*'):
+            cached_ifc = r.get(k.decode('utf-8')).decode('utf-8')
+            cached_ifc = json.loads(cached_ifc)
+            basic_ifc_info = dict()
+            for k in ['description', 'interface', 'router']:
+                basic_ifc_info[k] = cached_ifc[k]
+            if not cached_ifc['users']:
+                yield basic_ifc_info
+            else:
+                for user in cached_ifc['users']:
+                    ifc = {'user': user}
+                    ifc.update(basic_ifc_info)
+                    yield ifc
+
+    result = list(_interfaces())
 
     if not result:
         return Response(