broker_name and broker_code fields in each client’s trade history.
Broker accounts must be enabled by Deribit staff. Authentication is required for all private methods. See the Authentication Guide.
Key Concepts
- Broker Code: a unique string identifying a broker client (counterparty group). Multiple users from the same client group can link using the same code. Trades carry this code, allowing clients to filter their history by broker.
- Client / Client Link: the broker identifies each side of a trade by
client_id(counterparty group) andclient_link_id(specific linked user). - Trade Confirmations: each client link has a
confirmations_requiredflag. Whentrue(the default), the trade is held pending until the client approves it via API. The window is 10 minutes; expiry or rejection cancels the trade.
Broker: List Clients
private/get_broker_clients (scope: block_trade:read)
Returns all clients registered under the broker account. Use this endpoint to look up the client_id and client_link_id values required by other broker methods such as private/execute_broker_trade.
Each client record contains:
client_id: numeric identifier grouping one or more linked users under a single client name.links: array of individual user connections within that client. Each entry includes aclient_link_idthat uniquely identifies a single linked user.
connected: user has accepted the broker invitation and is ready to trade.pending: invitation not yet accepted.rejected: link is inactive.
client_id from the top-level object and client_link_id from the relevant entry in links.
Broker: Execute a Trade
private/execute_broker_trade (scope: block_trade:read_write)
Submits both sides in one call. direction is always from the maker’s perspective.
If no confirmations are required, the response is a completed block trade with
id, timestamp, trades[], and maker/taker objects containing client_id, client_link_id, client_name, client_link_name, confirmations_required, and an obscured user_id (e.g. ***123).
If confirmations are required, the response is a pending trade request:
state.value: initial → approved / rejected. The trade executes once all required approvals are received.
Broker: Cancel a Pending Trade
private/cancel_broker_trade_request (scope: block_trade:read_write)
Cancels a pending trade using the nonce and timestamp from the execute response.
Broker: Monitor Pending Requests
private/get_broker_trade_requests (scope: block_trade:read)
Returns an array of all pending (and recently settled) broker trade requests with current per-side states. Takes no parameters.
WebSocket: subscribe to broker.trade_requests.{currency} for real-time updates on every state change.
Broker: Trade History
private/get_broker_trades (scope: block_trade:read)
Response:
{ "history": [...], "next_start_id": 41 }. Pass next_start_id as start_id for the next page (null = no more results). Each entry includes id, timestamp, trades[], and maker/taker with client info and obscured user_id.
Client: Approve or Reject a Pending Trade
Whenconfirmations_required = true, the client is notified and must act within 10 minutes.
Subscribe to block_trade_confirmations for real-time notifications. The notification data includes timestamp, nonce, role (maker or taker), broker_name, broker_code, trades[], and state.
Poll pending trades with private/get_block_trade_requests. Pass broker_code to filter broker-only requests.
Approve
Reject
confirmations_shared = true on the client link, any sub-account in the same client group may approve or reject, not just the originally linked user.
Client: Trade History
Broker trades appear in regular block trade history. Filter by broker using thebroker_code parameter on private/get_block_trades. Each broker trade includes broker_name and broker_code fields.
Notes
- Obscured user IDs: brokers see only the last 3 digits of a client’s user ID (e.g.
***123). - Self-trading: the same Deribit user cannot be both maker and taker.
- KYC: both clients must be verified for block trading.
- Account locks / settlement proximity: trades fail if a client account is locked for the traded currency, or if the instrument is too close to expiry.
Common Errors
Related Methods
Brokerprivate/get_broker_clients: List registered clients and their link IDsprivate/execute_broker_trade: Submit a block trade on behalf of two clientsprivate/cancel_broker_trade_request: Cancel a pending trade requestprivate/get_broker_trade_requests: List pending and recently settled trade requestsprivate/get_broker_trades: Broker’s completed trade history
private/get_block_trade_requests: List pending block trade requests (filter bybroker_codefor broker trades)private/approve_block_trade: Approve a pending tradeprivate/reject_block_trade: Reject a pending tradeprivate/get_block_trades: Client’s block trade history (filter bybroker_code)
block_trade_confirmations: Real-time notifications for trade confirmation requestsbroker.trade_requests.{currency}: Real-time updates for broker trade request state changes