Platform rate limits
Each workspace is limited to a fixed number of requests per minute based on its subscription. When the limit is reached, requests are rejected with429 Too Many Requests until the rolling 60-second window resets.
- Limits use a rolling 60-second window, the same window that applies to budget requests-per-minute limits.
- The daily cap applies to the Free plan only.
- Custom plans can arrange higher per-minute limits with Orq.ai.
- On-premise deployments are licensed rather than metered: plan-based limits do not apply. A single system-wide cap can be enforced with the
ORQ_SYSTEM_RPM_LIMITenvironment variable.
429 with a Retry-After header and the X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers.
Budget limits
Budgets apply configured limits to a named target. A budget defines one or more limits: Cost in USD, Tokens, and Requests per minute. See Budgets for how to configure them. Requests per minute always uses a rolling 60-second window, independent of the reset period. A monthly budget’s50 req/min still allows 50 requests in any single minute and resets its request counter 60 seconds after the first request in the window, not at month end. The reset period (Daily, Weekly, Monthly, Yearly, One-time) applies to cost and token limits only.
Limits on an API key
API keys do not carry limit fields of their own. Set cost, token, or requests-per-minute limits on a key by creating a Budget scoped to that API Key. The key’s remaining capacity is visible in the budget’s detail page, and its cost and token capacity in theX-RateLimit-*-Cost and X-RateLimit-*-Tokens response headers.
The unsuffixed
X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers report the plan’s platform rate limit on a successful request, not a budget’s requests-per-minute limit, because the platform limiter writes them last. A budget’s requests-per-minute values appear in these headers only on a 429 raised by that budget. Read budget request consumption from the budget’s detail page instead.Multiple limits on one request
A request can match several budgets at once: for example, a budget scoped to the workspace and another scoped to the calling API key. Every matching budget is enforced, and each tracks its own usage. The most restrictive applicable limit binds. See Budget levels and interaction for the full rules and worked examples.The 429 response
When any limit is exceeded, the gateway returns429 Too Many Requests with an OpenAI-compatible error body. Budget rejections carry scope_kind, scope_target_id, and dimension:
Budget rejection (requests per minute)
code and dimension identify the exceeded limit:
scope_kind and scope_target_id identify which budget rejected the request and are present only on budget rejections. The message text varies by limit type; use the code field for programmatic matching.
Rate limit headers
Rate limit headers are emitted per dimension, and each group of three is present only when that dimension applies to the request. A response therefore carries some of these headers, not all of them. Headers appear on successful requests (showing remaining capacity) as well as on rejections.
Two cases drop headers that the table otherwise lists as always present. The unsuffixed
X-RateLimit-* triplet is omitted when the request carries no workspace context, and in on-premise deployments unless ORQ_SYSTEM_RPM_LIMIT is set. Retry-After is omitted when a rejected budget never resets on a clock, such as a One-time budget.
Retries and fallbacks
429 is retryable. The gateway’s Retries feature retries on 429 by default with exponential backoff and honors the Retry-After header, and fallbacks route to a backup model when the primary is rate-limited. Retries run inside the gateway on a single incoming request (the platform rate limiter counts inbound client requests, not upstream calls), so they do not consume additional platform or budget quota.
See also
Budgets
Create budgets with cost, token, and requests-per-minute limits and configure alerts.
Budget levels
How budgets at different levels interact when several apply to the same request.
API Keys
Create and manage AI Gateway API keys, then scope a budget to cap usage.
Fallbacks & Retries
Retry rate-limited requests with backoff and route to fallback models.