Limits by tier
| Tier | Requests/min | Requests/month |
|---|---|---|
| Free | 20 | 250 |
| Pro | 60 | 5,000 |
| Team | Custom | Custom (contact sales) |
Rate limit headers
Every authenticated response includes rate limit headers (limit, remaining, and the reset time in unix epoch seconds) for each window:When you’re rate limited
If you exceed your limit, the API returns429, with the same X-RateLimit-*
headers above (so you can see which window was hit and when it resets), plus a
Retry-After header in seconds:
retry_after is the seconds to wait; reset is the
unix epoch second when the exceeded window clears:
Retry-After reflects the actual time to the window reset, not a fixed value: for
the per-minute window it ranges from 1-60s depending on when in the window you hit
the cap. (A 429 from the monthly window can have a much larger Retry-After; if
you’re hitting the monthly cap, upgrading your tier is usually the fix.)
Best practices
- Check remaining counts: use the
X-RateLimit-Remaining-*headers to throttle proactively - Respect Retry-After: wait the indicated time before retrying
- Use pagination: fetch fewer, larger pages instead of many small requests
- Cache responses: signal data doesn’t change frequently