Rate limits
Every plan has a monthly quota, a sustained rate, and a burst capacity. The quota resets at the start of your billing period; the rate and burst limiters use a token bucket and refill continuously. Hitting either limiter returns a 429 Too Many Requests.
◆ Plan limits
| Plan | Monthly quota | Rate | Burst |
|---|---|---|---|
| Free | 3,000 / mo | 1 req/sec | 5 |
| Standard | 30,000 / mo | 3 req/sec | 15 |
| Pro | 300,000 / mo | 10 req/sec | 50 |
| Elite | 3,000,000 / mo | 25 req/sec | 150 |
| Enterprise | Custom | Custom | Custom |
Need a higher ceiling? Upgrade or contact sales for Enterprise.
◆ Response headers
| Header | Description |
|---|---|
| X-RateLimit-Limit | Your monthly quota for this key. |
| X-RateLimit-Remaining | Requests left in the current period. |
| X-RateLimit-Reset | ISO-8601 timestamp when your monthly quota resets (start of billing period). |
| Retry-After | Seconds to wait before retrying. Returned only on 429 responses. |
◆ Hitting the limit
- Honor Retry-After. The 429 response carries the seconds to wait before the next attempt. Hard-fail at this point if you don't need the data right now.
- Cache aggressively. The catalog moves daily, not per-second. A 5-minute cache on a busy endpoint shaves 99% of calls without affecting freshness.
- Batch with filters. One
GET /v2/events?coins=BTC,ETH,SOLbeats three single-coin requests. - Subscribe to webhooks (Elite+). Push delivery replaces polling. See Webhooks.
◆ Burst limits
A short-term burst limiter caps spikes separately from the monthly quota. See the Burst column above. Bursts above the cap return 429 immediately. The bulk export endpoint runs on a separate, slower limiter (1 request per minute on Elite).
Both limiters use a token bucket (not a fixed window): the monthly quota refills at the start of your billing period, the burst limiter refills continuously at the per-second rate. If you hit the burst limit, waiting 1s is usually enough to send the next call.
◆ Per-request timeout
Every request has a hard 30s server-side timeout. Slow responses return 500; reduce the page size (limit) or narrow filters before retrying. The bulk export endpoint is exempt; large exports may take longer.