Rate limits
Limits are per account, in requests per minute:
| Plan | Limit |
|---|---|
| Free trial | 20 rpm |
| Monthly ($5) | 200 rpm |
| Annual ($54) | 300 rpm |
| Enterprise | up to 1,500 rpm |
Every response reports where you stand:
RateLimit-Limit: 200RateLimit-Remaining: 187RateLimit-Reset: 42When you hit the limit
You get 429 rate_limited with a Retry-After header (seconds). Back off and retry:
async function withBackoff(fn) { for (let attempt = 0; attempt < 5; attempt++) { const resp = await fn(); if (resp.status !== 429) return resp; const wait = Number(resp.headers.get("Retry-After") ?? 2 ** attempt); await new Promise((r) => setTimeout(r, wait * 1000)); } throw new Error("rate limit retries exhausted");}Tips
- Rate limits count requests, not credits — one list call returning 50 comments is one request.
- Large pulls belong in async jobs, which run server-side and don’t fight your rpm budget.
- Need more than 300 rpm? Contact us about volume plans.
Next: Pagination · Async jobs