Skip to main content

Cursor pagination

List endpoints use cursor pagination and return data and has_more. The default limit is 25 items and can be set from 1 to 100.
To fetch the next page, send the last item’s id as starting_after:
Continue while has_more is true. Do not reuse a cursor from one resource type in a different list.

Public IDs

IDs are opaque strings with a prefix that identifies the resource. Treat IDs as strings. Do not remove the prefix or try to infer their contents.

Filters and dates

Filters are sent as query parameters. Dates use ISO 8601 with an offset; responses are normalized to UTC.
Fields without a value are omitted from responses instead of returning null. Monetary values use cents, such as total_spent_in_cents: 15990.

Errors

Errors are never returned with status 200. The error.type field is stable for automation; message is human-readable; and request_id identifies the request for support.

Rate limit

The initial limit is 600 requests per minute, per API key. Authenticated responses include:
When you receive 429, wait the number of seconds in Retry-After before retrying. Use backoff with jitter in automated integrations.

Conditional caching

Resource responses include an ETag. Send that value in If-None-Match to avoid downloading unchanged content again:
When the content is identical, the API returns 304 Not Modified without a response body.