Skip to content

Rate limits and quotas

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-After gives 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_error with Retry-After: 5.

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 os
from openai import OpenAI
client = OpenAI(
base_url="https://api.aderra.ai/v1",
api_key=os.environ["ADERRA_API_KEY"],
max_retries=5,
timeout=120,
)
  • 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_tokens to 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.