Rate Limits

Response Headers

Every API response includes rate limit headers:

| Header | Description | |--------|-------------| | X-RateLimit-Limit | Requests per minute for your tier | | X-RateLimit-Remaining | Remaining requests this window | | X-RateLimit-Reset | Unix timestamp when window resets | | Retry-After | Seconds to wait (only on 429) |

Tier Limits

| Tier | Requests/min | Requests/day | |------|-------------|--------------| | Beta | 60 | 10,000 | | Free | 20 | 1,000 | | Pro | 200 | 100,000 | | Enterprise | 1,000 | 1,000,000 |

Handling 429s

async function withRetry(fn: () => Promise<Response>): Promise<Response> {
  const res = await fn();
  if (res.status === 429) {
    const retryAfter = Number(res.headers.get("Retry-After") ?? "5");
    await new Promise((r) => setTimeout(r, retryAfter * 1000));
    return fn();
  }
  return res;
}

Fair Use Policy

Rate limits protect all users equally. Burst traffic, automation bots, or bulk requests that disrupt service may result in temporary suspension. Contact support if your use case requires higher limits.