{ "opencollection": "1.0.0", "info": { "name": "Deribit Account Management Private API", "version": "2.1.1" }, "items": [ { "info": { "name": "Private", "type": "folder" }, "items": [ { "info": { "name": "GET /private/get_positions", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_positions", "params": [ { "name": "currency", "value": "", "type": "query" }, { "name": "kind", "value": "", "type": "query", "description": "Kind filter on positions" }, { "name": "subaccount_id", "value": "", "type": "query", "description": "The user id for the subaccount" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves all open positions for the authenticated account. Returns position details including size, average entry price, mark price, unrealized P&L, initial margin, maintenance margin, and other position-related information.\n\nResults can be filtered by currency and instrument kind (future, option, etc.). To retrieve positions for a specific subaccount, use the `subaccount_id` parameter.\n\n**Scope:** `trade:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_p" }, { "info": { "name": "GET /private/get_position", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_position", "params": [ { "name": "instrument_name", "value": "", "type": "query", "description": "Instrument name" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves the open position for a specific instrument. Returns detailed position information including size, average entry price, mark price, unrealized P&L, initial margin, maintenance margin, and other position-related metrics.\n\nIf no position exists for the specified instrument, the response will indicate a zero position.\n\n**Scope:** `trade:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_position)\n\n" }, { "info": { "name": "GET /private/get_account_summary", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_account_summary", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "subaccount_id", "value": "", "type": "query", "description": "The user id for the subaccount" }, { "name": "extended", "value": "", "type": "query", "description": "Include additional fields" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves the account summary for a specific currency. The summary includes balance, equity, available funds, initial margin, maintenance margin, and other margin-related information.\n\nTo retrieve the summary for a specific subaccount, use the `subaccount_id` parameter. When the `extended` parameter is set to `true`, additional account details such as account ID, username, email, and account type are included.\n\n**Scope:** `account:read`\n\n[Try in API console](https://test.deribit.com/api_console?" }, { "info": { "name": "GET /private/get_account_summaries", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_account_summaries", "params": [ { "name": "subaccount_id", "value": "", "type": "query", "description": "The user id for the subaccount" }, { "name": "extended", "value": "", "type": "query", "description": "Include additional fields" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves a per-currency list of account summaries for the authenticated user. Each summary includes balance, equity, available funds, and margin information for each currency.\n\nTo retrieve summaries for a specific subaccount, use the `subaccount_id` parameter. When the `extended` parameter is set to `true`, additional account details such as account ID, username, email, and account type are included.\n\n**Scope:** `account:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2" }, { "info": { "name": "GET /private/pme/simulate", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/pme/simulate", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency for which the Extended Risk Matrix will be calculated. Use `CROSS` for Cross Collateral simulation." }, { "name": "add_positions", "value": "", "type": "query", "description": "If `true`, adds simulated positions to current positions, otherwise uses only simulated positions. By default `true`" }, { "name": "simulated_positions", "value": "", "type": "query", "description": "Object with positions in following form: `{InstrumentName1: Position1, InstrumentName2: Position2...}`, for example `{\"BTC-PERPETUAL\": -1.0}` (or corresponding URI-encoding for GET). Size in base currency." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Calculates the Extended Risk Matrix (ERM) and detailed margin information for Portfolio Margin accounts. The ERM provides a comprehensive view of portfolio risk across different scenarios and market conditions.\n\nYou can calculate the ERM for a specific currency or for the entire Cross-Collateral portfolio. The response includes margin requirements, risk metrics, and scenario analysis that helps assess portfolio risk under various market conditions.\n\nUse this method to understand margin requireme" }, { "info": { "name": "GET /private/simulate_portfolio", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/simulate_portfolio", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "add_positions", "value": "", "type": "query", "description": "If `true`, adds simulated positions to current positions, otherwise uses only simulated positions. By default `true`" }, { "name": "simulated_positions", "value": "", "type": "query", "description": "Object with positions in following form: `{InstrumentName1: Position1, InstrumentName2: Position2...}`, for example `{\"BTC-PERPETUAL\": -1000.0}` (or corresponding URI-encoding for GET). For futures in USD, for options in base currency." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Calculates portfolio margin requirements and risk metrics for simulated positions or the current portfolio. This method helps you understand margin requirements before opening new positions or assess the impact of potential trades.\n\nYou can simulate adding new positions to the current portfolio or calculate margin for a completely simulated portfolio. The response includes initial margin, maintenance margin, available funds, and other risk metrics.\n\n**Note:** This method has a restricted rate li" }, { "info": { "name": "GET /private/get_access_log", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_access_log", "params": [ { "name": "offset", "value": "", "type": "query", "description": "The offset for pagination, default - `0`" }, { "name": "count", "value": "", "type": "query", "description": "Number of requested items, default - `10`, maximum - `1000`" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves a log of API access attempts and authentication events for the authenticated account. The log includes information such as IP addresses, timestamps, API methods called, and authentication status.\n\nUse this method to monitor account security, review API usage patterns, and identify unauthorized access attempts. Results can be paginated using the `offset` and `count` parameters.\n\n**Scope:** `account:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_" }, { "info": { "name": "GET /private/get_affiliate_program_info", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_affiliate_program_info", "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves information about the affiliate program status for the authenticated account. The response includes the number of referred affiliates, total payouts earned, pending payouts, and the unique affiliate referral link.\n\nUse this method to track your affiliate program performance and earnings.\n\n**πŸ“– Related Support Article:** [Affiliate Program](https://support.deribit.com/hc/en-us/articles/25944777728797-Affiliate-Program)\n\n**Scope:** `account:read`\n\n[Try in API console](https://test.deribi" }, { "info": { "name": "GET /private/enable_affiliate_program", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/enable_affiliate_program", "body": { "type": "json", "data": "{}" } }, "docs": "Enables the affiliate program for the authenticated account. Once enabled, you can earn commissions by referring new users to Deribit.\n\nAfter enabling, you will receive a unique affiliate link that can be shared with potential users. Commissions are paid based on the trading activity of referred users.\n\n**πŸ“– Related Support Article:** [Affiliate Program](https://support.deribit.com/hc/en-us/articles/25944777728797-Affiliate-Program)\n\n**Scope:** `account:read_write`\n\n[Try in API console](https://" }, { "info": { "name": "GET /private/change_margin_model", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/change_margin_model", "params": [ { "name": "user_id", "value": "", "type": "query", "description": "Id of a (sub)account - by default current user id is used" }, { "name": "margin_model", "value": "", "type": "query", "description": "Margin model" }, { "name": "dry_run", "value": "", "type": "query", "description": "If `true` request returns the result without switching the margining model. Default: `false`" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Changes the margin model for the authenticated account or a specified subaccount. Margin models determine how margin requirements are calculated (e.g., Standard Margin vs. Portfolio Margin).\n\nChanging the margin model may affect margin requirements, available funds, and trading capabilities. Use the `dry_run` parameter to preview the impact of the change before applying it.\n\n**πŸ“– Related Article:** [Margin types and usage](https://support.deribit.com/hc/en-us/articles/25944811317149-Margin-types" }, { "info": { "name": "GET /private/get_user_locks", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_user_locks", "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves information about any account locks or restrictions currently active on the authenticated account. Account locks may be applied for security reasons, compliance requirements, or administrative purposes.\n\nThe response includes details about the type of lock, reason, and duration (if applicable). Some locks may prevent trading, withdrawals, or other account operations.\n\n**πŸ“– Related Support Article:** [Emergency locking an account](https://support.deribit.com/hc/en-us/articles/2594460271" }, { "info": { "name": "GET /private/set_self_trading_config", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/set_self_trading_config", "params": [ { "name": "mode", "value": "", "type": "query", "description": "Self trading prevention behavior: `reject_taker` (reject the incoming order), `cancel_maker` (cancel the matched order in the book)" }, { "name": "extended_to_subaccounts", "value": "", "type": "query", "description": "If value is `true` trading is prevented between subaccounts of given account, otherwise they are treated separately" }, { "name": "block_rfq_self_match_prevention", "value": "", "type": "query", "description": "When Block RFQ Self Match Prevention is enabled, it ensures that RFQs cannot be executed between accounts that belong to the same legal entity. This setting is independent of the general self-match prevention settings and must be configured separately." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Configures self-trading prevention settings for the account. Self-trading occurs when orders from the same account (or related subaccounts) match against each other.\n\nYou can configure whether self-trading is allowed, blocked, or allowed only for specific scenarios. Settings can be extended to apply to subaccounts as well. For Block RFQ trading, separate self-match prevention settings are available.\n\n**πŸ“– Related Support Article:** [Account settings page](https://support.deribit.com/hc/en-us/art" }, { "info": { "name": "GET /private/set_disabled_trading_products", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/set_disabled_trading_products", "params": [ { "name": "user_id", "value": "", "type": "query", "description": "Id of a (sub)account" }, { "name": "trading_products", "value": "", "type": "query", "description": "List of available trading products. Available products: perpetual, futures, options, future_combos, option_combos, spots\n" } ] }, "docs": "Configures which trading products (instruments, currencies, or instrument types) are disabled for a subaccount. Disabled products cannot be traded by the subaccount, providing a way to restrict trading activities.\n\nThis is useful for risk management and compliance purposes. Only the main account owner can modify trading product restrictions for subaccounts.\n\n**[TFA required](https://docs.deribit.com/articles/security-keys)**\n\n**Scope:** `account:read_write`\n\n[Try in API console](https://test.der" }, { "info": { "name": "GET /private/disable_api_key", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/disable_api_key", "params": [ { "name": "id", "value": "", "type": "query", "description": "API key ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Disables an API key, preventing it from being used to authenticate API requests. The key remains in your account but cannot be used until it is re-enabled.\n\nThis is useful for temporarily suspending access without permanently deleting the key. All requests using this key will be rejected until it is enabled again.\n\n**[TFA required](https://docs.deribit.com/articles/security-keys)**\n\n**πŸ“– Related Article:** [Creating new API key on Deribit](https://docs.deribit.com/articles/creating-api-key)\n\n**S" }, { "info": { "name": "GET /private/enable_api_key", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/enable_api_key", "params": [ { "name": "id", "value": "", "type": "query", "description": "API key ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables a previously disabled API key, restoring its ability to authenticate API requests. The API key can be used immediately after being enabled.\n\n**πŸ“– Related Article:** [Creating new API key on Deribit](https://docs.deribit.com/articles/creating-api-key)\n\n**Scope:** `account:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fenable_api_key)\n\n" }, { "info": { "name": "GET /private/create_api_key", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/create_api_key", "params": [ { "name": "max_scope", "value": "", "type": "query", "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" }, { "name": "name", "value": "", "type": "query", "description": "Name of key (only letters, numbers and underscores allowed; maximum length - 16 characters)" }, { "name": "public_key", "value": "", "type": "query", "description": "ED25519 or RSA PEM Encoded public key that should be used to create asymmetric API Key for signing requests/authentication requests with user's private key.

**πŸ“– Related Article:** [Asymmetric API keys](https://docs.deribit.com/articles/asymmetric-api-keys)" }, { "name": "enabled_features", "value": "", "type": "query", "description": "List of enabled advanced on-key features. Available options:
- `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 key
- `block_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
" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates a new API key with the specified scope and permissions. API keys are used for programmatic access to the Deribit API and can be restricted to specific operations and IP addresses.\n\nThe response includes both the API key ID and the secret key. Store the secret securely as it will not be displayed again. You can view the API key details (without the secret) using the `list_api_keys` method.\n\n**[TFA required](https://docs.deribit.com/articles/security-keys)**\n\n**πŸ“– Related Articles:** \n- [C" }, { "info": { "name": "GET /private/change_scope_in_api_key", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/change_scope_in_api_key", "params": [ { "name": "max_scope", "value": "", "type": "query", "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" }, { "name": "id", "value": "", "type": "query", "description": "API key ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Updates the scope (permissions) for an existing API key. The scope determines which operations the API key can perform (e.g., read-only, read-write, trading, etc.).\n\nWhen the scope is changed, the API key immediately loses access to operations outside the new scope. Applications using this key may need to be updated to reflect the new permissions.\n\n**[TFA required](https://docs.deribit.com/articles/security-keys)**\n\n**πŸ“– Related Articles:** \n- [Creating new API key on Deribit](https://docs.derib" }, { "info": { "name": "GET /private/change_api_key_name", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/change_api_key_name", "params": [ { "name": "id", "value": "", "type": "query", "description": "API key ID" }, { "name": "name", "value": "", "type": "query", "description": "Name of key (only letters, numbers and underscores allowed; maximum length - 16 characters)" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Updates the display name for an API key. The name is used for identification purposes in the API key list and does not affect the key's functionality or permissions.\n\n**πŸ“– Related Article:** [Creating new API key on Deribit](https://docs.deribit.com/articles/creating-api-key)\n\n**Scope:** `account:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fchange_api_key_name)\n\n" }, { "info": { "name": "GET /private/list_api_keys", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/list_api_keys" }, "docs": "Retrieves a list of all API keys associated with the authenticated account. The response includes key details such as ID, name, scope, creation date, last usage, and status (enabled/disabled), but does not include the secret keys for security reasons.\n\nUse this method to review and manage your API keys, check their permissions, and monitor their usage.\n\n**[TFA required](https://docs.deribit.com/articles/security-keys)**\n\n**πŸ“– Related Article:** [Creating new API key on Deribit](https://docs.deri" }, { "info": { "name": "GET /private/reset_api_key", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/reset_api_key", "params": [ { "name": "id", "value": "", "type": "query", "description": "API key ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Generates a new secret key for an existing API key while keeping the same key ID and other properties. This is useful if the secret has been compromised or needs to be rotated for security purposes.\n\nThe old secret becomes invalid immediately, and the new secret is returned in the response. Store the new secret securely as it will not be displayed again. All applications using the old secret will need to be updated with the new secret.\n\n**πŸ“– Related Article:** [Creating new API key on Deribit](h" }, { "info": { "name": "GET /private/remove_api_key", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/remove_api_key", "params": [ { "name": "id", "value": "", "type": "query", "description": "API key ID" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Permanently deletes an API key from your account. This operation cannot be undone. Once removed, the API key can no longer be used to authenticate requests, and all applications using this key will lose access.\n\nConsider disabling the key first if you want to temporarily suspend access, as disabled keys can be re-enabled later.\n\n**πŸ“– Related Article:** [Creating new API key on Deribit](https://docs.deribit.com/articles/creating-api-key)\n\n**Scope:** `account:read_write`\n\n[Try in API console](http" }, { "info": { "name": "GET /private/edit_api_key", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/edit_api_key", "params": [ { "name": "id", "value": "", "type": "query", "description": "API key ID" }, { "name": "max_scope", "value": "", "type": "query", "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" }, { "name": "name", "value": "", "type": "query", "description": "Name of key (only letters, numbers and underscores allowed; maximum length - 16 characters)" }, { "name": "enabled", "value": "", "type": "query", "description": "Enables/disables the API key. `true` to enable, `false` to disable" }, { "name": "enabled_features", "value": "", "type": "query", "description": "List of enabled advanced on-key features. Available options:
- `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 key
- `block_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
" }, { "name": "ip_whitelist", "value": "", "type": "query", "description": "Whitelist provided IP address on a selected key" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Updates properties of an existing API key. You can modify the key name, scope, enabled status, features, and IP whitelist. At least one parameter must be provided.\n\nChanges take effect immediately. If you modify the scope, the API key will only have access to the newly specified permissions.\n\n**[TFA required](https://docs.deribit.com/articles/security-keys)**\n\n**πŸ“– Related Articles:** \n- [Creating new API key on Deribit](https://docs.deribit.com/articles/creating-api-key)\n- [Access Scope](https:" }, { "info": { "name": "GET /private/get_new_announcements", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_new_announcements", "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves only unread announcements for the authenticated account. Announcements are marked as read when you use the `set_announcement_as_read` method or view them through the web interface.\n\nThis method is useful for displaying notification badges or highlighting new announcements that require the user's attention.\n\n**Scope:** `account:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_new_announcements)\n\n" }, { "info": { "name": "GET /private/set_announcement_as_read", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/set_announcement_as_read", "params": [ { "name": "announcement_id", "value": "", "type": "query", "description": "the ID of the announcement" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Marks a specific announcement as read. Once marked as read, the announcement will no longer appear in the `get_new_announcements` response, though it will still be available through `get_announcements`.\n\nThis helps track which announcements have been viewed and reduces notification clutter.\n\n**Scope:** `account:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fset_announcement_as_read)\n\n" }, { "info": { "name": "GET /private/get_email_language", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_email_language", "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves the currently configured language preference for email notifications. Returns the language code (e.g., `en`, `ko`, `zh`, `ja`, `ru`) that is used for all email communications sent to the account.\n\n**Scope:** `account:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_email_language)\n\n" }, { "info": { "name": "GET /private/create_subaccount", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/create_subaccount", "body": { "type": "json", "data": "{}" } }, "docs": "Creates a new subaccount under the authenticated main account. Subaccounts allow you to organize trading activities and manage risk separately from the main account.\n\nThis method takes no parameters. The new subaccount will be created with default settings and can be configured using other subaccount management methods.\n\n**πŸ“– Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-subaccounts-api)\n\n**Scope:** `account:read_write` and mainaccount\n\n[Try in API console]" }, { "info": { "name": "GET /private/change_subaccount_name", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/change_subaccount_name", "params": [ { "name": "sid", "value": "", "type": "query", "description": "The user id for the subaccount" }, { "name": "name", "value": "", "type": "query", "description": "The new user name" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Updates the display name (username) for a subaccount. The new name is used for identification purposes and does not affect the subaccount's functionality or access.\n\nOnly the main account owner can change subaccount names.\n\n**πŸ“– Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-subaccounts-api)\n\n**Scope:** `account:read_write` and mainaccount\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fchange_subaccount_name)\n\n" }, { "info": { "name": "GET /private/set_email_language", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/set_email_language", "params": [ { "name": "language", "value": "", "type": "query", "description": "The abbreviated language name. Valid values include `\"en\"`, `\"ko\"`, `\"zh\"`, `\"ja\"`, `\"ru\"`" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Sets the preferred language for email notifications sent to the authenticated account. Supported languages include English (`en`), Korean (`ko`), Chinese (`zh`), Japanese (`ja`), and Russian (`ru`).\n\nAll future email notifications will be sent in the selected language. This setting does not affect the language of the web interface or API responses.\n\n**Scope:** `account:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fset_email_language)\n\n" }, { "info": { "name": "GET /private/set_email_for_subaccount", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/set_email_for_subaccount", "params": [ { "name": "sid", "value": "", "type": "query", "description": "The user id for the subaccount" }, { "name": "email", "value": "", "type": "query", "description": "The email address for the subaccount" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Assigns an email address to a subaccount. This email can be used for direct login to the subaccount and for receiving notifications.\n\nThe email address owner will receive a confirmation email with a link to verify the email address. The email must be confirmed before it can be used for login.\n\n**[TFA required](https://docs.deribit.com/articles/security-keys)**\n\n**πŸ“– Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-subaccounts-api)\n\n**Scope:** `account:read_wri" }, { "info": { "name": "GET /private/toggle_subaccount_login", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/toggle_subaccount_login", "params": [ { "name": "sid", "value": "", "type": "query", "description": "The user id for the subaccount" }, { "name": "state", "value": "", "type": "query", "description": "enable or disable login." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables or disables direct login access for a subaccount. When login is disabled, the subaccount cannot be accessed directly using email and password authentication, but can still be accessed through the main account.\n\nIf login is disabled while an active session exists for the subaccount, that session will be immediately terminated.\n\n**[TFA required](https://docs.deribit.com/articles/security-keys)**\n\n**πŸ“– Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-suba" }, { "info": { "name": "GET /private/toggle_notifications_from_subaccount", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/toggle_notifications_from_subaccount", "params": [ { "name": "sid", "value": "", "type": "query", "description": "The user id for the subaccount" }, { "name": "state", "value": "", "type": "query", "description": "enable (`true`) or disable (`false`) notifications" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enables or disables email and other notifications for a subaccount. When notifications are disabled, the subaccount will not receive email alerts, trade confirmations, or other notification messages.\n\nThis setting only affects notifications sent to the subaccount's email address. Notifications sent to the main account are not affected.\n\n**[TFA required](https://docs.deribit.com/articles/security-keys)**\n\n**πŸ“– Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-su" }, { "info": { "name": "GET /private/get_subaccounts", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_subaccounts", "params": [ { "name": "with_portfolio", "value": "", "type": "query", "description": "Portfolio flag: `true` for portfolio information, `false` for subaccount information only. `false` by default" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves information about all subaccounts associated with the main account. Returns details such as subaccount IDs, names, and status.\n\nWhen called from a subaccount, the response includes limited details for the main account and full details for the subaccount initiating the request.\n\nSet the `with_portfolio` parameter to `true` to include portfolio information (balances, positions, etc.) in the response. By default, only subaccount metadata is returned.\n\n**πŸ“– Related Article:** [Managing Sub" }, { "info": { "name": "GET /private/get_subaccounts_details", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_subaccounts_details", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "with_open_orders", "value": "", "type": "query", "description": "Optional parameter to ask for open orders list, default: `false`" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves position details for all subaccounts for a specific currency. Returns positions aggregated across all subaccounts, including size, average entry price, mark price, and P&L information.\n\nOptionally include open orders for each subaccount by setting the `with_open_orders` parameter to `true`.\n\n**πŸ“– Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-subaccounts-api)\n\n**Scope:** `account:read`\n\n[Try in API console](https://test.deribit.com/api_console?meth" }, { "info": { "name": "GET /private/remove_subaccount", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/remove_subaccount", "params": [ { "name": "subaccount_id", "value": "", "type": "query", "description": "The user id for the subaccount" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Permanently removes a subaccount. The subaccount must be empty (no positions, no open orders, and zero balance) before it can be removed.\n\nThis operation cannot be undone. All subaccount data will be permanently deleted.\n\n**[TFA required](https://docs.deribit.com/articles/security-keys)**\n\n**πŸ“– Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-subaccounts-api)\n\n**Scope:** `account:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2F" }, { "info": { "name": "GET /private/get_transaction_log", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_transaction_log", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "start_timestamp", "value": "", "type": "query", "description": "The earliest timestamp to return result from (milliseconds since the UNIX epoch)" }, { "name": "end_timestamp", "value": "", "type": "query", "description": "The most recent timestamp to return result from (milliseconds since the UNIX epoch)" }, { "name": "query", "value": "", "type": "query", "description": "The following keywords can be used to filter the results: `trade`, `maker`, `taker`, `open`, `close`, `liquidation`, `buy`, `sell`, `withdrawal`, `delivery`, `settlement`, `deposit`, `transfer`, `option`, `future`, `correction`, `block_trade`, `swap`. Plus withdrawal or transfer addresses" }, { "name": "count", "value": "", "type": "query", "description": "Count of transaction log entries returned, default - `100`, maximum - `250`" }, { "name": "subaccount_id", "value": "", "type": "query", "description": "Id of a subaccount" }, { "name": "continuation", "value": "", "type": "query", "description": "Continuation token for pagination" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves a detailed transaction log for the authenticated account. The log includes all account activities such as trades, deposits, withdrawals, transfers, fees, and other balance-affecting operations.\n\nResults can be filtered by currency, time range, and transaction type. Use the `continuation` parameter for pagination when retrieving large transaction histories. To retrieve transactions for a specific subaccount, use the `subaccount_id` parameter.\n\n**History Limit:** This API method has **no" }, { "info": { "name": "GET /private/list_custody_accounts", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/list_custody_accounts", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves a list of all custody accounts associated with the authenticated account for a specific currency. Custody accounts are used for clients who require segregated custody of their assets.\n\nThe response includes custody account details such as account name, status, balances, and configuration settings.\n\n**πŸ“– Related Support Article:** [Custody Options](https://support.deribit.com/hc/en-us/articles/26533163120413-Custody-Options)\n\n[Try in API console](https://test.deribit.com/api_console?met" }, { "info": { "name": "GET /private/logout", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/logout", "params": [ { "name": "invalidate_token", "value": "", "type": "query", "description": "Token Invalidation: By default, all tokens created during the current session are invalidated when you call this method. You can control this behavior using this parameter: " } ], "body": { "type": "json", "data": "{}" } }, "docs": "Gracefully terminate the current WebSocket connection and optionally invalidate all tokens associated with the session.\n\nThis method provides a clean way to close WebSocket connections while preserving active orders when [**Cancel On Disconnect (COD)**](https://docs.deribit.com/api-reference/session-management/private-enable_cancel_on_disconnect) is enabled.\n\n**Use Cases:**\n\n- **Clean Shutdown:** Properly close WebSocket connections during application shutdown or restart\n- **Order Preservation:*" }, { "info": { "name": "GET /private/get_block_rfqs", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_block_rfqs", "params": [ { "name": "count", "value": "", "type": "query", "description": "Count of Block RFQs returned, maximum - `1000`" }, { "name": "state", "value": "", "type": "query", "description": "State of Block RFQ" }, { "name": "role", "value": "", "type": "query", "description": "Role of the user in Block RFQ. When the `any` role is selected, the method returns all Block RFQs in which the user has participated, either as the `taker` or as a `maker`" }, { "name": "continuation", "value": "", "type": "query", "description": "The continuation parameter specifies the starting point for fetching historical Block RFQs. When provided, the endpoint returns Block RFQs, starting from the specified ID and continuing backward (e.g., if `continuation` is 50, results will include Block RFQs of ID 49, 48, etc.)" }, { "name": "block_rfq_id", "value": "", "type": "query", "description": "ID of the Block RFQ" }, { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns a list of Block RFQs that were either created by the user or assigned to them as a maker, sorted in descending order.\n\n`trades` and `mark_price` are only visible for the filled Block RFQ. When a `block_rfq_id` is specified, only that particular Block RFQ will be returned. If called by a `taker`, response will additionally include `makers` list and `label` if previously provided. If called by the `maker`, the `trades` will include the maker's alias, but only for trades in which this maker" }, { "info": { "name": "GET /private/create_block_rfq", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/create_block_rfq", "params": [ { "name": "legs", "value": "", "type": "query", "description": "List of legs used to create Block RFQ" }, { "name": "trade_allocations", "value": "", "type": "query", "description": "List of allocations for Block RFQ pre-allocation. Allows to split amount between different (sub)accounts or broker clients. Each allocation must specify either `user_id` (for direct allocation) or `client_info` object (for broker allocation), and amount." }, { "name": "hedge", "value": "", "type": "query", "description": "Hedge leg of the Block RFQ. There is only one hedge leg allowed per Block RFQ" }, { "name": "label", "value": "", "type": "query", "description": "User defined label for the Block RFQ (maximum 64 characters)" }, { "name": "makers", "value": "", "type": "query", "description": "List of targeted Block RFQ makers. Only those makers will be notified about created Block RFQ. If the list is empty, all available makers will be targeted." }, { "name": "disclosed", "value": "", "type": "query", "description": "Determines whether the RFQ is non-anonymous, revealing both taker and maker aliases. It can be set to `false` (anonymous mode) only when at least 5 makers are targeted. Default value is `true`." } ], "body": { "type": "json", "data": "{}" } }, "docs": "**Taker method**\n\nCreates a new Block RFQ. Use [private/get_block_rfqs](https://docs.deribit.com/api-reference/block-rfq/private-get_block_rfqs) to retrieve Block RFQ information.\n\n**Block RFQ pre-allocation:** The taker can split the total amount between different (sub)accounts using the `trade_allocations` parameter. The taker can also allocate to himself. Each allocation must specify either `user_id` (for direct allocation) or `client_info` object (for broker allocation), and `amount`.\n\n**πŸ“– " }, { "info": { "name": "GET /private/cancel_block_rfq", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/cancel_block_rfq", "params": [ { "name": "block_rfq_id", "value": "", "type": "query", "description": "ID of the Block RFQ" } ], "body": { "type": "json", "data": "{}" } }, "docs": "**Taker method**\n\nCancels a Block RFQ using the specified `block_rfq_id`.\n\nUse [private/get_block_rfqs](https://docs.deribit.com/api-reference/block-rfq/private-get_block_rfqs) to retrieve Block RFQ information, or [private/create_block_rfq](https://docs.deribit.com/api-reference/block-rfq/private-create_block_rfq) to create a new Block RFQ.\n\n**πŸ“– Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)\n\n**Scope:** `block_rfq:read_write`" }, { "info": { "name": "GET /private/accept_block_rfq", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/accept_block_rfq", "params": [ { "name": "block_rfq_id", "value": "", "type": "query", "description": "ID of the Block RFQ" }, { "name": "price", "value": "", "type": "query", "description": "Maximum acceptable price for execution" }, { "name": "amount", "value": "", "type": "query", "description": "This value multiplied by the ratio of a leg gives trade size on that leg." }, { "name": "direction", "value": "", "type": "query", "description": "Direction of the trade from the taker perspective" }, { "name": "hedge", "value": "", "type": "query", "description": "Hedge leg of the Block RFQ. There is only one hedge leg allowed per Block RFQ" }, { "name": "legs", "value": "", "type": "query", "description": "List of legs used to trade Block RFQ" }, { "name": "time_in_force", "value": "", "type": "query", "description": "Specifies how long the order should remain active" } ], "body": { "type": "json", "data": "{}" } }, "docs": "**Taker method**\n\nAllows Block RFQ taker to accept a quote by sending a single crossing price. The order can be either filled immediately (`fill_or_kill`) or remain active until cancelled (`good_til_cancelled`).\n\n**Note:** After Block RFQ creation, a grace period of 5 seconds begins, during which the taker cannot see quotes or trade the Block RFQ.\n\nUse [private/get_block_rfqs](https://docs.deribit.com/api-reference/block-rfq/private-get_block_rfqs) to retrieve Block RFQ information, or [private/" }, { "info": { "name": "GET /private/cancel_block_rfq_trigger", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/cancel_block_rfq_trigger", "params": [ { "name": "block_rfq_id", "value": "", "type": "query", "description": "ID of the Block RFQ" } ], "body": { "type": "json", "data": "{}" } }, "docs": "**Taker method**\n\nAllows Block RFQ taker to cancel an active trigger for a Block RFQ. The response includes the full Block RFQ object with the trade trigger state set to cancelled.\n\nUse [private/get_block_rfqs](https://docs.deribit.com/api-reference/block-rfq/private-get_block_rfqs) to retrieve Block RFQ information.\n\n**πŸ“– Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)\n\n**Scope:** `block_rfq:read_write`\n\n[Try in API console](ht" }, { "info": { "name": "GET /private/get_block_rfq_quotes", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_block_rfq_quotes", "params": [ { "name": "block_rfq_id", "value": "", "type": "query", "description": "ID of the Block RFQ" }, { "name": "label", "value": "", "type": "query", "description": "User defined label for the Block RFQ quote (maximum 64 characters). Used to identify quotes of a selected Block RFQ" }, { "name": "block_rfq_quote_id", "value": "", "type": "query", "description": "ID of the Block RFQ quote" } ], "body": { "type": "json", "data": "{}" } }, "docs": "**Maker method**\n\nRetrieves all open quotes for Block RFQs. When a `block_rfq_id` is specified, only the open quotes for that particular Block RFQ will be returned. When a `label` is specified, all quotes with this label are returned. `block_rfq_quote_id` returns one specific quote.\n\nUse [private/add_block_rfq_quote](https://docs.deribit.com/api-reference/block-rfq/private-add_block_rfq_quote) to add quotes, or [private/get_block_rfqs](https://docs.deribit.com/api-reference/block-rfq/private-get" }, { "info": { "name": "GET /private/add_block_rfq_quote", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/add_block_rfq_quote", "params": [ { "name": "label", "value": "", "type": "query", "description": "User defined label for the Block RFQ quote (maximum 64 characters). Used to identify quotes of a selected Block RFQ" }, { "name": "block_rfq_id", "value": "", "type": "query", "description": "ID of the Block RFQ" }, { "name": "amount", "value": "", "type": "query", "description": "This value multiplied by the ratio of a leg gives trade size on that leg." }, { "name": "direction", "value": "", "type": "query", "description": "Direction of trade from the maker perspective" }, { "name": "legs", "value": "", "type": "query", "description": "List of legs used for Block RFQ quote" }, { "name": "hedge", "value": "", "type": "query", "description": "Hedge leg of the Block RFQ. There is only one hedge leg allowed per Block RFQ" }, { "name": "execution_instruction", "value": "", "type": "query", "description": "

Execution instruction of the quote. Default - `any_part_of`

" }, { "name": "price", "value": "", "type": "query", "description": "Aggregated price used for quoting future spreads." }, { "name": "expires_at", "value": "", "type": "query", "description": "The timestamp when the quote expires (milliseconds since the Unix epoch)" } ], "body": { "type": "json", "data": "{}" } }, "docs": "**Maker method**\n\nAdds a quote to an existing Block RFQ. To calculate individual leg prices, use [private/get_leg_prices](https://docs.deribit.com/api-reference/combo-books/private-get_leg_prices).\n\nUse [private/get_block_rfqs](https://docs.deribit.com/api-reference/block-rfq/private-get_block_rfqs) to retrieve Block RFQ information, or [private/edit_block_rfq_quote](https://docs.deribit.com/api-reference/block-rfq/private-edit_block_rfq_quote) to modify an existing quote.\n\n**πŸ“– Related Article:" }, { "info": { "name": "GET /private/edit_block_rfq_quote", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/edit_block_rfq_quote", "params": [ { "name": "legs", "value": "", "type": "query", "description": "List of legs used for Block RFQ quote" }, { "name": "amount", "value": "", "type": "query", "description": "This value multiplied by the ratio of a leg gives trade size on that leg." }, { "name": "block_rfq_quote_id", "value": "", "type": "query", "description": "ID of the Block RFQ quote" }, { "name": "label", "value": "", "type": "query", "description": "User defined label for the Block RFQ quote (maximum 64 characters). Used to identify quotes of a selected Block RFQ" }, { "name": "hedge", "value": "", "type": "query", "description": "Hedge leg of the Block RFQ. There is only one hedge leg allowed per Block RFQ" }, { "name": "block_rfq_id", "value": "", "type": "query", "description": "ID of the Block RFQ" }, { "name": "price", "value": "", "type": "query", "description": "Aggregated price used for quoting future spreads." } ], "body": { "type": "json", "data": "{}" } }, "docs": "**Maker method**\n\nEdits a Block RFQ quote using the specified `block_rfq_quote_id`. Alternatively, you can use a combination of `block_rfq_id` and `label` to edit the quote.\n\nUse [private/add_block_rfq_quote](https://docs.deribit.com/api-reference/block-rfq/private-add_block_rfq_quote) to add new quotes, or [private/cancel_block_rfq_quote](https://docs.deribit.com/api-reference/block-rfq/private-cancel_block_rfq_quote) to cancel quotes.\n\n**πŸ“– Related Article:** [Deribit Block RFQ API walkthrough" }, { "info": { "name": "GET /private/cancel_block_rfq_quote", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/cancel_block_rfq_quote", "params": [ { "name": "block_rfq_quote_id", "value": "", "type": "query", "description": "ID of the Block RFQ quote" }, { "name": "label", "value": "", "type": "query", "description": "User defined label for the Block RFQ quote (maximum 64 characters). Used to identify quotes of a selected Block RFQ" }, { "name": "block_rfq_id", "value": "", "type": "query", "description": "ID of the Block RFQ" } ], "body": { "type": "json", "data": "{}" } }, "docs": "**Maker method**\n\nCancels a single Block RFQ quote. You can identify the quote to cancel using either:\n\n- `block_rfq_quote_id` - the unique ID of the quote\n- `block_rfq_id` + `label` - the Block RFQ ID and the quote label\n\n**Note:** Mass cancellation by label is not supported. This method cancels only one quote at a time. To cancel all quotes, use [private/cancel_all_block_rfq_quotes](https://docs.deribit.com/api-reference/block-rfq/private-cancel_all_block_rfq_quotes).\n\n**πŸ“– Related Article:** " }, { "info": { "name": "GET /private/cancel_all_block_rfq_quotes", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/cancel_all_block_rfq_quotes", "params": [ { "name": "block_rfq_id", "value": "", "type": "query", "description": "ID of the Block RFQ" }, { "name": "detailed", "value": "", "type": "query", "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" } ], "body": { "type": "json", "data": "{}" } }, "docs": "**Maker method**\n\nCancels all user quotes in all Block RFQs. Optionally cancels all quotes in a specific RFQ if the `block_rfq_id` is provided.\n\n**Note:** Mass cancellation by label is not supported. This method will cancel all quotes regardless of their labels. To cancel a single quote, use [private/cancel_block_rfq_quote](https://docs.deribit.com/api-reference/block-rfq/private-cancel_block_rfq_quote).\n\n**πŸ“– Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articl" }, { "info": { "name": "GET /private/get_block_rfq_makers", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_block_rfq_makers", "body": { "type": "json", "data": "{}" } }, "docs": "Returns a list of all available Block RFQ makers. This method takes no parameters.\n\nUse this method to retrieve the list of makers that can be specified when creating a Block RFQ with [private/create_block_rfq](https://docs.deribit.com/api-reference/block-rfq/private-create_block_rfq).\n\n**πŸ“– Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)\n\n**Scope:** `block_rfq:read`\n\n[Try in API console](https://test.deribit.com/api_console?met" }, { "info": { "name": "GET /private/get_block_rfq_user_info", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_block_rfq_user_info", "body": { "type": "json", "data": "{}" } }, "docs": "Returns identity and rating information for the requesting account and its subaccounts. Includes both group-level and individual user-level alias data, if available.\n\nThis information is useful for understanding your Block RFQ maker identity and rating when participating in Block RFQ trades.\n\n**πŸ“– Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)\n\n**Scope:** `block_rfq:read`\n\n[Try in API console](https://test.deribit.com/api_conso" }, { "info": { "name": "GET /private/simulate_block_trade", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/simulate_block_trade", "params": [ { "name": "role", "value": "", "type": "query", "description": "Describes if user wants to be maker or taker of trades" }, { "name": "trades", "value": "", "type": "query", "description": "List of trades for block trade" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Checks if a block trade can be executed without actually executing it. Use this method to verify that a block trade will succeed before proceeding with the actual execution.\n\n**πŸ“– Related Article:** [Block Trading](https://docs.deribit.com/articles/block-trading-api)\n\n**Scope:** `block_trade:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fsimulate_block_trade)\n\n" }, { "info": { "name": "GET /private/verify_block_trade", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/verify_block_trade", "params": [ { "name": "timestamp", "value": "", "type": "query", "description": "Timestamp, shared with other party (milliseconds since the UNIX epoch)" }, { "name": "nonce", "value": "", "type": "query", "description": "Nonce, shared with other party" }, { "name": "role", "value": "", "type": "query", "description": "Describes if user wants to be maker or taker of trades" }, { "name": "trades", "value": "", "type": "query", "description": "List of trades for block trade" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Verifies and creates a block trade signature. This is the first step in the block trade workflow - the first party calls this method to generate a signature that must be shared with the second party.\n\n**Note:** In the API, the `direction` field is always expressed from the maker's perspective. This means that when you accept a block trade as a taker, the direction shown in the API represents the opposite side of your trade. For example, if you are buying puts as a taker, the API will show the op" }, { "info": { "name": "GET /private/execute_block_trade", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/execute_block_trade", "params": [ { "name": "timestamp", "value": "", "type": "query", "description": "Timestamp, shared with other party (milliseconds since the UNIX epoch)" }, { "name": "nonce", "value": "", "type": "query", "description": "Nonce, shared with other party" }, { "name": "role", "value": "", "type": "query", "description": "Describes if user wants to be maker or taker of trades" }, { "name": "trades", "value": "", "type": "query", "description": "List of trades for block trade" }, { "name": "counterparty_signature", "value": "", "type": "query", "description": "Signature of block trade generated by `private/verify_block_trade_method`" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Executes a block trade. This is the second step in the block trade workflow - the second party calls this method with the signature received from the first party to execute the trade.\n\nThe whole request must be exactly the same as in [private/verify_block_trade](https://docs.deribit.com/api-reference/block-trade/private-verify_block_trade), only the `role` field should be set appropriately - this means that both sides have to agree on the same `timestamp`, `nonce`, and `trades` fields, and the s" }, { "info": { "name": "GET /private/invalidate_block_trade_signature", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/invalidate_block_trade_signature", "params": [ { "name": "signature", "value": "", "type": "query", "description": "Signature of block trade that will be invalidated" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Invalidates a block trade signature, effectively cancelling the block trade. This can be called at any time before [private/execute_block_trade](https://docs.deribit.com/api-reference/block-trade/private-execute_block_trade) is called.\n\n**πŸ“– Related Article:** [Block Trading](https://docs.deribit.com/articles/block-trading-api)\n\n**Scope:** `block_trade:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Finvalidate_block_trade_signature)\n\n" }, { "info": { "name": "GET /private/get_block_trade", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_block_trade", "params": [ { "name": "id", "value": "", "type": "query", "description": "Block trade id" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns information about a specific block trade identified by `block_trade_id`.\n\n**πŸ“– Related Article:** [Block Trading](https://docs.deribit.com/articles/block-trading-api)\n\n**Scope:** `block_trade:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_block_trade)\n\n" }, { "info": { "name": "GET /private/get_block_trades", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_block_trades", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "count", "value": "", "type": "query", "description": "Count of Block Trades returned, maximum - `101`" }, { "name": "start_id", "value": "", "type": "query", "description": "Response will contain block trades older than the one provided in this field" }, { "name": "end_id", "value": "", "type": "query", "description": "The id of the oldest block trade to be returned, `start_id` is required with `end_id`" }, { "name": "block_rfq_id", "value": "", "type": "query", "description": "ID of the Block RFQ" }, { "name": "broker_code", "value": "", "type": "query", "description": "Broker code to filter block trades. Only broker clients can use `broker_code` to filter broker block trades. Use `any` for all block trades." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns a list of the user's block trades. If currency is not provided, returns block trades for all currencies. `block_rfq_id` can be provided to receive block trades related to that particular Block RFQ.\n\n**πŸ“– Related Article:** [Block Trading](https://docs.deribit.com/articles/block-trading-api)\n\n**Scope:** `block_trade:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_block_trades)\n\n" }, { "info": { "name": "GET /private/get_block_trade_requests", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_block_trade_requests", "params": [ { "name": "broker_code", "value": "", "type": "query", "description": "Broker code to filter block trade requests. Only broker clients can use `broker_code` to query for their executed broker block trades." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Provides a list of block trade requests including pending approvals, declined trades, and expired trades. `timestamp` and `nonce` received in response can be used with [private/approve_block_trade](https://docs.deribit.com/api-reference/block-trade/private-approve_block_trade) or [private/reject_block_trade](https://docs.deribit.com/api-reference/block-trade/private-reject_block_trade) to approve or reject the pending block trade.\n\nTo use the block trade approval feature, an [additional API key " }, { "info": { "name": "GET /private/approve_block_trade", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/approve_block_trade", "params": [ { "name": "timestamp", "value": "", "type": "query", "description": "Timestamp, shared with other party (milliseconds since the UNIX epoch)" }, { "name": "nonce", "value": "", "type": "query", "description": "Nonce, shared with other party" }, { "name": "role", "value": "", "type": "query", "description": "Describes if user wants to be maker or taker of trades" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Approves a pending block trade. `nonce` and `timestamp` are used to identify the block trade while `role` should be opposite to the trading counterparty.\n\nUse [private/get_block_trade_requests](https://docs.deribit.com/api-reference/block-trade/private-get_block_trade_requests) to retrieve pending block trades that require approval.\n\nTo use the block trade approval feature, an [additional API key setting feature](https://docs.deribit.com/articles/creating-api-key#block-trade-approval-feature) ca" }, { "info": { "name": "GET /private/reject_block_trade", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/reject_block_trade", "params": [ { "name": "timestamp", "value": "", "type": "query", "description": "Timestamp, shared with other party (milliseconds since the UNIX epoch)" }, { "name": "nonce", "value": "", "type": "query", "description": "Nonce, shared with other party" }, { "name": "role", "value": "", "type": "query", "description": "Describes if user wants to be maker or taker of trades" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Rejects a pending block trade. `nonce` and `timestamp` are used to identify the block trade while `role` should be opposite to the trading counterparty.\n\nUse [private/get_block_trade_requests](https://docs.deribit.com/api-reference/block-trade/private-get_block_trade_requests) to retrieve pending block trades that require approval.\n\nTo use the block trade approval feature, an [additional API key setting feature](https://docs.deribit.com/articles/creating-api-key#block-trade-approval-feature) cal" }, { "info": { "name": "GET /private/get_broker_trades", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_broker_trades", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "count", "value": "", "type": "query", "description": "Number of requested items, default - `20`, maximum - `1000`" }, { "name": "start_id", "value": "", "type": "query", "description": "Response will contain block trades older than the one provided in this field" }, { "name": "end_id", "value": "", "type": "query", "description": "The id of the oldest block trade to be returned, `start_id` is required with `end_id`" } ], "body": { "type": "json", "data": "{}" } }, "docs": "**Broker Method** Returns list of broker block trades. If currency is not provided, returns broker block trades for all currencies.\n\n**Scope:** `block_trade:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_broker_trades)\n\n" }, { "info": { "name": "GET /private/get_broker_trade_requests", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_broker_trade_requests", "body": { "type": "json", "data": "{}" } }, "docs": "**Broker Method** Provides a list of broker block trade requests including pending approvals, declined trades, and expired trades. `timestamp` and `nonce` received in response can be used to approve or reject the pending broker block trade. This method takes no parameters.\n\n**Scope:** `block_trade:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_broker_trade_requests)\n\n" }, { "info": { "name": "GET /private/create_combo", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/create_combo", "params": [ { "name": "trades", "value": "", "type": "query", "description": "List of trades used to create a combo" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Verifies and creates a combo book or returns an existing combo matching the given trades. Combos allow trading on multiple instruments (futures and options) simultaneously as a single strategy.\n\nIf a combo matching the provided trades already exists, this method returns the existing combo. Otherwise, it creates a new combo book with the specified leg structure.\n\n**Scope:** `trade:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcreate_combo)\n\n" }, { "info": { "name": "GET /private/get_leg_prices", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_leg_prices", "params": [ { "name": "legs", "value": "", "type": "query", "description": "List of legs for which the prices will be calculated" }, { "name": "price", "value": "", "type": "query", "description": "Price for the whole leg structure" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Returns individual leg prices for a given combo structure based on an aggregated price of the strategy and the mark prices of the individual legs.\n\n**Note:** Leg prices change dynamically with mark price fluctuations, and the algorithm is calibrated only for conventional option structures and future spreads. This method supports both inverse strategies and known linear structures within a single currency pair.\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_leg" }, { "info": { "name": "GET /private/enable_cancel_on_disconnect", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/enable_cancel_on_disconnect", "params": [ { "name": "scope", "value": "", "type": "query", "description": "Specifies if Cancel On Disconnect change should be applied/checked for the current connection or the account (default - `connection`)

**NOTICE:** Scope `connection` can be used only when working via Websocket." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Enable Cancel On Disconnect for the connection. After enabling, all orders created via this connection will be automatically cancelled when the connection is closed.\n\nCancel is triggered in the following cases: when the TCP connection is properly terminated, when the connection is closed due to 10 minutes of inactivity, or when a heartbeat detects a disconnection. To reduce the inactivity timeout, consider using [public/set_heartbeat](https://docs.deribit.com/api-reference/session-management/pub" }, { "info": { "name": "GET /private/disable_cancel_on_disconnect", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/disable_cancel_on_disconnect", "params": [ { "name": "scope", "value": "", "type": "query", "description": "Specifies if Cancel On Disconnect change should be applied/checked for the current connection or the account (default - `connection`)

**NOTICE:** Scope `connection` can be used only when working via Websocket." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Disable Cancel On Disconnect for the connection.\n\nWhen change is applied for the account, then every newly opened connection will start with **inactive** Cancel on Disconnect.\n\n**WebSocket Only:** This method is designed exclusively for WebSocket connections. Attempting to use it via REST/HTTP will result in an error response.\n\n**Scope:** `account:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fdisable_cancel_on_disconnect)\n\n" }, { "info": { "name": "GET /private/get_cancel_on_disconnect", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_cancel_on_disconnect", "params": [ { "name": "scope", "value": "", "type": "query", "description": "Specifies if Cancel On Disconnect change should be applied/checked for the current connection or the account (default - `connection`)

**NOTICE:** Scope `connection` can be used only when working via Websocket." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Read current Cancel On Disconnect configuration for the account.\n\n**Scope:** `account:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_cancel_on_disconnect)\n\n" }, { "info": { "name": "GET /private/subscribe", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/subscribe", "params": [ { "name": "channels", "value": "", "type": "query", "description": "A list of channels to subscribe to. See [Notifications and Subscriptions](https://docs.deribit.com/articles/notifications) for all available channels." }, { "name": "label", "value": "", "type": "query", "description": "Optional label which will be added to notifications of private channels (max 16 characters)." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Subscribe to one or more channels. The name of the channel determines what information will be provided, and in what form.\n\nFor a complete list of available subscription channels and their notification formats, see [Notifications and Subscriptions](https://docs.deribit.com/articles/notifications).\n\n**Note - This method has distinct API rate limiting requirements:** Sustained rate: ~3.3 requests/second. For more information, see [Rate Limits](https://docs.deribit.com/articles/rate-limits).\n\n**πŸ“– " }, { "info": { "name": "GET /private/unsubscribe", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/unsubscribe", "params": [ { "name": "channels", "value": "", "type": "query", "description": "A list of channels to unsubscribe from. Only successfully unsubscribed channels will be returned in the result. See [Notifications and Subscriptions](https://docs.deribit.com/articles/notifications) for all available channels." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Unsubscribe from one or more channels. The response contains only the channels that were successfully unsubscribed in this request.\n\nFor a complete list of available subscription channels and their notification formats, see [Notifications and Subscriptions](https://docs.deribit.com/articles/notifications).\n\n**Note:** The `result` field in the response contains only the channels that were successfully processed and unsubscribed from this specific request. It does not include all previously subscr" }, { "info": { "name": "GET /private/unsubscribe_all", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/unsubscribe_all", "body": { "type": "json", "data": "{}" } }, "docs": "Unsubscribe from all the channels subscribed so far. This method takes no parameters.\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Funsubscribe_all)\n\n" }, { "info": { "name": "GET /private/get_settlement_history_by_currency", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_settlement_history_by_currency", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "type", "value": "", "type": "query", "description": "Settlement type" }, { "name": "count", "value": "", "type": "query", "description": "Number of requested items, default - `20`, maximum - `1000`" }, { "name": "continuation", "value": "", "type": "query", "description": "Continuation token for pagination" }, { "name": "search_start_timestamp", "value": "", "type": "query", "description": "The latest timestamp to return result from (milliseconds since the UNIX epoch)" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves settlement, delivery, and bankruptcy events that have affected your account for a specific currency. Settlements occur when futures or options contracts expire and are settled at the delivery price.\n\nResults can be filtered by settlement type and timestamp. Use pagination parameters (`count` and `continuation`) to retrieve large settlement histories. This data is useful for tracking account-affecting settlement events and understanding how contract expirations impact your account.\n\n**S" }, { "info": { "name": "GET /private/get_settlement_history_by_instrument", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_settlement_history_by_instrument", "params": [ { "name": "instrument_name", "value": "", "type": "query", "description": "Instrument name" }, { "name": "type", "value": "", "type": "query", "description": "Settlement type" }, { "name": "count", "value": "", "type": "query", "description": "Number of requested items, default - `20`, maximum - `1000`" }, { "name": "continuation", "value": "", "type": "query", "description": "Continuation token for pagination" }, { "name": "search_start_timestamp", "value": "", "type": "query", "description": "The latest timestamp to return result from (milliseconds since the UNIX epoch)" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves settlement, delivery, and bankruptcy events for a specific instrument that have affected your account. Settlements occur when futures or options contracts expire and are settled at the delivery price.\n\nResults can be filtered by settlement type and timestamp. Use pagination parameters (`count` and `continuation`) to retrieve large settlement histories. This method is useful for tracking settlement events for a specific instrument.\n\n**Scope:** `trade:read`\n\n[Try in API console](https://" }, { "info": { "name": "GET /private/get_order_history_by_instrument", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_order_history_by_instrument", "params": [ { "name": "instrument_name", "value": "", "type": "query", "description": "Instrument name" }, { "name": "count", "value": "", "type": "query", "description": "Number of requested items, default - `20`, maximum - `1000`" }, { "name": "offset", "value": "", "type": "query", "description": "The offset for pagination, default - `0`" }, { "name": "include_old", "value": "", "type": "query", "description": "Include in result orders older than 2 days, default - `false`" }, { "name": "include_unfilled", "value": "", "type": "query", "description": "Include in result fully unfilled closed orders, default - `false`" }, { "name": "with_continuation", "value": "", "type": "query", "description": "When set to true, the API response format changes from a simple list of orders to an object containing the orders and a continuation token." }, { "name": "continuation", "value": "", "type": "query", "description": "Continuation token for pagination" }, { "name": "historical", "value": "", "type": "query", "description": "Determines whether historical trade and order records should be retrieved.\n\n- `false` (default): Returns recent records: orders for 30 min, trades for 24h.\n- `true`: Fetches historical records, available after a short delay due to indexing. Recent data is not included.\n\n**πŸ“– Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves the order history for a specific instrument. The history includes orders that have been partially or fully filled, as well as cancelled orders (if `include_unfilled_orders` is set to true).\n\nResults can be paginated using `offset` and `count` parameters, or using continuation tokens. Use `include_old_orders` to include orders from before a certain date, and `historical` to retrieve historical order data.\n\n**πŸ“– Related Article:** [Accessing Historical Trades and Orders Using API](https:" }, { "info": { "name": "GET /private/get_order_history_by_currency", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_order_history_by_currency", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "kind", "value": "", "type": "query", "description": "Instrument kind, `\"combo\"` for any combo or `\"any\"` for all. If not provided instruments of all kinds are considered" }, { "name": "count", "value": "", "type": "query", "description": "Number of requested items, default - `20`, maximum - `1000`" }, { "name": "offset", "value": "", "type": "query", "description": "The offset for pagination, default - `0`" }, { "name": "include_old", "value": "", "type": "query", "description": "Include in result orders older than 2 days, default - `false`" }, { "name": "include_unfilled", "value": "", "type": "query", "description": "Include in result fully unfilled closed orders, default - `false`" }, { "name": "with_continuation", "value": "", "type": "query", "description": "When set to true, the API response format changes from a simple list of orders to an object containing the orders and a continuation token." }, { "name": "continuation", "value": "", "type": "query", "description": "Continuation token for pagination" }, { "name": "historical", "value": "", "type": "query", "description": "Determines whether historical trade and order records should be retrieved.\n\n- `false` (default): Returns recent records: orders for 30 min, trades for 24h.\n- `true`: Fetches historical records, available after a short delay due to indexing. Recent data is not included.\n\n**πŸ“– Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)\n" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves the order history for a specific currency. The history includes orders that have been partially or fully filled, as well as cancelled orders (if `include_unfilled_orders` is set to true).\n\nResults can be filtered by instrument kind and paginated using `offset` and `count` parameters, or using continuation tokens. Use `include_old_orders` to include orders from before a certain date, and `historical` to retrieve historical order data.\n\n**πŸ“– Related Article:** [Accessing Historical Trade" }, { "info": { "name": "GET /private/get_order_state", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_order_state", "params": [ { "name": "order_id", "value": "", "type": "query", "description": "The order id" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves the current state of an order identified by its order ID. The response includes order details such as status (open, filled, cancelled), filled amount, remaining amount, price, and other order properties.\n\n**Important Note for Mass Quotes:** Quote orders are order-like structures that don't fully translate to normal orders. When checking order state for quotes, the `amount` field represents the remaining amount, not the original order amount.\n\n**Scope:** `trade:read`\n\n[Try in API consol" }, { "info": { "name": "GET /private/get_order_state_by_label", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_order_state_by_label", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "label", "value": "", "type": "query", "description": "user defined label for the order (maximum 64 characters)" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves the state of recent orders that have a specific label. This is useful for tracking orders that share the same label, which is helpful for managing related orders.\n\nResults are filtered by currency and label. The response includes order details such as status, filled amount, remaining amount, and other order properties for all orders with the specified label.\n\n**Scope:** `trade:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_order_state_by_label)" }, { "info": { "name": "GET /private/get_open_orders", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_open_orders", "params": [ { "name": "kind", "value": "", "type": "query", "description": "Instrument kind, if not provided instruments of all kinds are considered" }, { "name": "type", "value": "", "type": "query", "description": "Order type, default - `all`" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves a list of all open orders for the authenticated account across all currencies. Open orders are orders that have been placed but not yet filled or cancelled.\n\nResults can be filtered by instrument kind and order type. This method provides a comprehensive view of all active orders.\n\n**Scope:** `trade:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_open_orders)\n\n" }, { "info": { "name": "GET /private/get_open_orders_by_instrument", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_open_orders_by_instrument", "params": [ { "name": "instrument_name", "value": "", "type": "query", "description": "Instrument name" }, { "name": "type", "value": "", "type": "query", "description": "Order type, default - `all`" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves a list of all open orders for a specific instrument. Open orders are orders that have been placed but not yet filled or cancelled.\n\nResults can be filtered by order type. This method is useful for checking active orders for a particular instrument.\n\n**Scope:** `trade:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_open_orders_by_instrument)\n\n" }, { "info": { "name": "GET /private/get_open_orders_by_currency", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_open_orders_by_currency", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "kind", "value": "", "type": "query", "description": "Instrument kind, if not provided instruments of all kinds are considered" }, { "name": "type", "value": "", "type": "query", "description": "Order type, default - `all`" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves a list of all open orders for a specific currency. Open orders are orders that have been placed but not yet filled or cancelled.\n\nResults can be filtered by instrument kind and order type. This method provides a view of all active orders within a currency.\n\n**Scope:** `trade:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_open_orders_by_currency)\n\n" }, { "info": { "name": "GET /private/get_open_orders_by_label", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_open_orders_by_label", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "label", "value": "", "type": "query", "description": "user defined label for the order (maximum 64 characters)" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves a list of all open orders that have a specific label within a given currency. This is useful for tracking and managing groups of related orders that share the same label.\n\nOpen orders are orders that have been placed but not yet filled or cancelled. The label helps organize and identify related orders.\n\n**Scope:** `trade:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_open_orders_by_label)\n\n" }, { "info": { "name": "GET /private/get_order_margin_by_ids", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_order_margin_by_ids", "params": [ { "name": "ids", "value": "", "type": "query", "description": "Ids of orders" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves the initial margin requirements for one or more orders identified by their order IDs. Initial margin is the amount of funds required to open a position with these orders.\n\nThis method is useful for calculating margin requirements before placing orders, helping to ensure sufficient funds are available.\n\n**Scope:** `trade:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_order_margin_by_ids)\n\n" }, { "info": { "name": "GET /private/get_trigger_order_history", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_trigger_order_history", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "instrument_name", "value": "", "type": "query", "description": "Instrument name" }, { "name": "count", "value": "", "type": "query", "description": "Number of requested items, default - `20`, maximum - `1000`" }, { "name": "continuation", "value": "", "type": "query", "description": "Continuation token for pagination" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves a detailed log of all trigger orders (stop orders, take-profit orders, etc.) for the authenticated account. The log includes trigger order creation, activation, execution, and cancellation events.\n\nResults can be filtered by currency and instrument name. Use pagination parameters (`count` and `continuation`) to retrieve large trigger order histories. This is useful for tracking trigger order activity and debugging trigger order behavior.\n\n**Scope:** `trade:read`\n\n[Try in API console](h" }, { "info": { "name": "GET /private/get_user_trades_by_instrument", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_user_trades_by_instrument", "params": [ { "name": "instrument_name", "value": "", "type": "query", "description": "Instrument name" }, { "name": "start_seq", "value": "", "type": "query", "description": "The sequence number of the first trade to be returned" }, { "name": "end_seq", "value": "", "type": "query", "description": "The sequence number of the last trade to be returned" }, { "name": "count", "value": "", "type": "query", "description": "Number of requested items, default - `10`, maximum - `1000`" }, { "name": "start_timestamp", "value": "", "type": "query", "description": "The earliest timestamp to return result from (milliseconds since the UNIX epoch). When param is provided trades are returned from the earliest" }, { "name": "end_timestamp", "value": "", "type": "query", "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" }, { "name": "historical", "value": "", "type": "query", "description": "Determines whether historical trade and order records should be retrieved.\n\n- `false` (default): Returns recent records: orders for 30 min, trades for 24h.\n- `true`: Fetches historical records, available after a short delay due to indexing. Recent data is not included.\n\n**πŸ“– Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)\n" }, { "name": "sorting", "value": "", "type": "query", "description": "Direction of results sorting (`default` value means no sorting, results will be returned in order in which they left the database)" }, { "name": "subaccount_id", "value": "", "type": "query", "description": "Id of a subaccount" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves the latest user trades that have occurred for a specific instrument. Returns trade details including price, amount, direction, timestamp, trade ID, and order ID.\n\nResults can be filtered by sequence number range or timestamp range. Use the `count` parameter to limit the number of trades returned, and `sorting` to control the order (ascending or descending by trade ID). Use `historical` to retrieve historical trade data.\n\nMain accounts may use the `subaccount_id` parameter to retrieve t" }, { "info": { "name": "GET /private/get_user_trades_by_instrument_and_time", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_user_trades_by_instrument_and_time", "params": [ { "name": "instrument_name", "value": "", "type": "query", "description": "Instrument name" }, { "name": "start_timestamp", "value": "", "type": "query", "description": "The earliest timestamp to return result from (milliseconds since the UNIX epoch). When param is provided trades are returned from the earliest" }, { "name": "end_timestamp", "value": "", "type": "query", "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" }, { "name": "count", "value": "", "type": "query", "description": "Number of requested items, default - `10`, maximum - `1000`" }, { "name": "sorting", "value": "", "type": "query", "description": "Direction of results sorting (`default` value means no sorting, results will be returned in order in which they left the database)" }, { "name": "historical", "value": "", "type": "query", "description": "Determines whether historical trade and order records should be retrieved.\n\n- `false` (default): Returns recent records: orders for 30 min, trades for 24h.\n- `true`: Fetches historical records, available after a short delay due to indexing. Recent data is not included.\n\n**πŸ“– Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)\n" }, { "name": "subaccount_id", "value": "", "type": "query", "description": "Id of a subaccount" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves the latest user trades that have occurred for a specific instrument within a specified time range. Returns trade details including price, amount, direction, timestamp, trade ID, and order ID.\n\nUse the `count` parameter to limit the number of trades returned, and `sorting` to control the order (ascending or descending by trade ID). Use `historical` to retrieve historical trade data. This method is useful for analyzing trading activity over specific time periods.\n\nMain accounts may use t" }, { "info": { "name": "GET /private/get_user_trades_by_currency", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_user_trades_by_currency", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "kind", "value": "", "type": "query", "description": "Instrument kind, `\"combo\"` for any combo or `\"any\"` for all. If not provided instruments of all kinds are considered" }, { "name": "start_id", "value": "", "type": "query", "description": "The ID of the first trade to be returned. Number for BTC trades, or hyphen name in ex. `\"ETH-15\"` # `\"ETH_USDC-16\"`" }, { "name": "end_id", "value": "", "type": "query", "description": "The ID of the last trade to be returned. Number for BTC trades, or hyphen name in ex. `\"ETH-15\"` # `\"ETH_USDC-16\"`" }, { "name": "count", "value": "", "type": "query", "description": "Number of requested items, default - `10`, maximum - `1000`" }, { "name": "start_timestamp", "value": "", "type": "query", "description": "The earliest timestamp to return result from (milliseconds since the UNIX epoch). When param is provided trades are returned from the earliest" }, { "name": "end_timestamp", "value": "", "type": "query", "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" }, { "name": "sorting", "value": "", "type": "query", "description": "Direction of results sorting (`default` value means no sorting, results will be returned in order in which they left the database)" }, { "name": "historical", "value": "", "type": "query", "description": "Determines whether historical trade and order records should be retrieved.\n\n- `false` (default): Returns recent records: orders for 30 min, trades for 24h.\n- `true`: Fetches historical records, available after a short delay due to indexing. Recent data is not included.\n\n**πŸ“– Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)\n" }, { "name": "subaccount_id", "value": "", "type": "query", "description": "The user id for the subaccount" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves the latest user trades that have occurred for instruments in a specific currency. Returns trade details including price, amount, direction, timestamp, trade ID, and order ID for all instruments in the currency.\n\nResults can be filtered by instrument kind, trade ID range, or timestamp range. Use the `count` parameter to limit the number of trades returned, and `sorting` to control the order. To retrieve trades for a specific subaccount, use the `subaccount_id` parameter. Use `historical" }, { "info": { "name": "GET /private/get_user_trades_by_currency_and_time", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_user_trades_by_currency_and_time", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "kind", "value": "", "type": "query", "description": "Instrument kind, `\"combo\"` for any combo or `\"any\"` for all. If not provided instruments of all kinds are considered" }, { "name": "start_timestamp", "value": "", "type": "query", "description": "The earliest timestamp to return result from (milliseconds since the UNIX epoch). When param is provided trades are returned from the earliest" }, { "name": "end_timestamp", "value": "", "type": "query", "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" }, { "name": "count", "value": "", "type": "query", "description": "Number of requested items, default - `10`, maximum - `1000`" }, { "name": "sorting", "value": "", "type": "query", "description": "Direction of results sorting (`default` value means no sorting, results will be returned in order in which they left the database)" }, { "name": "historical", "value": "", "type": "query", "description": "Determines whether historical trade and order records should be retrieved.\n\n- `false` (default): Returns recent records: orders for 30 min, trades for 24h.\n- `true`: Fetches historical records, available after a short delay due to indexing. Recent data is not included.\n\n**πŸ“– Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)\n" }, { "name": "subaccount_id", "value": "", "type": "query", "description": "Id of a subaccount" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves the latest user trades that have occurred for instruments in a specific currency within a specified time range. Returns trade details including price, amount, direction, timestamp, trade ID, and order ID for all instruments in the currency.\n\nResults can be filtered by instrument kind. Use the `count` parameter to limit the number of trades returned, and `sorting` to control the order. Use `historical` to retrieve historical trade data. This method is useful for analyzing trading activi" }, { "info": { "name": "GET /private/get_user_trades_by_order", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_user_trades_by_order", "params": [ { "name": "order_id", "value": "", "type": "query", "description": "The order id" }, { "name": "sorting", "value": "", "type": "query", "description": "Direction of results sorting (`default` value means no sorting, results will be returned in order in which they left the database)" }, { "name": "historical", "value": "", "type": "query", "description": "Determines whether historical trade and order records should be retrieved.\n\n- `false` (default): Returns recent records: orders for 30 min, trades for 24h.\n- `true`: Fetches historical records, available after a short delay due to indexing. Recent data is not included.\n\n**πŸ“– Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)\n" }, { "name": "subaccount_id", "value": "", "type": "query", "description": "Id of a subaccount" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Retrieves all trades that were executed from a specific order. When an order is filled, it may result in multiple trades (partial fills). This method returns all trades associated with a given order ID.\n\nResults can be sorted in ascending or descending order by trade ID. Use `historical` to retrieve historical trade data. This is useful for tracking how an order was filled and analyzing execution quality.\n\nMain accounts may use the `subaccount_id` parameter to retrieve trade data for a specific " }, { "info": { "name": "GET /private/cancel_all", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/cancel_all", "params": [ { "name": "detailed", "value": "", "type": "query", "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" }, { "name": "freeze_quotes", "value": "", "type": "query", "description": "Whether or not to reject incoming quotes for 1 second after cancelling (`false` by default). Related to `private/mass_quote` request." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Cancels all open orders and trigger orders for the authenticated account across all currencies and instrument kinds. This is a bulk cancellation operation useful for quickly clearing all active orders.\n\nUse the `detailed` parameter to receive a list of all cancelled orders. The `freeze_quotes` parameter can be used to freeze quotes instead of cancelling them.\n\n**Note:** This operation cannot be undone. All open orders will be permanently cancelled.\n\n**Scope:** `trade:read_write`\n\n[Try in API con" }, { "info": { "name": "GET /private/cancel_all_by_instrument", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/cancel_all_by_instrument", "params": [ { "name": "instrument_name", "value": "", "type": "query", "description": "Instrument name" }, { "name": "type", "value": "", "type": "query", "description": "Order type - `limit`, `stop`, `take`, `trigger_all` or `all`, default - `all`" }, { "name": "detailed", "value": "", "type": "query", "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" }, { "name": "include_combos", "value": "", "type": "query", "description": "When set to `true` orders in combo instruments affecting a given position will also be cancelled. Default: `false`" }, { "name": "freeze_quotes", "value": "", "type": "query", "description": "Whether or not to reject incoming quotes for 1 second after cancelling (`false` by default). Related to `private/mass_quote` request." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Cancels all open orders for a specific instrument. This is useful for quickly clearing all orders for a single instrument.\n\nOrders can be optionally filtered by order type (limit, market, stop, etc.). Use the `detailed` parameter to receive a list of all cancelled orders. The `include_combos` parameter can be used to include combo orders in the cancellation.\n\n**Scope:** `trade:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_all_by_instrument)\n\n" }, { "info": { "name": "GET /private/cancel_all_by_currency", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/cancel_all_by_currency", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "kind", "value": "", "type": "query", "description": "Instrument kind, `\"combo\"` for any combo or `\"any\"` for all. If not provided instruments of all kinds are considered" }, { "name": "type", "value": "", "type": "query", "description": "Order type - `limit`, `stop`, `take`, `trigger_all` or `all`, default - `all`" }, { "name": "detailed", "value": "", "type": "query", "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" }, { "name": "freeze_quotes", "value": "", "type": "query", "description": "Whether or not to reject incoming quotes for 1 second after cancelling (`false` by default). Related to `private/mass_quote` request." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Cancels all open orders for a specific currency. This is useful for quickly clearing all orders across multiple instruments in a currency.\n\nOrders can be optionally filtered by instrument kind (future, option, etc.) and/or order type (limit, market, stop, etc.). Use the `detailed` parameter to receive a list of all cancelled orders.\n\n**Scope:** `trade:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_all_by_currency)\n\n" }, { "info": { "name": "GET /private/cancel_all_by_currency_pair", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/cancel_all_by_currency_pair", "params": [ { "name": "currency_pair", "value": "", "type": "query", "description": "The currency pair symbol" }, { "name": "kind", "value": "", "type": "query", "description": "Instrument kind, `\"combo\"` for any combo or `\"any\"` for all. If not provided instruments of all kinds are considered" }, { "name": "type", "value": "", "type": "query", "description": "Order type - `limit`, `stop`, `take`, `trigger_all` or `all`, default - `all`" }, { "name": "detailed", "value": "", "type": "query", "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" }, { "name": "freeze_quotes", "value": "", "type": "query", "description": "Whether or not to reject incoming quotes for 1 second after cancelling (`false` by default). Related to `private/mass_quote` request." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Cancels all open orders for a specific currency pair. This is useful for quickly clearing all orders across instruments in a currency pair.\n\nOrders can be optionally filtered by instrument kind (future, option, etc.) and/or order type (limit, market, stop, etc.). Use the `detailed` parameter to receive a list of all cancelled orders.\n\n**Scope:** `trade:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_all_by_currency_pair)\n\n" }, { "info": { "name": "GET /private/cancel_all_by_kind_or_type", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/cancel_all_by_kind_or_type", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol, list of currency symbols or `\"any\"` for all" }, { "name": "kind", "value": "", "type": "query", "description": "Instrument kind, `\"combo\"` for any combo or `\"any\"` for all. If not provided instruments of all kinds are considered" }, { "name": "type", "value": "", "type": "query", "description": "Order type - `limit`, `stop`, `take`, `trigger_all` or `all`, default - `all`" }, { "name": "detailed", "value": "", "type": "query", "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" }, { "name": "freeze_quotes", "value": "", "type": "query", "description": "Whether or not to reject incoming quotes for 1 second after cancelling (`false` by default). Related to `private/mass_quote` request." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Cancels all open orders in one or more currencies, optionally filtered by instrument kind and/or order type. This provides flexible bulk cancellation across multiple currencies.\n\nSpecify one or more currencies, and optionally filter by instrument kind (future, option, etc.) and/or order type (limit, market, stop, etc.). Use the `detailed` parameter to receive a list of all cancelled orders.\n\n**Scope:** `trade:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivat" }, { "info": { "name": "GET /private/cancel_by_label", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/cancel_by_label", "params": [ { "name": "label", "value": "", "type": "query", "description": "user defined label for the order (maximum 64 characters)" }, { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Cancels all orders (including trigger orders) that have a specific label. This is useful for managing groups of related orders that share the same label.\n\nOrders can be cancelled across all currencies or filtered to a specific currency. When cancelling by currency, the currency queue is used for processing.\n\n**Rate Limits:** When called without the `currency` parameter, this method is subject to `cancel_all` rate limits. Different rate limit values may apply for per-currency cancels versus calls" }, { "info": { "name": "GET /private/cancel_quotes", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/cancel_quotes", "params": [ { "name": "detailed", "value": "", "type": "query", "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" }, { "name": "freeze_quotes", "value": "", "type": "query", "description": "Whether or not to reject incoming quotes for 1 second after cancelling (`false` by default). Related to `private/mass_quote` request." }, { "name": "cancel_type", "value": "", "type": "query", "description": "Type of cancel criteria." }, { "name": "min_delta", "value": "", "type": "query", "description": "Min delta to cancel by delta (for `cancel_type`: `delta`)." }, { "name": "max_delta", "value": "", "type": "query", "description": "Max delta to cancel by delta (for `cancel_type`: `delta`)." }, { "name": "quote_set_id", "value": "", "type": "query", "description": "Unique identifier for the Quote set." }, { "name": "instrument_name", "value": "", "type": "query", "description": "Instrument name." }, { "name": "kind", "value": "", "type": "query", "description": "Instrument kind, `\"combo\"` for any combo or `\"any\"` for all. If not provided instruments of all kinds are considered" }, { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "currency_pair", "value": "", "type": "query", "description": "The currency pair symbol" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Cancels quotes (mass quote orders) based on various criteria. This method provides flexible options for cancelling quotes:\n\n- `delta`: Cancels quotes within a delta range defined by `min_delta` and `max_delta`\n- `quote_set_id`: Cancels quotes by a specific Quote Set identifier\n- `instrument`: Cancels all quotes associated with a particular instrument\n- `kind`: Cancels all quotes for a certain instrument kind\n- `currency`: Cancels all quotes in a specified currency\n- `currency_pair`: Cancels all " }, { "info": { "name": "GET /private/cancel", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/cancel", "params": [ { "name": "order_id", "value": "", "type": "query", "description": "The order id" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Cancels a specific order identified by its order ID. The order must be open (not yet filled or cancelled) to be cancelled successfully.\n\nOnce cancelled, the order is removed from the order book and cannot be restored. Any unfilled portion of the order will be cancelled.\n\n**Scope:** `trade:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel)\n\n" }, { "info": { "name": "GET /private/buy", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/buy", "params": [ { "name": "instrument_name", "value": "", "type": "query", "description": "Instrument name" }, { "name": "amount", "value": "", "type": "query", "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", "value": "", "type": "query", "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": "type", "value": "", "type": "query", "description": "The order type, default: `\"limit\"`" }, { "name": "label", "value": "", "type": "query", "description": "user defined label for the order (maximum 64 characters)" }, { "name": "price", "value": "", "type": "query", "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%

" }, { "name": "time_in_force", "value": "", "type": "query", "description": "

Specifies how long the order remains in effect. Default `\"good_til_cancelled\"`

" }, { "name": "display_amount", "value": "", "type": "query", "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." }, { "name": "post_only", "value": "", "type": "query", "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.

Only valid in combination with time_in_force=`\"good_til_cancelled\"`

" }, { "name": "reject_post_only", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "If `true`, the order is considered reduce-only which is intended to only reduce a current position" }, { "name": "trigger_price", "value": "", "type": "query", "description": "Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)" }, { "name": "trigger_offset", "value": "", "type": "query", "description": "The maximum deviation from the price peak beyond which the order will be triggered" }, { "name": "trigger", "value": "", "type": "query", "description": "Defines the trigger type. Required for `\"Stop-Loss\"`, `\"Take-Profit\"` and `\"Trailing\"` trigger orders" }, { "name": "advanced", "value": "", "type": "query", "description": "Advanced option order type. (Only for options. Advanced USD orders are not supported for linear options.)" }, { "name": "mmp", "value": "", "type": "query", "description": "Order MMP flag, only for order_type 'limit'" }, { "name": "valid_until", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "

The type of the linked order.

" }, { "name": "trigger_fill_condition", "value": "", "type": "query", "description": "

The fill condition of the linked order (Only for linked order types), default: `first_hit`.

" }, { "name": "otoco_config", "value": "", "type": "query", "description": "List of orders to create or cancel when this order is filled." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Places a buy order for an instrument. Supports various order types including limit, market, stop, and advanced order types (stop-limit, take-profit, take-profit-limit, trailing-stop, etc.).\n\nYou can specify order parameters such as price, quantity, time-in-force, post-only, reduce-only, and trigger conditions. Orders can be labeled for easier management and tracking.\n\n**πŸ“– Related Article:** [Order Management Best Practices](https://docs.deribit.com/articles/order-management-best-practices)\n\n**S" }, { "info": { "name": "GET /private/sell", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/sell", "params": [ { "name": "instrument_name", "value": "", "type": "query", "description": "Instrument name" }, { "name": "amount", "value": "", "type": "query", "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", "value": "", "type": "query", "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": "type", "value": "", "type": "query", "description": "The order type, default: `\"limit\"`" }, { "name": "label", "value": "", "type": "query", "description": "user defined label for the order (maximum 64 characters)" }, { "name": "price", "value": "", "type": "query", "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%

" }, { "name": "time_in_force", "value": "", "type": "query", "description": "

Specifies how long the order remains in effect. Default `\"good_til_cancelled\"`

" }, { "name": "display_amount", "value": "", "type": "query", "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." }, { "name": "post_only", "value": "", "type": "query", "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\"`

" }, { "name": "reject_post_only", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "If `true`, the order is considered reduce-only which is intended to only reduce a current position" }, { "name": "trigger_price", "value": "", "type": "query", "description": "Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)" }, { "name": "trigger_offset", "value": "", "type": "query", "description": "The maximum deviation from the price peak beyond which the order will be triggered" }, { "name": "trigger", "value": "", "type": "query", "description": "Defines the trigger type. Required for `\"Stop-Loss\"`, `\"Take-Profit\"` and `\"Trailing\"` trigger orders" }, { "name": "advanced", "value": "", "type": "query", "description": "Advanced option order type. (Only for options. Advanced USD orders are not supported for linear options.)" }, { "name": "mmp", "value": "", "type": "query", "description": "Order MMP flag, only for order_type 'limit'" }, { "name": "valid_until", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "

The type of the linked order.

" }, { "name": "trigger_fill_condition", "value": "", "type": "query", "description": "

The fill condition of the linked order (Only for linked order types), default: `first_hit`.

" }, { "name": "otoco_config", "value": "", "type": "query", "description": "List of orders to create or cancel when this order is filled." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Places a sell order for an instrument. Supports various order types including limit, market, stop, and advanced order types (stop-limit, take-profit, take-profit-limit, trailing-stop, etc.).\n\nYou can specify order parameters such as price, quantity, time-in-force, post-only, reduce-only, and trigger conditions. Orders can be labeled for easier management and tracking. Market Maker Protection (MMP) can be enabled to prevent excessive quoting.\n\n**πŸ“– Related Article:** [Order Management Best Practi" }, { "info": { "name": "GET /private/edit", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/edit", "params": [ { "name": "order_id", "value": "", "type": "query", "description": "The order id" }, { "name": "amount", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "If `true`, the order is considered reduce-only which is intended to only reduce a current position" }, { "name": "reject_post_only", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)" }, { "name": "trigger_offset", "value": "", "type": "query", "description": "The maximum deviation from the price peak beyond which the order will be triggered" }, { "name": "mmp", "value": "", "type": "query", "description": "Order MMP flag, only for order_type 'limit'" }, { "name": "valid_until", "value": "", "type": "query", "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", "value": "", "type": "query", "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." } ], "body": { "type": "json", "data": "{}" } }, "docs": "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:** `trad" }, { "info": { "name": "GET /private/edit_by_label", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/edit_by_label", "params": [ { "name": "label", "value": "", "type": "query", "description": "user defined label for the order (maximum 64 characters)" }, { "name": "instrument_name", "value": "", "type": "query", "description": "Instrument name" }, { "name": "amount", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "If `true`, the order is considered reduce-only which is intended to only reduce a current position" }, { "name": "reject_post_only", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)" }, { "name": "mmp", "value": "", "type": "query", "description": "Order MMP flag, only for order_type 'limit'" }, { "name": "valid_until", "value": "", "type": "query", "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." } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/close_position", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/close_position", "params": [ { "name": "instrument_name", "value": "", "type": "query", "description": "Instrument name" }, { "name": "type", "value": "", "type": "query", "description": "The order type" }, { "name": "price", "value": "", "type": "query", "description": "Optional price for limit order." } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/get_margins", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_margins", "params": [ { "name": "instrument_name", "value": "", "type": "query", "description": "Instrument name" }, { "name": "amount", "value": "", "type": "query", "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." }, { "name": "price", "value": "", "type": "query", "description": "Price" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/get_mmp_config", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_mmp_config", "params": [ { "name": "index_name", "value": "", "type": "query", "description": "Index identifier of derivative instrument on the platform; skipping this parameter will return all configurations" }, { "name": "mmp_group", "value": "", "type": "query", "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", "value": "", "type": "query", "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" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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` " }, { "info": { "name": "GET /private/get_mmp_status", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_mmp_status", "params": [ { "name": "index_name", "value": "", "type": "query", "description": "Index identifier of derivative instrument on the platform; skipping this parameter will return all configurations" }, { "name": "mmp_group", "value": "", "type": "query", "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", "value": "", "type": "query", "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" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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` paramet" }, { "info": { "name": "GET /private/set_mmp_config", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/set_mmp_config", "params": [ { "name": "index_name", "value": "", "type": "query", "description": "Index identifier of derivative instrument on the platform" }, { "name": "interval", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "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`." } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/reset_mmp", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/reset_mmp", "params": [ { "name": "index_name", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "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" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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 re" }, { "info": { "name": "GET /private/mass_quote", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/mass_quote", "params": [ { "name": "wait_for_response", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "Identifier of a mass quote message. Can be used to match trades to requests. We recommend using an incrementing counter." }, { "name": "mmp_group", "value": "", "type": "query", "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", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "List of quotes." } ], "body": { "type": "json", "data": "{}" } }, "docs": "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 " }, { "info": { "name": "GET /private/move_positions", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/move_positions", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "source_uid", "value": "", "type": "query", "description": "Id of source subaccount. Can be found in `My Account >> Subaccounts` tab" }, { "name": "target_uid", "value": "", "type": "query", "description": "Id of target subaccount. Can be found in `My Account >> Subaccounts` tab" }, { "name": "trades", "value": "", "type": "query", "description": "List of trades for position move" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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\nF" }, { "info": { "name": "GET /private/get_deposits", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_deposits", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "count", "value": "", "type": "query", "description": "Number of requested items, default - `10`, maximum - `1000`" }, { "name": "offset", "value": "", "type": "query", "description": "The offset for pagination, default - `0`" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/create_deposit_address", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/create_deposit_address", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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.der" }, { "info": { "name": "GET /private/get_current_deposit_address", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_current_deposit_address", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/withdraw", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/withdraw", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "address", "value": "", "type": "query", "description": "Address in currency format, it must be in address book" }, { "name": "amount", "value": "", "type": "query", "description": "Amount of funds to be withdrawn" }, { "name": "priority", "value": "", "type": "query", "description": "Withdrawal priority, optional for BTC, default: `high`" }, { "name": "nonce", "value": "", "type": "query", "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." } ], "body": { "type": "json", "data": "{}" } }, "docs": "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 " }, { "info": { "name": "GET /private/cancel_withdrawal", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/cancel_withdrawal", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "id", "value": "", "type": "query", "description": "The withdrawal id" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/get_withdrawals", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_withdrawals", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "count", "value": "", "type": "query", "description": "Number of requested items, default - `10`, maximum - `1000`" }, { "name": "offset", "value": "", "type": "query", "description": "The offset for pagination, default - `0`" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/get_address_book", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_address_book", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "type", "value": "", "type": "query", "description": "Address book type" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/add_to_address_book", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/add_to_address_book", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "type", "value": "", "type": "query", "description": "Address book type" }, { "name": "address", "value": "", "type": "query", "description": "Address in currency format" }, { "name": "label", "value": "", "type": "query", "description": "Label of the address book entry" }, { "name": "beneficiary_vasp_name", "value": "", "type": "query", "description": "Name of beneficiary VASP" }, { "name": "beneficiary_vasp_did", "value": "", "type": "query", "description": "DID of beneficiary VASP" }, { "name": "beneficiary_vasp_website", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "First name of beneficiary (if beneficiary is a person)" }, { "name": "beneficiary_last_name", "value": "", "type": "query", "description": "First name of beneficiary (if beneficiary is a person)" }, { "name": "beneficiary_company_name", "value": "", "type": "query", "description": "Beneficiary company name (if beneficiary is a company)" }, { "name": "beneficiary_address", "value": "", "type": "query", "description": "Geographical address of the beneficiary" }, { "name": "agreed", "value": "", "type": "query", "description": "Indicates that the user agreed to shared provided information with 3rd parties" }, { "name": "personal", "value": "", "type": "query", "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", "value": "", "type": "query", "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." } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/remove_from_address_book", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/remove_from_address_book", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "type", "value": "", "type": "query", "description": "Address book type" }, { "name": "address", "value": "", "type": "query", "description": "Address in currency format, it must be in address book" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/update_in_address_book", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/update_in_address_book", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "type", "value": "", "type": "query", "description": "Address book type" }, { "name": "address", "value": "", "type": "query", "description": "Address in currency format, it must be in address book" }, { "name": "beneficiary_vasp_name", "value": "", "type": "query", "description": "Name of beneficiary VASP" }, { "name": "beneficiary_vasp_did", "value": "", "type": "query", "description": "DID of beneficiary VASP" }, { "name": "beneficiary_vasp_website", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "First name of beneficiary (if beneficiary is a person)" }, { "name": "beneficiary_last_name", "value": "", "type": "query", "description": "First name of beneficiary (if beneficiary is a person)" }, { "name": "beneficiary_company_name", "value": "", "type": "query", "description": "Beneficiary company name (if beneficiary is a company)" }, { "name": "beneficiary_address", "value": "", "type": "query", "description": "Geographical address of the beneficiary" }, { "name": "agreed", "value": "", "type": "query", "description": "Indicates that the user agreed to shared provided information with 3rd parties" }, { "name": "personal", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "Label of the address book entry" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/save_address_beneficiary", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/save_address_beneficiary", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "address", "value": "", "type": "query", "description": "Address in currency format" }, { "name": "tag", "value": "", "type": "query", "description": "Tag for XRP addresses" }, { "name": "agreed", "value": "", "type": "query", "description": "Indicates that the user agreed to shared provided information with 3rd parties" }, { "name": "personal", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "Indicates if the address belongs to an unhosted wallet" }, { "name": "beneficiary_vasp_name", "value": "", "type": "query", "description": "Name of beneficiary VASP" }, { "name": "beneficiary_vasp_did", "value": "", "type": "query", "description": "DID of beneficiary VASP" }, { "name": "beneficiary_vasp_website", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "First name of beneficiary (if beneficiary is a person)" }, { "name": "beneficiary_last_name", "value": "", "type": "query", "description": "First name of beneficiary (if beneficiary is a person)" }, { "name": "beneficiary_company_name", "value": "", "type": "query", "description": "Beneficiary company name (if beneficiary is a company)" }, { "name": "beneficiary_address", "value": "", "type": "query", "description": "Geographical address of the beneficiary" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/get_address_beneficiary", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_address_beneficiary", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "address", "value": "", "type": "query", "description": "Address in currency format" }, { "name": "tag", "value": "", "type": "query", "description": "Tag for XRP addresses" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/delete_address_beneficiary", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/delete_address_beneficiary", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "address", "value": "", "type": "query", "description": "Address in currency format" }, { "name": "tag", "value": "", "type": "query", "description": "Tag for XRP addresses" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/list_address_beneficiaries", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/list_address_beneficiaries", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "address", "value": "", "type": "query", "description": "Address in currency format" }, { "name": "tag", "value": "", "type": "query", "description": "Tag for XRP addresses" }, { "name": "created_before", "value": "", "type": "query", "description": "Filter by creation timestamp (before)" }, { "name": "created_after", "value": "", "type": "query", "description": "Filter by creation timestamp (after)" }, { "name": "updated_before", "value": "", "type": "query", "description": "Filter by update timestamp (before)" }, { "name": "updated_after", "value": "", "type": "query", "description": "Filter by update timestamp (after)" }, { "name": "personal", "value": "", "type": "query", "description": "Filter by personal wallet flag" }, { "name": "unhosted", "value": "", "type": "query", "description": "Filter by unhosted wallet flag" }, { "name": "beneficiary_vasp_name", "value": "", "type": "query", "description": "Filter by beneficiary VASP name" }, { "name": "beneficiary_vasp_did", "value": "", "type": "query", "description": "Filter by beneficiary VASP DID" }, { "name": "beneficiary_vasp_website", "value": "", "type": "query", "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", "value": "", "type": "query", "description": "Maximum number of results to return" }, { "name": "continuation", "value": "", "type": "query", "description": "Continuation token for pagination" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/submit_transfer_to_subaccount", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/submit_transfer_to_subaccount", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "amount", "value": "", "type": "query", "description": "Amount of funds to be transferred" }, { "name": "destination", "value": "", "type": "query", "description": "Id of destination subaccount. Can be found in `My Account >> Subaccounts` tab" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/submit_transfer_between_subaccounts", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/submit_transfer_between_subaccounts", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "amount", "value": "", "type": "query", "description": "Amount of funds to be transferred" }, { "name": "destination", "value": "", "type": "query", "description": "Id of destination subaccount. Can be found in `My Account >> Subaccounts` tab" }, { "name": "source", "value": "", "type": "query", "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." }, { "name": "nonce", "value": "", "type": "query", "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." } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/submit_transfer_to_user", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/submit_transfer_to_user", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "amount", "value": "", "type": "query", "description": "Amount of funds to be transferred" }, { "name": "destination", "value": "", "type": "query", "description": "Destination wallet's address taken from address book" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/get_transfers", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_transfers", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "count", "value": "", "type": "query", "description": "Number of requested items, default - `10`, maximum - `1000`" }, { "name": "offset", "value": "", "type": "query", "description": "The offset for pagination, default - `0`" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/cancel_transfer_by_id", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/cancel_transfer_by_id", "params": [ { "name": "currency", "value": "", "type": "query", "description": "The currency symbol" }, { "name": "id", "value": "", "type": "query", "description": "Id of transfer" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/get_reward_eligibility", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/get_reward_eligibility", "body": { "type": "json", "data": "{}" } }, "docs": "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" }, { "info": { "name": "GET /private/set_clearance_originator", "type": "http" }, "http": { "method": "GET", "url": "https://test.deribit.com/api/v2/private/set_clearance_originator", "params": [ { "name": "deposit_id", "value": "", "type": "query", "description": "Id of the deposit" }, { "name": "originator", "value": "", "type": "query", "description": "Information about the originator of the deposit" } ], "body": { "type": "json", "data": "{}" } }, "docs": "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" } ] } ], "bundled": true }