{
"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:
Execution instruction of the quote. Default - `any_part_of`
The order price in base currency (Only for limit and stop_limit orders)
When adding an order with advanced=usd, the field price should be the option price value in USD.
When adding an order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
" }, { "name": "time_in_force", "value": "", "type": "query", "description": "Specifies how long the order remains in effect. Default `\"good_til_cancelled\"`
If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below the spread.
Only valid in combination with time_in_force=`\"good_til_cancelled\"`
" }, { "name": "reject_post_only", "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.
The fill condition of the linked order (Only for linked order types), default: `first_hit`.
The order price in base currency (Only for limit and stop_limit orders)
When adding an order with advanced=usd, the field price should be the option price value in USD.
When adding an order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
" }, { "name": "time_in_force", "value": "", "type": "query", "description": "Specifies how long the order remains in effect. Default `\"good_til_cancelled\"`
If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just above the spread.
Only valid in combination with time_in_force=`\"good_til_cancelled\"`
" }, { "name": "reject_post_only", "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.
The fill condition of the linked order (Only for linked order types), default: `first_hit`.
The order price in base currency.
When editing an option order with advanced=usd, the field price should be the option price value in USD.
When editing an option order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
" }, { "name": "post_only", "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 }