diff --git a/inventory_provider/gap.py b/inventory_provider/gap.py
index d8847243c6b98757bea9e8958a26525a2851e8e4..608ca116341ebbd7b3cb11ec6ec22388f0071a5b 100644
--- a/inventory_provider/gap.py
+++ b/inventory_provider/gap.py
@@ -1,8 +1,11 @@
+import concurrent.futures
 import logging
+import socket
 
 import requests
 from flask import current_app
-import concurrent.futures
+from requests.adapters import HTTPAdapter
+from urllib3.poolmanager import PoolManager
 
 logger = logging.getLogger(__name__)
 
@@ -10,6 +13,23 @@ GRANT_TYPE = 'client_credentials'
 SCOPE = 'openid profile email aarc'
 
 
+class IPv4Adapter(HTTPAdapter):
+    """A custom adapter that forces the use of IPv4."""
+
+    def init_poolmanager(self, connections, maxsize, block=False, **pool_kwargs):
+        pool_kwargs['socket_options'] = [(socket.IPPROTO_IP, socket.IP_TOS, 0)]
+        self.poolmanager = PoolManager(
+            num_pools=connections,
+            maxsize=maxsize,
+            block=block,
+            **pool_kwargs
+        )
+
+    def proxy_manager_for(self, proxy, **proxy_kwargs):
+        proxy_kwargs['socket_options'] = [(socket.IPPROTO_IP, socket.IP_TOS, 0)]
+        return super().proxy_manager_for(proxy, **proxy_kwargs)
+
+
 def get_token_endpoint(discovery_endpoint_url: str) -> str:
     response = requests.get(discovery_endpoint_url)
     response.raise_for_status()
@@ -36,7 +56,12 @@ def make_request(body: dict, token: str) -> dict:
     config = current_app.config['INVENTORY_PROVIDER_CONFIG']
     api_url = f'{config["orchestrator"]["url"]}/api/graphql'
     headers = {'Authorization': f'Bearer {token}'}
-    response = requests.post(api_url, headers=headers, json=body)
+    session = requests.Session()
+    # Mount the adapter to force IPv4
+    adapter = IPv4Adapter()
+    session.mount('http://', adapter)
+    session.mount('https://', adapter)
+    response = session.post(api_url, headers=headers, json=body)
     response.raise_for_status()
     return response.json()