1
Fetch the first page
Start with
limit=1000 and offset=0. The example uses the /property/properties endpoint, but the pattern works for any category endpoint.2
Check the pagination headers
Inspect the response headers after each request:
X-Has-More:"true"if additional pages existX-Next-Offset: the offset to use for the next page (present only whenX-Has-Moreis"true")X-Total-Count: total rows available for the current query
X-Has-More is "true", increment the offset by your limit and repeat until you reach the end.3
Store the next offset for the next run
Persist the value of
X-Next-Offset from the last successful request. On the next scheduled sync, start from this stored offset instead of zero to avoid re-fetching rows you already have.For example, if the previous run ended at offset 4000, your next run begins with:4
Reset when the data changes significantly
If you detect a schema change, a full reload requirement, or a large gap between syncs, reset your stored offset to
0 and pull the full dataset again.5
Full Python example
A complete script that fetches every page, resuming from a stored offset. Requires the
requests package.sync_properties.py