Skip to main content
Reducto enforces two independent limit mechanisms. This page covers edge rate limits. For the per-account concurrency throttle that queues parallel parse work, see Concurrency Throttle.
MechanismWhat it limitsBehavior on exceededReturns
Edge rate limitsRequests per second to the APIRequest is rejected at the ingress429
Concurrency throttleParse batches running in parallel for your accountWork queues until a slot frees, then runs200 (after wait)
Edge rate limits live at the ingress and protect against accidental floods. They cap requests per second, not concurrent work. Requests above the cap return 429 immediately. The SDKs retry 429 responses with exponential backoff automatically.

Per API Key

Endpoint scopeLimit429 response body
All endpoints1,000 req/s sustained{"message": "[CODE 1000] rate limit exceeded, retry with exponential backoff"}
GET /job/{job_id}200 req/s sustained{"message": "[CODE 2000] rate limit exceeded, please use webhooks instead of polling"}
If you hit [CODE 2000], you’re polling job status faster than necessary. Switch to webhooks so Reducto pushes results when ready.

Rare Infra-Shed 429s

In rare conditions, Reducto returns 429 from the application layer to protect core infrastructure when it is under load. These 429s do not carry a [CODE …] body. They are not a normal-operation signal that you have exceeded any limit; treat them as a transient infrastructure event and retry with backoff.

How to Tell Which Limit You’re Hitting

SymptomMechanismAction
Immediate 429 with body [CODE 1000]Edge rate limit, per-API-key request rateSlow your submission rate or split traffic across API keys.
Immediate 429 with body [CODE 2000]Edge rate limit, per-API-key polling rate on /jobSwitch to webhooks instead of polling.
Immediate 429 with no [CODE …] bodyRare infra shed (see above)Retry with backoff.
Slow P90 latency, no 4xxConcurrency throttleSubmit steadier traffic so earned_base grows, or contact sales.
Sync request hanging close to the 15-minute (900s) timeoutConcurrency throttleSwitch the call to async.

Concurrency Throttle

How Reducto queues parallel parse work and the tier baselines.

Async Processing

Submit jobs and receive results via webhook.

Error Codes

Full reference for client and server errors.