Rate limits
Each API key has a sustained requests-per-second limit derived from your plan (Free 1 req/s → Max 60 req/s — see Pricing). Limits are enforced with a token bucket: bursts up to your per-minute capacity are allowed, then requests are smoothed to the sustained rate.
When you’re limited
Section titled “When you’re limited”{ "error": "rate_limited", "retry_after_ms": 850 }- HTTP
429,error: "rate_limited". retry_after_mstells you the minimum time to wait before retrying.- The
x-ratelimit-remainingheader on every response reports how many requests remain this minute.
Concurrency
Section titled “Concurrency”Beyond the per-second rate, there’s a cap on in-flight requests. If you fire many requests at once you may see:
409 request_in_progress— an identical idempotent request is already running.503 too_many_concurrent_requests— too many concurrent requests in flight; back off and retry.
Handling limits
Section titled “Handling limits”- Respect
retry_after_ms; otherwise use exponential backoff with jitter. - Keep a client-side concurrency cap matched to your plan’s rate.
- The official SDKs retry
429/503automatically.