openapi: 3.0.0
info:
title: Deribit Account Management Private API
version: 2.1.1
description: '
Private methods require authentication. All requests must include a valid OAuth2 token.
A token can be requested using the /public/auth method.
When using the websockets protocol, the token must be included as a parameter access_token in the message. When using REST (HTTP GET), the token may also be passed in the Authorization header.
'
servers:
- url: https://test.deribit.com/api/v2
tags:
- name: Private
description: 'Private methods require authentication. All requests must include a valid OAuth2 token.
A token can be requested using the /public/auth method.
When using the websockets protocol, the token must be included as a parameter access_token in the message. When using REST (HTTP GET), the token may also be passed in the Authorization header.
'
paths:
/private/get_positions:
get:
tags:
- Private
parameters:
- name: currency
in: query
schema:
$ref: '#/components/schemas/currency_with_any'
example: BTC
required: false
- name: kind
in: query
schema:
$ref: '#/components/schemas/kind_without_spot'
example: future
description: Kind filter on positions
required: false
- name: subaccount_id
in: query
schema:
type: integer
required: false
description: The user id for the subaccount
responses:
'200':
$ref: '#/components/responses/PrivateGetPositionsResponse'
'400':
$ref: '#/components/responses/ErrorMessageResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2236
method: private/get_positions
params:
currency: BTC
kind: future
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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.
Results can be filtered by currency and instrument kind (future, option, etc.). To retrieve positions for a specific subaccount, use the `subaccount_id` parameter.
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_positions)
'
x-mint:
metadata:
title: private/get_positions
og:title: private/get_positions
keywords:
- private/get_positions
- currency
- kind
- subaccount_id
- instrument_name
- average_price
- direction
- mark_price
- delta
- gamma
- vega
- theta
- index_price
- initial_margin
- maintenance_margin
- settlement_price
- total_profit_loss
- floating_profit_loss
- realized_profit_loss
- size
- size_currency
- average_price_usd
- floating_profit_loss_usd
- leverage
- realized_funding
- interest_value
- estimated_liquidation_price
- open_orders_margin
href: /api-reference/account-management/private-get_positions
/private/get_position:
get:
tags:
- Private
parameters:
- name: instrument_name
required: true
in: query
schema:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
responses:
'200':
$ref: '#/components/responses/PrivateGetPositionResponse'
'400':
$ref: '#/components/responses/ErrorMessageResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 404
method: private/get_position
params:
instrument_name: BTC-PERPETUAL
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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.
If no position exists for the specified instrument, the response will indicate a zero position.
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_position)
'
x-mint:
metadata:
title: private/get_position
og:title: private/get_position
keywords:
- private/get_position
- instrument_name
- kind
- average_price
- direction
- mark_price
- delta
- gamma
- vega
- theta
- index_price
- initial_margin
- maintenance_margin
- settlement_price
- total_profit_loss
- floating_profit_loss
- realized_profit_loss
- size
- size_currency
- average_price_usd
- floating_profit_loss_usd
- leverage
- realized_funding
- interest_value
- estimated_liquidation_price
- open_orders_margin
href: /api-reference/account-management/private-get_position
/private/get_account_summary:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/wallet_currency'
description: The currency symbol
- name: subaccount_id
in: query
schema:
type: integer
required: false
description: The user id for the subaccount
- in: query
name: extended
required: false
schema:
example: true
type: boolean
description: Include additional fields
responses:
'200':
$ref: '#/components/responses/PrivateAccountResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2515
method: private/get_account_summary
params:
currency: BTC
extended: true
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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 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.
**Scope:** `account:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_account_summary)
'
x-mint:
metadata:
title: private/get_account_summary
og:title: private/get_account_summary
keywords:
- private/get_account_summary
- currency
- subaccount_id
- extended
- total_pl
- session_rpl
- session_upl
- available_funds
- available_withdrawal_funds
- margin_balance
- balance
- spot_reserve
- additional_reserve
- fee_balance
- fee_group
- delta_total
- projected_delta_total
- deposit_address
- email
- equity
- futures_pl
- futures_session_rpl
- futures_session_upl
- initial_margin
- maintenance_margin
- estimated_liquidation_ratio
- system_name
- options_delta
- options_gamma
- options_pl
- options_session_rpl
- options_session_upl
- options_theta
- options_value
- options_vega
- options_gamma_map
- options_theta_map
- options_vega_map
- security_keys_enabled
- mmp_enabled
- projected_initial_margin
- projected_maintenance_margin
- username
- type
- login_enabled
- portfolio_margining_enabled
- cross_collateral_enabled
- margin_model
- total_equity_usd
- total_initial_margin_usd
- total_maintenance_margin_usd
- total_margin_balance_usd
- total_delta_total_usd
- interuser_transfers_enabled
- referrer_id
- limits
- creation_timestamp
- has_non_block_chain_equity
- self_trading_reject_mode
- self_trading_extended_to_subaccounts
- fees
- affiliate_promotion_fee
- trading_products_details
- receive_notifications
- is_direct_access_allowed
href: /api-reference/account-management/private-get_account_summary
/private/get_account_summaries:
get:
parameters:
- name: subaccount_id
in: query
schema:
type: integer
required: false
description: The user id for the subaccount
- in: query
name: extended
required: false
schema:
example: true
type: boolean
description: Include additional fields
responses:
'200':
$ref: '#/components/responses/PrivateAccountSummariesResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2515
method: private/get_account_summaries
params:
extended: true
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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 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.
**Scope:** `account:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_account_summaries)
'
x-mint:
metadata:
title: private/get_account_summaries
og:title: private/get_account_summaries
keywords:
- private/get_account_summaries
- subaccount_id
- extended
- system_name
- username
- type
- login_enabled
- email
- security_keys_enabled
- mmp_enabled
- interuser_transfers_enabled
- referrer_id
- creation_timestamp
- self_trading_reject_mode
- self_trading_extended_to_subaccounts
- block_rfq_self_match_prevention
- affiliate_promotion_fee
- trading_products_details
- receive_notifications
- summaries
- total_pl
- session_rpl
- session_upl
- available_funds
- available_withdrawal_funds
- margin_balance
- balance
- spot_reserve
- additional_reserve
- fee_balance
- fee_group
- currency
- delta_total
- projected_delta_total
- deposit_address
- equity
- futures_pl
- futures_session_rpl
- futures_session_upl
- initial_margin
- maintenance_margin
- estimated_liquidation_ratio
- options_delta
- options_gamma
- options_pl
- options_session_rpl
- options_session_upl
- options_theta
- options_value
- options_vega
- options_gamma_map
- options_theta_map
- options_vega_map
- projected_initial_margin
- projected_maintenance_margin
- portfolio_margining_enabled
- cross_collateral_enabled
- margin_model
- total_equity_usd
- total_initial_margin_usd
- total_maintenance_margin_usd
- total_margin_balance_usd
- total_delta_total_usd
- limits
- has_non_block_chain_equity
- fees
href: /api-reference/account-management/private-get_account_summaries
/private/pme/simulate:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/pme_currency'
example: BTC
description: The currency for which the Extended Risk Matrix will be calculated. Use `CROSS` for Cross Collateral simulation.
- name: add_positions
required: false
in: query
schema:
type: boolean
description: If `true`, adds simulated positions to current positions, otherwise uses only simulated positions. By default `true`
- name: simulated_positions
required: false
in: query
schema:
type: string
description: 'JSON string containing: object data'
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.'
responses:
'200':
$ref: '#/components/responses/PrivatePmeSimulateResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2255
method: private/pme/simulate
params:
currency: BTC
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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.
You 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.
Use this method to understand margin requirements and risk exposure before making trading decisions in a Portfolio Margin account.
**📖 Related Article:** [Portfolio Margin](https://support.deribit.com/hc/en-us/articles/25944756247837-Portfolio-Margin)
**Scope:** `account:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fpme%2Fsimulate)
'
x-mint:
metadata:
title: private/pme/simulate
og:title: private/pme/simulate
keywords:
- private/pme/simulate
- currency
- add_positions
- simulated_positions
href: /api-reference/account-management/private-simulate
/private/simulate_portfolio:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
example: BTC
description: The currency symbol
- name: add_positions
required: false
in: query
schema:
type: boolean
description: If `true`, adds simulated positions to current positions, otherwise uses only simulated positions. By default `true`
- name: simulated_positions
required: false
in: query
schema:
type: string
description: 'JSON string containing: object data'
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.'
responses:
'200':
$ref: '#/components/responses/PrivateSimulatePortfolioResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 22222
method: private/simulate_portfolio
params:
currency: BTC
add_positions: true
simulated_positions:
BTC-PERPETUAL: 1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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.
You 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.
**Note:** This method has a restricted rate limit of not more than once per second due to the computational complexity of portfolio margin calculations.
**📖 Related Article:** [Portfolio Margin](https://support.deribit.com/hc/en-us/articles/25944756247837-Portfolio-Margin)
**Scope:** `account:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fsimulate_portfolio)
'
x-mint:
metadata:
title: private/simulate_portfolio
og:title: private/simulate_portfolio
keywords:
- private/simulate_portfolio
- currency
- add_positions
- simulated_positions
- equity
- balance
- margin_balance
- initial_margin
- maintenance_margin
- projected_initial_margin
- projected_maintenance_margin
- available_funds
- available_withdrawal_funds
- available_subaccount_transfer_funds
- total_pl
- session_rpl
- session_upl
- futures_pl
- futures_session_rpl
- futures_session_upl
- options_pl
- options_session_rpl
- options_session_upl
- options_value
- options_delta
- options_gamma
- options_theta
- options_vega
- options_gamma_map
- options_theta_map
- options_vega_map
- delta_total
- delta_total_map
- projected_delta_total
- additional_reserve
- spot_reserve
- fee_balance
- locked_balance
- margin_model
- portfolio_margining_enabled
- cross_collateral_enabled
- total_equity_usd
- total_initial_margin_usd
- total_maintenance_margin_usd
- total_margin_balance_usd
- total_delta_total_usd
href: /api-reference/account-management/private-simulate_portfolio
/private/get_access_log:
get:
parameters:
- name: offset
in: query
required: false
schema:
example: 10
type: integer
description: The offset for pagination, default - `0`
- name: count
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: Number of requested items, default - `10`, maximum - `1000`
responses:
'200':
$ref: '#/components/responses/PrivateGetAccessLogResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/get_access_log
params:
offset: 0
count: 3
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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.
Use 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.
**Scope:** `account:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_access_log)
'
x-mint:
metadata:
title: private/get_access_log
og:title: private/get_access_log
keywords:
- private/get_access_log
- offset
- count
- ip
- timestamp
- country
- city
- log
- data
href: /api-reference/account-management/private-get_access_log
/private/get_affiliate_program_info:
get:
parameters: []
responses:
'200':
$ref: '#/components/responses/PrivateGetAffiliateProgramInfoResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2
method: private/get_affiliate_program_info
params: {}
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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.
Use this method to track your affiliate program performance and earnings.
**📖 Related Support Article:** [Affiliate Program](https://support.deribit.com/hc/en-us/articles/25944777728797-Affiliate-Program)
**Scope:** `account:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_affiliate_program_info)
'
x-mint:
metadata:
title: private/get_affiliate_program_info
og:title: private/get_affiliate_program_info
keywords:
- private/get_affiliate_program_info
- is_enabled
- number_of_affiliates
- link
- received
- eth
- btc
href: /api-reference/account-management/private-get_affiliate_program_info
/private/enable_affiliate_program:
get:
parameters: []
responses:
'200':
$ref: '#/components/responses/OkResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 24
method: private/enable_affiliate_program
params: {}
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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 can be shared with potential users. Commissions are paid based on the trading activity of referred users.
**📖 Related Support Article:** [Affiliate Program](https://support.deribit.com/hc/en-us/articles/25944777728797-Affiliate-Program)
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fenable_affiliate_program)
'
x-mint:
metadata:
title: private/enable_affiliate_program
og:title: private/enable_affiliate_program
keywords:
- private/enable_affiliate_program
href: /api-reference/account-management/private-enable_affiliate_program
/private/change_margin_model:
get:
parameters:
- name: user_id
in: query
schema:
type: integer
example: 1
required: false
description: Id of a (sub)account - by default current user id is used
- name: margin_model
in: query
schema:
type: string
enum:
- cross_pm
- cross_sm
- segregated_pm
- segregated_sm
required: true
description: Margin model
- name: dry_run
in: query
schema:
type: boolean
example: true
required: false
description: 'If `true` request returns the result without switching the margining model. Default: `false`'
responses:
'200':
$ref: '#/components/responses/PrivateChangeMarginModelResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/change_margin_model
params:
user_id: 3
margin_model: cross_pm
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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 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.
**📖 Related Article:** [Margin types and usage](https://support.deribit.com/hc/en-us/articles/25944811317149-Margin-types-and-usage)
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fchange_margin_model)
'
x-mint:
metadata:
title: private/change_margin_model
og:title: private/change_margin_model
keywords:
- private/change_margin_model
- user_id
- margin_model
- dry_run
- old_state
- new_state
- currency
- maintenance_margin_rate
- initial_margin_rate
- available_balance
href: /api-reference/account-management/private-change_margin_model
/private/get_user_locks:
get:
parameters: []
responses:
'200':
$ref: '#/components/responses/PrivateGetUserLocksResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 74
method: private/get_user_locks
params: {}
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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.
The response includes details about the type of lock, reason, and duration (if applicable). Some locks may prevent trading, withdrawals, or other account operations.
**📖 Related Support Article:** [Emergency locking an account](https://support.deribit.com/hc/en-us/articles/25944602715805-Emergency-locking-an-account)
**Scope:** `account:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_user_locks)
'
x-mint:
metadata:
title: private/get_user_locks
og:title: private/get_user_locks
keywords:
- private/get_user_locks
- currency
- enabled
- message
href: /api-reference/account-management/private-get_user_locks
/private/set_self_trading_config:
get:
parameters:
- name: mode
in: query
required: true
schema:
type: string
enum:
- reject_taker
- cancel_maker
description: 'Self trading prevention behavior: `reject_taker` (reject the incoming order), `cancel_maker` (cancel the matched order in the book)'
- name: extended_to_subaccounts
in: query
required: true
schema:
type: boolean
description: If value is `true` trading is prevented between subaccounts of given account, otherwise they are treated separately
- name: block_rfq_self_match_prevention
in: query
required: false
schema:
type: boolean
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.
responses:
'200':
$ref: '#/components/responses/OkResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/set_self_trading_config
params:
mode: cancel_maker
extended_to_subaccounts: true
block_rfq_self_match_prevention: true
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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-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.
**📖 Related Support Article:** [Account settings page](https://support.deribit.com/hc/en-us/articles/25944634289693-Account-settings-page#heading-4)
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fset_self_trading_config)
'
x-mint:
metadata:
title: private/set_self_trading_config
og:title: private/set_self_trading_config
keywords:
- private/set_self_trading_config
- mode
- extended_to_subaccounts
- block_rfq_self_match_prevention
href: /api-reference/account-management/private-set_self_trading_config
/private/set_disabled_trading_products:
get:
parameters:
- name: user_id
in: query
schema:
type: integer
example: 1
required: true
description: Id of a (sub)account
- name: trading_products
in: query
required: true
schema:
type: array
items:
type: string
enum:
- perpetual
- futures
- options
- future_combos
- option_combos
- spots
description: 'List of available trading products. Available products: perpetual, futures, options, future_combos, option_combos, spots
'
style: form
explode: true
responses:
'200':
$ref: '#/components/responses/OkResponse'
tags:
- Private
description: '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.
This is useful for risk management and compliance purposes. Only the main account owner can modify trading product restrictions for subaccounts.
**[TFA required](https://docs.deribit.com/articles/security-keys)**
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fset_disabled_trading_products)
'
x-mint:
metadata:
title: private/set_disabled_trading_products
og:title: private/set_disabled_trading_products
keywords:
- private/set_disabled_trading_products
- user_id
- trading_products
href: /api-reference/account-management/private-set_disabled_trading_products
/private/disable_api_key:
get:
parameters:
- name: id
in: query
required: true
schema:
type: integer
example: 1
description: API key ID
responses:
'200':
$ref: '#/components/responses/PrivateApiKeyResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2861
method: private/disable_api_key
params:
id: 3
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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 access without permanently deleting the key. All requests using this key will be rejected until it is enabled again.
**[TFA required](https://docs.deribit.com/articles/security-keys)**
**📖 Related Article:** [Creating new API key on Deribit](https://docs.deribit.com/articles/creating-api-key)
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fdisable_api_key)
'
x-mint:
metadata:
title: private/disable_api_key
og:title: private/disable_api_key
keywords:
- private/disable_api_key
- id
- timestamp
- client_id
- client_secret
- public_key
- max_scope
- enabled
- default
- name
- enabled_features
- ip_whitelist
href: /api-reference/account-management/private-disable_api_key
/private/enable_api_key:
get:
parameters:
- name: id
in: query
required: true
schema:
type: integer
example: 1
description: API key ID
responses:
'200':
$ref: '#/components/responses/PrivateApiKeyResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 8580
method: private/enable_api_key
params:
id: 3
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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](https://docs.deribit.com/articles/creating-api-key)
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fenable_api_key)
'
x-mint:
metadata:
title: private/enable_api_key
og:title: private/enable_api_key
keywords:
- private/enable_api_key
- id
- timestamp
- client_id
- client_secret
- public_key
- max_scope
- enabled
- default
- name
- enabled_features
- ip_whitelist
href: /api-reference/account-management/private-enable_api_key
/private/create_api_key:
get:
parameters:
- name: max_scope
in: query
required: true
schema:
$ref: '#/components/schemas/max_scope'
description: 'Describes maximal access for tokens generated with given key. If scope is not provided, its value is set as none.
**📖 Related Article:** [Access Scope](https://docs.deribit.com/articles/access-scope)
'
- name: name
in: query
schema:
type: string
example: TestName
description: Name of key (only letters, numbers and underscores allowed; maximum length - 16 characters)
required: false
- name: public_key
in: query
required: false
schema:
type: string
example: '-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAM7FWhKquNqLmTOV4hfYT5r3AjrYiORTT6Tn5HIfFNV8=
-----END PUBLIC KEY-----'
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
in: query
required: false
schema:
type: array
items:
type: string
enum:
- restricted_block_trades
- block_trade_approval
description: 'List of enabled advanced on-key features. Available options:
- `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
'
style: form
explode: true
responses:
'200':
$ref: '#/components/responses/PrivateApiKeyResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 8974
method: private/create_api_key
params:
name: Public key 1
max_scope: account:read trade:read block_trade:read_write wallet:none
public_key: '-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAM7FWhKquNqLmTOV4hfYT5r3AjrYiORTT6Tn5HIfFNV8=
-----END PUBLIC KEY-----'
description: JSON-RPC Request Example
description: JSON-RPC request body
description: "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**\U0001F4D6 Related Articles:** \n- [Creating new API key on Deribit](https://docs.deribit.com/articles/creating-api-key)\n- [Access Scope](https://docs.deribit.com/articles/access-scope)\n\n**Scope:** `account:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcreate_api_key)\n\n"
x-mint:
metadata:
title: private/create_api_key
og:title: private/create_api_key
keywords:
- private/create_api_key
- max_scope
- name
- public_key
- enabled_features
- timestamp
- client_id
- client_secret
- enabled
- default
- ip_whitelist
href: /api-reference/account-management/private-create_api_key
/private/change_scope_in_api_key:
get:
parameters:
- name: max_scope
in: query
required: true
schema:
$ref: '#/components/schemas/max_scope'
description: 'Describes maximal access for tokens generated with given key. If scope is not provided, its value is set as none.
**📖 Related Article:** [Access Scope](https://docs.deribit.com/articles/access-scope)
'
- name: id
in: query
required: true
schema:
type: integer
example: 1
description: API key ID
responses:
'200':
$ref: '#/components/responses/PrivateApiKeyResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2453
method: private/change_scope_in_api_key
params:
max_scope: account:read_write wallet:read_write block_trade:read trade:read_write
id: 3
description: JSON-RPC Request Example
description: JSON-RPC request body
description: "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**\U0001F4D6 Related Articles:** \n- [Creating new API key on Deribit](https://docs.deribit.com/articles/creating-api-key)\n- [Access Scope](https://docs.deribit.com/articles/access-scope)\n\n**Scope:** `account:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fchange_scope_in_api_key)\n\n"
x-mint:
metadata:
title: private/change_scope_in_api_key
og:title: private/change_scope_in_api_key
keywords:
- private/change_scope_in_api_key
- max_scope
- id
- timestamp
- client_id
- client_secret
- public_key
- enabled
- default
- name
- enabled_features
- ip_whitelist
href: /api-reference/account-management/private-change_scope_in_api_key
/private/change_api_key_name:
get:
parameters:
- name: id
in: query
required: true
schema:
type: integer
example: 1
description: API key ID
- name: name
in: query
schema:
type: string
example: TestName
required: true
description: Name of key (only letters, numbers and underscores allowed; maximum length - 16 characters)
responses:
'200':
$ref: '#/components/responses/PrivateApiKeyResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2453
method: private/change_api_key_name
params:
name: KeyName3
id: 3
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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 API key on Deribit](https://docs.deribit.com/articles/creating-api-key)
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fchange_api_key_name)
'
x-mint:
metadata:
title: private/change_api_key_name
og:title: private/change_api_key_name
keywords:
- private/change_api_key_name
- id
- name
- timestamp
- client_id
- client_secret
- public_key
- max_scope
- enabled
- default
- enabled_features
- ip_whitelist
href: /api-reference/account-management/private-change_api_key_name
/private/list_api_keys:
get:
parameters: []
responses:
'200':
$ref: '#/components/responses/PublicListApiKeysResponse'
tags:
- Private
description: '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.
Use this method to review and manage your API keys, check their permissions, and monitor their usage.
**[TFA required](https://docs.deribit.com/articles/security-keys)**
**📖 Related Article:** [Creating new API key on Deribit](https://docs.deribit.com/articles/creating-api-key)
**Scope:** `account:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Flist_api_keys)
'
x-mint:
metadata:
title: private/list_api_keys
og:title: private/list_api_keys
keywords:
- private/list_api_keys
- timestamp
- client_id
- client_secret
- public_key
- max_scope
- enabled
- default
- name
- enabled_features
- ip_whitelist
href: /api-reference/account-management/private-list_api_keys
/private/reset_api_key:
get:
parameters:
- name: id
in: query
required: true
schema:
type: integer
example: 1
description: API key ID
responses:
'200':
$ref: '#/components/responses/PrivateApiKeyResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 6524
method: private/reset_api_key
params:
id: 3
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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.
The 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.
**📖 Related Article:** [Creating new API key on Deribit](https://docs.deribit.com/articles/creating-api-key)
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Freset_api_key)
'
x-mint:
metadata:
title: private/reset_api_key
og:title: private/reset_api_key
keywords:
- private/reset_api_key
- id
- timestamp
- client_id
- client_secret
- public_key
- max_scope
- enabled
- default
- name
- enabled_features
- ip_whitelist
href: /api-reference/account-management/private-reset_api_key
/private/remove_api_key:
get:
parameters:
- name: id
in: query
required: true
schema:
type: integer
example: 1
description: API key ID
responses:
'200':
$ref: '#/components/responses/OkResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 8190
method: private/remove_api_key
params:
id: 2
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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.
Consider disabling the key first if you want to temporarily suspend access, as disabled keys can be re-enabled later.
**📖 Related Article:** [Creating new API key on Deribit](https://docs.deribit.com/articles/creating-api-key)
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fremove_api_key)
'
x-mint:
metadata:
title: private/remove_api_key
og:title: private/remove_api_key
keywords:
- private/remove_api_key
- id
href: /api-reference/account-management/private-remove_api_key
/private/edit_api_key:
get:
parameters:
- name: id
in: query
required: true
schema:
type: integer
example: 1
description: API key ID
- name: max_scope
in: query
required: true
schema:
$ref: '#/components/schemas/max_scope'
description: 'Describes maximal access for tokens generated with given key. If scope is not provided, its value is set as none.
**📖 Related Article:** [Access Scope](https://docs.deribit.com/articles/access-scope)
'
- name: name
in: query
schema:
type: string
example: TestName
description: Name of key (only letters, numbers and underscores allowed; maximum length - 16 characters)
required: false
- name: enabled
in: query
required: false
schema:
type: boolean
description: Enables/disables the API key. `true` to enable, `false` to disable
- name: enabled_features
in: query
required: false
schema:
type: array
items:
type: string
enum:
- restricted_block_trades
- block_trade_approval
description: 'List of enabled advanced on-key features. Available options:
- `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
'
style: form
explode: true
- name: ip_whitelist
in: query
required: false
schema:
type: array
items:
type: string
description: Whitelist provided IP address on a selected key
style: form
explode: true
responses:
'200':
$ref: '#/components/responses/PrivateApiKeyResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2453
method: private/edit_api_key
params:
name: NewKeyName
max_scope: account:read_write wallet:read_write block_trade:read trade:read_write
id: 3
description: JSON-RPC Request Example
description: JSON-RPC request body
description: "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**\U0001F4D6 Related Articles:** \n- [Creating new API key on Deribit](https://docs.deribit.com/articles/creating-api-key)\n- [Access Scope](https://docs.deribit.com/articles/access-scope)\n\n**Scope:** `account:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fedit_api_key)\n\n"
x-mint:
metadata:
title: private/edit_api_key
og:title: private/edit_api_key
keywords:
- private/edit_api_key
- id
- max_scope
- name
- enabled
- enabled_features
- ip_whitelist
- timestamp
- client_id
- client_secret
- public_key
- default
href: /api-reference/account-management/private-edit_api_key
/private/get_new_announcements:
get:
parameters: []
responses:
'200':
$ref: '#/components/responses/PublicGetAnnouncementsResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 3022
method: private/get_new_announcements
params: {}
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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.
This method is useful for displaying notification badges or highlighting new announcements that require the user''s attention.
**Scope:** `account:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_new_announcements)
'
x-mint:
metadata:
title: private/get_new_announcements
og:title: private/get_new_announcements
keywords:
- private/get_new_announcements
- body
- publication_timestamp
- important
- confirmation
- title
href: /api-reference/account-management/private-get_new_announcements
/private/set_announcement_as_read:
get:
parameters:
- in: query
name: announcement_id
required: true
schema:
type: number
example: 1550058362418
description: the ID of the announcement
responses:
'200':
$ref: '#/components/responses/OkResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 5147
method: private/set_announcement_as_read
params:
announcement_id: 1550058362418
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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`.
This helps track which announcements have been viewed and reduces notification clutter.
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fset_announcement_as_read)
'
x-mint:
metadata:
title: private/set_announcement_as_read
og:title: private/set_announcement_as_read
keywords:
- private/set_announcement_as_read
- announcement_id
href: /api-reference/account-management/private-set_announcement_as_read
/private/get_email_language:
get:
parameters: []
responses:
'200':
$ref: '#/components/responses/PrivateGetEmailLanguageResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 9265
method: private/get_email_language
params: {}
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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.
**Scope:** `account:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_email_language)
'
x-mint:
metadata:
title: private/get_email_language
og:title: private/get_email_language
keywords:
- private/get_email_language
href: /api-reference/account-management/private-get_email_language
/private/create_subaccount:
get:
tags:
- Private
responses:
'200':
$ref: '#/components/responses/PrivateCreateSubaccountResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 5414
method: private/create_subaccount
params: {}
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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. The new subaccount will be created with default settings and can be configured using other subaccount management methods.
**📖 Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-subaccounts-api)
**Scope:** `account:read_write` and mainaccount
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcreate_subaccount)
'
x-mint:
metadata:
title: private/create_subaccount
og:title: private/create_subaccount
keywords:
- private/create_subaccount
- email
- login_enabled
- is_password
- receive_notifications
- system_name
- security_keys_enabled
- security_keys_assignments
- username
- type
- portfolio
- margin_model
- disabled_trading_products
- proof_id
- proof_id_signature
- trading_products_details
- referrals_count
- btc(example)
- margin_balance
- currency
- maintenance_margin
- initial_margin
- equity
- balance
- available_withdrawal_funds
- available_funds
- additional_reserve
- spot_reserve
- enabled
- product
- overwriteable
- requires_consent
href: /api-reference/account-management/private-create_subaccount
/private/change_subaccount_name:
get:
tags:
- Private
parameters:
- name: sid
in: query
schema:
type: integer
example: 7
required: true
description: The user id for the subaccount
- name: name
in: query
schema:
type: string
example: new_user_1_1
required: true
description: The new user name
responses:
'200':
$ref: '#/components/responses/OkResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 3964
method: private/change_subaccount_name
params:
sid: 7
name: new_user_1_1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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 change subaccount names.
**📖 Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-subaccounts-api)
**Scope:** `account:read_write` and mainaccount
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fchange_subaccount_name)
'
x-mint:
metadata:
title: private/change_subaccount_name
og:title: private/change_subaccount_name
keywords:
- private/change_subaccount_name
- sid
- name
href: /api-reference/account-management/private-change_subaccount_name
/private/set_email_language:
get:
parameters:
- in: query
name: language
required: true
schema:
type: string
example: en
description: The abbreviated language name. Valid values include `"en"`, `"ko"`, `"zh"`, `"ja"`, `"ru"`
responses:
'200':
$ref: '#/components/responses/OkResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 3269
method: private/set_email_language
params:
language: en
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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 email notifications will be sent in the selected language. This setting does not affect the language of the web interface or API responses.
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fset_email_language)
'
x-mint:
metadata:
title: private/set_email_language
og:title: private/set_email_language
keywords:
- private/set_email_language
- language
href: /api-reference/account-management/private-set_email_language
/private/set_email_for_subaccount:
get:
tags:
- Private
parameters:
- name: sid
in: query
schema:
type: integer
example: 7
required: true
description: The user id for the subaccount
- name: email
in: query
schema:
type: string
example: user_1_1@email.com
required: true
description: The email address for the subaccount
responses:
'200':
$ref: '#/components/responses/OkResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1667
method: private/set_email_for_subaccount
params:
sid: 7
email: user_1_1@email.com
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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 link to verify the email address. The email must be confirmed before it can be used for login.
**[TFA required](https://docs.deribit.com/articles/security-keys)**
**📖 Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-subaccounts-api)
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fset_email_for_subaccount)
'
x-mint:
metadata:
title: private/set_email_for_subaccount
og:title: private/set_email_for_subaccount
keywords:
- private/set_email_for_subaccount
- sid
- email
href: /api-reference/account-management/private-set_email_for_subaccount
/private/toggle_subaccount_login:
get:
tags:
- Private
parameters:
- name: sid
in: query
schema:
type: integer
example: 7
required: true
description: The user id for the subaccount
- name: state
in: query
schema:
type: string
enum:
- enable
- disable
example: enable
required: true
description: enable or disable login.
responses:
'200':
$ref: '#/components/responses/OkResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 938
method: private/toggle_subaccount_login
params:
sid: 7
state: enable
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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.
If login is disabled while an active session exists for the subaccount, that session will be immediately terminated.
**[TFA required](https://docs.deribit.com/articles/security-keys)**
**📖 Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-subaccounts-api)
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Ftoggle_subaccount_login)
'
x-mint:
metadata:
title: private/toggle_subaccount_login
og:title: private/toggle_subaccount_login
keywords:
- private/toggle_subaccount_login
- sid
- state
href: /api-reference/account-management/private-toggle_subaccount_login
/private/toggle_notifications_from_subaccount:
get:
tags:
- Private
parameters:
- name: sid
in: query
schema:
type: integer
example: 7
required: true
description: The user id for the subaccount
- name: state
in: query
schema:
type: boolean
example: true
required: true
description: enable (`true`) or disable (`false`) notifications
responses:
'200':
$ref: '#/components/responses/OkResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 9995
method: private/toggle_notifications_from_subaccount
params:
sid: 7
state: true
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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.
This setting only affects notifications sent to the subaccount''s email address. Notifications sent to the main account are not affected.
**[TFA required](https://docs.deribit.com/articles/security-keys)**
**📖 Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-subaccounts-api)
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Ftoggle_notifications_from_subaccount)
'
x-mint:
metadata:
title: private/toggle_notifications_from_subaccount
og:title: private/toggle_notifications_from_subaccount
keywords:
- private/toggle_notifications_from_subaccount
- sid
- state
href: /api-reference/account-management/private-toggle_notifications_from_subaccount
/private/get_subaccounts:
get:
tags:
- Private
parameters:
- name: with_portfolio
in: query
schema:
type: boolean
example: true
description: 'Portfolio flag: `true` for portfolio information, `false` for subaccount information only. `false` by default'
required: false
responses:
'200':
$ref: '#/components/responses/PrivateGetSubaccountsResponse'
'401':
$ref: '#/components/responses/ErrorMessageResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 4947
method: private/get_subaccounts
params:
with_portfolio: true
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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 details for the main account and full details for the subaccount initiating the request.
Set the `with_portfolio` parameter to `true` to include portfolio information (balances, positions, etc.) in the response. By default, only subaccount metadata is returned.
**📖 Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-subaccounts-api)
**Scope:** `account:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_subaccounts)
'
x-mint:
metadata:
title: private/get_subaccounts
og:title: private/get_subaccounts
keywords:
- private/get_subaccounts
- with_portfolio
- username
- type
- email
- not_confirmed_email
- security_keys_enabled
- security_keys_assignments
- system_name
- receive_notifications
- is_password
- margin_model
- proof_id
- proof_id_signature
- login_enabled
- portfolio
- btc(example)
- margin_balance
- currency
- maintenance_margin
- initial_margin
- equity
- balance
- available_withdrawal_funds
- available_funds
- additional_reserve
- spot_reserve
href: /api-reference/account-management/private-get_subaccounts
/private/get_subaccounts_details:
get:
tags:
- Private
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: with_open_orders
in: query
schema:
type: boolean
description: 'Optional parameter to ask for open orders list, default: `false`'
required: false
responses:
'200':
$ref: '#/components/responses/PrivateGetSubaccountsDetailsResponse'
'401':
$ref: '#/components/responses/ErrorMessageResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/get_subaccounts_details
params:
currency: BTC
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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.
Optionally include open orders for each subaccount by setting the `with_open_orders` parameter to `true`.
**📖 Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-subaccounts-api)
**Scope:** `account:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_subaccounts_details)
'
x-mint:
metadata:
title: private/get_subaccounts_details
og:title: private/get_subaccounts_details
keywords:
- private/get_subaccounts_details
- currency
- with_open_orders
- uid
- positions
- open_orders
- instrument_name
- kind
- average_price
- direction
- mark_price
- delta
- gamma
- vega
- theta
- index_price
- initial_margin
- maintenance_margin
- settlement_price
- total_profit_loss
- floating_profit_loss
- realized_profit_loss
- size
- size_currency
- average_price_usd
- floating_profit_loss_usd
- leverage
- realized_funding
- interest_value
- order_id
- order_state
- order_type
- original_order_type
- time_in_force
- is_rebalance
- is_liquidation
- creation_timestamp
- last_update_timestamp
- price
- label
- post_only
- reject_post_only
- reduce_only
- api
- web
- mobile
- refresh_amount
- display_amount
- amount
- contracts
- filled_amount
- advanced
- implv
- usd
- triggered
- trigger
- trigger_price
- trigger_offset
- trigger_reference_price
- block_trade
- mmp
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- trigger_fill_condition
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
href: /api-reference/account-management/private-get_subaccounts_details
/private/remove_subaccount:
get:
tags:
- Private
parameters:
- name: subaccount_id
in: query
schema:
type: integer
example: 120
required: true
description: The user id for the subaccount
responses:
'200':
$ref: '#/components/responses/OkResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 6
method: private/remove_subaccount
params:
subaccount_id: 120
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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 permanently deleted.
**[TFA required](https://docs.deribit.com/articles/security-keys)**
**📖 Related Article:** [Managing Subaccounts](https://docs.deribit.com/articles/managing-subaccounts-api)
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fremove_subaccount)
'
x-mint:
metadata:
title: private/remove_subaccount
og:title: private/remove_subaccount
keywords:
- private/remove_subaccount
- subaccount_id
href: /api-reference/account-management/private-remove_subaccount
/private/get_transaction_log:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/wallet_currency'
description: The currency symbol
- name: start_timestamp
required: true
in: query
schema:
$ref: '#/components/schemas/timestamp'
description: The earliest timestamp to return result from (milliseconds since the UNIX epoch)
- name: end_timestamp
required: true
in: query
schema:
$ref: '#/components/schemas/timestamp'
description: The most recent timestamp to return result from (milliseconds since the UNIX epoch)
- name: query
in: query
schema:
type: string
example: settlement
required: false
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
in: query
required: false
schema:
type: integer
maximum: 250
minimum: 1
description: Count of transaction log entries returned, default - `100`, maximum - `250`
- name: subaccount_id
in: query
required: false
schema:
type: integer
example: 9
description: Id of a subaccount
- name: continuation
in: query
required: false
schema:
type: integer
example: 429946
description: Continuation token for pagination
responses:
'200':
$ref: '#/components/responses/PrivateGetTransactionLogResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 4
method: private/get_transaction_log
params:
currency: BTC
start_timestamp: '1613657734000'
end_timestamp: '1613660407000'
count: 5
description: JSON-RPC Request Example
description: JSON-RPC request body
description: "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 time limit** - users can query transaction history back to account creation. Note that the CSV export feature available on the website is year-limited to 2023. \n\n**Note - This method has distinct API rate limiting requirements:** Sustained rate: 1 request/second. For more information, see [Rate Limits](https://support.deribit.com/hc/en-us/articles/25944617523357-Rate-Limits).\n\n**\U0001F4D6 Related Support Article:** [Transaction log](https://support.deribit.com/hc/en-us/articles/25944587269021-Transaction-log)\n\n**Scope:** `account:read`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_transaction_log)\n\n"
x-mint:
metadata:
title: private/get_transaction_log
og:title: private/get_transaction_log
keywords:
- private/get_transaction_log
- currency
- start_timestamp
- end_timestamp
- query
- count
- subaccount_id
- continuation
- logs
- timestamp
- user_id
- username
- commission
- cashflow
- balance
- change
- user_seq
- type
- info
- equity
- mark_price
- settlement_price
- index_price
- instrument_name
- position
- side
- amount
- price
- price_currency
- trade_id
- order_id
- user_role
- fee_role
- profit_as_cashflow
- interest_pl
- block_rfq_id
- ip
- session_rpl
- session_upl
- total_interest_pl
- contracts
href: /api-reference/account-management/private-get_transaction_log
/private/list_custody_accounts:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
responses:
'200':
$ref: '#/components/responses/GetlistCustodyAccounts200response'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2515
method: private/list_custody_accounts
params:
currency: BTC
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '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 response includes custody account details such as account name, status, balances, and configuration settings.
**📖 Related Support Article:** [Custody Options](https://support.deribit.com/hc/en-us/articles/26533163120413-Custody-Options)
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Flist_custody_accounts)
'
x-mint:
metadata:
title: private/list_custody_accounts
og:title: private/list_custody_accounts
keywords:
- private/list_custody_accounts
- currency
- code
- message
- name
- balance
- pending_withdrawal_balance
- auto_deposit
- client_id
- external_id
- withdrawal_address
- withdrawal_address_change
- pending_withdrawal_addres
- deposit_address
href: /api-reference/account-management/private-list_custody_accounts
/private/logout:
get:
tags:
- Private
parameters:
- name: invalidate_token
in: query
required: false
schema:
type: boolean
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: - invalidate_token=true (default): All session tokens are invalidated, requiring re-authentication for new connections
- invalidate_token=false: Tokens remain valid, allowing you to reconnect using the same authentication
'
responses:
'200':
description: Connection closed
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 42
method: private/logout
params:
access_token: 1529453804065.h2QrBgvn.oS36pCOmuK9EX7954lzCSkUioEtTMg7F5ShToM0ZfYlqU05OquXkQIe2_DDEkPhzmoPp1fBp0ycXShR_0jf-SMSXEdVqxLRWuOw-_StG5BMjToiAl27CbHY4P92MPhlMblTOtTImE81-5dFdyDVydpBwmlfKM3OSQ39kulP9bbfw-2jhyegOL0AgqJTY_tj554oHCQFTbq0A0ZWukukmxL2yu6iy34XdzaJB26Igy-3UxGBMwFu53EhjKBweh7xyP2nDm57-wybndJMtSyTGDXH3vjBVclo1iup5yRP
invalidate_token: true
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Gracefully terminate the current WebSocket connection and optionally invalidate all tokens associated with the session.
This method provides a clean way to close WebSocket connections while preserving active orders when [**Cancel On Disconnect (COD)**](https://docs.deribit.com/api-reference/session-management/private-enable_cancel_on_disconnect) is enabled.
**Use Cases:**
- **Clean Shutdown:** Properly close WebSocket connections during application shutdown or restart
- **Order Preservation:** Close connections without triggering order cancellations when COD is enabled
- **Session Management:** Invalidate tokens to ensure security when closing connections
- **Maintenance Operations:** Temporarily disconnect for system maintenance without affecting trading positions
**Cancel On Disconnect (COD) Behavior:**
When Cancel On Disconnect is enabled for your connection, this method provides a safe way to close the connection without triggering automatic order cancellations. This is different from other disconnection scenarios:
- **Graceful logout** (this method): Orders are **NOT cancelled**, even if COD is enabled
- **Unexpected disconnection:** Orders are **cancelled** if COD is enabled
- **Inactivity timeout:** Orders are **cancelled** if COD is enabled
- **Heartbeat failure:** Orders are **cancelled** if COD is enabled
This distinction allows you to perform planned disconnections (e.g., for maintenance, updates, or reconnection) while preserving your active orders.
**WebSocket Only:**
This method is designed exclusively for WebSocket connections. Attempting to use it via REST/HTTP will result in a 400 error response.
**Note:** This method has no response. The WebSocket connection is closed immediately after the request is processed.
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Flogout)
'
x-mint:
metadata:
title: private/logout
og:title: private/logout
keywords:
- private/logout
- invalidate_token
href: /api-reference/authentication/private-logout
/private/get_block_rfqs:
get:
parameters:
- name: count
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 1
description: Count of Block RFQs returned, maximum - `1000`
- name: state
in: query
required: false
schema:
type: string
enum:
- open
- filled
- traded
- cancelled
- expired
- closed
description: State of Block RFQ
- name: role
in: query
required: false
schema:
type: string
enum:
- any
- taker
- maker
description: Role of the user in Block RFQ. When the `any` role is selected, the method returns all Block RFQs in which the user has participated, either as the `taker` or as a `maker`
- name: continuation
in: query
required: false
schema:
type: integer
description: The continuation parameter specifies the starting point for fetching historical Block RFQs. When provided, the endpoint returns Block RFQs, starting from the specified ID and continuing backward (e.g., if `continuation` is 50, results will include Block RFQs of ID 49, 48, etc.)
- name: block_rfq_id
required: false
in: query
schema:
type: integer
description: ID of the Block RFQ
- in: query
name: currency
required: false
schema:
$ref: '#/components/schemas/block_rfq_currency'
description: The currency symbol
responses:
'200':
$ref: '#/components/responses/PrivateGetBlockRfqsResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/get_block_rfqs
params:
count: 20
state: open
role: maker
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Returns a list of Block RFQs that were either created by the user or assigned to them as a maker, sorted in descending order.
`trades` and `mark_price` are only visible for the filled Block RFQ. When a `block_rfq_id` is specified, only that particular Block RFQ will be returned. If called by a `taker`, response will additionally include `makers` list and `label` if previously provided. If called by the `maker`, the `trades` will include the maker''s alias, but only for trades in which this maker participated. Can be optionally filtered by currency.
Use [private/get_block_rfq_quotes](https://docs.deribit.com/api-reference/block-rfq/private-get_block_rfq_quotes) to retrieve quotes for Block RFQs.
**📖 Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)
**Scope:** `block_rfq:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_block_rfqs)
'
x-mint:
metadata:
title: private/get_block_rfqs
og:title: private/get_block_rfqs
keywords:
- private/get_block_rfqs
- count
- state
- role
- continuation
- block_rfq_id
- currency
- block_rfqs
- creation_timestamp
- expiration_timestamp
- taker_rating
- makers
- amount
- min_trade_amount
- asks
- bids
- legs
- hedge
- combo_id
- label
- app_name
- mark_price
- disclosed
- taker
- index_prices
- included_in_taker_rating
- trades
- trade_trigger
- trade_allocations
- price
- last_update_timestamp
- execution_instruction
- expires_at
- ratio
- instrument_name
- direction
- maker
- hedge_amount
- cancel_reason
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/block-rfq/private-get_block_rfqs
/private/create_block_rfq:
get:
parameters:
- in: query
name: legs
required: true
schema:
type: array
items:
type: object
properties:
instrument_name:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
amount:
$ref: '#/components/schemas/amount'
description: It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.
direction:
$ref: '#/components/schemas/direction'
description: Direction of selected leg
description: List of legs used to create Block RFQ
style: form
explode: true
- name: trade_allocations
in: query
required: false
schema:
type: array
items:
type: object
properties:
user_id:
type: integer
description: User ID (subaccount or main account) to allocate part of the RFQ amount.
client_info:
type: object
properties:
client_id:
type: integer
description: ID of a client; available to broker. Represents a group of users under a common name.
client_link_id:
type: integer
description: ID assigned to a single user in a client; available to broker.
description: Client allocation info for brokers.
amount:
type: number
description: Amount allocated to this user or client.
description: List of allocations for Block RFQ pre-allocation. Allows to split amount between different (sub)accounts or broker clients. Each allocation must specify either `user_id` (for direct allocation) or `client_info` object (for broker allocation), and amount.
style: form
explode: true
- in: query
name: hedge
required: false
schema:
type: string
description: 'JSON string containing: instrument_name, direction, price, amount'
description: Hedge leg of the Block RFQ. There is only one hedge leg allowed per Block RFQ
- name: label
in: query
schema:
type: string
required: false
description: User defined label for the Block RFQ (maximum 64 characters)
- name: makers
in: query
schema:
type: array
items:
type: string
required: false
description: List of targeted Block RFQ makers. Only those makers will be notified about created Block RFQ. If the list is empty, all available makers will be targeted.
style: form
explode: true
- name: disclosed
in: query
required: false
schema:
type: boolean
description: Determines whether the RFQ is non-anonymous, revealing both taker and maker aliases. It can be set to `false` (anonymous mode) only when at least 5 makers are targeted. Default value is `true`.
responses:
'200':
$ref: '#/components/responses/PrivateCreateBlockRfqResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/create_block_rfq
params:
legs:
- instrument_name: BTC-15NOV24
amount: 20000
direction: sell
hedge:
amount: 10
direction: buy
price: 70000
instrument_name: BTC-PERPETUAL
label: example
makers:
- MAKER1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '**Taker method**
Creates a new Block RFQ. Use [private/get_block_rfqs](https://docs.deribit.com/api-reference/block-rfq/private-get_block_rfqs) to retrieve Block RFQ information.
**Block RFQ pre-allocation:** The taker can split the total amount between different (sub)accounts using the `trade_allocations` parameter. The taker can also allocate to himself. Each allocation must specify either `user_id` (for direct allocation) or `client_info` object (for broker allocation), and `amount`.
**📖 Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)
**Scope:** `block_rfq:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcreate_block_rfq)
'
x-mint:
metadata:
title: private/create_block_rfq
og:title: private/create_block_rfq
keywords:
- private/create_block_rfq
- legs
- trade_allocations
- hedge
- label
- makers
- disclosed
- creation_timestamp
- expiration_timestamp
- block_rfq_id
- role
- state
- taker_rating
- amount
- min_trade_amount
- asks
- bids
- combo_id
- app_name
- mark_price
- taker
- index_prices
- included_in_taker_rating
- trades
- trade_trigger
- price
- last_update_timestamp
- execution_instruction
- expires_at
- ratio
- instrument_name
- direction
- maker
- hedge_amount
- cancel_reason
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/block-rfq/private-create_block_rfq
/private/cancel_block_rfq:
get:
parameters:
- name: block_rfq_id
required: true
in: query
schema:
type: integer
description: ID of the Block RFQ
responses:
'200':
$ref: '#/components/responses/PrivateCancelBlockRfqResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/cancel_block_rfq
params:
block_rfq_id: 366
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '**Taker method**
Cancels a Block RFQ using the specified `block_rfq_id`.
Use [private/get_block_rfqs](https://docs.deribit.com/api-reference/block-rfq/private-get_block_rfqs) to retrieve Block RFQ information, or [private/create_block_rfq](https://docs.deribit.com/api-reference/block-rfq/private-create_block_rfq) to create a new Block RFQ.
**📖 Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)
**Scope:** `block_rfq:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_block_rfq)
'
x-mint:
metadata:
title: private/cancel_block_rfq
og:title: private/cancel_block_rfq
keywords:
- private/cancel_block_rfq
- block_rfq_id
- creation_timestamp
- expiration_timestamp
- role
- state
- taker_rating
- makers
- amount
- min_trade_amount
- asks
- bids
- legs
- hedge
- combo_id
- label
- app_name
- mark_price
- disclosed
- taker
- index_prices
- included_in_taker_rating
- trades
- trade_trigger
- trade_allocations
- price
- last_update_timestamp
- execution_instruction
- expires_at
- ratio
- instrument_name
- direction
- maker
- hedge_amount
- cancel_reason
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/block-rfq/private-cancel_block_rfq
/private/accept_block_rfq:
get:
parameters:
- name: block_rfq_id
required: true
in: query
schema:
type: integer
description: ID of the Block RFQ
- in: query
name: price
required: true
schema:
type: number
description: Maximum acceptable price for execution
- in: query
name: amount
required: true
schema:
$ref: '#/components/schemas/amount'
description: This value multiplied by the ratio of a leg gives trade size on that leg.
- in: query
name: direction
required: true
schema:
$ref: '#/components/schemas/direction'
description: Direction of the trade from the taker perspective
- in: query
name: hedge
required: false
schema:
type: string
description: 'JSON string containing: instrument_name, direction, price, amount'
description: Hedge leg of the Block RFQ. There is only one hedge leg allowed per Block RFQ
- in: query
name: legs
required: true
schema:
type: array
items:
type: object
properties:
instrument_name:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
direction:
$ref: '#/components/schemas/direction'
description: Direction of selected leg. Must match the direction of the corresponding leg in the Block RFQ
ratio:
type: integer
description: Ratio of amount between legs
description: List of legs used to trade Block RFQ
style: form
explode: true
- name: time_in_force
in: query
required: true
schema:
type: string
enum:
- fill_or_kill
- good_til_cancelled
example: fill_or_kill
description: Specifies how long the order should remain active
responses:
'200':
$ref: '#/components/responses/PrivateAcceptBlockRfqResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/accept_block_rfq
params:
block_rfq_id: 1
legs:
- instrument_name: BTC-8NOV24-70000-C
ratio: 1
direction: buy
- instrument_name: BTC-8NOV24-72000-C
ratio: 1
direction: sell
price: 0.01
direction: buy
amount: 100
time_in_force: fill_or_kill
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '**Taker method**
Allows Block RFQ taker to accept a quote by sending a single crossing price. The order can be either filled immediately (`fill_or_kill`) or remain active until cancelled (`good_til_cancelled`).
**Note:** After Block RFQ creation, a grace period of 5 seconds begins, during which the taker cannot see quotes or trade the Block RFQ.
Use [private/get_block_rfqs](https://docs.deribit.com/api-reference/block-rfq/private-get_block_rfqs) to retrieve Block RFQ information, or [private/cancel_block_rfq](https://docs.deribit.com/api-reference/block-rfq/private-cancel_block_rfq) to cancel a Block RFQ.
**📖 Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)
**Scope:** `block_rfq:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Faccept_block_rfq)
'
x-mint:
metadata:
title: private/accept_block_rfq
og:title: private/accept_block_rfq
keywords:
- private/accept_block_rfq
- block_rfq_id
- price
- amount
- direction
- hedge
- legs
- time_in_force
- trade_trigger
- block_trades
- state
- timestamp
- trades
- app_name
- broker_code
- broker_name
- trade_id
- trade_seq
- instrument_name
- order_type
- advanced
- order_id
- matching_id
- tick_direction
- index_price
- contracts
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- label
- block_trade_id
- block_rfq_quote_id
- reduce_only
- post_only
- mmp
- risk_reducing
- api
- profit_loss
- mark_price
- combo_id
- combo_trade_id
- quote_set_id
- quote_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/block-rfq/private-accept_block_rfq
/private/cancel_block_rfq_trigger:
get:
parameters:
- name: block_rfq_id
required: true
in: query
schema:
type: integer
description: ID of the Block RFQ
responses:
'200':
$ref: '#/components/responses/PrivateCancelBlockRfqTriggerResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/cancel_block_rfq_trigger
params:
block_rfq_id: 123
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '**Taker method**
Allows Block RFQ taker to cancel an active trigger for a Block RFQ. The response includes the full Block RFQ object with the trade trigger state set to cancelled.
Use [private/get_block_rfqs](https://docs.deribit.com/api-reference/block-rfq/private-get_block_rfqs) to retrieve Block RFQ information.
**📖 Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)
**Scope:** `block_rfq:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_block_rfq_trigger)
'
x-mint:
metadata:
title: private/cancel_block_rfq_trigger
og:title: private/cancel_block_rfq_trigger
keywords:
- private/cancel_block_rfq_trigger
- block_rfq_id
- creation_timestamp
- expiration_timestamp
- role
- state
- taker_rating
- makers
- amount
- min_trade_amount
- asks
- bids
- legs
- hedge
- combo_id
- label
- app_name
- mark_price
- disclosed
- taker
- index_prices
- included_in_taker_rating
- trades
- trade_trigger
- trade_allocations
- price
- last_update_timestamp
- execution_instruction
- expires_at
- ratio
- instrument_name
- direction
- maker
- hedge_amount
- cancel_reason
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/block-rfq/private-cancel_block_rfq_trigger
/private/get_block_rfq_quotes:
get:
parameters:
- name: block_rfq_id
required: false
in: query
schema:
type: integer
description: ID of the Block RFQ
- name: label
in: query
schema:
type: string
required: false
description: User defined label for the Block RFQ quote (maximum 64 characters). Used to identify quotes of a selected Block RFQ
- name: block_rfq_quote_id
required: false
in: query
schema:
type: integer
description: ID of the Block RFQ quote
responses:
'200':
$ref: '#/components/responses/PrivateGetBlockRfqQuotesResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/get_block_rfq_quotes
params:
block_rfq_id: 1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '**Maker method**
Retrieves all open quotes for Block RFQs. When a `block_rfq_id` is specified, only the open quotes for that particular Block RFQ will be returned. When a `label` is specified, all quotes with this label are returned. `block_rfq_quote_id` returns one specific quote.
Use [private/add_block_rfq_quote](https://docs.deribit.com/api-reference/block-rfq/private-add_block_rfq_quote) to add quotes, or [private/get_block_rfqs](https://docs.deribit.com/api-reference/block-rfq/private-get_block_rfqs) to retrieve Block RFQ information.
**📖 Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)
**Scope:** `block_rfq:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_block_rfq_quotes)
'
x-mint:
metadata:
title: private/get_block_rfq_quotes
og:title: private/get_block_rfq_quotes
keywords:
- private/get_block_rfq_quotes
- block_rfq_id
- label
- block_rfq_quote_id
- creation_timestamp
- last_update_timestamp
- quote_state
- execution_instruction
- price
- amount
- direction
- filled_amount
- legs
- hedge
- replaced
- app_name
- quote_state_reason
- ratio
- instrument_name
href: /api-reference/block-rfq/private-get_block_rfq_quotes
/private/add_block_rfq_quote:
get:
parameters:
- name: label
in: query
schema:
type: string
required: false
description: User defined label for the Block RFQ quote (maximum 64 characters). Used to identify quotes of a selected Block RFQ
- name: block_rfq_id
required: true
in: query
schema:
type: integer
description: ID of the Block RFQ
- in: query
name: amount
required: true
schema:
$ref: '#/components/schemas/amount'
description: This value multiplied by the ratio of a leg gives trade size on that leg.
- in: query
name: direction
required: true
schema:
$ref: '#/components/schemas/direction'
description: Direction of trade from the maker perspective
- in: query
name: legs
required: true
schema:
type: array
items:
type: object
properties:
instrument_name:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
price:
type: number
description: Price for trade
ratio:
type: integer
description: Ratio of amount between legs
direction:
$ref: '#/components/schemas/direction'
description: Direction of selected leg. Must match the direction of the corresponding leg in the Block RFQ
description: List of legs used for Block RFQ quote
style: form
explode: true
- in: query
name: hedge
required: false
schema:
type: string
description: 'JSON string containing: instrument_name, direction, price, amount'
description: Hedge leg of the Block RFQ. There is only one hedge leg allowed per Block RFQ
- name: execution_instruction
required: false
in: query
schema:
type: string
enum:
- all_or_none
- any_part_of
description: Execution instruction of the quote. Default - `any_part_of`
- `"all_or_none (AON)"` - The quote can only be filled entirely or not at all, ensuring that its amount matches the amount specified in the Block RFQ. Additionally, 'all_or_none' quotes have priority over 'any_part_of' quotes at the same price level.
- `"any_part_of (APO)"` - The quote can be filled either partially or fully, with the filled amount potentially being less than the Block RFQ amount.
- in: query
name: price
required: false
schema:
type: number
description: Aggregated price used for quoting future spreads.
- name: expires_at
required: false
in: query
schema:
type: integer
example: 1745312540321
description: The timestamp when the quote expires (milliseconds since the Unix epoch)
responses:
'200':
$ref: '#/components/responses/PrivateAddBlockRfqQuoteResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/add_block_rfq_quote
params:
label: example_quote
block_rfq_id: 3
amount: 10000
direction: buy
legs:
- instrument_name: BTC-15NOV24
price: 69600
ratio: '1'
direction: buy
hedge:
amount: 10
direction: buy
price: 70000
instrument_name: BTC-PERPETUAL
execution_instruction: any_part_of
expires_at: 1745312540321
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '**Maker method**
Adds a quote to an existing Block RFQ. To calculate individual leg prices, use [private/get_leg_prices](https://docs.deribit.com/api-reference/combo-books/private-get_leg_prices).
Use [private/get_block_rfqs](https://docs.deribit.com/api-reference/block-rfq/private-get_block_rfqs) to retrieve Block RFQ information, or [private/edit_block_rfq_quote](https://docs.deribit.com/api-reference/block-rfq/private-edit_block_rfq_quote) to modify an existing quote.
**📖 Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)
**Scope:** `block_rfq:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fadd_block_rfq_quote)
'
x-mint:
metadata:
title: private/add_block_rfq_quote
og:title: private/add_block_rfq_quote
keywords:
- private/add_block_rfq_quote
- label
- block_rfq_id
- amount
- direction
- legs
- hedge
- execution_instruction
- price
- expires_at
- creation_timestamp
- last_update_timestamp
- block_rfq_quote_id
- quote_state
- filled_amount
- replaced
- app_name
- quote_state_reason
- ratio
- instrument_name
href: /api-reference/block-rfq/private-add_block_rfq_quote
/private/edit_block_rfq_quote:
get:
parameters:
- in: query
name: legs
required: true
schema:
type: array
items:
type: object
properties:
instrument_name:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
price:
type: number
description: Price for trade
ratio:
type: integer
description: Ratio of amount between legs
direction:
$ref: '#/components/schemas/direction'
description: Direction of selected leg. Must match the direction of the corresponding leg in the Block RFQ
description: List of legs used for Block RFQ quote
style: form
explode: true
- in: query
name: amount
required: true
schema:
$ref: '#/components/schemas/amount'
description: This value multiplied by the ratio of a leg gives trade size on that leg.
- name: block_rfq_quote_id
required: false
in: query
schema:
type: integer
description: ID of the Block RFQ quote
- name: label
in: query
schema:
type: string
required: false
description: User defined label for the Block RFQ quote (maximum 64 characters). Used to identify quotes of a selected Block RFQ
- in: query
name: hedge
required: false
schema:
type: string
description: 'JSON string containing: instrument_name, direction, price, amount'
description: Hedge leg of the Block RFQ. There is only one hedge leg allowed per Block RFQ
- name: block_rfq_id
required: false
in: query
schema:
type: integer
description: ID of the Block RFQ
- in: query
name: price
required: false
schema:
type: number
description: Aggregated price used for quoting future spreads.
responses:
'200':
$ref: '#/components/responses/PrivateEditBlockRfqQuoteResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/edit_block_rfq_quote
params:
label: example_quote
block_rfq_id: 3
amount: 20000
direction: buy
legs:
- instrument_name: BTC-15NOV24
price: 74600
ratio: '1'
direction: buy
hedge:
amount: 10
direction: buy
price: 70000
instrument_name: BTC-PERPETUAL
execution_instruction: any_part_of
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '**Maker method**
Edits a Block RFQ quote using the specified `block_rfq_quote_id`. Alternatively, you can use a combination of `block_rfq_id` and `label` to edit the quote.
Use [private/add_block_rfq_quote](https://docs.deribit.com/api-reference/block-rfq/private-add_block_rfq_quote) to add new quotes, or [private/cancel_block_rfq_quote](https://docs.deribit.com/api-reference/block-rfq/private-cancel_block_rfq_quote) to cancel quotes.
**📖 Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)
**Scope:** `block_rfq:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fedit_block_rfq_quote)
'
x-mint:
metadata:
title: private/edit_block_rfq_quote
og:title: private/edit_block_rfq_quote
keywords:
- private/edit_block_rfq_quote
- legs
- amount
- block_rfq_quote_id
- label
- hedge
- block_rfq_id
- price
- creation_timestamp
- last_update_timestamp
- quote_state
- execution_instruction
- direction
- filled_amount
- replaced
- app_name
- quote_state_reason
- ratio
- instrument_name
href: /api-reference/block-rfq/private-edit_block_rfq_quote
/private/cancel_block_rfq_quote:
get:
parameters:
- name: block_rfq_quote_id
required: false
in: query
schema:
type: integer
description: ID of the Block RFQ quote
- name: label
in: query
schema:
type: string
required: false
description: User defined label for the Block RFQ quote (maximum 64 characters). Used to identify quotes of a selected Block RFQ
- name: block_rfq_id
required: false
in: query
schema:
type: integer
description: ID of the Block RFQ
responses:
'200':
$ref: '#/components/responses/PrivateCancelBlockRfqQuoteResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/cancel_block_rfq_quote
params:
label: example_quote
block_rfq_id: 3
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '**Maker method**
Cancels a single Block RFQ quote. You can identify the quote to cancel using either:
- `block_rfq_quote_id` - the unique ID of the quote
- `block_rfq_id` + `label` - the Block RFQ ID and the quote label
**Note:** Mass cancellation by label is not supported. This method cancels only one quote at a time. To cancel all quotes, use [private/cancel_all_block_rfq_quotes](https://docs.deribit.com/api-reference/block-rfq/private-cancel_all_block_rfq_quotes).
**📖 Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)
**Scope:** `block_rfq:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_block_rfq_quote)
'
x-mint:
metadata:
title: private/cancel_block_rfq_quote
og:title: private/cancel_block_rfq_quote
keywords:
- private/cancel_block_rfq_quote
- block_rfq_quote_id
- label
- block_rfq_id
- creation_timestamp
- last_update_timestamp
- quote_state
- execution_instruction
- price
- amount
- direction
- filled_amount
- legs
- hedge
- replaced
- app_name
- quote_state_reason
- ratio
- instrument_name
href: /api-reference/block-rfq/private-cancel_block_rfq_quote
/private/cancel_all_block_rfq_quotes:
get:
parameters:
- name: block_rfq_id
required: false
in: query
schema:
type: integer
description: ID of the Block RFQ
- name: detailed
required: false
in: query
schema:
type: boolean
description: 'When `detailed` is set to `true`, the output format is changed to include a list of all cancelled orders.
**📖 Related Article:** [Detailed Response for Cancel Methods](https://docs.deribit.com/articles/json-rpc-overview#detailed-response-for-cancel-methods)
Default: `false`
'
responses:
'200':
$ref: '#/components/responses/PrivateCancelAllBlockRfqQuotesResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 24
method: private/cancel_all_block_rfq_quotes
params:
block_rfq_id: 154
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '**Maker method**
Cancels all user quotes in all Block RFQs. Optionally cancels all quotes in a specific RFQ if the `block_rfq_id` is provided.
**Note:** Mass cancellation by label is not supported. This method will cancel all quotes regardless of their labels. To cancel a single quote, use [private/cancel_block_rfq_quote](https://docs.deribit.com/api-reference/block-rfq/private-cancel_block_rfq_quote).
**📖 Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)
**Scope:** `block_rfq:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_all_block_rfq_quotes)
'
x-mint:
metadata:
title: private/cancel_all_block_rfq_quotes
og:title: private/cancel_all_block_rfq_quotes
keywords:
- private/cancel_all_block_rfq_quotes
- block_rfq_id
- detailed
href: /api-reference/block-rfq/private-cancel_all_block_rfq_quotes
/private/get_block_rfq_makers:
get:
responses:
'200':
$ref: '#/components/responses/PrivateGetBlockRfqMakersResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/get_block_rfq_makers
params: {}
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Returns a list of all available Block RFQ makers. This method takes no parameters.
Use this method to retrieve the list of makers that can be specified when creating a Block RFQ with [private/create_block_rfq](https://docs.deribit.com/api-reference/block-rfq/private-create_block_rfq).
**📖 Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)
**Scope:** `block_rfq:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_block_rfq_makers)
'
x-mint:
metadata:
title: private/get_block_rfq_makers
og:title: private/get_block_rfq_makers
keywords:
- private/get_block_rfq_makers
href: /api-reference/block-rfq/private-get_block_rfq_makers
/private/get_block_rfq_user_info:
get:
parameters: []
responses:
'200':
$ref: '#/components/responses/PrivateGetBlockRfqUserInfoResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/get_block_rfq_user_info
params: {}
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Returns identity and rating information for the requesting account and its subaccounts. Includes both group-level and individual user-level alias data, if available.
This information is useful for understanding your Block RFQ maker identity and rating when participating in Block RFQ trades.
**📖 Related Article:** [Deribit Block RFQ API walkthrough](https://docs.deribit.com/articles/block-rfq-api-walkthrough)
**Scope:** `block_rfq:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_block_rfq_user_info)
'
x-mint:
metadata:
title: private/get_block_rfq_user_info
og:title: private/get_block_rfq_user_info
keywords:
- private/get_block_rfq_user_info
- parent
- users
- identity
- is_maker
- user_id
- taker_rating
href: /api-reference/block-rfq/private-get_block_rfq_user_info
/private/simulate_block_trade:
get:
parameters:
- in: query
name: role
required: false
schema:
$ref: '#/components/schemas/role'
description: Describes if user wants to be maker or taker of trades
- in: query
name: trades
required: true
schema:
type: array
items:
type: object
properties:
instrument_name:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
price:
type: number
description: Price for trade
amount:
$ref: '#/components/schemas/amount'
description: It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.
direction:
$ref: '#/components/schemas/direction'
description: Direction of trade from the maker perspective
description: List of trades for block trade
style: form
explode: true
responses:
'200':
$ref: '#/components/responses/PrivateSimulateBlockTradeResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/simulate_block_trade
params:
role: maker
trades:
- instrument_name: BTC-PERPETUAL
direction: buy
price: 11624
amount: 40
- instrument_name: BTC-9AUG19-10250-P
direction: buy
amount: 1.2
price: 0.0707
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Checks if a block trade can be executed without actually executing it. Use this method to verify that a block trade will succeed before proceeding with the actual execution.
**📖 Related Article:** [Block Trading](https://docs.deribit.com/articles/block-trading-api)
**Scope:** `block_trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fsimulate_block_trade)
'
x-mint:
metadata:
title: private/simulate_block_trade
og:title: private/simulate_block_trade
keywords:
- private/simulate_block_trade
- role
- trades
href: /api-reference/block-trade/private-simulate_block_trade
/private/verify_block_trade:
get:
parameters:
- in: query
name: timestamp
required: true
schema:
$ref: '#/components/schemas/timestamp'
description: Timestamp, shared with other party (milliseconds since the UNIX epoch)
- in: query
name: nonce
required: true
schema:
$ref: '#/components/schemas/nonce'
description: Nonce, shared with other party
- in: query
name: role
required: true
schema:
$ref: '#/components/schemas/role'
description: Describes if user wants to be maker or taker of trades
- in: query
name: trades
required: true
schema:
type: array
items:
type: object
properties:
instrument_name:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
price:
type: number
description: Price for trade
amount:
$ref: '#/components/schemas/amount'
description: It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.
direction:
$ref: '#/components/schemas/direction'
description: Direction of trade from the maker perspective
description: List of trades for block trade
style: form
explode: true
responses:
'200':
$ref: '#/components/responses/PrivateVerifyBlockTradeResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/verify_block_trade
params:
nonce: okpdjkdo
timestamp: 1565172650935
role: maker
trades:
- instrument_name: BTC-PERPETUAL
direction: buy
price: 11624
amount: 40
- instrument_name: BTC-9AUG19-10250-P
direction: buy
amount: 1.2
price: 0.0707
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Verifies and creates a block trade signature. This is the first step in the block trade workflow - the first party calls this method to generate a signature that must be shared with the second party.
**Note:** In the API, the `direction` field is always expressed from the maker''s perspective. This means that when you accept a block trade as a taker, the direction shown in the API represents the opposite side of your trade. For example, if you are buying puts as a taker, the API will show the operation as a "sell put" (maker''s perspective), and you will be verifying and accepting a "sell put" block trade.
**📖 Related Article:** [Block Trading](https://docs.deribit.com/articles/block-trading-api)
**Scope:** `block_trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fverify_block_trade)
'
x-mint:
metadata:
title: private/verify_block_trade
og:title: private/verify_block_trade
keywords:
- private/verify_block_trade
- timestamp
- nonce
- role
- trades
- signature
href: /api-reference/block-trade/private-verify_block_trade
/private/execute_block_trade:
get:
parameters:
- in: query
name: timestamp
required: true
schema:
$ref: '#/components/schemas/timestamp'
description: Timestamp, shared with other party (milliseconds since the UNIX epoch)
- in: query
name: nonce
required: true
schema:
$ref: '#/components/schemas/nonce'
description: Nonce, shared with other party
- in: query
name: role
required: true
schema:
$ref: '#/components/schemas/role'
description: Describes if user wants to be maker or taker of trades
- in: query
name: trades
required: true
schema:
type: array
items:
type: object
properties:
instrument_name:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
price:
type: number
description: Price for trade
amount:
$ref: '#/components/schemas/amount'
description: It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.
direction:
$ref: '#/components/schemas/direction'
description: Direction of trade from the maker perspective
description: List of trades for block trade
style: form
explode: true
- in: query
name: counterparty_signature
required: true
schema:
$ref: '#/components/schemas/block_trade_signature'
description: Signature of block trade generated by `private/verify_block_trade_method`
responses:
'200':
$ref: '#/components/responses/PrivateGetBlockTradeResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/execute_block_trade
params:
nonce: bszyprbq
timestamp: 1590485535899
role: maker
trades:
- instrument_name: BTC-PERPETUAL
direction: sell
price: 8900
amount: 200000
- instrument_name: BTC-28MAY20-9000-C
direction: sell
amount: 5
price: 0.0133
counterparty_signature: 1590485595899.1Mn52L_Q.lNyNBzXXo-_QBT_wDuMgnhA7uS9tBqdQ5TLN6rxbuoAiQhyaJYGJrm5IV_9enp9niY_x8D60AJLm3yEKPUY1Dv3T0TW0n5-ADPpJF7Fpj0eVDZpZ6QCdX8snBWrSJ0TtqevnO64RCBlN1dIm2T70PP9dlhiqPDAUYI4fpB1vLYI
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Executes a block trade. This is the second step in the block trade workflow - the second party calls this method with the signature received from the first party to execute the trade.
The whole request must be exactly the same as in [private/verify_block_trade](https://docs.deribit.com/api-reference/block-trade/private-verify_block_trade), only the `role` field should be set appropriately - this means that both sides have to agree on the same `timestamp`, `nonce`, and `trades` fields, and the server will ensure that the `role` field is different between sides (each party accepts their own role).
Using the same `timestamp` and `nonce` by both sides in [private/verify_block_trade](https://docs.deribit.com/api-reference/block-trade/private-verify_block_trade) ensures that even if unintentionally both sides execute the given block trade with a valid `counterparty_signature`, the block trade will be executed only once.
**Note:** In the API, the `direction` field is always expressed from the maker''s perspective. This means that when you accept a block trade as a taker, the direction shown in the API represents the opposite side of your trade. For example, if you are buying puts as a taker, the API will show the operation as a "sell put" (maker''s perspective), and you will be verifying and accepting a "sell put" block trade.
**📖 Related Article:** [Block Trading](https://docs.deribit.com/articles/block-trading-api)
**Scope:** `block_trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fexecute_block_trade)
'
x-mint:
metadata:
title: private/execute_block_trade
og:title: private/execute_block_trade
keywords:
- private/execute_block_trade
- timestamp
- nonce
- role
- trades
- counterparty_signature
- app_name
- broker_code
- broker_name
- trade_id
- trade_seq
- instrument_name
- order_type
- advanced
- order_id
- matching_id
- direction
- tick_direction
- index_price
- price
- amount
- contracts
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- label
- state
- block_trade_id
- block_rfq_id
- block_rfq_quote_id
- reduce_only
- post_only
- mmp
- risk_reducing
- api
- profit_loss
- mark_price
- legs
- combo_id
- combo_trade_id
- quote_set_id
- quote_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/block-trade/private-execute_block_trade
/private/invalidate_block_trade_signature:
get:
parameters:
- in: query
name: signature
required: true
schema:
$ref: '#/components/schemas/block_trade_signature'
description: Signature of block trade that will be invalidated
responses:
'200':
$ref: '#/components/responses/OkResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/invalidate_block_trade_signature
params:
signature: 1565173369982.1M9tO0Q-.z9n9WyZUU5op9pEz6Jtd2CI71QxQMMsCZAexnIfK9HQRT1pKH3clxeIbY7Bqm-yMcWIoE3IfCDPW5VEdiN-6oS0YkKUyXPD500MUf3ULKhfkmH81EZs
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Invalidates a block trade signature, effectively cancelling the block trade. This can be called at any time before [private/execute_block_trade](https://docs.deribit.com/api-reference/block-trade/private-execute_block_trade) is called.
**📖 Related Article:** [Block Trading](https://docs.deribit.com/articles/block-trading-api)
**Scope:** `block_trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Finvalidate_block_trade_signature)
'
x-mint:
metadata:
title: private/invalidate_block_trade_signature
og:title: private/invalidate_block_trade_signature
keywords:
- private/invalidate_block_trade_signature
- signature
href: /api-reference/block-trade/private-invalidate_block_trade_signature
/private/get_block_trade:
get:
parameters:
- in: query
name: id
required: true
schema:
$ref: '#/components/schemas/block_trade_id'
description: Block trade id
responses:
'200':
$ref: '#/components/responses/PrivateGetBlockTradeResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/get_block_trade
params:
id: '61'
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Returns information about a specific block trade identified by `block_trade_id`.
**📖 Related Article:** [Block Trading](https://docs.deribit.com/articles/block-trading-api)
**Scope:** `block_trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_block_trade)
'
x-mint:
metadata:
title: private/get_block_trade
og:title: private/get_block_trade
keywords:
- private/get_block_trade
- id
- timestamp
- trades
- app_name
- broker_code
- broker_name
- trade_id
- trade_seq
- instrument_name
- order_type
- advanced
- order_id
- matching_id
- direction
- tick_direction
- index_price
- price
- amount
- contracts
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- label
- state
- block_trade_id
- block_rfq_id
- block_rfq_quote_id
- reduce_only
- post_only
- mmp
- risk_reducing
- api
- profit_loss
- mark_price
- legs
- combo_id
- combo_trade_id
- quote_set_id
- quote_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/block-trade/private-get_block_trade
/private/get_block_trades:
get:
parameters:
- in: query
name: currency
required: false
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: count
in: query
required: false
schema:
type: integer
maximum: 101
minimum: 1
description: Count of Block Trades returned, maximum - `101`
- name: start_id
required: false
in: query
schema:
$ref: '#/components/schemas/block_trade_id'
description: Response will contain block trades older than the one provided in this field
- name: end_id
required: false
in: query
schema:
$ref: '#/components/schemas/block_trade_id'
description: The id of the oldest block trade to be returned, `start_id` is required with `end_id`
- name: block_rfq_id
required: false
in: query
schema:
type: integer
description: ID of the Block RFQ
- name: broker_code
in: query
required: false
schema:
type: string
example: 2krM7sJsx
description: Broker code to filter block trades. Only broker clients can use `broker_code` to filter broker block trades. Use `any` for all block trades.
responses:
'200':
$ref: '#/components/responses/PrivateGetBlockTradesResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/get_block_trades
params:
currency: BTC
count: 1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Returns a list of the user''s block trades. If currency is not provided, returns block trades for all currencies. `block_rfq_id` can be provided to receive block trades related to that particular Block RFQ.
**📖 Related Article:** [Block Trading](https://docs.deribit.com/articles/block-trading-api)
**Scope:** `block_trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_block_trades)
'
x-mint:
metadata:
title: private/get_block_trades
og:title: private/get_block_trades
keywords:
- private/get_block_trades
- currency
- count
- start_id
- end_id
- block_rfq_id
- broker_code
- timestamp
- trades
- app_name
- broker_name
- trade_id
- trade_seq
- instrument_name
- order_type
- advanced
- order_id
- matching_id
- direction
- tick_direction
- index_price
- price
- amount
- contracts
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- label
- state
- block_trade_id
- block_rfq_quote_id
- reduce_only
- post_only
- mmp
- risk_reducing
- api
- profit_loss
- mark_price
- legs
- combo_id
- combo_trade_id
- quote_set_id
- quote_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/block-trade/private-get_block_trades
/private/get_block_trade_requests:
get:
parameters:
- name: broker_code
in: query
required: false
schema:
type: string
example: jpqYKgg1
description: Broker code to filter block trade requests. Only broker clients can use `broker_code` to query for their executed broker block trades.
responses:
'200':
$ref: '#/components/responses/PrivateGetBlockTradeRequestsResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/get_block_trade_requests
params:
broker_code: jpqYKgg1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Provides a list of block trade requests including pending approvals, declined trades, and expired trades. `timestamp` and `nonce` received in response can be used with [private/approve_block_trade](https://docs.deribit.com/api-reference/block-trade/private-approve_block_trade) or [private/reject_block_trade](https://docs.deribit.com/api-reference/block-trade/private-reject_block_trade) to approve or reject the pending block trade.
To use the block trade approval feature, an [additional API key setting feature](https://docs.deribit.com/articles/creating-api-key#block-trade-approval-feature) called `enabled_features: block_trade_approval` is required. This key has to be given to the broker/registered partner who performs the trades on behalf of the user for the feature to be active. If the user wants to approve the trade, they must approve it from a different API key that doesn''t have this feature enabled.
Only broker clients can use `broker_code` to query for their broker block trade requests.
**📖 Related Article:** [Block Trading](https://docs.deribit.com/articles/block-trading-api)
**Scope:** `block_trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_block_trade_requests)
'
x-mint:
metadata:
title: private/get_block_trade_requests
og:title: private/get_block_trade_requests
keywords:
- private/get_block_trade_requests
- broker_code
- nonce
- timestamp
- trades
- app_name
- username
- role
- user_id
- broker_name
- state
- counterparty_state
- combo_id
- value
href: /api-reference/block-trade/private-get_block_trade_requests
/private/approve_block_trade:
get:
parameters:
- in: query
name: timestamp
required: true
schema:
$ref: '#/components/schemas/timestamp'
description: Timestamp, shared with other party (milliseconds since the UNIX epoch)
- in: query
name: nonce
required: true
schema:
$ref: '#/components/schemas/nonce'
description: Nonce, shared with other party
- in: query
name: role
required: true
schema:
$ref: '#/components/schemas/role'
description: Describes if user wants to be maker or taker of trades
responses:
'200':
$ref: '#/components/responses/OkResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/approve_block_trade
params:
timestamp: 1711468813551
nonce: bt-468nha
role: maker
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Approves a pending block trade. `nonce` and `timestamp` are used to identify the block trade while `role` should be opposite to the trading counterparty.
Use [private/get_block_trade_requests](https://docs.deribit.com/api-reference/block-trade/private-get_block_trade_requests) to retrieve pending block trades that require approval.
To use the block trade approval feature, an [additional API key setting feature](https://docs.deribit.com/articles/creating-api-key#block-trade-approval-feature) called `enabled_features: block_trade_approval` is required. This key has to be given to the broker/registered partner who performs the trades on behalf of the user for the feature to be active. If the user wants to approve the trade, they must approve it from a different API key that doesn''t have this feature enabled.
**📖 Related Article:** [Block Trading](https://docs.deribit.com/articles/block-trading-api)
**Scope:** `block_trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fapprove_block_trade)
'
x-mint:
metadata:
title: private/approve_block_trade
og:title: private/approve_block_trade
keywords:
- private/approve_block_trade
- timestamp
- nonce
- role
href: /api-reference/block-trade/private-approve_block_trade
/private/reject_block_trade:
get:
parameters:
- in: query
name: timestamp
required: true
schema:
$ref: '#/components/schemas/timestamp'
description: Timestamp, shared with other party (milliseconds since the UNIX epoch)
- in: query
name: nonce
required: true
schema:
$ref: '#/components/schemas/nonce'
description: Nonce, shared with other party
- in: query
name: role
required: true
schema:
$ref: '#/components/schemas/role'
description: Describes if user wants to be maker or taker of trades
responses:
'200':
$ref: '#/components/responses/OkResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/reject_block_trade
params:
timestamp: 1711468813551
nonce: bt-468nha
role: maker
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Rejects a pending block trade. `nonce` and `timestamp` are used to identify the block trade while `role` should be opposite to the trading counterparty.
Use [private/get_block_trade_requests](https://docs.deribit.com/api-reference/block-trade/private-get_block_trade_requests) to retrieve pending block trades that require approval.
To use the block trade approval feature, an [additional API key setting feature](https://docs.deribit.com/articles/creating-api-key#block-trade-approval-feature) called `enabled_features: block_trade_approval` is required. This key has to be given to the broker/registered partner who performs the trades on behalf of the user for the feature to be active. If the user wants to approve the trade, they must approve it from a different API key that doesn''t have this feature enabled.
**📖 Related Article:** [Block Trading](https://docs.deribit.com/articles/block-trading-api)
**Scope:** `block_trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Freject_block_trade)
'
x-mint:
metadata:
title: private/reject_block_trade
og:title: private/reject_block_trade
keywords:
- private/reject_block_trade
- timestamp
- nonce
- role
href: /api-reference/block-trade/private-reject_block_trade
/private/get_broker_trades:
get:
parameters:
- in: query
name: currency
required: false
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: count
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: Number of requested items, default - `20`, maximum - `1000`
- name: start_id
required: false
in: query
schema:
$ref: '#/components/schemas/block_trade_id'
description: Response will contain block trades older than the one provided in this field
- name: end_id
required: false
in: query
schema:
$ref: '#/components/schemas/block_trade_id'
description: The id of the oldest block trade to be returned, `start_id` is required with `end_id`
responses:
'200':
$ref: '#/components/responses/PrivateGetBrokerTradesResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/get_broker_trades
params:
currency: BTC
count: 1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '**Broker Method** Returns list of broker block trades. If currency is not provided, returns broker block trades for all currencies.
**Scope:** `block_trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_broker_trades)
'
x-mint:
metadata:
title: private/get_broker_trades
og:title: private/get_broker_trades
keywords:
- private/get_broker_trades
- currency
- count
- start_id
- end_id
- history
- next_start_id
- timestamp
- trades
- maker
- taker
- app_name
- broker_code
- broker_name
- trade_id
- trade_seq
- instrument_name
- order_type
- advanced
- order_id
- matching_id
- direction
- tick_direction
- index_price
- price
- amount
- contracts
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- label
- state
- block_trade_id
- block_rfq_id
- block_rfq_quote_id
- reduce_only
- post_only
- mmp
- risk_reducing
- api
- profit_loss
- mark_price
- legs
- combo_id
- combo_trade_id
- quote_set_id
- quote_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
- client_name
- client_link_name
href: /api-reference/block-trade/private-get_broker_trades
/private/get_broker_trade_requests:
get:
responses:
'200':
$ref: '#/components/responses/PrivateGetBrokerTradeRequestsResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 7
method: private/get_broker_trade_requests
params: {}
description: JSON-RPC Request Example
description: JSON-RPC request body
description: '**Broker Method** Provides a list of broker block trade requests including pending approvals, declined trades, and expired trades. `timestamp` and `nonce` received in response can be used to approve or reject the pending broker block trade. This method takes no parameters.
**Scope:** `block_trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_broker_trade_requests)
'
x-mint:
metadata:
title: private/get_broker_trade_requests
og:title: private/get_broker_trade_requests
keywords:
- private/get_broker_trade_requests
- timestamp
- state
- trades
- maker
- taker
- nonce
- amount
- direction
- price
- instrument_name
- client_id
- user_id
- client_name
- client_link_name
- client_link_id
href: /api-reference/block-trade/private-get_broker_trade_requests
/private/create_combo:
get:
parameters:
- in: query
name: trades
required: true
schema:
type: array
items:
type: object
properties:
instrument_name:
$ref: '#/components/schemas/instrument_name'
amount:
$ref: '#/components/schemas/amount'
direction:
$ref: '#/components/schemas/direction'
description: List of trades used to create a combo
style: form
explode: true
responses:
'200':
$ref: '#/components/responses/PrivateCreateComboResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 6
method: private/create_combo
params:
trades:
- instrument_name: BTC-29APR22-37500-C
amount: '1'
direction: buy
- instrument_name: BTC-29APR22-37500-P
amount: '1'
direction: sell
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Verifies and creates a combo book or returns an existing combo matching the given trades. Combos allow trading on multiple instruments (futures and options) simultaneously as a single strategy.
If a combo matching the provided trades already exists, this method returns the existing combo. Otherwise, it creates a new combo book with the specified leg structure.
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcreate_combo)
'
x-mint:
metadata:
title: private/create_combo
og:title: private/create_combo
keywords:
- private/create_combo
- trades
- instrument_id
- state
- state_timestamp
- creation_timestamp
- legs
- instrument_name
- amount
href: /api-reference/combo-books/private-create_combo
/private/get_leg_prices:
get:
parameters:
- in: query
name: legs
required: true
schema:
type: array
items:
type: object
properties:
instrument_name:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
amount:
$ref: '#/components/schemas/amount'
description: It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.
direction:
$ref: '#/components/schemas/direction'
description: Direction of selected leg
description: List of legs for which the prices will be calculated
style: form
explode: true
- name: price
in: query
schema:
type: number
required: true
description: Price for the whole leg structure
responses:
'200':
$ref: '#/components/responses/PrivateGetLegPricesResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/get_leg_prices
params:
price: 0.6
legs:
- instrument_name: BTC-1NOV24-67000-C
direction: buy
amount: 2
- instrument_name: BTC-1NOV24-66000-C
direction: sell
amount: 2
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Returns individual leg prices for a given combo structure based on an aggregated price of the strategy and the mark prices of the individual legs.
**Note:** Leg prices change dynamically with mark price fluctuations, and the algorithm is calibrated only for conventional option structures and future spreads. This method supports both inverse strategies and known linear structures within a single currency pair.
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_leg_prices)
'
x-mint:
metadata:
title: private/get_leg_prices
og:title: private/get_leg_prices
keywords:
- private/get_leg_prices
- legs
- price
- amount
- ratio
- instrument_name
- direction
href: /api-reference/combo-books/private-get_leg_prices
/private/enable_cancel_on_disconnect:
get:
tags:
- Private
parameters:
- name: scope
in: query
required: false
schema:
type: string
enum:
- connection
- account
description: Specifies if Cancel On Disconnect change should be applied/checked for the current connection or the account (default - `connection`)
**NOTICE:** Scope `connection` can be used only when working via Websocket.
responses:
'200':
$ref: '#/components/responses/OkResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 7859
method: private/enable_cancel_on_disconnect
params:
scope: account
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Enable Cancel On Disconnect for the connection. After enabling, all orders created via this connection will be automatically cancelled when the connection is closed.
Cancel is triggered in the following cases: when the TCP connection is properly terminated, when the connection is closed due to 10 minutes of inactivity, or when a heartbeat detects a disconnection. To reduce the inactivity timeout, consider using [public/set_heartbeat](https://docs.deribit.com/api-reference/session-management/public-set_heartbeat).
**Note:** If the connection is gracefully closed using [private/logout](https://docs.deribit.com/api-reference/authentication/private-logout), cancel-on-disconnect will **not** be triggered.
**Notice:** Cancel-on-Disconnect does not affect orders created by other connections - they will remain active! When change is applied on the `account` scope, then every newly opened connection will start with **active** Cancel on Disconnect.
**WebSocket Only:** This method is designed exclusively for WebSocket connections. Attempting to use it via REST/HTTP will result in an error response.
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fenable_cancel_on_disconnect)
'
x-mint:
metadata:
title: private/enable_cancel_on_disconnect
og:title: private/enable_cancel_on_disconnect
keywords:
- private/enable_cancel_on_disconnect
- scope
href: /api-reference/session-management/private-enable_cancel_on_disconnect
/private/disable_cancel_on_disconnect:
get:
tags:
- Private
parameters:
- name: scope
in: query
required: false
schema:
type: string
enum:
- connection
- account
description: Specifies if Cancel On Disconnect change should be applied/checked for the current connection or the account (default - `connection`)
**NOTICE:** Scope `connection` can be used only when working via Websocket.
responses:
'200':
$ref: '#/components/responses/OkResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1569
method: private/disable_cancel_on_disconnect
params:
scope: account
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Disable Cancel On Disconnect for the connection.
When change is applied for the account, then every newly opened connection will start with **inactive** Cancel on Disconnect.
**WebSocket Only:** This method is designed exclusively for WebSocket connections. Attempting to use it via REST/HTTP will result in an error response.
**Scope:** `account:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fdisable_cancel_on_disconnect)
'
x-mint:
metadata:
title: private/disable_cancel_on_disconnect
og:title: private/disable_cancel_on_disconnect
keywords:
- private/disable_cancel_on_disconnect
- scope
href: /api-reference/session-management/private-disable_cancel_on_disconnect
/private/get_cancel_on_disconnect:
get:
tags:
- Private
parameters:
- name: scope
in: query
required: false
schema:
type: string
enum:
- connection
- account
description: Specifies if Cancel On Disconnect change should be applied/checked for the current connection or the account (default - `connection`)
**NOTICE:** Scope `connection` can be used only when working via Websocket.
responses:
'200':
$ref: '#/components/responses/PrivateGetCancelOnDisconnectResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 220
method: private/get_cancel_on_disconnect
params:
scope: account
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Read current Cancel On Disconnect configuration for the account.
**Scope:** `account:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_cancel_on_disconnect)
'
x-mint:
metadata:
title: private/get_cancel_on_disconnect
og:title: private/get_cancel_on_disconnect
keywords:
- private/get_cancel_on_disconnect
- scope
- enabled
href: /api-reference/session-management/private-get_cancel_on_disconnect
/private/subscribe:
get:
tags:
- Private
parameters:
- name: channels
in: query
schema:
type: array
items:
type: string
example: deribit_price_index.btc_usd
example:
- deribit_price_index.btc_usd
required: true
description: A list of channels to subscribe to. See [Notifications and Subscriptions](https://docs.deribit.com/articles/notifications) for all available channels.
style: form
explode: true
- name: label
in: query
required: false
schema:
type: string
example: TestLabel1
description: Optional label which will be added to notifications of private channels (max 16 characters).
responses:
'200':
$ref: '#/components/responses/PrivateSubscribeResponse'
'401':
$ref: '#/components/responses/ErrorMessageResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 4235
method: private/subscribe
params:
channels:
- deribit_price_index.btc_usd
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Subscribe to one or more channels. The name of the channel determines what information will be provided, and in what form.
For a complete list of available subscription channels and their notification formats, see [Notifications and Subscriptions](https://docs.deribit.com/articles/notifications).
**Note - This method has distinct API rate limiting requirements:** Sustained rate: ~3.3 requests/second. For more information, see [Rate Limits](https://docs.deribit.com/articles/rate-limits).
**📖 Related Article:** [Market Data Collection Best Practices](https://docs.deribit.com/articles/market-data-collection-best-practices)
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fsubscribe)
'
x-mint:
metadata:
title: private/subscribe
og:title: private/subscribe
keywords:
- private/subscribe
- channels
- label
href: /api-reference/subscription-management/private-subscribe
/private/unsubscribe:
get:
tags:
- Private
parameters:
- name: channels
in: query
schema:
type: array
items:
type: string
example: deribit_price_index.btc_usd
example:
- deribit_price_index.btc_usd
required: true
description: A list of channels to unsubscribe from. Only successfully unsubscribed channels will be returned in the result. See [Notifications and Subscriptions](https://docs.deribit.com/articles/notifications) for all available channels.
style: form
explode: true
responses:
'200':
$ref: '#/components/responses/Getunsubscribe200response'
'401':
$ref: '#/components/responses/ErrorMessageResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 3370
method: private/unsubscribe
params:
channels:
- deribit_price_index.btc_usd
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Unsubscribe from one or more channels. The response contains only the channels that were successfully unsubscribed in this request.
For a complete list of available subscription channels and their notification formats, see [Notifications and Subscriptions](https://docs.deribit.com/articles/notifications).
**Note:** The `result` field in the response contains only the channels that were successfully processed and unsubscribed from this specific request. It does not include all previously subscribed topics. If a channel in the request is invalid, not subscribed, or fails validation, it will not appear in the result.
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Funsubscribe)
'
x-mint:
metadata:
title: private/unsubscribe
og:title: private/unsubscribe
keywords:
- private/unsubscribe
- channels
href: /api-reference/subscription-management/private-unsubscribe
/private/unsubscribe_all:
get:
tags:
- Private
responses:
'200':
$ref: '#/components/responses/OkResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 154
method: private/unsubscribe_all
params: {}
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Unsubscribe from all the channels subscribed so far. This method takes no parameters.
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Funsubscribe_all)
'
x-mint:
metadata:
title: private/unsubscribe_all
og:title: private/unsubscribe_all
keywords:
- private/unsubscribe_all
href: /api-reference/subscription-management/private-unsubscribe_all
/private/get_settlement_history_by_currency:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- in: query
name: type
required: false
schema:
$ref: '#/components/schemas/settlement_type'
description: Settlement type
- name: count
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: Number of requested items, default - `20`, maximum - `1000`
- name: continuation
in: query
required: false
schema:
type: string
example: xY7T6cutS3t2B9YtaDkE6TS379oKnkzTvmEDUnEUP2Msa9xKWNNaT
description: Continuation token for pagination
- in: query
name: search_start_timestamp
required: false
schema:
$ref: '#/components/schemas/timestamp'
description: The latest timestamp to return result from (milliseconds since the UNIX epoch)
responses:
'200':
$ref: '#/components/responses/PrivateSettlementResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 8304
method: private/get_settlement_history_by_currency
params:
currency: BTC
type: delivery
count: 1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves settlement, delivery, and bankruptcy events that have affected your account for a specific currency. Settlements occur when futures or options contracts expire and are settled at the delivery price.
Results can be filtered by settlement type and timestamp. Use pagination parameters (`count` and `continuation`) to retrieve large settlement histories. This data is useful for tracking account-affecting settlement events and understanding how contract expirations impact your account.
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_settlement_history_by_currency)
'
x-mint:
metadata:
title: private/get_settlement_history_by_currency
og:title: private/get_settlement_history_by_currency
keywords:
- private/get_settlement_history_by_currency
- currency
- type
- count
- continuation
- search_start_timestamp
- settlements
- funding
- funded
- index_price
- instrument_name
- mark_price
- position
- profit_loss
- session_bankruptcy
- session_profit_loss
- session_tax
- session_tax_rate
- socialized
- timestamp
href: /api-reference/trading/private-get_settlement_history_by_currency
/private/get_settlement_history_by_instrument:
get:
parameters:
- name: instrument_name
required: true
in: query
schema:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
- in: query
name: type
required: false
schema:
$ref: '#/components/schemas/settlement_type'
description: Settlement type
- name: count
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: Number of requested items, default - `20`, maximum - `1000`
- name: continuation
in: query
required: false
schema:
type: string
example: xY7T6cutS3t2B9YtaDkE6TS379oKnkzTvmEDUnEUP2Msa9xKWNNaT
description: Continuation token for pagination
- in: query
name: search_start_timestamp
required: false
schema:
$ref: '#/components/schemas/timestamp'
description: The latest timestamp to return result from (milliseconds since the UNIX epoch)
responses:
'200':
$ref: '#/components/responses/PrivateSettlementResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2192
method: private/get_settlement_history_by_instrument
params:
instrument_name: ETH-22FEB19
type: settlement
count: 1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves settlement, delivery, and bankruptcy events for a specific instrument that have affected your account. Settlements occur when futures or options contracts expire and are settled at the delivery price.
Results can be filtered by settlement type and timestamp. Use pagination parameters (`count` and `continuation`) to retrieve large settlement histories. This method is useful for tracking settlement events for a specific instrument.
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_settlement_history_by_instrument)
'
x-mint:
metadata:
title: private/get_settlement_history_by_instrument
og:title: private/get_settlement_history_by_instrument
keywords:
- private/get_settlement_history_by_instrument
- instrument_name
- type
- count
- continuation
- search_start_timestamp
- settlements
- funding
- funded
- index_price
- mark_price
- position
- profit_loss
- session_bankruptcy
- session_profit_loss
- session_tax
- session_tax_rate
- socialized
- timestamp
href: /api-reference/trading/private-get_settlement_history_by_instrument
/private/get_order_history_by_instrument:
get:
parameters:
- name: instrument_name
required: true
in: query
schema:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
- name: count
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: Number of requested items, default - `20`, maximum - `1000`
- name: offset
in: query
required: false
schema:
example: 10
type: integer
description: The offset for pagination, default - `0`
- name: include_old
in: query
required: false
schema:
example: false
type: boolean
description: Include in result orders older than 2 days, default - `false`
- name: include_unfilled
in: query
required: false
schema:
example: false
type: boolean
description: Include in result fully unfilled closed orders, default - `false`
- name: with_continuation
in: query
required: false
schema:
type: boolean
description: When set to true, the API response format changes from a simple list of orders to an object containing the orders and a continuation token.
- name: continuation
in: query
required: false
schema:
type: string
example: xY7T6cutS3t2B9YtaDkE6TS379oKnkzTvmEDUnEUP2Msa9xKWNNaT
description: Continuation token for pagination
- name: historical
in: query
required: false
schema:
type: boolean
description: 'Determines whether historical trade and order records should be retrieved.
- `false` (default): Returns recent records: orders for 30 min, trades for 24h.
- `true`: Fetches historical records, available after a short delay due to indexing. Recent data is not included.
**📖 Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)
'
responses:
'200':
$ref: '#/components/responses/PrivateGetOrderHistoryResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1032
method: private/get_order_history_by_instrument
params:
instrument_name: BTC-PERPETUAL
count: 1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves the order history for a specific instrument. The history includes orders that have been partially or fully filled, as well as cancelled orders (if `include_unfilled_orders` is set to true).
Results can be paginated using `offset` and `count` parameters, or using continuation tokens. Use `include_old_orders` to include orders from before a certain date, and `historical` to retrieve historical order data.
**📖 Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_order_history_by_instrument)
'
x-mint:
metadata:
title: private/get_order_history_by_instrument
og:title: private/get_order_history_by_instrument
keywords:
- private/get_order_history_by_instrument
- instrument_name
- count
- offset
- include_old
- include_unfilled
- with_continuation
- continuation
- historical
- order_id
- order_state
- order_type
- original_order_type
- time_in_force
- is_rebalance
- is_liquidation
- creation_timestamp
- last_update_timestamp
- direction
- price
- label
- post_only
- reject_post_only
- reduce_only
- api
- web
- mobile
- refresh_amount
- display_amount
- amount
- contracts
- filled_amount
- average_price
- advanced
- implv
- usd
- triggered
- trigger
- trigger_price
- trigger_offset
- trigger_reference_price
- block_trade
- mmp
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- trigger_fill_condition
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
href: /api-reference/trading/private-get_order_history_by_instrument
/private/get_order_history_by_currency:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: kind
required: false
in: query
schema:
$ref: '#/components/schemas/kind_with_combo_all'
description: Instrument kind, `"combo"` for any combo or `"any"` for all. If not provided instruments of all kinds are considered
- name: count
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: Number of requested items, default - `20`, maximum - `1000`
- name: offset
in: query
required: false
schema:
example: 10
type: integer
description: The offset for pagination, default - `0`
- name: include_old
in: query
required: false
schema:
example: false
type: boolean
description: Include in result orders older than 2 days, default - `false`
- name: include_unfilled
in: query
required: false
schema:
example: false
type: boolean
description: Include in result fully unfilled closed orders, default - `false`
- name: with_continuation
in: query
required: false
schema:
type: boolean
description: When set to true, the API response format changes from a simple list of orders to an object containing the orders and a continuation token.
- name: continuation
in: query
required: false
schema:
type: string
example: xY7T6cutS3t2B9YtaDkE6TS379oKnkzTvmEDUnEUP2Msa9xKWNNaT
description: Continuation token for pagination
- name: historical
in: query
required: false
schema:
type: boolean
description: 'Determines whether historical trade and order records should be retrieved.
- `false` (default): Returns recent records: orders for 30 min, trades for 24h.
- `true`: Fetches historical records, available after a short delay due to indexing. Recent data is not included.
**📖 Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)
'
responses:
'200':
$ref: '#/components/responses/PrivateGetOrderHistoryResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 9305
method: private/get_order_history_by_currency
params:
currency: BTC
kind: future
count: 1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves the order history for a specific currency. The history includes orders that have been partially or fully filled, as well as cancelled orders (if `include_unfilled_orders` is set to true).
Results can be filtered by instrument kind and paginated using `offset` and `count` parameters, or using continuation tokens. Use `include_old_orders` to include orders from before a certain date, and `historical` to retrieve historical order data.
**📖 Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_order_history_by_currency)
'
x-mint:
metadata:
title: private/get_order_history_by_currency
og:title: private/get_order_history_by_currency
keywords:
- private/get_order_history_by_currency
- currency
- kind
- count
- offset
- include_old
- include_unfilled
- with_continuation
- continuation
- historical
- order_id
- order_state
- order_type
- original_order_type
- time_in_force
- is_rebalance
- is_liquidation
- instrument_name
- creation_timestamp
- last_update_timestamp
- direction
- price
- label
- post_only
- reject_post_only
- reduce_only
- api
- web
- mobile
- refresh_amount
- display_amount
- amount
- contracts
- filled_amount
- average_price
- advanced
- implv
- usd
- triggered
- trigger
- trigger_price
- trigger_offset
- trigger_reference_price
- block_trade
- mmp
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- trigger_fill_condition
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
href: /api-reference/trading/private-get_order_history_by_currency
/private/get_order_state:
get:
tags:
- Private
parameters:
- in: query
name: order_id
required: true
schema:
$ref: '#/components/schemas/order_id'
description: The order id
responses:
'200':
$ref: '#/components/responses/PrivateGetOrderStateResponse'
'400':
$ref: '#/components/responses/ErrorMessageResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 4316
method: private/get_order_state
params:
order_id: ETH-331562
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves the current state of an order identified by its order ID. The response includes order details such as status (open, filled, cancelled), filled amount, remaining amount, price, and other order properties.
**Important Note for Mass Quotes:** Quote orders are order-like structures that don''t fully translate to normal orders. When checking order state for quotes, the `amount` field represents the remaining amount, not the original order amount.
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_order_state)
'
x-mint:
metadata:
title: private/get_order_state
og:title: private/get_order_state
keywords:
- private/get_order_state
- order_id
- order_state
- order_type
- original_order_type
- time_in_force
- is_rebalance
- is_liquidation
- instrument_name
- creation_timestamp
- last_update_timestamp
- direction
- price
- label
- post_only
- reject_post_only
- reduce_only
- api
- web
- mobile
- refresh_amount
- display_amount
- amount
- contracts
- filled_amount
- average_price
- advanced
- implv
- usd
- triggered
- trigger
- trigger_price
- trigger_offset
- trigger_reference_price
- block_trade
- mmp
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- trigger_fill_condition
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
href: /api-reference/trading/private-get_order_state
/private/get_order_state_by_label:
get:
tags:
- Private
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: label
in: query
schema:
type: string
required: false
description: user defined label for the order (maximum 64 characters)
responses:
'200':
$ref: '#/components/responses/PrivateGetOrderStateByLabelResponse'
'400':
$ref: '#/components/responses/ErrorMessageResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 4316
method: private/get_order_state_by_label
params:
currency: ETH
label: fooBar
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves the state of recent orders that have a specific label. This is useful for tracking orders that share the same label, which is helpful for managing related orders.
Results are filtered by currency and label. The response includes order details such as status, filled amount, remaining amount, and other order properties for all orders with the specified label.
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_order_state_by_label)
'
x-mint:
metadata:
title: private/get_order_state_by_label
og:title: private/get_order_state_by_label
keywords:
- private/get_order_state_by_label
- currency
- label
- order_id
- order_state
- order_type
- original_order_type
- time_in_force
- is_rebalance
- is_liquidation
- instrument_name
- creation_timestamp
- last_update_timestamp
- direction
- price
- post_only
- reject_post_only
- reduce_only
- api
- web
- mobile
- refresh_amount
- display_amount
- amount
- contracts
- filled_amount
- average_price
- advanced
- implv
- usd
- triggered
- trigger
- trigger_price
- trigger_offset
- trigger_reference_price
- block_trade
- mmp
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- trigger_fill_condition
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
href: /api-reference/trading/private-get_order_state_by_label
/private/get_open_orders:
get:
parameters:
- name: kind
required: false
in: query
schema:
$ref: '#/components/schemas/kind'
description: Instrument kind, if not provided instruments of all kinds are considered
- name: type
required: false
in: query
schema:
$ref: '#/components/schemas/order_type2'
description: Order type, default - `all`
responses:
'200':
$ref: '#/components/responses/PrivateGetOpenOrdersResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1953
method: private/get_open_orders
params: {}
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves a list of all open orders for the authenticated account across all currencies. Open orders are orders that have been placed but not yet filled or cancelled.
Results can be filtered by instrument kind and order type. This method provides a comprehensive view of all active orders.
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_open_orders)
'
x-mint:
metadata:
title: private/get_open_orders
og:title: private/get_open_orders
keywords:
- private/get_open_orders
- kind
- type
- order_id
- order_state
- order_type
- original_order_type
- time_in_force
- is_rebalance
- is_liquidation
- instrument_name
- creation_timestamp
- last_update_timestamp
- direction
- price
- label
- post_only
- reject_post_only
- reduce_only
- api
- web
- mobile
- refresh_amount
- display_amount
- amount
- contracts
- filled_amount
- average_price
- advanced
- implv
- usd
- triggered
- trigger
- trigger_price
- trigger_offset
- trigger_reference_price
- block_trade
- mmp
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- trigger_fill_condition
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
href: /api-reference/trading/private-get_open_orders
/private/get_open_orders_by_instrument:
get:
parameters:
- name: instrument_name
required: true
in: query
schema:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
- name: type
required: false
in: query
schema:
$ref: '#/components/schemas/order_type2'
description: Order type, default - `all`
responses:
'200':
$ref: '#/components/responses/PrivateGetOpenOrdersResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 8442
method: private/get_open_orders_by_instrument
params:
instrument_name: ETH-22FEB19-120-C
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves a list of all open orders for a specific instrument. Open orders are orders that have been placed but not yet filled or cancelled.
Results can be filtered by order type. This method is useful for checking active orders for a particular instrument.
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_open_orders_by_instrument)
'
x-mint:
metadata:
title: private/get_open_orders_by_instrument
og:title: private/get_open_orders_by_instrument
keywords:
- private/get_open_orders_by_instrument
- instrument_name
- type
- order_id
- order_state
- order_type
- original_order_type
- time_in_force
- is_rebalance
- is_liquidation
- creation_timestamp
- last_update_timestamp
- direction
- price
- label
- post_only
- reject_post_only
- reduce_only
- api
- web
- mobile
- refresh_amount
- display_amount
- amount
- contracts
- filled_amount
- average_price
- advanced
- implv
- usd
- triggered
- trigger
- trigger_price
- trigger_offset
- trigger_reference_price
- block_trade
- mmp
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- trigger_fill_condition
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
href: /api-reference/trading/private-get_open_orders_by_instrument
/private/get_open_orders_by_currency:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: kind
required: false
in: query
schema:
$ref: '#/components/schemas/kind'
description: Instrument kind, if not provided instruments of all kinds are considered
- name: type
required: false
in: query
schema:
$ref: '#/components/schemas/order_type2'
description: Order type, default - `all`
responses:
'200':
$ref: '#/components/responses/PrivateGetOpenOrdersResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1953
method: private/get_open_orders_by_currency
params:
currency: BTC
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves a list of all open orders for a specific currency. Open orders are orders that have been placed but not yet filled or cancelled.
Results can be filtered by instrument kind and order type. This method provides a view of all active orders within a currency.
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_open_orders_by_currency)
'
x-mint:
metadata:
title: private/get_open_orders_by_currency
og:title: private/get_open_orders_by_currency
keywords:
- private/get_open_orders_by_currency
- currency
- kind
- type
- order_id
- order_state
- order_type
- original_order_type
- time_in_force
- is_rebalance
- is_liquidation
- instrument_name
- creation_timestamp
- last_update_timestamp
- direction
- price
- label
- post_only
- reject_post_only
- reduce_only
- api
- web
- mobile
- refresh_amount
- display_amount
- amount
- contracts
- filled_amount
- average_price
- advanced
- implv
- usd
- triggered
- trigger
- trigger_price
- trigger_offset
- trigger_reference_price
- block_trade
- mmp
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- trigger_fill_condition
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
href: /api-reference/trading/private-get_open_orders_by_currency
/private/get_open_orders_by_label:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: label
in: query
schema:
type: string
required: false
description: user defined label for the order (maximum 64 characters)
responses:
'200':
$ref: '#/components/responses/PrivateGetOpenOrdersResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1953
method: private/get_open_orders_by_label
params:
currency: BTC
label: fooBar
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves a list of all open orders that have a specific label within a given currency. This is useful for tracking and managing groups of related orders that share the same label.
Open orders are orders that have been placed but not yet filled or cancelled. The label helps organize and identify related orders.
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_open_orders_by_label)
'
x-mint:
metadata:
title: private/get_open_orders_by_label
og:title: private/get_open_orders_by_label
keywords:
- private/get_open_orders_by_label
- currency
- label
- order_id
- order_state
- order_type
- original_order_type
- time_in_force
- is_rebalance
- is_liquidation
- instrument_name
- creation_timestamp
- last_update_timestamp
- direction
- price
- post_only
- reject_post_only
- reduce_only
- api
- web
- mobile
- refresh_amount
- display_amount
- amount
- contracts
- filled_amount
- average_price
- advanced
- implv
- usd
- triggered
- trigger
- trigger_price
- trigger_offset
- trigger_reference_price
- block_trade
- mmp
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- trigger_fill_condition
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
href: /api-reference/trading/private-get_open_orders_by_label
/private/get_order_margin_by_ids:
get:
parameters:
- name: ids
in: query
required: true
schema:
type: array
items:
type: string
example: '123456'
example:
- ETH-349280
- ETH-349279
- ETH-349278
description: Ids of orders
style: form
explode: true
responses:
'200':
$ref: '#/components/responses/PrivateGetOrderMarginByIdsResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 5625
method: private/get_order_margin_by_ids
params:
ids:
- ETH-349280
- ETH-349279
- ETH-349278
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves the initial margin requirements for one or more orders identified by their order IDs. Initial margin is the amount of funds required to open a position with these orders.
This method is useful for calculating margin requirements before placing orders, helping to ensure sufficient funds are available.
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_order_margin_by_ids)
'
x-mint:
metadata:
title: private/get_order_margin_by_ids
og:title: private/get_order_margin_by_ids
keywords:
- private/get_order_margin_by_ids
- ids
- order_id
- initial_margin
- initial_margin_currency
href: /api-reference/trading/private-get_order_margin_by_ids
/private/get_trigger_order_history:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: instrument_name
required: false
in: query
schema:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
- name: count
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: Number of requested items, default - `20`, maximum - `1000`
- name: continuation
in: query
required: false
schema:
type: string
example: xY7T6cutS3t2B9YtaDkE6TS379oKnkzTvmEDUnEUP2Msa9xKWNNaT
description: Continuation token for pagination
responses:
'200':
$ref: '#/components/responses/PrivateGetTriggerOrderHistoryResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2552
method: private/get_trigger_order_history
params:
currency: ETH
count: 10
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves a detailed log of all trigger orders (stop orders, take-profit orders, etc.) for the authenticated account. The log includes trigger order creation, activation, execution, and cancellation events.
Results can be filtered by currency and instrument name. Use pagination parameters (`count` and `continuation`) to retrieve large trigger order histories. This is useful for tracking trigger order activity and debugging trigger order behavior.
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_trigger_order_history)
'
x-mint:
metadata:
title: private/get_trigger_order_history
og:title: private/get_trigger_order_history
keywords:
- private/get_trigger_order_history
- currency
- instrument_name
- count
- continuation
- entries
- timestamp
- trigger
- trigger_price
- trigger_offset
- trigger_order_id
- order_id
- order_state
- request
- direction
- price
- amount
- last_update_timestamp
- reduce_only
- post_only
- order_type
- label
- is_secondary_oto
- oco_ref
- source
href: /api-reference/trading/private-get_trigger_order_history
/private/get_user_trades_by_instrument:
get:
parameters:
- name: instrument_name
required: true
in: query
schema:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
- name: start_seq
required: false
in: query
schema:
type: integer
description: The sequence number of the first trade to be returned
- name: end_seq
required: false
in: query
schema:
type: integer
description: The sequence number of the last trade to be returned
- name: count
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: Number of requested items, default - `10`, maximum - `1000`
- name: start_timestamp
required: false
in: query
schema:
$ref: '#/components/schemas/timestamp'
description: The earliest timestamp to return result from (milliseconds since the UNIX epoch). When param is provided trades are returned from the earliest
- name: end_timestamp
required: false
in: query
schema:
$ref: '#/components/schemas/timestamp'
description: 'The most recent timestamp to return result from (milliseconds since the UNIX epoch). Only one of params: start_timestamp, end_timestamp is truly required'
- name: historical
in: query
required: false
schema:
type: boolean
description: 'Determines whether historical trade and order records should be retrieved.
- `false` (default): Returns recent records: orders for 30 min, trades for 24h.
- `true`: Fetches historical records, available after a short delay due to indexing. Recent data is not included.
**📖 Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)
'
- name: sorting
required: false
in: query
schema:
$ref: '#/components/schemas/sorting'
description: Direction of results sorting (`default` value means no sorting, results will be returned in order in which they left the database)
- name: subaccount_id
in: query
required: false
schema:
type: integer
example: 9
description: Id of a subaccount
responses:
'200':
$ref: '#/components/responses/PrivateGetUserTradesHistoryResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 5728
method: private/get_user_trades_by_instrument
params:
instrument_name: ETH-PERPETUAL
start_seq: 1966042
count: 2
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves the latest user trades that have occurred for a specific instrument. Returns trade details including price, amount, direction, timestamp, trade ID, and order ID.
Results can be filtered by sequence number range or timestamp range. Use the `count` parameter to limit the number of trades returned, and `sorting` to control the order (ascending or descending by trade ID). Use `historical` to retrieve historical trade data.
Main accounts may use the `subaccount_id` parameter to retrieve trade data for a specific subaccount (requires `mainaccount` scope).
**📖 Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_user_trades_by_instrument)
'
x-mint:
metadata:
title: private/get_user_trades_by_instrument
og:title: private/get_user_trades_by_instrument
keywords:
- private/get_user_trades_by_instrument
- instrument_name
- start_seq
- end_seq
- count
- start_timestamp
- end_timestamp
- historical
- sorting
- subaccount_id
- trades
- has_more
- trade_id
- trade_seq
- timestamp
- order_type
- advanced
- order_id
- matching_id
- direction
- tick_direction
- index_price
- price
- amount
- contracts
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- label
- state
- block_trade_id
- block_rfq_id
- block_rfq_quote_id
- reduce_only
- post_only
- mmp
- risk_reducing
- api
- profit_loss
- mark_price
- legs
- combo_id
- combo_trade_id
- quote_set_id
- quote_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/trading/private-get_user_trades_by_instrument
/private/get_user_trades_by_instrument_and_time:
get:
parameters:
- name: instrument_name
required: true
in: query
schema:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
- name: start_timestamp
required: true
in: query
schema:
$ref: '#/components/schemas/timestamp'
description: The earliest timestamp to return result from (milliseconds since the UNIX epoch). When param is provided trades are returned from the earliest
- name: end_timestamp
required: true
in: query
schema:
$ref: '#/components/schemas/timestamp'
description: 'The most recent timestamp to return result from (milliseconds since the UNIX epoch). Only one of params: start_timestamp, end_timestamp is truly required'
- name: count
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: Number of requested items, default - `10`, maximum - `1000`
- name: sorting
required: false
in: query
schema:
$ref: '#/components/schemas/sorting'
description: Direction of results sorting (`default` value means no sorting, results will be returned in order in which they left the database)
- name: historical
in: query
required: false
schema:
type: boolean
description: 'Determines whether historical trade and order records should be retrieved.
- `false` (default): Returns recent records: orders for 30 min, trades for 24h.
- `true`: Fetches historical records, available after a short delay due to indexing. Recent data is not included.
**📖 Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)
'
- name: subaccount_id
in: query
required: false
schema:
type: integer
example: 9
description: Id of a subaccount
responses:
'200':
$ref: '#/components/responses/PrivateGetUserTradesHistoryResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 276
method: private/get_user_trades_by_instrument_and_time
params:
instrument_name: BTC-PERPETUAL
start_timestamp: 1590470872894
end_timestamp: 1590480872894
count: 2
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves the latest user trades that have occurred for a specific instrument within a specified time range. Returns trade details including price, amount, direction, timestamp, trade ID, and order ID.
Use the `count` parameter to limit the number of trades returned, and `sorting` to control the order (ascending or descending by trade ID). Use `historical` to retrieve historical trade data. This method is useful for analyzing trading activity over specific time periods.
Main accounts may use the `subaccount_id` parameter to retrieve trade data for a specific subaccount (requires `mainaccount` scope).
**📖 Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_user_trades_by_instrument_and_time)
'
x-mint:
metadata:
title: private/get_user_trades_by_instrument_and_time
og:title: private/get_user_trades_by_instrument_and_time
keywords:
- private/get_user_trades_by_instrument_and_time
- instrument_name
- start_timestamp
- end_timestamp
- count
- sorting
- historical
- subaccount_id
- trades
- has_more
- trade_id
- trade_seq
- timestamp
- order_type
- advanced
- order_id
- matching_id
- direction
- tick_direction
- index_price
- price
- amount
- contracts
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- label
- state
- block_trade_id
- block_rfq_id
- block_rfq_quote_id
- reduce_only
- post_only
- mmp
- risk_reducing
- api
- profit_loss
- mark_price
- legs
- combo_id
- combo_trade_id
- quote_set_id
- quote_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/trading/private-get_user_trades_by_instrument_and_time
/private/get_user_trades_by_currency:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: kind
required: false
in: query
schema:
$ref: '#/components/schemas/kind_with_combo_all'
description: Instrument kind, `"combo"` for any combo or `"any"` for all. If not provided instruments of all kinds are considered
- name: start_id
required: false
in: query
schema:
$ref: '#/components/schemas/trade_id'
description: 'The ID of the first trade to be returned. Number for BTC trades, or hyphen name in ex. `"ETH-15"` # `"ETH_USDC-16"`'
- name: end_id
required: false
in: query
schema:
$ref: '#/components/schemas/trade_id'
description: 'The ID of the last trade to be returned. Number for BTC trades, or hyphen name in ex. `"ETH-15"` # `"ETH_USDC-16"`'
- name: count
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: Number of requested items, default - `10`, maximum - `1000`
- name: start_timestamp
required: false
in: query
schema:
$ref: '#/components/schemas/timestamp'
description: The earliest timestamp to return result from (milliseconds since the UNIX epoch). When param is provided trades are returned from the earliest
- name: end_timestamp
required: false
in: query
schema:
$ref: '#/components/schemas/timestamp'
description: 'The most recent timestamp to return result from (milliseconds since the UNIX epoch). Only one of params: start_timestamp, end_timestamp is truly required'
- name: sorting
required: false
in: query
schema:
$ref: '#/components/schemas/sorting'
description: Direction of results sorting (`default` value means no sorting, results will be returned in order in which they left the database)
- name: historical
in: query
required: false
schema:
type: boolean
description: 'Determines whether historical trade and order records should be retrieved.
- `false` (default): Returns recent records: orders for 30 min, trades for 24h.
- `true`: Fetches historical records, available after a short delay due to indexing. Recent data is not included.
**📖 Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)
'
- name: subaccount_id
in: query
schema:
type: integer
required: false
description: The user id for the subaccount
responses:
'200':
$ref: '#/components/responses/PrivateGetUserTradesHistoryResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 9367
method: private/get_user_trades_by_currency
params:
currency: ETH
start_id: ETH-34066
count: 2
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves the latest user trades that have occurred for instruments in a specific currency. Returns trade details including price, amount, direction, timestamp, trade ID, and order ID for all instruments in the currency.
Results can be filtered by instrument kind, trade ID range, or timestamp range. Use the `count` parameter to limit the number of trades returned, and `sorting` to control the order. To retrieve trades for a specific subaccount, use the `subaccount_id` parameter. Use `historical` to retrieve historical trade data.
**📖 Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_user_trades_by_currency)
'
x-mint:
metadata:
title: private/get_user_trades_by_currency
og:title: private/get_user_trades_by_currency
keywords:
- private/get_user_trades_by_currency
- currency
- kind
- start_id
- end_id
- count
- start_timestamp
- end_timestamp
- sorting
- historical
- subaccount_id
- trades
- has_more
- trade_id
- trade_seq
- instrument_name
- timestamp
- order_type
- advanced
- order_id
- matching_id
- direction
- tick_direction
- index_price
- price
- amount
- contracts
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- label
- state
- block_trade_id
- block_rfq_id
- block_rfq_quote_id
- reduce_only
- post_only
- mmp
- risk_reducing
- api
- profit_loss
- mark_price
- legs
- combo_id
- combo_trade_id
- quote_set_id
- quote_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/trading/private-get_user_trades_by_currency
/private/get_user_trades_by_currency_and_time:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: kind
required: false
in: query
schema:
$ref: '#/components/schemas/kind_with_combo_all'
description: Instrument kind, `"combo"` for any combo or `"any"` for all. If not provided instruments of all kinds are considered
- name: start_timestamp
required: true
in: query
schema:
$ref: '#/components/schemas/timestamp'
description: The earliest timestamp to return result from (milliseconds since the UNIX epoch). When param is provided trades are returned from the earliest
- name: end_timestamp
required: true
in: query
schema:
$ref: '#/components/schemas/timestamp'
description: 'The most recent timestamp to return result from (milliseconds since the UNIX epoch). Only one of params: start_timestamp, end_timestamp is truly required'
- name: count
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: Number of requested items, default - `10`, maximum - `1000`
- name: sorting
required: false
in: query
schema:
$ref: '#/components/schemas/sorting'
description: Direction of results sorting (`default` value means no sorting, results will be returned in order in which they left the database)
- name: historical
in: query
required: false
schema:
type: boolean
description: 'Determines whether historical trade and order records should be retrieved.
- `false` (default): Returns recent records: orders for 30 min, trades for 24h.
- `true`: Fetches historical records, available after a short delay due to indexing. Recent data is not included.
**📖 Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)
'
- name: subaccount_id
in: query
required: false
schema:
type: integer
example: 9
description: Id of a subaccount
responses:
'200':
$ref: '#/components/responses/PrivateGetUserTradesHistoryResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 9292
method: private/get_user_trades_by_currency_and_time
params:
currency: BTC
start_timestamp: 1590480630731
end_timestamp: 1510480630731
count: 2
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves the latest user trades that have occurred for instruments in a specific currency within a specified time range. Returns trade details including price, amount, direction, timestamp, trade ID, and order ID for all instruments in the currency.
Results can be filtered by instrument kind. Use the `count` parameter to limit the number of trades returned, and `sorting` to control the order. Use `historical` to retrieve historical trade data. This method is useful for analyzing trading activity across a currency over specific time periods.
Main accounts may use the `subaccount_id` parameter to retrieve trade data for a specific subaccount (requires `mainaccount` scope).
**📖 Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_user_trades_by_currency_and_time)
'
x-mint:
metadata:
title: private/get_user_trades_by_currency_and_time
og:title: private/get_user_trades_by_currency_and_time
keywords:
- private/get_user_trades_by_currency_and_time
- currency
- kind
- start_timestamp
- end_timestamp
- count
- sorting
- historical
- subaccount_id
- trades
- has_more
- trade_id
- trade_seq
- instrument_name
- timestamp
- order_type
- advanced
- order_id
- matching_id
- direction
- tick_direction
- index_price
- price
- amount
- contracts
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- label
- state
- block_trade_id
- block_rfq_id
- block_rfq_quote_id
- reduce_only
- post_only
- mmp
- risk_reducing
- api
- profit_loss
- mark_price
- legs
- combo_id
- combo_trade_id
- quote_set_id
- quote_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/trading/private-get_user_trades_by_currency_and_time
/private/get_user_trades_by_order:
get:
parameters:
- in: query
name: order_id
required: true
schema:
$ref: '#/components/schemas/order_id'
description: The order id
- name: sorting
required: false
in: query
schema:
$ref: '#/components/schemas/sorting'
description: Direction of results sorting (`default` value means no sorting, results will be returned in order in which they left the database)
- name: historical
in: query
required: false
schema:
type: boolean
description: 'Determines whether historical trade and order records should be retrieved.
- `false` (default): Returns recent records: orders for 30 min, trades for 24h.
- `true`: Fetches historical records, available after a short delay due to indexing. Recent data is not included.
**📖 Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)
'
- name: subaccount_id
in: query
required: false
schema:
type: integer
example: 9
description: Id of a subaccount
tags:
- Private
responses:
'200':
$ref: '#/components/responses/PrivateGetUserTradesByOrderResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 3466
method: private/get_user_trades_by_order
params:
order_id: ETH-584830574
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves all trades that were executed from a specific order. When an order is filled, it may result in multiple trades (partial fills). This method returns all trades associated with a given order ID.
Results can be sorted in ascending or descending order by trade ID. Use `historical` to retrieve historical trade data. This is useful for tracking how an order was filled and analyzing execution quality.
Main accounts may use the `subaccount_id` parameter to retrieve trade data for a specific subaccount (requires `mainaccount` scope).
**📖 Related Article:** [Accessing Historical Trades and Orders Using API](https://docs.deribit.com/articles/accessing-historical-trades-orders)
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_user_trades_by_order)
'
x-mint:
metadata:
title: private/get_user_trades_by_order
og:title: private/get_user_trades_by_order
keywords:
- private/get_user_trades_by_order
- order_id
- sorting
- historical
- subaccount_id
href: /api-reference/trading/private-get_user_trades_by_order
/private/cancel_all:
get:
parameters:
- name: detailed
required: false
in: query
schema:
type: boolean
description: 'When `detailed` is set to `true`, the output format is changed to include a list of all cancelled orders.
**📖 Related Article:** [Detailed Response for Cancel Methods](https://docs.deribit.com/articles/json-rpc-overview#detailed-response-for-cancel-methods)
Default: `false`
'
- name: freeze_quotes
required: false
in: query
schema:
type: boolean
description: Whether or not to reject incoming quotes for 1 second after cancelling (`false` by default). Related to `private/mass_quote` request.
responses:
'200':
$ref: '#/components/responses/PrivateCancelAllResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 8748
method: private/cancel_all
params: {}
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Cancels all open orders and trigger orders for the authenticated account across all currencies and instrument kinds. This is a bulk cancellation operation useful for quickly clearing all active orders.
Use the `detailed` parameter to receive a list of all cancelled orders. The `freeze_quotes` parameter can be used to freeze quotes instead of cancelling them.
**Note:** This operation cannot be undone. All open orders will be permanently cancelled.
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_all)
'
x-mint:
metadata:
title: private/cancel_all
og:title: private/cancel_all
keywords:
- private/cancel_all
- detailed
- freeze_quotes
href: /api-reference/trading/private-cancel_all
/private/cancel_all_by_instrument:
get:
parameters:
- name: instrument_name
required: true
in: query
schema:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
- name: type
required: false
in: query
schema:
$ref: '#/components/schemas/simple_order_type'
description: Order type - `limit`, `stop`, `take`, `trigger_all` or `all`, default - `all`
- name: detailed
required: false
in: query
schema:
type: boolean
description: 'When `detailed` is set to `true`, the output format is changed to include a list of all cancelled orders.
**📖 Related Article:** [Detailed Response for Cancel Methods](https://docs.deribit.com/articles/json-rpc-overview#detailed-response-for-cancel-methods)
Default: `false`
'
- name: include_combos
required: false
in: query
schema:
type: boolean
description: 'When set to `true` orders in combo instruments affecting a given position will also be cancelled. Default: `false`'
- name: freeze_quotes
required: false
in: query
schema:
type: boolean
description: Whether or not to reject incoming quotes for 1 second after cancelling (`false` by default). Related to `private/mass_quote` request.
responses:
'200':
$ref: '#/components/responses/PrivateCancelAllResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 4122
method: private/cancel_all_by_instrument
params:
instrument_name: ETH-22FEB19-120-P
type: all
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Cancels all open orders for a specific instrument. This is useful for quickly clearing all orders for a single instrument.
Orders can be optionally filtered by order type (limit, market, stop, etc.). Use the `detailed` parameter to receive a list of all cancelled orders. The `include_combos` parameter can be used to include combo orders in the cancellation.
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_all_by_instrument)
'
x-mint:
metadata:
title: private/cancel_all_by_instrument
og:title: private/cancel_all_by_instrument
keywords:
- private/cancel_all_by_instrument
- instrument_name
- type
- detailed
- include_combos
- freeze_quotes
href: /api-reference/trading/private-cancel_all_by_instrument
/private/cancel_all_by_currency:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: kind
required: false
in: query
schema:
$ref: '#/components/schemas/kind_with_combo_all'
description: Instrument kind, `"combo"` for any combo or `"any"` for all. If not provided instruments of all kinds are considered
- name: type
required: false
in: query
schema:
$ref: '#/components/schemas/simple_order_type'
description: Order type - `limit`, `stop`, `take`, `trigger_all` or `all`, default - `all`
- name: detailed
required: false
in: query
schema:
type: boolean
description: 'When `detailed` is set to `true`, the output format is changed to include a list of all cancelled orders.
**📖 Related Article:** [Detailed Response for Cancel Methods](https://docs.deribit.com/articles/json-rpc-overview#detailed-response-for-cancel-methods)
Default: `false`
'
- name: freeze_quotes
required: false
in: query
schema:
type: boolean
description: Whether or not to reject incoming quotes for 1 second after cancelling (`false` by default). Related to `private/mass_quote` request.
responses:
'200':
$ref: '#/components/responses/PrivateCancelAllResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 5663
method: private/cancel_all_by_currency
params:
currency: BTC
kind: option
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Cancels all open orders for a specific currency. This is useful for quickly clearing all orders across multiple instruments in a currency.
Orders can be optionally filtered by instrument kind (future, option, etc.) and/or order type (limit, market, stop, etc.). Use the `detailed` parameter to receive a list of all cancelled orders.
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_all_by_currency)
'
x-mint:
metadata:
title: private/cancel_all_by_currency
og:title: private/cancel_all_by_currency
keywords:
- private/cancel_all_by_currency
- currency
- kind
- type
- detailed
- freeze_quotes
href: /api-reference/trading/private-cancel_all_by_currency
/private/cancel_all_by_currency_pair:
get:
parameters:
- name: currency_pair
required: true
in: query
schema:
$ref: '#/components/schemas/index_name'
description: The currency pair symbol
- name: kind
required: false
in: query
schema:
$ref: '#/components/schemas/kind_with_combo_all'
description: Instrument kind, `"combo"` for any combo or `"any"` for all. If not provided instruments of all kinds are considered
- name: type
required: false
in: query
schema:
$ref: '#/components/schemas/simple_order_type'
description: Order type - `limit`, `stop`, `take`, `trigger_all` or `all`, default - `all`
- name: detailed
required: false
in: query
schema:
type: boolean
description: 'When `detailed` is set to `true`, the output format is changed to include a list of all cancelled orders.
**📖 Related Article:** [Detailed Response for Cancel Methods](https://docs.deribit.com/articles/json-rpc-overview#detailed-response-for-cancel-methods)
Default: `false`
'
- name: freeze_quotes
required: false
in: query
schema:
type: boolean
description: Whether or not to reject incoming quotes for 1 second after cancelling (`false` by default). Related to `private/mass_quote` request.
responses:
'200':
$ref: '#/components/responses/PrivateCancelAllResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 5663
method: private/cancel_all_by_currency_pair
params:
currency_pair: BTC_USD
kind: option
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Cancels all open orders for a specific currency pair. This is useful for quickly clearing all orders across instruments in a currency pair.
Orders can be optionally filtered by instrument kind (future, option, etc.) and/or order type (limit, market, stop, etc.). Use the `detailed` parameter to receive a list of all cancelled orders.
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_all_by_currency_pair)
'
x-mint:
metadata:
title: private/cancel_all_by_currency_pair
og:title: private/cancel_all_by_currency_pair
keywords:
- private/cancel_all_by_currency_pair
- currency_pair
- kind
- type
- detailed
- freeze_quotes
href: /api-reference/trading/private-cancel_all_by_currency_pair
/private/cancel_all_by_kind_or_type:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency_with_any_and_list'
description: The currency symbol, list of currency symbols or `"any"` for all
- name: kind
required: false
in: query
schema:
$ref: '#/components/schemas/kind_with_combo_all'
description: Instrument kind, `"combo"` for any combo or `"any"` for all. If not provided instruments of all kinds are considered
- name: type
required: false
in: query
schema:
$ref: '#/components/schemas/simple_order_type'
description: Order type - `limit`, `stop`, `take`, `trigger_all` or `all`, default - `all`
- name: detailed
required: false
in: query
schema:
type: boolean
description: 'When `detailed` is set to `true`, the output format is changed to include a list of all cancelled orders.
**📖 Related Article:** [Detailed Response for Cancel Methods](https://docs.deribit.com/articles/json-rpc-overview#detailed-response-for-cancel-methods)
Default: `false`
'
- name: freeze_quotes
required: false
in: query
schema:
type: boolean
description: Whether or not to reject incoming quotes for 1 second after cancelling (`false` by default). Related to `private/mass_quote` request.
responses:
'200':
$ref: '#/components/responses/PrivateCancelAllResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2
method: private/cancel_all_by_kind_or_type
params:
currency:
- BTC
- ETH
kind: future
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Cancels all open orders in one or more currencies, optionally filtered by instrument kind and/or order type. This provides flexible bulk cancellation across multiple currencies.
Specify one or more currencies, and optionally filter by instrument kind (future, option, etc.) and/or order type (limit, market, stop, etc.). Use the `detailed` parameter to receive a list of all cancelled orders.
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_all_by_kind_or_type)
'
x-mint:
metadata:
title: private/cancel_all_by_kind_or_type
og:title: private/cancel_all_by_kind_or_type
keywords:
- private/cancel_all_by_kind_or_type
- currency
- kind
- type
- detailed
- freeze_quotes
href: /api-reference/trading/private-cancel_all_by_kind_or_type
/private/cancel_by_label:
get:
parameters:
- name: label
in: query
schema:
type: string
required: true
description: user defined label for the order (maximum 64 characters)
- in: query
name: currency
required: false
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
responses:
'200':
$ref: '#/components/responses/PrivateCancelAllResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 47
method: private/cancel_by_label
params:
label: label
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Cancels all orders (including trigger orders) that have a specific label. This is useful for managing groups of related orders that share the same label.
Orders can be cancelled across all currencies or filtered to a specific currency. When cancelling by currency, the currency queue is used for processing.
**Rate Limits:** When called without the `currency` parameter, this method is subject to `cancel_all` rate limits. Different rate limit values may apply for per-currency cancels versus calls without providing the currency parameter.
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_by_label)
'
x-mint:
metadata:
title: private/cancel_by_label
og:title: private/cancel_by_label
keywords:
- private/cancel_by_label
- label
- currency
href: /api-reference/trading/private-cancel_by_label
/private/cancel_quotes:
get:
parameters:
- name: detailed
required: false
in: query
schema:
type: boolean
description: 'When `detailed` is set to `true`, the output format is changed to include a list of all cancelled orders.
**📖 Related Article:** [Detailed Response for Cancel Methods](https://docs.deribit.com/articles/json-rpc-overview#detailed-response-for-cancel-methods)
Default: `false`
'
- name: freeze_quotes
required: false
in: query
schema:
type: boolean
description: Whether or not to reject incoming quotes for 1 second after cancelling (`false` by default). Related to `private/mass_quote` request.
- name: cancel_type
in: query
schema:
enum:
- delta
- quote_set_id
- instrument
- instrument_kind
- currency
- currency_pair
- all
type: string
example: delta
required: true
description: Type of cancel criteria.
- name: min_delta
in: query
schema:
type: number
example: 0.4
required: false
description: 'Min delta to cancel by delta (for `cancel_type`: `delta`).'
- name: max_delta
in: query
schema:
type: number
example: 0.6
required: false
description: 'Max delta to cancel by delta (for `cancel_type`: `delta`).'
- name: quote_set_id
in: query
schema:
type: string
required: false
description: Unique identifier for the Quote set.
- name: instrument_name
in: query
schema:
type: string
required: false
description: Instrument name.
- name: kind
required: false
in: query
schema:
$ref: '#/components/schemas/kind_with_combo_all'
description: Instrument kind, `"combo"` for any combo or `"any"` for all. If not provided instruments of all kinds are considered
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: currency_pair
required: true
in: query
schema:
$ref: '#/components/schemas/index_name'
description: The currency pair symbol
responses:
'200':
$ref: '#/components/responses/PrivateCancelQuotesResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 5663
method: private/cancel_quotes
params:
cancel_type: delta
min_delta: 0.4
max_delta: 0.6
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Cancels quotes (mass quote orders) based on various criteria. This method provides flexible options for cancelling quotes:
- `delta`: Cancels quotes within a delta range defined by `min_delta` and `max_delta`
- `quote_set_id`: Cancels quotes by a specific Quote Set identifier
- `instrument`: Cancels all quotes associated with a particular instrument
- `kind`: Cancels all quotes for a certain instrument kind
- `currency`: Cancels all quotes in a specified currency
- `currency_pair`: Cancels all quotes in a specified currency pair
- `all`: Cancels all quotes
Use the `detailed` parameter to receive a list of all cancelled quotes.
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_quotes)
'
x-mint:
metadata:
title: private/cancel_quotes
og:title: private/cancel_quotes
keywords:
- private/cancel_quotes
- detailed
- freeze_quotes
- cancel_type
- min_delta
- max_delta
- quote_set_id
- instrument_name
- kind
- currency
- currency_pair
href: /api-reference/trading/private-cancel_quotes
/private/cancel:
get:
parameters:
- in: query
name: order_id
required: true
schema:
$ref: '#/components/schemas/order_id'
description: The order id
responses:
'200':
$ref: '#/components/responses/PrivateCancelResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 4214
method: private/cancel
params:
order_id: ETH-SLIS-12
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Cancels a specific order identified by its order ID. The order must be open (not yet filled or cancelled) to be cancelled successfully.
Once cancelled, the order is removed from the order book and cannot be restored. Any unfilled portion of the order will be cancelled.
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel)
'
x-mint:
metadata:
title: private/cancel
og:title: private/cancel
keywords:
- private/cancel
- order_id
- order_state
- order_type
- original_order_type
- time_in_force
- is_rebalance
- is_liquidation
- instrument_name
- creation_timestamp
- last_update_timestamp
- direction
- price
- label
- post_only
- reject_post_only
- reduce_only
- api
- web
- mobile
- refresh_amount
- display_amount
- amount
- contracts
- filled_amount
- average_price
- advanced
- implv
- usd
- triggered
- trigger
- trigger_price
- trigger_offset
- trigger_reference_price
- block_trade
- mmp
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- trigger_fill_condition
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
href: /api-reference/trading/private-cancel
/private/buy:
get:
tags:
- Private
parameters:
- name: instrument_name
required: true
in: query
schema:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
- name: amount
in: query
schema:
type: number
required: false
description: It represents the requested order size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin. The `amount` is a mandatory parameter if `contracts` parameter is missing. If both `contracts` and `amount` parameter are passed they must match each other otherwise error is returned.
- name: contracts
in: query
schema:
type: number
required: false
description: It represents the requested order size in contract units and can be passed instead of `amount`. The `contracts` is a mandatory parameter if `amount` parameter is missing. If both `contracts` and `amount` parameter are passed they must match each other otherwise error is returned.
- name: type
in: query
schema:
type: string
enum:
- limit
- stop_limit
- take_limit
- market
- stop_market
- take_market
- market_limit
- trailing_stop
required: false
description: 'The order type, default: `"limit"`'
- name: label
in: query
schema:
type: string
required: false
description: user defined label for the order (maximum 64 characters)
- name: price
in: query
schema:
type: number
required: false
description: The order price in base currency (Only for limit and stop_limit orders)
When adding an order with advanced=usd, the field price should be the option price value in USD.
When adding an order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
- name: time_in_force
in: query
schema:
type: string
default: good_til_cancelled
enum:
- good_til_cancelled
- good_til_day
- fill_or_kill
- immediate_or_cancel
required: false
description: Specifies how long the order remains in effect. Default `"good_til_cancelled"`
- `"good_til_cancelled"` - unfilled order remains in order book until cancelled
- `"good_til_day"` - unfilled order remains in order book till the end of the trading session
- `"fill_or_kill"` - execute a transaction immediately and completely or not at all
- `"immediate_or_cancel"` - execute a transaction immediately, and any portion of the order that cannot be immediately filled is cancelled
- name: display_amount
in: query
schema:
type: number
default: 1
required: false
description: Initial display amount for iceberg order. Has to be at least 100 times minimum amount for instrument and ratio of hidden part vs visible part has to be less than 100 as well.
- name: post_only
in: query
schema:
type: boolean
default: true
required: false
description: If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below the spread.
Only valid in combination with time_in_force=`"good_til_cancelled"`
- name: reject_post_only
in: query
schema:
type: boolean
default: false
required: false
description: If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected.
Only valid in combination with `"post_only"` set to true
- name: reduce_only
in: query
schema:
type: boolean
default: false
required: false
description: If `true`, the order is considered reduce-only which is intended to only reduce a current position
- name: trigger_price
in: query
schema:
type: number
required: false
description: Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)
- name: trigger_offset
in: query
schema:
type: number
required: false
description: The maximum deviation from the price peak beyond which the order will be triggered
- name: trigger
in: query
schema:
$ref: '#/components/schemas/trigger'
required: false
description: Defines the trigger type. Required for `"Stop-Loss"`, `"Take-Profit"` and `"Trailing"` trigger orders
- name: advanced
in: query
schema:
$ref: '#/components/schemas/advanced'
required: false
description: Advanced option order type. (Only for options. Advanced USD orders are not supported for linear options.)
- name: mmp
in: query
schema:
type: boolean
default: false
required: false
description: Order MMP flag, only for order_type 'limit'
- name: valid_until
in: query
schema:
type: integer
required: false
description: Timestamp, when provided server will start processing request in Matching Engine only before given timestamp, in other cases `timed_out` error will be responded. Remember that the given timestamp should be consistent with the server's time, use /public/time method to obtain current server time.
- name: linked_order_type
in: query
schema:
type: string
enum:
- one_triggers_other
- one_cancels_other
- one_triggers_one_cancels_other
required: false
description: The type of the linked order.
- `"one_triggers_other"` - Execution of primary order triggers the placement of one or more secondary orders.
- `"one_cancels_other"` - The execution of one order in a pair automatically cancels the other, typically used to set a stop-loss and take-profit simultaneously.
- `"one_triggers_one_cancels_other"` - The execution of a primary order triggers two secondary orders (a stop-loss and take-profit pair), where the execution of one secondary order cancels the other.
- name: trigger_fill_condition
in: query
schema:
type: string
enum:
- first_hit
- complete_fill
- incremental
default: first_hit
required: false
description: 'The fill condition of the linked order (Only for linked order types), default: `first_hit`.
- `"first_hit"` - any execution of the primary order will fully cancel/place all secondary orders.
- `"complete_fill"` - a complete execution (meaning the primary order no longer exists) will cancel/place the secondary orders.
- `"incremental"` - any fill of the primary order will cause proportional partial cancellation/placement of the secondary order. The amount that will be subtracted/added to the secondary order will be rounded down to the contract size.
'
- name: otoco_config
in: query
schema:
type: array
items:
type: object
properties:
amount:
$ref: '#/components/schemas/amount'
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.
direction:
$ref: '#/components/schemas/direction'
description: Direction of trade from the maker perspective
type:
type: string
enum:
- limit
- stop_limit
- take_limit
- market
- stop_market
- take_market
- market_limit
- trailing_stop
description: 'The order type, default: "limit"'
label:
type: string
description: user defined label for the order (maximum 64 characters)
price:
type: number
description: The order price in base currency (Only for limit and stop_limit orders)
reduce_only:
type: boolean
default: false
description: If true, the order is considered reduce-only which is intended to only reduce a current position
time_in_force:
type: string
default: good_til_cancelled
enum:
- good_til_cancelled
- good_til_day
- fill_or_kill
- immediate_or_cancel
description: Specifies how long the order remains in effect. Default "good_til_cancelled"
post_only:
type: boolean
default: false
description: If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below or above the spread (according to the direction of the order).
reject_post_only:
type: boolean
default: false
description: If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected.
trigger_price:
type: number
description: Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)
trigger_offset:
type: number
description: The maximum deviation from the price peak beyond which the order will be triggered
trigger:
$ref: '#/components/schemas/trigger'
description: Defines the trigger type. Required for "Stop-Loss", "Take-Profit" and "Trailing" trigger orders
description: List of orders to create or cancel when this order is filled.
style: form
explode: true
required: false
responses:
'200':
$ref: '#/components/responses/PrivateBuyAndSellResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 5275
method: private/buy
params:
instrument_name: ETH-PERPETUAL
amount: 40
type: market
label: market0000234
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Places a buy order for an instrument. Supports various order types including limit, market, stop, and advanced order types (stop-limit, take-profit, take-profit-limit, trailing-stop, etc.).
You can specify order parameters such as price, quantity, time-in-force, post-only, reduce-only, and trigger conditions. Orders can be labeled for easier management and tracking.
**📖 Related Article:** [Order Management Best Practices](https://docs.deribit.com/articles/order-management-best-practices)
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fbuy)
'
x-mint:
metadata:
title: private/buy
og:title: private/buy
keywords:
- private/buy
- instrument_name
- amount
- contracts
- type
- label
- price
- time_in_force
- display_amount
- post_only
- reject_post_only
- reduce_only
- trigger_price
- trigger_offset
- trigger
- advanced
- mmp
- valid_until
- linked_order_type
- trigger_fill_condition
- otoco_config
- order
- trades
- order_id
- order_state
- order_type
- original_order_type
- is_rebalance
- is_liquidation
- creation_timestamp
- last_update_timestamp
- direction
- api
- web
- mobile
- refresh_amount
- filled_amount
- average_price
- implv
- usd
- triggered
- trigger_reference_price
- block_trade
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
- trade_id
- trade_seq
- timestamp
- matching_id
- tick_direction
- index_price
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- state
- block_trade_id
- block_rfq_id
- block_rfq_quote_id
- profit_loss
- mark_price
- legs
- combo_id
- combo_trade_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/trading/private-buy
/private/sell:
get:
tags:
- Private
parameters:
- name: instrument_name
required: true
in: query
schema:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
- name: amount
in: query
schema:
type: number
required: false
description: It represents the requested order size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin. The `amount` is a mandatory parameter if `contracts` parameter is missing. If both `contracts` and `amount` parameter are passed they must match each other otherwise error is returned.
- name: contracts
in: query
schema:
type: number
required: false
description: It represents the requested order size in contract units and can be passed instead of `amount`. The `contracts` is a mandatory parameter if `amount` parameter is missing. If both `contracts` and `amount` parameter are passed they must match each other otherwise error is returned.
- name: type
in: query
schema:
type: string
enum:
- limit
- stop_limit
- take_limit
- market
- stop_market
- take_market
- market_limit
- trailing_stop
required: false
description: 'The order type, default: `"limit"`'
- name: label
in: query
schema:
type: string
required: false
description: user defined label for the order (maximum 64 characters)
- name: price
in: query
schema:
type: number
required: false
description: The order price in base currency (Only for limit and stop_limit orders)
When adding an order with advanced=usd, the field price should be the option price value in USD.
When adding an order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
- name: time_in_force
in: query
schema:
type: string
default: good_til_cancelled
enum:
- good_til_cancelled
- good_til_day
- fill_or_kill
- immediate_or_cancel
required: false
description: Specifies how long the order remains in effect. Default `"good_til_cancelled"`
- `"good_til_cancelled"` - unfilled order remains in order book until cancelled
- `"good_til_day"` - unfilled order remains in order book till the end of the trading session
- `"fill_or_kill"` - execute a transaction immediately and completely or not at all
- `"immediate_or_cancel"` - execute a transaction immediately, and any portion of the order that cannot be immediately filled is cancelled
- name: display_amount
in: query
schema:
type: number
default: 1
required: false
description: Initial display amount for iceberg order. Has to be at least 100 times minimum amount for instrument and ratio of hidden part vs visible part has to be less than 100 as well.
- name: post_only
in: query
schema:
type: boolean
default: true
required: false
description: If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just above the spread.
Only valid in combination with time_in_force=`"good_til_cancelled"`
- name: reject_post_only
in: query
schema:
type: boolean
default: false
required: false
description: If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected.
Only valid in combination with `"post_only"` set to true
- name: reduce_only
in: query
schema:
type: boolean
default: false
required: false
description: If `true`, the order is considered reduce-only which is intended to only reduce a current position
- name: trigger_price
in: query
schema:
type: number
required: false
description: Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)
- name: trigger_offset
in: query
schema:
type: number
required: false
description: The maximum deviation from the price peak beyond which the order will be triggered
- name: trigger
in: query
schema:
$ref: '#/components/schemas/trigger'
required: false
description: Defines the trigger type. Required for `"Stop-Loss"`, `"Take-Profit"` and `"Trailing"` trigger orders
- name: advanced
in: query
schema:
$ref: '#/components/schemas/advanced'
required: false
description: Advanced option order type. (Only for options. Advanced USD orders are not supported for linear options.)
- name: mmp
in: query
schema:
type: boolean
default: false
required: false
description: Order MMP flag, only for order_type 'limit'
- name: valid_until
in: query
schema:
type: integer
required: false
description: Timestamp, when provided server will start processing request in Matching Engine only before given timestamp, in other cases `timed_out` error will be responded. Remember that the given timestamp should be consistent with the server's time, use /public/time method to obtain current server time.
- name: linked_order_type
in: query
schema:
type: string
enum:
- one_triggers_other
- one_cancels_other
- one_triggers_one_cancels_other
required: false
description: The type of the linked order.
- `"one_triggers_other"` - Execution of primary order triggers the placement of one or more secondary orders.
- `"one_cancels_other"` - The execution of one order in a pair automatically cancels the other, typically used to set a stop-loss and take-profit simultaneously.
- `"one_triggers_one_cancels_other"` - The execution of a primary order triggers two secondary orders (a stop-loss and take-profit pair), where the execution of one secondary order cancels the other.
- name: trigger_fill_condition
in: query
schema:
type: string
enum:
- first_hit
- complete_fill
- incremental
default: first_hit
required: false
description: 'The fill condition of the linked order (Only for linked order types), default: `first_hit`.
- `"first_hit"` - any execution of the primary order will fully cancel/place all secondary orders.
- `"complete_fill"` - a complete execution (meaning the primary order no longer exists) will cancel/place the secondary orders.
- `"incremental"` - any fill of the primary order will cause proportional partial cancellation/placement of the secondary order. The amount that will be subtracted/added to the secondary order will be rounded down to the contract size.
'
- name: otoco_config
in: query
schema:
type: array
items:
type: object
properties:
amount:
$ref: '#/components/schemas/amount'
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.
direction:
$ref: '#/components/schemas/direction'
description: Direction of trade from the maker perspective
type:
type: string
enum:
- limit
- stop_limit
- take_limit
- market
- stop_market
- take_market
- market_limit
- trailing_stop
description: 'The order type, default: "limit"'
label:
type: string
description: user defined label for the order (maximum 64 characters)
price:
type: number
description: The order price in base currency (Only for limit and stop_limit orders)
reduce_only:
type: boolean
default: false
description: If true, the order is considered reduce-only which is intended to only reduce a current position
time_in_force:
type: string
default: good_til_cancelled
enum:
- good_til_cancelled
- good_til_day
- fill_or_kill
- immediate_or_cancel
description: Specifies how long the order remains in effect. Default "good_til_cancelled"
post_only:
type: boolean
default: false
description: If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below or above the spread (according to the direction of the order).
reject_post_only:
type: boolean
default: false
description: If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected.
trigger_price:
type: number
description: Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)
trigger_offset:
type: number
description: The maximum deviation from the price peak beyond which the order will be triggered
trigger:
$ref: '#/components/schemas/trigger'
description: Defines the trigger type. Required for "Stop-Loss", "Take-Profit" and "Trailing" trigger orders
description: List of orders to create or cancel when this order is filled.
style: form
explode: true
required: false
responses:
'200':
$ref: '#/components/responses/PrivateBuyAndSellResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2148
method: private/sell
params:
instrument_name: ETH-PERPETUAL
amount: 123
type: stop_limit
price: 145.61
trigger_price: 145
trigger: last_price
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Places a sell order for an instrument. Supports various order types including limit, market, stop, and advanced order types (stop-limit, take-profit, take-profit-limit, trailing-stop, etc.).
You can specify order parameters such as price, quantity, time-in-force, post-only, reduce-only, and trigger conditions. Orders can be labeled for easier management and tracking. Market Maker Protection (MMP) can be enabled to prevent excessive quoting.
**📖 Related Article:** [Order Management Best Practices](https://docs.deribit.com/articles/order-management-best-practices)
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fsell)
'
x-mint:
metadata:
title: private/sell
og:title: private/sell
keywords:
- private/sell
- instrument_name
- amount
- contracts
- type
- label
- price
- time_in_force
- display_amount
- post_only
- reject_post_only
- reduce_only
- trigger_price
- trigger_offset
- trigger
- advanced
- mmp
- valid_until
- linked_order_type
- trigger_fill_condition
- otoco_config
- order
- trades
- order_id
- order_state
- order_type
- original_order_type
- is_rebalance
- is_liquidation
- creation_timestamp
- last_update_timestamp
- direction
- api
- web
- mobile
- refresh_amount
- filled_amount
- average_price
- implv
- usd
- triggered
- trigger_reference_price
- block_trade
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
- trade_id
- trade_seq
- timestamp
- matching_id
- tick_direction
- index_price
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- state
- block_trade_id
- block_rfq_id
- block_rfq_quote_id
- profit_loss
- mark_price
- legs
- combo_id
- combo_trade_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/trading/private-sell
/private/edit:
get:
parameters:
- in: query
name: order_id
required: true
schema:
$ref: '#/components/schemas/order_id'
description: The order id
- name: amount
in: query
schema:
type: number
required: false
description: It represents the requested order size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin. The `amount` is a mandatory parameter if `contracts` parameter is missing. If both `contracts` and `amount` parameter are passed they must match each other otherwise error is returned.
- name: contracts
in: query
schema:
type: number
required: false
description: It represents the requested order size in contract units and can be passed instead of `amount`. The `contracts` is a mandatory parameter if `amount` parameter is missing. If both `contracts` and `amount` parameter are passed they must match each other otherwise error is returned.
- name: price
in: query
schema:
type: number
required: false
description: The order price in base currency.
When editing an option order with advanced=usd, the field price should be the option price value in USD.
When editing an option order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
- name: post_only
in: query
schema:
type: boolean
default: true
required: false
description: If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below or above the spread (accordingly to the original order type).
Only valid in combination with time_in_force=`"good_til_cancelled"`
- name: reduce_only
in: query
schema:
type: boolean
default: false
required: false
description: If `true`, the order is considered reduce-only which is intended to only reduce a current position
- name: reject_post_only
in: query
schema:
type: boolean
default: false
required: false
description: If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected.
Only valid in combination with `"post_only"` set to true
- name: advanced
in: query
schema:
$ref: '#/components/schemas/advanced'
required: false
description: Advanced option order type. If you have posted an advanced option order, it is necessary to re-supply this parameter when editing it (Only for options)
- name: trigger_price
in: query
schema:
type: number
required: false
description: Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)
- name: trigger_offset
in: query
schema:
type: number
required: false
description: The maximum deviation from the price peak beyond which the order will be triggered
- name: mmp
in: query
schema:
type: boolean
default: false
required: false
description: Order MMP flag, only for order_type 'limit'
- name: valid_until
in: query
schema:
type: integer
required: false
description: Timestamp, when provided server will start processing request in Matching Engine only before given timestamp, in other cases `timed_out` error will be responded. Remember that the given timestamp should be consistent with the server's time, use /public/time method to obtain current server time.
- name: display_amount
in: query
schema:
type: number
default: 1
required: false
description: Initial display amount for iceberg order. Has to be at least 100 times minimum amount for instrument and ratio of hidden part vs visible part has to be less than 100 as well.
responses:
'200':
$ref: '#/components/responses/PrivateEditResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 3725
method: private/edit
params:
order_id: '438994'
amount: 4
price: 222
advanced: implv
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Modifies an existing order by changing its price, amount, and/or other properties such as time-in-force, post-only, reduce-only, trigger conditions, or advanced order type.
The 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.
**📖 Related Article:** [Order Management Best Practices](https://docs.deribit.com/articles/order-management-best-practices)
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fedit)
'
x-mint:
metadata:
title: private/edit
og:title: private/edit
keywords:
- private/edit
- order_id
- amount
- contracts
- price
- post_only
- reduce_only
- reject_post_only
- advanced
- trigger_price
- trigger_offset
- mmp
- valid_until
- display_amount
- order
- trades
- order_state
- order_type
- original_order_type
- time_in_force
- is_rebalance
- is_liquidation
- instrument_name
- creation_timestamp
- last_update_timestamp
- direction
- label
- api
- web
- mobile
- refresh_amount
- filled_amount
- average_price
- implv
- usd
- triggered
- trigger
- trigger_reference_price
- block_trade
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- trigger_fill_condition
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
- trade_id
- trade_seq
- timestamp
- matching_id
- tick_direction
- index_price
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- state
- block_trade_id
- block_rfq_id
- block_rfq_quote_id
- profit_loss
- mark_price
- legs
- combo_id
- combo_trade_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/trading/private-edit
/private/edit_by_label:
get:
parameters:
- name: label
in: query
schema:
type: string
required: false
description: user defined label for the order (maximum 64 characters)
- name: instrument_name
required: true
in: query
schema:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
- name: amount
in: query
schema:
type: number
required: false
description: It represents the requested order size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin. The `amount` is a mandatory parameter if `contracts` parameter is missing. If both `contracts` and `amount` parameter are passed they must match each other otherwise error is returned.
- name: contracts
in: query
schema:
type: number
required: false
description: It represents the requested order size in contract units and can be passed instead of `amount`. The `contracts` is a mandatory parameter if `amount` parameter is missing. If both `contracts` and `amount` parameter are passed they must match each other otherwise error is returned.
- name: price
in: query
schema:
type: number
required: false
description: The order price in base currency.
When editing an option order with advanced=usd, the field price should be the option price value in USD.
When editing an option order with advanced=implv, the field price should be a value of implied volatility in percentages. For example, price=100, means implied volatility of 100%
- name: post_only
in: query
schema:
type: boolean
default: true
required: false
description: If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below or above the spread (accordingly to the original order type).
Only valid in combination with time_in_force=`"good_til_cancelled"`
- name: reduce_only
in: query
schema:
type: boolean
default: false
required: false
description: If `true`, the order is considered reduce-only which is intended to only reduce a current position
- name: reject_post_only
in: query
schema:
type: boolean
default: false
required: false
description: If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected.
Only valid in combination with `"post_only"` set to true
- name: advanced
in: query
schema:
$ref: '#/components/schemas/advanced'
required: false
description: Advanced option order type. If you have posted an advanced option order, it is necessary to re-supply this parameter when editing it (Only for options)
- name: trigger_price
in: query
schema:
type: number
required: false
description: Trigger price, required for trigger orders only (Stop-loss or Take-profit orders)
- name: mmp
in: query
schema:
type: boolean
default: false
required: false
description: Order MMP flag, only for order_type 'limit'
- name: valid_until
in: query
schema:
type: integer
required: false
description: Timestamp, when provided server will start processing request in Matching Engine only before given timestamp, in other cases `timed_out` error will be responded. Remember that the given timestamp should be consistent with the server's time, use /public/time method to obtain current server time.
responses:
'200':
$ref: '#/components/responses/PrivateEditResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 9
method: private/edit_by_label
params:
instrument_name: BTC-PERPETUAL
label: i_love_deribit
amount: 150
price: 50111
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Modifies an order identified by its label. This method works only when there is exactly one open order with the specified label.
You 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.
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fedit_by_label)
'
x-mint:
metadata:
title: private/edit_by_label
og:title: private/edit_by_label
keywords:
- private/edit_by_label
- label
- instrument_name
- amount
- contracts
- price
- post_only
- reduce_only
- reject_post_only
- advanced
- trigger_price
- mmp
- valid_until
- order
- trades
- order_id
- order_state
- order_type
- original_order_type
- time_in_force
- is_rebalance
- is_liquidation
- creation_timestamp
- last_update_timestamp
- direction
- api
- web
- mobile
- refresh_amount
- display_amount
- filled_amount
- average_price
- implv
- usd
- triggered
- trigger
- trigger_offset
- trigger_reference_price
- block_trade
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- trigger_fill_condition
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
- trade_id
- trade_seq
- timestamp
- matching_id
- tick_direction
- index_price
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- state
- block_trade_id
- block_rfq_id
- block_rfq_quote_id
- profit_loss
- mark_price
- legs
- combo_id
- combo_trade_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/trading/private-edit_by_label
/private/close_position:
get:
tags:
- Private
parameters:
- name: instrument_name
required: true
in: query
schema:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
- name: type
in: query
schema:
type: string
enum:
- limit
- market
required: true
description: The order type
- name: price
in: query
schema:
type: number
required: false
description: Optional price for limit order.
responses:
'200':
$ref: '#/components/responses/PrivateBuyAndSellResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 6130
method: private/close_position
params:
instrument_name: ETH-PERPETUAL
type: limit
price: 145.17
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Places a reduce-only order to close an existing position. Reduce-only orders can only reduce or close a position; they cannot open a new position or increase an existing one.
You 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.
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fclose_position)
'
x-mint:
metadata:
title: private/close_position
og:title: private/close_position
keywords:
- private/close_position
- instrument_name
- type
- price
- order
- trades
- order_id
- order_state
- order_type
- original_order_type
- time_in_force
- is_rebalance
- is_liquidation
- creation_timestamp
- last_update_timestamp
- direction
- label
- post_only
- reject_post_only
- reduce_only
- api
- web
- mobile
- refresh_amount
- display_amount
- amount
- contracts
- filled_amount
- average_price
- advanced
- implv
- usd
- triggered
- trigger
- trigger_price
- trigger_offset
- trigger_reference_price
- block_trade
- mmp
- risk_reducing
- replaced
- auto_replaced
- quote
- mmp_group
- quote_set_id
- quote_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- trigger_fill_condition
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
- trade_id
- trade_seq
- timestamp
- matching_id
- tick_direction
- index_price
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- state
- block_trade_id
- block_rfq_id
- block_rfq_quote_id
- profit_loss
- mark_price
- legs
- combo_id
- combo_trade_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
href: /api-reference/trading/private-close_position
/private/get_margins:
get:
parameters:
- name: instrument_name
required: true
in: query
schema:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
- name: amount
in: query
schema:
type: number
required: true
description: It represents the requested order size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.
- in: query
name: price
required: true
schema:
type: number
example: 3725
description: Price
responses:
'200':
$ref: '#/components/responses/PrivateGetMarginsResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 7
method: private/get_margins
params:
instrument_name: BTC-PERPETUAL
amount: 10000
price: 3725
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Calculates margin requirements for a hypothetical order on a given instrument. Returns initial margin and maintenance margin for the specified instrument, quantity, and price.
This 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.
**Scope:** `trade:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_margins)
'
x-mint:
metadata:
title: private/get_margins
og:title: private/get_margins
keywords:
- private/get_margins
- instrument_name
- amount
- price
- buy
- sell
- min_price
- max_price
href: /api-reference/trading/private-get_margins
/private/get_mmp_config:
get:
tags:
- Private
parameters:
- name: index_name
required: false
in: query
schema:
$ref: '#/components/schemas/index_name_derivative'
description: Index identifier of derivative instrument on the platform; skipping this parameter will return all configurations
- name: mmp_group
required: false
in: query
schema:
type: string
example: MassQuoteBot7
description: 'Specifies the MMP group for which the configuration is being retrieved. MMP groups are used for Mass Quotes. If MMP group is not provided, the method returns the configuration for the MMP settings for regular orders. The `index_name` must be specified before using this parameter.
**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.
**📖 Related Article:** [Mass Quotes Specifications](https://docs.deribit.com/articles/mass-quotes-specifications)
'
- name: block_rfq
required: false
in: query
schema:
type: boolean
default: false
description: 'If true, retrieves MMP configuration for Block RFQ. When set, requires `block_rfq` scope instead of `trade` scope. Block RFQ MMP settings are completely separate from normal order/quote MMP settings.
'
responses:
'200':
$ref: '#/components/responses/PrivateGetMmpConfigResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 7859
method: private/get_mmp_config
params:
index_name: btc_usd
mmp_group: MassQuoteBot7
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves Market Maker Protection (MMP) configuration for an index. Returns all currently active MMP parameters for the selected index, including the interval, `frozen_time`, quantity/delta/vega limits, and `max_quote_quantity`.
If 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.
For Mass Quotes, specify the `mmp_group` parameter to retrieve configuration for a specific MMP group. If no group is provided, returns configuration for regular orders. Set `block_rfq` to `true` to retrieve MMP configuration for Block RFQ (requires `block_rfq:read` scope).
Each entry in the response includes an `id` field (integer) that uniquely identifies the MMP group. This integer ID is the programmatic identifier for the group and can be used to reference it in contexts where the string `mmp_group` name is not accepted. Entries that have no `mmp_group` name in the response correspond to the orders MMP group (the default group).
**📖 Related Article:** [Market Maker Protection API Configuration](https://docs.deribit.com/articles/market-maker-protection)
**Scope:** `trade:read` or `block_rfq:read` (when `block_rfq` = `true`)
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_mmp_config)
'
x-mint:
metadata:
title: private/get_mmp_config
og:title: private/get_mmp_config
keywords:
- private/get_mmp_config
- index_name
- mmp_group
- block_rfq
- interval
- frozen_time
- quantity_limit
- delta_limit
- vega_limit
- max_quote_quantity
- trade_count_limit
href: /api-reference/trading/private-get_mmp_config
/private/get_mmp_status:
get:
tags:
- Private
parameters:
- name: index_name
required: false
in: query
schema:
$ref: '#/components/schemas/index_name_derivative'
description: Index identifier of derivative instrument on the platform; skipping this parameter will return all configurations
- name: mmp_group
required: false
in: query
schema:
type: string
example: MassQuoteBot7
description: 'Specifies the MMP group for which the status is being retrieved. The `index_name` must be specified before using this parameter.
**📖 Related Article:** [Mass Quotes Specifications](https://docs.deribit.com/articles/mass-quotes-specifications)
'
- name: block_rfq
required: false
in: query
schema:
type: boolean
default: false
description: 'If true, retrieves MMP status for Block RFQ. When set, requires `block_rfq` scope instead of `trade` scope. Block RFQ MMP status is completely separate from normal order/quote MMP status.
'
responses:
'200':
$ref: '#/components/responses/PrivateGetMmpStatusResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 7851
method: private/get_mmp_status
params:
index_name: btc_usd
mmp_group: MassQuoteBot7
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves Market Maker Protection (MMP) status for a triggered index or MMP group. Returns the live MMP state including whether MMP is enabled or triggered, remaining frozen time (if triggered), whether quoting is currently allowed, and any active freeze conditions.
If 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.
For Mass Quotes, specify the `mmp_group` parameter to check status for a specific MMP group. Set `block_rfq` to `true` to retrieve MMP status for Block RFQ (requires `block_rfq:read` scope).
**📖 Related Article:** [Market Maker Protection API Configuration](https://docs.deribit.com/articles/market-maker-protection)
**Scope:** `trade:read` or `block_rfq:read` (when `block_rfq` = `true`)
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_mmp_status)
'
x-mint:
metadata:
title: private/get_mmp_status
og:title: private/get_mmp_status
keywords:
- private/get_mmp_status
- index_name
- mmp_group
- block_rfq
- frozen_until
href: /api-reference/trading/private-get_mmp_status
/private/set_mmp_config:
get:
tags:
- Private
parameters:
- name: index_name
required: true
in: query
schema:
$ref: '#/components/schemas/index_name_derivative'
description: Index identifier of derivative instrument on the platform
- name: interval
required: true
in: query
schema:
type: integer
minimum: 0
maximum: 3600
example: 60
description: 'The duration of the monitoring window in seconds. For example, an `interval` of `3` implies a 3-second window.
The `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.
This mechanism allows the platform to track activity in short, rolling windows to identify potentially risky trading behavior.
If set to `0`, MMP is removed.
Maximum value: `3600` seconds (1 hour).
'
- name: frozen_time
required: true
in: query
schema:
type: integer
minimum: 0
maximum: 3600
example: 0
description: 'Time in seconds that MMP remains active after being triggered. Once this frozen period has passed, MMP will automatically reset, allowing new orders to be submitted.
If 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.
Manual reset is also possible during the frozen time period.
Maximum value: `3600` seconds (1 hour).
'
- name: mmp_group
required: false
in: query
schema:
type: string
example: MassQuoteBot7
description: 'Designates the MMP group for which the configuration is being set. If the specified group is already associated with a different `index_name`, an error is returned. This parameter enables distinct configurations for each MMP group, linked to particular `index_name`. Maximum 64 characters. Case sensitive. Cannot be empty string.
**📖 Related Article:** [Mass Quotes Specifications](https://docs.deribit.com/articles/mass-quotes-specifications)
'
- name: quantity_limit
required: false
in: query
schema:
type: number
example: 3
description: 'The total traded quantity, measured in units of the base currency (e.g., BTC in `BTC-PERPETUAL`), within the `interval`.
This count is direction-agnostic—a buy followed by a sell counts double.
Example: Buy `10` BTC and sell `10` BTC = `20` total quantity.
Applicable to both options and futures.
Positive value with maximum 4 decimal places.
'
- name: delta_limit
required: false
in: query
schema:
type: number
description: 'The maximum allowable net transaction delta change during the `interval`.
Expressed in units of base currency.
The `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`.
Direction matters: buying `+5` delta and selling `−5` delta cancels out if within the same `interval`.
**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.
Positive value with maximum 4 decimal places.
'
- name: vega_limit
required: false
in: query
schema:
type: number
description: 'The maximum change in vega exposure allowed within a given `interval`, measured in absolute terms.
Expressed in USD, representing the change in sensitivity to implied volatility across executed trades.
This parameter is primarily relevant for options traders managing risk in volatile markets.
Similar 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.
**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.
Positive value with maximum 4 decimal places.
'
- name: max_quote_quantity
required: true
in: query
schema:
type: number
example: 2.5
description: Maximum Quote Quantity (MQQ) in base currency. MQQ is configured per index but enforced per side, per order book (instrument) — the total combined size of open MMP orders per side per instrument cannot exceed MQQ. **See response description for detailed information about MQQ behavior and limitations.** Maximum 4 decimal places.
- name: block_rfq
required: false
in: query
schema:
type: boolean
default: false
description: 'If true, configures MMP for Block RFQ. When set, requires `block_rfq` scope instead of `trade` scope. Block RFQ MMP settings are completely separate from normal order/quote MMP settings.
'
- name: trade_count_limit
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: For Block RFQ only (`block_rfq` = `true`). Sets the maximum number of Block RFQ trades allowed in the lookback window. Each RFQ trade counts as `+1` towards the limit (not individual legs). Works across all currency pairs. When using this parameter, `index_name` must be set to `"all"`. Maximum - `1000`.
responses:
'200':
$ref: '#/components/responses/PrivateSetMmpConfigResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 7859
method: private/set_mmp_config
params:
index_name: btc_usd
mmp_group: MassQuoteBot7
interval: 60
frozen_time: 0
quantity_limit: 3
max_quote_quantity: 2.5
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Configures Market Maker Protection (MMP) for a specific index. This method sets the monitoring window, freeze duration, and exposure limits (quantity, delta, vega, and Maximum Quote Quantity).
At 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).
The `interval` parameter defines the monitoring window duration in seconds. The `frozen_time` parameter sets how long MMP remains active after being triggered. Set `frozen_time` to `0` to disable automatic reset (manual reset required).
For Mass Quotes, use the `mmp_group` parameter to configure MMP for a specific group. Set `block_rfq` to `true` to configure MMP for Block RFQ (requires `block_rfq:read_write` scope). Set `interval` to `0` to remove MMP configuration.
**📖 Related Article:** [Market Maker Protection API Configuration](https://docs.deribit.com/articles/market-maker-protection)
**Scope:** `trade:read_write` or `block_rfq:read_write` (when `block_rfq` = `true`)
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fset_mmp_config)
'
x-mint:
metadata:
title: private/set_mmp_config
og:title: private/set_mmp_config
keywords:
- private/set_mmp_config
- index_name
- interval
- frozen_time
- mmp_group
- quantity_limit
- delta_limit
- vega_limit
- max_quote_quantity
- block_rfq
- trade_count_limit
href: /api-reference/trading/private-set_mmp_config
/private/reset_mmp:
get:
tags:
- Private
parameters:
- name: index_name
required: true
in: query
schema:
type: string
example: btc_usd
description: 'Currency pair for which to reset MMP limits.
**For regular MMP (`block_rfq = false`):** Must be a specific currency pair (e.g., "btc_usd", "eth_usd"). The value `"all"` is not allowed.
**For Block RFQ MMP (`block_rfq = true`):** Can be either a specific currency pair or `"all"` to reset MMP limits across all currency pairs.
'
- name: mmp_group
required: false
in: query
schema:
type: string
example: MassQuoteBot7
description: 'Specifies the MMP group for which limits are being reset. If this parameter is omitted, the method resets the traditional (no group) MMP limits.
**📖 Related Article:** [Mass Quotes Specifications](https://docs.deribit.com/articles/mass-quotes-specifications)
'
- name: block_rfq
required: false
in: query
schema:
type: boolean
default: false
description: 'If true, resets MMP for Block RFQ. When set, requires `block_rfq` scope instead of `trade` scope. Block RFQ MMP settings are completely separate from normal order/quote MMP settings. When `block_rfq = true`, the `index_name` parameter can be set to `"all"` to reset limits across all currency pairs.
'
responses:
'200':
$ref: '#/components/responses/OkResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 7859
method: private/reset_mmp
params:
index_name: btc_usd
mmp_group: MassQuoteBot7
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Resets Market Maker Protection (MMP) limits for the specified currency pair or MMP group. If MMP protection has been triggered and quoting is frozen, this method allows you to manually resume quoting.
If 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.
For regular MMP (`block_rfq = false`), the `index_name` must be a specific currency pair (e.g., "btc_usd", "eth_usd"). For Block RFQ MMP (`block_rfq = true`), you can set `index_name` to `"all"` to reset limits across all currency pairs. Use the `mmp_group` parameter to reset limits for a specific MMP group.
**📖 Related Article:** [Market Maker Protection API Configuration](https://docs.deribit.com/articles/market-maker-protection)
**Scope:** `trade:read_write` or `block_rfq:read_write` (when `block_rfq` = `true`)
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Freset_mmp)
'
x-mint:
metadata:
title: private/reset_mmp
og:title: private/reset_mmp
keywords:
- private/reset_mmp
- index_name
- mmp_group
- block_rfq
href: /api-reference/trading/private-reset_mmp
/private/mass_quote:
get:
parameters:
- name: wait_for_response
in: query
schema:
type: boolean
required: false
description: If false, the response is sent immediately after the risk check. If true, the response is sent after the orders all go through the matching engine. Default - `true`.
- name: detailed
in: query
schema:
type: boolean
example: true
required: false
description: Flag to receive a list of all order changes and a list of errors, or to only receive a list of errors. Default - `false`.
- name: quote_id
in: query
schema:
type: string
example: '1'
required: true
description: Identifier of a mass quote message. Can be used to match trades to requests. We recommend using an incrementing counter.
- name: mmp_group
in: query
schema:
type: string
example: default
required: true
description: Name of the MMP group. An MMP group has to be used and only one quote can exist per instrument per side per MMP group.
- name: valid_until
in: query
schema:
type: integer
required: false
description: Timestamp, when provided server will start processing request in Matching Engine only before given timestamp, in other cases `timed_out` error will be responded. Remember that the given timestamp should be consistent with the server's time, use /public/time method to obtain current server time.
- name: quotes
in: query
required: true
schema:
type: array
items:
type: object
properties:
instrument_name:
type: string
description: The name of the instrument.
quote_set_id:
type: string
description: User-defined label that can be used for targeted cancels using private/cancel_quotes.
ask:
type: object
properties:
price:
type: number
description: The price of this side of the quote. If no price is supplied, only the amount is amended.
amount:
type: number
description: The amount of this side of the quote. If no quantity is supplied, only the price is amended.
post_only:
type: boolean
default: false
description: If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below the spread. Default - `false`
reject_post_only:
type: boolean
default: false
description: If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected. Only valid in combination with "post_only" set to `true`. Default value - `false`
description: Order details for the ask. If not provided, `bid` must be present.
bid:
type: object
properties:
price:
type: number
description: The price of this side of the quote. If no price is supplied, only the amount is amended.
amount:
type: number
description: The amount of this side of the quote. If no quantity is supplied, only the price is amended.
post_only:
type: boolean
default: false
description: If true, the order is considered post-only. If the new price would cause the order to be filled immediately (as taker), the price will be changed to be just below the spread. Default - `false`
reject_post_only:
type: boolean
default: false
description: If an order is considered post-only and this field is set to true then the order is put to the order book unmodified or the request is rejected. Only valid in combination with "post_only" set to `true`. Default value - `false`
description: Order details for the bid. If not provided, `ask` must be present.
example:
- instrument_name: BTC-PERPETUAL
quote_set_id: futures
ask:
price: 43800
amount: 10
bid:
price: 43700
amount: 10
- instrument_name: BTC-22DEC23-41600-C
quote_set_id: options
ask:
price: 0.05
amount: 1
bid:
price: 0.04
amount: 1
description: List of quotes.
style: form
explode: true
responses:
'200':
$ref: '#/components/responses/PrivateMassQuoteResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 7859
method: private/mass_quote
params:
detailed: true
quote_id: '1'
mmp_group: default
quotes:
- instrument_name: BTC-PERPETUAL
quote_set_id: futures
ask:
price: 43800
amount: 10
bid:
price: 43700
amount: 10
- instrument_name: BTC-22DEC23-41600-C
quote_set_id: options
ask:
price: 0.05
amount: 1
bid:
price: 0.04
amount: 1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Places buy and/or sell orders (quotes) on one or more instruments simultaneously. This method is designed for market makers who need to quote on multiple instruments efficiently.
**Requirements:**
- 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.
- This endpoint can only be used after approval from the administrators.
Each quote can include both bid and ask sides, or just one side. Quotes are identified by `quote_set_id` for targeted cancellation. Use the `wait_for_response` parameter to control whether to wait for all orders to be processed before returning.
**📖 Related Article:** [Mass Quotes Specifications](https://docs.deribit.com/articles/mass-quotes-specifications)
**Scope:** `trade:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fmass_quote)
'
x-mint:
metadata:
title: private/mass_quote
og:title: private/mass_quote
keywords:
- private/mass_quote
- wait_for_response
- detailed
- quote_id
- mmp_group
- valid_until
- quotes
- orders
- trades
- errors_count
- pending_requests_count
- pending_requests
- errors
- order_id
- order_state
- order_type
- original_order_type
- time_in_force
- is_rebalance
- is_liquidation
- instrument_name
- creation_timestamp
- last_update_timestamp
- direction
- price
- label
- post_only
- reject_post_only
- reduce_only
- api
- web
- mobile
- refresh_amount
- display_amount
- amount
- contracts
- filled_amount
- average_price
- advanced
- implv
- usd
- triggered
- trigger
- trigger_price
- trigger_offset
- trigger_reference_price
- block_trade
- mmp
- risk_reducing
- replaced
- auto_replaced
- quote
- quote_set_id
- trigger_order_id
- app_name
- mmp_cancelled
- cancel_reason
- oto_order_ids
- trigger_fill_condition
- oco_ref
- primary_order_id
- is_secondary_oto
- is_primary_otoco
- trade_id
- trade_seq
- timestamp
- matching_id
- tick_direction
- index_price
- iv
- underlying_price
- liquidation
- liquidity
- fee
- fee_currency
- state
- block_trade_id
- block_rfq_id
- block_rfq_quote_id
- profit_loss
- mark_price
- legs
- combo_id
- combo_trade_id
- trade_allocations
- user_id
- client_info
- client_id
- client_link_id
- name
- side
- code
- message
href: /api-reference/trading/private-mass_quote
/private/move_positions:
get:
parameters:
- in: query
name: currency
required: false
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: source_uid
in: query
schema:
type: integer
example: 1
required: true
description: Id of source subaccount. Can be found in `My Account >> Subaccounts` tab
- name: target_uid
in: query
schema:
type: integer
example: 1
required: true
description: Id of target subaccount. Can be found in `My Account >> Subaccounts` tab
- in: query
name: trades
required: true
schema:
type: array
items:
type: object
properties:
instrument_name:
$ref: '#/components/schemas/instrument_name'
description: Instrument name
price:
type: number
description: Price for trade - if not provided average price of the position is used
amount:
type: number
description: It represents the requested trade size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin. Amount can't exceed position size.
description: List of trades for position move
style: form
explode: true
responses:
'200':
$ref: '#/components/responses/PrivatePositionMoveResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 3
method: private/move_positions
params:
currency: BTC
source_uid: 3
target_uid: 23
trades:
- instrument_name: BTC-PERPETUAL
price: '35800'
amount: '110'
- instrument_name: BTC-28JAN22-32500-C
amount: '0.1'
description: JSON-RPC Request Example
description: JSON-RPC request body
description: "Moves positions from a source subaccount to a target subaccount. This operation transfers open positions between subaccounts, which is useful for rebalancing or reorganizing trading activities.\n\nPositions can be filtered by currency. The operation creates trades to transfer positions, which may affect P&L and margin calculations.\n\n**Note - This method has distinct API rate limiting requirements:** \n- Sustained rate: 6 requests/minute\n- Weekly limit: 100 move_position uses per week (168 hours)\n\nFor more information, see [Rate Limits](https://support.deribit.com/hc/en-us/articles/25944617523357-Rate-Limits).\n\n**Important:** In rare cases, the request may return an `internal_server_error`. This does not necessarily mean the operation failed entirely. Part or all of the position transfer might have still been processed successfully. Check the positions in both accounts to verify the transfer status.\n\n**\U0001F4D6 Related Article:** [Moving Positions](https://docs.deribit.com/articles/moving-positions-api)\n\n**Scope:** `trade:read_write`\n\n[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fmove_positions)\n\n"
x-mint:
metadata:
title: private/move_positions
og:title: private/move_positions
keywords:
- private/move_positions
- currency
- source_uid
- target_uid
- trades
- instrument_name
- direction
- price
- amount
href: /api-reference/trading/private-move_positions
/private/get_deposits:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: count
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: Number of requested items, default - `10`, maximum - `1000`
- name: offset
in: query
required: false
schema:
example: 10
type: integer
description: The offset for pagination, default - `0`
responses:
'200':
$ref: '#/components/responses/PrivateGetDepositsResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 5611
method: private/get_deposits
params:
currency: BTC
count: 10
offset: 0
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieve the latest user deposits. Returns a list of deposit transactions with their status, amounts, addresses, confirmations, and other relevant details.
**📖 Related Article:** [Managing Deposits](https://docs.deribit.com/articles/managing-deposits-api)
**Scope:** `wallet:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_deposits)
'
x-mint:
metadata:
title: private/get_deposits
og:title: private/get_deposits
keywords:
- private/get_deposits
- currency
- count
- offset
- data
- address
- amount
- state
- transaction_id
- source_address
- received_timestamp
- updated_timestamp
- note
- clearance_state
- refund_transaction_id
href: /api-reference/wallet/private-get_deposits
/private/create_deposit_address:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
responses:
'200':
$ref: '#/components/responses/PrivateDepositAddressResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 7538
method: private/create_deposit_address
params:
currency: BTC
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Creates a new deposit address for the specified currency. Each currency can have multiple deposit addresses. Use this method to generate a new address for receiving deposits.
**Note:**
For Bitcoin, a new address can be generated every 24 hours.
For ERC20, Solana and XRP only one address can be generated.
**Note:**
If an ERC20 address is generated, this address will be automatically added for every asset that uses ERC20 addresses.
**📖 Related Article:** [Managing Deposits](https://docs.deribit.com/articles/managing-deposits-api)
**Scope:** `wallet:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcreate_deposit_address)
'
x-mint:
metadata:
title: private/create_deposit_address
og:title: private/create_deposit_address
keywords:
- private/create_deposit_address
- currency
- creation_timestamp
- address
- type
href: /api-reference/wallet/private-create_deposit_address
/private/get_current_deposit_address:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
responses:
'200':
$ref: '#/components/responses/PrivateDepositAddressResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 3461
method: private/get_current_deposit_address
params:
currency: BTC
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieve the current deposit address for the specified currency. Returns the most recently created or used deposit address for receiving funds.
**📖 Related Article:** [Managing Deposits](https://docs.deribit.com/articles/managing-deposits-api)
**Scope:** `wallet:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_current_deposit_address)
'
x-mint:
metadata:
title: private/get_current_deposit_address
og:title: private/get_current_deposit_address
keywords:
- private/get_current_deposit_address
- currency
- creation_timestamp
- address
- type
href: /api-reference/wallet/private-get_current_deposit_address
/private/withdraw:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: address
in: query
schema:
type: string
required: true
description: Address in currency format, it must be in address book
- name: amount
in: query
schema:
type: number
required: true
description: Amount of funds to be withdrawn
- name: priority
in: query
schema:
type: string
enum:
- insane
- extreme_high
- very_high
- high
- mid
- low
- very_low
required: false
description: 'Withdrawal priority, optional for BTC, default: `high`'
- in: query
name: nonce
required: false
schema:
$ref: '#/components/schemas/nonce'
description: Optional idempotency nonce. If provided, subsequent requests with the same nonce will return the previously created transaction instead of creating a new one. Must be 8-128 characters. The nonce is persisted on the resulting transaction and returned in the response.
responses:
'200':
$ref: '#/components/responses/PrivateWithdrawResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 6931
method: private/withdraw
params:
currency: BTC
address: 2NBqqD5GRJ8wHy1PYyCXTe9ke5226FhavBz
amount: 0.4
priority: mid
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Creates a new withdrawal request. This method allows you to withdraw funds from your account to an external address. The withdrawal can be configured with priority settings and must use an address from your address book.
**Withdrawal Checks & Balance Updates**
Withdrawal 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.
A withdrawal may also be rejected if the on-chain fee increases between the request and confirmation.
The withdrawal amount is deducted only after all checks pass and the transaction is scheduled. The web-interface Withdrawal tab displays all withdrawals regardless of their status (pending, cancelled, rejected, or completed).
**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)
**Scope:** `wallet:read_write` and mainaccount
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fwithdraw)
'
x-mint:
metadata:
title: private/withdraw
og:title: private/withdraw
keywords:
- private/withdraw
- currency
- address
- amount
- priority
- nonce
- confirmed_timestamp
- created_timestamp
- fee
- state
- transaction_id
- updated_timestamp
href: /api-reference/wallet/private-withdraw
/private/cancel_withdrawal:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- in: query
name: id
required: true
schema:
type: number
example: 1
description: The withdrawal id
responses:
'200':
$ref: '#/components/responses/PrivateWithdrawResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 7420
method: private/cancel_withdrawal
params:
currency: BTC
id: 1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Cancels a pending withdrawal request. This method allows you to cancel a withdrawal that has not yet been processed. Once a withdrawal is processed, it cannot be cancelled.
**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)
**Scope:** `wallet:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_withdrawal)
'
x-mint:
metadata:
title: private/cancel_withdrawal
og:title: private/cancel_withdrawal
keywords:
- private/cancel_withdrawal
- currency
- id
- address
- amount
- confirmed_timestamp
- created_timestamp
- fee
- priority
- state
- transaction_id
- updated_timestamp
- nonce
href: /api-reference/wallet/private-cancel_withdrawal
/private/get_withdrawals:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: count
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: Number of requested items, default - `10`, maximum - `1000`
- name: offset
in: query
required: false
schema:
example: 10
type: integer
description: The offset for pagination, default - `0`
responses:
'200':
$ref: '#/components/responses/PrivateGetWithdrawalsResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 2745
method: private/get_withdrawals
params:
currency: BTC
count: 10
offset: 0
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieve the latest user withdrawals. Returns a list of withdrawal requests with their status, amounts, addresses, and other relevant details.
**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)
**Scope:** `wallet:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_withdrawals)
'
x-mint:
metadata:
title: private/get_withdrawals
og:title: private/get_withdrawals
keywords:
- private/get_withdrawals
- currency
- count
- offset
- data
- address
- amount
- confirmed_timestamp
- created_timestamp
- fee
- priority
- state
- transaction_id
- updated_timestamp
- nonce
href: /api-reference/wallet/private-get_withdrawals
/private/get_address_book:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/wallet_currency'
description: The currency symbol
- name: type
in: query
schema:
$ref: '#/components/schemas/address_book_type'
required: true
description: Address book type
responses:
'200':
$ref: '#/components/responses/PrivateAddressBookResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 31
method: private/get_address_book
params:
currency: BTC
type: withdrawal
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves the address book entries of the given type. Returns all saved addresses that can be used for withdrawals, along with their labels and beneficiary information if available.
**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)
**Scope:** `wallet:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_address_book)
'
x-mint:
metadata:
title: private/get_address_book
og:title: private/get_address_book
keywords:
- private/get_address_book
- currency
- type
- address
- creation_timestamp
- label
- beneficiary_vasp_name
- beneficiary_vasp_did
- beneficiary_vasp_website
- beneficiary_first_name
- beneficiary_last_name
- beneficiary_company_name
- beneficiary_address
- agreed
- personal
- info_required
- status
- waiting_timestamp
- requires_confirmation
- requires_confirmation_change
href: /api-reference/wallet/private-get_address_book
/private/add_to_address_book:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/wallet_currency'
description: The currency symbol
- name: type
in: query
schema:
$ref: '#/components/schemas/address_book_type'
required: true
description: Address book type
- name: address
in: query
schema:
type: string
required: true
description: Address in currency format
- name: label
in: query
schema:
$ref: '#/components/schemas/address_label'
required: true
description: Label of the address book entry
- name: beneficiary_vasp_name
in: query
schema:
$ref: '#/components/schemas/beneficiary_vasp_name'
required: true
description: Name of beneficiary VASP
- name: beneficiary_vasp_did
in: query
schema:
$ref: '#/components/schemas/beneficiary_vasp_did'
required: true
description: DID of beneficiary VASP
- name: beneficiary_vasp_website
in: query
schema:
$ref: '#/components/schemas/beneficiary_vasp_website'
required: false
description: Website of the beneficiary VASP. Required if the address book entry is associated with a VASP that is not included in the list of known VASPs
- name: beneficiary_first_name
in: query
schema:
$ref: '#/components/schemas/beneficiary_first_name'
description: First name of beneficiary (if beneficiary is a person)
required: false
- name: beneficiary_last_name
in: query
schema:
$ref: '#/components/schemas/beneficiary_last_name'
description: First name of beneficiary (if beneficiary is a person)
required: false
- name: beneficiary_company_name
in: query
schema:
$ref: '#/components/schemas/beneficiary_company_name'
description: Beneficiary company name (if beneficiary is a company)
required: false
- name: beneficiary_address
in: query
schema:
$ref: '#/components/schemas/beneficiary_address'
required: true
description: Geographical address of the beneficiary
- name: agreed
in: query
schema:
$ref: '#/components/schemas/agree_to_share_with_3rd_party'
required: true
description: Indicates that the user agreed to shared provided information with 3rd parties
- name: personal
in: query
schema:
$ref: '#/components/schemas/personal_wallet'
required: true
description: The user confirms that he provided address belongs to him and he has access to it via an un-hosted wallet software
- name: extra_currencies
in: query
schema:
$ref: '#/components/schemas/extra_currencies'
description: The user can pass a list of currencies to add the address for. It is currently available ONLY for ERC20 currencies. Without passing this paramater for an ERC20 currency, the address will be added to ALL of the ERC20 currencies.
required: false
responses:
'200':
$ref: '#/components/responses/PrivateAddToAddressBookResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 42
method: private/add_to_address_book
params:
currency: BTC
type: withdrawal
address: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj
label: Main address
beneficiary_vasp_name: Money`s Gone
beneficiary_vasp_did: did:example:123456789abcdefghi
beneficiary_first_name: John
beneficiary_last_name: Doe
beneficiary_address: NL, Amsterdam, Street, 1
agreed: true
personal: false
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Adds a new address to the address book. The address book allows you to store addresses for withdrawals, along with beneficiary information for compliance purposes.
**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)
**Scope:** `wallet:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fadd_to_address_book)
'
x-mint:
metadata:
title: private/add_to_address_book
og:title: private/add_to_address_book
keywords:
- private/add_to_address_book
- currency
- type
- address
- label
- beneficiary_vasp_name
- beneficiary_vasp_did
- beneficiary_vasp_website
- beneficiary_first_name
- beneficiary_last_name
- beneficiary_company_name
- beneficiary_address
- agreed
- personal
- extra_currencies
- creation_timestamp
- info_required
- status
- waiting_timestamp
- requires_confirmation
- requires_confirmation_change
href: /api-reference/wallet/private-add_to_address_book
/private/remove_from_address_book:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/wallet_currency'
description: The currency symbol
- name: type
in: query
schema:
$ref: '#/components/schemas/address_book_type'
required: true
description: Address book type
- name: address
in: query
schema:
type: string
required: true
description: Address in currency format, it must be in address book
responses:
'200':
$ref: '#/components/responses/PrivateRemoveFromAddressBookResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 42
method: private/remove_from_address_book
params:
currency: BTC
type: transfer
address: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Removes an entry from the address book. This method allows you to delete a saved address that is no longer needed.
**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)
**Scope:** `wallet:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fremove_from_address_book)
'
x-mint:
metadata:
title: private/remove_from_address_book
og:title: private/remove_from_address_book
keywords:
- private/remove_from_address_book
- currency
- type
- address
href: /api-reference/wallet/private-remove_from_address_book
/private/update_in_address_book:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/wallet_currency'
description: The currency symbol
- name: type
in: query
schema:
$ref: '#/components/schemas/address_book_type'
required: true
description: Address book type
- name: address
in: query
schema:
type: string
required: true
description: Address in currency format, it must be in address book
- name: beneficiary_vasp_name
in: query
schema:
$ref: '#/components/schemas/beneficiary_vasp_name'
required: true
description: Name of beneficiary VASP
- name: beneficiary_vasp_did
in: query
schema:
$ref: '#/components/schemas/beneficiary_vasp_did'
required: true
description: DID of beneficiary VASP
- name: beneficiary_vasp_website
in: query
schema:
$ref: '#/components/schemas/beneficiary_vasp_website'
required: false
description: Website of the beneficiary VASP. Required if the address book entry is associated with a VASP that is not included in the list of known VASPs
- name: beneficiary_first_name
in: query
schema:
$ref: '#/components/schemas/beneficiary_first_name'
description: First name of beneficiary (if beneficiary is a person)
required: false
- name: beneficiary_last_name
in: query
schema:
$ref: '#/components/schemas/beneficiary_last_name'
description: First name of beneficiary (if beneficiary is a person)
required: false
- name: beneficiary_company_name
in: query
schema:
$ref: '#/components/schemas/beneficiary_company_name'
description: Beneficiary company name (if beneficiary is a company)
required: false
- name: beneficiary_address
in: query
schema:
$ref: '#/components/schemas/beneficiary_address'
required: true
description: Geographical address of the beneficiary
- name: agreed
in: query
schema:
$ref: '#/components/schemas/agree_to_share_with_3rd_party'
required: true
description: Indicates that the user agreed to shared provided information with 3rd parties
- name: personal
in: query
schema:
$ref: '#/components/schemas/personal_wallet'
required: true
description: The user confirms that he provided address belongs to him and he has access to it via an un-hosted wallet software
- name: label
in: query
schema:
$ref: '#/components/schemas/address_label'
required: true
description: Label of the address book entry
responses:
'200':
$ref: '#/components/responses/PrivateUpdateInAddressBookResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 42
method: private/update_in_address_book
params:
currency: BTC
type: withdrawal
address: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj
label: Main address
beneficiary_vasp_name: Money`s Gone
beneficiary_vasp_did: did:example:123456789abcdefghi
beneficiary_first_name: John
beneficiary_last_name: Doe
beneficiary_address: NL, Amsterdam, Street, 1
agreed: true
personal: false
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Updates beneficiary information for an address in the address book. This method allows you to add or modify beneficiary details required for compliance purposes when making withdrawals to certain addresses.
**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)
**Scope:** `wallet:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fupdate_in_address_book)
'
x-mint:
metadata:
title: private/update_in_address_book
og:title: private/update_in_address_book
keywords:
- private/update_in_address_book
- currency
- type
- address
- beneficiary_vasp_name
- beneficiary_vasp_did
- beneficiary_vasp_website
- beneficiary_first_name
- beneficiary_last_name
- beneficiary_company_name
- beneficiary_address
- agreed
- personal
- label
href: /api-reference/wallet/private-update_in_address_book
/private/save_address_beneficiary:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/wallet_currency'
description: The currency symbol
- name: address
in: query
schema:
type: string
required: true
description: Address in currency format
- name: tag
in: query
schema:
type: string
required: false
description: Tag for XRP addresses
- name: agreed
in: query
schema:
$ref: '#/components/schemas/agree_to_share_with_3rd_party'
required: true
description: Indicates that the user agreed to shared provided information with 3rd parties
- name: personal
in: query
schema:
$ref: '#/components/schemas/personal_wallet'
required: true
description: The user confirms that he provided address belongs to him and he has access to it via an un-hosted wallet software
- name: unhosted
in: query
schema:
type: boolean
required: true
description: Indicates if the address belongs to an unhosted wallet
- name: beneficiary_vasp_name
in: query
schema:
$ref: '#/components/schemas/beneficiary_vasp_name'
required: true
description: Name of beneficiary VASP
- name: beneficiary_vasp_did
in: query
schema:
$ref: '#/components/schemas/beneficiary_vasp_did'
required: true
description: DID of beneficiary VASP
- name: beneficiary_vasp_website
in: query
schema:
$ref: '#/components/schemas/beneficiary_vasp_website'
required: false
description: Website of the beneficiary VASP. Required if the address book entry is associated with a VASP that is not included in the list of known VASPs
- name: beneficiary_first_name
in: query
schema:
$ref: '#/components/schemas/beneficiary_first_name'
description: First name of beneficiary (if beneficiary is a person)
required: false
- name: beneficiary_last_name
in: query
schema:
$ref: '#/components/schemas/beneficiary_last_name'
description: First name of beneficiary (if beneficiary is a person)
required: false
- name: beneficiary_company_name
in: query
schema:
$ref: '#/components/schemas/beneficiary_company_name'
description: Beneficiary company name (if beneficiary is a company)
required: false
- name: beneficiary_address
in: query
schema:
$ref: '#/components/schemas/beneficiary_address'
required: true
description: Geographical address of the beneficiary
responses:
'200':
$ref: '#/components/responses/PrivateSaveAddressBeneficiaryResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 42
method: private/save_address_beneficiary
params:
currency: BTC
address: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj
agreed: true
personal: false
unhosted: false
beneficiary_vasp_name: Money's Gone
beneficiary_vasp_did: did:example:123456789abcdefghi
beneficiary_vasp_website: https://example.com
beneficiary_first_name: John
beneficiary_last_name: Doe
beneficiary_company_name: Example Corp
beneficiary_address: NL, Amsterdam, Street, 1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Saves beneficiary information for an address. This method allows you to store beneficiary details required for compliance purposes, including VASP information, personal details, and wallet type classification.
**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)
**Scope:** `wallet:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fsave_address_beneficiary)
'
x-mint:
metadata:
title: private/save_address_beneficiary
og:title: private/save_address_beneficiary
keywords:
- private/save_address_beneficiary
- currency
- address
- tag
- agreed
- personal
- unhosted
- beneficiary_vasp_name
- beneficiary_vasp_did
- beneficiary_vasp_website
- beneficiary_first_name
- beneficiary_last_name
- beneficiary_company_name
- beneficiary_address
- user_id
- created
- updated
href: /api-reference/wallet/private-save_address_beneficiary
/private/get_address_beneficiary:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/wallet_currency'
description: The currency symbol
- name: address
in: query
schema:
type: string
required: true
description: Address in currency format
- name: tag
in: query
schema:
type: string
required: false
description: Tag for XRP addresses
responses:
'200':
$ref: '#/components/responses/PrivateGetAddressBeneficiaryResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 42
method: private/get_address_beneficiary
params:
currency: BTC
address: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieves beneficiary information for a specific address. Returns the stored beneficiary details including VASP information, personal details, and wallet type classification.
**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)
**Scope:** `wallet:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_address_beneficiary)
'
x-mint:
metadata:
title: private/get_address_beneficiary
og:title: private/get_address_beneficiary
keywords:
- private/get_address_beneficiary
- currency
- address
- tag
- user_id
- agreed
- personal
- unhosted
- beneficiary_vasp_name
- beneficiary_vasp_did
- beneficiary_vasp_website
- beneficiary_first_name
- beneficiary_last_name
- beneficiary_company_name
- beneficiary_address
- created
- updated
href: /api-reference/wallet/private-get_address_beneficiary
/private/delete_address_beneficiary:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/wallet_currency'
description: The currency symbol
- name: address
in: query
schema:
type: string
required: true
description: Address in currency format
- name: tag
in: query
schema:
type: string
required: false
description: Tag for XRP addresses
responses:
'200':
$ref: '#/components/responses/PrivateDeleteAddressBeneficiaryResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 42
method: private/delete_address_beneficiary
params:
currency: BTC
address: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Deletes beneficiary information for a specific address.
**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)
**Scope:** `wallet:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fdelete_address_beneficiary)
'
x-mint:
metadata:
title: private/delete_address_beneficiary
og:title: private/delete_address_beneficiary
keywords:
- private/delete_address_beneficiary
- currency
- address
- tag
href: /api-reference/wallet/private-delete_address_beneficiary
/private/list_address_beneficiaries:
get:
parameters:
- name: currency
required: false
in: query
schema:
$ref: '#/components/schemas/wallet_currency'
description: The currency symbol
- name: address
in: query
schema:
type: string
required: false
description: Address in currency format
- name: tag
in: query
schema:
type: string
required: false
description: Tag for XRP addresses
- name: created_before
in: query
schema:
$ref: '#/components/schemas/timestamp'
required: false
description: Filter by creation timestamp (before)
- name: created_after
in: query
schema:
$ref: '#/components/schemas/timestamp'
required: false
description: Filter by creation timestamp (after)
- name: updated_before
in: query
schema:
$ref: '#/components/schemas/timestamp'
required: false
description: Filter by update timestamp (before)
- name: updated_after
in: query
schema:
$ref: '#/components/schemas/timestamp'
required: false
description: Filter by update timestamp (after)
- name: personal
in: query
schema:
type: boolean
required: false
description: Filter by personal wallet flag
- name: unhosted
in: query
schema:
type: boolean
required: false
description: Filter by unhosted wallet flag
- name: beneficiary_vasp_name
in: query
schema:
$ref: '#/components/schemas/beneficiary_vasp_name'
required: false
description: Filter by beneficiary VASP name
- name: beneficiary_vasp_did
in: query
schema:
$ref: '#/components/schemas/beneficiary_vasp_did'
required: false
description: Filter by beneficiary VASP DID
- name: beneficiary_vasp_website
in: query
schema:
$ref: '#/components/schemas/beneficiary_vasp_website'
required: false
description: Website of the beneficiary VASP. Required if the address book entry is associated with a VASP that is not included in the list of known VASPs
- name: limit
in: query
schema:
type: integer
minimum: 1
maximum: 1000
default: 100
required: false
description: Maximum number of results to return
- name: continuation
in: query
required: false
schema:
type: string
example: xY7T6cutS3t2B9YtaDkE6TS379oKnkzTvmEDUnEUP2Msa9xKWNNaT
description: Continuation token for pagination
responses:
'200':
$ref: '#/components/responses/PrivateListAddressBeneficiariesResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 42
method: private/list_address_beneficiaries
params:
currency: BTC
limit: 10
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Lists address beneficiaries with optional filtering and pagination. Returns all saved beneficiary information for addresses, with support for filtering by currency, address, wallet type, VASP details, and date ranges.
**📖 Related Article:** [Managing Withdrawals](https://docs.deribit.com/articles/managing-withdrawals-api)
**Scope:** `wallet:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Flist_address_beneficiaries)
'
x-mint:
metadata:
title: private/list_address_beneficiaries
og:title: private/list_address_beneficiaries
keywords:
- private/list_address_beneficiaries
- currency
- address
- tag
- created_before
- created_after
- updated_before
- updated_after
- personal
- unhosted
- beneficiary_vasp_name
- beneficiary_vasp_did
- beneficiary_vasp_website
- limit
- continuation
- data
- count
- user_id
- agreed
- beneficiary_first_name
- beneficiary_last_name
- beneficiary_company_name
- beneficiary_address
- created
- updated
href: /api-reference/wallet/private-list_address_beneficiaries
/private/submit_transfer_to_subaccount:
get:
tags:
- Private
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: amount
in: query
schema:
type: number
required: true
description: Amount of funds to be transferred
- name: destination
in: query
schema:
type: integer
example: 1
required: true
description: Id of destination subaccount. Can be found in `My Account >> Subaccounts` tab
responses:
'200':
$ref: '#/components/responses/PrivateSubmitTransferResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 210
method: private/submit_transfer_to_subaccount
params:
currency: ETH
amount: 12.1234
destination: 20
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Transfer funds from the main account to a subaccount.
**📖 Related Article:** [Managing Transfers](https://docs.deribit.com/articles/managing-transfers-api)
**Scope:** `wallets:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fsubmit_transfer_to_subaccount)
'
x-mint:
metadata:
title: private/submit_transfer_to_subaccount
og:title: private/submit_transfer_to_subaccount
keywords:
- private/submit_transfer_to_subaccount
- currency
- amount
- destination
- created_timestamp
- type
- other_side
- state
- direction
- updated_timestamp
- nonce
href: /api-reference/wallet/private-submit_transfer_to_subaccount
/private/submit_transfer_between_subaccounts:
get:
tags:
- Private
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: amount
in: query
schema:
type: number
required: true
description: Amount of funds to be transferred
- name: destination
in: query
schema:
type: integer
example: 1
required: true
description: Id of destination subaccount. Can be found in `My Account >> Subaccounts` tab
- name: source
in: query
schema:
type: integer
example: 1
required: false
description: Id of the source (sub)account. Can be found in `My Account >> Subaccounts` tab. By default, it is the Id of the account which made the request. However, if a different "source" is specified, the user must possess the mainaccount scope, and only other subaccounts can be designated as the source.
- in: query
name: nonce
required: false
schema:
$ref: '#/components/schemas/nonce'
description: Optional idempotency nonce. If provided, subsequent requests with the same nonce will return the previously created transaction instead of creating a new one. Must be 8-128 characters. The nonce is persisted on the resulting transaction and returned in the response.
responses:
'200':
$ref: '#/components/responses/PrivateSubmitTransferResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 210
method: private/submit_transfer_between_subaccounts
params:
currency: ETH
amount: 12.1234
destination: 20
source: 10
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Transfer funds between two subaccounts or between a subaccount and the main account.
**📖 Related Article:** [Managing Transfers](https://docs.deribit.com/articles/managing-transfers-api)
**Scope:** `wallets:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fsubmit_transfer_between_subaccounts)
'
x-mint:
metadata:
title: private/submit_transfer_between_subaccounts
og:title: private/submit_transfer_between_subaccounts
keywords:
- private/submit_transfer_between_subaccounts
- currency
- amount
- destination
- source
- nonce
- created_timestamp
- type
- other_side
- state
- direction
- updated_timestamp
href: /api-reference/wallet/private-submit_transfer_between_subaccounts
/private/submit_transfer_to_user:
get:
tags:
- Private
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: amount
in: query
schema:
type: number
required: true
description: Amount of funds to be transferred
- name: destination
in: query
schema:
type: string
required: true
description: Destination wallet's address taken from address book
responses:
'200':
$ref: '#/components/responses/PrivateSubmitTransferResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 9421
method: private/submit_transfer_to_user
params:
currency: ETH
amount: 13.456
destination: '0x4aa0753d798d668056920094d65321a8e8913e26'
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Transfer funds to another user. This method allows you to send funds from your main account to another Deribit user''s account. The transfer is processed internally and does not require blockchain transactions.
**📖 Related Article:** [Managing Transfers](https://docs.deribit.com/articles/managing-transfers-api)
**Scope:** `wallet:read_write` and mainaccount
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fsubmit_transfer_to_user)
'
x-mint:
metadata:
title: private/submit_transfer_to_user
og:title: private/submit_transfer_to_user
keywords:
- private/submit_transfer_to_user
- currency
- amount
- destination
- created_timestamp
- type
- other_side
- state
- direction
- updated_timestamp
- nonce
href: /api-reference/wallet/private-submit_transfer_to_user
/private/get_transfers:
get:
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: count
required: false
in: query
schema:
type: integer
maximum: 1000
minimum: 1
description: Number of requested items, default - `10`, maximum - `1000`
- name: offset
in: query
required: false
schema:
example: 10
type: integer
description: The offset for pagination, default - `0`
responses:
'200':
$ref: '#/components/responses/PrivateGetTransfersResponse'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 7606
method: private/get_transfers
params:
currency: BTC
count: 10
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Retrieve the user''s transfers list. Returns a list of internal transfers between accounts, subaccounts, or to other users, including their status, amounts, and other relevant details.
**📖 Related Article:** [Managing Transfers](https://docs.deribit.com/articles/managing-transfers-api)
**Scope:** `wallet:read`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_transfers)
'
x-mint:
metadata:
title: private/get_transfers
og:title: private/get_transfers
keywords:
- private/get_transfers
- currency
- count
- offset
- data
- created_timestamp
- type
- amount
- other_side
- state
- direction
- updated_timestamp
- nonce
href: /api-reference/wallet/private-get_transfers
/private/cancel_transfer_by_id:
get:
tags:
- Private
parameters:
- name: currency
required: true
in: query
schema:
$ref: '#/components/schemas/currency'
description: The currency symbol
- name: id
in: query
schema:
$ref: '#/components/schemas/transfer_id'
required: true
description: Id of transfer
responses:
'200':
$ref: '#/components/responses/PrivateSubmitTransferResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 9187
method: private/cancel_transfer_by_id
params:
currency: BTC
id: 2
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Cancel a pending transfer by its ID. This method allows you to cancel a transfer that has not yet been processed. Once a transfer is processed, it cannot be cancelled.
**📖 Related Article:** [Managing Transfers](https://docs.deribit.com/articles/managing-transfers-api)
**Scope:** `wallet:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fcancel_transfer_by_id)
'
x-mint:
metadata:
title: private/cancel_transfer_by_id
og:title: private/cancel_transfer_by_id
keywords:
- private/cancel_transfer_by_id
- currency
- id
- created_timestamp
- type
- amount
- other_side
- state
- direction
- updated_timestamp
- nonce
href: /api-reference/wallet/private-cancel_transfer_by_id
/private/get_reward_eligibility:
get:
tags:
- Private
responses:
'200':
$ref: '#/components/responses/PrivateGetRewardEligibilityResponse'
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/get_reward_eligibility
params: {}
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Returns reward eligibility status and APR data for all supported currencies.
This method takes no parameters.
**📖 Related Support Article:** [Yield reward-bearing coins](https://support.deribit.com/hc/en-us/articles/31424939199261-Yield-reward-bearing-coins)
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fget_reward_eligibility)
'
x-mint:
metadata:
title: private/get_reward_eligibility
og:title: private/get_reward_eligibility
keywords:
- private/get_reward_eligibility
- eligibility_status
- apr_sma7
href: /api-reference/wallet/private-get_reward_eligibility
/private/set_clearance_originator:
get:
parameters:
- in: query
name: deposit_id
required: true
schema:
type: string
description: 'JSON string containing: currency, user_id, address, tx_hash'
description: Id of the deposit
- in: query
name: originator
required: true
schema:
type: string
description: 'JSON string containing: is_personal, company_name, first_name, last_name, address'
description: Information about the originator of the deposit
responses:
'200':
$ref: '#/components/responses/deposit'
tags:
- Private
requestBody:
content:
application/json:
examples:
request:
value:
jsonrpc: '2.0'
id: 1
method: private/set_clearance_originator
params:
deposit_id:
currency: BTC
user_id: 123
address: 2NBqqD5GRJ8wHy1PYyCXTe9ke5226FhavBz
tx_hash: 230669110fdaf0a0dbcdc079b6b8b43d5af29cc73683835b9bc6b3406c065fda
originator:
is_personal: false
first_name: First
last_name: Last
company_name: Company Name
address: NL, Amsterdam, Street, 1
description: JSON-RPC Request Example
description: JSON-RPC request body
description: 'Sets originator of the deposit
**Scope:** `wallet:read_write`
[Try in API console](https://test.deribit.com/api_console?method=%2Fprivate%2Fset_clearance_originator)
'
x-mint:
metadata:
title: private/set_clearance_originator
og:title: private/set_clearance_originator
keywords:
- private/set_clearance_originator
- deposit_id
- originator
- currency
- address
- amount
- state
- transaction_id
- source_address
- received_timestamp
- updated_timestamp
- note
- clearance_state
- refund_transaction_id
href: /api-reference/wallet/private-set_clearance_originator
components:
schemas:
continuation:
example: xY7T6cutS3t2B9YtaDkE6TS379oKnkzTvmEDUnEUP2Msa9xKWNNaT
type: string
description: Continuation token for pagination.
trigger:
enum:
- index_price
- mark_price
- last_price
type: string
description: 'Trigger type (only for trigger orders). Allowed values: `"index_price"`, `"mark_price"`, `"last_price"`.'
key_id:
example: 1
type: integer
description: Key identifier
transfer_other_side:
example: Smith
type: string
description: For transfer from/to subaccount returns this subaccount name, for transfer to other account returns address, for transfer from other account returns that accounts username.
block_trade_id:
example: '154'
type: string
description: Block trade id
api_key:
properties:
id:
$ref: '#/components/schemas/key_id'
timestamp:
$ref: '#/components/schemas/timestamp'
client_id:
$ref: '#/components/schemas/client_id'
client_secret:
$ref: '#/components/schemas/client_secret'
public_key:
$ref: '#/components/schemas/public_key'
max_scope:
$ref: '#/components/schemas/max_scope'
enabled:
$ref: '#/components/schemas/api_key_enabled'
default:
$ref: '#/components/schemas/api_key_default'
name:
$ref: '#/components/schemas/api_key_name'
enabled_features:
$ref: '#/components/schemas/api_key_features'
ip_whitelist:
type: array
description: List of IP addresses whitelisted for a selected key
required:
- id
- timestamp
- client_id
- client_secret
- max_scope
- default
type: object
kind_with_combo_all:
enum:
- future
- option
- spot
- future_combo
- option_combo
- combo
- any
type: string
description: 'Instrument kind: `"future"`, `"option"`, `"spot"`, `"future_combo"`, `"option_combo"`, `"combo"` for any combo or `"any"` for all'
PrivateGetUserTradesByOrderResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
required:
- jsonrpc
type: object
withdrawal_state:
enum:
- unconfirmed
- confirmed
- cancelled
- completed
- interrupted
- rejected
type: string
description: 'Withdrawal state, allowed values : `unconfirmed`, `confirmed`, `cancelled`, `completed`, `interrupted`, `rejected`'
PrivateGetLegPricesResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
properties:
legs:
$ref: '#/components/schemas/leg_structure'
amount:
type: number
description: This value multiplied by the ratio of a leg gives trade size on that leg.
type: object
required:
- jsonrpc
- result
type: object
PrivateGetBrokerTradeRequestsResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
type: object
properties:
timestamp:
type: integer
description: Timestamp of the broker block trade request (milliseconds since the UNIX epoch).
state:
type: string
description: State of the broker block trade request.
trades:
type: array
items:
type: object
properties:
amount:
type: number
description: Trade amount.
direction:
type: string
description: Trade direction (buy or sell).
price:
type: number
description: Trade price.
instrument_name:
type: string
description: Name of the traded instrument.
maker:
type: object
properties:
state:
type: string
description: 'State of the request from the maker side: `initial`, `approved`, or `rejected`.'
client_id:
type: integer
description: ID of a client; available to broker. Represents a group of users under a common name.
user_id:
type: string
description: Obscured user id of the maker.
client_name:
type: string
description: Name of the client; available to broker.
client_link_name:
type: string
description: Name of the linked user within the client; available to broker.
client_link_id:
type: integer
description: ID assigned to a single user in a client; available to broker.
taker:
type: object
properties:
state:
type: string
description: 'State of the request from the taker side: `initial`, `approved`, or `rejected`.'
client_id:
type: integer
description: ID of a client; available to broker. Represents a group of users under a common name.
user_id:
type: string
description: Obscured user id of the taker.
client_name:
type: string
description: Name of the client; available to broker.
client_link_name:
type: string
description: Name of the linked user within the client; available to broker.
client_link_id:
type: integer
description: ID assigned to a single user in a client; available to broker.
nonce:
type: string
description: Nonce for approving or rejecting the broker block trade request.
required:
- jsonrpc
- result
type: object
combo_state:
enum:
- active
- inactive
type: string
description: 'Combo state: `"active"`, "`inactive`"'
quote_direction:
enum:
- buy
- sell
type: string
description: Direction of trade from the maker perspective
beneficiary_vasp_website:
type: string
description: Website of the beneficiary VASP
PrivateGetOrderHistoryResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
$ref: '#/components/schemas/order'
required:
- jsonrpc
- result
type: object
fee_role:
enum:
- maker
- taker
type: string
description: 'Fee role of the user: `maker` or `taker`. Can be different from trade role of the user when iceberg order was involved in matching.'
PrivateGetBlockTradeResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/block_trade'
required:
- jsonrpc
- result
type: object
block_trade_id_in_result:
example: '154'
type: string
description: Block trade id - when trade was part of a block trade
PrivateGetDepositsResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/deposit'
count:
$ref: '#/components/schemas/result_count'
required:
- data
- count
required:
- jsonrpc
- result
type: object
PrivateBuyAndSellResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
order:
$ref: '#/components/schemas/order'
trades:
type: array
items:
$ref: '#/components/schemas/user_trade'
required:
- order
- trades
required:
- jsonrpc
- result
type: object
PrivatePositionMoveResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/position_move'
required:
- jsonrpc
- result
type: object
beneficiary_vasp_name:
example: Money's Gone
type: string
description: Name of beneficiary VASP
PrivateCreateSubaccountResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
email:
example: user@example.com
type: string
description: User email
login_enabled:
type: boolean
description: Informs whether login to the subaccount is enabled
is_password:
type: boolean
description: '`true` when password for the subaccount has been configured'
receive_notifications:
type: boolean
description: When `true` - receive all notification emails on the main email
system_name:
example: username_1
type: string
description: System generated user nickname
security_keys_enabled:
type: boolean
description: Whether the Security Keys authentication is enabled
security_keys_assignments:
type: array
items:
type: string
description: Names of assignments with Security Keys assigned
username:
type: string
description: Account name (given by user)
type:
enum:
- subaccount
type: string
description: Account type
id:
type: integer
description: Subaccount identifier
portfolio:
$ref: '#/components/schemas/portfolio'
description: Portfolio information for the subaccount
margin_model:
type: string
description: Margin model
disabled_trading_products:
type: array
items:
type: string
description: List of disabled trading products
proof_id:
type: string
description: 'hashed identifier used in the Proof Of Liability for the subaccount. This identifier allows you to find your entries in the Deribit Proof-Of-Reserves files. IMPORTANT: Keep it secret to not disclose your entries in the Proof-Of-Reserves.'
proof_id_signature:
type: string
description: 'signature used as a base string for proof_id hash. IMPORTANT: Keep it secret to not disclose your entries in the Proof-Of-Reserves.'
trading_products_details:
type: array
items:
type: object
properties:
enabled:
type: boolean
product:
type: string
overwriteable:
type: boolean
requires_consent:
type: boolean
description: Details about trading products availability
referrals_count:
type: integer
description: Number of referrals
required:
- username
- type
- id
- login_enabled
- is_password
- receive_notifications
- system_name
- email
- security_keys_enabled
- security_keys_assignments
- margin_model
- disabled_trading_products
- proof_id
- proof_id_signature
- trading_products_details
- referrals_count
required:
- jsonrpc
- result
type: object
trade_id:
type: string
description: Unique (per currency) trade identifier
PrivateCancelQuotesResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: number
example: 3
description: Total number of successfully cancelled quotes
required:
- jsonrpc
- result
type: object
instrument_id:
type: integer
description: Instrument ID
currency:
enum:
- BTC
- ETH
- USDC
- USDT
- EURR
type: string
description: Currency, i.e `"BTC"`, `"ETH"`, `"USDC"`
order:
properties:
order_id:
$ref: '#/components/schemas/order_id'
order_state:
$ref: '#/components/schemas/order_state'
order_type:
$ref: '#/components/schemas/order_type'
original_order_type:
$ref: '#/components/schemas/original_order_type'
time_in_force:
$ref: '#/components/schemas/time_in_force'
is_rebalance:
type: boolean
description: Optional (only for spot). `true` if order was automatically created during cross-collateral balance restoration
is_liquidation:
type: boolean
description: Optional (not added for spot). `true` if order was automatically created during liquidation
instrument_name:
$ref: '#/components/schemas/instrument_name'
creation_timestamp:
$ref: '#/components/schemas/timestamp'
last_update_timestamp:
$ref: '#/components/schemas/timestamp'
direction:
$ref: '#/components/schemas/direction'
price:
$ref: '#/components/schemas/open_order_price'
label:
$ref: '#/components/schemas/label'
post_only:
$ref: '#/components/schemas/post_only'
reject_post_only:
$ref: '#/components/schemas/reject_post_only'
reduce_only:
$ref: '#/components/schemas/reduce_only'
api:
$ref: '#/components/schemas/api'
web:
$ref: '#/components/schemas/web'
mobile:
$ref: '#/components/schemas/mobile'
refresh_amount:
$ref: '#/components/schemas/refresh_amount'
display_amount:
$ref: '#/components/schemas/display_amount'
amount:
$ref: '#/components/schemas/amount'
contracts:
$ref: '#/components/schemas/contracts'
filled_amount:
$ref: '#/components/schemas/filled_amount'
average_price:
$ref: '#/components/schemas/average_price'
advanced:
$ref: '#/components/schemas/advanced'
implv:
$ref: '#/components/schemas/implv'
usd:
$ref: '#/components/schemas/usd'
triggered:
$ref: '#/components/schemas/triggered'
trigger:
$ref: '#/components/schemas/trigger'
trigger_price:
$ref: '#/components/schemas/trigger_price'
trigger_offset:
$ref: '#/components/schemas/trigger_offset'
trigger_reference_price:
$ref: '#/components/schemas/trigger_reference_price'
block_trade:
$ref: '#/components/schemas/block_trade_order'
mmp:
type: boolean
description: '`true` if the order is a MMP order, otherwise `false`.'
risk_reducing:
type: boolean
description: '`true` if the order is marked by the platform as a risk reducing order (can apply only to orders placed by PM users), otherwise `false`.'
replaced:
type: boolean
description: '`true` if the order was edited (by user or - in case of advanced options orders - by pricing engine), otherwise `false`.'
auto_replaced:
type: boolean
description: Options, advanced orders only - `true` if last modification of the order was performed by the pricing engine, otherwise `false`.
quote:
type: boolean
description: If order is a quote. Present only if true.
mmp_group:
type: string
description: Name of the MMP group supplied in the `private/mass_quote` request. Only present for quote orders.
quote_set_id:
type: string
description: Identifier of the QuoteSet supplied in the `private/mass_quote` request. Only present for quote orders.
quote_id:
type: string
description: The same QuoteID as supplied in the `private/mass_quote` request. Only present for quote orders.
trigger_order_id:
type: string
example: SLIB-370
description: Id of the trigger order that created the order (Only for orders that were created by triggered orders).
app_name:
type: string
example: Example Application
description: The name of the application that placed the order on behalf of the user (optional).
mmp_cancelled:
type: boolean
example: true
description: '`true` if order was cancelled by mmp trigger (optional)'
cancel_reason:
$ref: '#/components/schemas/cancel_reason'
oto_order_ids:
type: array
items:
$ref: '#/components/schemas/order_id'
description: Order Id
description: The Ids of the orders that will be triggered if the order is filled
trigger_fill_condition:
$ref: '#/components/schemas/trigger_fill_condition'
oco_ref:
$ref: '#/components/schemas/oco_ref'
primary_order_id:
$ref: '#/components/schemas/order_id'
description: ID of the order that triggered this order.
is_secondary_oto:
$ref: '#/components/schemas/is_secondary_oto'
is_primary_otoco:
type: boolean
description: '`true` if the order is an order that can trigger an OCO pair, otherwise not present.'
required:
- order_id
- order_state
- order_type
- time_in_force
- instrument_name
- creation_timestamp
- last_update_timestamp
- direction
- price
- label
- post_only
- api
type: object
amount:
type: number
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.
block_rfq_quote:
properties:
creation_timestamp:
type: integer
example: 1536569522277
description: The timestamp when quote was created (milliseconds since the Unix epoch)
last_update_timestamp:
type: integer
example: 1536569522277
description: Timestamp of the last update of the quote (milliseconds since the UNIX epoch)
block_rfq_id:
type: integer
description: ID of the Block RFQ
block_rfq_quote_id:
type: integer
description: ID of the Block RFQ quote
quote_state:
type: string
description: State of the quote
execution_instruction:
type: string
enum:
- any_part_of
- all_or_none
description: 'Execution instruction of the quote. Default - `any_part_of`
- `"all_or_none (AON)"` - The quote can only be filled entirely or not at all, ensuring that its amount matches the amount specified in the Block RFQ. Additionally, ''all_or_none'' quotes have priority over ''any_part_of'' quotes at the same price level.
- `"any_part_of (APO)"` - The quote can be filled either partially or fully, with the filled amount potentially being less than the Block RFQ amount.'
price:
type: number
description: Price of a quote
amount:
type: number
description: This value multiplied by the ratio of a leg gives trade size on that leg.
direction:
$ref: '#/components/schemas/quote_direction'
filled_amount:
$ref: '#/components/schemas/filled_amount_quote'
legs:
$ref: '#/components/schemas/leg_structure'
hedge:
$ref: '#/components/schemas/block_rfq_hedge_leg'
replaced:
$ref: '#/components/schemas/replaced_quote'
label:
type: string
description: User defined label for the quote (maximum 64 characters)
app_name:
type: string
example: Example Application
description: The name of the application that placed the quote on behalf of the user (optional).
quote_state_reason:
type: string
description: Reason of quote cancellation
type: object
PrivateGetTransfersResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/transfer_item'
count:
$ref: '#/components/schemas/result_count'
required:
- data
- count
required:
- jsonrpc
- result
type: object
user_id:
example: 57874
type: integer
description: Unique user identifier
PrivateCancelAllBlockRfqQuotesResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: number
example: 7
description: Total number of successfully cancelled quotes
required:
- jsonrpc
- result
type: object
position_move_trade:
properties:
source_uid:
type: integer
description: Trade source uid
target_uid:
type: integer
description: Trade target uid
instrument_name:
$ref: '#/components/schemas/instrument_name'
direction:
$ref: '#/components/schemas/direction'
description: Trade direction from source perspective
price:
$ref: '#/components/schemas/price'
description: The price of the trade
amount:
type: number
description: Trade amount. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.
required:
- instrument_name
- direction
- price
- amount
type: object
instrument_name:
example: BTC-PERPETUAL
type: string
description: Unique instrument identifier
PrivateSimulateBlockTradeResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: boolean
description: '`true` if block trade can be executed, `false` otherwise'
required:
- jsonrpc
- result
type: object
PrivateGetSubaccountsDetailsResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
type: object
properties:
uid:
type: integer
description: Account/Subaccount identifier
positions:
type: array
items:
$ref: '#/components/schemas/position'
open_orders:
type: array
items:
$ref: '#/components/schemas/order'
required:
- uid
- positions
required:
- jsonrpc
- result
type: object
quote_asks:
items:
properties:
makers:
type: array
items:
type: string
description: Maker of the quote
price:
type: number
description: Price of a quote
last_update_timestamp:
type: integer
example: 1536569522277
description: Timestamp of the last update of the quote (milliseconds since the UNIX epoch)
execution_instruction:
type: string
enum:
- any_part_of
- all_or_none
description: 'Execution instruction of the quote. Default - `any_part_of`
- `"all_or_none (AON)"` - The quote can only be filled entirely or not at all, ensuring that its amount matches the amount specified in the Block RFQ. Additionally, ''all_or_none'' quotes have priority over ''any_part_of'' quotes at the same price level.
- `"any_part_of (APO)"` - The quote can be filled either partially or fully, with the filled amount potentially being less than the Block RFQ amount.'
amount:
type: number
description: This value multiplied by the ratio of a leg gives trade size on that leg.
expires_at:
type: integer
example: 1745312540321
description: The timestamp when the quote expires (milliseconds since the Unix epoch), equal to the earliest expiry of placed quotes
type: object
type: array
GetlistCustodyAccounts200response:
allOf:
- $ref: '#/components/schemas/ErrorResponse'
- properties:
result:
type: array
items:
$ref: '#/components/schemas/custody_account'
mark_price:
type: number
description: The mark price for the instrument
PrivateAccountSummariesResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
id:
type: integer
example: 12354
description: Account id (available when parameter `extended` = `true`)
system_name:
example: myname
type: string
description: System generated user nickname (available when parameter `extended` = `true`)
username:
type: string
example: name
description: Account name (given by user) (available when parameter `extended` = `true`)
type:
enum:
- main
- subaccount
type: string
description: Account type (available when parameter `extended` = `true`)
login_enabled:
type: boolean
example: false
description: Whether account is loginable using email and password (available when parameter `extended` = `true` and account is a subaccount)
email:
example: support@deribit.com
type: string
description: User email (available when parameter `extended` = `true`)
security_keys_enabled:
example: false
type: boolean
description: Whether Security Key authentication is enabled (available when parameter `extended` = `true`)
mmp_enabled:
example: false
type: boolean
description: Whether MMP is enabled (available when parameter `extended` = `true`)
interuser_transfers_enabled:
type: boolean
example: false
description: '`true` when the inter-user transfers are enabled for user (available when parameter `extended` = `true`)'
referrer_id:
type: string
example: '517.6035'
description: Optional identifier of the referrer (of the affiliation program, and available when parameter `extended` = `true`), which link was used by this account at registration. It coincides with suffix of the affiliation link path after `/reg-`
creation_timestamp:
type: integer
example: 1542100802842
description: Time at which the account was created (milliseconds since the Unix epoch; available when parameter `extended` = `true`)
self_trading_reject_mode:
type: string
description: Self trading rejection behavior - `reject_taker` or `cancel_maker` (available when parameter `extended` = `true`)
self_trading_extended_to_subaccounts:
type: string
description: '`true` if self trading rejection behavior is applied to trades between subaccounts (available when parameter `extended` = `true`)'
block_rfq_self_match_prevention:
type: string
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.
affiliate_promotion_fee:
type: number
example: 0
description: Affiliate promotion fee (if greater than 0.0)
trading_products_details:
type: object
description: Which trading products are enabled or can be overwritten for the account
receive_notifications:
type: boolean
example: false
description: Whether the account receives notifications
summaries:
type: array
items:
type: object
properties:
total_pl:
example: 0.02032221
type: number
description: Profit and loss
session_rpl:
$ref: '#/components/schemas/rpl'
session_upl:
$ref: '#/components/schemas/upl'
available_funds:
example: 2.2638913
type: number
description: The account's available funds. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
available_withdrawal_funds:
type: number
example: 2.26
description: The account's available to withdrawal funds
margin_balance:
type: number
example: 2.25
description: The account's margin balance. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
balance:
example: 3.4906363
type: number
description: The account's balance
spot_reserve:
example: 0.3
type: number
description: The account's balance reserved in active spot orders
additional_reserve:
$ref: '#/components/schemas/additional_reserve'
fee_balance:
$ref: '#/components/schemas/fee_balance'
fee_group:
type: string
description: 'Fee group indicates the level of fee discounts applied to an account. Use `extended`: `true` to view this field. If the field is missing, the account is not assigned to any fee group. **📖 Related Support Article:** [Automatically applied volume based fee discounts](https://support.deribit.com/hc/en-us/articles/25944746248989-Fees#heading-11)'
currency:
example: ETH
type: string
description: Currency of the summary
delta_total:
$ref: '#/components/schemas/delta_total'
projected_delta_total:
$ref: '#/components/schemas/projected_delta_total'
deposit_address:
example: 14diAAyXL5UzhPTCKC998ch2GV7DMb7yDi
type: string
description: The deposit address for the account (if available)
equity:
example: 2.6437733
type: number
description: The account's current equity
futures_pl:
example: 0
type: number
description: Futures profit and Loss
futures_session_rpl:
example: 0
type: number
description: Futures session realized profit and Loss
futures_session_upl:
example: 0
type: number
description: Futures session unrealized profit and Loss
initial_margin:
example: 0.379882
type: number
description: The account's initial margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
maintenance_margin:
example: 0.1334519
type: number
description: The maintenance margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
estimated_liquidation_ratio:
$ref: '#/components/schemas/estimated_liquidation_ratio'
options_delta:
example: 0
type: number
description: Options summary delta
options_gamma:
example: 0
type: number
description: Options summary gamma
options_pl:
example: 0
type: number
description: Options profit and Loss
options_session_rpl:
example: 0
type: number
description: Options session realized profit and Loss
options_session_upl:
example: 0
type: number
description: Options session unrealized profit and Loss
options_theta:
example: 0
type: number
description: Options summary theta
options_value:
example: 0
type: number
description: Options value
options_vega:
example: 0
type: number
description: Options summary vega
options_gamma_map:
type: object
description: Map of options' gammas per index
options_theta_map:
type: object
description: Map of options' thetas per index
options_vega_map:
type: object
description: Map of options' vegas per index
projected_initial_margin:
$ref: '#/components/schemas/projected_initial_margin'
projected_maintenance_margin:
$ref: '#/components/schemas/projected_maintenance_margin'
portfolio_margining_enabled:
type: boolean
example: true
description: '`true` when portfolio margining is enabled for user'
cross_collateral_enabled:
type: boolean
example: true
description: When `true` cross collateral is enabled for user
margin_model:
type: string
example: segregated_sm
description: Name of user's currently enabled margin model
total_equity_usd:
example: 2.6437733
type: number
description: Optional (only for users using cross margin). The account's total equity in all cross collateral currencies, expressed in USD
total_initial_margin_usd:
example: 0.379882
type: number
description: Optional (only for users using cross margin). The account's total initial margin in all cross collateral currencies, expressed in USD
total_maintenance_margin_usd:
example: 0.1334519
type: number
description: Optional (only for users using cross margin). The account's total maintenance margin in all cross collateral currencies, expressed in USD
total_margin_balance_usd:
type: number
example: 2.25
description: Optional (only for users using cross margin). The account's total margin balance in all cross collateral currencies, expressed in USD
total_delta_total_usd:
type: number
example: 1.8
description: Optional (only for users using cross margin). The account's total delta total in all cross collateral currencies, expressed in USD
limits:
$ref: '#/components/schemas/api_limits'
has_non_block_chain_equity:
type: boolean
description: Optional field returned with value `true` when user has non block chain equity that is excluded from proof of reserve calculations
fees:
type: object
additionalProperties:
type: object
additionalProperties:
type: object
properties:
default:
type: object
properties:
type:
type: string
description: Fee calculation type (e.g., fixed, relative)
taker:
type: number
description: Taker fee
maker:
type: number
description: Maker fee
required:
- type
- taker
- maker
block_trade:
type: number
description: Block trade fee (if applicable)
required:
- default
description: Fee structure for all currency pairs and instrument types related to the currency (available when parameter `extended` = `true` and user has any discounts). Keys are index names (e.g., "btc_usd"), values are objects with instrument types as keys (option, perpetual, future).
affiliate_promotion_fee:
type: number
example: 0
description: Affiliate promotion fee (if greater than 0.0)
trading_products_details:
type: object
description: Which trading products are enabled or can be overwritten for the account
receive_notifications:
type: boolean
example: false
description: Whether the account receives notifications
required:
- equity
- currency
- maintenance_margin
- initial_margin
- available_funds
- available_withdrawal_funds
- balance
- session_upl
- session_rpl
- total_pl
- options_pl
- options_session_upl
- options_session_rpl
- options_delta
- options_gamma
- options_vega
- options_value
- options_theta
- futures_pl
- options_gamma_map
- options_theta_map
- options_vega_map
- futures_session_upl
- futures_session_rpl
- projected_maintenance_margin
- delta_total
- projected_delta_total
description: Aggregated list of per-currency account summaries
required:
- security_keys_enabled
- system_name
- username
- email
- type
- id
required:
- jsonrpc
- result
type: object
usd:
type: number
description: Option price in USD (Only if `advanced="usd"`)
simple_order_type:
enum:
- all
- limit
- trigger_all
- stop
- take
- trailing_stop
type: string
description: 'Order type: `"all"`, `"limit"`, `"stop"`, `"take"`, `"trailing_stop"`, `"trailing_take"`'
replaced_quote:
type: boolean
description: '`true` if the quote was edited, otherwise `false`.'
trigger_order_history_record:
properties:
timestamp:
$ref: '#/components/schemas/timestamp'
trigger:
$ref: '#/components/schemas/trigger'
trigger_price:
$ref: '#/components/schemas/trigger_price'
trigger_offset:
$ref: '#/components/schemas/trigger_offset'
trigger_order_id:
type: string
example: SLTB-187015
description: Id of the user order used for the trigger-order reference before triggering
order_id:
$ref: '#/components/schemas/order_id'
order_state:
$ref: '#/components/schemas/order_state_stop'
instrument_name:
$ref: '#/components/schemas/instrument_name'
request:
type: string
example: trigger:order
description: Type of last request performed on the trigger order by user or system. `"cancel"` - when order was cancelled, `"trigger:order"` - when trigger order spawned market or limit order after being triggered
direction:
$ref: '#/components/schemas/direction'
price:
$ref: '#/components/schemas/price'
amount:
$ref: '#/components/schemas/amount'
last_update_timestamp:
$ref: '#/components/schemas/timestamp'
reduce_only:
$ref: '#/components/schemas/reduce_only'
post_only:
$ref: '#/components/schemas/post_only'
order_type:
type: string
enum:
- limit
- market
description: 'Requested order type: `"limit` or `"market"`'
label:
$ref: '#/components/schemas/label_presentation'
is_secondary_oto:
$ref: '#/components/schemas/is_secondary_oto'
oco_ref:
$ref: '#/components/schemas/oco_ref'
source:
type: string
example: api
description: Source of the order that is linked to the trigger order.
required:
- trigger
- timestamp
- trigger_price
- trigger_order_id
- order_state
- request
- post_only
- order_type
- price
- order_id
- trigger_offset
- instrument_name
- amount
- direction
- reduce_only
type: object
tick_direction:
enum:
- 0
- 1
- 2
- 3
type: integer
description: Direction of the "tick" (`0` = Plus Tick, `1` = Zero-Plus Tick, `2` = Minus Tick, `3` = Zero-Minus Tick).
currency_transaction_id:
nullable: true
example: 1b1fb5568515e2b79503501e3d3680b2d0838d5dfc2d15a04eb8cd9fbbe0b572
type: string
description: Transaction id in proper format for currency, `null` if id is not available
trade_timestamp:
example: 1517329113791
type: integer
description: The timestamp of the trade (milliseconds since the UNIX epoch)
mobile:
type: boolean
description: Optional field with value `true` added only when created with Mobile Application
max_price:
type: number
description: The maximum price for the future. Any buy orders you submit higher than this price, will be clamped to this maximum.
PrivateCancelBlockRfqTriggerResponse:
$ref: '#/components/schemas/block_rfq'
client_secret:
example: P9Z_c73KaBPwpoTVfsXzehAhjhdJn5kM7Zlz_hhDhE8
type: string
description: Client secret or MD5 fingerprint of public key used for authentication
external_id:
example: 4b4cee3d-2dfc-4402-a9ae-f8f9785fa966
type: string
description: User ID in external systems
PrivateSettlementResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
properties:
continuation:
$ref: '#/components/schemas/continuation'
settlements:
type: array
items:
$ref: '#/components/schemas/settlement'
required:
- continuation
- settlements
type: object
required:
- jsonrpc
- result
type: object
PrivateChangeMarginModelResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
type: object
properties:
old_state:
type: object
properties:
maintenance_margin_rate:
type: number
description: Maintenance margin rate before change
initial_margin_rate:
type: number
description: Initial margin rate before change
available_balance:
type: number
description: Available balance before change
required:
- maintenance_margin_rate
- initial_margin_rate
- available_balance
description: Represents portfolio state before change
new_state:
type: object
properties:
maintenance_margin_rate:
type: number
description: Maintenance margin rate after change
initial_margin_rate:
type: number
description: Initial margin rate after change
available_balance:
type: number
description: Available balance after change
required:
- maintenance_margin_rate
- initial_margin_rate
- available_balance
description: Represents portfolio state after change
currency:
$ref: '#/components/schemas/currency'
required:
- old_state
- new_state
- currency
required:
- jsonrpc
- result
type: object
PrivateAddBlockRfqQuoteResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/block_rfq_quote'
required:
- jsonrpc
- result
type: object
PrivateDeleteAddressBeneficiaryResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: string
example: ok
description: ok
required:
- jsonrpc
- result
type: object
combo:
properties:
id:
$ref: '#/components/schemas/combo_id'
instrument_id:
$ref: '#/components/schemas/instrument_id'
state:
$ref: '#/components/schemas/combo_state'
state_timestamp:
$ref: '#/components/schemas/timestamp'
creation_timestamp:
$ref: '#/components/schemas/timestamp'
legs:
type: array
items:
$ref: '#/components/schemas/combo_leg'
type: object
estimated_liquidation_ratio:
example: 2.34e-05
type: number
description: Estimated Liquidation Ratio is returned only for users without portfolio margining enabled. Multiplying it by future position's market price returns its estimated liquidation price. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
PrivateEditBlockRfqQuoteResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/block_rfq_quote'
required:
- jsonrpc
- result
type: object
requires_confirmation_change:
example: true
type: boolean
description: If email confirmation change is in progress
PrivateGetBlockRfqMakersResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
description: A list of available makers.
required:
- jsonrpc
- result
type: object
pme_currency:
enum:
- BTC
- ETH
- USDC
- USDT
- CROSS
type: string
description: The currency for which the Extended Risk Matrix will be calculated. Use `CROSS` for Cross Collateral simulation.
status:
enum:
- admin_locked
- waiting
- confirmed
- ready
type: string
description: 'Wallet address status, values: [`admin_locked`, `waiting`, `confirmed`, `ready`]'
deposit_state:
enum:
- pending
- completed
- rejected
- replaced
type: string
description: 'Deposit state. Allowed values: pending: deposit detected on blockchain/system, compliance not yet finished completed: compliance check finished successfully rejected: deposit failed compliance and must be handled manually replaced: deposit transaction was replaced on the blockchain and should have a new transaction hash'
fee_balance:
type: number
description: The account's fee balance (it can be used to pay for fees)
settlement_type:
enum:
- settlement
- delivery
- bankruptcy
type: string
description: The type of settlement. `settlement`, `delivery` or `bankruptcy`.
order_state_in_user_trade:
enum:
- open
- filled
- rejected
- cancelled
- untriggered
- archive
type: string
description: 'Order state: `"open"`, `"filled"`, `"rejected"`, `"cancelled"`, `"untriggered"` or `"archive"` (if order was archived)'
trade_trigger_state:
enum:
- triggered
- untriggered
- cancelled
type: string
description: 'Trade trigger state: `"untriggered"` or `"cancelled"`'
kind_without_spot:
enum:
- future
- option
- future_combo
- option_combo
type: string
description: 'Instrument kind: `"future"`, `"option"`, `"future_combo"`, `"option_combo"` (spot is excluded as spot trades are settled immediately and have no open positions)'
PrivateGetBlockTradeRequestsResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
$ref: '#/components/schemas/pending_block_trade'
required:
- jsonrpc
- result
type: object
PrivateGetAccessLogResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
$ref: '#/components/schemas/access_log'
required:
- jsonrpc
- result
type: object
block_rfq:
properties:
creation_timestamp:
type: integer
example: 1536569522277
description: The timestamp when Block RFQ was created (milliseconds since the Unix epoch)
expiration_timestamp:
type: integer
example: 1536569522277
description: The timestamp when the Block RFQ will expire (milliseconds since the UNIX epoch)
block_rfq_id:
type: integer
description: ID of the Block RFQ
role:
type: string
enum:
- taker
- maker
description: Role of the user in Block RFQ
state:
type: string
enum:
- open
- filled
- cancelled
- expired
description: State of the Block RFQ
taker_rating:
type: string
description: Rating of the taker
makers:
type: array
items:
type: string
description: List of targeted Block RFQ makers
amount:
type: number
description: This value multiplied by the ratio of a leg gives trade size on that leg.
min_trade_amount:
type: number
description: Minimum amount for trading
asks:
$ref: '#/components/schemas/quote_asks'
bids:
$ref: '#/components/schemas/quote_bids'
legs:
$ref: '#/components/schemas/block_rfq_legs'
hedge:
$ref: '#/components/schemas/block_rfq_hedge_leg'
combo_id:
$ref: '#/components/schemas/combo_id'
label:
type: string
description: User defined label for the Block RFQ (maximum 64 characters)
app_name:
type: string
example: Example Application
description: The name of the application that created the Block RFQ on behalf of the user (optional, visible only to taker).
mark_price:
$ref: '#/components/schemas/mark_price'
disclosed:
type: boolean
description: Indicates whether the RFQ was created as non-anonymous, meaning taker and maker aliases are visible to counterparties.
taker:
type: string
example: TAKER1
description: Taker alias. Present only when `disclosed` is `true`.
index_prices:
type: array
items:
type: number
description: A list of index prices for the underlying instrument(s) at the time of trade execution.
included_in_taker_rating:
type: boolean
description: Indicates whether the RFQ is included in the taker's rating calculation. Present only for closed RFQs created by the requesting taker.
trades:
type: array
items:
type: object
properties:
direction:
$ref: '#/components/schemas/direction'
price:
$ref: '#/components/schemas/price'
amount:
type: number
description: Trade amount. For options, linear futures, linear perpetuals and spots the amount is denominated in the underlying base currency coin. The inverse perpetuals and inverse futures are denominated in USD units.
maker:
type: string
description: Alias of the maker (optional)
hedge_amount:
type: number
description: Amount of the hedge leg. For linear futures, linear perpetuals and spots the amount is denominated in the underlying base currency coin. The inverse perpetuals and inverse futures are denominated in USD units.
trade_trigger:
$ref: '#/components/schemas/trade_trigger'
description: 'Present only if a trade trigger was placed by the taker and only visible to taker. Only for cases: `cancelled` (contains the reason for cancellation) and `untriggered` (contains the information about the trade trigger).'
trade_allocations:
$ref: '#/components/schemas/trade_allocations'
description: List of allocations for Block RFQ pre-allocation. Allows to split amount between different (sub)accounts. The taker can also allocate to himself. Visible only to the taker.
type: object
combo_id:
example: BTC-FS-31DEC21-PERP
type: string
description: Unique combo identifier
beneficiary_first_name:
example: John
type: string
description: First name of the beneficiary (if beneficiary is a person)
PrivateGetOrderStateByLabelResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/orders'
required:
- jsonrpc
- result
type: object
block_rfq_currency:
enum:
- BTC
- ETH
- USDC
- USDT
- any
type: string
description: Currency, i.e `"BTC"`, `"ETH"`, `"USDC"`
address_book_item:
properties:
currency:
$ref: '#/components/schemas/wallet_currency'
address:
$ref: '#/components/schemas/currency_address'
creation_timestamp:
$ref: '#/components/schemas/timestamp'
type:
$ref: '#/components/schemas/address_book_type'
label:
$ref: '#/components/schemas/address_label'
beneficiary_vasp_name:
$ref: '#/components/schemas/beneficiary_vasp_name'
beneficiary_vasp_did:
$ref: '#/components/schemas/beneficiary_vasp_did'
beneficiary_vasp_website:
$ref: '#/components/schemas/beneficiary_vasp_website'
beneficiary_first_name:
$ref: '#/components/schemas/beneficiary_first_name'
beneficiary_last_name:
$ref: '#/components/schemas/beneficiary_last_name'
beneficiary_company_name:
$ref: '#/components/schemas/beneficiary_company_name'
beneficiary_address:
$ref: '#/components/schemas/beneficiary_address'
agreed:
$ref: '#/components/schemas/agree_to_share_with_3rd_party'
personal:
$ref: '#/components/schemas/personal_wallet'
info_required:
$ref: '#/components/schemas/address_info_required'
status:
$ref: '#/components/schemas/status'
waiting_timestamp:
$ref: '#/components/schemas/waiting_timestamp'
requires_confirmation:
$ref: '#/components/schemas/requires_confirmation'
requires_confirmation_change:
$ref: '#/components/schemas/requires_confirmation_change'
required:
- currency
- address
- creation_timestamp
type: object
sorting:
enum:
- asc
- desc
- default
type: string
position_with_elp:
allOf:
- $ref: '#/components/schemas/position'
- properties:
estimated_liquidation_price:
type: number
description: Estimated liquidation price, added only for futures, for users with `segregated_sm` margin model
open_orders_margin:
type: number
description: Open orders margin
required:
- estimated_liquidation_price
- open_orders_margin
additional_reserve:
example: 0.3
type: number
description: The account's balance reserved in other orders
position_move:
properties:
trades:
type: array
items:
$ref: '#/components/schemas/position_move_trade'
required:
- trades
type: object
fee:
example: 2.3e-05
type: number
description: Fee in currency
price:
type: number
description: Price in base currency
custody_account:
properties:
currency:
$ref: '#/components/schemas/currency'
name:
$ref: '#/components/schemas/custody_name'
balance:
$ref: '#/components/schemas/currency_amount'
description: Balance available on custody account
pending_withdrawal_balance:
$ref: '#/components/schemas/currency_amount'
description: Pending balance transferred from trading account to custody account
auto_deposit:
type: boolean
description: When set to 'true' all new funds added to custody balance will be automatically transferred to trading balance
client_id:
type: string
description: API key 'client id' used to reserve/release funds in custody platform, requires scope 'custody:read_write'
external_id:
$ref: '#/components/schemas/external_id'
withdrawal_address:
type: string
description: Address that is used for withdrawals
withdrawal_address_change:
type: number
description: UNIX timestamp after when new withdrawal address will be used for withdrawals
pending_withdrawal_addres:
type: string
description: New withdrawal address that will be used after 'withdrawal_address_change'
deposit_address:
type: string
description: Address that can be used for deposits
required:
- currency
- name
- pending_withdrawal_balance
type: object
description: Custody account
quote_bids:
items:
properties:
makers:
type: array
items:
type: string
description: Maker of the quote
price:
type: number
description: Price of a quote
last_update_timestamp:
type: integer
example: 1536569522277
description: Timestamp of the last update of the quote (milliseconds since the UNIX epoch)
execution_instruction:
type: string
enum:
- any_part_of
- all_or_none
description: 'Execution instruction of the quote. Default - `any_part_of`
- `"all_or_none (AON)"` - The quote can only be filled entirely or not at all, ensuring that its amount matches the amount specified in the Block RFQ. Additionally, ''all_or_none'' quotes have priority over ''any_part_of'' quotes at the same price level.
- `"any_part_of (APO)"` - The quote can be filled either partially or fully, with the filled amount potentially being less than the Block RFQ amount.'
amount:
type: number
description: This value multiplied by the ratio of a leg gives trade size on that leg.
expires_at:
type: integer
example: 1745312540321
description: The timestamp when the quote expires (milliseconds since the Unix epoch), equal to the earliest expiry of placed quotes
type: object
type: array
wallet_address_type:
type: string
description: 'Address type/purpose, allowed values : `deposit`'
pending_block_trade:
properties:
nonce:
type: string
example: bF1_gfgcsd
description: Nonce that can be used to approve or reject pending block trade.
timestamp:
type: integer
description: Timestamp that can be used to approve or reject pending block trade.
trades:
type: array
items:
$ref: '#/components/schemas/pending_block_trade'
app_name:
type: string
example: Example Application
description: The name of the application that executed the block trade on behalf of the user (optional).
username:
type: string
example: Trader
description: Username of the user who initiated the block trade.
role:
$ref: '#/components/schemas/role'
user_id:
$ref: '#/components/schemas/user_id'
broker_code:
type: string
example: jpqYKgg1
description: Broker code associated with the broker block trade.
broker_name:
type: string
example: Test Broker
description: Name of the broker associated with the block trade.
state:
type: object
properties:
value:
type: string
enum:
- initial
- accepted
- rejected
- executed
description: State value.
timestamp:
type: integer
description: State timestamp.
required:
- value
- timestamp
description: State of the pending block trade for current user.
counterparty_state:
type: object
properties:
value:
type: string
enum:
- initial
- accepted
- rejected
- executed
description: State value.
timestamp:
type: integer
description: State timestamp.
required:
- value
- timestamp
description: State of the pending block trade for the other party (optional).
combo_id:
type: string
example: BTC-CS-27JUN25-80000_85000
description: Combo instrument identifier
required:
- nonce
- timestamp
- trades
- app_name
- role
- user_id
- state
type: object
PrivateCancelAllResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: number
example: 7
description: Total number of successfully cancelled orders
required:
- jsonrpc
- result
type: object
currency_address:
example: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
type: string
description: Address in proper format for currency
agree_to_share_with_3rd_party:
example: true
type: boolean
description: Indicates that the user agreed to shared provided information with 3rd parties
beneficiary_address:
example: NL, Amsterdam, Street, 1
type: string
description: Geographical address of the beneficiary
PrivateSubscribeResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
type: string
example: deribit_price_index.btc_usd
description: A list of subscribed channels.
required:
- jsonrpc
- result
type: object
PrivateCancelResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/order'
required:
- jsonrpc
- result
type: object
web:
type: boolean
description: '`true` if created via Deribit frontend (optional)'
PrivateGetMmpStatusResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
type: object
properties:
index_name:
$ref: '#/components/schemas/index_name'
frozen_until:
type: integer
description: Timestamp (milliseconds since the UNIX epoch) until the user will be frozen - 0 means that the user is frozen until manual reset.
mmp_group:
type: string
example: MassQuoteBot7
description: Triggered mmp group, this parameter is optional (appears only for Mass Quote orders trigger)
block_rfq:
type: boolean
example: false
description: If true, indicates that the MMP status is for Block RFQ. Block RFQ MMP status is completely separate from normal order/quote MMP status.
required:
- index_name
- frozen_until
- mmp_group
required:
- jsonrpc
- result
type: object
PrivateGetOrderStateResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/order'
required:
- jsonrpc
- result
type: object
PrivateGetRewardEligibilityResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
eligibility_status:
type: string
enum:
- eligible
- partially_eligible
- non_eligible
description: ' - `eligible`: User can get reward for specific currency for all its equity
- `partially_eligible`: User can get reward for specific currency, but custody balance is excluded
- `non_eligible`: User can not get reward for specific currency
'
apr_sma7:
type: number
example: 4.156
description: Simple Moving Average (SMA) of the last 7 days of rewards for the currency
required:
- eligibility_status
- apr_sma7
required:
- jsonrpc
- result
type: object
block_trade_order:
example: true
type: boolean
description: '`true` if order made from block_trade trade, added only in that case.'
PrivateCreateComboResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/combo'
required:
- jsonrpc
- result
type: object
PrivateGetPositionResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/position_with_elp'
required:
- jsonrpc
- result
type: object
PrivateAddToAddressBookResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/address_book_item'
required:
- jsonrpc
- result
type: object
deposit:
properties:
currency:
$ref: '#/components/schemas/currency'
address:
$ref: '#/components/schemas/currency_address'
amount:
$ref: '#/components/schemas/currency_amount'
state:
$ref: '#/components/schemas/deposit_state'
transaction_id:
$ref: '#/components/schemas/currency_transaction_id'
source_address:
$ref: '#/components/schemas/currency_address'
received_timestamp:
$ref: '#/components/schemas/timestamp'
updated_timestamp:
$ref: '#/components/schemas/timestamp'
note:
type: string
clearance_state:
$ref: '#/components/schemas/clearance_state'
refund_transaction_id:
$ref: '#/components/schemas/currency_transaction_id'
required:
- currency
- address
- amount
- state
- transaction_id
- received_timestamp
- updated_timestamp
type: object
trigger_price:
type: number
description: Trigger price (Only for future trigger orders)
ErrorResponse:
type: object
properties:
jsonrpc:
type: string
enum:
- '2.0'
error:
type: object
properties:
code:
type: integer
description: Error code
message:
type: string
description: Error message
required:
- code
- message
required:
- jsonrpc
- error
description: Generic error response for broken references
waiting_timestamp:
example: true
type: boolean
description: Timestamp when the address will be ready
oco_ref:
type: string
description: Unique reference that identifies a one_cancels_others (OCO) pair.
nonce:
example: bF1_gfgcsd
type: string
description: Nonce
api_key_default:
example: false
type: boolean
description: Informs whether this api key is default (field is deprecated and will be removed in the future)
username:
example: MrTrader
type: string
description: System name or user defined subaccount alias
address_beneficiary_item:
properties:
currency:
$ref: '#/components/schemas/currency'
address:
$ref: '#/components/schemas/currency_address'
tag:
type: string
nullable: true
description: Tag for XRP addresses (optional)
user_id:
$ref: '#/components/schemas/user_id'
agreed:
$ref: '#/components/schemas/agree_to_share_with_3rd_party'
personal:
$ref: '#/components/schemas/personal_wallet'
unhosted:
$ref: '#/components/schemas/unhosted_wallet'
beneficiary_vasp_name:
$ref: '#/components/schemas/beneficiary_vasp_name'
beneficiary_vasp_did:
$ref: '#/components/schemas/beneficiary_vasp_did'
beneficiary_vasp_website:
$ref: '#/components/schemas/beneficiary_vasp_website'
beneficiary_first_name:
$ref: '#/components/schemas/beneficiary_first_name'
beneficiary_last_name:
$ref: '#/components/schemas/beneficiary_last_name'
beneficiary_company_name:
$ref: '#/components/schemas/beneficiary_company_name'
beneficiary_address:
$ref: '#/components/schemas/beneficiary_address'
created:
$ref: '#/components/schemas/timestamp'
updated:
$ref: '#/components/schemas/timestamp'
required:
- currency
- address
- user_id
- agreed
- personal
- unhosted
- beneficiary_vasp_name
- beneficiary_vasp_did
- beneficiary_address
- created
- updated
type: object
PrivateGetBlockRfqUserInfoResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
parent:
type: object
properties:
identity:
type: string
description: Group-level alias identifying the account group as a whole.
is_maker:
type: boolean
description: Indicates whether the Parent Identity has maker scope.
description: Parent Identity (group alias), representing the overall account group (main + subaccounts).
users:
type: array
items:
type: object
properties:
user_id:
$ref: '#/components/schemas/user_id'
taker_rating:
type: number
description: Taker rating associated with this account, if available.
identity:
type: string
description: Specific alias identifying this account individually.
is_maker:
type: boolean
description: Indicates whether this account has maker scope.
required:
- jsonrpc
- result
type: object
order_state_stop:
type: string
description: 'Order state: `"triggered"`, `"cancelled"`, or `"rejected"` with rejection reason (e.g. `"rejected:reduce_direction"`).'
min_price:
type: number
description: The minimum price for the future. Any sell orders you submit lower than this price will be clamped to this minimum.
OkResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: string
enum:
- ok
description: Result of method execution. `ok` in case of success
required:
- jsonrpc
- result
type: object
PrivateGetBrokerTradesResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
history:
type: array
items:
type: object
properties:
id:
type: string
description: Unique identifier of the block trade history entry.
timestamp:
type: integer
description: Timestamp of the block trade history entry (milliseconds since the UNIX epoch).
trades:
type: array
items:
$ref: '#/components/schemas/block_trade'
maker:
type: object
properties:
user_id:
type: integer
description: Obscured user id of the maker.
client_id:
type: integer
description: ID of a client; available to broker. Represents a group of users under a common name.
client_name:
type: string
description: Name of the client; available to broker.
client_link_name:
type: string
description: Name of the linked user within the client; available to broker.
client_link_id:
type: integer
description: ID assigned to a single user in a client; available to broker.
taker:
type: object
properties:
user_id:
type: integer
description: Obscured user id of the taker.
client_id:
type: integer
description: ID of a client; available to broker. Represents a group of users under a common name.
client_name:
type: string
description: Name of the client; available to broker.
client_link_name:
type: string
description: Name of the linked user within the client; available to broker.
client_link_id:
type: integer
description: ID assigned to a single user in a client; available to broker.
next_start_id:
type: integer
description: The next start ID for pagination.
required:
- jsonrpc
- result
type: object
PrivateWithdrawResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/withdrawal'
required:
- jsonrpc
- result
type: object
rpl:
example: 0.1
type: number
description: Session realized profit and loss
triggered:
type: boolean
description: Whether the trigger order has been triggered
currency_amount:
example: 1
type: number
description: Amount of funds in given currency
transfer_state:
type: string
description: 'Transfer state, allowed values : `prepared`, `confirmed`, `cancelled`, `waiting_for_admin`, `insufficient_funds`, `withdrawal_limit` otherwise rejection reason'
trigger_offset:
type: number
description: The maximum deviation from the price peak beyond which the order will be triggered (Only for trailing trigger orders)
api:
type: boolean
description: '`true` if created with API'
withdrawal:
properties:
address:
$ref: '#/components/schemas/currency_address'
amount:
$ref: '#/components/schemas/currency_amount'
confirmed_timestamp:
type: integer
example: 1536569522277
nullable: true
description: The timestamp (milliseconds since the Unix epoch) of withdrawal confirmation, `null` when not confirmed
created_timestamp:
$ref: '#/components/schemas/timestamp'
currency:
$ref: '#/components/schemas/currency'
fee:
$ref: '#/components/schemas/fee'
id:
type: integer
example: 1
description: Withdrawal id in Deribit system
priority:
type: number
example: 1
description: Id of priority level
state:
$ref: '#/components/schemas/withdrawal_state'
transaction_id:
$ref: '#/components/schemas/currency_transaction_id'
updated_timestamp:
$ref: '#/components/schemas/timestamp'
nonce:
type: string
description: Optional idempotency nonce if provided in the request
required:
- currency
- address
- amount
- state
- transaction_id
- updated_timestamp
type: object
address_label:
example: Main address
type: string
description: Label of the address book entry
result_count:
example: 101
type: integer
description: Total number of results available
api_key_features:
items:
type: string
type: array
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'
reduce_only:
type: boolean
description: Optional (not added for spot). '`true` for reduce-only orders only'
trigger_reference_price:
type: number
description: The price of the given trigger at the time when the order was placed (Only for trailing trigger orders)
position_direction:
enum:
- buy
- sell
- zero
type: string
description: 'Direction: `buy`, `sell` or `zero`'
PublicGetAnnouncementsResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
properties:
body:
example: An announcement
type: string
description: The HTML body of the announcement
publication_timestamp:
example: 1527844253000
type: integer
description: The timestamp (milliseconds since the Unix epoch) of announcement publication
id:
example: 19288317
type: number
description: A unique identifier for the announcement
important:
example: false
type: boolean
description: Whether the announcement is marked as important
confirmation:
type: boolean
example: false
description: Whether the user confirmation is required for this announcement
title:
example: Example announcement
type: string
description: The title of the announcement
required:
- title
- body
- important
- id
- publication_timestamp
type: object
required:
- jsonrpc
- result
type: object
position:
properties:
instrument_name:
$ref: '#/components/schemas/instrument_name'
kind:
$ref: '#/components/schemas/kind'
average_price:
type: number
description: Average price of trades that built this position
direction:
$ref: '#/components/schemas/position_direction'
mark_price:
type: number
description: Current mark price for position's instrument
delta:
type: number
description: Delta parameter
gamma:
type: number
description: Only for options, Gamma parameter
vega:
type: number
description: Only for options, Vega parameter
theta:
type: number
description: Only for options, Theta parameter
index_price:
type: number
description: Current index price
initial_margin:
type: number
description: Initial margin
maintenance_margin:
type: number
description: Maintenance margin
settlement_price:
type: number
description: Optional (not added for spot). Last settlement price for position's instrument 0 if instrument wasn't settled yet
total_profit_loss:
type: number
description: Profit or loss from position
floating_profit_loss:
type: number
description: Floating profit or loss
realized_profit_loss:
type: number
description: Realized profit or loss
size:
type: number
description: Position size for futures size in quote currency (e.g. USD), for options size is in base currency (e.g. BTC)
size_currency:
type: number
description: Only for futures, position size in base currency
average_price_usd:
type: number
description: Only for options, average price in USD
floating_profit_loss_usd:
type: number
description: Only for options, floating profit or loss in USD
leverage:
type: integer
description: Current available leverage for future position
realized_funding:
type: number
description: Realized Funding in current session included in session realized profit or loss, only for positions of perpetual instruments
interest_value:
type: number
description: Value used to calculate `realized_funding` (perpetual only)
required:
- instrument_name
- kind
- average_price
- direction
- mark_price
- delta
- index_price
- initial_margin
- maintenance_margin
- settlement_price
- total_profit_loss
- floating_profit_loss
- realized_profit_loss
- size
type: object
filled_amount:
type: number
description: Filled amount of the order. For perpetual and futures the filled_amount is in USD units, for options - in units or corresponding cryptocurrency contracts, e.g., BTC or ETH.
PrivateSubmitTransferResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/transfer_item'
required:
- jsonrpc
- result
type: object
PrivateDepositAddressResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
creation_timestamp:
$ref: '#/components/schemas/timestamp'
currency:
$ref: '#/components/schemas/currency'
address:
$ref: '#/components/schemas/currency_address'
type:
$ref: '#/components/schemas/wallet_address_type'
required:
- creation_timestamp
- currency
- address
- type
description: Object if address is created, null otherwise
required:
- jsonrpc
- result
type: object
is_secondary_oto:
type: boolean
description: '`true` if the order is an order that can be triggered by another order, otherwise not present.'
beneficiary_company_name:
example: Company Name
type: string
description: Company name of the beneficiary (if beneficiary is a company)
PrivateGetTriggerOrderHistoryResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
entries:
type: array
items:
$ref: '#/components/schemas/trigger_order_history_record'
continuation:
$ref: '#/components/schemas/continuation'
required:
- jsonrpc
- result
type: object
PrivateAcceptBlockRfqResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
trade_trigger:
type: object
properties:
state:
type: string
enum:
- untriggered
price:
type: number
direction:
type: string
enum:
- buy
- sell
block_trades:
type: array
items:
$ref: '#/components/schemas/block_trade'
required:
- trade_trigger
- block_trades
required:
- jsonrpc
- result
type: object
settlement:
properties:
funding:
example: -2.511e-06
type: number
description: funding (in base currency ; settlement for perpetual product only)
funded:
example: 0
type: number
description: funded amount (bankruptcy only)
index_price:
example: 11008.37
type: number
description: underlying index price at time of event (in quote currency; settlement and delivery only)
instrument_name:
example: BTC-30MAR18
type: string
description: instrument name (settlement and delivery only)
mark_price:
example: 11000
type: number
description: mark price for at the settlement time (in quote currency; settlement and delivery only)
position:
example: 1000
type: number
description: position size (in quote currency; settlement and delivery only)
profit_loss:
example: 0
type: number
description: profit and loss (in base currency; settlement and delivery only)
session_bankruptcy:
example: 0.001160788
type: number
description: value of session bankruptcy (in base currency; bankruptcy only)
session_profit_loss:
example: 0.001160788
type: number
description: total value of session profit and losses (in base currency)
session_tax:
example: -0.001160788
type: number
description: total amount of paid taxes/fees (in base currency; bankruptcy only)
session_tax_rate:
example: 0.000103333
type: number
description: rate of paid taxes/fees (in base currency; bankruptcy only)
socialized:
example: -0.001160788
type: number
description: the amount of the socialized losses (in base currency; bankruptcy only)
timestamp:
$ref: '#/components/schemas/timestamp'
type:
$ref: '#/components/schemas/settlement_type'
required:
- type
- timestamp
- session_profit_loss
- position
- instrument_name
- index_price
- funding
type: object
PrivateMassQuoteResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
orders:
type: array
items:
$ref: '#/components/schemas/order'
trades:
type: array
items:
$ref: '#/components/schemas/user_trade'
errors_count:
type: integer
description: 'Number of errors (present when `detailed` : `false`).'
pending_requests_count:
type: integer
description: 'Number of pending quotes (present when `wait_for_response`: `false` and `detailed` : `false`).'
pending_requests:
type: array
items:
type: object
properties:
instrument_name:
type: string
description: Instrument name.
side:
type: string
description: Quote side - `bid` or `ask`.
description: 'List of pending quotes (present when `wait_for_response`: `false` and `detailed` : `true`).'
errors:
type: array
items:
type: object
properties:
instrument_name:
type: string
description: Instrument name.
side:
type: string
description: Quote side - `bid` or `ask`.
error:
type: object
description: Error data.
code:
type: integer
description: Error code
message:
type: string
description: Error message.
description: 'List of errors (present when `detailed` : `true`).'
required:
- jsonrpc
- result
type: object
PrivateCancelBlockRfqQuoteResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/block_rfq_quote'
required:
- jsonrpc
- result
type: object
id:
example: 5967413
type: integer
description: Unique identifier
PrivateGetOrderMarginByIdsResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
$ref: '#/components/schemas/order_id_initial_margin_pair'
required:
- jsonrpc
- result
type: object
block_trade:
properties:
id:
$ref: '#/components/schemas/block_trade_id'
timestamp:
$ref: '#/components/schemas/timestamp'
trades:
type: array
items:
$ref: '#/components/schemas/user_trade'
app_name:
type: string
example: Example Application
description: The name of the application that executed the block trade on behalf of the user (optional).
broker_code:
type: string
example: 2krM7sJsx
description: Broker code associated with the broker block trade.
broker_name:
type: string
example: Test Broker
description: Name of the broker associated with the block trade.
required:
- id
- timestamp
- trades
type: object
cod_scope:
enum:
- connection
- account
type: string
description: Informs if Cancel on Disconnect was checked for the current connection or the account
extra_currencies:
items:
type: string
description: Name of the currency
example:
- USDC
type: array
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.
PrivateGetAddressBeneficiaryResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/address_beneficiary_item'
required:
- jsonrpc
- result
type: object
PrivateGetTransactionLogResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
continuation:
$ref: '#/components/schemas/continuation_with_null'
logs:
type: array
items:
$ref: '#/components/schemas/transaction_log'
required:
- continuation
- logs
required:
- jsonrpc
- result
type: object
user_trade:
properties:
trade_id:
$ref: '#/components/schemas/trade_id'
trade_seq:
$ref: '#/components/schemas/trade_seq'
instrument_name:
$ref: '#/components/schemas/instrument_name'
timestamp:
$ref: '#/components/schemas/trade_timestamp'
order_type:
type: string
enum:
- limit
- market
- liquidation
description: 'Order type: `"limit`, `"market"`, or `"liquidation"`'
advanced:
type: string
enum:
- usd
- implv
description: 'Advanced type of user order: `"usd"` or `"implv"` (only for options; omitted if not applicable)'
order_id:
type: string
description: Id of the user order (maker or taker), i.e. subscriber's order id that took part in the trade
matching_id:
type: string
description: Always `null`
direction:
$ref: '#/components/schemas/direction'
description: Trade direction of the taker
tick_direction:
$ref: '#/components/schemas/tick_direction'
index_price:
type: number
description: Index Price at the moment of trade
price:
$ref: '#/components/schemas/price'
description: The price of the trade
amount:
type: number
description: Trade amount. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.
contracts:
type: number
description: Trade size in contract units (optional, may be absent in historical trades)
iv:
type: number
description: Option implied volatility for the price (Option only)
underlying_price:
type: number
description: Underlying price for implied volatility calculations (Options only)
liquidation:
type: string
enum:
- M
- T
- MT
description: 'Optional field (only for trades caused by liquidation): `"M"` when maker side of trade was under liquidation, `"T"` when taker side was under liquidation, `"MT"` when both sides of trade were under liquidation'
liquidity:
type: string
enum:
- M
- T
description: 'Describes what was role of users order: `"M"` when it was maker order, `"T"` when it was taker order'
fee:
type: number
description: User's fee in units of the specified `fee_currency`
fee_currency:
$ref: '#/components/schemas/currency'
label:
$ref: '#/components/schemas/label_presentation'
state:
$ref: '#/components/schemas/order_state_in_user_trade'
block_trade_id:
$ref: '#/components/schemas/block_trade_id_in_result'
block_rfq_id:
type: integer
description: ID of the Block RFQ - when trade was part of the Block RFQ
block_rfq_quote_id:
type: integer
description: ID of the Block RFQ quote - when trade was part of the Block RFQ
reduce_only:
type: string
description: '`true` if user order is reduce-only'
post_only:
type: string
description: '`true` if user order is post-only'
mmp:
type: boolean
description: '`true` if user order is MMP'
risk_reducing:
type: boolean
description: '`true` if user order is marked by the platform as a risk reducing order (can apply only to orders placed by PM users)'
api:
type: boolean
description: '`true` if user order was created with API'
profit_loss:
$ref: '#/components/schemas/profit_loss'
mark_price:
type: number
description: Mark Price at the moment of trade
legs:
type: array
description: Optional field containing leg trades if trade is a combo trade (present when querying for **only** combo trades and in `combo_trades` events)
combo_id:
type: string
description: Optional field containing combo instrument name if the trade is a combo trade
combo_trade_id:
type: number
description: Optional field containing combo trade identifier if the trade is a combo trade
quote_set_id:
type: string
description: QuoteSet of the user order (optional, present only for orders placed with `private/mass_quote`)
quote_id:
type: string
description: QuoteID of the user order (optional, present only for orders placed with `private/mass_quote`)
trade_allocations:
type: array
items:
type: object
properties:
user_id:
type: integer
description: User ID to which part of the trade is allocated. For brokers the User ID is obstructed.
amount:
type: number
description: Amount allocated to this user.
fee:
type: number
description: Fee for the allocated part of the trade.
client_info:
type: object
properties:
client_id:
type: integer
description: ID of a client; available to broker. Represents a group of users under a common name.
client_link_id:
type: integer
description: ID assigned to a single user in a client; available to broker.
name:
type: string
description: Name of the linked user within the client; available to broker.
description: Optional client allocation info for brokers.
required:
- amount
- fee
description: List of allocations for Block RFQ pre-allocation. Each allocation specifies `user_id`, `amount`, and `fee` for the allocated part of the trade. For broker client allocations, a `client_info` object will be included.
required:
- trade_id
- trade_seq
- instrument_name
- timestamp
- order_id
- matching_id
- direction
- tick_direction
- index_price
- price
- amount
- fee
- fee_currency
- state
- mark_price
type: object
portfolio:
properties:
btc(example):
$ref: '#/components/schemas/currency_portfolio'
type: object
original_order_type:
enum:
- market
- market_limit
type: string
description: Original order type. Optional field
api_limits:
type: object
description: Returned object is described in [separate document](https://support.deribit.com/hc/en-us/articles/25944617523357-Rate-Limits).
combo_leg:
properties:
instrument_name:
$ref: '#/components/schemas/instrument_name'
amount:
$ref: '#/components/schemas/combo_leg_amount'
type: object
PrivateAddressBookResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
$ref: '#/components/schemas/address_book_item'
required:
- jsonrpc
- result
type: object
average_price:
type: number
description: Average fill price of the order
PrivateGetUserLocksResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
items:
type: object
properties:
currency:
$ref: '#/components/schemas/currency'
enabled:
type: boolean
description: Value is set to 'true' when user account is locked in currency
message:
type: string
description: Optional information for user why his account is locked
required:
- currency
- enabled
type: array
required:
- jsonrpc
- result
type: object
implv:
type: number
description: Implied volatility in percent. (Only if `advanced="implv"`)
transaction_log:
properties:
id:
$ref: '#/components/schemas/id'
currency:
$ref: '#/components/schemas/currency'
timestamp:
$ref: '#/components/schemas/timestamp'
user_id:
$ref: '#/components/schemas/user_id'
username:
$ref: '#/components/schemas/username'
commission:
$ref: '#/components/schemas/commission'
cashflow:
type: number
description: 'For futures and perpetual contracts: Realized session PNL (since last settlement). For options: the amount paid or received for the options traded.'
balance:
type: number
description: Cash balance after the transaction
change:
type: number
description: 'Change in cash balance. For trades: fees and options premium paid/received. For settlement: Futures session PNL and perpetual session funding.'
user_seq:
type: integer
description: Sequential identifier of user transaction
type:
type: string
description: 'Transaction category/type. The most common are: `trade`, `deposit`, `withdrawal`, `settlement`, `delivery`, `transfer`, `swap`, `correction`. New types can be added any time in the future'
info:
type: object
description: Additional information regarding transaction. Strongly dependent on the log entry type
equity:
type: number
description: Updated equity value after the transaction
mark_price:
type: number
description: Market price during the trade
settlement_price:
type: number
description: The settlement price for the instrument during the delivery
index_price:
type: number
description: The index price for the instrument during the delivery
instrument_name:
$ref: '#/components/schemas/instrument_name'
position:
type: number
description: Updated position size after the transaction
side:
type: string
description: 'One of: `short` or `long` in case of settlements, `close sell` or `close buy` in case of deliveries, `open sell`, `open buy`, `close sell`, `close buy` in case of trades'
amount:
type: number
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.
price:
type: number
description: Settlement/delivery price or the price level of the traded contracts
price_currency:
type: string
description: Currency symbol associated with the `price` field value
trade_id:
$ref: '#/components/schemas/trade_id'
order_id:
$ref: '#/components/schemas/order_id'
user_role:
$ref: '#/components/schemas/role'
fee_role:
$ref: '#/components/schemas/fee_role'
profit_as_cashflow:
type: boolean
description: Indicator informing whether the cashflow is waiting for settlement or not
interest_pl:
type: number
description: Actual funding rate of trades and settlements on perpetual instruments
block_rfq_id:
type: integer
description: ID of the Block RFQ - when trade was part of the Block RFQ
ip:
type: string
description: The IP address from which the trade was initiated
session_rpl:
$ref: '#/components/schemas/rpl'
session_upl:
$ref: '#/components/schemas/upl'
total_interest_pl:
type: number
description: Total session funding rate
contracts:
$ref: '#/components/schemas/contracts'
required:
- id
- currency
- timestamp
- user_id
- commission
- cashflow
- balance
- change
- user_seq
- type
type: object
PrivateGetPositionsResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
$ref: '#/components/schemas/position_with_elp'
required:
- jsonrpc
- result
type: object
PrivateGetSubaccountsResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
type: object
properties:
username:
type: string
type:
enum:
- main
- subaccount
type: string
id:
type: integer
description: Account/Subaccount identifier
email:
type: string
description: User email
not_confirmed_email:
type: string
description: New email address that has not yet been confirmed. This field is only included if `with_portfolio` == `true`.
security_keys_enabled:
type: boolean
description: Whether the Security Keys authentication is enabled
security_keys_assignments:
type: array
description: Names of assignments with Security Keys assigned
system_name:
type: string
description: System generated user nickname
receive_notifications:
type: boolean
description: When `true` - receive all notification emails on the main email
is_password:
type: boolean
description: '`true` when password for the subaccount has been configured'
margin_model:
type: string
description: Margin model
proof_id:
type: string
description: 'Hashed identifier used in the Proof Of Liability for the subaccount. This identifier allows you to find your entries in the Deribit Proof-Of-Reserves files. IMPORTANT: Keep it secret to not disclose your entries in the Proof-Of-Reserves.'
proof_id_signature:
type: string
description: 'Signature used as a base string for proof_id hash. IMPORTANT: Keep it secret to not disclose your entries in the Proof-Of-Reserves.'
login_enabled:
type: boolean
description: Informs whether login to the subaccount is enabled
portfolio:
$ref: '#/components/schemas/portfolio'
description: Only if with_portfolio == true
required:
- username
- email
- type
- tfa_enabled
- receive_notifications
- is_password
- system_name
- id
required:
- jsonrpc
- result
type: object
PrivateVerifyBlockTradeResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
signature:
$ref: '#/components/schemas/block_trade_signature'
required:
- signature
required:
- jsonrpc
- result
type: object
PrivateApiKeyResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/api_key'
required:
- jsonrpc
- result
type: object
order_type2:
enum:
- all
- limit
- trigger_all
- stop_all
- stop_limit
- stop_market
- take_all
- take_limit
- take_market
- trailing_all
- trailing_stop
type: string
description: 'Order type: `"all"`, `"limit"`, `"trigger_all"`, `"stop_all"`, `"stop_limit"`, `"stop_market"`, `"take_all"`, `"take_limit"`, `"take_market"`, `"trailing_all"`, `"trailing_stop"`'
ErrorMessageResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
message:
type: string
error:
type: integer
required:
- jsonrpc
- message
- error
type: object
order_id:
example: ETH-100234
type: string
description: Unique order identifier
unhosted_wallet:
example: false
type: boolean
description: Indicates if the address belongs to an unhosted wallet
trade_seq:
type: integer
description: The sequence number of the trade within instrument
index_name:
enum:
- btc_usd
- eth_usd
- ada_usdc
- algo_usdc
- avax_usdc
- bch_usdc
- bnb_usdc
- btc_usdc
- btcdvol_usdc
- buidl_usdc
- doge_usdc
- dot_usdc
- eurr_usdc
- eth_usdc
- ethdvol_usdc
- link_usdc
- ltc_usdc
- near_usdc
- paxg_usdc
- shib_usdc
- sol_usdc
- steth_usdc
- ton_usdc
- trump_usdc
- trx_usdc
- uni_usdc
- usde_usdc
- usyc_usdc
- xrp_usdc
- btc_usdt
- eth_usdt
- eurr_usdt
- sol_usdt
- steth_usdt
- usdc_usdt
- usde_usdt
- btc_eurr
- btc_usde
- btc_usyc
- eth_btc
- eth_eurr
- eth_usde
- eth_usyc
- steth_eth
- paxg_btc
- drbfix-btc_usdc
- drbfix-eth_usdc
type: string
description: Index identifier, matches (base) cryptocurrency with quote currency
projected_maintenance_margin:
example: 1
type: number
description: Projected maintenance margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
PrivateSetMmpConfigResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
type: object
properties:
index_name:
$ref: '#/components/schemas/index_name'
interval:
type: integer
minimum: 0
maximum: 3600
description: 'The duration of the monitoring window in seconds. For example, an interval of 3 implies a 3-second window.
The 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.
This mechanism allows the platform to track activity in short, rolling windows to identify potentially risky trading behavior.
If set to 0, MMP is disabled.
Maximum value: 3600 seconds (1 hour).'
frozen_time:
type: integer
minimum: 0
maximum: 3600
description: 'Time in seconds that MMP remains active after being triggered. Once this frozen period has passed, MMP will automatically reset, allowing new orders to be submitted.
If 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.
Manual reset is also possible during the frozen time period.
Maximum value: 3600 seconds (1 hour).'
id:
type: integer
format: int64
description: Integer identifier for the MMP group (int64). This is the programmatic identifier for the group. Entries without an `mmp_group` name correspond to the orders MMP group (the default group).
mmp_group:
type: string
description: Name of the MMP group. Absent for the orders MMP group (the default group), which has no string name — its entry is identified by the `id` field alone.
quantity_limit:
type: number
description: 'The total traded quantity, measured in units of the base currency (e.g., BTC in BTC-PERPETUAL), within the interval.
This count is direction-agnostic—a buy followed by a sell counts double.
Example: Buy 10 BTC and sell 10 BTC = 20 total quantity.
Applicable to both options and futures.
Note: Once this is set, an initial margin will be reserved even without any open positions. Initial Margin due to quantity_limit = quantity_limit * 0.03
Maximum 4 decimal places.'
delta_limit:
type: number
description: 'The maximum allowable net transaction delta change during the interval.
Expressed in units of base currency.
The 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.
Direction matters: buying +5 delta and selling −5 delta cancels out if within the same interval.
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.
Maximum 4 decimal places.'
vega_limit:
type: number
description: The maximum change in vega exposure allowed within a given interval, measured in absolute terms.
Expressed in USD, representing the change in sensitivity to implied volatility across executed trades.
This parameter is primarily relevant for options traders managing risk in volatile markets.
Similar 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.
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.
Maximum 4 decimal places.
max_quote_quantity:
type: number
description: Maximum Quote Quantity (MQQ). 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 (specified in base currency). MQQ is used for Initial Margin calculation (3% of MQQ is taken as Initial Margin for MMP orders and quotes).
**Important Notes:**
- **Configured per index, enforced per instrument:** MQQ is configured at the index level (an MMP group is linked to an index). However, the limit is enforced separately per order book (instrument) per side. "Per order book" means per instrument (not per expiry). The limit is NOT the sum across all instruments — each instrument has its own separate MQQ enforcement.
- **MQQ limits cumulative size, not order count:** For example, with MQQ of 3 BTC, you can place multiple orders (three orders of 1 BTC each, or one order of 2.5 BTC plus one of 0.5 BTC) as long as the total size per side per instrument does not exceed 3 BTC
- **MQQ is separate per MMP group:** Each MMP group has its own independent MQQ configuration. MQQ limits are enforced separately for each MMP group.
- **MQQ vs Quantity Limit relationship:** You can set MQQ > `quantity_limit`. This allows quotes to be larger than the quantity limit, and enables MMP to trigger on partial fills of quotes. This decouples the MMP reserved margin from the MMP quantity limit.
- **Base currency:** MQQ is specified and enforced in base currency
- **Inverse futures:** Size is calculated as Amount / Price to convert to base currency
- **Inverse future spreads:** Size is calculated as Amount / IndexPrice
- **SM accounts:** MMP orders and quotes on options and option_combos are not supported for SM accounts
- **Rejections:** MQQ is enforced for **MMP-enabled orders and quotes**. Quote entries and MMP-enabled orders (i.e., orders with `mmp=true`) are rejected if their individual size is greater than `max_quote_quantity`, or if accepting them would make the total open MMP size per side per instrument exceed `max_quote_quantity`. Non‑MMP orders are not subject to MQQ and may be larger than `max_quote_quantity`.
- **Precision:** All MMP configuration values support maximum 4 decimal places
- **Latency:** There are no latency benefits from MQQ if you already use mass quotes.
block_rfq:
type: boolean
description: If true, indicates MMP configuration for Block RFQ. Block RFQ MMP settings are completely separate from normal order/quote MMP settings.
trade_count_limit:
type: integer
description: For Block RFQ only. 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.
required:
- index_name
- interval
- frozen_time
required:
- jsonrpc
- result
type: object
refresh_amount:
type: number
description: The initial display amount of iceberg order. Iceberg order display amount will be refreshed to that value after match consuming actual display amount. Absent for other types of orders
kind:
enum:
- future
- option
- spot
- future_combo
- option_combo
type: string
description: 'Instrument kind: `"future"`, `"option"`, `"spot"`, `"future_combo"`, `"option_combo"`'
filled_amount_quote:
type: number
description: Filled amount of the quote. For perpetual and futures the filled_amount is in USD units, for options - in units or corresponding cryptocurrency contracts, e.g., BTC or ETH.
post_only:
type: boolean
description: '`true` for post-only orders only'
leg_structure:
items:
properties:
ratio:
type: integer
description: Ratio of amount between legs
instrument_name:
type: string
example: BTC-PERPETUAL
description: Unique instrument identifier
direction:
type: string
enum:
- buy
- sell
description: 'Direction: `buy`, or `sell`'
price:
type: number
description: Price for a leg
type: object
type: array
address_book_type:
enum:
- transfer
- withdrawal
- deposit_source
type: string
description: Address book type
open_order_price:
oneOf:
- type: number
- enum:
- market_price
type: string
description: Price in base currency or "market_price" in case of open trigger market orders
order_state:
enum:
- open
- filled
- rejected
- cancelled
- untriggered
- triggered
type: string
description: 'Order state: `"open"`, `"filled"`, `"rejected"`, `"cancelled"`, `"untriggered"`'
PrivateGetBlockRfqQuotesResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
$ref: '#/components/schemas/block_rfq_quote'
required:
- jsonrpc
- result
type: object
PrivateRemoveFromAddressBookResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: string
example: ok
description: ok
required:
- jsonrpc
- result
type: object
PrivateSimulatePortfolioResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
currency:
example: BTC
type: string
description: Currency of the simulation
equity:
example: 150075253.91354558
type: number
description: The account's current equity
balance:
example: 150076473.4995114
type: number
description: The account's balance
margin_balance:
example: 153534213.79481918
type: number
description: The account's margin balance. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
initial_margin:
example: 37662472.03416069
type: number
description: The account's initial margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
maintenance_margin:
example: 30129215.84817124
type: number
description: The maintenance margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
projected_initial_margin:
$ref: '#/components/schemas/projected_initial_margin'
projected_maintenance_margin:
$ref: '#/components/schemas/projected_maintenance_margin'
available_funds:
example: 115871741.76065847
type: number
description: The account's available funds. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
available_withdrawal_funds:
example: 115871741.76065847
type: number
description: The account's available to withdrawal funds
available_subaccount_transfer_funds:
example: 0
type: number
description: The account's available funds for subaccount transfers
total_pl:
example: 40419.10179263
type: number
description: Profit and loss
session_rpl:
$ref: '#/components/schemas/rpl'
session_upl:
$ref: '#/components/schemas/upl'
futures_pl:
example: 39497.54616685
type: number
description: Futures profit and loss
futures_session_rpl:
example: 1.309136
type: number
description: Futures session realized profit and loss
futures_session_upl:
example: -164.48253509
type: number
description: Futures session unrealized profit and loss
options_pl:
example: 921.55562578
type: number
description: Options profit and loss
options_session_rpl:
example: 0
type: number
description: Options session realized profit and loss
options_session_upl:
example: -174.67960675
type: number
description: Options session unrealized profit and loss
options_value:
example: -1056.41256672
type: number
description: Options value
options_delta:
example: 2883.38481
type: number
description: Options summary delta
options_gamma:
example: -0.03907
type: number
description: Options summary gamma
options_theta:
example: 142583.29246
type: number
description: Options summary theta
options_vega:
example: -39322.23046
type: number
description: Options summary vega
options_gamma_map:
type: object
description: Map of options' gammas per index
options_theta_map:
type: object
description: Map of options' thetas per index
options_vega_map:
type: object
description: Map of options' vegas per index
delta_total:
$ref: '#/components/schemas/delta_total'
delta_total_map:
type: object
description: Map of total deltas per index
projected_delta_total:
$ref: '#/components/schemas/projected_delta_total'
additional_reserve:
$ref: '#/components/schemas/additional_reserve'
spot_reserve:
example: 0
type: number
description: The account's balance reserved in active spot orders
fee_balance:
$ref: '#/components/schemas/fee_balance'
locked_balance:
example: 0
type: number
description: The account's locked balance
margin_model:
type: string
example: cross_pm
description: Name of user's currently enabled margin model
portfolio_margining_enabled:
type: boolean
example: true
description: '`true` when portfolio margining is enabled for user'
cross_collateral_enabled:
type: boolean
example: true
description: When `true` cross collateral is enabled for user
total_equity_usd:
example: 13075634611389.318
type: number
description: Optional (only for users using cross margin). The account's total equity in all cross collateral currencies, expressed in USD
total_initial_margin_usd:
example: 3139528603778.822
type: number
description: Optional (only for users using cross margin). The account's total initial margin in all cross collateral currencies, expressed in USD
total_maintenance_margin_usd:
example: 2511559381417.215
type: number
description: Optional (only for users using cross margin). The account's total maintenance margin in all cross collateral currencies, expressed in USD
total_margin_balance_usd:
example: 12798550648250.61
type: number
description: Optional (only for users using cross margin). The account's total margin balance in all cross collateral currencies, expressed in USD
total_delta_total_usd:
example: 6157454218.3753195
type: number
description: Optional (only for users using cross margin). The account's total delta total in all cross collateral currencies, expressed in USD
description: Portfolio margin simulation result
required:
- jsonrpc
- result
type: object
order_id_initial_margin_pair:
properties:
order_id:
$ref: '#/components/schemas/order_id'
initial_margin:
type: number
description: Initial margin of order
initial_margin_currency:
type: string
description: Currency of initial margin
required:
- order_id
- initial_margin
type: object
trade_allocations:
items:
properties:
user_id:
type: integer
description: User ID to allocate part of the RFQ amount. For brokers the User ID is obstructed.
client_info:
type: object
properties:
client_id:
type: integer
description: ID of a client; available to broker. Represents a group of users under a common name.
client_link_id:
type: integer
description: ID assigned to a single user in a client; available to broker.
name:
type: string
description: Name of the linked user within the client; available to broker.
description: Client allocation info for brokers.
amount:
type: number
description: Amount allocated to this user or client.
type: object
type: array
description: List of allocations for Block RFQ pre-allocation. Allows to split amount between different (sub)accounts or broker clients. Each allocation must specify either `user_id` (for direct allocation) or `client_info` object (for broker allocation), and amount. Visible only to the taker.
beneficiary_vasp_did:
example: did:example:123456789abcdefghi
type: string
description: DID of beneficiary VASP
contracts:
type: number
description: It represents the order size in contract units. (Optional, may be absent in historical data).
order_type:
enum:
- market
- limit
- stop_market
- stop_limit
- take_market
- take_limit
- trailing_stop
type: string
description: 'Order type: `"limit"`, `"market"`, `"stop_limit"`, `"stop_market"`, `"take_limit"`, `"take_market"`, `"trailing_stop"`'
PrivateListAddressBeneficiariesResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/address_beneficiary_item'
continuation:
$ref: '#/components/schemas/continuation'
count:
type: integer
example: 42
description: Total number of results available
required:
- jsonrpc
- result
type: object
PrivateGetCancelOnDisconnectResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
scope:
$ref: '#/components/schemas/cod_scope'
enabled:
$ref: '#/components/schemas/enabled_field'
required:
- jsonrpc
- result
type: object
access_log:
properties:
id:
$ref: '#/components/schemas/id'
ip:
type: string
description: IP address of source that generated action
timestamp:
$ref: '#/components/schemas/timestamp'
country:
type: string
description: Country where the IP address is registered (estimated)
city:
type: string
description: City where the IP address is registered (estimated)
log:
type: string
description: 'Action description. Possible values:
- ``changed_email`` - email was changed
- ``changed_password`` - password was changed
- ``disabled_tfa`` - TFA was disabled
- ``enabled_tfa`` - TFA was enabled
- ``success`` - successful login
- ``failure`` - login failure
- ``enabled_subaccount_login`` - login was enabled for subaccount (in `data` - subaccount uid)
- ``disabled_subaccount_login`` - login was disabled for subaccount (in `data` - subaccount uid)
- ``new_api_key`` - API key was created (in `data` key client id)
- ``removed_api_key`` - API key was removed (in `data` key client id)
- ``changed_scope`` - scope of API key was changed (in `data` key client id)
- ``changed_whitelist`` - whitelist of API key was edited (in `data` key client id)
- ``disabled_api_key`` - API key was disabled (in `data` key client id)
- ``enabled_api_key`` - API key was enabled (in `data` key client id)
- ``reset_api_key`` - API key was reset (in `data` key client id)
'
data:
description: Optional, additional information about action, type depends on `log` value
oneOf:
- type: object
- type: string
required:
- id
- ip
- timestamp
- country
- city
- log
type: object
PrivateGetBlockRfqsResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
properties:
block_rfqs:
type: array
items:
$ref: '#/components/schemas/block_rfq'
continuation:
$ref: '#/components/schemas/continuation'
type: object
required:
- jsonrpc
- result
type: object
PrivateGetMarginsResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
properties:
buy:
example: 0.01681367
type: number
description: Margin when buying
sell:
example: 0.01680479
type: number
description: Margin when selling
min_price:
$ref: '#/components/schemas/min_price'
max_price:
$ref: '#/components/schemas/max_price'
required:
- buy
- sell
- min_price
- max_price
type: object
required:
- jsonrpc
- result
type: object
display_amount:
type: number
description: The actual display amount of iceberg order. Absent for other types of orders.
orders:
items:
$ref: '#/components/schemas/order'
type: array
cancel_reason:
enum:
- user_request
- autoliquidation
- cancel_on_disconnect
- risk_mitigation
- pme_risk_reduction
- pme_account_locked
- position_locked
- mmp_trigger
- mmp_config_curtailment
- edit_post_only_reject
- oco_other_closed
- oto_primary_closed
- settlement
type: string
description: Enumerated reason behind cancel `"user_request"`, `"autoliquidation"`, `"cancel_on_disconnect"`, `"risk_mitigation"`, `"pme_risk_reduction"` (portfolio margining risk reduction), `"pme_account_locked"` (portfolio margining account locked per currency), `"position_locked"`, `"mmp_trigger"` (market maker protection), `"mmp_config_curtailment"` (market maker configured quantity decreased), `"edit_post_only_reject"` (cancelled on edit because of `reject_post_only` setting), `"oco_other_closed"` (the oco order linked to this order was closed), `"oto_primary_closed"` (the oto primary order that was going to trigger this order was cancelled), `"settlement"` (closed because of a settlement)
timestamp:
example: 1536569522277
type: integer
description: The timestamp (milliseconds since the Unix epoch)
currency_portfolio:
properties:
margin_balance:
type: number
description: The account's margin balance. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
currency:
type: string
enum:
- btc
- eth
description: The selected currency
maintenance_margin:
type: number
description: The maintenance margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
initial_margin:
type: number
description: The account's initial margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
equity:
type: number
description: The account's current equity
balance:
type: number
description: The account's balance
available_withdrawal_funds:
type: number
description: The account's available to withdrawal funds
available_funds:
type: number
description: The account's available funds. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
additional_reserve:
$ref: '#/components/schemas/additional_reserve'
spot_reserve:
type: number
description: The account's balance reserved in active spot orders
required:
- margin_balance
- currency
- maintenance_margin
- initial_margin
- equity
- balance
- available_withdrawal_funds
- available_funds
- additional_reserve
- spot_reserve
type: object
PrivateGetEmailLanguageResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: string
example: en
description: The abbreviation of the language
required:
- jsonrpc
- result
type: object
requires_confirmation:
example: true
type: boolean
description: If address requires email confirmation for withdrawals
transfer_direction:
enum:
- payment
- income
type: string
description: Transfer direction
projected_initial_margin:
example: 1
type: number
description: Projected initial margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
index_name_derivative:
enum:
- btc_usd
- eth_usd
- btc_usdc
- eth_usdc
- ada_usdc
- algo_usdc
- avax_usdc
- bch_usdc
- bnb_usdc
- doge_usdc
- dot_usdc
- link_usdc
- ltc_usdc
- near_usdc
- paxg_usdc
- shib_usdc
- sol_usdc
- ton_usdc
- trx_usdc
- trump_usdc
- uni_usdc
- xrp_usdc
- usde_usdc
- buidl_usdc
- btcdvol_usdc
- ethdvol_usdc
- btc_usdt
- eth_usdt
- all
type: string
description: Index identifier of derivative instrument on the platform
direction:
enum:
- buy
- sell
type: string
description: 'Direction: `buy`, or `sell`'
currency_with_any:
enum:
- BTC
- ETH
- USDC
- USDT
- EURR
- any
type: string
description: Currency name or `"any"` if don't care
advanced:
enum:
- usd
- implv
type: string
description: 'advanced type: `"usd"` or `"implv"` (Only for options; field is omitted if not applicable).
'
wallet_currency:
enum:
- BTC
- ETH
- STETH
- ETHW
- USDC
- USDT
- EURR
- SOL
- XRP
- USYC
- PAXG
- BNB
- USDE
type: string
description: Currency, i.e `"BTC"`, `"ETH"`, `"USDC"`
block_trade_signature:
example: 1565173369982.1M9tO0Q-.z9n9WyZUU5op9pEz6Jtd2CI71QxQMMsCZAexnIfK9HQRT1pKH3clxeIbY7Bqm-yMcWIoE3IfCDPW5VEdiN-6oS0YkKUyXPD500MUf3ULKhfkmH81EZs
type: string
description: Signature of block trade
It is valid only for 5 minutes around given timestamp
trade_trigger:
properties:
state:
$ref: '#/components/schemas/trade_trigger_state'
price:
type: number
description: Price of the trade trigger
direction:
type: string
enum:
- buy
- sell
description: Direction of the trade trigger
cancel_reason:
type: string
description: Reason for cancellation, present only when state is cancelled
required:
- state
- price
- direction
type: object
description: Contains information about the trade trigger state
transfer_item:
properties:
id:
$ref: '#/components/schemas/transfer_id'
created_timestamp:
$ref: '#/components/schemas/timestamp'
type:
$ref: '#/components/schemas/transfer_type'
currency:
$ref: '#/components/schemas/currency'
amount:
$ref: '#/components/schemas/currency_amount'
other_side:
$ref: '#/components/schemas/transfer_other_side'
state:
$ref: '#/components/schemas/transfer_state'
direction:
$ref: '#/components/schemas/transfer_direction'
updated_timestamp:
$ref: '#/components/schemas/timestamp'
nonce:
type: string
description: Optional idempotency nonce if provided in the request
required:
- currency
- id
- type
- amount
- state
- other_side
- updated_timestamp
- created_timestamp
type: object
personal_wallet:
example: true
type: boolean
description: The user confirms that he provided address belongs to him and he has access to it via an un-hosted wallet software
delta_total:
example: 0.1334
type: number
description: "The sum of position deltas. \n\n**DeltaTotal = Net Transaction Delta of options + BTC Position of Futures**\n\nThe DeltaTotal uses the Net Transaction Delta (or price adjusted Delta) of the options, where Net Transaction Delta = Black Scholes Delta - Mark Price of Options.\n\nThis is because, from a risk perspective, we are interested in the change in Bitcoin price as the underlying changes.\n\nYou should actually treat your delta as **Equity + Delta Total** if you want to have less risk for your USD PnL.\n\n⚠️ **During the 30 minute settlement period we decay your Delta.** See [Delta decay during settlement](https://support.deribit.com/hc/en-us/articles/25944751433757-Delta-decay-during-settlement) for more details.\n"
public_key:
example: '-----BEGIN PUBLIC KEY----- MCowBQYDK2VwAyEApajFN0CSwIaaiIRPiFbiYYvpsLQLSccSLLsKPe984sc= -----END PUBLIC KEY-----'
type: string
description: PEM encoded public key (Ed25519/RSA) used for asymmetric signatures (optional)
api_key_name:
example: TestName
type: string
description: Api key name that can be displayed in transaction log
upl:
example: 0.846863
type: number
description: Session unrealized profit and loss
clearance_state:
enum:
- in_progress
- pending_admin_decision
- pending_user_input
- success
- failed
- cancelled
- refund_initiated
- refunded
type: string
description: 'Clearance state indicating the current status of the transaction clearance process. Allowed values: in_progress: clearance process is in progress pending_admin_decision: transaction is under manual review by Deribit admin pending_user_input: user should provide additional information regarding the transaction success: clearance process completed successfully failed: clearance process failed, transaction is rejected cancelled: transaction is cancelled (currently used only for withdrawals, meaning the withdrawal is cancelled) refund_initiated: clearance process failed, transaction refund is initiated, funds are removed from Deribit balance (valid for deposits only) refunded: clearance process failed, deposit amount is refunded back to the client (valid for deposits only)'
enabled_field:
example: true
type: boolean
description: Current configuration status
PrivateAccountResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
properties:
total_pl:
example: 0.02032221
type: number
description: Profit and loss
session_rpl:
$ref: '#/components/schemas/rpl'
session_upl:
$ref: '#/components/schemas/upl'
available_funds:
example: 2.2638913
type: number
description: The account's available funds. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
available_withdrawal_funds:
type: number
example: 2.26
description: The account's available to withdrawal funds
margin_balance:
type: number
example: 2.25
description: The account's margin balance. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
balance:
example: 3.4906363
type: number
description: The account's balance
spot_reserve:
example: 0.3
type: number
description: The account's balance reserved in active spot orders
additional_reserve:
$ref: '#/components/schemas/additional_reserve'
fee_balance:
$ref: '#/components/schemas/fee_balance'
fee_group:
type: string
description: 'Fee group indicates the level of fee discounts applied to an account. Use `extended`: `true` to view this field. If the field is missing, the account is not assigned to any fee group. **📖 Related Support Article:** [Automatically applied volume based fee discounts](https://support.deribit.com/hc/en-us/articles/25944746248989-Fees#heading-11)'
currency:
example: ETH
type: string
description: The selected currency
delta_total:
$ref: '#/components/schemas/delta_total'
projected_delta_total:
$ref: '#/components/schemas/projected_delta_total'
deposit_address:
example: 14diAAyXL5UzhPTCKC998ch2GV7DMb7yDi
type: string
description: The deposit address for the account (if available)
email:
example: support@deribit.com
type: string
description: User email (available when parameter `extended` = `true`)
equity:
example: 2.6437733
type: number
description: The account's current equity
futures_pl:
example: 0
type: number
description: Futures profit and Loss
futures_session_rpl:
example: 0
type: number
description: Futures session realized profit and Loss
futures_session_upl:
example: 0
type: number
description: Futures session unrealized profit and Loss
initial_margin:
example: 0.379882
type: number
description: The account's initial margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
maintenance_margin:
example: 0.1334519
type: number
description: The maintenance margin. When cross collateral is enabled, this aggregated value is calculated by converting the sum of each cross collateral currency's value to the given currency, using each cross collateral currency's index.
estimated_liquidation_ratio:
$ref: '#/components/schemas/estimated_liquidation_ratio'
system_name:
example: myname
type: string
description: System generated user nickname (available when parameter `extended` = `true`)
options_delta:
example: 0
type: number
description: Options summary delta
options_gamma:
example: 0
type: number
description: Options summary gamma
options_pl:
example: 0
type: number
description: Options profit and Loss
options_session_rpl:
example: 0
type: number
description: Options session realized profit and Loss
options_session_upl:
example: 0
type: number
description: Options session unrealized profit and Loss
options_theta:
example: 0
type: number
description: Options summary theta
options_value:
example: 0
type: number
description: Options value
options_vega:
example: 0
type: number
description: Options summary vega
options_gamma_map:
type: object
description: Map of options' gammas per index
options_theta_map:
type: object
description: Map of options' thetas per index
options_vega_map:
type: object
description: Map of options' vegas per index
security_keys_enabled:
example: false
type: boolean
description: Whether Security Key authentication is enabled (available when parameter `extended` = `true`)
mmp_enabled:
example: false
type: boolean
description: Whether MMP is enabled (available when parameter `extended` = `true`)
projected_initial_margin:
$ref: '#/components/schemas/projected_initial_margin'
projected_maintenance_margin:
$ref: '#/components/schemas/projected_maintenance_margin'
username:
type: string
example: name
description: Account name (given by user) (available when parameter `extended` = `true`)
type:
enum:
- main
- subaccount
type: string
description: Account type (available when parameter `extended` = `true`)
login_enabled:
type: boolean
example: false
description: Whether account is loginable using email and password (available when parameter `extended` = `true` and account is a subaccount)
id:
type: integer
example: 12354
description: Account id (available when parameter `extended` = `true`)
portfolio_margining_enabled:
type: boolean
example: true
description: '`true` when portfolio margining is enabled for user'
cross_collateral_enabled:
type: boolean
example: true
description: When `true` cross collateral is enabled for user
margin_model:
type: string
example: segregated_sm
description: Name of user's currently enabled margin model
total_equity_usd:
example: 2.6437733
type: number
description: Optional (only for users using cross margin). The account's total equity in all cross collateral currencies, expressed in USD
total_initial_margin_usd:
example: 0.379882
type: number
description: Optional (only for users using cross margin). The account's total initial margin in all cross collateral currencies, expressed in USD
total_maintenance_margin_usd:
example: 0.1334519
type: number
description: Optional (only for users using cross margin). The account's total maintenance margin in all cross collateral currencies, expressed in USD
total_margin_balance_usd:
type: number
example: 2.25
description: Optional (only for users using cross margin). The account's total margin balance in all cross collateral currencies, expressed in USD
total_delta_total_usd:
type: number
example: 1.8
description: Optional (only for users using cross margin). The account's total delta total in all cross collateral currencies, expressed in USD
interuser_transfers_enabled:
type: boolean
example: false
description: '`true` when the inter-user transfers are enabled for user (available when parameter `extended` = `true`)'
referrer_id:
type: string
example: '517.6035'
description: Optional identifier of the referrer (of the affiliation program, and available when parameter `extended` = `true`), which link was used by this account at registration. It coincides with suffix of the affiliation link path after `/reg-`
limits:
$ref: '#/components/schemas/api_limits'
creation_timestamp:
type: integer
example: 1542100802842
description: Time at which the account was created (milliseconds since the Unix epoch; available when parameter `extended` = `true`)
has_non_block_chain_equity:
type: boolean
description: Optional field returned with value `true` when user has non block chain equity that is excluded from proof of reserve calculations
self_trading_reject_mode:
type: string
description: Self trading rejection behavior - `reject_taker` or `cancel_maker` (available when parameter `extended` = `true`)
self_trading_extended_to_subaccounts:
type: string
description: '`true` if self trading rejection behavior is applied to trades between subaccounts (available when parameter `extended` = `true`)'
fees:
type: object
additionalProperties:
type: object
additionalProperties:
type: object
properties:
default:
type: object
properties:
type:
type: string
description: Fee type - `relative` if fee is calculated as a fraction of base instrument fee, `fixed` if fee is calculated solely using user fee
taker:
type: number
description: Taker fee
maker:
type: number
description: Maker fee
required:
- type
- taker
- maker
block_trade:
type: number
description: Block trade fee (if applicable)
required:
- default
description: Fee structure for all currency pairs and instrument types related to the currency (available when parameter `extended` = `true` and user has any discounts). Keys are index names (e.g., "btc_usd"), values are objects with instrument types as keys (option, perpetual, future).
affiliate_promotion_fee:
type: number
example: 0
description: Affiliate promotion fee (if greater than 0.0)
trading_products_details:
type: object
description: Which trading products are enabled or can be overwritten for the account
receive_notifications:
type: boolean
example: false
description: Whether the account receives notifications
is_direct_access_allowed:
type: boolean
example: false
description: Whether Direct Access trading is enabled for the account.
required:
- equity
- currency
- maintenance_margin
- initial_margin
- available_funds
- available_withdrawal_funds
- balance
- session_upl
- session_rpl
- total_pl
- options_pl
- options_session_upl
- options_session_rpl
- options_delta
- options_gamma
- options_vega
- options_value
- options_theta
- futures_pl
- options_gamma_map
- options_theta_map
- options_vega_map
- futures_session_upl
- futures_session_rpl
- projected_maintenance_margin
- delta_total
- projected_delta_total
- security_keys_enabled
- system_name
- username
- email
- type
- id
type: object
required:
- jsonrpc
- result
type: object
label_presentation:
type: string
description: User defined label (presented only when previously set for order by user)
combo_leg_amount:
example: -1
type: integer
description: Size multiplier of a leg. A negative value indicates that the trades on given leg are in opposite direction to the combo trades they originate from
transfer_type:
enum:
- user
- subaccount
type: string
description: 'Type of transfer: `user` - sent to user, `subaccount` - sent to subaccount'
max_scope:
items:
type: string
example:
- account:read
- trade:read
- block_trade:read_write
- wallet:none
type: array
description: 'Describes maximal access for tokens generated with given key. If scope is not provided, its value is set as none.
**📖 Related Article:** [Access Scope](https://docs.deribit.com/articles/access-scope)
'
profit_loss:
type: number
description: Profit and loss in base currency.
reject_post_only:
type: boolean
description: '`true` if order has `reject_post_only` flag (field is present only when `post_only` is `true`)'
block_rfq_hedge_leg:
properties:
amount:
type: integer
description: It represents the requested hedge leg size. For perpetual and inverse futures the amount is in USD units. For options and linear futures it is the underlying base currency coin.
instrument_name:
type: string
example: BTC-PERPETUAL
description: Unique instrument identifier
direction:
type: string
enum:
- buy
- sell
description: 'Direction: `buy`, or `sell`'
price:
type: number
description: Price for a hedge leg
type: object
PrivateUpdateInAddressBookResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: string
example: ok
description: ok
required:
- jsonrpc
- result
type: object
projected_delta_total:
example: 0.1334
type: number
description: The sum of position deltas without positions that will expire during closest expiration
PrivateGetOpenOrdersResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
$ref: '#/components/schemas/order'
required:
- jsonrpc
- result
type: object
continuation_with_null:
example: 429946
type: integer
description: Continuation token for pagination. `NULL` when no continuation.
PrivatePmeSimulateResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
description: Simulation details
required:
- jsonrpc
- result
type: object
PrivateGetAffiliateProgramInfoResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
properties:
is_enabled:
type: boolean
description: Status of affiliate program
number_of_affiliates:
type: number
description: Number of affiliates
link:
type: string
description: Affiliate link
received:
type: object
properties:
eth:
type: number
description: Total payout received in ETH
btc:
type: number
description: Total payout received in BTC
required:
- btc
- eth
required:
- is_enabled
type: object
required:
- jsonrpc
- result
type: object
trigger_fill_condition:
enum:
- first_hit
- complete_fill
- incremental
type: string
description: 'The fill condition of the linked order (Only for linked order types), default: `first_hit`.
- `"first_hit"` - any execution of the primary order will fully cancel/place all secondary orders.
- `"complete_fill"` - a complete execution (meaning the primary order no longer exists) will cancel/place the secondary orders.
- `"incremental"` - any fill of the primary order will cause proportional partial cancellation/placement of the secondary order. The amount that will be subtracted/added to the secondary order will be rounded down to the contract size.
'
PrivateGetMmpConfigResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
type: object
properties:
index_name:
$ref: '#/components/schemas/index_name'
interval:
type: integer
minimum: 0
maximum: 3600
description: 'The duration of the monitoring window in seconds. For example, an interval of 3 implies a 3-second window.
The 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.
This mechanism allows the platform to track activity in short, rolling windows to identify potentially risky trading behavior.
If set to 0, MMP is disabled.
Maximum value: 3600 seconds (1 hour).'
frozen_time:
type: integer
minimum: 0
maximum: 3600
description: 'Time in seconds that MMP remains active after being triggered. Once this frozen period has passed, MMP will automatically reset, allowing new orders to be submitted.
If 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.
Manual reset is also possible during the frozen time period.
Maximum value: 3600 seconds (1 hour).'
id:
type: integer
format: int64
description: Integer identifier for the MMP group (int64). This is the programmatic identifier for the group. Entries without an `mmp_group` name correspond to the orders MMP group (the default group).
mmp_group:
type: string
description: Name of the MMP group. Absent for the orders MMP group (the default group), which has no string name — its entry is identified by the `id` field alone.
quantity_limit:
type: number
description: 'The total traded quantity, measured in units of the base currency (e.g., BTC in BTC-PERPETUAL), within the interval.
This count is direction-agnostic—a buy followed by a sell counts double.
Example: Buy 10 BTC and sell 10 BTC = 20 total quantity.
Applicable to both options and futures.
Note: Once this is set, an initial margin will be reserved even without any open positions. Initial Margin due to quantity_limit = quantity_limit * 0.03
Maximum 4 decimal places.'
delta_limit:
type: number
description: 'The maximum allowable net transaction delta change during the interval.
Expressed in units of base currency.
The 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.
Direction matters: buying +5 delta and selling −5 delta cancels out if within the same interval.
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.
Maximum 4 decimal places.'
vega_limit:
type: number
description: The maximum change in vega exposure allowed within a given interval, measured in absolute terms.
Expressed in USD, representing the change in sensitivity to implied volatility across executed trades.
This parameter is primarily relevant for options traders managing risk in volatile markets.
Similar 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.
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.
Maximum 4 decimal places.
max_quote_quantity:
type: number
description: Maximum Quote Quantity (MQQ). 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 (specified in base currency). MQQ is used for Initial Margin calculation (3% of MQQ is taken as Initial Margin for MMP orders and quotes).
**Important Notes:**
- **Configured per index, enforced per instrument:** MQQ is configured at the index level (an MMP group is linked to an index). However, the limit is enforced separately per order book (instrument) per side. "Per order book" means per instrument (not per expiry). The limit is NOT the sum across all instruments — each instrument has its own separate MQQ enforcement.
- **MQQ limits cumulative size, not order count:** For example, with MQQ of 3 BTC, you can place multiple orders (three orders of 1 BTC each, or one order of 2.5 BTC plus one of 0.5 BTC) as long as the total size per side per instrument does not exceed 3 BTC
- **MQQ is separate per MMP group:** Each MMP group has its own independent MQQ configuration. MQQ limits are enforced separately for each MMP group.
- **MQQ vs Quantity Limit relationship:** You can set MQQ > `quantity_limit`. This allows quotes to be larger than the quantity limit, and enables MMP to trigger on partial fills of quotes. This decouples the MMP reserved margin from the MMP quantity limit.
- **Base currency:** MQQ is specified and enforced in base currency
- **Inverse futures:** Size is calculated as Amount / Price to convert to base currency
- **Inverse future spreads:** Size is calculated as Amount / IndexPrice
- **SM accounts:** MMP orders and quotes on options and option_combos are not supported for SM accounts
- **Rejections:** MQQ is enforced for **MMP-enabled orders and quotes**. Quote entries and MMP-enabled orders (i.e., orders with `mmp=true`) are rejected if their individual size is greater than `max_quote_quantity`, or if accepting them would make the total open MMP size per side per instrument exceed `max_quote_quantity`. Non‑MMP orders are not subject to MQQ and may be larger than `max_quote_quantity`.
- **Precision:** All MMP configuration values support maximum 4 decimal places
- **Latency:** There are no latency benefits from MQQ if you already use mass quotes.
block_rfq:
type: boolean
description: If true, indicates MMP configuration for Block RFQ. Block RFQ MMP settings are completely separate from normal order/quote MMP settings.
trade_count_limit:
type: integer
description: For Block RFQ only. 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.
required:
- index_name
- interval
- frozen_time
required:
- jsonrpc
- result
type: object
address_info_required:
example: true
type: boolean
description: Signalises that addition information regarding the beneficiary of the address is required
time_in_force:
enum:
- good_til_cancelled
- good_til_day
- fill_or_kill
- immediate_or_cancel
type: string
description: 'Order time in force: `"good_til_cancelled"`, `"good_til_day"`, `"fill_or_kill"` or `"immediate_or_cancel"`'
Getunsubscribe200response:
type: object
properties:
jsonrpc:
type: string
example: '2.0'
id:
type: integer
example: 8691
result:
type: array
items:
type: string
x-deribit-type: channel
example:
- deribit_price_index.btc_usd
description: List of channels that were successfully unsubscribed in this request
api_key_enabled:
example: true
type: boolean
description: Informs whether api key is enabled and can be used for authentication
PrivateGetUserTradesHistoryResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
trades:
type: array
items:
$ref: '#/components/schemas/user_trade'
has_more:
type: boolean
required:
- trades
- has_more
required:
- jsonrpc
- result
type: object
PrivateEditResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
order:
$ref: '#/components/schemas/order'
trades:
type: array
items:
$ref: '#/components/schemas/user_trade'
required:
- order
- trades
required:
- jsonrpc
- result
type: object
block_rfq_legs:
items:
properties:
ratio:
type: integer
description: Ratio of amount between legs
instrument_name:
type: string
example: BTC-PERPETUAL
description: Unique instrument identifier
direction:
type: string
enum:
- buy
- sell
description: 'Direction: `buy`, or `sell`'
type: object
type: array
PrivateCreateBlockRfqResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/block_rfq'
required:
- jsonrpc
- result
type: object
PublicListApiKeysResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
$ref: '#/components/schemas/api_key'
required:
- jsonrpc
- result
type: object
PrivateCancelBlockRfqResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/block_rfq'
required:
- jsonrpc
- result
type: object
client_id:
example: IY2D68DS
type: string
description: Client identifier used for authentication
transfer_id:
example: 12
type: integer
description: Id of transfer
beneficiary_last_name:
example: Doe
type: string
description: Last name of the beneficiary (if beneficiary is a person)
PrivateGetBlockTradesResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: array
items:
$ref: '#/components/schemas/block_trade'
required:
- jsonrpc
- result
type: object
currency_with_any_and_list:
oneOf:
- type: string
- items:
type: string
type: array
description: The currency symbol, list of currency symbols or `"any"` for all
label:
type: string
description: User defined label (up to 64 characters)
PrivateSaveAddressBeneficiaryResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
$ref: '#/components/schemas/address_beneficiary_item'
required:
- jsonrpc
- result
type: object
role:
enum:
- maker
- taker
type: string
description: 'Trade role of the user: `maker` or `taker`'
custody_name:
enum:
- copper
- cobo
type: string
description: Custody name
commission:
type: number
description: Commission paid so far (in base currency)
PrivateGetWithdrawalsResponse:
properties:
jsonrpc:
type: string
enum:
- '2.0'
description: The JSON-RPC version (2.0)
id:
type: integer
description: The id that was sent in the request
result:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/withdrawal'
count:
$ref: '#/components/schemas/result_count'
required:
- data
- count
required:
- jsonrpc
- result
type: object
responses:
GetlistCustodyAccounts200response:
content:
application/json:
schema:
$ref: '#/components/schemas/GetlistCustodyAccounts200response'
examples:
jsonObject:
value:
jsonrpc: '2.0'
id: 2515
result:
- name: copper
currency: BTC
client_id: 4KVcFrrzmXBR
external_id: 24f97d44-1d72-4641-8527-811268a0bdd3
balance: 0.5
withdrawals_require_security_key: false
pending_withdrawal_balance: 0.1
auto_deposit: false
response:
value:
jsonrpc: '2.0'
id: 2515
result:
- name: copper
currency: BTC
client_id: 4KVcFrrzmXBR
external_id: 24f97d44-1d72-4641-8527-811268a0bdd3
balance: 0.5
withdrawals_require_security_key: false
pending_withdrawal_balance: 0.1
auto_deposit: false
description: Response example
description: Success response
PrivateSimulatePortfolioResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateSimulatePortfolioResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 2
result:
projected_initial_margin: 37662472.03416069
initial_margin: 37662472.03416069
total_pl: 40419.10179263
additional_reserve: 0
available_withdrawal_funds: 115871741.76065847
options_pl: 921.55562578
delta_total_map:
btc_usd: 68024.519462366
available_subaccount_transfer_funds: 0
projected_delta_total: 69080.932029
projected_maintenance_margin: 30129215.84817124
total_equity_usd: 13075634611389.318
options_gamma: -0.03907
currency: BTC
options_theta: 142583.29246
spot_reserve: 0
total_initial_margin_usd: 3139528603778.822
options_vega: -39322.23046
margin_balance: 153534213.79481918
futures_session_rpl: 1.309136
options_gamma_map:
btc_usd: -0.03907
available_funds: 115871741.76065847
futures_pl: 39497.54616685
cross_collateral_enabled: true
delta_total: 69080.932029
options_session_rpl: 0
total_margin_balance_usd: 12798550648250.61
options_value: -1056.41256672
options_session_upl: -174.67960675
maintenance_margin: 30129215.84817124
total_maintenance_margin_usd: 2511559381417.215
options_vega_map:
btc_usd: -39322.23046
session_rpl: 1.309136
locked_balance: 0
session_upl: -339.16214185
margin_model: cross_pm
portfolio_margining_enabled: true
equity: 150075253.91354558
balance: 150076473.4995114
total_delta_total_usd: 6157454218.3753195
fee_balance: 0
options_delta: 2883.38481
options_theta_map:
btc_usd: 142583.29246
futures_session_upl: -164.48253509
usIn: 1742210019774525
usOut: 1742210019788175
usDiff: 13650
testnet: true
description: Response example
description: Success response
PrivateGetRewardEligibilityResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetRewardEligibilityResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
usdc:
eligibility_status: non_eligible
apr_sma7: 4
usde:
eligibility_status: eligible
apr_sma7: 7
buidl:
eligibility_status: eligible
apr_sma7: 3.943606
steth:
eligibility_status: eligible
apr_sma7: 2.692285714285714
description: Response example
description: Success response
PrivateCancelBlockRfqResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateCancelBlockRfqResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
creation_timestamp: 1729855159611
block_rfq_id: 366
expiration_timestamp: 1729855459611
role: taker
asks: []
bids: []
makers: []
amount: 100000
legs:
- ratio: 1
instrument_name: BTC-1NOV24
direction: sell
- ratio: 1
instrument_name: BTC-PERPETUAL
direction: buy
combo_id: BTC-FS-1NOV24_PERP
state: cancelled
label: example
description: Response example
description: Success response
PrivateVerifyBlockTradeResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateVerifyBlockTradeResponse'
examples:
response:
value:
jsonrpc: '2.0'
result:
signature: 1565172710935.1ESE83qh.g6fbgRd4VWagaJz7xdi2WaV-q-d3J0njoz1jZavuRudZJZif9uH8XdUAx1LHsu0E3e0ZG_xe1UPYlwo41xRVrkWU6OMgygDRafUkEmBuk9iLqjc9rh4
description: Response example
description: Success response
PrivateSubscribeResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateSubscribeResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 4235
result:
- deribit_price_index.btc_usd
description: Response example
description: Success response
PrivateGetUserLocksResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetUserLocksResponse'
examples:
response:
value:
id: 74
result:
- message: locked in one currency
locked: true
currency: BTC
- locked: false
currency: ETH
- locked: false
currency: USDC
- locked: false
currency: SOL
description: Response example
description: Success response
PrivateCancelAllResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateCancelAllResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 47
result: 4
description: Response example
description: Success response
PrivateGetWithdrawalsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetWithdrawalsResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 2745
result:
count: 1
data:
- address: 2NBqqD5GRJ8wHy1PYyCXTe9ke5226FhavBz
amount: 0.5
confirmed_timestamp: null
created_timestamp: 1550571443070
currency: BTC
fee: 0.0001
id: 1
priority: 0.15
state: unconfirmed
transaction_id: null
updated_timestamp: 1550571443070
description: Response example
description: Success response
PrivateCancelBlockRfqTriggerResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateCancelBlockRfqTriggerResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
creation_timestamp: 1730798381504
expiration_timestamp: 1730798481504
block_rfq_id: 123
role: taker
state: open
taker_rating: 1-2
makers:
- maker1
- maker2
amount: 100
min_trade_amount: 10
legs:
- instrument_name: BTC-8NOV24-70000-C
ratio: 1
- instrument_name: BTC-8NOV24-72000-C
ratio: 1
combo_id: BTC-CS-8NOV24-70000_72000
label: My Block RFQ
app_name: Example Application
mark_price: 0.025
disclosed: false
trade_trigger:
state: cancelled
price: 0.01
direction: buy
cancel_reason: User cancelled
description: Response example
description: Success response
PrivateSimulateBlockTradeResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateSimulateBlockTradeResponse'
examples:
response:
value:
jsonrpc: '2.0'
result: true
description: Response example
description: Success response
PrivateGetBlockRfqUserInfoResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetBlockRfqUserInfoResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
parent:
identity: MAKER1
is_maker: true
users:
- user_id: 1
taker_rating: 98.5
identity: TAKER1
is_maker: false
- user_id: 2
taker_rating: 97
description: Response example
description: Success response
PublicGetAnnouncementsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PublicGetAnnouncementsResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 3022
result:
- title: Example announcement
publication_timestamp: 1550058362418
important: false
id: 1550058362418
body: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
description: Response example
description: Success response
PrivateUpdateInAddressBookResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateUpdateInAddressBookResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 42
result: ok
description: Response example
description: Success response
PrivateEditBlockRfqQuoteResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateEditBlockRfqQuoteResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
label: example_quote
amount: 20000
direction: buy
price: 74600
legs:
- direction: buy
price: 74600
instrument_name: BTC-15NOV24
ratio: 1
creation_timestamp: 1731076586371
block_rfq_id: 3
replaced: true
filled_amount: 0
last_update_timestamp: 1731076638591
hedge:
amount: 10
direction: buy
price: 70000
instrument_name: BTC-PERPETUAL
block_rfq_quote_id: 8
quote_state: open
description: Response example
description: Success response
PrivateAddressBookResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateAddressBookResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 31
result:
- waiting_timestamp: 1720252232860
creation_timestamp: 1719993033041
requires_confirmation_change: false
personal: true
info_required: false
beneficiary_first_name: John
beneficiary_last_name: Doe
beneficiary_address: NL, Amsterdam, Street, 1
requires_confirmation: true
currency: BTC
agreed: true
address: 2NBqqD5GRJ8wHy1PYyCXTe9ke5226FhavBz
type: withdrawal
status: waiting
label: Main Address
- waiting_timestamp: 1720252232760
creation_timestamp: 1719993032041
requires_confirmation_change: false
personal: true
info_required: false
beneficiary_company_name: MyCompany
beneficiary_address: NL, Haarlem, Street, 5
requires_confirmation: false
currency: BTC
agreed: true
address: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj
type: withdrawal
status: waiting
label: One More Address
description: Response example
description: Success response
PrivateGetBrokerTradesResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetBrokerTradesResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
history:
- id: BLOCK-7
timestamp: 1747239767111
trades:
- timestamp: 1747239767111
amount: 100000
direction: buy
price: 102079.75
index_price: 102079.75
instrument_name: BTC-PERPETUAL
trade_seq: 7
mark_price: 102079.75
tick_direction: 1
contracts: 10000
trade_id: '7'
block_trade_id: BLOCK-7
block_trade_leg_count: 1
maker:
user_id: '****009'
client_id: 2
client_name: Test Client 2
client_link_name: Test Client 2 l
client_link_id: 2
taker:
user_id: '****008'
client_id: 1
client_name: Test Client 1
client_link_name: Test Client 1 l
client_link_id: 1
next_start_id: 6
description: Response example
description: Success response
PrivateGetSubaccountsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetSubaccountsResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 4947
result:
- email: user_AAA@email.com
id: 2
is_password: true
margin_model: segregated_sm
login_enabled: true
portfolio:
eth:
additional_reserve: 0
spot_reserve: 0
available_funds: 5
available_withdrawal_funds: 5
balance: 5
currency: eth
equity: 5
initial_margin: 0
maintenance_margin: 0
margin_balance: 5
btc:
additional_reserve: 0
spot_reserve: 0
available_funds: 5.000413075
available_withdrawal_funds: 5.000413075
balance: 5.000593987
currency: btc
equity: 5.000571846
initial_margin: 0.000158771
maintenance_margin: 0.000115715
margin_balance: 5.000571846
receive_notifications: false
system_name: user_1
security_keys_enabled: false
security_keys_assignments: []
type: main
username: user_1
- email: user_AAA@gmail.com
id: 7
is_password: true
margin_model: cross_pm
login_enabled: false
portfolio:
eth:
additional_reserve: 0
spot_reserve: 0
available_funds: 0
available_withdrawal_funds: 0
balance: 0
currency: eth
equity: 0
initial_margin: 0
maintenance_margin: 0
margin_balance: 0
btc:
additional_reserve: 0
spot_reserve: 0
available_funds: 0
available_withdrawal_funds: 0
balance: 0
currency: btc
equity: 0
initial_margin: 0
maintenance_margin: 0
margin_balance: 0
receive_notifications: false
system_name: user_1_1
security_keys_enabled: false
security_keys_assignments: []
type: subaccount
username: user_1_1
description: Response example
description: Success response
PrivateAddBlockRfqQuoteResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateAddBlockRfqQuoteResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
label: example_quote
amount: 10000
direction: buy
price: 69600
legs:
- direction: buy
price: 69600
instrument_name: BTC-15NOV24
ratio: 1
creation_timestamp: 1731076586371
block_rfq_id: 3
replaced: false
filled_amount: 0
hedge:
amount: 10
direction: buy
price: 70000
instrument_name: BTC-PERPETUAL
last_update_timestamp: 1731076586371
block_rfq_quote_id: 8
quote_state: open
description: Response example
description: Success response
PrivateDepositAddressResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateDepositAddressResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 3461
result:
address: 2N8udZGBc1hLRCFsU9kGwMPpmYUwMFTuCwB
creation_timestamp: 1550575165170
currency: BTC
type: deposit
description: Response example
description: Success response
PrivateGetBlockRfqsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetBlockRfqsResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
continuation: null
block_rfqs:
- state: open
amount: 40000
role: maker
combo_id: BTC-15NOV24
legs:
- direction: sell
instrument_name: BTC-15NOV24
ratio: 1
creation_timestamp: 1731062457741
block_rfq_id: 508
expiration_timestamp: 1731062757741
hedge:
amount: 10
direction: buy
price: 70000
instrument_name: BTC-PERPETUAL
taker_rating: 1-2
description: Response example
description: Success response
PrivateChangeMarginModelResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateChangeMarginModelResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
- old_state:
maintenance_margin_rate: 0
initial_margin_rate: 0
available_balance: 0
new_state:
maintenance_margin_rate: 0
initial_margin_rate: 0
available_balance: 0
currency: eth
- old_state:
maintenance_margin_rate: 0.02862727
initial_margin_rate: 0.45407615
available_balance: 0.553590509
new_state:
maintenance_margin_rate: 0.02710204
initial_margin_rate: 0.03252245
available_balance: 0.98106428
currency: btc
description: Response example
description: Success response
PrivateAcceptBlockRfqResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateAcceptBlockRfqResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
block_trades:
- id: BLOCK-423
timestamp: 1730798381504
trades:
- timestamp: 1730798381502
state: filled
fee: 1.5e-07
amount: 100
direction: buy
price: 69696.8
index_price: 70000
profit_loss: 0
instrument_name: BTC-8NOV24-70000-C
trade_seq: 113
mark_price: 0.03
order_id: '2899'
matching_id: null
tick_direction: 2
combo_id: BTC-CS-8NOV24-70000_72000
block_rfq_id: 1
api: true
contracts: 100
post_only: false
block_trade_id: BLOCK-423
trade_id: '771'
order_type: limit
mmp: false
risk_reducing: false
reduce_only: false
block_trade_leg_count: 2
self_trade: false
fee_currency: BTC
liquidity: T
- timestamp: 1730798381502
state: filled
fee: 1.5e-07
amount: 100
direction: sell
price: 69677.4
index_price: 70000
profit_loss: 0
instrument_name: BTC-8NOV24-72000-C
trade_seq: 113
mark_price: 0.02
order_id: '2900'
matching_id: null
tick_direction: 2
combo_id: BTC-CS-8NOV24-70000_72000
block_rfq_id: 1
api: true
contracts: 100
post_only: false
block_trade_id: BLOCK-423
trade_id: '772'
order_type: limit
mmp: false
risk_reducing: false
reduce_only: false
block_trade_leg_count: 2
self_trade: false
fee_currency: BTC
liquidity: T
description: Response example
description: Success response
PrivateAccountSummariesResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateAccountSummariesResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 2515
result:
id: 10
email: user@example.com
system_name: user
username: user
block_rfq_self_match_prevention: true
creation_timestamp: 1687352432143
type: main
referrer_id: null
login_enabled: false
security_keys_enabled: false
mmp_enabled: false
interuser_transfers_enabled: false
self_trading_reject_mode: cancel_maker
self_trading_extended_to_subaccounts: false
summaries:
- currency: BTC
delta_total_map:
btc_usd: 31.594357699
margin_balance: 302.62729214
futures_session_rpl: -0.03258105
options_session_rpl: 0
estimated_liquidation_ratio_map:
btc_usd: 0.1009872222854525
session_upl: 0.05271555
estimated_liquidation_ratio: 0.10098722
options_gamma_map:
btc_usd: 1.0e-05
options_vega: 0.0858
options_value: -0.0086
available_withdrawal_funds: 301.35396172
projected_delta_total: 32.613978
maintenance_margin: 0.8857841
total_pl: -0.33084225
limits:
limits_per_currency: false
non_matching_engine:
burst: 1500
rate: 1000
matching_engine:
trading:
total:
burst: 250
rate: 200
spot:
burst: 250
rate: 200
quotes:
burst: 500
rate: 500
max_quotes:
burst: 10
rate: 10
guaranteed_quotes:
burst: 2
rate: 2
cancel_all:
burst: 250
rate: 200
projected_maintenance_margin: 0.7543841
available_funds: 301.38059622
options_delta: -1.01962
balance: 302.60065765
equity: 302.61869214
futures_session_upl: 0.05921555
fee_balance: 0
options_session_upl: -0.0065
projected_initial_margin: 1.01529592
options_theta: 15.97071
portfolio_margining_enabled: false
cross_collateral_enabled: false
margin_model: segregated_sm
options_vega_map:
btc_usd: 0.0858
futures_pl: -0.32434225
options_pl: -0.0065
initial_margin: 1.24669592
spot_reserve: 0
delta_total: 31.602958
options_gamma: 1.0e-05
session_rpl: -0.03258105
fees:
btc_usd:
option:
default:
type: relative
taker: 0.625
maker: 0.625
block_trade: 0.625
perpetual:
default:
type: fixed
taker: 0.00035000000000000005
maker: -0.0001
block_trade: 0.3
future:
default:
type: fixed
taker: 0.00035000000000000005
maker: -0.0001
block_trade: 0.3
- currency: ETH
futures_session_upl: 0
portfolio_margining_enabled: false
available_funds: 99.999598
initial_margin: 0.000402
futures_session_rpl: 0
options_gamma: 0
balance: 100
options_vega_map: {}
session_upl: 0
fee_balance: 0
delta_total_map:
eth_usd: 0
projected_maintenance_margin: 0
options_gamma_map: {}
projected_delta_total: 0
margin_model: segregated_sm
futures_pl: 0
options_theta: 0
limits:
limits_per_currency: false
non_matching_engine:
burst: 1500
rate: 1000
matching_engine:
trading:
total:
burst: 250
rate: 200
spot:
burst: 250
rate: 200
quotes:
burst: 500
rate: 500
max_quotes:
burst: 10
rate: 10
guaranteed_quotes:
burst: 2
rate: 2
cancel_all:
burst: 250
rate: 200
options_delta: 0
equity: 100
projected_initial_margin: 0.0002
estimated_liquidation_ratio_map:
eth_usd: 0
spot_reserve: 0.0002
cross_collateral_enabled: false
available_withdrawal_funds: 99.999597
delta_total: 0
options_session_upl: 0
maintenance_margin: 0
options_theta_map: {}
additional_reserve: 0
estimated_liquidation_ratio: 0
options_pl: 0
options_session_rpl: 0
options_vega: 0
total_pl: 0
session_rpl: 0
options_value: 0
margin_balance: 100
fees:
eth_usd:
option:
default:
type: relative
taker: 0.5
maker: 0.5
block_trade: 0.5
perpetual:
default:
type: fixed
taker: 0.00025
maker: -5.0e-05
block_trade: 0.2
future:
default:
type: fixed
taker: 0.00025
maker: -5.0e-05
block_trade: 0.2
description: Response example
description: Success response
PrivateGetSubaccountsDetailsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetSubaccountsDetailsResponse'
examples:
response:
value:
jsonrpc: '2.0'
result:
- uid: 3
positions:
- total_profit_loss: -0.000118183
size_currency: 0.004152776
size: 200
settlement_price: 48150.36
realized_profit_loss: -8.79e-07
realized_funding: -8.8e-07
open_orders_margin: 0
mark_price: 48160.55
maintenance_margin: 8.9286e-05
leverage: 34
kind: future
instrument_name: BTC-PERPETUAL
initial_margin: 0.000122508
index_price: 47897.12
floating_profit_loss: -3.451e-05
estimated_liquidation_price: 2.33
direction: buy
delta: 0.004152776
average_price: 49571.3
- uid: 10
positions:
- total_profit_loss: 3.7333e-05
size_currency: -0.001308984
size: -60
settlement_price: 47886.98
realized_profit_loss: 0
open_orders_margin: 0
mark_price: 45837.07
maintenance_margin: 2.8143e-05
leverage: 34
kind: future
instrument_name: BTC-3SEP21
initial_margin: 3.8615e-05
index_price: 47897.12
floating_profit_loss: 3.7333e-05
estimated_liquidation_price: null
direction: sell
delta: -0.001308984
average_price: 47182.76
description: Response example
description: Success response
PrivateMassQuoteResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateMassQuoteResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 7859
result:
errors:
- instrument_name: BTC-PERPETUAL
side: bid
error:
message: price_too_high 43666.4288
code: 10007
orders:
- is_liquidation: false
reduce_only: false
risk_reducing: false
last_update_timestamp: 1703162550180
creation_timestamp: 1703162478689
filled_amount: 0
average_price: 0
order_type: limit
order_state: open
quote: true
quote_set_id: options
quote_id: '1'
post_only: false
replaced: false
mmp_group: default
web: false
mmp: true
api: false
instrument_name: BTC-22DEC23-41600-C
order_id: '6653852'
max_show: 1
time_in_force: good_til_cancelled
price: 0.04
direction: buy
amount: 1
label: ''
- is_liquidation: false
reduce_only: false
risk_reducing: false
last_update_timestamp: 1703162550180
creation_timestamp: 1703162478689
filled_amount: 0
average_price: 0
order_type: limit
order_state: open
quote: true
quote_set_id: options
quote_id: '1'
post_only: false
replaced: false
mmp_group: default
web: false
mmp: true
api: false
instrument_name: BTC-22DEC23-41600-C
order_id: '6653853'
max_show: 1
time_in_force: good_til_cancelled
price: 0.05
direction: sell
amount: 1
label: ''
- is_liquidation: false
reduce_only: false
risk_reducing: false
last_update_timestamp: 1703162550180
creation_timestamp: 1703162478689
filled_amount: 0
average_price: 0
order_type: limit
order_state: open
quote: true
quote_set_id: futures
quote_id: '1'
post_only: false
replaced: false
mmp_group: default
web: false
mmp: true
api: false
instrument_name: BTC-PERPETUAL
order_id: '6653855'
max_show: 10
time_in_force: good_til_cancelled
price: 43800
direction: sell
amount: 10
label: ''
trades: []
description: Response example
description: Success response
PrivateGetMmpConfigResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetMmpConfigResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 7859
result:
- index_name: btc_usd
mmp_group: MassQuoteBot7
interval: 60
frozen_time: 0
quantity_limit: 0.5
delta_limit: 0.3
vega_limit: 0.1
max_quote_quantity: 0.4
description: Response example
description: Success response
PrivateGetOrderMarginByIdsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetOrderMarginByIdsResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 5625
result:
- order_id: ETH-349278
initial_margin: 0.00091156
initial_margin_currency: ETH
- order_id: ETH-349279
initial_margin: 0
initial_margin_currency: ETH
- order_id: ETH-349280
initial_margin: 0
initial_margin_currency: ETH
description: Response example
description: Success response
PrivateGetBlockTradesResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetBlockTradesResponse'
examples:
response:
value:
jsonrpc: '2.0'
result:
- trades:
- trade_seq: 4
trade_id: '92462'
timestamp: 1565093070164
tick_direction: 2
state: filled
price: 0.0151
order_type: limit
order_id: '343121'
matching_id: null
liquidity: M
iv: 72.38
instrument_name: BTC-9AUG19-11500-P
index_price: 11758.65
fee_currency: BTC
fee: 0
direction: sell
block_trade_id: '66'
amount: 2.3
- trade_seq: 41
trade_id: '92460'
timestamp: 1565093070164
tick_direction: 2
state: filled
price: 11753
order_type: limit
order_id: '343117'
matching_id: null
liquidity: M
instrument_name: BTC-9AUG19
index_price: 11758.65
fee_currency: BTC
fee: 0
direction: sell
block_trade_id: '66'
amount: 50
timestamp: 1565093070165
id: '66'
description: Response example
description: Success response
PrivateSettlementResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateSettlementResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 2192
result:
settlements:
- type: settlement
timestamp: 1550475692526
session_profit_loss: 0.038358299
profit_loss: -0.001783937
position: -66
mark_price: 121.67
instrument_name: ETH-22FEB19
index_price: 119.8
continuation: xY7T6cusbMBNpH9SNmKb94jXSBxUPojJEdCPL4YociHBUgAhWQvEP
description: Response example
description: Success response
PrivateGetBlockTradeResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetBlockTradeResponse'
examples:
response:
value:
jsonrpc: '2.0'
result:
trades:
- trade_seq: 37
trade_id: '92437'
timestamp: 1565089523719
tick_direction: 3
state: filled
price: 0.0001
order_type: limit
order_id: '343062'
matching_id: null
liquidity: T
iv: 0
instrument_name: BTC-9AUG19-10250-C
index_price: 11738
fee_currency: BTC
fee: 0.00025
direction: sell
block_trade_id: '61'
amount: 10
- trade_seq: 25350
trade_id: '92435'
timestamp: 1565089523719
tick_direction: 3
state: filled
price: 11590
order_type: limit
order_id: '343058'
matching_id: null
liquidity: T
instrument_name: BTC-PERPETUAL
index_price: 11737.98
fee_currency: BTC
fee: 1.64e-06
direction: buy
block_trade_id: '61'
amount: 190
timestamp: 1565089523720
id: '61'
description: Response example
description: Success response
PrivateGetBlockRfqMakersResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetBlockRfqMakersResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
- MAKER1
- MAKER2
- MAKER3
description: Response example
description: Success response
PrivateGetMmpStatusResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetMmpStatusResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 7851
result:
- index_name: btc_usd
frozen_until: 1744275841861
mmp_group: MassQuoteBot7
description: Response example
description: Success response
PrivateGetEmailLanguageResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetEmailLanguageResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 9265
result: en
description: Response example
description: Success response
PrivateDeleteAddressBeneficiaryResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateDeleteAddressBeneficiaryResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 42
result: ok
description: Response example
description: Success response
PrivateGetOrderHistoryResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetOrderHistoryResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 9305
result:
- time_in_force: good_til_cancelled
reduce_only: false
price: 3886.5
post_only: false
order_type: limit
order_state: filled
order_id: '146475'
max_show: 40
last_update_timestamp: 1550661808761
label: ''
is_rebalance: false
is_liquidation: false
instrument_name: BTC-PERPETUAL
filled_amount: 40
direction: buy
creation_timestamp: 1550661808761
average_price: 3659.8
api: true
amount: 40
description: Response example
description: Success response
PrivateGetBlockRfqQuotesResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetBlockRfqQuotesResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
label: example_quote
amount: 20000
direction: buy
price: 74600
legs:
- direction: buy
price: 74600
instrument_name: BTC-15NOV24
ratio: 1
creation_timestamp: 1731076586371
block_rfq_id: 1
replaced: false
filled_amount: 0
last_update_timestamp: 1731076638591
hedge:
amount: 10
direction: buy
price: 70000
instrument_name: BTC-PERPETUAL
block_rfq_quote_id: 8
quote_state: open
execution_instruction: all_or_none
description: Response example
description: Success response
PrivateGetMarginsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetMarginsResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 7
result:
sell: 0
min_price: 3684.8
max_price: 3759.24
buy: 0.0219949
description: Response example
description: Success response
PrivateListAddressBeneficiariesResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateListAddressBeneficiariesResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 42
result:
data:
- currency: BTC
address: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj
user_id: 1026
agreed: true
personal: false
unhosted: false
beneficiary_vasp_name: Money's Gone
beneficiary_vasp_did: did:example:123456789abcdefghi
beneficiary_vasp_website: https://example.com
beneficiary_first_name: John
beneficiary_last_name: Doe
beneficiary_company_name: Example Corp
beneficiary_address: NL, Amsterdam, Street, 1
created: 1536569522277
updated: 1536569522277
continuation: xY7T6cutS3t2B9YtaDkE6TS379oKnkzTvmEDUnEUP2Msa9xKWNNaT
count: 1
description: Response example
description: Success response
PrivateSaveAddressBeneficiaryResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateSaveAddressBeneficiaryResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 42
result:
currency: BTC
address: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj
user_id: 1016
agreed: true
personal: false
unhosted: false
beneficiary_vasp_name: Money's Gone
beneficiary_vasp_did: did:example:123456789abcdefghi
beneficiary_vasp_website: https://example.com
beneficiary_first_name: John
beneficiary_last_name: Doe
beneficiary_company_name: Example Corp
beneficiary_address: NL, Amsterdam, Street, 1
created: 1536569522277
updated: 1536569522277
description: Response example
description: Success response
PrivateSubmitTransferResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateSubmitTransferResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 9187
result:
amount: 0.2
created_timestamp: 1550579457727
currency: BTC
direction: payment
id: 2
other_side: 2MzyQc5Tkik61kJbEpJV5D5H9VfWHZK9Sgy
state: cancelled
type: user
updated_timestamp: 1550579457727
description: Response example
description: Success response
Getunsubscribe200response:
content:
application/json:
schema:
$ref: '#/components/schemas/Getunsubscribe200response'
examples:
jsonObject:
value:
jsonrpc: '2.0'
id: 3370
result:
- deribit_price_index.btc_usd
response:
value:
jsonrpc: '2.0'
id: 3370
result:
- deribit_price_index.btc_usd
description: Response example
description: Successfully unsubscribed from channels
OkResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/OkResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1569
result: ok
description: Response example
description: Success response
PrivateCreateComboResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateCreateComboResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 6
result:
state_timestamp: 1650960943922
state: active
legs:
- instrument_name: BTC-29APR22-37500-C
amount: 1
- instrument_name: BTC-29APR22-37500-P
amount: -1
id: BTC-REV-29APR22-37500
instrument_id: 52
creation_timestamp: 1650960943000
description: Response example
description: Success response
PrivateGetLegPricesResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetLegPricesResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
legs:
- ratio: 1
instrument_name: BTC-1NOV24-67000-C
price: 0.6001
direction: buy
- ratio: 1
instrument_name: BTC-1NOV24-66000-C
price: 0.0001
direction: sell
amount: 2
description: Response example
description: Success response
deposit:
content:
application/json:
schema:
$ref: '#/components/schemas/deposit'
examples:
jsonObject:
value:
jsonrpc: '2.0'
id: 1
result:
currency: BTC
user_id: 123
address: 2NBqqD5GRJ8wHy1PYyCXTe9ke5226FhavBz
amount: 0.4
state: completed
transaction_id: 230669110fdaf0a0dbcdc079b6b8b43d5af29cc73683835b9bc6b3406c065fda
source_address: A3BqqD5GRJ8wHy1PYyCXTe9ke5226Fha123
received_timestamp: 1550574558607
updated_timestamp: 1550574558807
note: Note
clearance_state: in_progress
response:
value:
jsonrpc: '2.0'
id: 1
result:
currency: BTC
user_id: 123
address: 2NBqqD5GRJ8wHy1PYyCXTe9ke5226FhavBz
amount: 0.4
state: completed
transaction_id: 230669110fdaf0a0dbcdc079b6b8b43d5af29cc73683835b9bc6b3406c065fda
source_address: A3BqqD5GRJ8wHy1PYyCXTe9ke5226Fha123
received_timestamp: 1550574558607
updated_timestamp: 1550574558807
note: Note
clearance_state: in_progress
description: Response example
description: Success response
PrivateGetPositionResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetPositionResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 404
result:
average_price: 0
delta: 0
direction: buy
estimated_liquidation_price: 0
floating_profit_loss: 0
index_price: 3555.86
initial_margin: 0
instrument_name: BTC-PERPETUAL
interest_value: 1.7362511643080387
leverage: 100
kind: future
maintenance_margin: 0
mark_price: 3556.62
open_orders_margin: 0.000165889
realized_profit_loss: 0
settlement_price: 3555.44
size: 0
size_currency: 0
total_profit_loss: 0
description: Response example
description: Success response
PrivateGetUserTradesByOrderResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetUserTradesByOrderResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 3466
result:
- trade_seq: 1966042
trade_id: ETH-2696068
timestamp: 1590480712800
tick_direction: 3
state: filled
reduce_only: false
price: 203.8
post_only: false
order_type: market
order_id: ETH-584830574
matching_id: null
mark_price: 203.78
liquidity: T
instrument_name: ETH-PERPETUAL
index_price: 203.89
fee_currency: ETH
fee: 0.00036801
direction: buy
amount: 100
description: Response example
description: Success response
PrivateGetPositionsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetPositionsResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 2236
result:
- average_price: 7440.18
delta: 0.006687487
direction: buy
estimated_liquidation_price: 1.74
floating_profit_loss: 0
index_price: 7466.79
initial_margin: 0.000197283
instrument_name: BTC-PERPETUAL
interest_value: 1.7362511643080387
kind: future
leverage: 34
maintenance_margin: 0.000143783
mark_price: 7476.65
open_orders_margin: 0.000197288
realized_funding: -1e-8
realized_profit_loss: -9e-9
settlement_price: 7476.65
size: 50
size_currency: 0.006687487
total_profit_loss: 3.2781e-05
description: Response example
description: Success response
PrivateGetBrokerTradeRequestsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetBrokerTradeRequestsResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 7
result:
- timestamp: 1742824052547
state: activated
trades:
- amount: 100000
direction: buy
price: 87516.83
instrument_name: BTC-PERPETUAL
maker:
state: initial
client_id: 1
user_id: '***009'
client_name: Test Client
client_link_name: Test Client 2
client_link_id: 2
taker:
state: initial
client_id: 1
user_id: '***008'
client_name: Test Client
client_link_name: Test Client 1
client_link_id: 1
nonce: 3WqPoAsmde9aXCSEBVUmi2XxGkgA
- timestamp: 1742824052538
state: activated
trades:
- amount: 100000
direction: buy
price: 87516.83
instrument_name: BTC-PERPETUAL
maker:
state: approved
client_id: 1
user_id: '***009'
client_name: Test Client
client_link_name: Test Client 2
client_link_id: 2
taker:
state: initial
client_id: 1
user_id: '***008'
client_name: Test Client
client_link_name: Test Client 1
client_link_id: 1
nonce: 29rKkuD3NSBPet4njrpNWEuHBm9s
description: Response example
description: Success response
PrivateEditResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateEditResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 9
result:
trades: []
order:
web: false
time_in_force: good_til_cancelled
replaced: true
reduce_only: false
price: 50111
post_only: false
order_type: limit
order_state: open
order_id: '94166'
max_show: 150
last_update_timestamp: 1616155550773
label: i_love_deribit
is_rebalance: false
is_liquidation: false
instrument_name: BTC-PERPETUAL
filled_amount: 0
direction: buy
creation_timestamp: 1616155547764
average_price: 0
api: true
amount: 150
description: Response example
description: Success response
PrivateCancelQuotesResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateCancelQuotesResponse'
description: Success response
PrivatePmeSimulateResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivatePmeSimulateResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 2255
result:
model_params:
currency_pair:
btc_usd:
extended_table_factor: 1
m_inc: 5.0e-05
min_volatility_for_shock_up: 0.5
max_delta_shock: 0.1
delta_total_liq_shock_threshold: 20000000
volatility_range_down: 0.25
volatility_range_up: 0.5
long_term_vega_power: 0.13
short_term_vega_power: 0.3
price_range: 0.16
currency:
usd:
max_offsetable_pnl: 0
annualised_move_risk: 0.1
extended_dampener: 25000
min_annualised_move: 0.01
haircut: 0
equity_side_impact: none
pnl_offset: 0
correlation_set: false
btc:
max_offsetable_pnl: 0
annualised_move_risk: 0.075
extended_dampener: 100000
min_annualised_move: 0.01
haircut: 0
equity_side_impact: both
pnl_offset: 0
correlation_set: false
general:
mm_factor: 0.8
buckets_count: 4
vol_scenarios_count: 3
timestamp: 1718619740501
aggregated_risk_vectors:
btc_btc:
standard:
- -0.05968587238095239
- -0.05968587238095239
- -0.05968587238095239
- -0.04272965863636364
- -0.04272965863636364
- -0.04272965863636364
- -0.02724789826086957
- -0.02724789826086957
- -0.02724789826086957
- -0.013056284583333334
- -0.013056284583333334
- -0.013056284583333334
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
extended:
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
initial_risk_vectors:
BTC-PERPETUAL:
standard:
- -0.05991206933333334
- -0.05991206933333334
- -0.05991206933333334
- -0.04289159509090909
- -0.04289159509090909
- -0.04289159509090909
- -0.027351162086956524
- -0.027351162086956524
- -0.027351162086956524
- -0.013105765166666668
- -0.013105765166666668
- -0.013105765166666668
- 0
- 0
- 0
- 0.012097629384615385
- 0.012097629384615385
- 0.012097629384615385
- 0.023299138074074074
- 0.023299138074074074
- 0.023299138074074074
- 0.033700538999999995
- 0.033700538999999995
- 0.033700538999999995
- 0.043384601931034494
- 0.043384601931034494
- 0.043384601931034494
extended:
- -0.05991206933333334
- -0.05991206933333334
- 0.04338460193103449
- 0.04338460193103449
- 0.04338460193103449
- 0.04338460193103449
- 0.04338460193103449
- 0.04338460193103449
BTC-28JUN24:
standard:
- 0.0002261969523809524
- 0.0002261969523809524
- 0.0002261969523809524
- 0.00016193645454545456
- 0.00016193645454545456
- 0.00016193645454545456
- 0.00010326382608695652
- 0.00010326382608695652
- 0.00010326382608695652
- 4.948058333333334e-05
- 4.948058333333334e-05
- 4.948058333333334e-05
- 0
- 0
- 0
- -4.567438461538462e-05
- -4.567438461538462e-05
- -4.567438461538462e-05
- -8.796548148148148e-05
- -8.796548148148148e-05
- -8.796548148148148e-05
- -0.0001272357857142857
- -0.0001272357857142857
- -0.0001272357857142857
- -0.00016379779310344832
- -0.00016379779310344832
- -0.00016379779310344832
extended:
- 0.0002261969523809524
- 0.0002261969523809524
- -0.0001637977931034483
- -0.0001637977931034483
- -0.0001637977931034483
- -0.0001637977931034483
- -0.0001637977931034483
- -0.0001637977931034483
margins:
btc:
initial_margin_details:
risk_matrix_margin_details:
delta_shock: 0
roll_shock: 0.00315725898
worst_case_bucket:
bucket: 1
side: left
source: standard
index: 1
worst_case: 0.05968587238095239
correlation_contingency: 0
risk_matrix_margin: 0.06284313098
spot_margin: 0
mmp_margin: 0.06
open_orders_margin: 1.8212e-05
initial_margin: 0.122861343
maintenance_margin: 0.050274504784
portfolio:
currency: {}
position:
BTC-PERPETUAL: 0.314538364
BTC-28JUN24: -0.001187534
index_price:
btc_usd: 65666.19
ticker:
BTC-PERPETUAL:
mark_price: 65910.57
index_price: 65666.19
BTC-28JUN24:
mark_price: 67371.75
index_price: 65666.19
description: Response example
description: Success response
PrivateAddToAddressBookResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateAddToAddressBookResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 42
result:
address: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj
creation_timestamp: 1536569522277
currency: BTC
type: withdrawal
label: Main address
beneficiary_vasp_name: Money`s Gone
beneficiary_vasp_did: did:example:123456789abcdefghi
beneficiary_first_name: John
beneficiary_last_name: Doe
beneficiary_address: NL, Amsterdam, Street, 1
agreed: true
personal: false
info_required: false
description: Response example
description: Success response
PrivateCancelAllBlockRfqQuotesResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateCancelAllBlockRfqQuotesResponse'
examples:
response:
value:
jsonrpc: '2.0'
result: 1
description: Response example
description: Success response
PrivateGetOrderStateResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetOrderStateResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 4316
result:
time_in_force: good_til_cancelled
reduce_only: false
price: 118.94
post_only: false
order_type: limit
order_state: filled
order_id: ETH-331562
max_show: 37
last_update_timestamp: 1550219810944
label: ''
is_rebalance: false
is_liquidation: false
instrument_name: ETH-PERPETUAL
filled_amount: 37
direction: sell
creation_timestamp: 1550219749176
average_price: 118.94
api: false
amount: 37
description: Response example
description: Success response
PrivateSetMmpConfigResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateSetMmpConfigResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 7859
method: private/set_mmp_config
result:
index_name: btc_usd
mmp_group: MassQuoteBot7
interval: 60
frozen_time: 0
quantity_limit: 3
max_quote_quantity: 2.5
description: Response example
description: Success response
PrivateGetAffiliateProgramInfoResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetAffiliateProgramInfoResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 2
result:
received:
eth: 4.0e-05
btc: 1.0e-06
number_of_affiliates: 1
link: https://www.deribit.com/reg-xxx.zxyq
is_enabled: true
description: Response example
description: Success response
PrivateGetOpenOrdersResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetOpenOrdersResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1953
result:
- time_in_force: good_til_cancelled
reduce_only: false
price: 0.0028
post_only: false
order_type: limit
order_state: open
order_id: '146062'
max_show: 10
last_update_timestamp: 1550050597036
label: fooBar
is_rebalance: false
is_liquidation: false
instrument_name: BTC-15FEB19-3250-P
filled_amount: 0
direction: buy
creation_timestamp: 1550050597036
average_price: 0
api: true
amount: 10
description: Response example
description: Success response
PrivateCreateSubaccountResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateCreateSubaccountResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 5414
result:
email: user_AAA@email.com
id: 13
is_password: false
login_enabled: false
portfolio:
eth:
available_funds: 0
available_withdrawal_funds: 0
balance: 0
currency: eth
equity: 0
initial_margin: 0
maintenance_margin: 0
margin_balance: 0
btc:
available_funds: 0
available_withdrawal_funds: 0
balance: 0
currency: btc
equity: 0
initial_margin: 0
maintenance_margin: 0
margin_balance: 0
receive_notifications: false
system_name: user_1_4
security_keys_enabled: false
type: subaccount
username: user_1_4
description: Response example
description: Success response
PrivateGetTriggerOrderHistoryResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetTriggerOrderHistoryResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 2192
result:
entries:
- trigger: index
timestamp: 1555918941451
trigger_price: 5285
trigger_order_id: SLIS-103
order_state: new
request: trigger:order
price: 5179.28
order_id: '671473'
offset: 277
instrument_name: BTC-PERPETUAL
amount: 10
direction: buy
continuation: 1555918941451.SLIS-103
description: Response example
description: Success response
ErrorMessageResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessageResponse'
description: Success response
PrivateGetTransfersResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetTransfersResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 7606
result:
count: 2
data:
- amount: 0.2
created_timestamp: 1550579457727
currency: BTC
direction: payment
id: 2
other_side: 2MzyQc5Tkik61kJbEpJV5D5H9VfWHZK9Sgy
state: prepared
type: user
updated_timestamp: 1550579457727
- amount: 0.3
created_timestamp: 1550579255800
currency: BTC
direction: payment
id: 1
other_side: new_user_1_1
state: confirmed
type: subaccount
updated_timestamp: 1550579255800
description: Response example
description: Success response
PrivateGetBlockTradeRequestsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetBlockTradeRequestsResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
- timestamp: 1742824052538
state:
timestamp: 1742824052539
value: initial
username: Trader
user_id: 8
role: taker
trades:
- amount: 100000
direction: buy
price: 87516.83
instrument_name: BTC-PERPETUAL
broker_code: jpqYKgg1
broker_name: Test Broker
counterparty_state:
timestamp: 1742824052538
value: approved
nonce: 29rKkuD3NSBPet4njrpNWEuHBm9s
description: Response example
description: Success response
PrivateGetDepositsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetDepositsResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 5611
result:
count: 1
data:
- address: 2N35qDKDY22zmJq9eSyiAerMD4enJ1xx6ax
amount: 5
currency: BTC
received_timestamp: 1549295017670
state: completed
transaction_id: 230669110fdaf0a0dbcdc079b6b8b43d5af29cc73683835b9bc6b3406c065fda
updated_timestamp: 1549295130159
description: Response example
description: Success response
PrivatePositionMoveResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivatePositionMoveResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 3
result:
- target_uid: 23
source_uid: 3
price: 0.1223
instrument_name: BTC-28JAN22-32500-C
direction: sell
amount: 0.1
- target_uid: 23
source_uid: 3
price: 35800
instrument_name: BTC-PERPETUAL
direction: buy
amount: 110
description: Response example
description: Success response
PublicListApiKeysResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PublicListApiKeysResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 2553
result:
- timestamp: 1560236001108
max_scope: account:read block_trade:read trade:read_write wallet:read
id: 1
enabled: false
default: false
client_secret: SjM57m1T2CfXZ4vZ76X1APjqRlJdtzHI8IwVXoQnfoM
client_id: TiA4AyLPq3
name: ''
enabled_features: []
- timestamp: 1560236287708
max_scope: account:read_write block_trade:read_write trade:read_write wallet:read_write
id: 2
enabled: true
default: true
client_secret: mwNOvbUVyQczytQ5IVM8CbzmgqNJ81WvLKfu6MXcJPs
client_id: aD-KFx-H
name: ''
enabled_features: []
description: Response example
description: Success response
PrivateApiKeyResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateApiKeyResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 2453
result:
timestamp: 1560242482758
max_scope: account:read_write block_trade:read trade:read_write wallet:read_write
id: 3
enabled: true
default: false
client_secret: B6RsF9rrLY5ezEGBQkyLlV-UC7whyPJ34BMA-kKYpes
client_id: 1sXMQBhM
name: NewKeyName
description: Response example
description: Success response
PrivateGetCancelOnDisconnectResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetCancelOnDisconnectResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 220
result:
scope: account
enabled: false
description: Response example
description: Success response
PrivateGetAddressBeneficiaryResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetAddressBeneficiaryResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 42
result:
currency: BTC
address: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf0uyj
user_id: 1016
agreed: true
personal: false
unhosted: false
beneficiary_vasp_name: Money's Gone
beneficiary_vasp_did: did:example:123456789abcdefghi
beneficiary_vasp_website: https://example.com
beneficiary_first_name: John
beneficiary_last_name: Doe
beneficiary_company_name: Example Corp
beneficiary_address: NL, Amsterdam, Street, 1
created: 1536569522277
updated: 1536569522277
description: Response example
description: Success response
PrivateGetTransactionLogResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetTransactionLogResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 4
result:
logs:
- username: TestUser
user_seq: 6009
user_id: 7
type: transfer
trade_id: null
timestamp: 1613659830333
side: '-'
price: null
position: null
order_id: null
interest_pl: null
instrument_name: null
info:
transfer_type: subaccount
other_user_id: 27
other_user: Subaccount
id: 61312
equity: 3000.9275869
currency: BTC
commission: 0
change: -2.5
cashflow: -2.5
balance: 3001.22270418
- username: TestUser
user_seq: 6008
user_id: 7
type: settlement
trade_id: null
total_interest_pl: 1.243e-05
timestamp: 1613659544153
side: long
session_upl: 0.00220172
session_rpl: -4.467e-05
price_currency: USD
price: 51807.07
position: 1520
order_id: null
interest_pl: 9.93e-06
instrument_name: BTC-PERPETUAL
info:
settlement_price: 51807
floating_pl: 0.00220172
id: 61311
equity: 3003.42821428
currency: BTC
commission: null
change: 0.00215706
cashflow: 0.00215706
balance: 3003.72270418
amount: 1520
- username: TestUser
user_seq: 6007
user_id: 7
type: deposit
trade_id: null
timestamp: 1613657828414
side: '-'
price: null
position: null
order_id: null
interest_pl: null
instrument_name: null
info:
transaction: de6eba075855f32c9510f338d3ca0900376cedcb9f7b142caccfbdc292d3237e
deposit_type: wallet
addr: 2N8prMvpZHr8aYqodX3S4yhz5wMxjY8La3p
id: 61291
equity: 3003.4876111
currency: BTC
commission: 0
change: 0.65
cashflow: 0.65
balance: 3003.72054712
- username: TestUser
user_seq: 6006
user_role: maker
user_id: 7
type: trade
ip: 11.222.33.44
trade_id: '28349'
timestamp: 1613657734620
side: open buy
profit_as_cashflow: false
price_currency: BTC
price: 0.1537
position: 0.7
order_id: '67546'
mark_price: 0.04884653215049635
interest_pl: 0
instrument_name: BTC-19FEB21-49200-C
info: 'Source: api'
id: 61289
equity: 3002.83270455
currency: BTC
commission: 0
change: -0.10759
cashflow: -0.10759
balance: 3003.07054712
amount: 0.7
- username: TestUser
user_seq: 6005
user_role: maker
user_id: 7
type: trade
trade_id: '28349'
timestamp: 1613657734620
side: close buy
profit_as_cashflow: false
price_currency: BTC
price: 0.1537
position: 0
order_id: '67546'
mark_price: 0.04884653215049635
interest_pl: 0
instrument_name: BTC-19FEB21-49200-C
info: 'Source: api'
id: 61288
equity: 3002.83270455
currency: BTC
commission: 0
change: -0.04611
cashflow: -0.04611
balance: 3003.17813712
amount: 0.3
continuation: 61282
description: Response example
description: Success response
PrivateCreateBlockRfqResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateCreateBlockRfqResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
label: example
state: created
amount: 20000
role: taker
bids: []
asks: []
combo_id: BTC-15NOV24
legs:
- direction: sell
instrument_name: BTC-15NOV24
ratio: 1
creation_timestamp: 1731062187555
block_rfq_id: 507
expiration_timestamp: 1731062487555
hedge:
amount: 10
direction: buy
price: 70000
instrument_name: BTC-PERPETUAL
makers:
- MAKER1
description: Response example
description: Success response
PrivateCancelBlockRfqQuoteResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateCancelBlockRfqQuoteResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
label: example_quote
amount: 20000
direction: buy
price: 74600
legs:
- direction: buy
price: 74600
instrument_name: BTC-15NOV24
ratio: 1
creation_timestamp: 1731076586371
block_rfq_id: 3
replaced: false
filled_amount: 0
last_update_timestamp: 1731076655746
hedge:
amount: 10
direction: buy
price: 70000
instrument_name: BTC-PERPETUAL
block_rfq_quote_id: 8
quote_state: cancelled
description: Response example
description: Success response
PrivateRemoveFromAddressBookResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateRemoveFromAddressBookResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 42
result: ok
description: Response example
description: Success response
PrivateAccountResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateAccountResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 2515
result:
delta_total_map:
btc_usd: 31.594357699
margin_balance: 302.62729214
futures_session_rpl: -0.03258105
options_session_rpl: 0
estimated_liquidation_ratio_map:
btc_usd: 0.1009872222854525
session_upl: 0.05271555
email: user@example.com
system_name: user
username: user
interuser_transfers_enabled: false
id: 10
estimated_liquidation_ratio: 0.10098722
options_gamma_map:
btc_usd: 1.0e-05
options_vega: 0.0858
options_value: -0.0086
available_withdrawal_funds: 301.35396172
projected_delta_total: 32.613978
maintenance_margin: 0.8857841
total_pl: -0.33084225
limits:
limits_per_currency: false
non_matching_engine:
burst: 1500
rate: 1000
matching_engine:
trading:
total:
burst: 250
rate: 200
spot:
burst: 250
rate: 200
quotes:
burst: 500
rate: 500
max_quotes:
burst: 10
rate: 10
guaranteed_quotes:
burst: 2
rate: 2
cancel_all:
burst: 250
rate: 200
options_theta_map:
btc_usd: 15.97071
projected_maintenance_margin: 0.7543841
available_funds: 301.38059622
login_enabled: false
options_delta: -1.01962
balance: 302.60065765
security_keys_enabled: false
referrer_id: null
mmp_enabled: false
equity: 302.61869214
block_rfq_self_match_prevention: true
futures_session_upl: 0.05921555
fee_balance: 0
currency: BTC
options_session_upl: -0.0065
projected_initial_margin: 1.01529592
options_theta: 15.97071
creation_timestamp: 1687352432143
self_trading_extended_to_subaccounts: false
portfolio_margining_enabled: false
cross_collateral_enabled: false
margin_model: segregated_sm
options_vega_map:
btc_usd: 0.0858
futures_pl: -0.32434225
options_pl: -0.0065
type: main
self_trading_reject_mode: cancel_maker
initial_margin: 1.24669592
spot_reserve: 0
delta_total: 31.602958
options_gamma: 1.0e-05
session_rpl: -0.03258105
fees:
btc_usd:
option:
default:
type: relative
taker: 0.625
maker: 0.625
block_trade: 0.625
perpetual:
default:
type: fixed
taker: 0.00035000000000000005
maker: -0.0001
block_trade: 0.3
future:
default:
type: fixed
taker: 0.00035000000000000005
maker: -0.0001
block_trade: 0.3
description: Response example
description: Success response
PrivateGetAccessLogResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetAccessLogResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 1
result:
records_total: 34
data:
- timestamp: 1575876682576
result: success
ip: 127.0.0.1
id: 45
country: Local Country
city: Local Town
- timestamp: 1575876459309
result: success
ip: 127.0.0.1
id: 44
country: Local Country
city: Local Town
- timestamp: 1575546252774
result: disabled_tfa
ip: 127.0.0.1
id: 43
country: Local Country
city: Local Town
usIn: 1575903572350348
usOut: 1575903572351765
usDiff: 1417
testnet: false
description: Response example
description: Success response
PrivateGetUserTradesHistoryResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetUserTradesHistoryResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 9292
result:
trades:
- underlying_price: 8994.95
trade_seq: 1
trade_id: '48078936'
timestamp: 1590480620145
tick_direction: 1
state: filled
reduce_only: false
price: 0.028
post_only: false
order_type: limit
order_id: '4008699030'
matching_id: null
mark_price: 0.03135383
liquidity: M
iv: 38.51
instrument_name: BTC-27MAY20-8750-C
index_price: 8993.47
fee_currency: BTC
fee: 0.0004
direction: sell
amount: 1
- trade_seq: 299513
trade_id: '47958936'
timestamp: 1589923311862
tick_direction: 2
state: filled
reduce_only: false
price: 9681.5
post_only: false
order_type: limit
order_id: '3993343822'
matching_id: null
mark_price: 9684
liquidity: M
instrument_name: BTC-26JUN20
index_price: 9679.48
fee_currency: BTC
fee: -2.1e-07
direction: buy
amount: 10
has_more: false
description: Response example
description: Success response
PrivateGetOrderStateByLabelResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateGetOrderStateByLabelResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 4316
result:
- time_in_force: good_til_cancelled
reduce_only: false
price: 118.94
post_only: false
order_type: limit
order_state: filled
order_id: ETH-331562
max_show: 37
last_update_timestamp: 1550219810944
label: fooBar
is_rebalance: false
is_liquidation: false
instrument_name: ETH-PERPETUAL
filled_amount: 37
direction: sell
creation_timestamp: 1550219749176
average_price: 118.94
api: false
amount: 37
description: Response example
description: Success response
PrivateWithdrawResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateWithdrawResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 7420
result:
address: 2NBqqD5GRJ8wHy1PYyCXTe9ke5226FhavBz
amount: 0.5
confirmed_timestamp: null
created_timestamp: 1550571443070
currency: BTC
fee: 0.0001
id: 1
priority: 0.15
state: cancelled
transaction_id: null
updated_timestamp: 1550571443070
description: Response example
description: Success response
PrivateCancelResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateCancelResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 4214
result:
triggered: false
trigger: index_price
time_in_force: good_til_cancelled
trigger_price: 144.73
reduce_only: false
price: market_price
post_only: false
order_type: stop_market
order_state: untriggered
order_id: ETH-SLIS-12
max_show: 5
last_update_timestamp: 1550575961291
label: ''
is_rebalance: false
is_liquidation: false
instrument_name: ETH-PERPETUAL
direction: sell
creation_timestamp: 1550575961291
api: false
amount: 5
description: Response example
description: Success response
PrivateBuyAndSellResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/PrivateBuyAndSellResponse'
examples:
response:
value:
jsonrpc: '2.0'
id: 6130
result:
trades:
- trade_seq: 1966068
trade_id: ETH-2696097
timestamp: 1590486335742
tick_direction: 0
state: filled
reduce_only: true
price: 202.8
post_only: false
order_type: limit
order_id: ETH-584864807
matching_id: null
mark_price: 202.79
liquidity: T
instrument_name: ETH-PERPETUAL
index_price: 202.86
fee_currency: ETH
fee: 7.766e-05
direction: sell
amount: 21
order:
web: false
time_in_force: good_til_cancelled
replaced: false
reduce_only: true
price: 198.75
post_only: false
order_type: limit
order_state: filled
order_id: ETH-584864807
max_show: 21
last_update_timestamp: 1590486335742
label: ''
is_rebalance: false
is_liquidation: false
instrument_name: ETH-PERPETUAL
filled_amount: 21
direction: sell
creation_timestamp: 1590486335742
average_price: 202.8
api: true
amount: 21
description: Response example
description: Success response