Limits
Authenticated trader REST routes are rate-limited to 100 operations per second per user. Requests over this limit are rejected with
429 Too Many Requests.Which routes are rate-limited
The rate limit applies to all authenticated trader routes — those requiring anx-api-key header:
| Route | Rate-limited |
|---|---|
GET /api/v1/user | Yes |
GET /api/v1/positions | Yes |
GET /api/v1/portfolio | Yes |
GET /api/v1/leaderboard | Yes |
GET /api/v1/open-orders | Yes |
GET /api/v1/fills | Yes |
POST /api/v1/orders | Yes |
PATCH /api/v1/orders/{order_id} | Yes |
DELETE /api/v1/orders/{order_id} | Yes |
GET /health | No |
GET /api/v1/markets | No |
| Admin routes | No |
What happens when exceeded
When a request exceeds the rate limit, the server responds with429 Too Many Requests and does not process the request:
Strategies for staying within limits
- Batch reads at startup: Fetch positions, open orders, and fills once when your client initializes, then keep state current via WebSocket events.
- Avoid redundant requests: Cache the leaderboard and portfolio responses locally. These do not change on every tick.
- Prefer WebSocket for order management:
submit_order,cancel_order, andamend_orderWebSocket operations do not count toward the REST rate limit.