Rate Limits & Plans
Request quotas protect the API from abuse while ensuring fair access for all users.
Current Limits
| Scope | Limit | Window | Key By |
|---|---|---|---|
| Free Tier | 60 requests | 1 minute | API Key |
| Pro Tier | 500 requests | 1 minute | API Key |
| Enterprise Tier | 3,000 requests | 1 minute | API Key |
| Auth Endpoints | 10 requests | 1 minute | IP Address |
Rate Limit Headers
Every response includes headers indicating your current usage:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per window |
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Retry-After | Seconds to wait (only on 429 responses) |
Handling 429 Responses
Retry with backoff
async function fetchWithRetry(url, apiKey, retries = 3) {
for (let i = 0; i < retries; i++) {
const res = await fetch(url, {
headers: { "X-API-Key": apiKey }
});
if (res.status !== 429) return res;
const retryAfter = res.headers.get("Retry-After") || "5";
await new Promise(r => setTimeout(r, parseInt(retryAfter) * 1000));
}
throw new Error("Rate limited after retries");
}Plans
Free
$0/mo
- 60 req/min
- BTC markets only
- 24-hour history
- Community support
Pro
$17/mo
- 500 req/min
- All crypto markets
- Unlimited history
- 1 WebSocket connection
- Priority support
Enterprise
$249/mo
- 3,000 req/min
- All markets + custom
- Unlimited history
- 10 WebSocket connections
- White-glove support