Rate limits are the most common reason a working integration suddenly starts failing in production. Here is what each limit actually constrains, and how to build against them.
429 means one of them was hit — it is not an outage and not a billing problem.| Limit | What it counts | Typical symptom when exceeded |
|---|---|---|
| RPM — requests per minute | How many requests you may start in a rolling minute. | Bursts fail while steady traffic succeeds. |
| TPM — tokens per minute | Combined input and output tokens in a rolling minute. | A few large-context calls fail where many small ones pass. |
| Concurrency | Requests in flight at the same instant. | Parallel workers or agents stall; streaming makes it worse. |
A streamed response occupies its concurrency slot from the first token to the last. A 60-second generation holds that slot for a full minute, so a concurrency of 1 caps you near one long request at a time regardless of how generous RPM looks. Agentic tools like Claude Code, Cline and Aider open several streams at once, which is why they hit concurrency limits first.
Retry with exponential backoff and jitter — double the wait each attempt and add a small random offset so retrying clients do not resynchronise into another burst. Honour the retry-after header when it is present. Cap total attempts and surface a clear error rather than retrying forever. Queue client-side so you shape your own traffic instead of discovering the ceiling by hitting it.
New accounts start with conservative concurrency and RPM so a single runaway script cannot degrade everyone. Both are raised on request once there is usage history — ask support with a short description of your workload. Flat-rate unlimited plans are governed by fair-use limits rather than per-token billing, and pay-as-you-go credit tops up at 10x face value.
It means a rate limit was hit — requests per minute, tokens per minute, or concurrent requests. It is not a billing failure and not an outage. Retry with exponential backoff and honour the retry-after header if one is returned.
Agentic tools fan out several streaming requests at once. Streaming holds a concurrency slot for the entire response, so a handful of parallel long generations exhausts concurrency while your requests-per-minute count still looks low.
Ask support once you have some usage history, with a short description of the workload and the concurrency you need. Limits start conservative to protect shared capacity and are raised routinely for real workloads.
Yes, as fair-use limits. Unlimited plans remove per-token billing, not the physical constraints of the upstream capacity, so concurrency and burst limits still apply.
Same models, same context windows, one drop-in base URL. Pay as you go or take a flat-rate unlimited plan.
Get an API key See unlimited plansClaudeAPIKey.dev is an independent API gateway and is not affiliated with, endorsed by, or sponsored by Anthropic. “Claude” and “Anthropic” are trademarks of Anthropic. Official Anthropic list prices shown for comparison are taken from Anthropic’s published pricing and may change; our rates are read from our own live catalogue. Estimates are calculated from the token counts you enter and will differ from real usage.