Skip to main content

Rate limits

Rate limits are enforced per API key. When you exceed the rate limit, the API returns 429 Too Many Requests with a Retry-After header indicating how many seconds to wait.

Per-request query window

Every query endpoint (/v1/fills, /v1/trades, /v1/candles, /v1/funding, /v1/open-interest, /v1/mark-prices, /v1/vault-operations, and all /v1/analytics/*) enforces a maximum to - from window per request. This is independent of the archive-depth cap — you can reach any historical date within your tier, but each call must cover a bounded range. Exceeding the window returns 400 QUERY_WINDOW_EXCEEDED. Paginate by shifting from and to forward, not by raising limit. The no-filter 4h cap exists because unfiltered queries against billions of rows blow past database resource limits.

Handling rate limits

Error codes

All errors follow the same shape:

SDK error classes

Both SDKs provide typed error classes: