Rate Limiting
Rate limiting behavior, the headers that describe your current limits, and best practices for gracefully handling 429 responses in your client.
Every endpoint is rate limited. No exceptions.
Limits
| Parameter | Value |
|---|---|
| Window | 1 hour |
| Max requests | 5,000 per IP |
Headers
Every response includes rate limit state:
| Header | Description |
|---|---|
X-RateLimit-Limit |
Maximum requests allowed in the current window |
X-RateLimit-Remaining |
Requests remaining in the current window |
X-RateLimit-Reset |
UTC epoch seconds when the window resets |
Retry-After |
Seconds until retry is allowed (only on 429 responses) |
Example Headers
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4999
X-RateLimit-Reset: 1628604000
Handling a 429
When you hit the limit:
- Read the
Retry-Afterheader. - Wait that long, then retry.
- If you're retrying in a loop, use exponential backoff. Don't hammer it.
{
"message": "Too many requests. Please try again later."
}