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 Trading API

The Trading API from Deribit — 38 operation(s) for trading.

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

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

This API exposes 38 operations across 38 paths, and defines 91 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.

38 operations 38 paths 91 schemas 38 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 38

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

Trading 38
GET
/private/get_settlement_history_by_currency
Retrieves settlement, delivery, and bankruptcy events that have affected your account for a specific currency. Settlements occur when futures or options contracts expire and are settled at the delive…
5 params body → 200
GET
/private/get_settlement_history_by_instrument
Retrieves settlement, delivery, and bankruptcy events for a specific instrument that have affected your account. Settlements occur when futures or options contracts expire and are settled at the deli…
5 params body → 200
GET
/private/get_order_history_by_instrument
Retrieves the order history for a specific instrument. The history includes orders that have been partially or fully filled, as well as cancelled orders (if includeunfilledorders is set to true). Res…
8 params body → 200
GET
/private/get_order_history_by_currency
Retrieves the order history for a specific currency. The history includes orders that have been partially or fully filled, as well as cancelled orders (if includeunfilledorders is set to true). Resul…
9 params body → 200
GET
/private/get_order_state
Retrieves the current state of an order identified by its order ID. The response includes order details such as status (open, filled, cancelled), filled amount, remaining amount, price, and other ord…
1 param body → 200400
GET
/private/get_order_state_by_label
Retrieves the state of recent orders that have a specific label. This is useful for tracking orders that share the same label, which is helpful for managing related orders. Results are filtered by cu…
2 params body → 200400
GET
/private/get_open_orders
Retrieves a list of all open orders for the authenticated account across all currencies. Open orders are orders that have been placed but not yet filled or cancelled. Results can be filtered by instr…
2 params body → 200
GET
/private/get_open_orders_by_instrument
Retrieves a list of all open orders for a specific instrument. Open orders are orders that have been placed but not yet filled or cancelled. Results can be filtered by order type. This method is usef…
2 params body → 200
GET
/private/get_open_orders_by_currency
Retrieves a list of all open orders for a specific currency. Open orders are orders that have been placed but not yet filled or cancelled. Results can be filtered by instrument kind and order type. T…
3 params body → 200
GET
/private/get_open_orders_by_label
Retrieves a list of all open orders that have a specific label within a given currency. This is useful for tracking and managing groups of related orders that share the same label. Open orders are or…
2 params body → 200
GET
/private/get_order_margin_by_ids
Retrieves the initial margin requirements for one or more orders identified by their order IDs. Initial margin is the amount of funds required to open a position with these orders. This method is use…
1 param body → 200
GET
/private/get_trigger_order_history
Retrieves a detailed log of all trigger orders (stop orders, take-profit orders, etc.) for the authenticated account. The log includes trigger order creation, activation, execution, and cancellation…
4 params body → 200
GET
/private/get_user_trades_by_instrument
Retrieves the latest user trades that have occurred for a specific instrument. Returns trade details including price, amount, direction, timestamp, trade ID, and order ID. Results can be filtered by…
9 params body → 200
GET
/private/get_user_trades_by_instrument_and_time
Retrieves the latest user trades that have occurred for a specific instrument within a specified time range. Returns trade details including price, amount, direction, timestamp, trade ID, and order I…
7 params body → 200
GET
/private/get_user_trades_by_currency
Retrieves the latest user trades that have occurred for instruments in a specific currency. Returns trade details including price, amount, direction, timestamp, trade ID, and order ID for all instrum…
10 params body → 200
GET
/private/get_user_trades_by_currency_and_time
Retrieves the latest user trades that have occurred for instruments in a specific currency within a specified time range. Returns trade details including price, amount, direction, timestamp, trade ID…
8 params body → 200
GET
/private/get_user_trades_by_order
Retrieves all trades that were executed from a specific order. When an order is filled, it may result in multiple trades (partial fills). This method returns all trades associated with a given order…
4 params 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_margins
Calculates margin requirements for a hypothetical order on a given instrument. Returns initial margin and maintenance margin for the specified instrument, quantity, and price. This method is useful f…
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
GET
/api/v2/private/get_open_orders
Get Open Orders
get_open_orders → 200401429500

Schemas 91

The contract defines 91 schemas that model the data the API accepts and returns. The most detailed are order (52 properties), user_trade (38 properties), trigger_order_history_record (20 properties), Order (19 properties). Each schema is shown below with its type and property counts.

settlement_type
string
The type of settlement. settlement, delivery or bankruptcy.
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)
continuation
string
Continuation token for pagination.
api
boolean
true if created with API
order_id_initial_margin_pair
object
3 properties 2 required
trigger
string
Trigger type (only for trigger orders). Allowed values: "indexprice", "markprice", "lastprice".
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
PrivateGetUserTradesByOrderResponse
object
2 properties 1 required
PrivateGetOrderStateByLabelResponse
object
3 properties 2 required
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'
sorting
string
position_move
object
1 property 1 required
PrivateGetMarginsResponse
object
3 properties 2 required
price
number
Price in base currency
PrivateGetOrderHistoryResponse
object
3 properties 2 required
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.
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.,…
orders
array
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
PrivateGetTriggerOrderHistoryResponse
object
3 properties 2 required
timestamp
integer
The timestamp (milliseconds since the Unix epoch)
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…
settlement
object
14 properties 7 required
PrivateMassQuoteResponse
object
3 properties 2 required
index_name_derivative
string
Index identifier of derivative instrument on the platform
GetOpenOrdersResponse
object
3 properties 2 required
direction
string
Direction: buy, or sell
PrivateGetOrderMarginByIdsResponse
object
3 properties 2 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
PrivateGetOrderStateResponse
object
3 properties 2 required
instrument_name
string
Unique instrument identifier
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
average_price
number
Average fill price of the order
usd
number
Option price in USD (Only if advanced="usd")
simple_order_type
string
Order type: "all", "limit", "stop", "take", "trailingstop", "trailingtake"
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)
trigger_order_history_record
object
20 properties 15 required
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)
PrivateGetOpenOrdersResponse
object
3 properties 2 required
order_type2
string
Order type: "all", "limit", "triggerall", "stopall", "stoplimit", "stopmarket", "takeall", "takelimit", "takemarket", "trailingall", "trailingstop"
ErrorMessageResponse
object
4 properties 3 required
mobile
boolean
Optional field with value true added only when created with Mobile Application
max_price
number
The maximum price for the future. Any buy orders you submit higher than this price, will be clamped to this maximum.
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…
PrivateSettlementResponse
object
3 properties 2 required
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…
PrivateGetUserTradesHistoryResponse
object
3 properties 2 required
PrivateEditResponse
object
3 properties 2 required
order_state_stop
string
Order state: "triggered", "cancelled", or "rejected" with rejection reason (e.g. "rejected:reducedirection").
kind
string
Instrument kind: "future", "option", "spot", "futurecombo", "optioncombo"
min_price
number
The minimum price for the future. Any sell orders you submit lower than this price will be clamped to this minimum.
OkResponse
object
3 properties 2 required
post_only
boolean
true for post-only orders only
Order
object
A single open order from the authenticated portfolio.
19 properties 8 required
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)
open_order_price
Price in base currency or "marketprice" in case of open trigger market orders
JsonRpcError
object
JSON-RPC 2.0 error envelope returned for failed requests.
3 properties 2 required
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-trading-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 Matching Engine API
Deribit Portfolio Management API
Deribit Private API
Where this information came from

This is an independent, third-party profile of Deribit Trading 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.