Skip to main content
All OnboardMe list endpoints support pagination and incremental synchronization. Understanding these patterns is essential for building an efficient integration that stays in sync without unnecessary load.

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 from pageNumber=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 a lastUpdated query parameter — a UTC ISO 8601 datetime. When provided, the endpoint returns only records that were created or modified at or after that timestamp.
  1. On first run, do a full import: page through the list endpoint without lastUpdated until you have all records.
  2. Store the timestamp of your last successful sync.
  3. On subsequent runs, pass the stored timestamp as lastUpdated to fetch only changed records.
  4. After a successful sync, update your stored timestamp.
The lastUpdated value must not be in the future. Passing a future timestamp will result in a 400 Bad Request error.

Rate limits and polling frequency

The API enforces rate limits. When exceeded, you receive a 429 Too Many Requests response with a Retry-After header indicating how many seconds to wait before retrying.
  • Do not poll at a fixed high frequency
  • Use lastUpdated to minimise the volume of data transferred
  • Honour Retry-After and implement exponential backoff for resilience