Rate limits
120 requests a minute per token and 300 per IP address for token traffic, the Retry-After header, and how to stay under them.
Token traffic is limited so that one integration cannot crowd out the rest.
The limits#
- 120 requests per minute per token.
- 300 requests per minute per IP address, across all tokens, for token traffic.
- The workspace's normal per-user limits also apply.
- Export jobs have their own limits: three running and ten a day per caller.
When you exceed one#
The response is 429 with the code RATE_LIMIT_EXCEEDED and a Retry-After header giving the number of seconds to wait.
HTTP/1.1 429 Too Many Requests
Retry-After: 12Wait that long and retry. Do not retry sooner: it extends the wait.
Staying under#
- Page, do not poll. List with
limit(up to 200) and followoffsetinstead of many small calls. - Cache what does not change. An item's text changes only when it is edited; use
updated_sinceto fetch only what changed. - Back off on
429and5xx, exponentially with a little jitter, and honorRetry-After. - Prefer search to ask for lookups. Search does not call a model and costs no coins.
- Use idempotency keys on writes so a retry is safe.
Limits on the source side#
Syncing a connected source is a different matter: Breno keeps its own request budget per provider so a busy provider slows a sync rather than failing it. See Provenance and sync.