Skip to content

Rate limits

Limits are per account, in requests per minute:

PlanLimit
Free trial20 rpm
Monthly ($5)200 rpm
Annual ($54)300 rpm
Enterpriseup to 1,500 rpm

Every response reports where you stand:

RateLimit-Limit: 200
RateLimit-Remaining: 187
RateLimit-Reset: 42

When 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