Limits by tier
| Tier | Requests/min | Requests/month | Max perPage |
|---|---|---|---|
| Free | 10 | 100 | 10 |
| Starter | 30 | 5,000 | 50 |
| Pro | 60 | 25,000 | 500 |
| Business | 120 | 100,000 | 500 |
Response headers
Every response includes rate limit and quota headers:| Header | Description |
|---|---|
X-RateLimit-Limit | Max requests per minute for your tier |
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
X-Quota-Limit | Included monthly quota (base plan) |
X-Quota-Used | Requests used this month |
X-Quota-Remaining | Requests remaining in base quota (can be 0 during overage) |
X-Quota-Overage-Limit | Hard limit including overage headroom (paid tiers only) |
X-Request-Id | Unique request ID for log correlation |
X-Quota-Overage-Limit is only present for paid tiers. When X-Quota-Used exceeds X-Quota-Limit, you are in the overage zone — requests continue but incur per-request charges. Requests are blocked at the hard limit. See Pricing for overage rates.
Handling 429 responses
When you exceed the rate limit, the API returns a429 status with a Retry-After header:
- Read the
Retry-Afterheader and wait before retrying - Implement exponential backoff for repeated 429s
- Use the SDK, which handles retries automatically
Quota exceeded
Paid tiers have overage headroom — requests continue past the base quota and are billed at your tier’s overage rate, up to the overage cap. Once the hard limit is reached:X-Quota-* response headers included on every API response.