Rate limits
The following rate limits apply per IP address:
REST requests share an aggregated weight limit of 1200 per minute.
All documented
exchange
API requests have a weight of1 + floor(batch_length / 40)
. For example, unbatched actions have weight1
and a batched order request of length 79 has weight2
.The following
info
requests have weight 2:l2Book, allMids, clearinghouseState, orderStatus, spotClearinghouseState, exchangeStatus.
All other documented
info
requests have weight 20.All
explorer
API requests have a weight of 40.
Maximum of 100 websocket connections
Maximum of 1000 websocket subscriptions
Maximum of 10 unique users across user-specific websocket subscriptions
Maximum of 2000 inbound messages per minute across all websocket connections
Use websockets for lowest latency realtime data. See the python SDK for a full-featured example.
Address-based L1 Rate limits
The L1 rate limiting logic will allow 1 requests per 1 USDC traded cumulatively since address inception.
Using an order value of 100 USDC, this only requires a fill rate of 1%.
Each address starts with an initial buffer of 10000 requests. When rate limited, an address will still be allowed one request every 10 seconds.
Cancels have cumulative limit min(limit + 100000, limit * 2)
where limit
is the default limit for other actions. This way, hitting the address-based rate limit will still allow open orders to be canceled.
Note that this rate limit only applies to L1 actions, not info requests.
Batched Requests
A batched request with n
orders (or cancels) is treated as one request for IP based rate limiting, but as n
requests for address-based L1 rate limiting.
Last updated