30 November 2020 updated
In order to safeguard order processing capacity, Deribit has imposed the following rate limit system implemented per sub-account.
Some market makers, specifically, option market makers, can be eligible for higher rate limits. However, they should apply for the increased rates by contacting our support team, which will evaluate if they meet the criteria.
Clients can check their actual limits on https://www.deribit.com/main#/account?scrollTo=api page, or can query the system using the /private/get_account_summary method.
Deribit has two different Rate Limits, one for Matching Engine Requests and another for all other requests (Non-Matching Engine).
1 Matching engine requests
Each sub-account has a rate limit that is updated in line with the table below every hour and this approach is the same for WS, REST and FIX.
The rate limit is measured as an aggregate of all books and currencies.
When the counter is exhausted the user will get the following error message "too_many_requests" 10028. When you get a 10028 error and you want to cancel your orders, the best approach would be to wait the request refill time (see table) and send a mass cancel.
2 Non-matching engine requests
Each sub-account has a rate limit of 20 requests per second with a burst of 100. This setup is the same for WS, REST and FIX.
These limits include session-level messages like a heartbeat, test request etc.
Overview of Matching Engine requests
All requests not in the list below are treated as Non-Matching Engine Requests
API V2
/api/v2/private/buy
/api/v2/private/sell
/api/v2/private/edit
/api/v2/private/cancel
/api/v2/private/cancel_all
/api/v2/private/cancel_all_by_instrument
/api/v2/private/cancel_all_by_currency
/api/v2/private/close_position
/api/v2/private/verify_block_trade
/api/v2/private/execute_block_trade
/api/v2/private/cancel_by_label
API V1
/api/v1/private/buy
/api/v1/private/sell
/api/v1/private/edit
/api/v1/private/cancel
/api/v1/private/cancelall
FIX
new_order_single
order_cancel_request
order_mass_cancel_request
order_cancel_replace_request