Rate Limit Tiers
Rate limits are applied per API key and vary by plan:
Starter
Free tierGrowth
Most popularEnterprise
Custom limitsRate Limit Headers
Every API response includes rate limit information in headers:
HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 950
X-RateLimit-Reset: 1703088000
Retry-After: 60 // Only present when rate limitedX-RateLimit-Limit
Maximum requests allowed per window
X-RateLimit-Remaining
Requests remaining in current window
X-RateLimit-Reset
Unix timestamp when the limit resets
Handling Rate Limits
When rate limited, you will receive a 429 status code:
{
"error": {
"type": "rate_limit_error",
"code": "too_many_requests",
"message": "Rate limit exceeded. Retry after 60 seconds.",
"retryAfter": 60
}
}Best Practices
Implement Exponential Backoff
When rate limited, wait progressively longer between retries: 1s, 2s, 4s, 8s...
Monitor Rate Limit Headers
Track remaining requests and slow down before hitting limits
Use Batch Endpoints
Batch multiple quotes in a single request to reduce API calls
Cache Responses
Cache quote results for identical requests within their validity period
SDK Automatic Handling
Our SDKs automatically handle rate limits with exponential backoff:
const coverkit = new CoverKit({
apiKey: process.env.COVERKIT_API_KEY,
// Rate limit handling is automatic, but you can configure it
maxRetries: 3,
retryDelay: 1000, // Initial delay in ms
});
// SDK automatically retries on 429 with exponential backoff
const quote = await coverkit.quotes.create({...});Need Higher Limits?
Contact our sales team to discuss custom rate limits for your use case. Enterprise plans include dedicated rate limit pools and priority support.