Pagination
List endpoints accept two optional query parameters:
Pages are 1-based: the first page is
pageNumber=1, the second is pageNumber=2, and so on.
Not all endpoints support
pageSize. The entities and users list endpoints use a fixed server page size. The eForm templates endpoint supports both pageNumber and pageSize.Paging through all records
To retrieve all records from an endpoint, iterate frompageNumber=1 until you receive fewer records than the page size, or until the response’s hasMore field (where present) is false.
Incremental sync with lastUpdated
All major list endpoints accept alastUpdated query parameter — a UTC ISO 8601 datetime. When provided, the endpoint returns only records that were created or modified at or after that timestamp.
Recommended sync pattern
- On first run, do a full import: page through the list endpoint without
lastUpdateduntil you have all records. - Store the timestamp of your last successful sync.
- On subsequent runs, pass the stored timestamp as
lastUpdatedto fetch only changed records. - After a successful sync, update your stored timestamp.
Rate limits and polling frequency
The API enforces rate limits. When exceeded, you receive a 429 Too Many Requests response with aRetry-After header indicating how many seconds to wait before retrying.
- Do not poll at a fixed high frequency
- Use
lastUpdatedto minimise the volume of data transferred - Honour
Retry-Afterand implement exponential backoff for resilience