Developer documentation
Pagination, filtering, and idempotency
List results use stable cursor pagination. Mutations use idempotency keys so transport recovery does not duplicate work.
Cursor pagination
List responses contain data and next_cursor. Pass the returned cursor unchanged. A null next_cursor means the page is complete.
Idempotency
Send Idempotency-Key on every mutation. Reuse it only for the same operation and payload. A retry after a lost response returns the completed result; a changed payload returns an idempotency conflict.
Optimistic concurrency
Updates that accept revision reject a stale revision with 409. Reload the resource, review the current state, and submit an intentional update.