[ Docs ]
Rate Limits
Request and token limits for Developer, Pro, and Enterprise — aligned with pricing.
Tier limits
Limits apply when API keys ship. Until then, use these numbers to size clients and backoff logic.
| Tier | Requests/min | Tokens/min | Notes |
|---|---|---|---|
| Developer | 60 | 100K | When keys ship |
| Pro | 1,000 | 2M | Pay as you go |
| Enterprise | Custom | Custom | Committed + burst |
These match the rate table on Pricing. Monthly included tokens and overage pricing are documented there separately from per-minute caps.
Response headers
Successful and rate-limited responses include limit metadata:
typescript
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
X-RateLimit-Reset: 1700000000
| Header | Meaning |
|---|---|
X-RateLimit-Limit | Cap for the current window (requests or tokens, depending on the dimension) |
X-RateLimit-Remaining | Remaining budget in the window |
X-RateLimit-Reset | Unix timestamp when the window resets |
When present, honor Retry-After on 429 responses before retrying.
Handling 429
The API returns 429 with rate_limited when you exceed rpm or tpm.
Recommended client behavior:
- Read
Retry-Afterif provided; otherwise use exponential backoff with jitter - Cap concurrent in-flight requests so you stay under rpm
- Estimate tokens before send for large prompts; respect tpm
- Surface a clear error to operators — do not tight-loop
typescript
attempt 1 → wait ~1s
attempt 2 → wait ~2s
attempt 3 → wait ~4s
… with random jitter, then fail
Choosing a tier
- Developer — prototypes and low-volume integrations once keys exist
- Pro — production traffic with pay-as-you-go tokens and higher rpm/tpm
- Enterprise — custom rpm/tpm, committed volume, and burst — contact enterprise