Rate Limiting
The API uses a sliding window rate limiter per API key. The default limit is 60 requests per minute.
Response Headers
Every API response includes rate limit headers:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per minute |
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Example:
http
HTTP/1.1 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1700000060Rate Limit Exceeded
When you exceed the limit, you'll receive HTTP 429:
json
{
"success": false,
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Retry after 45 seconds."
}
}The Retry-After header tells you how many seconds to wait:
http
HTTP/1.1 429 Too Many Requests
Retry-After: 45Best Practices
- Cache responses when possible instead of making repeated identical requests
- Use pagination to reduce the number of requests (fetch 100 items at once instead of 10)
- Implement exponential backoff when retrying after a 429 response
- Use webhooks instead of polling for real-time data (e.g., new leads, new messages)
- Batch operations where possible to reduce total request count

