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

Private methods require authentication. All requests must include a valid OAuth2 token.A token can be requested using the /public/auth method.When using the websockets protocol, the token must be included as a parameter access_token in the message. When using REST (HTTP GET), the token may also be passed in the Authorization header.

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

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

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

126 operations 126 paths 253 schemas 126 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 126

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

Private 126

Private methods require authentication. All requests must include a valid OAuth2 token. A token can be requested using the /public/auth method. When using the websockets protocol,…

GET
/private/get_positions
Retrieves all open positions for the authenticated account. Returns position details including size, average entry price, mark price, unrealized P&L, initial margin, maintenance margin, and other pos…
3 params body → 200400
GET
/private/get_position
Retrieves the open position for a specific instrument. Returns detailed position information including size, average entry price, mark price, unrealized P&L, initial margin, maintenance margin, and o…
1 param body → 200400
GET
/private/get_account_summary
Retrieves the account summary for a specific currency. The summary includes balance, equity, available funds, initial margin, maintenance margin, and other margin-related information. To retrieve the…
3 params body → 200
GET
/private/get_account_summaries
Retrieves a per-currency list of account summaries for the authenticated user. Each summary includes balance, equity, available funds, and margin information for each currency. To retrieve summaries…
2 params body → 200
GET
/private/pme/simulate
Calculates the Extended Risk Matrix (ERM) and detailed margin information for Portfolio Margin accounts. The ERM provides a comprehensive view of portfolio risk across different scenarios and market…
3 params body → 200
GET
/private/simulate_portfolio
Calculates portfolio margin requirements and risk metrics for simulated positions or the current portfolio. This method helps you understand margin requirements before opening new positions or assess…
3 params body → 200
GET
/private/get_access_log
Retrieves a log of API access attempts and authentication events for the authenticated account. The log includes information such as IP addresses, timestamps, API methods called, and authentication s…
2 params body → 200
GET
/private/get_affiliate_program_info
Retrieves information about the affiliate program status for the authenticated account. The response includes the number of referred affiliates, total payouts earned, pending payouts, and the unique…
body → 200
GET
/private/enable_affiliate_program
Enables the affiliate program for the authenticated account. Once enabled, you can earn commissions by referring new users to Deribit. After enabling, you will receive a unique affiliate link that ca…
body → 200
GET
/private/change_margin_model
Changes the margin model for the authenticated account or a specified subaccount. Margin models determine how margin requirements are calculated (e.g., Standard Margin vs. Portfolio Margin). Changing…
3 params body → 200
GET
/private/get_user_locks
Retrieves information about any account locks or restrictions currently active on the authenticated account. Account locks may be applied for security reasons, compliance requirements, or administrat…
body → 200
GET
/private/set_self_trading_config
Configures self-trading prevention settings for the account. Self-trading occurs when orders from the same account (or related subaccounts) match against each other. You can configure whether self-tr…
3 params body → 200
GET
/private/set_disabled_trading_products
Configures which trading products (instruments, currencies, or instrument types) are disabled for a subaccount. Disabled products cannot be traded by the subaccount, providing a way to restrict tradi…
2 params → 200
GET
/private/disable_api_key
Disables an API key, preventing it from being used to authenticate API requests. The key remains in your account but cannot be used until it is re-enabled. This is useful for temporarily suspending a…
1 param body → 200
GET
/private/enable_api_key
Enables a previously disabled API key, restoring its ability to authenticate API requests. The API key can be used immediately after being enabled. 📖 Related Article: [Creating new API key on Deribit…
1 param body → 200
GET
/private/create_api_key
Creates a new API key with the specified scope and permissions. API keys are used for programmatic access to the Deribit API and can be restricted to specific operations and IP addresses. The respons…
4 params body → 200
GET
/private/change_scope_in_api_key
Updates the scope (permissions) for an existing API key. The scope determines which operations the API key can perform (e.g., read-only, read-write, trading, etc.). When the scope is changed, the API…
2 params body → 200
GET
/private/change_api_key_name
Updates the display name for an API key. The name is used for identification purposes in the API key list and does not affect the key's functionality or permissions. 📖 Related Article: [Creating new…
2 params body → 200
GET
/private/list_api_keys
Retrieves a list of all API keys associated with the authenticated account. The response includes key details such as ID, name, scope, creation date, last usage, and status (enabled/disabled), but do…
→ 200
GET
/private/reset_api_key
Generates a new secret key for an existing API key while keeping the same key ID and other properties. This is useful if the secret has been compromised or needs to be rotated for security purposes.…
1 param body → 200
GET
/private/remove_api_key
Permanently deletes an API key from your account. This operation cannot be undone. Once removed, the API key can no longer be used to authenticate requests, and all applications using this key will l…
1 param body → 200
GET
/private/edit_api_key
Updates properties of an existing API key. You can modify the key name, scope, enabled status, features, and IP whitelist. At least one parameter must be provided. Changes take effect immediately. If…
6 params body → 200
GET
/private/get_new_announcements
Retrieves only unread announcements for the authenticated account. Announcements are marked as read when you use the setannouncementasread method or view them through the web interface. This method i…
body → 200
GET
/private/set_announcement_as_read
Marks a specific announcement as read. Once marked as read, the announcement will no longer appear in the getnewannouncements response, though it will still be available through getannouncements. Thi…
1 param body → 200
GET
/private/get_email_language
Retrieves the currently configured language preference for email notifications. Returns the language code (e.g., en, ko, zh, ja, ru) that is used for all email communications sent to the account. Sco…
body → 200
GET
/private/create_subaccount
Creates a new subaccount under the authenticated main account. Subaccounts allow you to organize trading activities and manage risk separately from the main account. This method takes no parameters.…
body → 200
GET
/private/change_subaccount_name
Updates the display name (username) for a subaccount. The new name is used for identification purposes and does not affect the subaccount's functionality or access. Only the main account owner can ch…
2 params body → 200
GET
/private/set_email_language
Sets the preferred language for email notifications sent to the authenticated account. Supported languages include English (en), Korean (ko), Chinese (zh), Japanese (ja), and Russian (ru). All future…
1 param body → 200
GET
/private/set_email_for_subaccount
Assigns an email address to a subaccount. This email can be used for direct login to the subaccount and for receiving notifications. The email address owner will receive a confirmation email with a l…
2 params body → 200
GET
/private/toggle_subaccount_login
Enables or disables direct login access for a subaccount. When login is disabled, the subaccount cannot be accessed directly using email and password authentication, but can still be accessed through…
2 params body → 200
GET
/private/toggle_notifications_from_subaccount
Enables or disables email and other notifications for a subaccount. When notifications are disabled, the subaccount will not receive email alerts, trade confirmations, or other notification messages.…
2 params body → 200
GET
/private/get_subaccounts
Retrieves information about all subaccounts associated with the main account. Returns details such as subaccount IDs, names, and status. When called from a subaccount, the response includes limited d…
1 param body → 200401
GET
/private/get_subaccounts_details
Retrieves position details for all subaccounts for a specific currency. Returns positions aggregated across all subaccounts, including size, average entry price, mark price, and P&L information. Opti…
2 params body → 200401
GET
/private/remove_subaccount
Permanently removes a subaccount. The subaccount must be empty (no positions, no open orders, and zero balance) before it can be removed. This operation cannot be undone. All subaccount data will be…
1 param body → 200
GET
/private/get_transaction_log
Retrieves a detailed transaction log for the authenticated account. The log includes all account activities such as trades, deposits, withdrawals, transfers, fees, and other balance-affecting operati…
7 params body → 200
GET
/private/list_custody_accounts
Retrieves a list of all custody accounts associated with the authenticated account for a specific currency. Custody accounts are used for clients who require segregated custody of their assets. The r…
1 param body → 200
GET
/private/logout
Gracefully terminate the current WebSocket connection and optionally invalidate all tokens associated with the session. This method provides a clean way to close WebSocket connections while preservin…
1 param body → 200
GET
/private/get_block_rfqs
Returns a list of Block RFQs that were either created by the user or assigned to them as a maker, sorted in descending order. trades and markprice are only visible for the filled Block RFQ. When a bl…
6 params body → 200
GET
/private/create_block_rfq
Taker method Creates a new Block RFQ. Use [private/getblockrfqs](https://docs.deribit.com/api-reference/block-rfq/private-getblockrfqs) to retrieve Block RFQ information. Block RFQ pre-allocation: Th…
6 params body → 200
GET
/private/cancel_block_rfq
Taker method Cancels a Block RFQ using the specified blockrfqid. Use [private/getblockrfqs](https://docs.deribit.com/api-reference/block-rfq/private-getblockrfqs) to retrieve Block RFQ information, o…
1 param body → 200
GET
/private/accept_block_rfq
Taker method Allows Block RFQ taker to accept a quote by sending a single crossing price. The order can be either filled immediately (fillorkill) or remain active until cancelled (goodtilcancelled).…
7 params body → 200
GET
/private/cancel_block_rfq_trigger
Taker method Allows Block RFQ taker to cancel an active trigger for a Block RFQ. The response includes the full Block RFQ object with the trade trigger state set to cancelled. Use [private/getblockrf…
1 param body → 200
GET
/private/get_block_rfq_quotes
Maker method Retrieves all open quotes for Block RFQs. When a blockrfqid is specified, only the open quotes for that particular Block RFQ will be returned. When a label is specified, all quotes with…
3 params body → 200
GET
/private/add_block_rfq_quote
Maker method Adds a quote to an existing Block RFQ. To calculate individual leg prices, use [private/getlegprices](https://docs.deribit.com/api-reference/combo-books/private-getlegprices). Use [priva…
9 params body → 200
GET
/private/edit_block_rfq_quote
Maker method Edits a Block RFQ quote using the specified blockrfqquoteid. Alternatively, you can use a combination of blockrfqid and label to edit the quote. Use [private/addblockrfqquote](https://do…
7 params body → 200
GET
/private/cancel_block_rfq_quote
Maker method Cancels a single Block RFQ quote. You can identify the quote to cancel using either: - blockrfqquoteid - the unique ID of the quote - blockrfqid + label - the Block RFQ ID and the quote…
3 params body → 200
GET
/private/cancel_all_block_rfq_quotes
Maker method Cancels all user quotes in all Block RFQs. Optionally cancels all quotes in a specific RFQ if the blockrfqid is provided. Note: Mass cancellation by label is not supported. This method w…
2 params body → 200
GET
/private/get_block_rfq_makers
Returns a list of all available Block RFQ makers. This method takes no parameters. Use this method to retrieve the list of makers that can be specified when creating a Block RFQ with [private/createb…
body → 200
GET
/private/get_block_rfq_user_info
Returns identity and rating information for the requesting account and its subaccounts. Includes both group-level and individual user-level alias data, if available. This information is useful for un…
body → 200
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/invalidate_block_trade_signature
Invalidates a block trade signature, effectively cancelling the block trade. This can be called at any time before [private/executeblocktrade](https://docs.deribit.com/api-reference/block-trade/priva…
1 param body → 200
GET
/private/get_block_trade
Returns information about a specific block trade identified by blocktradeid. 📖 Related Article: [Block Trading](https://docs.deribit.com/articles/block-trading-api) Scope: blocktrade:read [Try in API…
1 param body → 200
GET
/private/get_block_trades
Returns a list of the user's block trades. If currency is not provided, returns block trades for all currencies. blockrfqid can be provided to receive block trades related to that particular Block RF…
6 params body → 200
GET
/private/get_block_trade_requests
Provides a list of block trade requests including pending approvals, declined trades, and expired trades. timestamp and nonce received in response can be used with [private/approveblocktrade](https:/…
1 param body → 200
GET
/private/approve_block_trade
Approves a pending block trade. nonce and timestamp are used to identify the block trade while role should be opposite to the trading counterparty. Use [private/getblocktraderequests](https://docs.de…
3 params body → 200
GET
/private/reject_block_trade
Rejects a pending block trade. nonce and timestamp are used to identify the block trade while role should be opposite to the trading counterparty. Use [private/getblocktraderequests](https://docs.der…
3 params body → 200
GET
/private/get_broker_trades
Broker Method Returns list of broker block trades. If currency is not provided, returns broker block trades for all currencies. Scope: blocktrade:read [Try in API console](https://test.deribit.com/ap…
4 params body → 200
GET
/private/get_broker_trade_requests
Broker Method Provides a list of broker block trade requests including pending approvals, declined trades, and expired trades. timestamp and nonce received in response can be used to approve or rejec…
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/get_leg_prices
Returns individual leg prices for a given combo structure based on an aggregated price of the strategy and the mark prices of the individual legs. Note: Leg prices change dynamically with mark price…
2 params body → 200
GET
/private/enable_cancel_on_disconnect
Enable Cancel On Disconnect for the connection. After enabling, all orders created via this connection will be automatically cancelled when the connection is closed. Cancel is triggered in the follow…
1 param body → 200
GET
/private/disable_cancel_on_disconnect
Disable Cancel On Disconnect for the connection. When change is applied for the account, then every newly opened connection will start with inactive Cancel on Disconnect. WebSocket Only: This method…
1 param body → 200
GET
/private/get_cancel_on_disconnect
Read current Cancel On Disconnect configuration for the account. Scope: account:read [Try in API console](https://test.deribit.com/apiconsole?method=%2Fprivate%2Fgetcancelondisconnect)
1 param body → 200
GET
/private/subscribe
Subscribe to one or more channels. The name of the channel determines what information will be provided, and in what form. For a complete list of available subscription channels and their notificatio…
2 params body → 200401
GET
/private/unsubscribe
Unsubscribe from one or more channels. The response contains only the channels that were successfully unsubscribed in this request. For a complete list of available subscription channels and their no…
1 param body → 200401
GET
/private/unsubscribe_all
Unsubscribe from all the channels subscribed so far. This method takes no parameters. [Try in API console](https://test.deribit.com/apiconsole?method=%2Fprivate%2Funsubscribeall)
body → 200
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
/private/get_deposits
Retrieve the latest user deposits. Returns a list of deposit transactions with their status, amounts, addresses, confirmations, and other relevant details. 📖 Related Article: [Managing Deposits](http…
3 params body → 200
GET
/private/create_deposit_address
Creates a new deposit address for the specified currency. Each currency can have multiple deposit addresses. Use this method to generate a new address for receiving deposits. Note: For Bitcoin, a new…
1 param body → 200
GET
/private/get_current_deposit_address
Retrieve the current deposit address for the specified currency. Returns the most recently created or used deposit address for receiving funds. 📖 Related Article: [Managing Deposits](https://docs.der…
1 param body → 200
GET
/private/withdraw
Creates a new withdrawal request. This method allows you to withdraw funds from your account to an external address. The withdrawal can be configured with priority settings and must use an address fr…
5 params body → 200
GET
/private/cancel_withdrawal
Cancels a pending withdrawal request. This method allows you to cancel a withdrawal that has not yet been processed. Once a withdrawal is processed, it cannot be cancelled. 📖 Related Article: [Managi…
2 params body → 200
GET
/private/get_withdrawals
Retrieve the latest user withdrawals. Returns a list of withdrawal requests with their status, amounts, addresses, and other relevant details. 📖 Related Article: [Managing Withdrawals](https://docs.d…
3 params body → 200
GET
/private/get_address_book
Retrieves the address book entries of the given type. Returns all saved addresses that can be used for withdrawals, along with their labels and beneficiary information if available. 📖 Related Article…
2 params body → 200
GET
/private/add_to_address_book
Adds a new address to the address book. The address book allows you to store addresses for withdrawals, along with beneficiary information for compliance purposes. 📖 Related Article: [Managing Withdr…
14 params body → 200
GET
/private/remove_from_address_book
Removes an entry from the address book. This method allows you to delete a saved address that is no longer needed. 📖 Related Article: [Managing Withdrawals](https://docs.deribit.com/articles/managing…
3 params body → 200
GET
/private/update_in_address_book
Updates beneficiary information for an address in the address book. This method allows you to add or modify beneficiary details required for compliance purposes when making withdrawals to certain add…
13 params body → 200
GET
/private/save_address_beneficiary
Saves beneficiary information for an address. This method allows you to store beneficiary details required for compliance purposes, including VASP information, personal details, and wallet type class…
13 params body → 200
GET
/private/get_address_beneficiary
Retrieves beneficiary information for a specific address. Returns the stored beneficiary details including VASP information, personal details, and wallet type classification. 📖 Related Article: [Mana…
3 params body → 200
GET
/private/delete_address_beneficiary
Deletes beneficiary information for a specific address. 📖 Related Article: [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api) Scope: wallet:readwrite [Try in API conso…
3 params body → 200
GET
/private/list_address_beneficiaries
Lists address beneficiaries with optional filtering and pagination. Returns all saved beneficiary information for addresses, with support for filtering by currency, address, wallet type, VASP details…
14 params body → 200
GET
/private/submit_transfer_to_subaccount
Transfer funds from the main account to a subaccount. 📖 Related Article: [Managing Transfers](https://docs.deribit.com/articles/managing-transfers-api) Scope: wallets:readwrite [Try in API console](h…
3 params body → 200
GET
/private/submit_transfer_between_subaccounts
Transfer funds between two subaccounts or between a subaccount and the main account. 📖 Related Article: [Managing Transfers](https://docs.deribit.com/articles/managing-transfers-api) Scope: wallets:r…
5 params body → 200
GET
/private/submit_transfer_to_user
Transfer funds to another user. This method allows you to send funds from your main account to another Deribit user's account. The transfer is processed internally and does not require blockchain tra…
3 params body → 200
GET
/private/get_transfers
Retrieve the user's transfers list. Returns a list of internal transfers between accounts, subaccounts, or to other users, including their status, amounts, and other relevant details. 📖 Related Artic…
3 params body → 200
GET
/private/cancel_transfer_by_id
Cancel a pending transfer by its ID. This method allows you to cancel a transfer that has not yet been processed. Once a transfer is processed, it cannot be cancelled. 📖 Related Article: [Managing Tr…
2 params body → 200
GET
/private/get_reward_eligibility
Returns reward eligibility status and APR data for all supported currencies. This method takes no parameters. 📖 Related Support Article: [Yield reward-bearing coins](https://support.deribit.com/hc/en…
body → 200
GET
/private/set_clearance_originator
Sets originator of the deposit Scope: wallet:readwrite [Try in API console](https://test.deribit.com/apiconsole?method=%2Fprivate%2Fsetclearanceoriginator)
2 params body → 200

Schemas 253

The contract defines 253 schemas that model the data the API accepts and returns. The most detailed are order (52 properties), user_trade (38 properties), transaction_log (34 properties), block_rfq (24 properties). Each schema is shown below with its type and property counts.

continuation
string
Continuation token for pagination.
trigger
string
Trigger type (only for trigger orders). Allowed values: "indexprice", "markprice", "lastprice".
key_id
integer
Key identifier
transfer_other_side
string
For transfer from/to subaccount returns this subaccount name, for transfer to other account returns address, for transfer from other account returns that accou…
block_trade_id
string
Block trade id
api_key
object
11 properties 6 required
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
withdrawal_state
string
Withdrawal state, allowed values : unconfirmed, confirmed, cancelled, completed, interrupted, rejected
PrivateGetLegPricesResponse
object
3 properties 2 required
PrivateGetBrokerTradeRequestsResponse
object
3 properties 2 required
combo_state
string
Combo state: "active", "inactive"
quote_direction
string
Direction of trade from the maker perspective
beneficiary_vasp_website
string
Website of the beneficiary VASP
PrivateGetOrderHistoryResponse
object
3 properties 2 required
fee_role
string
Fee role of the user: maker or taker. Can be different from trade role of the user when iceberg order was involved in matching.
PrivateGetBlockTradeResponse
object
3 properties 2 required
block_trade_id_in_result
string
Block trade id - when trade was part of a block trade
PrivateGetDepositsResponse
object
3 properties 2 required
PrivateBuyAndSellResponse
object
3 properties 2 required
PrivatePositionMoveResponse
object
3 properties 2 required
beneficiary_vasp_name
string
Name of beneficiary VASP
PrivateCreateSubaccountResponse
object
3 properties 2 required
trade_id
string
Unique (per currency) trade identifier
PrivateCancelQuotesResponse
object
3 properties 2 required
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…
block_rfq_quote
object
16 properties
PrivateGetTransfersResponse
object
3 properties 2 required
user_id
integer
Unique user identifier
PrivateCancelAllBlockRfqQuotesResponse
object
3 properties 2 required
position_move_trade
object
6 properties 4 required
instrument_name
string
Unique instrument identifier
PrivateSimulateBlockTradeResponse
object
3 properties 2 required
PrivateGetSubaccountsDetailsResponse
object
3 properties 2 required
quote_asks
array
GetlistCustodyAccounts200response
mark_price
number
The mark price for the instrument
PrivateAccountSummariesResponse
object
3 properties 2 required
usd
number
Option price in USD (Only if advanced="usd")
simple_order_type
string
Order type: "all", "limit", "stop", "take", "trailingstop", "trailingtake"
replaced_quote
boolean
true if the quote was edited, otherwise false.
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).
currency_transaction_id
string
Transaction id in proper format for currency, null if id is not available
trade_timestamp
integer
The timestamp of the trade (milliseconds since the UNIX epoch)
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.
PrivateCancelBlockRfqTriggerResponse
client_secret
string
Client secret or MD5 fingerprint of public key used for authentication
external_id
string
User ID in external systems
PrivateSettlementResponse
object
3 properties 2 required
PrivateChangeMarginModelResponse
object
3 properties 2 required
PrivateAddBlockRfqQuoteResponse
object
3 properties 2 required
PrivateDeleteAddressBeneficiaryResponse
object
3 properties 2 required
combo
object
6 properties
estimated_liquidation_ratio
number
Estimated Liquidation Ratio is returned only for users without portfolio margining enabled. Multiplying it by future position's market price returns its estima…
PrivateEditBlockRfqQuoteResponse
object
3 properties 2 required
requires_confirmation_change
boolean
If email confirmation change is in progress
PrivateGetBlockRfqMakersResponse
object
3 properties 2 required
pme_currency
string
The currency for which the Extended Risk Matrix will be calculated. Use CROSS for Cross Collateral simulation.
status
string
Wallet address status, values: [adminlocked, waiting, confirmed, ready]
deposit_state
string
Deposit state. Allowed values: pending : deposit detected on blockchain/system, compliance not yet finished completed : compliance check finished successfully…
fee_balance
number
The account's fee balance (it can be used to pay for fees)
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)
trade_trigger_state
string
Trade trigger state: "untriggered" or "cancelled"
kind_without_spot
string
Instrument kind: "future", "option", "futurecombo", "optioncombo" (spot is excluded as spot trades are settled immediately and have no open positions)
PrivateGetBlockTradeRequestsResponse
object
3 properties 2 required
PrivateGetAccessLogResponse
object
3 properties 2 required
block_rfq
object
24 properties
combo_id
string
Unique combo identifier
beneficiary_first_name
string
First name of the beneficiary (if beneficiary is a person)
PrivateGetOrderStateByLabelResponse
object
3 properties 2 required
block_rfq_currency
string
Currency, i.e "BTC", "ETH", "USDC"
address_book_item
object
19 properties 3 required
sorting
string
position_with_elp
additional_reserve
number
The account's balance reserved in other orders
position_move
object
1 property 1 required
fee
number
Fee in currency
price
number
Price in base currency
custody_account
object
Custody account
11 properties 3 required
quote_bids
array
wallet_address_type
string
Address type/purpose, allowed values : deposit
pending_block_trade
object
12 properties 7 required
PrivateCancelAllResponse
object
3 properties 2 required
currency_address
string
Address in proper format for currency
agree_to_share_with_3rd_party
boolean
Indicates that the user agreed to shared provided information with 3rd parties
beneficiary_address
string
Geographical address of the beneficiary
PrivateSubscribeResponse
object
3 properties 2 required
PrivateCancelResponse
object
3 properties 2 required
web
boolean
true if created via Deribit frontend (optional)
PrivateGetMmpStatusResponse
object
3 properties 2 required
PrivateGetOrderStateResponse
object
3 properties 2 required
PrivateGetRewardEligibilityResponse
object
3 properties 2 required
block_trade_order
boolean
true if order made from blocktrade trade, added only in that case.
PrivateCreateComboResponse
object
3 properties 2 required
PrivateGetPositionResponse
object
3 properties 2 required
PrivateAddToAddressBookResponse
object
3 properties 2 required
deposit
object
11 properties 7 required
trigger_price
number
Trigger price (Only for future trigger orders)
ErrorResponse
object
Generic error response for broken references
2 properties 2 required
waiting_timestamp
boolean
Timestamp when the address will be ready
oco_ref
string
Unique reference that identifies a onecancelsothers (OCO) pair.
nonce
string
Nonce
api_key_default
boolean
Informs whether this api key is default (field is deprecated and will be removed in the future)
username
string
System name or user defined subaccount alias
address_beneficiary_item
object
16 properties 11 required
PrivateGetBlockRfqUserInfoResponse
object
3 properties 2 required
order_state_stop
string
Order state: "triggered", "cancelled", or "rejected" with rejection reason (e.g. "rejected:reducedirection").
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
PrivateGetBrokerTradesResponse
object
3 properties 2 required
PrivateWithdrawResponse
object
3 properties 2 required
rpl
number
Session realized profit and loss
triggered
boolean
Whether the trigger order has been triggered
currency_amount
number
Amount of funds in given currency
transfer_state
string
Transfer state, allowed values : prepared, confirmed, cancelled, waitingforadmin, insufficientfunds, withdrawallimit otherwise rejection reason
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
withdrawal
object
12 properties 6 required
address_label
string
Label of the address book entry
result_count
integer
Total number of results available
api_key_features
array
List of enabled advanced on-key features. Available options: - restrictedblocktrades : Limit the blocktrade read the scope of the API key to block trades that…
reduce_only
boolean
Optional (not added for spot). 'true for reduce-only orders only'
trigger_reference_price
number
The price of the given trigger at the time when the order was placed (Only for trailing trigger orders)
position_direction
string
Direction: buy, sell or zero
PublicGetAnnouncementsResponse
object
3 properties 2 required
position
object
23 properties 14 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.,…
PrivateSubmitTransferResponse
object
3 properties 2 required
PrivateDepositAddressResponse
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.
beneficiary_company_name
string
Company name of the beneficiary (if beneficiary is a company)
PrivateGetTriggerOrderHistoryResponse
object
3 properties 2 required
PrivateAcceptBlockRfqResponse
object
3 properties 2 required
settlement
object
14 properties 7 required
PrivateMassQuoteResponse
object
3 properties 2 required
PrivateCancelBlockRfqQuoteResponse
object
3 properties 2 required
id
integer
Unique identifier
PrivateGetOrderMarginByIdsResponse
object
3 properties 2 required
block_trade
object
6 properties 3 required
cod_scope
string
Informs if Cancel on Disconnect was checked for the current connection or the account
extra_currencies
array
The user can pass a list of currencies to add the address for. It is currently available ONLY for ERC20 currencies. Without passing this paramater for an ERC20…
PrivateGetAddressBeneficiaryResponse
object
3 properties 2 required
PrivateGetTransactionLogResponse
object
3 properties 2 required
user_trade
object
38 properties 15 required
portfolio
object
1 property
original_order_type
string
Original order type. Optional field
api_limits
object
Returned object is described in [separate document](https://support.deribit.com/hc/en-us/articles/25944617523357-Rate-Limits).
combo_leg
object
2 properties
PrivateAddressBookResponse
object
3 properties 2 required
average_price
number
Average fill price of the order
PrivateGetUserLocksResponse
object
3 properties 2 required
implv
number
Implied volatility in percent. (Only if advanced="implv")
transaction_log
object
34 properties 10 required
PrivateGetPositionsResponse
object
3 properties 2 required
PrivateGetSubaccountsResponse
object
3 properties 2 required
PrivateVerifyBlockTradeResponse
object
3 properties 2 required
PrivateApiKeyResponse
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
order_id
string
Unique order identifier
unhosted_wallet
boolean
Indicates if the address belongs to an unhosted wallet
trade_seq
integer
The sequence number of the trade within instrument
index_name
string
Index identifier, matches (base) cryptocurrency with quote currency
projected_maintenance_margin
number
Projected maintenance margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's v…
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…
kind
string
Instrument kind: "future", "option", "spot", "futurecombo", "optioncombo"
filled_amount_quote
number
Filled amount of the quote. For perpetual and futures the filledamount is in USD units, for options - in units or corresponding cryptocurrency contracts, e.g.,…
post_only
boolean
true for post-only orders only
leg_structure
array
address_book_type
string
Address book type
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"
PrivateGetBlockRfqQuotesResponse
object
3 properties 2 required
PrivateRemoveFromAddressBookResponse
object
3 properties 2 required
PrivateSimulatePortfolioResponse
object
3 properties 2 required
order_id_initial_margin_pair
object
3 properties 2 required
trade_allocations
array
List of allocations for Block RFQ pre-allocation. Allows to split amount between different (sub)accounts or broker clients. Each allocation must specify either…
beneficiary_vasp_did
string
DID of beneficiary VASP
contracts
number
It represents the order size in contract units. (Optional, may be absent in historical data).
order_type
string
Order type: "limit", "market", "stoplimit", "stopmarket", "takelimit", "takemarket", "trailingstop"
PrivateListAddressBeneficiariesResponse
object
3 properties 2 required
PrivateGetCancelOnDisconnectResponse
object
3 properties 2 required
access_log
object
7 properties 6 required
PrivateGetBlockRfqsResponse
object
3 properties 2 required
PrivateGetMarginsResponse
object
3 properties 2 required
display_amount
number
The actual display amount of iceberg order. Absent for other types of orders.
orders
array
cancel_reason
string
Enumerated reason behind cancel "userrequest", "autoliquidation", "cancelondisconnect", "riskmitigation", "pmeriskreduction" (portfolio margining risk reductio…
timestamp
integer
The timestamp (milliseconds since the Unix epoch)
currency_portfolio
object
10 properties 10 required
PrivateGetEmailLanguageResponse
object
3 properties 2 required
requires_confirmation
boolean
If address requires email confirmation for withdrawals
transfer_direction
string
Transfer direction
projected_initial_margin
number
Projected initial margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value…
index_name_derivative
string
Index identifier of derivative instrument on the platform
direction
string
Direction: buy, or sell
currency_with_any
string
Currency name or "any" if don't care
advanced
string
advanced type: "usd" or "implv" (Only for options; field is omitted if not applicable).
wallet_currency
string
Currency, i.e "BTC", "ETH", "USDC"
block_trade_signature
string
Signature of block trade It is valid only for 5 minutes around given timestamp
trade_trigger
object
Contains information about the trade trigger state
4 properties 3 required
transfer_item
object
10 properties 8 required
personal_wallet
boolean
The user confirms that he provided address belongs to him and he has access to it via an un-hosted wallet software
delta_total
number
The sum of position deltas. DeltaTotal = Net Transaction Delta of options + BTC Position of Futures The DeltaTotal uses the Net Transaction Delta (or price adj…
public_key
string
PEM encoded public key (Ed25519/RSA) used for asymmetric signatures (optional)
api_key_name
string
Api key name that can be displayed in transaction log
upl
number
Session unrealized profit and loss
clearance_state
string
Clearance state indicating the current status of the transaction clearance process. Allowed values: inprogress : clearance process is in progress pendingadmind…
enabled_field
boolean
Current configuration status
PrivateAccountResponse
object
3 properties 2 required
label_presentation
string
User defined label (presented only when previously set for order by user)
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
transfer_type
string
Type of transfer: user - sent to user, subaccount - sent to subaccount
max_scope
array
Describes maximal access for tokens generated with given key. If scope is not provided, its value is set as none. 📖 Related Article: [Access Scope](https://doc…
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)
block_rfq_hedge_leg
object
4 properties
PrivateUpdateInAddressBookResponse
object
3 properties 2 required
projected_delta_total
number
The sum of position deltas without positions that will expire during closest expiration
PrivateGetOpenOrdersResponse
object
3 properties 2 required
continuation_with_null
integer
Continuation token for pagination. NULL when no continuation.
PrivatePmeSimulateResponse
object
3 properties 2 required
PrivateGetAffiliateProgramInfoResponse
object
3 properties 2 required
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
address_info_required
boolean
Signalises that addition information regarding the beneficiary of the address is required
time_in_force
string
Order time in force: "goodtilcancelled", "goodtilday", "fillorkill" or "immediateorcancel"
Getunsubscribe200response
object
3 properties
api_key_enabled
boolean
Informs whether api key is enabled and can be used for authentication
PrivateGetUserTradesHistoryResponse
object
3 properties 2 required
PrivateEditResponse
object
3 properties 2 required
block_rfq_legs
array
PrivateCreateBlockRfqResponse
object
3 properties 2 required
PublicListApiKeysResponse
object
3 properties 2 required
PrivateCancelBlockRfqResponse
object
3 properties 2 required
client_id
string
Client identifier used for authentication
transfer_id
integer
Id of transfer
beneficiary_last_name
string
Last name of the beneficiary (if beneficiary is a person)
PrivateGetBlockTradesResponse
object
3 properties 2 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)
PrivateSaveAddressBeneficiaryResponse
object
3 properties 2 required
role
string
Trade role of the user: maker or taker
custody_name
string
Custody name
commission
number
Commission paid so far (in base currency)
PrivateGetWithdrawalsResponse
object
3 properties 2 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

deribit-private-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 Public API
Where this information came from

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