Rate limits
Generous limits for automation, strict limits for anonymous traffic.
Limits#
| Surface | Limit |
|---|---|
| API keys | 600 requests per minute per key |
/public/* | 20 requests per minute per IP |
| Trader endpoints | Generous per session limits sized for a live interview |
Headers#
Responses include RateLimit-Remaining. When it reaches zero, the next request answers 429 with code rate_limited.
http
HTTP/1.1 429 Too Many Requests
Content-Type: application/problem+json
RateLimit-Remaining: 0Backing off#
typescript
async function withRetry(req: () => Promise<Response>, attempts = 5) {
for (let i = 0; i < attempts; i++) {
const res = await req();
if (res.status !== 429 && res.status < 500) return res;
await new Promise((r) => setTimeout(r, 2 ** i * 500 + Math.random() * 250));
}
throw new Error("Rubi API unavailable after retries");
}