pagination: { total, limit, offset } without has_more; do not mix the REST
and MCP response shapes.
Parameters
Response format
Iterating through all results
Filtering and sorting
Most list endpoints support filtering and sorting via query parameters. Filters use operator-based syntax:
Sorting uses a
sort parameter with - prefix for descending order:
Incremental synchronization
Mutable CRM collections supportupdated_after and, except for contacts,
updated_before. These offset-paginated filters reduce full scans but are
best-effort during concurrent writes; consumers that require an exact mirror
should keep a lower-frequency reconciliation. Timestamps must be RFC 3339
values. The lower bound is strict and the upper bound is inclusive:
updated_after.
This at-least-once behavior avoids gaps; consumers should upsert by resource ID.
The workspace-level pipeline entry collection provides the stronger contract:
keyset cursor pagination and a fixed checkpoint obtained from the database clock.
meta.next_cursor until meta.has_more is false. Persist
meta.checkpoint only after the final page succeeds, then use it as the next
request’s updated_after. Process entries idempotently by ID.