Overview
Rate limits are enforced per API key. Different endpoint categories have different limits suited to their usage patterns.
Limits use a token bucket algorithm. The burst allowance lets you absorb short spikes above the sustained rate, then the bucket refills at the base rate.
Rate limit headers
Every response includes headers so you can monitor your consumption:
Example response headers:
Handling 429 responses
When you exceed a rate limit, the API returns429 Too Many Requests:
Retry-After header tells you exactly how long to wait:
Retry strategy
Implement exponential backoff with jitter rather than a fixed sleep:Tips to stay within limits
- Paginate efficiently — fetch larger pages (up to 100 records) instead of many small requests.
- Cache aggressively — portfolio summaries and trader lists don’t change every second.
- Use
since/until— filter by time range to avoid re-fetching old data. - One key per service — avoids different services competing for the same key’s budget.
- Monitor
X-RateLimit-Remaining— slow down proactively before hitting 0.

