OmnAPI Rate Limits
Default request limits
Section titled “Default request limits”The default public limit is 2000 requests per 60 seconds for the applicable limit scope, such as the API key, account, or client IP.
The 429 response carries the active limit that fired. You can always retry
after Retry-After seconds.
When the limit fires, the response is 429 with body:
{ "success": false, "error": { "code": "RATE_LIMITED", "message": "Too many requests. Please retry after 42 seconds." }}Reading the headers
Section titled “Reading the headers”Every response (success or rate-limited) carries:
| Header | Meaning |
|---|---|
X-RateLimit-Limit | The active limit for this scope |
X-RateLimit-Remaining | Requests left in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Retry-After | Seconds to wait (only on 429) |
Handling 429 in code
Section titled “Handling 429 in code”async function call() { for (let attempt = 0; attempt < 5; attempt++) { const r = await fetch(url, { headers: { "x-api-key": key } }); if (r.status !== 429) return r.json();
const wait = Number(r.headers.get("Retry-After") ?? 1); await new Promise((res) => setTimeout(res, wait * 1000)); }
throw new Error("Rate limit retry budget exhausted");}Raising your limit
Section titled “Raising your limit”Contact support if your production load needs a higher allowance.