Short answer
An API response may contain only the first page. Follow its documented page, offset, URL or cursor mechanism to completion, preserving filters and a stop condition. Compare unique identifiers with the available total when the server provides one for the same scope.
Key verification: Run the local code: it retrieves C1 through C5; reading only the first page returns three records.
Sources and limitationsAn automation finishes without error and delivers three contacts, but the CRM contains five. This is not necessarily a permission failure: the second page may be missing. Before changing tools, identify how the API signals remaining data. A successful HTTP response establishes one request, not a complete catalogue read.
Recognise the endpoint mechanism
| Mechanism | Progression | Watch for |
|---|---|---|
| Page | Next documented number | Zero- or one-based start |
| Offset | Position and limit | Concurrent changes shift rows |
| Cursor | Token returned by server | Do not invent or modify the token |
| Next URL | Returned link | Validate the host before attaching credentials |
The Make HTTP documentation describes these modes and paths for items and the next page. Configure paths from your actual endpoint response. items, next and cursor below are exercise names, not universal fields. Check the module’s item limit too: it can stop a read while another page still exists.
Local demonstration without an account or connection
Save the code as pagination_demo.py and run it with Python 3. It traverses two fictional in-memory responses only; it does not call an API, require keys or represent a tested Make integration. The first page contains three contacts and the second two. The loop remembers visited pages to detect repetition.
pages = {
"start": {"items": ["C1", "C2", "C3"], "next": "page2"},
"page2": {"items": ["C4", "C5"], "next": None},
}
key, seen, contacts = "start", set(), []
while key is not None:
if key in seen:
raise ValueError("Repeated page")
seen.add(key)
page = pages[key]
contacts.extend(page["items"])
key = page["next"]
assert len(contacts) == len(set(contacts)) == 5
print(contacts)
# Expected: ['C1', 'C2', 'C3', 'C4', 'C5']
Change page2’s next to start: the program should stop with Repeated page. Remove the second page: it should fail rather than report a complete export. These tests establish example properties; they do not automatically fix provider errors.
Transfer it to a Make scenario
Use a test account with minimal read permissions. Document endpoint, filters, stable order, size and end field. First run a limited collection known to exceed one page. Check whether module output contains complete pages or individual items before mapping it to another system.
Do not declare records missing by comparing with a total from another filter or time. If the collection changes during reading, ask about the provider’s snapshot or consistency mechanism; without one, record that limitation and reconcile identifiers. Do not rewrite every CRM contact to test a read.
Exit criterion
Accept traversal when it ends on the documented signal, retrieves the expected test set and retains page and record evidence. A repeated cursor, reached limit or unresolved error leaves the read incomplete. Make helps when this process must run alongside other modules; a CRM’s native export may suffice for a one-off task.
Sources and limitations
Documentary review: . Content type: Documentation-based guide with original resource.
Sources describe terms and capabilities stated by their owners. Proposed protocols and fictional examples do not establish product tests performed by CallsIQ.
- Make HTTP documentationapps.make.com
Check current terms
Consider these options if they solve the problem described. Confirm features, limits and availability in your country.
MakeAffiliate linkThe labelled commercial links may earn CallsIQ a commission or referral reward. Our commercial policy.
Official sources, explained calculations and clearly labelled examples. Read about our methodology and use of AI in writing.