Skip to main content
Each workspace has a request rate (requests per second), a burst allowance, and a cap on concurrent requests, set by its plan. Agent keys also carry a lower rate limit of their own. The rate works as a token bucket: the bucket holds up to the burst size and refills at the request rate. Data responses carry the policy:

When you are limited

Requests over the limit return 429 with a Retry-After header in whole seconds, and retry_after_s in the body:
Other limits that return 429:
  • extraction_limit: a bulk extraction budget is used up.
  • jobs_limit: more than 2 active async jobs, or more than 100 jobs in a day.
Throttled requests are free.

Backing off

Wait for Retry-After, then double the wait on each further 429, adding random jitter, up to 30 seconds. 503 upstream_busy and most 503 unavailable responses also carry Retry-After; retry them the same way.