Market Data
Public

Retrieves trading instruments, filtered by currency and optional kind. Responses are cached for about 1 minute and can be stale relative to live book state.

Note - This method has distinct API rate limiting requirements: Sustained rate: 1 request/second. To avoid rate limits, we recommend using either the REST requests for server-cached data or the WebSocket subscription to instrument_state.{kind}.{currency} for real-time updates. For more information, see Rate Limits.

With expired=false (default) the list is not limited to tradable books. It includes visible instruments (open, settlement, locked, halted) plus inactive non-combo instruments. Inactive combos are omitted; combo kinds (future_combo, option_combo) return only visible books. is_active can therefore be false on this default list. Only state open accepts new orders.

With expired=true the list is instruments still in the live table with state delivered — recently expired, not archivized. Older expired or archivized names are looked up with public/get_instrument, not this method.

currency matches derivatives by settlement currency: inverse (reversed) contracts settle in the base coin (BTC for BTC-PERPETUAL), linear contracts typically settle in the quote coin (USDC for BTC_USDC-PERPETUAL). currency=any returns every settlement currency.

Spot matching is different. A spot's settlement field is the pair symbol (for example BTC_USDC), not BTC or USDC. When expired=false and kind is omitted/any for a specific currency, the response unions (1) derivatives with that settlement currency and (2) spots whose base or quote is that currency. kind=spot with a specific currency matches spots on either side of the pair. expired=true does not apply that extra spot union, so recently delivered spots are not returned under currency=BTC.

Results are sorted with perpetuals first, then by expiration. Each instrument includes underlying_type. Spot routed to Coinbase Exchange includes is_cbe_routed / is_csr. Set extended=true for extra commission and (on futures) margin/perpetual fields that public/get_instrument does not return.

📖 Related Articles:

Try in API console

get/public/get_instruments

Request

  • Base URL
    https://test.deribit.com/api/v2
  • URL
    https://test.deribit.com/api/v2/public/get_instruments
  • Auth
    none declared

Query parameters

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

Currency name or "any" if don't care

The currency symbol or "any" for all.

📖 Related Article: Using the currency Parameter

kind'future' | 'option' | 'spot' | 'future_combo' | 'option_combo' | 'any'

Instrument kind: "future", "option", "spot", "future_combo", "option_combo" or "any" for all

Instrument kind. Omit the parameter or pass "any" for every kind.

Combos are selected with "future_combo" or "option_combo". "combo" (all combos) is not accepted here.

expiredboolean

When false (default), return visible instruments plus inactive non-combo instruments. When true, return only instruments still in the live table with state delivered (recently expired, not archivized). Does not include the extra spot union used for a named currency when expired=false.

extendedboolean

When true, each instrument also includes maker_max_commission, taker_max_commission, liquidation_max_commission, and settlement_max_commission. Futures additionally include margin_params and trading_bandwidth_fraction; perpetuals also include perpetual_dempener and perpetual_max_funding. Default false. public/get_instrument does not accept this parameter.

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": [
    {
      "min_trade_amount": 0.1,
      "instrument_name": "BTC-PERPETUAL",
      "creation_timestamp": 1536569522277,
      "tick_size": 0.0001,
      "contract_size": 1,
      "lot_size": 1,
      "maker_commission": 0.0001,
      "taker_commission": 0.0005,
      "max_liquidation_commission": 0.001,
      "block_trade_commission": 0.0005,
      "block_trade_tick_size": 0.01,
      "block_trade_min_trade_amount": 25,
      "max_leverage": 100,
      "price_index": "btc_usdc",
      "base_currency_uuid": "5b71fc48-3dd3-540c-809b-f8c94d0e68b5",
      "quote_currency_uuid": "2b92315d-eab7-5bef-84fa-089a131333f5",
      "index_id": 1000004,
      "product_group": "BTC"
    }
  ]
}

Changes

    • breaking

      the response property // became optional for the status

    • warning

      added the new RWA enum value to the // response property for the response status

    • warning

      added the new day enum value to the // response property for the response status

    • warning

      added the new hour enum value to the // response property for the response status

    • warning

      added the new minute enum value to the // response property for the response status

    • info

      added the new optional query request parameter extended

    • info

      added the new enum value any to the query request parameter kind

    • info

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

    • info

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

    • info

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

    • info

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

    • info

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

    • info

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

    • info

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

    • info

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

    • info

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

    • info

      removed the BTC enum value from the // response property for the response status

    • info

      removed the BTC enum value from the // response property for the response status

    • info

      removed the ETH enum value from the // response property for the response status

    • info

      removed the ETH enum value from the // response property for the response status

    • info

      removed the USD enum value from the // response property for the response status

    • info

      removed the USD enum value from the // response property for the response status

    • info

      removed the USDC enum value from the // response property for the response status

    • warning

      removed the optional property // from the response with the status