Account Management
Private

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. Spot holdings are balances, not positions — kind: "spot" is rejected. Prefer currency: "any" over looping currencies.

📖 Related Articles:

Scope: trade:read

Try in API console

get/private/get_positions

Request

  • Base URL
    https://test.deribit.com/api/v2
  • URL
    https://test.deribit.com/api/v2/private/get_positions
  • Auth
    none declared

Query parameters

currency'BTC' | 'ETH' | 'USDC' | 'USDT' | 'EURR' | 'any'

Currency name or "any" if don't care

kind'future' | 'option' | 'future_combo' | 'option_combo'

Instrument kind: "future", "option", "future_combo", "option_combo" (spot is excluded as spot trades are settled immediately and have no open positions)

Kind filter on positions

subaccount_idinteger

The user id for the subaccount

Response

Success response

jsonrpc'2.0' required

The JSON-RPC version (2.0)

idinteger

The id that was sent in the request

Example response

{
  "result": [
    {
      "instrument_name": "BTC-PERPETUAL",
      "user_id": 57874
    }
  ]
}

Changes

    • breaking

      the ////// response's property type changed from integer to number for status

    • info

      added the required property ////// to the response with the status