{ "openapi": "3.0.0", "info": { "title": "Deribit API", "version": "2.1.1" }, "servers": [ { "url": "https://test.deribit.com/api/v2" } ], "tags": [ { "name": "WebSocket Only", "description": "Can only be used over websockets." }, { "name": "Public", "description": "Public methods can be used without authentication." }, { "name": "Private", "description": "
Private methods require authentication. All requests must include a valid OAuth2 token.
\nA token can be requested using the /public/auth method.
\nWhen 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.
Execution instruction of the quote. Default - `any_part_of`
The order price in base currency (Only for limit and stop_limit orders)
When adding an order with advanced=usd, the field price should be the option price value in USD.
When adding an order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
" }, { "name": "time_in_force", "in": "query", "schema": { "type": "string", "default": "good_til_cancelled", "enum": [ "good_til_cancelled", "good_til_day", "fill_or_kill", "immediate_or_cancel" ] }, "required": false, "description": "Specifies how long the order remains in effect. Default `\"good_til_cancelled\"`
If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below the spread.
Only valid in combination with time_in_force=`\"good_til_cancelled\"`
" }, { "name": "reject_post_only", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected.
Only valid in combination with `\"post_only\"` set to true
" }, { "name": "reduce_only", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "If `true`, the order is considered reduce-only which is intended to only reduce a current position" }, { "name": "trigger_price", "in": "query", "schema": { "type": "number" }, "required": false, "description": "Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)" }, { "name": "trigger_offset", "in": "query", "schema": { "type": "number" }, "required": false, "description": "The maximum deviation from the price peak beyond which the order will be triggered" }, { "name": "trigger", "in": "query", "schema": { "$ref": "#/components/schemas/trigger" }, "required": false, "description": "Defines the trigger type. Required for `\"Stop-Loss\"`, `\"Take-Profit\"` and `\"Trailing\"` trigger orders" }, { "name": "advanced", "in": "query", "schema": { "$ref": "#/components/schemas/advanced" }, "required": false, "description": "Advanced option order type. (Only for options. Advanced USD orders are not supported for linear options.)" }, { "name": "mmp", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "Order MMP flag, only for order_type 'limit'" }, { "name": "valid_until", "in": "query", "schema": { "type": "integer" }, "required": false, "description": "Timestamp, when provided server will start processing request in Matching Engine only before given timestamp, in other cases `timed_out` error will be responded. Remember that the given timestamp should be consistent with the server's time, use /public/time method to obtain current server time." }, { "name": "linked_order_type", "in": "query", "schema": { "type": "string", "enum": [ "one_triggers_other", "one_cancels_other", "one_triggers_one_cancels_other" ] }, "required": false, "description": "The type of the linked order.
The fill condition of the linked order (Only for linked order types), default: `first_hit`.
The order price in base currency (Only for limit and stop_limit orders)
When adding an order with advanced=usd, the field price should be the option price value in USD.
When adding an order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
" }, { "name": "time_in_force", "in": "query", "schema": { "type": "string", "default": "good_til_cancelled", "enum": [ "good_til_cancelled", "good_til_day", "fill_or_kill", "immediate_or_cancel" ] }, "required": false, "description": "Specifies how long the order remains in effect. Default `\"good_til_cancelled\"`
If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just above the spread.
Only valid in combination with time_in_force=`\"good_til_cancelled\"`
" }, { "name": "reject_post_only", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected.
Only valid in combination with `\"post_only\"` set to true
" }, { "name": "reduce_only", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "If `true`, the order is considered reduce-only which is intended to only reduce a current position" }, { "name": "trigger_price", "in": "query", "schema": { "type": "number" }, "required": false, "description": "Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)" }, { "name": "trigger_offset", "in": "query", "schema": { "type": "number" }, "required": false, "description": "The maximum deviation from the price peak beyond which the order will be triggered" }, { "name": "trigger", "in": "query", "schema": { "$ref": "#/components/schemas/trigger" }, "required": false, "description": "Defines the trigger type. Required for `\"Stop-Loss\"`, `\"Take-Profit\"` and `\"Trailing\"` trigger orders" }, { "name": "advanced", "in": "query", "schema": { "$ref": "#/components/schemas/advanced" }, "required": false, "description": "Advanced option order type. (Only for options. Advanced USD orders are not supported for linear options.)" }, { "name": "mmp", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "Order MMP flag, only for order_type 'limit'" }, { "name": "valid_until", "in": "query", "schema": { "type": "integer" }, "required": false, "description": "Timestamp, when provided server will start processing request in Matching Engine only before given timestamp, in other cases `timed_out` error will be responded. Remember that the given timestamp should be consistent with the server's time, use /public/time method to obtain current server time." }, { "name": "linked_order_type", "in": "query", "schema": { "type": "string", "enum": [ "one_triggers_other", "one_cancels_other", "one_triggers_one_cancels_other" ] }, "required": false, "description": "The type of the linked order.
The fill condition of the linked order (Only for linked order types), default: `first_hit`.
The order price in base currency.
When editing an option order with advanced=usd, the field price should be the option price value in USD.
When editing an option order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
" }, { "name": "post_only", "in": "query", "schema": { "type": "boolean", "default": true }, "required": false, "description": "If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below or above the spread (accordingly to the original order type).
Only valid in combination with time_in_force=`\"good_til_cancelled\"`
" }, { "name": "reduce_only", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "If `true`, the order is considered reduce-only which is intended to only reduce a current position" }, { "name": "reject_post_only", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected.
Only valid in combination with `\"post_only\"` set to true
" }, { "name": "advanced", "in": "query", "schema": { "$ref": "#/components/schemas/advanced" }, "required": false, "description": "Advanced option order type. If you have posted an advanced option order, it is necessary to re-supply this parameter when editing it (Only for options)" }, { "name": "trigger_price", "in": "query", "schema": { "type": "number" }, "required": false, "description": "Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)" }, { "name": "trigger_offset", "in": "query", "schema": { "type": "number" }, "required": false, "description": "The maximum deviation from the price peak beyond which the order will be triggered" }, { "name": "mmp", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "Order MMP flag, only for order_type 'limit'" }, { "name": "valid_until", "in": "query", "schema": { "type": "integer" }, "required": false, "description": "Timestamp, when provided server will start processing request in Matching Engine only before given timestamp, in other cases `timed_out` error will be responded. Remember that the given timestamp should be consistent with the server's time, use /public/time method to obtain current server time." }, { "name": "display_amount", "in": "query", "schema": { "type": "number", "default": 1 }, "required": false, "description": "Initial display amount for iceberg order. Has to be at least 100 times minimum amount for instrument and ratio of hidden part vs visible part has to be less than 100 as well." } ], "responses": { "200": { "$ref": "#/components/responses/PrivateEditResponse" } }, "tags": [ "Trading", "Matching Engine", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 3725, "method": "private/edit", "params": { "order_id": "438994", "amount": 4, "price": 222, "advanced": "implv" } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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.\n\nThe order is identified by its order ID. Only open orders can be edited. Changes take effect immediately and may result in the order being filled if the new price matches the market.\n\n**📖 Related Article:** [Order Management Best Practices](https://docs.deribit.com/articles/order-management-best-practices)\n\n**Scope:** `trade:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fedit)\n\n", "x-mint": { "metadata": { "title": "private/edit", "og:title": "private/edit", "keywords": [ "private/edit", "order_id", "amount", "contracts", "price", "post_only", "reduce_only", "reject_post_only", "advanced", "trigger_price", "trigger_offset", "mmp", "valid_until", "display_amount", "order", "trades", "order_state", "order_type", "original_order_type", "time_in_force", "is_rebalance", "is_liquidation", "instrument_name", "creation_timestamp", "last_update_timestamp", "direction", "label", "api", "web", "mobile", "refresh_amount", "filled_amount", "average_price", "implv", "usd", "triggered", "trigger", "trigger_reference_price", "block_trade", "risk_reducing", "replaced", "auto_replaced", "quote", "mmp_group", "quote_set_id", "quote_id", "trigger_order_id", "app_name", "mmp_cancelled", "cancel_reason", "oto_order_ids", "trigger_fill_condition", "oco_ref", "primary_order_id", "is_secondary_oto", "is_primary_otoco", "trade_id", "trade_seq", "timestamp", "matching_id", "tick_direction", "index_price", "iv", "underlying_price", "liquidation", "liquidity", "fee", "fee_currency", "state", "block_trade_id", "block_rfq_id", "block_rfq_quote_id", "profit_loss", "mark_price", "legs", "combo_id", "combo_trade_id", "trade_allocations", "user_id", "client_info", "client_id", "client_link_id", "name" ] }, "href": "/api-reference/trading/private-edit" } } }, "/private/edit_by_label": { "get": { "parameters": [ { "name": "label", "in": "query", "schema": { "type": "string" }, "required": false, "description": "user defined label for the order (maximum 64 characters)" }, { "name": "instrument_name", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/instrument_name" }, "description": "Instrument name" }, { "name": "amount", "in": "query", "schema": { "type": "number" }, "required": false, "description": "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 currency coin. The `amount` is a mandatory parameter if `contracts` parameter is missing. If both `contracts` and `amount` parameter are passed they must match each other otherwise error is returned." }, { "name": "contracts", "in": "query", "schema": { "type": "number" }, "required": false, "description": "It represents the requested order size in contract units and can be passed instead of `amount`. The `contracts` is a mandatory parameter if `amount` parameter is missing. If both `contracts` and `amount` parameter are passed they must match each other otherwise error is returned." }, { "name": "price", "in": "query", "schema": { "type": "number" }, "required": false, "description": "The order price in base currency.
When editing an option order with advanced=usd, the field price should be the option price value in USD.
When editing an option order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
" }, { "name": "post_only", "in": "query", "schema": { "type": "boolean", "default": true }, "required": false, "description": "If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below or above the spread (accordingly to the original order type).
Only valid in combination with time_in_force=`\"good_til_cancelled\"`
" }, { "name": "reduce_only", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "If `true`, the order is considered reduce-only which is intended to only reduce a current position" }, { "name": "reject_post_only", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected.
Only valid in combination with `\"post_only\"` set to true
" }, { "name": "advanced", "in": "query", "schema": { "$ref": "#/components/schemas/advanced" }, "required": false, "description": "Advanced option order type. If you have posted an advanced option order, it is necessary to re-supply this parameter when editing it (Only for options)" }, { "name": "trigger_price", "in": "query", "schema": { "type": "number" }, "required": false, "description": "Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)" }, { "name": "mmp", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "Order MMP flag, only for order_type 'limit'" }, { "name": "valid_until", "in": "query", "schema": { "type": "integer" }, "required": false, "description": "Timestamp, when provided server will start processing request in Matching Engine only before given timestamp, in other cases `timed_out` error will be responded. Remember that the given timestamp should be consistent with the server's time, use /public/time method to obtain current server time." } ], "responses": { "200": { "$ref": "#/components/responses/PrivateEditResponse" } }, "tags": [ "Trading", "Matching Engine", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 9, "method": "private/edit_by_label", "params": { "instrument_name": "BTC-PERPETUAL", "label": "i_love_deribit", "amount": 150, "price": 50111 } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "Modifies an order identified by its label. This method works only when there is exactly one open order with the specified label.\n\nYou can change the order's price, amount, and/or other properties such as time-in-force, post-only, reduce-only, trigger conditions, or advanced order type. Changes take effect immediately.\n\n**Scope:** `trade:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fedit_by_label)\n\n", "x-mint": { "metadata": { "title": "private/edit_by_label", "og:title": "private/edit_by_label", "keywords": [ "private/edit_by_label", "label", "instrument_name", "amount", "contracts", "price", "post_only", "reduce_only", "reject_post_only", "advanced", "trigger_price", "mmp", "valid_until", "order", "trades", "order_id", "order_state", "order_type", "original_order_type", "time_in_force", "is_rebalance", "is_liquidation", "creation_timestamp", "last_update_timestamp", "direction", "api", "web", "mobile", "refresh_amount", "display_amount", "filled_amount", "average_price", "implv", "usd", "triggered", "trigger", "trigger_offset", "trigger_reference_price", "block_trade", "risk_reducing", "replaced", "auto_replaced", "quote", "mmp_group", "quote_set_id", "quote_id", "trigger_order_id", "app_name", "mmp_cancelled", "cancel_reason", "oto_order_ids", "trigger_fill_condition", "oco_ref", "primary_order_id", "is_secondary_oto", "is_primary_otoco", "trade_id", "trade_seq", "timestamp", "matching_id", "tick_direction", "index_price", "iv", "underlying_price", "liquidation", "liquidity", "fee", "fee_currency", "state", "block_trade_id", "block_rfq_id", "block_rfq_quote_id", "profit_loss", "mark_price", "legs", "combo_id", "combo_trade_id", "trade_allocations", "user_id", "client_info", "client_id", "client_link_id", "name" ] }, "href": "/api-reference/trading/private-edit_by_label" } } }, "/private/close_position": { "get": { "tags": [ "Trading", "Matching Engine", "Private" ], "parameters": [ { "name": "instrument_name", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/instrument_name" }, "description": "Instrument name" }, { "name": "type", "in": "query", "schema": { "type": "string", "enum": [ "limit", "market" ] }, "required": true, "description": "The order type" }, { "name": "price", "in": "query", "schema": { "type": "number" }, "required": false, "description": "Optional price for limit order." } ], "responses": { "200": { "$ref": "#/components/responses/PrivateBuyAndSellResponse" } }, "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 6130, "method": "private/close_position", "params": { "instrument_name": "ETH-PERPETUAL", "type": "limit", "price": 145.17 } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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.\n\nYou can specify whether to use a market or limit order. If using a limit order, provide the price. The order will automatically be set to reduce-only to ensure it only closes the position.\n\n**Scope:** `trade:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fclose_position)\n\n", "x-mint": { "metadata": { "title": "private/close_position", "og:title": "private/close_position", "keywords": [ "private/close_position", "instrument_name", "type", "price", "order", "trades", "order_id", "order_state", "order_type", "original_order_type", "time_in_force", "is_rebalance", "is_liquidation", "creation_timestamp", "last_update_timestamp", "direction", "label", "post_only", "reject_post_only", "reduce_only", "api", "web", "mobile", "refresh_amount", "display_amount", "amount", "contracts", "filled_amount", "average_price", "advanced", "implv", "usd", "triggered", "trigger", "trigger_price", "trigger_offset", "trigger_reference_price", "block_trade", "mmp", "risk_reducing", "replaced", "auto_replaced", "quote", "mmp_group", "quote_set_id", "quote_id", "trigger_order_id", "app_name", "mmp_cancelled", "cancel_reason", "oto_order_ids", "trigger_fill_condition", "oco_ref", "primary_order_id", "is_secondary_oto", "is_primary_otoco", "trade_id", "trade_seq", "timestamp", "matching_id", "tick_direction", "index_price", "iv", "underlying_price", "liquidation", "liquidity", "fee", "fee_currency", "state", "block_trade_id", "block_rfq_id", "block_rfq_quote_id", "profit_loss", "mark_price", "legs", "combo_id", "combo_trade_id", "trade_allocations", "user_id", "client_info", "client_id", "client_link_id", "name" ] }, "href": "/api-reference/trading/private-close_position" } } }, "/private/get_margins": { "get": { "parameters": [ { "name": "instrument_name", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/instrument_name" }, "description": "Instrument name" }, { "name": "amount", "in": "query", "schema": { "type": "number" }, "required": true, "description": "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 currency coin." }, { "in": "query", "name": "price", "required": true, "schema": { "type": "number", "example": 3725 }, "description": "Price" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateGetMarginsResponse" } }, "tags": [ "Trading", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 7, "method": "private/get_margins", "params": { "instrument_name": "BTC-PERPETUAL", "amount": 10000, "price": 3725 } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "Calculates margin requirements for a hypothetical order on a given instrument. Returns initial margin and maintenance margin for the specified instrument, quantity, and price.\n\nThis method is useful for estimating margin requirements before placing an order, helping to ensure sufficient funds are available and understanding the margin impact of potential trades.\n\n**Scope:** `trade:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_margins)\n\n", "x-mint": { "metadata": { "title": "private/get_margins", "og:title": "private/get_margins", "keywords": [ "private/get_margins", "instrument_name", "amount", "price", "buy", "sell", "min_price", "max_price" ] }, "href": "/api-reference/trading/private-get_margins" } } }, "/private/get_mmp_config": { "get": { "tags": [ "Trading", "Matching Engine", "Private" ], "parameters": [ { "name": "index_name", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/index_name_derivative" }, "description": "Index identifier of derivative instrument on the platform; skipping this parameter will return all configurations" }, { "name": "mmp_group", "required": false, "in": "query", "schema": { "type": "string", "example": "MassQuoteBot7" }, "description": "Specifies the MMP group for which the configuration is being retrieved. MMP groups are used for Mass Quotes. If MMP group is not provided, the method returns the configuration for the MMP settings for regular orders. The `index_name` must be specified before using this parameter.\n\n**Note:** Leaving `mmp_group` empty is explicitly allowed and is the correct way to retrieve configuration for the orders MMP group. It is not an error or an incomplete request — omitting this field intentionally targets the default orders MMP group rather than any named mass quote group.\n\n**📖 Related Article:** [Mass Quotes Specifications](https://docs.deribit.com/articles/mass-quotes-specifications)\n" }, { "name": "block_rfq", "required": false, "in": "query", "schema": { "type": "boolean", "default": false }, "description": "If true, retrieves MMP configuration for Block RFQ. When set, requires `block_rfq` scope instead of `trade` scope. Block RFQ MMP settings are completely separate from normal order/quote MMP settings.\n" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateGetMmpConfigResponse" } }, "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 7859, "method": "private/get_mmp_config", "params": { "index_name": "btc_usd", "mmp_group": "MassQuoteBot7" } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "Retrieves Market Maker Protection (MMP) configuration for an index. Returns all currently active MMP parameters for the selected index, including the interval, `frozen_time`, quantity/delta/vega limits, and `max_quote_quantity`.\n\nIf the `index_name` parameter is not provided, a list of all MMP configurations is returned. An empty list means no MMP configuration exists. This method is useful for verifying your configuration or confirming applied updates.\n\nFor Mass Quotes, specify the `mmp_group` parameter to retrieve configuration for a specific MMP group. If no group is provided, returns configuration for regular orders. Set `block_rfq` to `true` to retrieve MMP configuration for Block RFQ (requires `block_rfq:read` scope).\n\nEach entry in the response includes an `id` field (integer) that uniquely identifies the MMP group. This integer ID is the programmatic identifier for the group and can be used to reference it in contexts where the string `mmp_group` name is not accepted. Entries that have no `mmp_group` name in the response correspond to the orders MMP group (the default group).\n\n**📖 Related Article:** [Market Maker Protection API Configuration](https://docs.deribit.com/articles/market-maker-protection)\n\n**Scope:** `trade:read` or `block_rfq:read` (when `block_rfq` = `true`)\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_mmp_config)\n\n", "x-mint": { "metadata": { "title": "private/get_mmp_config", "og:title": "private/get_mmp_config", "keywords": [ "private/get_mmp_config", "index_name", "mmp_group", "block_rfq", "interval", "frozen_time", "quantity_limit", "delta_limit", "vega_limit", "max_quote_quantity", "trade_count_limit" ] }, "href": "/api-reference/trading/private-get_mmp_config" } } }, "/private/get_mmp_status": { "get": { "tags": [ "Trading", "Matching Engine", "Private" ], "parameters": [ { "name": "index_name", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/index_name_derivative" }, "description": "Index identifier of derivative instrument on the platform; skipping this parameter will return all configurations" }, { "name": "mmp_group", "required": false, "in": "query", "schema": { "type": "string", "example": "MassQuoteBot7" }, "description": "Specifies the MMP group for which the status is being retrieved. The `index_name` must be specified before using this parameter.\n\n**📖 Related Article:** [Mass Quotes Specifications](https://docs.deribit.com/articles/mass-quotes-specifications)\n" }, { "name": "block_rfq", "required": false, "in": "query", "schema": { "type": "boolean", "default": false }, "description": "If true, retrieves MMP status for Block RFQ. When set, requires `block_rfq` scope instead of `trade` scope. Block RFQ MMP status is completely separate from normal order/quote MMP status.\n" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateGetMmpStatusResponse" } }, "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 7851, "method": "private/get_mmp_status", "params": { "index_name": "btc_usd", "mmp_group": "MassQuoteBot7" } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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), whether quoting is currently allowed, and any active freeze conditions.\n\nIf the `index_name` parameter is not provided, a list of all triggered MMP statuses is returned. This method lets you track whether protection is active and when quoting will resume.\n\nFor Mass Quotes, specify the `mmp_group` parameter to check status for a specific MMP group. Set `block_rfq` to `true` to retrieve MMP status for Block RFQ (requires `block_rfq:read` scope).\n\n**📖 Related Article:** [Market Maker Protection API Configuration](https://docs.deribit.com/articles/market-maker-protection)\n\n**Scope:** `trade:read` or `block_rfq:read` (when `block_rfq` = `true`)\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_mmp_status)\n\n", "x-mint": { "metadata": { "title": "private/get_mmp_status", "og:title": "private/get_mmp_status", "keywords": [ "private/get_mmp_status", "index_name", "mmp_group", "block_rfq", "frozen_until" ] }, "href": "/api-reference/trading/private-get_mmp_status" } } }, "/private/set_mmp_config": { "get": { "tags": [ "Trading", "Matching Engine", "Private" ], "parameters": [ { "name": "index_name", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/index_name_derivative" }, "description": "Index identifier of derivative instrument on the platform" }, { "name": "interval", "required": true, "in": "query", "schema": { "type": "integer", "minimum": 0, "maximum": 3600, "example": 60 }, "description": "The duration of the monitoring window in seconds. For example, an `interval` of `3` implies a 3-second window.\n\nThe `interval` begins after the first trade. If a new trade is executed after the `interval` has ended, a new `interval` is started, and counters reset. If a trade occurs during an already running `interval`, that `interval` continues unaffected.\n\nThis mechanism allows the platform to track activity in short, rolling windows to identify potentially risky trading behavior.\n\nIf set to `0`, MMP is removed.\n\nMaximum value: `3600` seconds (1 hour).\n" }, { "name": "frozen_time", "required": true, "in": "query", "schema": { "type": "integer", "minimum": 0, "maximum": 3600, "example": 0 }, "description": "Time in seconds that MMP remains active after being triggered. Once this frozen period has passed, MMP will automatically reset, allowing new orders to be submitted.\n\nIf you want to disable automatic reset, set `frozen_time` to `0`. In that case, a manual reset is required using the `private/reset_mmp` method.\n\nManual reset is also possible during the frozen time period.\n\nMaximum value: `3600` seconds (1 hour).\n" }, { "name": "mmp_group", "required": false, "in": "query", "schema": { "type": "string", "example": "MassQuoteBot7" }, "description": "Designates the MMP group for which the configuration is being set. If the specified group is already associated with a different `index_name`, an error is returned. This parameter enables distinct configurations for each MMP group, linked to particular `index_name`. Maximum 64 characters. Case sensitive. Cannot be empty string.\n\n**📖 Related Article:** [Mass Quotes Specifications](https://docs.deribit.com/articles/mass-quotes-specifications)\n" }, { "name": "quantity_limit", "required": false, "in": "query", "schema": { "type": "number", "example": 3 }, "description": "The total traded quantity, measured in units of the base currency (e.g., BTC in `BTC-PERPETUAL`), within the `interval`.\n\nThis count is direction-agnostic—a buy followed by a sell counts double.\n\nExample: Buy `10` BTC and sell `10` BTC = `20` total quantity.\n\nApplicable to both options and futures.\n\nPositive value with maximum 4 decimal places.\n" }, { "name": "delta_limit", "required": false, "in": "query", "schema": { "type": "number" }, "description": "The maximum allowable net transaction delta change during the `interval`.\n\nExpressed in units of base currency.\n\nThe `delta_limit` is treated as an absolute threshold: e.g., `delta_limit: 10` → MMP is triggered if net transaction delta exceeds `+10` or drops below `-10`.\n\nDirection matters: buying `+5` delta and selling `−5` delta cancels out if within the same `interval`.\n\n**Note:** Note that we use the net transaction delta instead of delta. Net Transaction Delta = `Delta - Mark Price`. In the rest of this document, \"delta\" actually refers to net transaction delta.\n\nPositive value with maximum 4 decimal places.\n" }, { "name": "vega_limit", "required": false, "in": "query", "schema": { "type": "number" }, "description": "The maximum change in vega exposure allowed within a given `interval`, measured in absolute terms.\n\nExpressed in USD, representing the change in sensitivity to implied volatility across executed trades.\n\nThis parameter is primarily relevant for options traders managing risk in volatile markets.\n\nSimilar to `delta_limit`, the `vega_limit` is direction-aware and evaluated on a net basis. If the exposure exceeds the set threshold (positively or negatively), MMP will be triggered.\n\n**Notice:** When evaluating Delta and Vega limits for MMP, Deribit uses the greeks at the moment of trade execution. The system does not re-evaluate Delta or Vega using live greeks at the time of MMP checking.\n\nPositive value with maximum 4 decimal places.\n" }, { "name": "max_quote_quantity", "required": true, "in": "query", "schema": { "type": "number", "example": 2.5 }, "description": "Maximum Quote Quantity (MQQ) in base currency. MQQ is configured per index but enforced per side, per order book (instrument) — the total combined size of open MMP orders per side per instrument cannot exceed MQQ. **See response description for detailed information about MQQ behavior and limitations.** Maximum 4 decimal places." }, { "name": "block_rfq", "required": false, "in": "query", "schema": { "type": "boolean", "default": false }, "description": "If true, configures MMP for Block RFQ. When set, requires `block_rfq` scope instead of `trade` scope. Block RFQ MMP settings are completely separate from normal order/quote MMP settings.\n" }, { "name": "trade_count_limit", "required": false, "in": "query", "schema": { "type": "integer", "maximum": 1000, "minimum": 1 }, "description": "For Block RFQ only (`block_rfq` = `true`). Sets the maximum number of Block RFQ trades allowed in the lookback window. Each RFQ trade counts as `+1` towards the limit (not individual legs). Works across all currency pairs. When using this parameter, `index_name` must be set to `\"all\"`. Maximum - `1000`." } ], "responses": { "200": { "$ref": "#/components/responses/PrivateSetMmpConfigResponse" } }, "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 7859, "method": "private/set_mmp_config", "params": { "index_name": "btc_usd", "mmp_group": "MassQuoteBot7", "interval": 60, "frozen_time": 0, "quantity_limit": 3, "max_quote_quantity": 2.5 } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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).\n\nAt least one limit parameter must be set. Maximum Quote Quantity (MQQ) is a required parameter that limits the total combined size of open MMP orders. MQQ is configured per index but enforced per side, per order book (instrument).\n\nThe `interval` parameter defines the monitoring window duration in seconds. The `frozen_time` parameter sets how long MMP remains active after being triggered. Set `frozen_time` to `0` to disable automatic reset (manual reset required).\n\nFor Mass Quotes, use the `mmp_group` parameter to configure MMP for a specific group. Set `block_rfq` to `true` to configure MMP for Block RFQ (requires `block_rfq:read_write` scope). Set `interval` to `0` to remove MMP configuration.\n\n**📖 Related Article:** [Market Maker Protection API Configuration](https://docs.deribit.com/articles/market-maker-protection)\n\n**Scope:** `trade:read_write` or `block_rfq:read_write` (when `block_rfq` = `true`)\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fset_mmp_config)\n\n", "x-mint": { "metadata": { "title": "private/set_mmp_config", "og:title": "private/set_mmp_config", "keywords": [ "private/set_mmp_config", "index_name", "interval", "frozen_time", "mmp_group", "quantity_limit", "delta_limit", "vega_limit", "max_quote_quantity", "block_rfq", "trade_count_limit" ] }, "href": "/api-reference/trading/private-set_mmp_config" } } }, "/private/reset_mmp": { "get": { "tags": [ "Trading", "Matching Engine", "Private" ], "parameters": [ { "name": "index_name", "required": true, "in": "query", "schema": { "type": "string", "example": "btc_usd" }, "description": "Currency pair for which to reset MMP limits.\n\n**For regular MMP (`block_rfq = false`):** Must be a specific currency pair (e.g., \"btc_usd\", \"eth_usd\"). The value `\"all\"` is not allowed.\n\n**For Block RFQ MMP (`block_rfq = true`):** Can be either a specific currency pair or `\"all\"` to reset MMP limits across all currency pairs.\n" }, { "name": "mmp_group", "required": false, "in": "query", "schema": { "type": "string", "example": "MassQuoteBot7" }, "description": "Specifies the MMP group for which limits are being reset. If this parameter is omitted, the method resets the traditional (no group) MMP limits.\n\n**📖 Related Article:** [Mass Quotes Specifications](https://docs.deribit.com/articles/mass-quotes-specifications)\n" }, { "name": "block_rfq", "required": false, "in": "query", "schema": { "type": "boolean", "default": false }, "description": "If true, resets MMP for Block RFQ. When set, requires `block_rfq` scope instead of `trade` scope. Block RFQ MMP settings are completely separate from normal order/quote MMP settings. When `block_rfq = true`, the `index_name` parameter can be set to `\"all\"` to reset limits across all currency pairs.\n" } ], "responses": { "200": { "$ref": "#/components/responses/OkResponse" } }, "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 7859, "method": "private/reset_mmp", "params": { "index_name": "btc_usd", "mmp_group": "MassQuoteBot7" } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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.\n\nIf the configured `frozen_time` has expired, the system will automatically reset MMP. If `frozen_time` is set to `0` (automatic reset disabled), you must call this method to re-enable quoting. You can also perform a manual reset during the frozen period if you want to resume quoting early.\n\nFor regular MMP (`block_rfq = false`), the `index_name` must be a specific currency pair (e.g., \"btc_usd\", \"eth_usd\"). For Block RFQ MMP (`block_rfq = true`), you can set `index_name` to `\"all\"` to reset limits across all currency pairs. Use the `mmp_group` parameter to reset limits for a specific MMP group.\n\n**📖 Related Article:** [Market Maker Protection API Configuration](https://docs.deribit.com/articles/market-maker-protection)\n\n**Scope:** `trade:read_write` or `block_rfq:read_write` (when `block_rfq` = `true`)\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Freset_mmp)\n\n", "x-mint": { "metadata": { "title": "private/reset_mmp", "og:title": "private/reset_mmp", "keywords": [ "private/reset_mmp", "index_name", "mmp_group", "block_rfq" ] }, "href": "/api-reference/trading/private-reset_mmp" } } }, "/private/mass_quote": { "get": { "parameters": [ { "name": "wait_for_response", "in": "query", "schema": { "type": "boolean" }, "required": false, "description": "If false, the response is sent immediately after the risk check. If true, the response is sent after the orders all go through the matching engine. Default - `true`." }, { "name": "detailed", "in": "query", "schema": { "type": "boolean", "example": true }, "required": false, "description": "Flag to receive a list of all order changes and a list of errors, or to only receive a list of errors. Default - `false`." }, { "name": "quote_id", "in": "query", "schema": { "type": "string", "example": "1" }, "required": true, "description": "Identifier of a mass quote message. Can be used to match trades to requests. We recommend using an incrementing counter." }, { "name": "mmp_group", "in": "query", "schema": { "type": "string", "example": "default" }, "required": true, "description": "Name of the MMP group. An MMP group has to be used and only one quote can exist per instrument per side per MMP group." }, { "name": "valid_until", "in": "query", "schema": { "type": "integer" }, "required": false, "description": "Timestamp, when provided server will start processing request in Matching Engine only before given timestamp, in other cases `timed_out` error will be responded. Remember that the given timestamp should be consistent with the server's time, use /public/time method to obtain current server time." }, { "name": "quotes", "in": "query", "required": true, "schema": { "type": "array", "items": { "type": "object", "properties": { "instrument_name": { "type": "string", "description": "The name of the instrument." }, "quote_set_id": { "type": "string", "description": "User-defined label that can be used for targeted cancels using private/cancel_quotes." }, "ask": { "type": "object", "properties": { "price": { "type": "number", "description": "The price of this side of the quote. If no price is supplied, only the amount is amended." }, "amount": { "type": "number", "description": "The amount of this side of the quote. If no quantity is supplied, only the price is amended." }, "post_only": { "type": "boolean", "default": false, "description": "If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below the spread. Default - `false`" }, "reject_post_only": { "type": "boolean", "default": false, "description": "If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected. Only valid in combination with \"post_only\" set to `true`. Default value - `false`" } }, "description": "Order details for the ask. If not provided, `bid` must be present." }, "bid": { "type": "object", "properties": { "price": { "type": "number", "description": "The price of this side of the quote. If no price is supplied, only the amount is amended." }, "amount": { "type": "number", "description": "The amount of this side of the quote. If no quantity is supplied, only the price is amended." }, "post_only": { "type": "boolean", "default": false, "description": "If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below the spread. Default - `false`" }, "reject_post_only": { "type": "boolean", "default": false, "description": "If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected. Only valid in combination with \"post_only\" set to `true`. Default value - `false`" } }, "description": "Order details for the bid. If not provided, `ask` must be present." } } }, "example": [ { "instrument_name": "BTC-PERPETUAL", "quote_set_id": "futures", "ask": { "price": 43800, "amount": 10 }, "bid": { "price": 43700, "amount": 10 } }, { "instrument_name": "BTC-22DEC23-41600-C", "quote_set_id": "options", "ask": { "price": 0.05, "amount": 1 }, "bid": { "price": 0.04, "amount": 1 } } ] }, "description": "List of quotes.", "style": "form", "explode": true } ], "responses": { "200": { "$ref": "#/components/responses/PrivateMassQuoteResponse" } }, "tags": [ "Trading", "Matching Engine", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 7859, "method": "private/mass_quote", "params": { "detailed": true, "quote_id": "1", "mmp_group": "default", "quotes": [ { "instrument_name": "BTC-PERPETUAL", "quote_set_id": "futures", "ask": { "price": 43800, "amount": 10 }, "bid": { "price": 43700, "amount": 10 } }, { "instrument_name": "BTC-22DEC23-41600-C", "quote_set_id": "options", "ask": { "price": 0.05, "amount": 1 }, "bid": { "price": 0.04, "amount": 1 } } ] } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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.\n\n**Requirements:**\n- Cancel-on-Disconnect must be enabled (see [private/enable_cancel_on_disconnect](https://docs.deribit.com/api-reference/session-management/private-enable_cancel_on_disconnect)), otherwise the request will return an error.\n- This endpoint can only be used after approval from the administrators.\n\nEach quote can include both bid and ask sides, or just one side. Quotes are identified by `quote_set_id` for targeted cancellation. Use the `wait_for_response` parameter to control whether to wait for all orders to be processed before returning.\n\n**📖 Related Article:** [Mass Quotes Specifications](https://docs.deribit.com/articles/mass-quotes-specifications)\n\n**Scope:** `trade:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fmass_quote)\n\n", "x-mint": { "metadata": { "title": "private/mass_quote", "og:title": "private/mass_quote", "keywords": [ "private/mass_quote", "wait_for_response", "detailed", "quote_id", "mmp_group", "valid_until", "quotes", "orders", "trades", "errors_count", "pending_requests_count", "pending_requests", "errors", "order_id", "order_state", "order_type", "original_order_type", "time_in_force", "is_rebalance", "is_liquidation", "instrument_name", "creation_timestamp", "last_update_timestamp", "direction", "price", "label", "post_only", "reject_post_only", "reduce_only", "api", "web", "mobile", "refresh_amount", "display_amount", "amount", "contracts", "filled_amount", "average_price", "advanced", "implv", "usd", "triggered", "trigger", "trigger_price", "trigger_offset", "trigger_reference_price", "block_trade", "mmp", "risk_reducing", "replaced", "auto_replaced", "quote", "quote_set_id", "trigger_order_id", "app_name", "mmp_cancelled", "cancel_reason", "oto_order_ids", "trigger_fill_condition", "oco_ref", "primary_order_id", "is_secondary_oto", "is_primary_otoco", "trade_id", "trade_seq", "timestamp", "matching_id", "tick_direction", "index_price", "iv", "underlying_price", "liquidation", "liquidity", "fee", "fee_currency", "state", "block_trade_id", "block_rfq_id", "block_rfq_quote_id", "profit_loss", "mark_price", "legs", "combo_id", "combo_trade_id", "trade_allocations", "user_id", "client_info", "client_id", "client_link_id", "name", "side", "code", "message" ] }, "href": "/api-reference/trading/private-mass_quote" } } }, "/private/move_positions": { "get": { "parameters": [ { "in": "query", "name": "currency", "required": false, "schema": { "$ref": "#/components/schemas/currency" }, "description": "The currency symbol" }, { "name": "source_uid", "in": "query", "schema": { "type": "integer", "example": 1 }, "required": true, "description": "Id of source subaccount. Can be found in `My Account >> Subaccounts` tab" }, { "name": "target_uid", "in": "query", "schema": { "type": "integer", "example": 1 }, "required": true, "description": "Id of target subaccount. Can be found in `My Account >> Subaccounts` tab" }, { "in": "query", "name": "trades", "required": true, "schema": { "type": "array", "items": { "type": "object", "properties": { "instrument_name": { "$ref": "#/components/schemas/instrument_name", "description": "Instrument name" }, "price": { "type": "number", "description": "Price for trade - if not provided average price of the position is used" }, "amount": { "type": "number", "description": "It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin. Amount can't exceed position size." } } } }, "description": "List of trades for position move", "style": "form", "explode": true } ], "responses": { "200": { "$ref": "#/components/responses/PrivatePositionMoveResponse" } }, "tags": [ "Trading", "Matching Engine", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 3, "method": "private/move_positions", "params": { "currency": "BTC", "source_uid": 3, "target_uid": 23, "trades": [ { "instrument_name": "BTC-PERPETUAL", "price": "35800", "amount": "110" }, { "instrument_name": "BTC-28JAN22-32500-C", "amount": "0.1" } ] } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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.\n\nPositions can be filtered by currency. The operation creates trades to transfer positions, which may affect P&L and margin calculations.\n\n**Note - This method has distinct API rate limiting requirements:** \n- Sustained rate: 6 requests/minute\n- Weekly limit: 100 move_position uses per week (168 hours)\n\nFor more information, see [Rate Limits](https://support.deribit.com/hc/en-us/articles/25944617523357-Rate-Limits).\n\n**Important:** In rare cases, the request may return an `internal_server_error`. This does not necessarily mean the operation failed entirely. Part or all of the position transfer might have still been processed successfully. Check the positions in both accounts to verify the transfer status.\n\n**📖 Related Article:** [Moving Positions](https://docs.deribit.com/articles/moving-positions-api)\n\n**Scope:** `trade:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fmove_positions)\n\n", "x-mint": { "metadata": { "title": "private/move_positions", "og:title": "private/move_positions", "keywords": [ "private/move_positions", "currency", "source_uid", "target_uid", "trades", "instrument_name", "direction", "price", "amount" ] }, "href": "/api-reference/trading/private-move_positions" } } }, "/private/get_deposits": { "get": { "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency" }, "description": "The currency symbol" }, { "name": "count", "required": false, "in": "query", "schema": { "type": "integer", "maximum": 1000, "minimum": 1 }, "description": "Number of requested items, default - `10`, maximum - `1000`" }, { "name": "offset", "in": "query", "required": false, "schema": { "example": 10, "type": "integer" }, "description": "The offset for pagination, default - `0`" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateGetDepositsResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 5611, "method": "private/get_deposits", "params": { "currency": "BTC", "count": 10, "offset": 0 } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "Retrieve the latest user deposits. Returns a list of deposit transactions with their status, amounts, addresses, confirmations, and other relevant details.\n\n**📖 Related Article:** [Managing Deposits](https://docs.deribit.com/articles/managing-deposits-api)\n\n**Scope:** `wallet:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_deposits)\n\n", "x-mint": { "metadata": { "title": "private/get_deposits", "og:title": "private/get_deposits", "keywords": [ "private/get_deposits", "currency", "count", "offset", "data", "address", "amount", "state", "transaction_id", "source_address", "received_timestamp", "updated_timestamp", "note", "clearance_state", "refund_transaction_id" ] }, "href": "/api-reference/wallet/private-get_deposits" } } }, "/private/create_deposit_address": { "get": { "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency" }, "description": "The currency symbol" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateDepositAddressResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 7538, "method": "private/create_deposit_address", "params": { "currency": "BTC" } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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.\n\n**Note:**\n\nFor Bitcoin, a new address can be generated every 24 hours.\n\nFor ERC20, Solana and XRP only one address can be generated.\n\n**Note:**\n\nIf an ERC20 address is generated, this address will be automatically added for every asset that uses ERC20 addresses.\n\n**📖 Related Article:** [Managing Deposits](https://docs.deribit.com/articles/managing-deposits-api)\n\n**Scope:** `wallet:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcreate_deposit_address)\n\n", "x-mint": { "metadata": { "title": "private/create_deposit_address", "og:title": "private/create_deposit_address", "keywords": [ "private/create_deposit_address", "currency", "creation_timestamp", "address", "type" ] }, "href": "/api-reference/wallet/private-create_deposit_address" } } }, "/private/get_current_deposit_address": { "get": { "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency" }, "description": "The currency symbol" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateDepositAddressResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 3461, "method": "private/get_current_deposit_address", "params": { "currency": "BTC" } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "Retrieve the current deposit address for the specified currency. Returns the most recently created or used deposit address for receiving funds.\n\n**📖 Related Article:** [Managing Deposits](https://docs.deribit.com/articles/managing-deposits-api)\n\n**Scope:** `wallet:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_current_deposit_address)\n\n", "x-mint": { "metadata": { "title": "private/get_current_deposit_address", "og:title": "private/get_current_deposit_address", "keywords": [ "private/get_current_deposit_address", "currency", "creation_timestamp", "address", "type" ] }, "href": "/api-reference/wallet/private-get_current_deposit_address" } } }, "/private/withdraw": { "get": { "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency" }, "description": "The currency symbol" }, { "name": "address", "in": "query", "schema": { "type": "string" }, "required": true, "description": "Address in currency format, it must be in address book" }, { "name": "amount", "in": "query", "schema": { "type": "number" }, "required": true, "description": "Amount of funds to be withdrawn" }, { "name": "priority", "in": "query", "schema": { "type": "string", "enum": [ "insane", "extreme_high", "very_high", "high", "mid", "low", "very_low" ] }, "required": false, "description": "Withdrawal priority, optional for BTC, default: `high`" }, { "in": "query", "name": "nonce", "required": false, "schema": { "$ref": "#/components/schemas/nonce" }, "description": "Optional idempotency nonce. If provided, subsequent requests with the same nonce will return the previously created transaction instead of creating a new one. Must be 8-128 characters. The nonce is persisted on the resulting transaction and returned in the response." } ], "responses": { "200": { "$ref": "#/components/responses/PrivateWithdrawResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 6931, "method": "private/withdraw", "params": { "currency": "BTC", "address": "2NBqqD5GRJ8wHy1PYyCXTe9ke5226FhavBz", "amount": 0.4, "priority": "mid" } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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 from your address book.\n\n**Withdrawal Checks & Balance Updates**\n\nWithdrawal funds are checked twice: when a user requests a withdrawal and again when they confirm it via the email link. If available funds decrease between these steps, the withdrawal may be rejected.\n\nA withdrawal may also be rejected if the on-chain fee increases between the request and confirmation.\n\nThe withdrawal amount is deducted only after all checks pass and the transaction is scheduled. The web-interface Withdrawal tab displays all withdrawals regardless of their status (pending, cancelled, rejected, or completed).\n\n**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)\n\n**Scope:** `wallet:read_write` and mainaccount\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fwithdraw)\n\n", "x-mint": { "metadata": { "title": "private/withdraw", "og:title": "private/withdraw", "keywords": [ "private/withdraw", "currency", "address", "amount", "priority", "nonce", "confirmed_timestamp", "created_timestamp", "fee", "state", "transaction_id", "updated_timestamp" ] }, "href": "/api-reference/wallet/private-withdraw" } } }, "/private/cancel_withdrawal": { "get": { "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency" }, "description": "The currency symbol" }, { "in": "query", "name": "id", "required": true, "schema": { "type": "number", "example": 1 }, "description": "The withdrawal id" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateWithdrawResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 7420, "method": "private/cancel_withdrawal", "params": { "currency": "BTC", "id": 1 } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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.\n\n**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)\n\n**Scope:** `wallet:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_withdrawal)\n\n", "x-mint": { "metadata": { "title": "private/cancel_withdrawal", "og:title": "private/cancel_withdrawal", "keywords": [ "private/cancel_withdrawal", "currency", "id", "address", "amount", "confirmed_timestamp", "created_timestamp", "fee", "priority", "state", "transaction_id", "updated_timestamp", "nonce" ] }, "href": "/api-reference/wallet/private-cancel_withdrawal" } } }, "/private/get_withdrawals": { "get": { "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency" }, "description": "The currency symbol" }, { "name": "count", "required": false, "in": "query", "schema": { "type": "integer", "maximum": 1000, "minimum": 1 }, "description": "Number of requested items, default - `10`, maximum - `1000`" }, { "name": "offset", "in": "query", "required": false, "schema": { "example": 10, "type": "integer" }, "description": "The offset for pagination, default - `0`" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateGetWithdrawalsResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 2745, "method": "private/get_withdrawals", "params": { "currency": "BTC", "count": 10, "offset": 0 } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "Retrieve the latest user withdrawals. Returns a list of withdrawal requests with their status, amounts, addresses, and other relevant details.\n\n**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)\n\n**Scope:** `wallet:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_withdrawals)\n\n", "x-mint": { "metadata": { "title": "private/get_withdrawals", "og:title": "private/get_withdrawals", "keywords": [ "private/get_withdrawals", "currency", "count", "offset", "data", "address", "amount", "confirmed_timestamp", "created_timestamp", "fee", "priority", "state", "transaction_id", "updated_timestamp", "nonce" ] }, "href": "/api-reference/wallet/private-get_withdrawals" } } }, "/private/get_address_book": { "get": { "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/wallet_currency" }, "description": "The currency symbol" }, { "name": "type", "in": "query", "schema": { "$ref": "#/components/schemas/address_book_type" }, "required": true, "description": "Address book type" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateAddressBookResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 31, "method": "private/get_address_book", "params": { "currency": "BTC", "type": "withdrawal" } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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.\n\n**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)\n\n**Scope:** `wallet:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_address_book)\n\n", "x-mint": { "metadata": { "title": "private/get_address_book", "og:title": "private/get_address_book", "keywords": [ "private/get_address_book", "currency", "type", "address", "creation_timestamp", "label", "beneficiary_vasp_name", "beneficiary_vasp_did", "beneficiary_vasp_website", "beneficiary_first_name", "beneficiary_last_name", "beneficiary_company_name", "beneficiary_address", "agreed", "personal", "info_required", "status", "waiting_timestamp", "requires_confirmation", "requires_confirmation_change" ] }, "href": "/api-reference/wallet/private-get_address_book" } } }, "/private/add_to_address_book": { "get": { "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/wallet_currency" }, "description": "The currency symbol" }, { "name": "type", "in": "query", "schema": { "$ref": "#/components/schemas/address_book_type" }, "required": true, "description": "Address book type" }, { "name": "address", "in": "query", "schema": { "type": "string" }, "required": true, "description": "Address in currency format" }, { "name": "label", "in": "query", "schema": { "$ref": "#/components/schemas/address_label" }, "required": true, "description": "Label of the address book entry" }, { "name": "beneficiary_vasp_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_name" }, "required": true, "description": "Name of beneficiary VASP" }, { "name": "beneficiary_vasp_did", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_did" }, "required": true, "description": "DID of beneficiary VASP" }, { "name": "beneficiary_vasp_website", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_website" }, "required": false, "description": "Website of the beneficiary VASP. Required if the address book entry is associated with a VASP that is not included in the list of known VASPs" }, { "name": "beneficiary_first_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_first_name" }, "description": "First name of beneficiary (if beneficiary is a person)", "required": false }, { "name": "beneficiary_last_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_last_name" }, "description": "First name of beneficiary (if beneficiary is a person)", "required": false }, { "name": "beneficiary_company_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_company_name" }, "description": "Beneficiary company name (if beneficiary is a company)", "required": false }, { "name": "beneficiary_address", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_address" }, "required": true, "description": "Geographical address of the beneficiary" }, { "name": "agreed", "in": "query", "schema": { "$ref": "#/components/schemas/agree_to_share_with_3rd_party" }, "required": true, "description": "Indicates that the user agreed to shared provided information with 3rd parties" }, { "name": "personal", "in": "query", "schema": { "$ref": "#/components/schemas/personal_wallet" }, "required": true, "description": "The user confirms that he provided address belongs to him and he has access to it via an un-hosted wallet software" }, { "name": "extra_currencies", "in": "query", "schema": { "$ref": "#/components/schemas/extra_currencies" }, "description": "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 currency, the address will be added to ALL of the ERC20 currencies.", "required": false } ], "responses": { "200": { "$ref": "#/components/responses/PrivateAddToAddressBookResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 42, "method": "private/add_to_address_book", "params": { "currency": "BTC", "type": "withdrawal", "address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj", "label": "Main address", "beneficiary_vasp_name": "Money`s Gone", "beneficiary_vasp_did": "did:example:123456789abcdefghi", "beneficiary_first_name": "John", "beneficiary_last_name": "Doe", "beneficiary_address": "NL, Amsterdam, Street, 1", "agreed": true, "personal": false } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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.\n\n**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)\n\n**Scope:** `wallet:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fadd_to_address_book)\n\n", "x-mint": { "metadata": { "title": "private/add_to_address_book", "og:title": "private/add_to_address_book", "keywords": [ "private/add_to_address_book", "currency", "type", "address", "label", "beneficiary_vasp_name", "beneficiary_vasp_did", "beneficiary_vasp_website", "beneficiary_first_name", "beneficiary_last_name", "beneficiary_company_name", "beneficiary_address", "agreed", "personal", "extra_currencies", "creation_timestamp", "info_required", "status", "waiting_timestamp", "requires_confirmation", "requires_confirmation_change" ] }, "href": "/api-reference/wallet/private-add_to_address_book" } } }, "/private/remove_from_address_book": { "get": { "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/wallet_currency" }, "description": "The currency symbol" }, { "name": "type", "in": "query", "schema": { "$ref": "#/components/schemas/address_book_type" }, "required": true, "description": "Address book type" }, { "name": "address", "in": "query", "schema": { "type": "string" }, "required": true, "description": "Address in currency format, it must be in address book" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateRemoveFromAddressBookResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 42, "method": "private/remove_from_address_book", "params": { "currency": "BTC", "type": "transfer", "address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj" } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "Removes an entry from the address book. This method allows you to delete a saved address that is no longer needed.\n\n**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)\n\n**Scope:** `wallet:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fremove_from_address_book)\n\n", "x-mint": { "metadata": { "title": "private/remove_from_address_book", "og:title": "private/remove_from_address_book", "keywords": [ "private/remove_from_address_book", "currency", "type", "address" ] }, "href": "/api-reference/wallet/private-remove_from_address_book" } } }, "/private/update_in_address_book": { "get": { "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/wallet_currency" }, "description": "The currency symbol" }, { "name": "type", "in": "query", "schema": { "$ref": "#/components/schemas/address_book_type" }, "required": true, "description": "Address book type" }, { "name": "address", "in": "query", "schema": { "type": "string" }, "required": true, "description": "Address in currency format, it must be in address book" }, { "name": "beneficiary_vasp_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_name" }, "required": true, "description": "Name of beneficiary VASP" }, { "name": "beneficiary_vasp_did", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_did" }, "required": true, "description": "DID of beneficiary VASP" }, { "name": "beneficiary_vasp_website", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_website" }, "required": false, "description": "Website of the beneficiary VASP. Required if the address book entry is associated with a VASP that is not included in the list of known VASPs" }, { "name": "beneficiary_first_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_first_name" }, "description": "First name of beneficiary (if beneficiary is a person)", "required": false }, { "name": "beneficiary_last_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_last_name" }, "description": "First name of beneficiary (if beneficiary is a person)", "required": false }, { "name": "beneficiary_company_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_company_name" }, "description": "Beneficiary company name (if beneficiary is a company)", "required": false }, { "name": "beneficiary_address", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_address" }, "required": true, "description": "Geographical address of the beneficiary" }, { "name": "agreed", "in": "query", "schema": { "$ref": "#/components/schemas/agree_to_share_with_3rd_party" }, "required": true, "description": "Indicates that the user agreed to shared provided information with 3rd parties" }, { "name": "personal", "in": "query", "schema": { "$ref": "#/components/schemas/personal_wallet" }, "required": true, "description": "The user confirms that he provided address belongs to him and he has access to it via an un-hosted wallet software" }, { "name": "label", "in": "query", "schema": { "$ref": "#/components/schemas/address_label" }, "required": true, "description": "Label of the address book entry" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateUpdateInAddressBookResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 42, "method": "private/update_in_address_book", "params": { "currency": "BTC", "type": "withdrawal", "address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj", "label": "Main address", "beneficiary_vasp_name": "Money`s Gone", "beneficiary_vasp_did": "did:example:123456789abcdefghi", "beneficiary_first_name": "John", "beneficiary_last_name": "Doe", "beneficiary_address": "NL, Amsterdam, Street, 1", "agreed": true, "personal": false } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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 addresses.\n\n**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)\n\n**Scope:** `wallet:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fupdate_in_address_book)\n\n", "x-mint": { "metadata": { "title": "private/update_in_address_book", "og:title": "private/update_in_address_book", "keywords": [ "private/update_in_address_book", "currency", "type", "address", "beneficiary_vasp_name", "beneficiary_vasp_did", "beneficiary_vasp_website", "beneficiary_first_name", "beneficiary_last_name", "beneficiary_company_name", "beneficiary_address", "agreed", "personal", "label" ] }, "href": "/api-reference/wallet/private-update_in_address_book" } } }, "/private/save_address_beneficiary": { "get": { "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/wallet_currency" }, "description": "The currency symbol" }, { "name": "address", "in": "query", "schema": { "type": "string" }, "required": true, "description": "Address in currency format" }, { "name": "tag", "in": "query", "schema": { "type": "string" }, "required": false, "description": "Tag for XRP addresses" }, { "name": "agreed", "in": "query", "schema": { "$ref": "#/components/schemas/agree_to_share_with_3rd_party" }, "required": true, "description": "Indicates that the user agreed to shared provided information with 3rd parties" }, { "name": "personal", "in": "query", "schema": { "$ref": "#/components/schemas/personal_wallet" }, "required": true, "description": "The user confirms that he provided address belongs to him and he has access to it via an un-hosted wallet software" }, { "name": "unhosted", "in": "query", "schema": { "type": "boolean" }, "required": true, "description": "Indicates if the address belongs to an unhosted wallet" }, { "name": "beneficiary_vasp_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_name" }, "required": true, "description": "Name of beneficiary VASP" }, { "name": "beneficiary_vasp_did", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_did" }, "required": true, "description": "DID of beneficiary VASP" }, { "name": "beneficiary_vasp_website", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_website" }, "required": false, "description": "Website of the beneficiary VASP. Required if the address book entry is associated with a VASP that is not included in the list of known VASPs" }, { "name": "beneficiary_first_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_first_name" }, "description": "First name of beneficiary (if beneficiary is a person)", "required": false }, { "name": "beneficiary_last_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_last_name" }, "description": "First name of beneficiary (if beneficiary is a person)", "required": false }, { "name": "beneficiary_company_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_company_name" }, "description": "Beneficiary company name (if beneficiary is a company)", "required": false }, { "name": "beneficiary_address", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_address" }, "required": true, "description": "Geographical address of the beneficiary" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateSaveAddressBeneficiaryResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 42, "method": "private/save_address_beneficiary", "params": { "currency": "BTC", "address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj", "agreed": true, "personal": false, "unhosted": false, "beneficiary_vasp_name": "Money's Gone", "beneficiary_vasp_did": "did:example:123456789abcdefghi", "beneficiary_vasp_website": "https://example.com", "beneficiary_first_name": "John", "beneficiary_last_name": "Doe", "beneficiary_company_name": "Example Corp", "beneficiary_address": "NL, Amsterdam, Street, 1" } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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 classification.\n\n**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)\n\n**Scope:** `wallet:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fsave_address_beneficiary)\n\n", "x-mint": { "metadata": { "title": "private/save_address_beneficiary", "og:title": "private/save_address_beneficiary", "keywords": [ "private/save_address_beneficiary", "currency", "address", "tag", "agreed", "personal", "unhosted", "beneficiary_vasp_name", "beneficiary_vasp_did", "beneficiary_vasp_website", "beneficiary_first_name", "beneficiary_last_name", "beneficiary_company_name", "beneficiary_address", "user_id", "created", "updated" ] }, "href": "/api-reference/wallet/private-save_address_beneficiary" } } }, "/private/get_address_beneficiary": { "get": { "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/wallet_currency" }, "description": "The currency symbol" }, { "name": "address", "in": "query", "schema": { "type": "string" }, "required": true, "description": "Address in currency format" }, { "name": "tag", "in": "query", "schema": { "type": "string" }, "required": false, "description": "Tag for XRP addresses" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateGetAddressBeneficiaryResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 42, "method": "private/get_address_beneficiary", "params": { "currency": "BTC", "address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj" } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "Retrieves beneficiary information for a specific address. Returns the stored beneficiary details including VASP information, personal details, and wallet type classification.\n\n**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)\n\n**Scope:** `wallet:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_address_beneficiary)\n\n", "x-mint": { "metadata": { "title": "private/get_address_beneficiary", "og:title": "private/get_address_beneficiary", "keywords": [ "private/get_address_beneficiary", "currency", "address", "tag", "user_id", "agreed", "personal", "unhosted", "beneficiary_vasp_name", "beneficiary_vasp_did", "beneficiary_vasp_website", "beneficiary_first_name", "beneficiary_last_name", "beneficiary_company_name", "beneficiary_address", "created", "updated" ] }, "href": "/api-reference/wallet/private-get_address_beneficiary" } } }, "/private/delete_address_beneficiary": { "get": { "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/wallet_currency" }, "description": "The currency symbol" }, { "name": "address", "in": "query", "schema": { "type": "string" }, "required": true, "description": "Address in currency format" }, { "name": "tag", "in": "query", "schema": { "type": "string" }, "required": false, "description": "Tag for XRP addresses" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateDeleteAddressBeneficiaryResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 42, "method": "private/delete_address_beneficiary", "params": { "currency": "BTC", "address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj" } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "Deletes beneficiary information for a specific address.\n\n**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)\n\n**Scope:** `wallet:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fdelete_address_beneficiary)\n\n", "x-mint": { "metadata": { "title": "private/delete_address_beneficiary", "og:title": "private/delete_address_beneficiary", "keywords": [ "private/delete_address_beneficiary", "currency", "address", "tag" ] }, "href": "/api-reference/wallet/private-delete_address_beneficiary" } } }, "/private/list_address_beneficiaries": { "get": { "parameters": [ { "name": "currency", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/wallet_currency" }, "description": "The currency symbol" }, { "name": "address", "in": "query", "schema": { "type": "string" }, "required": false, "description": "Address in currency format" }, { "name": "tag", "in": "query", "schema": { "type": "string" }, "required": false, "description": "Tag for XRP addresses" }, { "name": "created_before", "in": "query", "schema": { "$ref": "#/components/schemas/timestamp" }, "required": false, "description": "Filter by creation timestamp (before)" }, { "name": "created_after", "in": "query", "schema": { "$ref": "#/components/schemas/timestamp" }, "required": false, "description": "Filter by creation timestamp (after)" }, { "name": "updated_before", "in": "query", "schema": { "$ref": "#/components/schemas/timestamp" }, "required": false, "description": "Filter by update timestamp (before)" }, { "name": "updated_after", "in": "query", "schema": { "$ref": "#/components/schemas/timestamp" }, "required": false, "description": "Filter by update timestamp (after)" }, { "name": "personal", "in": "query", "schema": { "type": "boolean" }, "required": false, "description": "Filter by personal wallet flag" }, { "name": "unhosted", "in": "query", "schema": { "type": "boolean" }, "required": false, "description": "Filter by unhosted wallet flag" }, { "name": "beneficiary_vasp_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_name" }, "required": false, "description": "Filter by beneficiary VASP name" }, { "name": "beneficiary_vasp_did", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_did" }, "required": false, "description": "Filter by beneficiary VASP DID" }, { "name": "beneficiary_vasp_website", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_website" }, "required": false, "description": "Website of the beneficiary VASP. Required if the address book entry is associated with a VASP that is not included in the list of known VASPs" }, { "name": "limit", "in": "query", "schema": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 100 }, "required": false, "description": "Maximum number of results to return" }, { "name": "continuation", "in": "query", "required": false, "schema": { "type": "string", "example": "xY7T6cutS3t2B9YtaDkE6TS379oKnkzTvmEDUnEUP2Msa9xKWNNaT" }, "description": "Continuation token for pagination" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateListAddressBeneficiariesResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 42, "method": "private/list_address_beneficiaries", "params": { "currency": "BTC", "limit": 10 } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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, and date ranges.\n\n**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)\n\n**Scope:** `wallet:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Flist_address_beneficiaries)\n\n", "x-mint": { "metadata": { "title": "private/list_address_beneficiaries", "og:title": "private/list_address_beneficiaries", "keywords": [ "private/list_address_beneficiaries", "currency", "address", "tag", "created_before", "created_after", "updated_before", "updated_after", "personal", "unhosted", "beneficiary_vasp_name", "beneficiary_vasp_did", "beneficiary_vasp_website", "limit", "continuation", "data", "count", "user_id", "agreed", "beneficiary_first_name", "beneficiary_last_name", "beneficiary_company_name", "beneficiary_address", "created", "updated" ] }, "href": "/api-reference/wallet/private-list_address_beneficiaries" } } }, "/private/submit_transfer_to_subaccount": { "get": { "tags": [ "Wallet", "Private" ], "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency" }, "description": "The currency symbol" }, { "name": "amount", "in": "query", "schema": { "type": "number" }, "required": true, "description": "Amount of funds to be transferred" }, { "name": "destination", "in": "query", "schema": { "type": "integer", "example": 1 }, "required": true, "description": "Id of destination subaccount. Can be found in `My Account >> Subaccounts` tab" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateSubmitTransferResponse" } }, "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 210, "method": "private/submit_transfer_to_subaccount", "params": { "currency": "ETH", "amount": 12.1234, "destination": 20 } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "Transfer funds from the main account to a subaccount.\n\n**📖 Related Article:** [Managing Transfers](https://docs.deribit.com/articles/managing-transfers-api)\n\n**Scope:** `wallets:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fsubmit_transfer_to_subaccount)\n\n", "x-mint": { "metadata": { "title": "private/submit_transfer_to_subaccount", "og:title": "private/submit_transfer_to_subaccount", "keywords": [ "private/submit_transfer_to_subaccount", "currency", "amount", "destination", "created_timestamp", "type", "other_side", "state", "direction", "updated_timestamp", "nonce" ] }, "href": "/api-reference/wallet/private-submit_transfer_to_subaccount" } } }, "/private/submit_transfer_between_subaccounts": { "get": { "tags": [ "Wallet", "Private" ], "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency" }, "description": "The currency symbol" }, { "name": "amount", "in": "query", "schema": { "type": "number" }, "required": true, "description": "Amount of funds to be transferred" }, { "name": "destination", "in": "query", "schema": { "type": "integer", "example": 1 }, "required": true, "description": "Id of destination subaccount. Can be found in `My Account >> Subaccounts` tab" }, { "name": "source", "in": "query", "schema": { "type": "integer", "example": 1 }, "required": false, "description": "Id of the source (sub)account. Can be found in `My Account >> Subaccounts` tab. By default, it is the Id of the account which made the request. However, if a different \"source\" is specified, the user must possess the mainaccount scope, and only other subaccounts can be designated as the source." }, { "in": "query", "name": "nonce", "required": false, "schema": { "$ref": "#/components/schemas/nonce" }, "description": "Optional idempotency nonce. If provided, subsequent requests with the same nonce will return the previously created transaction instead of creating a new one. Must be 8-128 characters. The nonce is persisted on the resulting transaction and returned in the response." } ], "responses": { "200": { "$ref": "#/components/responses/PrivateSubmitTransferResponse" } }, "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 210, "method": "private/submit_transfer_between_subaccounts", "params": { "currency": "ETH", "amount": 12.1234, "destination": 20, "source": 10 } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "Transfer funds between two subaccounts or between a subaccount and the main account.\n\n**📖 Related Article:** [Managing Transfers](https://docs.deribit.com/articles/managing-transfers-api)\n\n**Scope:** `wallets:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fsubmit_transfer_between_subaccounts)\n\n", "x-mint": { "metadata": { "title": "private/submit_transfer_between_subaccounts", "og:title": "private/submit_transfer_between_subaccounts", "keywords": [ "private/submit_transfer_between_subaccounts", "currency", "amount", "destination", "source", "nonce", "created_timestamp", "type", "other_side", "state", "direction", "updated_timestamp" ] }, "href": "/api-reference/wallet/private-submit_transfer_between_subaccounts" } } }, "/private/submit_transfer_to_user": { "get": { "tags": [ "Wallet", "Private" ], "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency" }, "description": "The currency symbol" }, { "name": "amount", "in": "query", "schema": { "type": "number" }, "required": true, "description": "Amount of funds to be transferred" }, { "name": "destination", "in": "query", "schema": { "type": "string" }, "required": true, "description": "Destination wallet's address taken from address book" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateSubmitTransferResponse" } }, "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 9421, "method": "private/submit_transfer_to_user", "params": { "currency": "ETH", "amount": 13.456, "destination": "0x4aa0753d798d668056920094d65321a8e8913e26" } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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 transactions.\n\n**📖 Related Article:** [Managing Transfers](https://docs.deribit.com/articles/managing-transfers-api)\n\n**Scope:** `wallet:read_write` and mainaccount\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fsubmit_transfer_to_user)\n\n", "x-mint": { "metadata": { "title": "private/submit_transfer_to_user", "og:title": "private/submit_transfer_to_user", "keywords": [ "private/submit_transfer_to_user", "currency", "amount", "destination", "created_timestamp", "type", "other_side", "state", "direction", "updated_timestamp", "nonce" ] }, "href": "/api-reference/wallet/private-submit_transfer_to_user" } } }, "/private/get_transfers": { "get": { "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency" }, "description": "The currency symbol" }, { "name": "count", "required": false, "in": "query", "schema": { "type": "integer", "maximum": 1000, "minimum": 1 }, "description": "Number of requested items, default - `10`, maximum - `1000`" }, { "name": "offset", "in": "query", "required": false, "schema": { "example": 10, "type": "integer" }, "description": "The offset for pagination, default - `0`" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateGetTransfersResponse" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 7606, "method": "private/get_transfers", "params": { "currency": "BTC", "count": 10 } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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.\n\n**📖 Related Article:** [Managing Transfers](https://docs.deribit.com/articles/managing-transfers-api)\n\n**Scope:** `wallet:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_transfers)\n\n", "x-mint": { "metadata": { "title": "private/get_transfers", "og:title": "private/get_transfers", "keywords": [ "private/get_transfers", "currency", "count", "offset", "data", "created_timestamp", "type", "amount", "other_side", "state", "direction", "updated_timestamp", "nonce" ] }, "href": "/api-reference/wallet/private-get_transfers" } } }, "/private/cancel_transfer_by_id": { "get": { "tags": [ "Wallet", "Private" ], "parameters": [ { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency" }, "description": "The currency symbol" }, { "name": "id", "in": "query", "schema": { "$ref": "#/components/schemas/transfer_id" }, "required": true, "description": "Id of transfer" } ], "responses": { "200": { "$ref": "#/components/responses/PrivateSubmitTransferResponse" } }, "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 9187, "method": "private/cancel_transfer_by_id", "params": { "currency": "BTC", "id": 2 } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "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.\n\n**📖 Related Article:** [Managing Transfers](https://docs.deribit.com/articles/managing-transfers-api)\n\n**Scope:** `wallet:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_transfer_by_id)\n\n", "x-mint": { "metadata": { "title": "private/cancel_transfer_by_id", "og:title": "private/cancel_transfer_by_id", "keywords": [ "private/cancel_transfer_by_id", "currency", "id", "created_timestamp", "type", "amount", "other_side", "state", "direction", "updated_timestamp", "nonce" ] }, "href": "/api-reference/wallet/private-cancel_transfer_by_id" } } }, "/private/get_reward_eligibility": { "get": { "tags": [ "Wallet", "Private" ], "responses": { "200": { "$ref": "#/components/responses/PrivateGetRewardEligibilityResponse" } }, "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 1, "method": "private/get_reward_eligibility", "params": {} }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "Returns reward eligibility status and APR data for all supported currencies.\n\nThis method takes no parameters.\n\n**📖 Related Support Article:** [Yield reward-bearing coins](https://support.deribit.com/hc/en-us/articles/31424939199261-Yield-reward-bearing-coins)\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_reward_eligibility)\n\n", "x-mint": { "metadata": { "title": "private/get_reward_eligibility", "og:title": "private/get_reward_eligibility", "keywords": [ "private/get_reward_eligibility", "eligibility_status", "apr_sma7" ] }, "href": "/api-reference/wallet/private-get_reward_eligibility" } } }, "/private/set_clearance_originator": { "get": { "parameters": [ { "in": "query", "name": "deposit_id", "required": true, "schema": { "type": "string", "description": "JSON string containing: currency, user_id, address, tx_hash" }, "description": "Id of the deposit" }, { "in": "query", "name": "originator", "required": true, "schema": { "type": "string", "description": "JSON string containing: is_personal, company_name, first_name, last_name, address" }, "description": "Information about the originator of the deposit" } ], "responses": { "200": { "$ref": "#/components/responses/deposit" } }, "tags": [ "Wallet", "Private" ], "requestBody": { "content": { "application/json": { "examples": { "request": { "value": { "jsonrpc": "2.0", "id": 1, "method": "private/set_clearance_originator", "params": { "deposit_id": { "currency": "BTC", "user_id": 123, "address": "2NBqqD5GRJ8wHy1PYyCXTe9ke5226FhavBz", "tx_hash": "230669110fdaf0a0dbcdc079b6b8b43d5af29cc73683835b9bc6b3406c065fda" }, "originator": { "is_personal": false, "first_name": "First", "last_name": "Last", "company_name": "Company Name", "address": "NL, Amsterdam, Street, 1" } } }, "description": "JSON-RPC Request Example" } } } }, "description": "JSON-RPC request body" }, "description": "Sets originator of the deposit\n\n**Scope:** `wallet:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fset_clearance_originator)\n\n", "x-mint": { "metadata": { "title": "private/set_clearance_originator", "og:title": "private/set_clearance_originator", "keywords": [ "private/set_clearance_originator", "deposit_id", "originator", "currency", "address", "amount", "state", "transaction_id", "source_address", "received_timestamp", "updated_timestamp", "note", "clearance_state", "refund_transaction_id" ] }, "href": "/api-reference/wallet/private-set_clearance_originator" } } } }, "components": { "parameters": { "continuation": { "name": "continuation", "in": "query", "required": false, "schema": { "type": "string", "example": "xY7T6cutS3t2B9YtaDkE6TS379oKnkzTvmEDUnEUP2Msa9xKWNNaT" }, "description": "Continuation token for pagination" }, "continuation_as_integer": { "name": "continuation", "in": "query", "required": false, "schema": { "type": "integer", "example": 429946 }, "description": "Continuation token for pagination" }, "instrument_name": { "name": "instrument_name", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/instrument_name" }, "description": "Instrument name" }, "combo_id": { "name": "combo_id", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/combo_id" }, "description": "Combo ID" }, "combo_trades": { "in": "query", "name": "trades", "required": true, "schema": { "type": "array", "items": { "type": "object", "properties": { "instrument_name": { "$ref": "#/components/schemas/instrument_name" }, "amount": { "$ref": "#/components/schemas/amount" }, "direction": { "$ref": "#/components/schemas/direction" } } } }, "description": "List of trades used to create a combo", "style": "form", "explode": true }, "index_name": { "name": "index_name", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/index_name" }, "description": "Index identifier, matches (base) cryptocurrency with quote currency" }, "index_name_for_dvol": { "name": "index_name", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/index_name_for_dvol" }, "description": "Index identifier supported for DVOL" }, "index_name_derivative": { "name": "index_name", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/index_name_derivative" }, "description": "Index identifier of derivative instrument on the platform" }, "index_name_derivative_optional": { "name": "index_name", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/index_name_derivative" }, "description": "Index identifier of derivative instrument on the platform; skipping this parameter will return all configurations" }, "type_of_supported_index": { "name": "type", "required": false, "in": "query", "schema": { "type": "string", "enum": [ "all", "spot", "derivative" ] }, "description": "Type of a cryptocurrency price index" }, "subscription_interval": { "name": "interval", "in": "query", "schema": { "type": "string", "enum": [ "agg2", "100ms", "raw" ] }, "required": true, "description": "Frequency of notifications. Events will be aggregated over this interval. The value `raw` means no aggregation will be applied **(Please note that `raw` interval is only available to authorized users)**" }, "subscription_interval_non_raw": { "name": "interval", "in": "query", "schema": { "type": "string", "enum": [ "100ms", "agg2" ] }, "required": true, "description": "Frequency of notifications. Events will be aggregated over this interval." }, "optional_instrument_name": { "name": "instrument_name", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/instrument_name" }, "description": "Instrument name" }, "instrument_name_options_only": { "name": "instrument_name", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/instrument_name" }, "description": "Instrument name - options only" }, "currency": { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency" }, "description": "The currency symbol" }, "wallet_currency": { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/wallet_currency" }, "description": "The currency symbol" }, "currency_pair": { "name": "currency_pair", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/index_name" }, "description": "The currency pair symbol" }, "currency_pair_optional": { "name": "currency_pair", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/index_name" }, "description": "The currency pair symbol" }, "expiration": { "name": "expiration", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/timestamp" }, "description": "The timestamp of expiration (milliseconds since the Unix epoch)" }, "currency_with_any": { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency_with_any" }, "description": "The currency symbol or `\"any\"` for all" }, "currency_with_any_and_list": { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency_with_any_and_list" }, "description": "The currency symbol, list of currency symbols or `\"any\"` for all" }, "currency_with_any_and_grouped": { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/currency_with_any_and_grouped" }, "description": "The currency symbol or `\"any\"` for all or '\"grouped\"' for all grouped by currency" }, "settlement_currency_with_any_and_grouped": { "name": "currency", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/settlement_currency_with_any_and_grouped" }, "description": "The currency symbol or `\"any\"` for all or '\"grouped\"' for all grouped by currency" }, "kind_with_any": { "name": "kind", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/kind_with_any" }, "description": "Instrument kind or `\"any\"` for all" }, "kind_strict": { "name": "kind", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/kind" }, "description": "Instrument kind, `\"future\"` or `\"option\"`" }, "kind_future_or_option_with_any": { "name": "kind", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/kind_future_or_option_with_any" }, "description": "Instrument kind, `\"future\"` or `\"option\"` or `\"any\"`" }, "optional_currency": { "in": "query", "name": "currency", "required": false, "schema": { "$ref": "#/components/schemas/currency" }, "description": "The currency symbol" }, "optional_currency_block_rfq": { "in": "query", "name": "currency", "required": false, "schema": { "$ref": "#/components/schemas/block_rfq_currency" }, "description": "The currency symbol" }, "optional_kind": { "name": "kind", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/kind" }, "description": "Instrument kind, if not provided instruments of all kinds are considered" }, "kind_with_combo_all": { "name": "kind", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/kind_with_combo_all" }, "description": "Instrument kind, `\"combo\"` for any combo or `\"any\"` for all" }, "only_combo_kind": { "name": "kind", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/only_combo_kind" }, "description": "Combo instrument kind, `\"combo\"` for any combo" }, "optional_kind_with_combo_all": { "name": "kind", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/kind_with_combo_all" }, "description": "Instrument kind, `\"combo\"` for any combo or `\"any\"` for all. If not provided instruments of all kinds are considered" }, "optional_combo_state": { "name": "state", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/combo_state" }, "description": "Combo state, if not provided combos of all states are considered" }, "optional_order_type": { "name": "type", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/order_type2" }, "description": "Order type, default - `all`" }, "optional_simple_order_type": { "name": "type", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/simple_order_type" }, "description": "Order type - `limit`, `stop`, `take`, `trigger_all` or `all`, default - `all`" }, "detailed_bool_for_cancel_all": { "name": "detailed", "required": false, "in": "query", "schema": { "type": "boolean" }, "description": "When `detailed` is set to `true`, the output format is changed to include a list of all cancelled orders.\n\n**📖 Related Article:** [Detailed Response for Cancel Methods](https://docs.deribit.com/articles/json-rpc-overview#detailed-response-for-cancel-methods)\n\nDefault: `false`\n" }, "include_combos_for_cancel_all": { "name": "include_combos", "required": false, "in": "query", "schema": { "type": "boolean" }, "description": "When set to `true` orders in combo instruments affecting a given position will also be cancelled. Default: `false`" }, "freeze_quotes": { "name": "freeze_quotes", "required": false, "in": "query", "schema": { "type": "boolean" }, "description": "Whether or not to reject incoming quotes for 1 second after cancelling (`false` by default). Related to `private/mass_quote` request." }, "start_timestamp": { "name": "start_timestamp", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/timestamp" }, "description": "The earliest timestamp to return result from (milliseconds since the UNIX epoch)" }, "trade_start_timestamp": { "name": "start_timestamp", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/timestamp" }, "description": "The earliest timestamp to return result from (milliseconds since the UNIX epoch). When param is provided trades are returned from the earliest" }, "optional_trade_start_timestamp": { "name": "start_timestamp", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/timestamp" }, "description": "The earliest timestamp to return result from (milliseconds since the UNIX epoch). When param is provided trades are returned from the earliest" }, "optional_start_timestamp": { "name": "start_timestamp", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/timestamp" }, "description": "The earliest timestamp to return result from (milliseconds since the UNIX epoch)" }, "end_timestamp": { "name": "end_timestamp", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/timestamp" }, "description": "The most recent timestamp to return result from (milliseconds since the UNIX epoch)" }, "trade_end_timestamp": { "name": "end_timestamp", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/timestamp" }, "description": "The most recent timestamp to return result from (milliseconds since the UNIX epoch). Only one of params: start_timestamp, end_timestamp is truly required" }, "optional_trade_end_timestamp": { "name": "end_timestamp", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/timestamp" }, "description": "The most recent timestamp to return result from (milliseconds since the UNIX epoch). Only one of params: start_timestamp, end_timestamp is truly required" }, "optional_start_trade_id": { "name": "start_id", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/trade_id" }, "description": "The ID of the first trade to be returned. Number for BTC trades, or hyphen name in ex. `\"ETH-15\"` # `\"ETH_USDC-16\"`" }, "optional_end_trade_id": { "name": "end_id", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/trade_id" }, "description": "The ID of the last trade to be returned. Number for BTC trades, or hyphen name in ex. `\"ETH-15\"` # `\"ETH_USDC-16\"`" }, "optional_start_seq": { "name": "start_seq", "required": false, "in": "query", "schema": { "type": "integer" }, "description": "The sequence number of the first trade to be returned" }, "optional_end_seq": { "name": "end_seq", "required": false, "in": "query", "schema": { "type": "integer" }, "description": "The sequence number of the last trade to be returned" }, "optional_count10": { "name": "count", "required": false, "in": "query", "schema": { "type": "integer", "maximum": 1000, "minimum": 1 }, "description": "Number of requested items, default - `10`, maximum - `1000`" }, "optional_count20": { "name": "count", "required": false, "in": "query", "schema": { "type": "integer", "maximum": 1000, "minimum": 1 }, "description": "Number of requested items, default - `20`, maximum - `1000`" }, "optional_count100": { "name": "count", "required": false, "in": "query", "schema": { "type": "integer", "maximum": 1000, "minimum": 1 }, "description": "Number of requested items, default - `100`, maximum - `1000`" }, "optional_sorting": { "name": "sorting", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/sorting" }, "description": "Direction of results sorting (`default` value means no sorting, results will be returned in order in which they left the database)" }, "optional_offset": { "name": "offset", "in": "query", "required": false, "schema": { "example": 10, "type": "integer" }, "description": "The offset for pagination, default - `0`" }, "optional_include_old_orders": { "name": "include_old", "in": "query", "required": false, "schema": { "example": false, "type": "boolean" }, "description": "Include in result orders older than 2 days, default - `false`" }, "optional_include_unfilled_orders": { "name": "include_unfilled", "in": "query", "required": false, "schema": { "example": false, "type": "boolean" }, "description": "Include in result fully unfilled closed orders, default - `false`" }, "order_id": { "in": "query", "name": "order_id", "required": true, "schema": { "$ref": "#/components/schemas/order_id" }, "description": "The order id" }, "block_trade_id": { "in": "query", "name": "id", "required": true, "schema": { "$ref": "#/components/schemas/block_trade_id" }, "description": "Block trade id" }, "optional_block_trade_start_id": { "name": "start_id", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/block_trade_id" }, "description": "Response will contain block trades older than the one provided in this field" }, "optional_block_trade_end_id": { "name": "end_id", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/block_trade_id" }, "description": "The id of the oldest block trade to be returned, `start_id` is required with `end_id`" }, "block_trade_timestamp": { "in": "query", "name": "timestamp", "required": true, "schema": { "$ref": "#/components/schemas/timestamp" }, "description": "Timestamp, shared with other party (milliseconds since the UNIX epoch)" }, "block_trade_nonce": { "in": "query", "name": "nonce", "required": true, "schema": { "$ref": "#/components/schemas/nonce" }, "description": "Nonce, shared with other party" }, "wallet_nonce": { "in": "query", "name": "nonce", "required": false, "schema": { "$ref": "#/components/schemas/nonce" }, "description": "Optional idempotency nonce. If provided, subsequent requests with the same nonce will return the previously created transaction instead of creating a new one. Must be 8-128 characters. The nonce is persisted on the resulting transaction and returned in the response." }, "block_trade_role": { "in": "query", "name": "role", "required": true, "schema": { "$ref": "#/components/schemas/role" }, "description": "Describes if user wants to be maker or taker of trades" }, "block_trade_role_optional": { "in": "query", "name": "role", "required": false, "schema": { "$ref": "#/components/schemas/role" }, "description": "Describes if user wants to be maker or taker of trades" }, "trade_price": { "in": "query", "name": "price", "required": true, "schema": { "type": "number" }, "description": "Price for trade" }, "block_rfq_trade_price": { "in": "query", "name": "price", "required": true, "schema": { "type": "number" }, "description": "Maximum acceptable price for execution" }, "block_rfq_aggregated_price": { "in": "query", "name": "price", "required": false, "schema": { "type": "number" }, "description": "Aggregated price used for quoting future spreads." }, "position_move_price": { "in": "query", "name": "price", "required": false, "schema": { "type": "number" }, "description": "Price for trade - if not provided average price of the position is used" }, "trade_amount": { "in": "query", "name": "amount", "required": false, "schema": { "$ref": "#/components/schemas/amount" }, "description": "It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin." }, "trade_amount_required": { "in": "query", "name": "amount", "required": true, "schema": { "$ref": "#/components/schemas/amount" }, "description": "It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin." }, "position_move_amount": { "in": "query", "name": "amount", "required": true, "schema": { "type": "number" }, "description": "It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin. Amount can't exceed position size." }, "trade_direction": { "in": "query", "name": "direction", "required": true, "schema": { "$ref": "#/components/schemas/direction" }, "description": "Direction of trade from the maker perspective" }, "leg_direction": { "in": "query", "name": "direction", "required": true, "schema": { "$ref": "#/components/schemas/direction" }, "description": "Direction of selected leg" }, "block_trade_trades": { "in": "query", "name": "trades", "required": true, "schema": { "type": "array", "items": { "type": "object", "properties": { "instrument_name": { "$ref": "#/components/schemas/instrument_name", "description": "Instrument name" }, "price": { "type": "number", "description": "Price for trade" }, "amount": { "$ref": "#/components/schemas/amount", "description": "It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin." }, "direction": { "$ref": "#/components/schemas/direction", "description": "Direction of trade from the maker perspective" } } } }, "description": "List of trades for block trade", "style": "form", "explode": true }, "position_move_trades": { "in": "query", "name": "trades", "required": true, "schema": { "type": "array", "items": { "type": "object", "properties": { "instrument_name": { "$ref": "#/components/schemas/instrument_name", "description": "Instrument name" }, "price": { "type": "number", "description": "Price for trade - if not provided average price of the position is used" }, "amount": { "type": "number", "description": "It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin. Amount can't exceed position size." } } } }, "description": "List of trades for position move", "style": "form", "explode": true }, "block_trade_counterparty_signature": { "in": "query", "name": "counterparty_signature", "required": true, "schema": { "$ref": "#/components/schemas/block_trade_signature" }, "description": "Signature of block trade generated by `private/verify_block_trade_method`" }, "block_trade_signature_to_invalidate": { "in": "query", "name": "signature", "required": true, "schema": { "$ref": "#/components/schemas/block_trade_signature" }, "description": "Signature of block trade that will be invalidated" }, "order_quantity": { "name": "amount", "in": "query", "schema": { "type": "number" }, "required": false, "description": "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 currency coin. The `amount` is a mandatory parameter if `contracts` parameter is missing. If both `contracts` and `amount` parameter are passed they must match each other otherwise error is returned." }, "margins_quantity": { "name": "amount", "in": "query", "schema": { "type": "number" }, "required": true, "description": "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 currency coin." }, "order_contracts": { "name": "contracts", "in": "query", "schema": { "type": "number" }, "required": false, "description": "It represents the requested order size in contract units and can be passed instead of `amount`. The `contracts` is a mandatory parameter if `amount` parameter is missing. If both `contracts` and `amount` parameter are passed they must match each other otherwise error is returned." }, "order_type": { "name": "type", "in": "query", "schema": { "type": "string", "enum": [ "limit", "stop_limit", "take_limit", "market", "stop_market", "take_market", "market_limit", "trailing_stop" ] }, "required": false, "description": "The order type, default: `\"limit\"`" }, "optional_settlement_type": { "in": "query", "name": "type", "required": false, "schema": { "$ref": "#/components/schemas/settlement_type" }, "description": "Settlement type" }, "optional_settlement_start_timestamp": { "in": "query", "name": "search_start_timestamp", "required": false, "schema": { "$ref": "#/components/schemas/timestamp" }, "description": "The latest timestamp to return result from (milliseconds since the UNIX epoch)" }, "simple_order_type_market_limit": { "name": "type", "in": "query", "schema": { "type": "string", "enum": [ "limit", "market" ] }, "required": true, "description": "The order type" }, "order_label": { "name": "label", "in": "query", "schema": { "type": "string" }, "required": false, "description": "user defined label for the order (maximum 64 characters)" }, "required_order_label": { "name": "label", "in": "query", "schema": { "type": "string" }, "required": true, "description": "user defined label for the order (maximum 64 characters)" }, "edit_order_price": { "name": "price", "in": "query", "schema": { "type": "number" }, "required": false, "description": "The order price in base currency.
When editing an option order with advanced=usd, the field price should be the option price value in USD.
When editing an option order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
" }, "order_price": { "name": "price", "in": "query", "schema": { "type": "number" }, "required": false, "description": "The order price in base currency (Only for limit and stop_limit orders)
When adding an order with advanced=usd, the field price should be the option price value in USD.
When adding an order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
" }, "linked_order_type": { "name": "linked_order_type", "in": "query", "schema": { "type": "string", "enum": [ "one_triggers_other", "one_cancels_other", "one_triggers_one_cancels_other" ] }, "required": false, "description": "The type of the linked order.
The fill condition of the linked order (Only for linked order types), default: `first_hit`.
Specifies how long the order remains in effect. Default `\"good_til_cancelled\"`
If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below the spread.
Only valid in combination with time_in_force=`\"good_til_cancelled\"`
" }, "post_only_sell": { "name": "post_only", "in": "query", "schema": { "type": "boolean", "default": true }, "required": false, "description": "If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just above the spread.
Only valid in combination with time_in_force=`\"good_til_cancelled\"`
" }, "post_only_edit": { "name": "post_only", "in": "query", "schema": { "type": "boolean", "default": true }, "required": false, "description": "If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below or above the spread (accordingly to the original order type).
Only valid in combination with time_in_force=`\"good_til_cancelled\"`
" }, "post_only_secondary": { "name": "post_only", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below or above the spread (according to the direction of the order).
Only valid in combination with time_in_force=`\"good_til_cancelled\"`
" }, "reject_post_only": { "name": "reject_post_only", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected.
Only valid in combination with `\"post_only\"` set to true
" }, "optional_default": { "name": "default", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "If `true`, new key is marked as default" }, "reduce_only": { "name": "reduce_only", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "If `true`, the order is considered reduce-only which is intended to only reduce a current position" }, "trigger_price": { "name": "trigger_price", "in": "query", "schema": { "type": "number" }, "required": false, "description": "Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)" }, "trigger_offset": { "name": "trigger_offset", "in": "query", "schema": { "type": "number" }, "required": false, "description": "The maximum deviation from the price peak beyond which the order will be triggered" }, "mmp": { "name": "mmp", "in": "query", "schema": { "type": "boolean", "default": false }, "required": false, "description": "Order MMP flag, only for order_type 'limit'" }, "valid_until": { "name": "valid_until", "in": "query", "schema": { "type": "integer" }, "required": false, "description": "Timestamp, when provided server will start processing request in Matching Engine only before given timestamp, in other cases `timed_out` error will be responded. Remember that the given timestamp should be consistent with the server's time, use /public/time method to obtain current server time." }, "trigger": { "name": "trigger", "in": "query", "schema": { "$ref": "#/components/schemas/trigger" }, "required": false, "description": "Defines the trigger type. Required for `\"Stop-Loss\"`, `\"Take-Profit\"` and `\"Trailing\"` trigger orders" }, "advanced_order_type": { "name": "advanced", "in": "query", "schema": { "$ref": "#/components/schemas/advanced" }, "required": false, "description": "Advanced option order type. (Only for options. Advanced USD orders are not supported for linear options.)" }, "edit_advanced_order_type": { "name": "advanced", "in": "query", "schema": { "$ref": "#/components/schemas/advanced" }, "required": false, "description": "Advanced option order type. If you have posted an advanced option order, it is necessary to re-supply this parameter when editing it (Only for options)" }, "optional_price": { "name": "price", "in": "query", "schema": { "type": "number" }, "required": false, "description": "Optional price for limit order." }, "currency_custody_address": { "name": "address", "in": "query", "schema": { "type": "string" }, "required": true, "description": "Custody address in currency format" }, "currency_address_from_address_book": { "name": "address", "in": "query", "schema": { "type": "string" }, "required": true, "description": "Address in currency format, it must be in address book" }, "currency_address": { "name": "address", "in": "query", "schema": { "type": "string" }, "required": true, "description": "Address in currency format" }, "transfer_currency_amount": { "name": "amount", "in": "query", "schema": { "type": "number" }, "required": true, "description": "Amount of funds to be transferred" }, "withdrawal_currency_amount": { "name": "amount", "in": "query", "schema": { "type": "number" }, "required": true, "description": "Amount of funds to be withdrawn" }, "deposit_currency_amount": { "name": "amount", "in": "query", "schema": { "type": "number" }, "required": true, "description": "Amount of deposited funds" }, "currency_amount": { "name": "amount", "in": "query", "schema": { "type": "number" }, "required": true, "description": "Amount" }, "optional_amount": { "name": "amount", "in": "query", "schema": { "type": "number" }, "required": false, "description": "Amount" }, "withdrawal_priority": { "name": "priority", "in": "query", "schema": { "type": "string", "enum": [ "insane", "extreme_high", "very_high", "high", "mid", "low", "very_low" ] }, "required": false, "description": "Withdrawal priority, optional for BTC, default: `high`" }, "withdrawal_id": { "in": "query", "name": "id", "required": true, "schema": { "type": "number", "example": 1 }, "description": "The withdrawal id" }, "boolean_state": { "name": "state", "required": true, "in": "query", "schema": { "type": "boolean" } }, "boolean_value": { "name": "value", "required": true, "in": "query", "schema": { "type": "boolean" } }, "boolean_enabled": { "name": "enabled", "required": true, "in": "query", "schema": { "type": "boolean" } }, "address_book_type": { "name": "type", "in": "query", "schema": { "$ref": "#/components/schemas/address_book_type" }, "required": true, "description": "Address book type" }, "address_book_type_without_deposit_source": { "name": "type", "in": "query", "schema": { "$ref": "#/components/schemas/address_book_type_without_deposit_source" }, "required": true, "description": "Address book type" }, "address_label": { "name": "label", "in": "query", "schema": { "$ref": "#/components/schemas/address_label" }, "required": true, "description": "Label of the address book entry" }, "beneficiary_vasp_name": { "name": "beneficiary_vasp_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_name" }, "required": true, "description": "Name of beneficiary VASP" }, "beneficiary_vasp_did": { "name": "beneficiary_vasp_did", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_did" }, "required": true, "description": "DID of beneficiary VASP" }, "beneficiary_first_name": { "name": "beneficiary_first_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_first_name" }, "description": "First name of beneficiary (if beneficiary is a person)", "required": false }, "beneficiary_last_name": { "name": "beneficiary_last_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_last_name" }, "description": "First name of beneficiary (if beneficiary is a person)", "required": false }, "beneficiary_company_name": { "name": "beneficiary_company_name", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_company_name" }, "description": "Beneficiary company name (if beneficiary is a company)", "required": false }, "beneficiary_address": { "name": "beneficiary_address", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_address" }, "required": true, "description": "Geographical address of the beneficiary" }, "beneficiary_vasp_website": { "name": "beneficiary_vasp_website", "in": "query", "schema": { "$ref": "#/components/schemas/beneficiary_vasp_website" }, "required": false, "description": "Website of the beneficiary VASP. Required if the address book entry is associated with a VASP that is not included in the list of known VASPs" }, "agree_to_share_with_3rd_party": { "name": "agreed", "in": "query", "schema": { "$ref": "#/components/schemas/agree_to_share_with_3rd_party" }, "required": true, "description": "Indicates that the user agreed to shared provided information with 3rd parties" }, "personal_wallet": { "name": "personal", "in": "query", "schema": { "$ref": "#/components/schemas/personal_wallet" }, "required": true, "description": "The user confirms that he provided address belongs to him and he has access to it via an un-hosted wallet software" }, "extra_currencies": { "name": "extra_currencies", "in": "query", "schema": { "$ref": "#/components/schemas/extra_currencies" }, "description": "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 currency, the address will be added to ALL of the ERC20 currencies.", "required": false }, "transfer_direction": { "name": "direction", "in": "query", "schema": { "$ref": "#/components/schemas/transfer_direction" }, "required": true, "description": "Direction of transfer" }, "transfer_destination_for_user": { "name": "destination", "in": "query", "schema": { "type": "string" }, "required": true, "description": "Destination wallet's address taken from address book" }, "transfer_destination_for_subaccount": { "name": "destination", "in": "query", "schema": { "type": "integer", "example": 1 }, "required": true, "description": "Id of destination subaccount. Can be found in `My Account >> Subaccounts` tab" }, "transfer_source_for_subaccount": { "name": "source", "in": "query", "schema": { "type": "integer", "example": 1 }, "required": false, "description": "Id of the source (sub)account. Can be found in `My Account >> Subaccounts` tab. By default, it is the Id of the account which made the request. However, if a different \"source\" is specified, the user must possess the mainaccount scope, and only other subaccounts can be designated as the source." }, "user_id": { "name": "user_id", "in": "query", "schema": { "type": "integer", "example": 1 }, "required": true, "description": "Id of a (sub)account" }, "optional_user_id": { "name": "user_id", "in": "query", "schema": { "type": "integer", "example": 1 }, "required": false, "description": "Id of a (sub)account - by default current user id is used" }, "trade_allocation_user_id": { "name": "user_id", "in": "query", "schema": { "type": "integer" }, "required": false, "description": "User ID (subaccount or main account) to allocate part of the RFQ amount." }, "trade_allocation_client_id": { "name": "client_id", "in": "query", "schema": { "type": "integer" }, "required": false, "description": "ID of a client; available to broker. Represents a group of users under a common name." }, "trade_allocation_client_link_id": { "name": "client_link_id", "in": "query", "schema": { "type": "integer" }, "required": false, "description": "ID assigned to a single user in a client; available to broker." }, "trade_allocation_client_info": { "name": "client_info", "in": "query", "schema": { "type": "string", "description": "JSON string containing: client_id, client_link_id" }, "required": false, "description": "Client allocation info for brokers." }, "trade_allocation_amount": { "name": "amount", "in": "query", "schema": { "type": "number" }, "required": false, "description": "Amount allocated to this user or client." }, "pme_enabled": { "name": "enabled", "in": "query", "schema": { "type": "boolean", "example": true }, "required": true, "description": "Whether PM or SM should be enabled - PM while `true`, SM otherwise" }, "dry_run": { "name": "dry_run", "in": "query", "schema": { "type": "boolean", "example": true }, "required": false, "description": "If `true` request returns the result without switching the margining model. Default: `false`" }, "margin_model": { "name": "margin_model", "in": "query", "schema": { "type": "string", "enum": [ "cross_pm", "cross_sm", "segregated_pm", "segregated_sm" ] }, "required": true, "description": "Margin model" }, "position_move_source_uid": { "name": "source_uid", "in": "query", "schema": { "type": "integer", "example": 1 }, "required": true, "description": "Id of source subaccount. Can be found in `My Account >> Subaccounts` tab" }, "position_move_target_uid": { "name": "target_uid", "in": "query", "schema": { "type": "integer", "example": 1 }, "required": true, "description": "Id of target subaccount. Can be found in `My Account >> Subaccounts` tab" }, "transfer_id": { "name": "id", "in": "query", "schema": { "$ref": "#/components/schemas/transfer_id" }, "required": true, "description": "Id of transfer" }, "tfa": { "name": "tfa", "in": "query", "schema": { "type": "string" }, "required": false, "description": "TFA code, required when TFA is enabled for current account" }, "client_software_name": { "name": "client_name", "in": "query", "schema": { "type": "string", "example": "My Trading Software" }, "required": true, "description": "Client software name" }, "client_software_version": { "name": "client_version", "in": "query", "schema": { "type": "string", "example": "1.0.2" }, "required": true, "description": "Client software version" }, "chart_resolution": { "name": "resolution", "in": "query", "schema": { "type": "string", "enum": [ 1, 3, 5, 10, 15, 30, 60, 120, 180, 360, 720, "1D" ] }, "required": true, "description": "Chart bars resolution given in full minutes or keyword `1D` (only some specific resolutions are supported)" }, "vix_resolution": { "name": "resolution", "in": "query", "schema": { "type": "string", "enum": [ 1, 60, 3600, 43200, "1D" ] }, "required": true, "description": "Time resolution given in full seconds or keyword `1D` (only some specific resolutions are supported)" }, "key_id": { "name": "id", "in": "query", "required": true, "schema": { "type": "integer", "example": 1 }, "description": "API key ID" }, "key_name": { "name": "name", "in": "query", "schema": { "type": "string", "example": "TestName" }, "description": "Name of key (only letters, numbers and underscores allowed; maximum length - 16 characters)", "required": false }, "key_name_required": { "name": "name", "in": "query", "schema": { "type": "string", "example": "TestName" }, "required": true, "description": "Name of key (only letters, numbers and underscores allowed; maximum length - 16 characters)" }, "key_scope": { "name": "max_scope", "in": "query", "required": true, "schema": { "$ref": "#/components/schemas/max_scope" }, "description": "Describes maximal access for tokens generated with given key. If scope is not provided, its value is set as none.\n\n**📖 Related Article:** [Access Scope](https://docs.deribit.com/articles/access-scope)\n" }, "key_features": { "name": "enabled_features", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "enum": [ "restricted_block_trades", "block_trade_approval" ] } }, "description": "List of enabled advanced on-key features. Available options:Execution instruction of the quote. Default - `any_part_of`
interval of 3 implies a 3-second window. interval begins after the first trade. interval has ended, a new interval is started, and counters reset. interval, that interval continues unaffected. 0, MMP is disabled. 3600 seconds (1 hour)."
},
"frozen_time": {
"type": "integer",
"minimum": 0,
"maximum": 3600,
"description": "Time in seconds that MMP remains active after being triggered. Once this frozen period has passed, MMP will automatically reset, allowing new orders to be submitted. frozen_time to 0. In that case, a manual reset is required using the private/reset_mmp method. 3600 seconds (1 hour)."
},
"id": {
"type": "integer",
"format": "int64",
"description": "Integer identifier for the MMP group (int64). This is the programmatic identifier for the group. Entries without an `mmp_group` name correspond to the orders MMP group (the default group)."
},
"mmp_group": {
"type": "string",
"description": "Name of the MMP group. Absent for the orders MMP group (the default group), which has no string name — its entry is identified by the `id` field alone."
},
"quantity_limit": {
"type": "number",
"description": "The total traded quantity, measured in units of the base currency (e.g., BTC in BTC-PERPETUAL), within the interval. 10 BTC and sell 10 BTC = 20 total quantity. quantity_limit = quantity_limit * 0.03 interval. delta_limit is treated as an absolute threshold: e.g., delta_limit: 10 → MMP is triggered if net transaction delta exceeds +10 or drops below -10. +5 delta and selling −5 delta cancels out if within the same interval. Delta - Mark Price. In the rest of this document, \"delta\" actually refers to net transaction delta. interval, measured in absolute terms. delta_limit, the vega_limit is direction-aware and evaluated on a net basis. If the exposure exceeds the set threshold (positively or negatively), MMP will be triggered. interval of 3 implies a 3-second window. interval begins after the first trade. interval has ended, a new interval is started, and counters reset. interval, that interval continues unaffected. 0, MMP is disabled. 3600 seconds (1 hour)."
},
"frozen_time": {
"type": "integer",
"minimum": 0,
"maximum": 3600,
"description": "Time in seconds that MMP remains active after being triggered. Once this frozen period has passed, MMP will automatically reset, allowing new orders to be submitted. frozen_time to 0. In that case, a manual reset is required using the private/reset_mmp method. 3600 seconds (1 hour)."
},
"id": {
"type": "integer",
"format": "int64",
"description": "Integer identifier for the MMP group (int64). This is the programmatic identifier for the group. Entries without an `mmp_group` name correspond to the orders MMP group (the default group)."
},
"mmp_group": {
"type": "string",
"description": "Name of the MMP group. Absent for the orders MMP group (the default group), which has no string name — its entry is identified by the `id` field alone."
},
"quantity_limit": {
"type": "number",
"description": "The total traded quantity, measured in units of the base currency (e.g., BTC in BTC-PERPETUAL), within the interval. 10 BTC and sell 10 BTC = 20 total quantity. quantity_limit = quantity_limit * 0.03 interval. delta_limit is treated as an absolute threshold: e.g., delta_limit: 10 → MMP is triggered if net transaction delta exceeds +10 or drops below -10. +5 delta and selling −5 delta cancels out if within the same interval. Delta - Mark Price. In the rest of this document, \"delta\" actually refers to net transaction delta. interval, measured in absolute terms. delta_limit, the vega_limit is direction-aware and evaluated on a net basis. If the exposure exceeds the set threshold (positively or negatively), MMP will be triggered. pending: deposit detected on blockchain/system, compliance not yet finishedcompleted: compliance check finished successfullyrejected: deposit failed compliance and must be handled manuallyreplaced: deposit transaction was replaced on the blockchain and should have a new transaction hashin_progress: clearance process is in progresspending_admin_decision: transaction is under manual review by Deribit adminpending_user_input: user should provide additional information regarding the transactionsuccess: clearance process completed successfullyfailed: clearance process failed, transaction is rejectedcancelled: transaction is cancelled (currently used only for withdrawals, meaning the withdrawal is cancelled)refund_initiated: clearance process failed, transaction refund is initiated, funds are removed from Deribit balance (valid for deposits only)refunded: clearance process failed, deposit amount is refunded back to the client (valid for deposits only)restricted_block_trades: Limit the block_trade read the scope of the API key to block trades that have been made using this specific API keyblock_trade_approval: Block trades created using this API key require additional user approval. Methods that use block_rfq scope are not affected by Block Trade approval feature"
},
"max_scope": {
"items": {
"type": "string"
},
"example": [
"account:read",
"trade:read",
"block_trade:read_write",
"wallet:none"
],
"type": "array",
"description": "Describes maximal access for tokens generated with given key. If scope is not provided, its value is set as none.\n\n**📖 Related Article:** [Access Scope](https://docs.deribit.com/articles/access-scope)\n"
},
"api_key_enabled": {
"example": true,
"type": "boolean",
"description": "Informs whether api key is enabled and can be used for authentication"
},
"enabled_field": {
"example": true,
"type": "boolean",
"description": "Current configuration status"
},
"cod_scope": {
"enum": [
"connection",
"account"
],
"type": "string",
"description": "Informs if Cancel on Disconnect was checked for the current connection or the account"
},
"nonce": {
"example": "bF1_gfgcsd",
"type": "string",
"description": "Nonce"
},
"role": {
"enum": [
"maker",
"taker"
],
"type": "string",
"description": "Trade role of the user: `maker` or `taker`"
},
"fee_role": {
"enum": [
"maker",
"taker"
],
"type": "string",
"description": "Fee role of the user: `maker` or `taker`. Can be different from trade role of the user when iceberg order was involved in matching."
},
"user_id": {
"example": 57874,
"type": "integer",
"description": "Unique user identifier"
},
"username": {
"example": "MrTrader",
"type": "string",
"description": "System name or user defined subaccount alias"
},
"custody_name": {
"enum": [
"copper",
"cobo"
],
"type": "string",
"description": "Custody name"
},
"delta_total": {
"example": 0.1334,
"type": "number",
"description": "The sum of position deltas. \n\n**DeltaTotal = Net Transaction Delta of options + BTC Position of Futures**\n\nThe DeltaTotal uses the Net Transaction Delta (or price adjusted Delta) of the options, where Net Transaction Delta = Black Scholes Delta - Mark Price of Options.\n\nThis is because, from a risk perspective, we are interested in the change in Bitcoin price as the underlying changes.\n\nYou should actually treat your delta as **Equity + Delta Total** if you want to have less risk for your USD PnL.\n\n⚠️ **During the 30 minute settlement period we decay your Delta.** See [Delta decay during settlement](https://support.deribit.com/hc/en-us/articles/25944751433757-Delta-decay-during-settlement) for more details.\n"
},
"projected_delta_total": {
"example": 0.1334,
"type": "number",
"description": "The sum of position deltas without positions that will expire during closest expiration"
},
"projected_maintenance_margin": {
"example": 1,
"type": "number",
"description": "Projected maintenance margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index."
},
"estimated_liquidation_ratio": {
"example": 0.0000234,
"type": "number",
"description": "Estimated Liquidation Ratio is returned only for users without portfolio margining enabled. Multiplying it by future position's market price returns its estimated liquidation price. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index."
},
"projected_initial_margin": {
"example": 1,
"type": "number",
"description": "Projected initial margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index."
},
"additional_reserve": {
"example": 0.3,
"type": "number",
"description": "The account's balance reserved in other orders"
},
"rate_and_burst": {
"required": [
"rate",
"burst"
],
"properties": {
"rate": {
"type": "integer",
"description": "Number of requests per second allowed for user"
},
"burst": {
"type": "integer",
"description": "Maximal number of requests allowed for user in burst mode"
}
},
"type": "object"
},
"group_rate_and_burst": {
"properties": {
"total": {
"type": "object",
"properties": {
"rate": {
"type": "integer",
"description": "Number of all requests per second in perpetuals allowed for user"
},
"burst": {
"type": "integer",
"description": "Maximal number of all requests allowed for user in burst mode"
}
}
},
"perpetuals": {
"type": "object",
"properties": {
"rate": {
"type": "integer",
"description": "Number of perpetual requests per second allowed for user"
},
"burst": {
"type": "integer",
"description": "Maximal number of perpetuals requests allowed for user in burst mode"
}
}
},
"futures": {
"type": "object",
"properties": {
"rate": {
"type": "integer",
"description": "Number of futures requests per second allowed for user"
},
"burst": {
"type": "integer",
"description": "Maximal number of futures requests allowed for user in burst mode"
}
}
},
"options": {
"type": "object",
"properties": {
"rate": {
"type": "integer",
"description": "Number of option requests per second allowed for user"
},
"burst": {
"type": "integer",
"description": "Maximal number of option requests allowed for user in burst mode"
}
}
}
},
"type": "object"
},
"api_limits": {
"type": "object",
"description": "Returned object is described in [separate document](https://support.deribit.com/hc/en-us/articles/25944617523357-Rate-Limits)."
},
"scale_down": {
"properties": {
"mm_multiplier": {
"type": "number",
"description": "Maintenance Margin multiplier"
},
"im_multiplier": {
"type": "number",
"description": "Initial Margin multiplier"
}
},
"required": [
"im_multiplier",
"mm_multiplier"
],
"type": "object",
"description": "The field is only added if the user has it set"
},
"rpl": {
"example": 0.1,
"type": "number",
"description": "Session realized profit and loss"
},
"upl": {
"example": 0.846863,
"type": "number",
"description": "Session unrealized profit and loss"
},
"side": {
"example": "`buy`",
"enum": [
"buy",
"sell"
],
"type": "string",
"description": "Side - `buy` or `sell`"
},
"fee_balance": {
"type": "number",
"description": "The account's fee balance (it can be used to pay for fees)"
},
"did": {
"type": "string",
"description": "Distributed ID"
},
"jurisdictions": {
"items": {
"type": "string",
"description": "Jurisdiction name"
},
"type": "array",
"description": "Jurisdictions a VASP belongs to"
},
"vasp_name": {
"type": "string",
"description": "VASP name"
},
"source": {
"type": "string",
"description": "Blockchain address source"
},
"jwt": {
"type": "string",
"description": "JSON web token"
},
"external_id": {
"example": "4b4cee3d-2dfc-4402-a9ae-f8f9785fa966",
"type": "string",
"description": "User ID in external systems"
},
"business_registration_number": {
"example": "2021/135466541/07",
"type": "string",
"description": "Registration number of the company"
},
"trigger_fill_condition": {
"enum": [
"first_hit",
"complete_fill",
"incremental"
],
"type": "string",
"description": "The fill condition of the linked order (Only for linked order types), default: `first_hit`.