Rate limits and quotas
Limits
Section titled “Limits”| Limit | Value | Refusal |
|---|---|---|
| Requests per minute, per key | 60 unless you set another, from 1 to 600 (Developers page → key → Limits) | 429 rate_limited with Retry-After |
| Requests in progress at once | 8 per account, across all your keys | 429 too_many_concurrent_requests with Retry-After: 1 |
| Requests per second, per IP address | 10, with bursts up to 40 | 429 from the edge, before your key is read |
| Monthly spending cap | Optional, per key; resets on the 1st (UTC) | 402 key_spend_cap_reached |
| Wallet balance | What you have added | 402 api_wallet_empty |
| Active keys | 20 per account, terminal keys included | Shown on the Developers page |
| Output per chat request | The model’s limit (32,768 tokens today) | max_tokens is lowered to it, not refused |
| Chat request size | About 4 MB after images are shrunk (up to 24 MB received) | 413 request_too_large |
| Image, video and speech request size | 1 MB | 413 request_too_large |
| Speech input | 4,096 characters | 400 input_too_long |
| Images per call | 1 |
Notes:
- The per-key minute is a clock minute: a burst across a minute boundary can briefly reach twice the limit.
Retry-Aftergives the seconds until the next minute. - A request counts as in progress from the moment it is accepted until its response, or its stream, has ended.
- When Aderra is busy receiving many large requests at once, a large request can get
503 overloaded_errorwithRetry-After: 5.
Retry well
Section titled “Retry well”Retry 429, 503 and 502, after the Retry-After header when there is one, with exponential backoff otherwise. Don’t retry 400, 401, 402 or 403: the request will be refused again until you change it. A refused or failed call costs nothing, so retrying is safe for your wallet.
The OpenAI and Anthropic SDKs already retry 429 and 5xx with backoff and honour Retry-After (2 retries by default). Raise it if you run near your limits:
import osfrom openai import OpenAI
client = OpenAI( base_url="https://api.aderra.ai/v1", api_key=os.environ["ADERRA_API_KEY"], max_retries=5, timeout=120,)const client = new OpenAI({ baseURL: 'https://api.aderra.ai/v1', apiKey: process.env.ADERRA_API_KEY, maxRetries: 5, timeout: 120_000,});# --retry covers 429, 502, 503 and 504, and honours Retry-Aftercurl --retry 5 \ https://api.aderra.ai/v1/models \ -H "Authorization: Bearer $ADERRA_API_KEY"Plan for scale
Section titled “Plan for scale”- Split traffic across keys by product or customer: each key has its own per-minute limit and cap. The 8 concurrent requests are per account.
- Stream long answers. A streamed request still holds one of your 8 slots until it ends, but your users see text sooner.
- Size
max_tokensto what you need. It sets how much each call holds from the wallet. - Need more than these limits allow? Contact us with your expected volume.