Skip to main content

Rate Limit Tiers

Rate limits are enforced per API key using a 60-second sliding window. Each key has a tier that determines its limits: All new API keys start on the Free tier.

Per-Mode Limits

Expensive modes have lower RPM caps, scaled proportionally to your tier’s base RPM: Dashboard sessions have a fixed 120 RPM limit.

How to Increase Your Limits

Check your current limits

Request a tier upgrade

Requests are reviewed by the Theo platform team. You’ll receive a rate_limit.upgraded webhook when approved.

Credit Balance

In addition to request rate limits, each account has a credit balance. When your balance reaches zero, subsequent requests return 402 insufficient_credits until you top up.

Handling 429 Responses

When rate limited, the API returns:
  • Status 429 with one of three codes:
    • rate_limit_exceeded — universal RPM exceeded
    • mode_rate_limit_exceeded — per-mode RPM exceeded
    • token_limit_exceeded — TPM exceeded
  • Retry-After header — seconds to wait before retrying
The SDK handles this automatically with exponential backoff (configurable via maxRetries).

Response Headers

Every response includes rate limit headers reflecting your tier’s actual limits: