> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cdp.coinbase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 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.

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





## OpenAPI

````yaml /api-reference/coinbase-deribit-app-api/adv-starbase-openapi.json get /public/get_instruments
openapi: 3.0.0
info:
  description: Coinbase Retail Advanced Trade API for derivatives trading.
  title: Coinbase Retail Advanced Trade (Deribit) API
  version: 2.1.1
servers:
  - url: https://drb.coinbase.com/api/v2
security: []
tags:
  - description: Can only be used over websockets.
    name: WebSocket Only
  - description: Public methods can be used without authentication.
    name: Public
  - description: >-
      <p>Private methods require authentication. All requests must include a
      valid OAuth2 token.</p>

      <p>A token can be requested using the <a
      href="#public-auth">/public/auth</a> method.</p>

      <p>When using the websockets protocol, the token must be included as a
      parameter <code>access_token</code> in the message. When using REST (HTTP
      GET), the token may also be passed in the <code>Authorization</code>
      header.</p>
    name: Private
  - name: Authentication
  - name: Session Management
  - description: >-
      Subscription works as [notifications](#notifications), so users will
      automatically (after subscribing) receive messages from the server.
      Overview for each channel response format is described in
      [subscriptions](#subscriptions) section.
    name: Subscription Management
  - name: Account Management
  - name: Trading
  - name: Market Data
paths:
  /public/get_instruments:
    get:
      tags:
        - Market Data
        - Public
      description: >+
        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.


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

      parameters:
        - description: The currency symbol or `"any"` for all
          in: query
          name: currency
          required: true
          schema:
            $ref: '#/components/schemas/currency_with_any'
        - description: >-
            Instrument kind, if not provided instruments of all kinds are
            considered
          in: query
          name: kind
          required: false
          schema:
            $ref: '#/components/schemas/kind'
        - description: >-
            Set to true to show recently expired instruments instead of active
            ones.
          in: query
          name: expired
          required: false
          schema:
            default: false
            type: boolean
      requestBody:
        content:
          application/json:
            examples:
              request:
                description: JSON-RPC Request Example
                value:
                  id: 1
                  jsonrpc: '2.0'
                  method: public/get_instruments
                  params:
                    currency: BTC
                    kind: future
        description: JSON-RPC request body
      responses:
        '200':
          $ref: '#/components/responses/PublicGetInstrumentsResponse'
components:
  schemas:
    currency_with_any:
      description: Currency name or `"any"` if don't care
      enum:
        - BTC
        - ETH
        - USDC
        - USDT
        - EURR
        - any
      type: string
    kind:
      description: >-
        Instrument kind: `"future"`, `"option"`, `"spot"`, `"future_combo"`,
        `"option_combo"`
      enum:
        - future
        - option
        - spot
        - future_combo
        - option_combo
      type: string
    PublicGetInstrumentsResponse:
      properties:
        id:
          description: The id that was sent in the request
          type: integer
        jsonrpc:
          description: The JSON-RPC version (2.0)
          enum:
            - '2.0'
          type: string
        result:
          items:
            $ref: '#/components/schemas/instrument'
          type: array
      required:
        - jsonrpc
        - result
      type: object
    instrument:
      properties:
        base_currency:
          description: The underlying currency being traded.
          enum:
            - BTC
            - ETH
          type: string
        block_trade_commission:
          description: Block Trade commission for instrument.
          example: 0.0005
          type: number
        block_trade_min_trade_amount:
          description: Minimum amount for block trading.
          example: 25
          type: number
        block_trade_tick_size:
          description: Specifies minimal price change for block trading.
          example: 0.01
          type: number
        contract_size:
          description: Contract size for instrument.
          example: 1
          type: integer
        counter_currency:
          description: Counter currency for the instrument.
          enum:
            - USD
            - USDC
          type: string
        creation_timestamp:
          description: >-
            The time when the instrument was first created (milliseconds since
            the UNIX epoch).
          example: 1536569522277
          type: integer
        expiration_timestamp:
          description: >-
            The time when the instrument will expire (milliseconds since the
            UNIX epoch).
          type: integer
        future_type:
          description: >-
            Future type (only for futures)(field is deprecated and will be
            removed in the future, `instrument_type` should be used instead).
          enum:
            - linear
            - reversed
          type: string
        instrument_id:
          $ref: '#/components/schemas/instrument_id'
        instrument_name:
          $ref: '#/components/schemas/instrument_name'
        instrument_type:
          description: Type of the instrument. `linear` or `reversed`
          type: string
        is_active:
          description: Indicates if the instrument can currently be traded.
          type: boolean
        kind:
          $ref: '#/components/schemas/kind'
        maker_commission:
          description: Maker commission for instrument.
          example: 0.0001
          type: number
        max_leverage:
          description: Maximal leverage for instrument (only for futures).
          example: 100
          type: integer
        max_liquidation_commission:
          description: >-
            Maximal liquidation trade commission for instrument (only for
            futures).
          example: 0.001
          type: number
        min_trade_amount:
          description: >-
            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.
          example: 0.1
          type: number
        option_type:
          description: The option type (only for options).
          enum:
            - call
            - put
          type: string
        price_index:
          $ref: '#/components/schemas/price_index'
        quote_currency:
          description: The currency in which the instrument prices are quoted.
          enum:
            - USD
          type: string
        settlement_currency:
          description: >-
            Optional (not added for spot). Settlement currency for the
            instrument.
          enum:
            - BTC
            - ETH
          type: string
        settlement_period:
          description: Optional (not added for spot). The settlement period.
          enum:
            - month
            - week
            - perpetual
          type: string
        state:
          $ref: '#/components/schemas/book_state'
        strike:
          description: The strike value (only for options).
          type: number
        taker_commission:
          description: Taker commission for instrument.
          example: 0.0005
          type: number
        tick_size:
          description: >-
            Specifies minimal price change and, as follows, the number of
            decimal places for instrument prices.
          example: 0.0001
          type: number
        tick_size_steps:
          $ref: '#/components/schemas/tick_size_step'
        underlying_type:
          description: The type of the underlying asset.
          enum:
            - equity
            - commodity
            - crypto
          type: string
      required:
        - kind
        - base_currency
        - quote_currency
        - min_trade_amount
        - instrument_name
        - is_active
        - settlement_period
        - creation_timestamp
        - tick_size
        - expiration_timestamp
        - contract_size
        - price_index
      type: object
    instrument_id:
      description: Instrument ID
      type: integer
    instrument_name:
      description: Unique instrument identifier
      example: BTC-PERPETUAL
      type: string
    price_index:
      description: Name of price index that is used for this instrument
      example: btc_usdc
      type: string
    book_state:
      description: >
        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.
      enum:
        - open
        - settlement
        - delivered
        - inactive
        - locked
        - halted
        - archivized
      type: string
    tick_size_step:
      properties:
        above_price:
          description: The price from which the increased tick size applies
          type: number
        tick_size:
          description: >-
            Tick size to be used above the price. It must be multiple of the
            minimum tick size.
          type: number
      type: object
  responses:
    PublicGetInstrumentsResponse:
      content:
        application/json:
          examples:
            response:
              description: Response example
              value:
                id: 1
                jsonrpc: '2.0'
                result:
                  - base_currency: BTC
                    block_trade_commission: 0.00025
                    block_trade_min_trade_amount: 200000
                    block_trade_tick_size: 0.01
                    contract_size: 10
                    counter_currency: USD
                    creation_timestamp: 1664524802000
                    expiration_timestamp: 1695974400000
                    instrument_id: 138583
                    instrument_name: BTC-29SEP23
                    instrument_type: reversed
                    is_active: true
                    kind: future
                    maker_commission: 0
                    max_leverage: 50
                    max_liquidation_commission: 0.0075
                    min_trade_amount: 10
                    price_index: btc_usd
                    quote_currency: USD
                    settlement_currency: BTC
                    settlement_period: month
                    state: open
                    taker_commission: 0.0005
                    tick_size: 2.5
                    tick_size_steps: []
                  - base_currency: BTC
                    block_trade_commission: 0.00025
                    block_trade_min_trade_amount: 200000
                    block_trade_tick_size: 0.01
                    contract_size: 10
                    counter_currency: USD
                    creation_timestamp: 1534167754000
                    expiration_timestamp: 32503708800000
                    instrument_id: 124972
                    instrument_name: BTC-PERPETUAL
                    instrument_type: reversed
                    is_active: true
                    kind: future
                    maker_commission: 0
                    max_leverage: 50
                    max_liquidation_commission: 0.0075
                    min_trade_amount: 10
                    price_index: btc_usd
                    quote_currency: USD
                    settlement_currency: BTC
                    settlement_period: perpetual
                    state: open
                    taker_commission: 0.0005
                    tick_size: 0.5
                    tick_size_steps: []
          schema:
            $ref: '#/components/schemas/PublicGetInstrumentsResponse'
      description: Success response

````