Rate Limits

Several independent limits apply across /v1/chat/completions, /v1/responses, and /v1/models -- the most restrictive one that applies wins.

Per-key and per-network request rate

Each API key is limited to 60 requests/minute. There's also a coarser, more generous per-network limit (300 requests/minute) as an abuse backstop, since one network can legitimately represent many users behind NAT. Either returns 429 rate_limit_exceeded.

Concurrency (hosted generations only)

Hosted generations -- not BYOK -- are limited by how many can run at once, at several levels simultaneously: your organization (by plan: Free allows 1, Pro 3, Max and Team 10), and the specific model and deployment serving the request, if an administrator has configured a capacity limit for it. Whichever limit is hit first determines the error:

  • 429 concurrency_limit_exceeded -- your organization's plan-level concurrency limit.
  • 429 model_capacity_reached -- the model or deployment itself is at its configured concurrency or distinct-user capacity for the current billing period. Existing users already counted for the period are never blocked by a user-capacity limit; only new ones are, once it's reached.

Monthly hosted credit quota

Each plan has a monthly hosted credit allowance -- hosted usage is metered in credits (tokens weighted by the model's credit multiplier), not raw tokens. Once exhausted (and unless your plan allows overages), hosted requests return 429 credit_limit_reached until the monthly period resets. BYOK usage never counts against this -- it's billed by the provider directly, though request and token counts are still recorded for your own usage analytics.

Handling 429s

Where the wait is predictable (a concurrency slot freeing up, a per-minute window resetting), the response includes a retry-after header, in seconds. It's omitted when there's no meaningful short retry window -- a monthly credit quota, for instance.

Terminal
HTTP/1.1 429 Too Many Requests
retry-after: 3

{
  "error": {
    "message": "Model \"studio/qwen3-0.6b\" is at its concurrent request limit right now (deployment level). Try again shortly.",
    "type": "model_capacity_reached",
    "code": "model_capacity_reached"
  }
}

Back off and retry, or upgrade your plan under Settings → Billing.