Rate Limits and Quotas
Limits depend on the endpoint and account. Pro remains active after the wallet reaches zero, but paid operations still need funds.
| Operation | Limit | Shared by |
|---|---|---|
| Chat completions | Free: 20/min; Pro: 120/min | Requests using the same account, including PATs and BYOK |
| Agent run admission | Uses the same account chat bucket; one admission per run | Chat and agent starts on the account |
| Password login | 5/min | IP address |
| Signup | 10/hour | IP address |
| Password-reset requests | 3/hour | IP address |
These counters use fixed windows in the serving API process. They are not a published multi-region quota contract. Provider limits apply separately. Other media endpoints have their own validation and provider constraints; do not assume every media call shares the chat bucket.
When limited
HTTP 429 means wait before sending more requests. Honor Retry-After and use exponential backoff. An example Nyquest response is:
HTTP/1.1 429 Too Many Requests
Retry-After: 60
Content-Type: application/json
{"error":{"message":"Rate limit exceeded. Please slow down.","type":"rate_limit_error","retry_after":60}}The delay is retry guidance, not an exact remaining-window countdown. Inspect both the status and body; provider and endpoint-specific error shapes can differ. Use PATs for integrations instead of repeatedly signing in.
Agent runs
Each run has a maximum of 20 planner steps, with a default of 6 and an optional lower project cap. The Agent Mode cost guide explains dollar accounting and stopping behavior. There is no published Free-3/Pro-10 concurrent-run allowance; do not derive a concurrency guarantee from old glossary entries.
Billing and support
Funding through Checkout (minimum $5) activates Pro. View recorded usage in the app and credits/debits through account billing history or GET /billing/ledger. Paid capacity is separate from rate limits. Pro live support allows one active support conversation. For higher limits or an inaccessible account, use Contacting Support.
Related articles
Audio output length
POST /v1/audio/generate caps the AUDIO OUTPUT at a configurable token
limit, not the input text. Default is 4096 tokens (~3 minutes of audio,
~400 words). Override via the tts_max_tokens body parameter:
tts_max_tokens | Approx audio | Approx words |
|---|---|---|
| 4096 (default) | ~3 min | ~400 |
| 8192 | ~6 min | ~800 |
| 16384 | ~12 min | ~1500 |
| 32768 | ~24 min | ~3000 |
Values outside [256, 32768] are clamped server-side.
BYOK note: when using a BYOK endpoint that targets OpenAI's
/v1/audio/speech (or compatible), the OpenAI API has its own input
cap of 4096 characters per request. The backend rejects requests
exceeding this with HTTP 413 PAYLOAD_TOO_LARGE so you don't get silent
truncation. For longer text on BYOK, split into chunks client-side.