diff --git a/README.md b/README.md
index ce5bae612ad114335184d67bb025824aea71cf29..c72e501aa07c52a1e6711c91f39c872eb9d2df6e 100644
--- a/README.md
+++ b/README.md
@@ -444,6 +444,19 @@ Any non-empty responses are JSON formatted messages.
                 "required": [
                     "name", "interface address", "interface name", "router"],
                 "additionalProperties": False
+            },
+            "service-info": {
+                "type": "object"
+            },
+            "interface-lookup-info": {
+                "type": "object",
+                "properties": {
+                    "interface": {"$ref": "#/definitions/interface-info"},
+                    "services": {
+                        "type": "array",
+                        "items": {"$ref": "#/definitions/service-info"}
+                    }
+                }
             }
         },
 
@@ -455,7 +468,7 @@ Any non-empty responses are JSON formatted messages.
             "vpn-rr-peer-info": {"$ref": "#/definitions/vpn-rr-peer"},
             "interfaces": {
                 "type": "array",
-                "items": {"$ref": "#/definitions/interface-info"}
+                "items": {"$ref": "#/definitions/interface-lookup-info"}
             }
         },
         "additionalProperties": False
diff --git a/inventory_provider/routes/classifier.py b/inventory_provider/routes/classifier.py
index a39f7a0de0dc8ab1c1bdc5c109289a5568260509..5a0cf4d53c5063504966df0b799c6eb7430042fc 100644
--- a/inventory_provider/routes/classifier.py
+++ b/inventory_provider/routes/classifier.py
@@ -88,6 +88,30 @@ def find_interfaces(address):
             yield info
 
 
+def find_interfaces_and_services(address):
+    """
+
+    :param address: an ipaddress object
+    :return:
+    """
+    r = common.get_redis()
+    for interface in find_interfaces(address):
+
+        services = r.get(
+            'opsdb:interface_services:%s:%s' % (
+                interface['router'],
+                interface['interface name']))
+        if not services:
+            services = []
+        else:
+            services = json.loads(services.decode('utf=8'))
+
+        yield {
+            'interface': interface,
+            'services': services
+        }
+
+
 @routes.route("/peer-info/<address>", methods=['GET', 'POST'])
 @common.require_accepts_json
 def peer_info(address):
@@ -124,7 +148,7 @@ def peer_info(address):
             info = info.decode('utf-8')
             result['vpn-rr-peer-info'] = json.loads(info)
 
-        interfaces = list(find_interfaces(address_obj))
+        interfaces = list(find_interfaces_and_services(address_obj))
         if interfaces:
             result['interfaces'] = interfaces
 
diff --git a/test/test_classifier_routes.py b/test/test_classifier_routes.py
index e4ec2b5d6e696bd9d130b5e87a0c3ed08cb34b8c..2382d76fc01e3c9f95ccbe9fad460a4665dbe1a4 100644
--- a/test/test_classifier_routes.py
+++ b/test/test_classifier_routes.py
@@ -101,6 +101,19 @@ def test_peer_info(
                 "required": [
                     "name", "interface address", "interface name", "router"],
                 "additionalProperties": False
+            },
+            "service-info": {
+                "type": "object"
+            },
+            "interface-lookup-info": {
+                "type": "object",
+                "properties": {
+                    "interface": {"$ref": "#/definitions/interface-info"},
+                    "services": {
+                        "type": "array",
+                        "items": {"$ref": "#/definitions/service-info"}
+                    }
+                }
             }
         },
 
@@ -112,7 +125,7 @@ def test_peer_info(
             "vpn-rr-peer-info": {"$ref": "#/definitions/vpn-rr-peer"},
             "interfaces": {
                 "type": "array",
-                "items": {"$ref": "#/definitions/interface-info"}
+                "items": {"$ref": "#/definitions/interface-lookup-info"}
             }
         },
         "additionalProperties": False