diff --git a/netbox_awx_plugin/models.py b/netbox_awx_plugin/models.py
index 664da34e58f8e9f4e9a0747cf6e97683aaeb7936..9473c6009cd723e642e8d20b97a88a403031018d 100644
--- a/netbox_awx_plugin/models.py
+++ b/netbox_awx_plugin/models.py
@@ -57,14 +57,30 @@ class AWXInventory(NetBoxModel):
         else:
             return None
 
+    def get_max_page_size(self, endpoint):
+        url = urljoin(
+            self.awx.url,
+            f"/api/v2/inventories/{self.inventory_id}/{endpoint}/",
+        )
+        r = requests.options(
+            url=url,
+            headers=self.awx.get_headers(),
+            verify=False,
+        )
+        r.raise_for_status()
+        data = r.json()
+        return data.get("max_page_size") 
+
+
     def get_all_hosts(self):
         """
         Retrieves all hosts from the AWX inventory.
         """
         hosts = {}
         page = 1
+        max_page_size = self.get_max_page_size('hosts')
         while True:
-            params = {"page": page}
+            params = {"page": page, "page_size": max_page_size}
             r = requests.get(
                 url=urljoin(
                     self.awx.url,
@@ -141,8 +157,9 @@ class AWXInventory(NetBoxModel):
         """
         groups = {}
         page = 1
+        max_page_size = self.get_max_page_size('groups')
         while True:
-            params = {"page": page}
+            params = {"page": page, "page_size": max_page_size}
             r = requests.get(
                 url=urljoin(
                     self.awx.url,
diff --git a/netbox_awx_plugin/tests/test_models.py b/netbox_awx_plugin/tests/test_models.py
index 5625b06905425e189c612ca50e94bd3c51ba90c7..c1df3755e1441f4728f131fe420ffea637fd59bc 100644
--- a/netbox_awx_plugin/tests/test_models.py
+++ b/netbox_awx_plugin/tests/test_models.py
@@ -202,7 +202,11 @@ class AWXInventoryModelTestCase(TestCase):
         mock_put.return_value = mock_put_response
 
         data = {"name": "updated-group"}
-        self.inventory.update_group("test-group", data)
+        
+        group = self.inventory.get_group("test-group")
+        group_id = group['id']
+
+        self.inventory.update_group(group_id, data)
 
         # Check that get_group was called correctly
         expected_get_url = urljoin(self.awx_instance.url, f"/api/v2/inventories/{self.inventory.inventory_id}/groups/")