Rate Limits
Rate limiting is applied per API key after authentication.
Rate limits are enforced per company and use two limits:
| Limit | Default |
|---|---|
| Per minute | 100 requests per minute |
| Per day | 10,000 requests per day |
These defaults can be configured for a company. If a company has custom API key rate limits configured, those values are used instead.
Headers
Responses include standard rate limit headers so clients can monitor usage:
RateLimit-Limit: 100
RateLimit-Remaining: 95
RateLimit-Reset: 60
Per-Minute Limit Exceeded
When the per-minute limit is exceeded, the API returns HTTP 429:
{
"success": false,
"message": "Rate limit exceeded",
"error": "RATE_LIMIT_EXCEEDED",
"limit": 100,
"remaining": 0,
"resetTime": "2024-01-01T12:00:00.000Z",
"retryAfter": 60
}
Daily Limit Exceeded
When the daily limit is exceeded, the API returns HTTP 429:
{
"success": false,
"message": "Daily rate limit exceeded",
"error": "DAILY_RATE_LIMIT_EXCEEDED",
"limit": 10000,
"remaining": 0,
"resetTime": "2024-01-02T00:00:00.000Z",
"retryAfter": 3600,
"supportMessage": "Contact support if you need higher rate limits."
}
Client Guidance
When you receive HTTP 429, pause requests until the retryAfter period has elapsed. For automated integrations, use exponential backoff with jitter.