---
title: "GET /public/get_instruments"
method: GET
path: "/public/get_instruments"
tags: ["Market Data", "Public"]
---

# GET /public/get_instruments

`GET /public/get_instruments`

Retrieves available trading instruments. This method can be used to see which instruments are available for trading, or which instruments have recently expired.

**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}](https://docs.deribit.com/api-reference/subscription-channels/instrument-state-kind-currency) for real-time updates. For more information, see [Rate Limits](https://support.deribit.com/hc/en-us/articles/25944617523357-Rate-Limits).

Results can be filtered by currency and instrument kind (future, option, etc.). Set the `expired` parameter to `true` to retrieve recently expired instruments instead of active ones. Each instrument includes the `underlying_type` field indicating the underlying asset class (such as `crypto`, `equity`, or `commodity`).

[Try in API console](https://test.deribit.com/api_console?method=%2Fpublic%2Fget_instruments)

## Query parameters

- `currency` 'BTC' | 'ETH' | 'USDC' | 'USDT' | 'EURR' | 'any', required — Currency name or `"any"` if don't care
- `kind` 'future' | 'option' | 'spot' | 'future_combo' | 'option_combo' — Instrument kind: `"future"`, `"option"`, `"spot"`, `"future_combo"`, `"option_combo"`
- `expired` boolean

## Response `200`

Success response

- PublicGetInstrumentsResponse
  - `jsonrpc` '2.0', required — The JSON-RPC version (2.0)
  - `id` integer — The id that was sent in the request
  - `result` Instrument[], required
    - `kind` 'future' | 'option' | 'spot' | 'future_combo' | 'option_combo', required — Instrument kind: `"future"`, `"option"`, `"spot"`, `"future_combo"`, `"option_combo"`
    - `settlement_currency` 'BTC' | 'ETH' — Optional (not added for spot). Settlement currency for the instrument.
    - `counter_currency` 'USD' | 'USDC' — Counter currency for the instrument.
    - `base_currency` 'BTC' | 'ETH', required — The underlying currency being traded.
    - `quote_currency` 'USD', required — The currency in which the instrument prices are quoted.
    - `min_trade_amount` number, required — Minimum amount for trading. 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` string, required — Unique instrument identifier
    - `instrument_id` integer — Instrument ID
    - `is_active` boolean, required — Indicates if the instrument can currently be traded.
    - `settlement_period` 'month' | 'week' | 'perpetual', required — Optional (not added for spot). The settlement period.
    - `creation_timestamp` integer, required — The time when the instrument was first created (milliseconds since the UNIX epoch).
    - `tick_size` number, required — Specifies minimal price change and, as follows, the number of decimal places for instrument prices.
    - `tick_size_steps` TickSizeStep
      - `above_price` number — The price from which the increased tick size applies
      - `tick_size` number — Tick size to be used above the price. It must be multiple of the minimum tick size.
    - `expiration_timestamp` integer, required — The time when the instrument will expire (milliseconds since the UNIX epoch).
    - `strike` number — The strike value (only for options).
    - `option_type` 'call' | 'put' — The option type (only for options).
    - `future_type` 'linear' | 'reversed' — Future type (only for futures)(field is deprecated and will be removed in the future, `instrument_type` should be used instead).
    - `instrument_type` string — Type of the instrument. `linear` or `reversed`
    - `contract_size` integer, required — Contract size for instrument.
    - `lot_size` number — Lot size for instrument, used as the unit for fee lot counting. Defaults to `contract_size` when not configured.
    - `maker_commission` number — Maker commission for instrument.
    - `taker_commission` number — Taker commission for instrument.
    - `max_liquidation_commission` number — Maximal liquidation trade commission for instrument (only for futures).
    - `block_trade_commission` number — Block Trade commission for instrument.
    - `block_trade_tick_size` number — Specifies minimal price change for block trading.
    - `block_trade_min_trade_amount` number — Minimum amount for block trading.
    - `max_leverage` integer — Maximal leverage for instrument (only for futures).
    - `price_index` string, required — Name of price index that is used for this instrument
    - `underlying_type` 'crypto' | 'equity' | 'commodity' | 'preipo' | 'equity_etf' | 'crypto_index' | 'adr' | 'foreign_equity' | 'equity_index' | 'commodity_index' | 'commodity_etf' | 'otc', required — The type of the underlying asset.
    - `state` 'open' | 'settlement' | 'delivered' | 'inactive' | 'locked' | 'halted' | 'archivized' — The state of the order book. Represents the current lifecycle stage of the instrument. **State Lifecycle and Meanings:** - `open`: Default state for running books. In this state book is accepting new orders, edits, cancels; prices should be updated, trading is live. - `settlement`: Books enters to this state during settlement/delivery. New orders, edits, cancels are not accepted. After this state normally next state should be `open` if it was settlement, or `delivered` if it was delivery. On enter to this state good till day orders in book are canceled. - `delivered`: Final state of book that has been delivered. New orders, edits, cancels are not accepted. After some time book process will be terminated and, instrument moved to `expired_instruments` and its `instrument_state` will become archivized. On enter to this all open orders in book are canceled. - `inactive`: After a book is deactivated, this state is set on book. New orders, edits, cancels are not accepted. On enter to this all open orders in book are canceled. Book in this state is not considered as open. This can be also final state for book. - `locked`: New orders, edits, are not accepted, only cancels ARE accepted. In some cases when configured books can start as locked or it may become locked on admin request. Settlement is possible on locked books. - `halted`: The state that books enter as a result of an error. Settlement is not possible when there is at least one book in this state. - `archivized`: Set when instrument is moved to `expired_instruments` table, final state.
    - `base_currency_uuid` string — Internal identifier for the base currency. Absent if the base currency does not have an assigned identifier.
    - `quote_currency_uuid` string — Internal identifier for the quote currency. Absent if the quote currency does not have an assigned identifier.
    - `qty_tick_size` number — Minimum quantity change (step size) for order amounts on this instrument.
    - `index_id` integer, required — Numeric identifier of the price index used by this instrument. Derived from the index currency pair, so all instruments sharing the same `price_index` also share the same `index_id`.
    - `product_group` 'BTC' | 'ETH' | 'TIER_2' | 'TIER_3', required — Product group classification of the instrument's base currency. Determines gateway and multicast channel assignment — see [Underlying Tiers](https://docs.deribit.com/starbase/underlying-tiers).
    - `is_csr` boolean — Optional (only for spot). When `true`, orders on this instrument are routed to Coinbase Exchange (CBE) for matching instead of the native Deribit matching engine.

---

[API](https://skmtc.net/deribit/apis/deribit-api.md) · [All operations](https://skmtc.net/deribit/apis/deribit-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/deribit/deribit-api/versions/78a0783dbfcc/schema)
