diff --git a/inventory_provider/routes/classifier.py b/inventory_provider/routes/classifier.py
index fb09dad075829aba6c53f2c7ce0aca50ce4038d4..afc9bcdb2161f956f6cea65044b7ef8dcf04a5bb 100644
--- a/inventory_provider/routes/classifier.py
+++ b/inventory_provider/routes/classifier.py
@@ -73,11 +73,35 @@ def get_juniper_link_info(source_equipment, interface):
         result = result.decode('utf-8')
     else:
         result = {}
+        top_level_services = []
+
+        def _get_top_level_services(circuit_id):
+            tls = []
+            results = r.get("opsdb:services:children:{}".format(circuit_id))
+            if results:
+                results = json.loads(results.decode('utf-8'))
+
+                for c in results:
+                    if circuit_id == c['child_circuit_id']:
+                        tls.append(
+                            {'name': c['parent_circuit'],
+                             'status': c['parent_circuit_status']})
+                    else:
+                        temp_parents = \
+                            _get_top_level_services(c['child_circuit_id'])
+                        if not temp_parents:
+                            tls.append(
+                                {'name': c['parent_circuit'],
+                                 'status': c['parent_circuit_status']})
+                        tls.extend(temp_parents)
+            return tls
 
         services = r.get(
             'opsdb:interface_services:%s:%s' % (source_equipment, interface))
         if services:
             result['services'] = json.loads(services.decode('utf=8'))
+            for s in result['services']:
+                top_level_services.extend(_get_top_level_services(s['id']))
 
         ifc_info = r.get(
             'netconf-interfaces:%s:%s' % (source_equipment, interface))
@@ -90,10 +114,13 @@ def get_juniper_link_info(source_equipment, interface):
                            % (source_equipment, related))
                 if rs:
                     for s in json.loads(rs.decode('utf-8')):
-                        yield s
+                        top_level_services.extend(
+                            _get_top_level_services(s['id']))
+                        yield {'name': s['name'], 'status': s['status']}
 
         related_services = list(_related_services())
         if related_services:
+            related_services.extend(top_level_services)
             result['related-services'] = related_services
 
         if not result: