The limit
1,200 requests / 60 seconds per API key
Measured on a rolling 60-second window. Check your current budget at any time with
GET /api/v1/me — the response includes a rateLimit object showing your remaining allowance.Retry-After header telling you exactly how many seconds to wait before your next request. Always read this header — it is the fastest path back into your budget.
Three strategies to stay under the limit
Stream instead of poll
For live prices and group chat, use WebSockets. A single subscription
delivers real-time updates as they happen without consuming any of your REST budget. A tight
polling loop that fires every second costs 3,600 requests per hour; a WebSocket subscription
costs zero.
Batch your reads
Prefer aggregate endpoints over per-resource loops.
GET /api/v1/positions returns all open
positions across perps, spot, and predictions in one call. GET /api/v1/groups/{id}/proposals
returns spot and prediction proposals for a group together. One call beats ten.Backoff example
The examples below implement a simple retry wrapper with exponential backoff and jitter. Backoff starts at 250 ms and caps at 8 seconds; theRetry-After header takes priority when present.