Rate Limits
Request limits and quotas
Request limits are applied to ensure fair use of the API. Limits are counted per API key. The values below apply to personal keys; for project and partner keys the limit is the key's own setting (the limits field in the GET /v1/balance response). Contact support for higher limits.
Default Limits
| Limit Type | Value |
|---|---|
| Per-Minute Requests | 60 requests/minute |
| Daily Requests | 10,000 requests/day |
| Maximum Tokens | Model-dependent |
Accessing Rate Limit Info
Rate limit information is not returned in response headers; when a limit is exceeded it is included in the 429 response body:
{
"success": false,
"error": {
"code": "rate_limit_exceeded",
"message": "Per-minute request limit reached: this API key can send at most 60 requests per minute. Please try again in 42 second(s).",
"type": "rate_limit_error",
"param": null,
"retry_after": 42,
"limit_type": "minute",
"limit": 60,
"current": 61
}
}
When it is known when the limit reopens, a 429 response carries a Retry-After header with the wait time in seconds (per-minute and daily request limits, the free-model limit, per-model daily/monthly token and request limits). If the wait is longer than 60 seconds the response also sends X-Should-Retry: false: the official SDKs do not retry such a request automatically and raise the error right away. For waits of 60 seconds or less (e.g. the per-minute limit) this header is not sent; the SDK waits for Retry-After and retries by itself.
Current Status
Use GET /v1/usage/rate-limit to track your limit usage without hitting 429. This endpoint itself counts toward the per-minute and per-day counters:
{
"success": true,
"data": {
"minute": { "used": 3, "limit": 60, "remaining": 57, "resets_in": 41 },
"day": { "used": 120, "limit": 10000, "remaining": 9880, "resets_in": 54000 }
}
}
Coding assistants: Claude Code, Codex and Cursor send many requests in a short time (in Claude Code, title generation and count_tokens requests count too). Since the limit is counted per key, give each tool its own key. :tr models also have a concurrency limit (see Türkiye models).
Per-Model Token Limits
Separate daily/monthly token and request limits can be defined per model on every API key. For personal keys these limits are set under Dashboard → API Keys → the key's settings button → Per-Model Limits; for partner project and customer keys they are configured from the Usage Analysis modal in the partner portal.
| Limit Type | Description |
|---|---|
| Daily Token | Total token usage within 24 hours for a specific model. Reset: every night at 00:00. |
| Monthly Token | Total tokens within the month for a specific model. Reset: the 1st of the month at 00:00. |
| Daily Requests | Total request count within 24 hours for a specific model. |
| Model Blocking | The use of a specific model can be blocked entirely. |
Model pattern examples:
gpt-4o— exact match, only this modelgoogle/*— wildcard, all of Google's models*— all (a general limit for all models)
Priority Order:
Exact match > wildcard > general (*). If a model has a specific limit defined, that is used.
Managing Limits
Tips:
- Apply exponential backoff when you get a 429 error
- Spread requests over time for batch operations
- Track your remaining limit with GET /v1/usage/rate-limit
- If you get the same error for too many models, a per-model limit may be defined — ask your administrator