How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Deribit Account Management API

The Account Management API from Deribit — 37 operation(s) for account management.

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

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

This API exposes 37 operations across 37 paths, and defines 103 schemas. It is described by OpenAPI 3.0.0, at version 2.1.1.

Requests are made against a single base URL, https://test.deribit.com/api/v2.

37 operations 37 paths 103 schemas 37 GET

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.0
API Version
2.1.1
Base URL
https://www.deribit.com/api/v2
Resource Areas
1

Paths & Operations 37

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

Account Management 37
GET
/private/get_positions
Retrieves all open positions for the authenticated account. Returns position details including size, average entry price, mark price, unrealized P&L, initial margin, maintenance margin, and other pos…
3 params body → 200400
GET
/private/get_position
Retrieves the open position for a specific instrument. Returns detailed position information including size, average entry price, mark price, unrealized P&L, initial margin, maintenance margin, and o…
1 param body → 200400
GET
/private/get_account_summary
Retrieves the account summary for a specific currency. The summary includes balance, equity, available funds, initial margin, maintenance margin, and other margin-related information. To retrieve the…
3 params body → 200
GET
/private/get_account_summaries
Retrieves a per-currency list of account summaries for the authenticated user. Each summary includes balance, equity, available funds, and margin information for each currency. To retrieve summaries…
2 params body → 200
GET
/private/pme/simulate
Calculates the Extended Risk Matrix (ERM) and detailed margin information for Portfolio Margin accounts. The ERM provides a comprehensive view of portfolio risk across different scenarios and market…
3 params body → 200
GET
/private/simulate_portfolio
Calculates portfolio margin requirements and risk metrics for simulated positions or the current portfolio. This method helps you understand margin requirements before opening new positions or assess…
3 params body → 200
GET
/private/get_access_log
Retrieves a log of API access attempts and authentication events for the authenticated account. The log includes information such as IP addresses, timestamps, API methods called, and authentication s…
2 params body → 200
GET
/private/get_affiliate_program_info
Retrieves information about the affiliate program status for the authenticated account. The response includes the number of referred affiliates, total payouts earned, pending payouts, and the unique…
body → 200
GET
/private/enable_affiliate_program
Enables the affiliate program for the authenticated account. Once enabled, you can earn commissions by referring new users to Deribit. After enabling, you will receive a unique affiliate link that ca…
body → 200
GET
/private/change_margin_model
Changes the margin model for the authenticated account or a specified subaccount. Margin models determine how margin requirements are calculated (e.g., Standard Margin vs. Portfolio Margin). Changing…
3 params body → 200
GET
/private/get_user_locks
Retrieves information about any account locks or restrictions currently active on the authenticated account. Account locks may be applied for security reasons, compliance requirements, or administrat…
body → 200
GET
/private/set_self_trading_config
Configures self-trading prevention settings for the account. Self-trading occurs when orders from the same account (or related subaccounts) match against each other. You can configure whether self-tr…
3 params body → 200
GET
/private/set_disabled_trading_products
Configures which trading products (instruments, currencies, or instrument types) are disabled for a subaccount. Disabled products cannot be traded by the subaccount, providing a way to restrict tradi…
2 params → 200
GET
/private/disable_api_key
Disables an API key, preventing it from being used to authenticate API requests. The key remains in your account but cannot be used until it is re-enabled. This is useful for temporarily suspending a…
1 param body → 200
GET
/private/enable_api_key
Enables a previously disabled API key, restoring its ability to authenticate API requests. The API key can be used immediately after being enabled. 📖 Related Article: [Creating new API key on Deribit…
1 param body → 200
GET
/private/create_api_key
Creates a new API key with the specified scope and permissions. API keys are used for programmatic access to the Deribit API and can be restricted to specific operations and IP addresses. The respons…
4 params body → 200
GET
/private/change_scope_in_api_key
Updates the scope (permissions) for an existing API key. The scope determines which operations the API key can perform (e.g., read-only, read-write, trading, etc.). When the scope is changed, the API…
2 params body → 200
GET
/private/change_api_key_name
Updates the display name for an API key. The name is used for identification purposes in the API key list and does not affect the key's functionality or permissions. 📖 Related Article: [Creating new…
2 params body → 200
GET
/private/list_api_keys
Retrieves a list of all API keys associated with the authenticated account. The response includes key details such as ID, name, scope, creation date, last usage, and status (enabled/disabled), but do…
→ 200
GET
/private/reset_api_key
Generates a new secret key for an existing API key while keeping the same key ID and other properties. This is useful if the secret has been compromised or needs to be rotated for security purposes.…
1 param body → 200
GET
/private/remove_api_key
Permanently deletes an API key from your account. This operation cannot be undone. Once removed, the API key can no longer be used to authenticate requests, and all applications using this key will l…
1 param body → 200
GET
/private/edit_api_key
Updates properties of an existing API key. You can modify the key name, scope, enabled status, features, and IP whitelist. At least one parameter must be provided. Changes take effect immediately. If…
6 params body → 200
GET
/public/get_announcements
Retrieves platform announcements and important notices. Announcements include system updates, maintenance schedules, new features, policy changes, and other important information. Results are returne…
2 params body → 200
GET
/private/get_new_announcements
Retrieves only unread announcements for the authenticated account. Announcements are marked as read when you use the setannouncementasread method or view them through the web interface. This method i…
body → 200
GET
/private/set_announcement_as_read
Marks a specific announcement as read. Once marked as read, the announcement will no longer appear in the getnewannouncements response, though it will still be available through getannouncements. Thi…
1 param body → 200
GET
/private/get_email_language
Retrieves the currently configured language preference for email notifications. Returns the language code (e.g., en, ko, zh, ja, ru) that is used for all email communications sent to the account. Sco…
body → 200
GET
/private/create_subaccount
Creates a new subaccount under the authenticated main account. Subaccounts allow you to organize trading activities and manage risk separately from the main account. This method takes no parameters.…
body → 200
GET
/private/change_subaccount_name
Updates the display name (username) for a subaccount. The new name is used for identification purposes and does not affect the subaccount's functionality or access. Only the main account owner can ch…
2 params body → 200
GET
/private/set_email_language
Sets the preferred language for email notifications sent to the authenticated account. Supported languages include English (en), Korean (ko), Chinese (zh), Japanese (ja), and Russian (ru). All future…
1 param body → 200
GET
/private/set_email_for_subaccount
Assigns an email address to a subaccount. This email can be used for direct login to the subaccount and for receiving notifications. The email address owner will receive a confirmation email with a l…
2 params body → 200
GET
/private/toggle_subaccount_login
Enables or disables direct login access for a subaccount. When login is disabled, the subaccount cannot be accessed directly using email and password authentication, but can still be accessed through…
2 params body → 200
GET
/private/toggle_notifications_from_subaccount
Enables or disables email and other notifications for a subaccount. When notifications are disabled, the subaccount will not receive email alerts, trade confirmations, or other notification messages.…
2 params body → 200
GET
/private/get_subaccounts
Retrieves information about all subaccounts associated with the main account. Returns details such as subaccount IDs, names, and status. When called from a subaccount, the response includes limited d…
1 param body → 200401
GET
/private/get_subaccounts_details
Retrieves position details for all subaccounts for a specific currency. Returns positions aggregated across all subaccounts, including size, average entry price, mark price, and P&L information. Opti…
2 params body → 200401
GET
/private/remove_subaccount
Permanently removes a subaccount. The subaccount must be empty (no positions, no open orders, and zero balance) before it can be removed. This operation cannot be undone. All subaccount data will be…
1 param body → 200
GET
/private/get_transaction_log
Retrieves a detailed transaction log for the authenticated account. The log includes all account activities such as trades, deposits, withdrawals, transfers, fees, and other balance-affecting operati…
7 params body → 200
GET
/private/list_custody_accounts
Retrieves a list of all custody accounts associated with the authenticated account for a specific currency. Custody accounts are used for clients who require segregated custody of their assets. The r…
1 param body → 200

Schemas 103

The contract defines 103 schemas that model the data the API accepts and returns. The most detailed are order (52 properties), transaction_log (34 properties), position (23 properties), api_key (11 properties). Each schema is shown below with its type and property counts.

fee_balance
number
The account's fee balance (it can be used to pay for fees)
PrivateSimulatePortfolioResponse
object
3 properties 2 required
currency_amount
number
Amount of funds in given currency
trigger_offset
number
The maximum deviation from the price peak beyond which the order will be triggered (Only for trailing trigger orders)
api
boolean
true if created with API
trigger
string
Trigger type (only for trigger orders). Allowed values: "indexprice", "markprice", "lastprice".
kind_without_spot
string
Instrument kind: "future", "option", "futurecombo", "optioncombo" (spot is excluded as spot trades are settled immediately and have no open positions)
key_id
integer
Key identifier
PrivateGetAccessLogResponse
object
3 properties 2 required
api_key
object
11 properties 6 required
contracts
number
It represents the order size in contract units. (Optional, may be absent in historical data).
api_key_features
array
List of enabled advanced on-key features. Available options: - restrictedblocktrades : Limit the blocktrade read the scope of the API key to block trades that…
order_type
string
Order type: "limit", "market", "stoplimit", "stopmarket", "takelimit", "takemarket", "trailingstop"
reduce_only
boolean
Optional (not added for spot). 'true for reduce-only orders only'
access_log
object
7 properties 6 required
position_with_elp
additional_reserve
number
The account's balance reserved in other orders
fee_role
string
Fee role of the user: maker or taker. Can be different from trade role of the user when iceberg order was involved in matching.
trigger_reference_price
number
The price of the given trigger at the time when the order was placed (Only for trailing trigger orders)
display_amount
number
The actual display amount of iceberg order. Absent for other types of orders.
custody_account
object
Custody account
11 properties 3 required
position_direction
string
Direction: buy, sell or zero
PublicGetAnnouncementsResponse
object
3 properties 2 required
position
object
23 properties 14 required
filled_amount
number
Filled amount of the order. For perpetual and futures the filledamount is in USD units, for options - in units or corresponding cryptocurrency contracts, e.g.,…
is_secondary_oto
boolean
true if the order is an order that can be triggered by another order, otherwise not present.
PrivateCreateSubaccountResponse
object
3 properties 2 required
trade_id
string
Unique (per currency) trade identifier
cancel_reason
string
Enumerated reason behind cancel "userrequest", "autoliquidation", "cancelondisconnect", "riskmitigation", "pmeriskreduction" (portfolio margining risk reductio…
timestamp
integer
The timestamp (milliseconds since the Unix epoch)
currency_portfolio
object
10 properties 10 required
currency
string
Currency, i.e "BTC", "ETH", "USDC"
PrivateGetEmailLanguageResponse
object
3 properties 2 required
order
object
52 properties 12 required
amount
number
It represents the requested order size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base…
projected_initial_margin
number
Projected initial margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value…
user_id
integer
Unique user identifier
id
integer
Unique identifier
direction
string
Direction: buy, or sell
currency_with_any
string
Currency name or "any" if don't care
advanced
string
advanced type: "usd" or "implv" (Only for options; field is omitted if not applicable).
wallet_currency
string
Currency, i.e "BTC", "ETH", "USDC"
web
boolean
true if created via Deribit frontend (optional)
instrument_name
string
Unique instrument identifier
PrivateGetSubaccountsDetailsResponse
object
3 properties 2 required
PrivateGetTransactionLogResponse
object
3 properties 2 required
block_trade_order
boolean
true if order made from blocktrade trade, added only in that case.
delta_total
number
The sum of position deltas. DeltaTotal = Net Transaction Delta of options + BTC Position of Futures The DeltaTotal uses the Net Transaction Delta (or price adj…
GetlistCustodyAccounts200response
public_key
string
PEM encoded public key (Ed25519/RSA) used for asymmetric signatures (optional)
portfolio
object
1 property
original_order_type
string
Original order type. Optional field
api_key_name
string
Api key name that can be displayed in transaction log
api_limits
object
Returned object is described in [separate document](https://support.deribit.com/hc/en-us/articles/25944617523357-Rate-Limits).
upl
number
Session unrealized profit and loss
PrivateAccountSummariesResponse
object
3 properties 2 required
average_price
number
Average fill price of the order
usd
number
Option price in USD (Only if advanced="usd")
PrivateGetUserLocksResponse
object
3 properties 2 required
PrivateAccountResponse
object
3 properties 2 required
implv
number
Implied volatility in percent. (Only if advanced="implv")
transaction_log
object
34 properties 10 required
max_scope
array
Describes maximal access for tokens generated with given key. If scope is not provided, its value is set as none. 📖 Related Article: [Access Scope](https://doc…
PrivateGetPositionResponse
object
3 properties 2 required
PrivateGetPositionsResponse
object
3 properties 2 required
trigger_price
number
Trigger price (Only for future trigger orders)
ErrorResponse
object
Generic error response for broken references
2 properties 2 required
reject_post_only
boolean
true if order has rejectpostonly flag (field is present only when postonly is true)
PrivateGetSubaccountsResponse
object
3 properties 2 required
oco_ref
string
Unique reference that identifies a onecancelsothers (OCO) pair.
projected_delta_total
number
The sum of position deltas without positions that will expire during closest expiration
PrivateApiKeyResponse
object
3 properties 2 required
continuation_with_null
integer
Continuation token for pagination. NULL when no continuation.
api_key_default
boolean
Informs whether this api key is default (field is deprecated and will be removed in the future)
ErrorMessageResponse
object
4 properties 3 required
mobile
boolean
Optional field with value true added only when created with Mobile Application
PrivatePmeSimulateResponse
object
3 properties 2 required
order_id
string
Unique order identifier
PrivateGetAffiliateProgramInfoResponse
object
3 properties 2 required
trigger_fill_condition
string
The fill condition of the linked order (Only for linked order types), default: firsthit. "firsthit" - any execution of the primary order will fully cancel/plac…
client_secret
string
Client secret or MD5 fingerprint of public key used for authentication
username
string
System name or user defined subaccount alias
external_id
string
User ID in external systems
time_in_force
string
Order time in force: "goodtilcancelled", "goodtilday", "fillorkill" or "immediateorcancel"
projected_maintenance_margin
number
Projected maintenance margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's v…
api_key_enabled
boolean
Informs whether api key is enabled and can be used for authentication
PrivateChangeMarginModelResponse
object
3 properties 2 required
refresh_amount
number
The initial display amount of iceberg order. Iceberg order display amount will be refreshed to that value after match consuming actual display amount. Absent f…
kind
string
Instrument kind: "future", "option", "spot", "futurecombo", "optioncombo"
PublicListApiKeysResponse
object
3 properties 2 required
OkResponse
object
3 properties 2 required
client_id
string
Client identifier used for authentication
post_only
boolean
true for post-only orders only
estimated_liquidation_ratio
number
Estimated Liquidation Ratio is returned only for users without portfolio margining enabled. Multiplying it by future position's market price returns its estima…
label
string
User defined label (up to 64 characters)
role
string
Trade role of the user: maker or taker
custody_name
string
Custody name
rpl
number
Session realized profit and loss
commission
number
Commission paid so far (in base currency)
open_order_price
Price in base currency or "marketprice" in case of open trigger market orders
order_state
string
Order state: "open", "filled", "rejected", "cancelled", "untriggered"
pme_currency
string
The currency for which the Extended Risk Matrix will be calculated. Use CROSS for Cross Collateral simulation.
triggered
boolean
Whether the trigger order has been triggered

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

deribit-account-management-api-openapi.yml Raw ↑

Other APIs Deribit publishes across the network.

Deribit WebSocket API
Deribit FIX API
Deribit Authentication API
Deribit Block RFQ API
Deribit Block Trade API
Deribit Combo Books API
Deribit Mark Price API
Deribit Market Data API
Deribit Matching Engine API
Deribit Portfolio Management API
Deribit Private API
Deribit Public API
Where this information came from

This is an independent, third-party profile of Deribit Account Management API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.