diff --git a/inventory_provider/db/ims_data.py b/inventory_provider/db/ims_data.py
index e3a59750d9cb1b30336eb95494ebc8b14f3b4b51..271faaf0b290bfd75da3006e5be321c3f9c1a547 100644
--- a/inventory_provider/db/ims_data.py
+++ b/inventory_provider/db/ims_data.py
@@ -84,6 +84,15 @@ def get_monitored_circuit_ids(ds: IMS):
         yield d['extrafieldvalueobjectinfo']['objectid']
 
 
+def get_ids_and_sids(ds: IMS):
+    for sid_circuit in ds.get_filtered_entities(
+        'ExtraFieldValue',
+        'extrafieldid == 3209 | value <> ""',
+        step_count=10000
+    ):
+        yield sid_circuit['objectid'], sid_circuit['value']
+
+
 def get_service_types(ds: IMS):
     for d in ds.get_filtered_entities(
             'ComboBoxData',
diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py
index b866a70ac73002e39e35bd1aedce91c704d008ef..f841b942c1c5ddceeae2a49ccb87b203687a005d 100644
--- a/inventory_provider/tasks/worker.py
+++ b/inventory_provider/tasks/worker.py
@@ -719,6 +719,7 @@ def extract_ims_data():
     lg_routers = []
     customer_contacts = {}
     circuit_ids_to_monitor = []
+    circuit_ids_and_sids = {}
     additional_circuit_customer_ids = {}
 
     hierarchy = {}
@@ -743,6 +744,11 @@ def extract_ims_data():
         circuit_ids_to_monitor = \
             list(ims_data.get_monitored_circuit_ids(ds=_ds()))
 
+    def _populate_sids():
+        nonlocal circuit_ids_and_sids
+        circuit_ids_and_sids = \
+            {cid: sid for cid, sid in ims_data.get_ids_and_sids(ds=_ds())}
+
     def _populate_additional_circuit_customer_ids():
         nonlocal additional_circuit_customer_ids
         additional_circuit_customer_ids = \
@@ -756,6 +762,7 @@ def extract_ims_data():
             executor.submit(_populate_customer_contacts): 'customer_contacts',
             executor.submit(_populate_circuit_ids_to_monitor):
                 'circuit_ids_to_monitor',
+            executor.submit(_populate_sids): 'sids',
             executor.submit(_populate_additional_circuit_customer_ids):
                 'additional_circuit_customer_ids'
         }
@@ -804,6 +811,7 @@ def extract_ims_data():
         'lg_routers': lg_routers,
         'customer_contacts': customer_contacts,
         'circuit_ids_to_monitor': circuit_ids_to_monitor,
+        'circuit_ids_sids': circuit_ids_and_sids,
         'additional_circuit_customer_ids': additional_circuit_customer_ids,
         'hierarchy': hierarchy,
         'port_id_details': port_id_details,
diff --git a/test/test_ims_data.py b/test/test_ims_data.py
index 7d07aff8e7b0ee6ef3a13801beae0a4cd3cd71a2..80abcc9de53ae7759734070aa40026715f136dae 100644
--- a/test/test_ims_data.py
+++ b/test/test_ims_data.py
@@ -8,7 +8,7 @@ from inventory_provider.db.ims import InventoryStatus
 from inventory_provider.db.ims_data import lookup_lg_routers, \
     get_node_locations, IMS_OPSDB_STATUS_MAP, \
     get_port_id_services, get_port_details, \
-    get_circuit_hierarchy, NODE_LOCATION_SCHEMA
+    get_circuit_hierarchy, get_ids_and_sids, NODE_LOCATION_SCHEMA
 
 
 def _json_test_data(filename):
@@ -298,3 +298,54 @@ def test_get_node_location(mocker):
             'latitude': 51.5308142,
         }
     })
+
+
+def test_get_circuit_ids_and_sids(mocker):
+    ims = mocker.patch('inventory_provider.db.ims.IMS')
+    ims.return_value.get_filtered_entities.return_value = \
+        [
+            {
+                'id': 999999,
+                'extrafieldid': 3209,
+                'objectid': 111111,
+                'value': 'SID-01',
+                'extrafield': None,
+                'links': None,
+                'extrafieldvalueobjectinfo': None,
+                'rowversion': '2021-12-10T19:40:51',
+                'errors': None,
+                'haserrors': False
+            },{
+                'id': 999998,
+                'extrafieldid': 3209,
+                'objectid': 111112,
+                'value': 'SID-02',
+                'extrafield': None,
+                'links': None,
+                'extrafieldvalueobjectinfo': None,
+                'rowversion': '2021-12-10T19:40:51',
+                'errors': None,
+                'haserrors': False
+            },{
+                'id': 999997,
+                'extrafieldid': 3209,
+                'objectid': 111113,
+                'value': 'SID-03',
+                'extrafield': None,
+                'links': None,
+                'extrafieldvalueobjectinfo': None,
+                'rowversion': '2021-12-10T19:40:51',
+                'errors': None,
+                'haserrors': False
+            },
+        ]
+    expected_response = [
+        (111111, 'SID-01'),
+        (111112, 'SID-02'),
+        (111113, 'SID-03')
+    ]
+
+    ds = inventory_provider.db.ims.IMS(
+        'dummy_base', 'dummy_username', 'dummy_password')
+    res = list(get_ids_and_sids(ds))
+    assert res == expected_response