Docs Menu & Search

Documentation

Rate Limits

Per-plan request limits and how to handle 429 responses.

Limits by Plan

Rate limits apply to your whole account, on a rolling window: every API key you own shares them, so spreading requests over more keys doesn’t raise them. Institution accounts also have a shared per-institution limit.

Plan Requests/Minute Requests/Day API Keys
Free 5 500 1
Developer 60 10,000 5
Pro 120 Unlimited 50
Enterprise 200 (Custom on Request) Unlimited 100

When You Exceed a Limit

Requests over the limit return 429 with the code RATE_LIMIT_EXCEEDED. The response includes a Retry-After header (seconds to wait) and an X-RateLimit-Reset header (the Unix timestamp when capacity frees up).

// Status: 429 Too Many Requests
// Headers:
//   Retry-After: 42
//   X-RateLimit-Reset: 1750000042

{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Please slow down.",
    "retry_after_seconds": 42
  }
}

Handling 429s

  • Respect the Retry-After header before retrying.
  • Use exponential backoff with jitter for repeated retries.
  • Spread bursty workloads over time — adding API keys doesn’t add capacity, because every key on the account shares one limit.
  • If you consistently hit limits, upgrade your plan for higher throughput.

Need higher limits than Pro for a production workload? Get in touch.