How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Deribit Matching Engine API

The Matching Engine API from Deribit — 23 operation(s) for matching engine.

Deribit Matching Engine API is one of 19 APIs that Deribit publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Matching Engine. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, authentication docs, and rate-limit docs.

This API exposes 23 operations across 23 paths, and defines 80 schemas. It is described by OpenAPI 3.0.0, at version 2.1.1.

Requests are made against a single base URL, https://test.deribit.com/api/v2.

23 operations 23 paths 80 schemas 23 GET

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.0
API Version
2.1.1
Base URL
https://www.deribit.com/api/v2
Resource Areas
1

Paths & Operations 23

Across 23 paths, the API surfaces 23 operations — 23 GET. Each is listed below with its method, path, parameters, and response codes.

Matching Engine 23
GET
/private/simulate_block_trade
Checks if a block trade can be executed without actually executing it. Use this method to verify that a block trade will succeed before proceeding with the actual execution. 📖 Related Article: [Block…
2 params body → 200
GET
/private/verify_block_trade
Verifies and creates a block trade signature. This is the first step in the block trade workflow - the first party calls this method to generate a signature that must be shared with the second party.…
4 params body → 200
GET
/private/execute_block_trade
Executes a block trade. This is the second step in the block trade workflow - the second party calls this method with the signature received from the first party to execute the trade. The whole reque…
5 params body → 200
GET
/private/create_combo
Verifies and creates a combo book or returns an existing combo matching the given trades. Combos allow trading on multiple instruments (futures and options) simultaneously as a single strategy. If a…
1 param body → 200
GET
/private/cancel_all
Cancels all open orders and trigger orders for the authenticated account across all currencies and instrument kinds. This is a bulk cancellation operation useful for quickly clearing all active order…
2 params body → 200
GET
/private/cancel_all_by_instrument
Cancels all open orders for a specific instrument. This is useful for quickly clearing all orders for a single instrument. Orders can be optionally filtered by order type (limit, market, stop, etc.).…
5 params body → 200
GET
/private/cancel_all_by_currency
Cancels all open orders for a specific currency. This is useful for quickly clearing all orders across multiple instruments in a currency. Orders can be optionally filtered by instrument kind (future…
5 params body → 200
GET
/private/cancel_all_by_currency_pair
Cancels all open orders for a specific currency pair. This is useful for quickly clearing all orders across instruments in a currency pair. Orders can be optionally filtered by instrument kind (futur…
5 params body → 200
GET
/private/cancel_all_by_kind_or_type
Cancels all open orders in one or more currencies, optionally filtered by instrument kind and/or order type. This provides flexible bulk cancellation across multiple currencies. Specify one or more c…
5 params body → 200
GET
/private/cancel_by_label
Cancels all orders (including trigger orders) that have a specific label. This is useful for managing groups of related orders that share the same label. Orders can be cancelled across all currencies…
2 params body → 200
GET
/private/cancel_quotes
Cancels quotes (mass quote orders) based on various criteria. This method provides flexible options for cancelling quotes: - delta: Cancels quotes within a delta range defined by mindelta and maxdelt…
10 params body → 200
GET
/private/cancel
Cancels a specific order identified by its order ID. The order must be open (not yet filled or cancelled) to be cancelled successfully. Once cancelled, the order is removed from the order book and ca…
1 param body → 200
GET
/private/buy
Places a buy order for an instrument. Supports various order types including limit, market, stop, and advanced order types (stop-limit, take-profit, take-profit-limit, trailing-stop, etc.). You can s…
20 params body → 200
GET
/private/sell
Places a sell order for an instrument. Supports various order types including limit, market, stop, and advanced order types (stop-limit, take-profit, take-profit-limit, trailing-stop, etc.). You can…
20 params body → 200
GET
/private/edit
Modifies an existing order by changing its price, amount, and/or other properties such as time-in-force, post-only, reduce-only, trigger conditions, or advanced order type. The order is identified by…
13 params body → 200
GET
/private/edit_by_label
Modifies an order identified by its label. This method works only when there is exactly one open order with the specified label. You can change the order's price, amount, and/or other properties such…
12 params body → 200
GET
/private/close_position
Places a reduce-only order to close an existing position. Reduce-only orders can only reduce or close a position; they cannot open a new position or increase an existing one. You can specify whether…
3 params body → 200
GET
/private/get_mmp_config
Retrieves Market Maker Protection (MMP) configuration for an index. Returns all currently active MMP parameters for the selected index, including the interval, frozentime, quantity/delta/vega limits,…
3 params body → 200
GET
/private/get_mmp_status
Retrieves Market Maker Protection (MMP) status for a triggered index or MMP group. Returns the live MMP state including whether MMP is enabled or triggered, remaining frozen time (if triggered), whet…
3 params body → 200
GET
/private/set_mmp_config
Configures Market Maker Protection (MMP) for a specific index. This method sets the monitoring window, freeze duration, and exposure limits (quantity, delta, vega, and Maximum Quote Quantity). At lea…
10 params body → 200
GET
/private/reset_mmp
Resets Market Maker Protection (MMP) limits for the specified currency pair or MMP group. If MMP protection has been triggered and quoting is frozen, this method allows you to manually resume quoting…
3 params body → 200
GET
/private/mass_quote
Places buy and/or sell orders (quotes) on one or more instruments simultaneously. This method is designed for market makers who need to quote on multiple instruments efficiently. Requirements: - Canc…
6 params body → 200
GET
/private/move_positions
Moves positions from a source subaccount to a target subaccount. This operation transfers open positions between subaccounts, which is useful for rebalancing or reorganizing trading activities. Posit…
4 params body → 200

Schemas 80

The contract defines 80 schemas that model the data the API accepts and returns. The most detailed are order (52 properties), user_trade (38 properties), combo (6 properties), block_trade (6 properties). Each schema is shown below with its type and property counts.

order_state_in_user_trade
string
Order state: "open", "filled", "rejected", "cancelled", "untriggered" or "archive" (if order was archived)
trigger_offset
number
The maximum deviation from the price peak beyond which the order will be triggered (Only for trailing trigger orders)
api
boolean
true if created with API
trigger
string
Trigger type (only for trigger orders). Allowed values: "indexprice", "markprice", "lastprice".
combo_id
string
Unique combo identifier
block_trade_id
string
Block trade id
contracts
number
It represents the order size in contract units. (Optional, may be absent in historical data).
kind_with_combo_all
string
Instrument kind: "future", "option", "spot", "futurecombo", "optioncombo", "combo" for any combo or "any" for all
order_type
string
Order type: "limit", "market", "stoplimit", "stopmarket", "takelimit", "takemarket", "trailingstop"
reduce_only
boolean
Optional (not added for spot). 'true for reduce-only orders only'
position_move
object
1 property 1 required
combo_state
string
Combo state: "active", "inactive"
price
number
Price in base currency
trigger_reference_price
number
The price of the given trigger at the time when the order was placed (Only for trailing trigger orders)
display_amount
number
The actual display amount of iceberg order. Absent for other types of orders.
PrivateGetBlockTradeResponse
object
3 properties 2 required
filled_amount
number
Filled amount of the order. For perpetual and futures the filledamount is in USD units, for options - in units or corresponding cryptocurrency contracts, e.g.,…
block_trade_id_in_result
string
Block trade id - when trade was part of a block trade
PrivatePositionMoveResponse
object
3 properties 2 required
PrivateBuyAndSellResponse
object
3 properties 2 required
is_secondary_oto
boolean
true if the order is an order that can be triggered by another order, otherwise not present.
PrivateCancelAllResponse
object
3 properties 2 required
trade_id
string
Unique (per currency) trade identifier
cancel_reason
string
Enumerated reason behind cancel "userrequest", "autoliquidation", "cancelondisconnect", "riskmitigation", "pmeriskreduction" (portfolio margining risk reductio…
PrivateCancelQuotesResponse
object
3 properties 2 required
timestamp
integer
The timestamp (milliseconds since the Unix epoch)
instrument_id
integer
Instrument ID
currency
string
Currency, i.e "BTC", "ETH", "USDC"
order
object
52 properties 12 required
amount
number
It represents the requested order size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base…
PrivateMassQuoteResponse
object
3 properties 2 required
index_name_derivative
string
Index identifier of derivative instrument on the platform
direction
string
Direction: buy, or sell
block_trade
object
6 properties 3 required
PrivateCancelResponse
object
3 properties 2 required
advanced
string
advanced type: "usd" or "implv" (Only for options; field is omitted if not applicable).
web
boolean
true if created via Deribit frontend (optional)
PrivateGetMmpStatusResponse
object
3 properties 2 required
position_move_trade
object
6 properties 4 required
block_trade_signature
string
Signature of block trade It is valid only for 5 minutes around given timestamp
instrument_name
string
Unique instrument identifier
PrivateSimulateBlockTradeResponse
object
3 properties 2 required
block_trade_order
boolean
true if order made from blocktrade trade, added only in that case.
user_trade
object
38 properties 15 required
original_order_type
string
Original order type. Optional field
combo_leg
object
2 properties
average_price
number
Average fill price of the order
usd
number
Option price in USD (Only if advanced="usd")
PrivateCreateComboResponse
object
3 properties 2 required
implv
number
Implied volatility in percent. (Only if advanced="implv")
label_presentation
string
User defined label (presented only when previously set for order by user)
simple_order_type
string
Order type: "all", "limit", "stop", "take", "trailingstop", "trailingtake"
combo_leg_amount
integer
Size multiplier of a leg. A negative value indicates that the trades on given leg are in opposite direction to the combo trades they originate from
tick_direction
integer
Direction of the "tick" (0 = Plus Tick, 1 = Zero-Plus Tick, 2 = Minus Tick, 3 = Zero-Minus Tick).
trigger_price
number
Trigger price (Only for future trigger orders)
profit_loss
number
Profit and loss in base currency.
reject_post_only
boolean
true if order has rejectpostonly flag (field is present only when postonly is true)
oco_ref
string
Unique reference that identifies a onecancelsothers (OCO) pair.
trade_timestamp
integer
The timestamp of the trade (milliseconds since the UNIX epoch)
PrivateVerifyBlockTradeResponse
object
3 properties 2 required
nonce
string
Nonce
mobile
boolean
Optional field with value true added only when created with Mobile Application
order_id
string
Unique order identifier
trigger_fill_condition
string
The fill condition of the linked order (Only for linked order types), default: firsthit. "firsthit" - any execution of the primary order will fully cancel/plac…
PrivateGetMmpConfigResponse
object
3 properties 2 required
time_in_force
string
Order time in force: "goodtilcancelled", "goodtilday", "fillorkill" or "immediateorcancel"
trade_seq
integer
The sequence number of the trade within instrument
index_name
string
Index identifier, matches (base) cryptocurrency with quote currency
PrivateSetMmpConfigResponse
object
3 properties 2 required
refresh_amount
number
The initial display amount of iceberg order. Iceberg order display amount will be refreshed to that value after match consuming actual display amount. Absent f…
PrivateEditResponse
object
3 properties 2 required
combo
object
6 properties
OkResponse
object
3 properties 2 required
post_only
boolean
true for post-only orders only
currency_with_any_and_list
The currency symbol, list of currency symbols or "any" for all
label
string
User defined label (up to 64 characters)
role
string
Trade role of the user: maker or taker
open_order_price
Price in base currency or "marketprice" in case of open trigger market orders
order_state
string
Order state: "open", "filled", "rejected", "cancelled", "untriggered"
triggered
boolean
Whether the trigger order has been triggered

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

deribit-matching-engine-api-openapi.yml Raw ↑

Other APIs Deribit publishes across the network.

Deribit WebSocket API
Deribit FIX API
Deribit Account Management API
Deribit Authentication API
Deribit Block RFQ API
Deribit Block Trade API
Deribit Combo Books API
Deribit Mark Price API
Deribit Market Data API
Deribit Portfolio Management API
Deribit Private API
Deribit Public API
Where this information came from

This is an independent, third-party profile of Deribit Matching Engine API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.