diff --git a/inventory_provider/db/ims.py b/inventory_provider/db/ims.py
index b27f6773a6c450134b76ea2a54217c608d870d88..6932166bd840a79ce1f41d0a4a4125f3a1c3f3ac 100644
--- a/inventory_provider/db/ims.py
+++ b/inventory_provider/db/ims.py
@@ -61,6 +61,7 @@ CUSTOMER_RELATED_CONTACT_PROPERTIES = {
 }
 # http://149.210.162.190:81/ImsVersions/4.19.9/html/a8dc6266-d934-8162-4a55-9e1648187f2c.htm  # noqa
 EQUIP_DEF_PROPERTIES = {
+    'Vendor': 8,
     'Nodes': 4096
 }
 # http://149.210.162.190:81/ImsVersions/20.1/html/6fd3a968-26e2-e40f-e3cd-c99afa34c3e6.htm
diff --git a/inventory_provider/db/ims_data.py b/inventory_provider/db/ims_data.py
index 9763f70e19bb99eca1a52480f929a4d2a1995cda..43f65cc3199bad1ee24b24feec911fb165afd766 100644
--- a/inventory_provider/db/ims_data.py
+++ b/inventory_provider/db/ims_data.py
@@ -633,3 +633,17 @@ def lookup_geant_nodes(ds: IMS):
         'Node',
         'customer.Name == "GEANT"',
         ims.EQUIP_DEF_PROPERTIES['Nodes']))
+
+
+@log_entry_and_exit
+def get_router_vendors(ds: IMS):
+    ed_nav_properties = [
+        ims.EQUIP_DEF_PROPERTIES['Nodes'],
+        ims.EQUIP_DEF_PROPERTIES['Vendor']
+    ]
+    for ed in ds.get_filtered_entities(
+            'equipmentdefinition',
+            'equipmentkind == ROUTER',
+            ed_nav_properties):
+        for r in ed.get('nodes', []):
+            yield r['name'], ed.get('vendor', {}).get('name', None)