---
title: "List Instruments"
method: GET
path: "/api/v2/public/get_instruments"
tags: ["Market Data"]
---

# List Instruments

`GET /api/v2/public/get_instruments`

Returns the list of tradeable instruments, including `index_id` and `product_group`, optionally filtered by base currency, instrument kind, and expiration status.

This endpoint requires no authentication, but it is served by the Starbase REST gateway and is reachable only through hosted colocation, a cross-connect, or AWS Private Link. The standard internet-accessible JSON-RPC `public/get_instruments` method also documents `index_id` and `product_group`; backend rollout of those fields may temporarily differ between the two endpoints.

Filter semantics:
- `currency` filters by the **base** currency of the instrument's currency pair (case-insensitive match).
- `kind` filters by instrument type (case-insensitive match against the `kind` value enum).
- `expired = true` returns only instruments whose `expiration_timestamp` is in the past; `expired = false` returns only non-expired instruments. Omit the parameter to get both.

## Query parameters

- `currency` string
- `kind` 'perp_future' | 'option' | 'spot' | 'future_combo' | 'option_combo' | 'dated_future'
- `expired` boolean

## Response `200`

List of instruments matching the supplied filters.

- GetInstrumentsResponse
  - `jsonrpc` '2.0', required — The JSON-RPC version (2.0)
  - `id` integer — The id that was sent in the request
  - `result` Instrument[], required — Array of instruments matching the supplied filters. May be empty.
    - `instrument_id` integer, required — Stable numeric identifier for the instrument.
    - `instrument_name` string, required — Human-readable instrument symbol (e.g. `ETH-PERPETUAL`, `BTC-30MAY26-70000-C`).
    - `kind` 'perp_future' | 'option' | 'spot' | 'future_combo' | 'option_combo' | 'dated_future', required — Instrument category.
    - `index_id` integer, nullable — Numeric identifier for the index associated with the instrument.
    - `product_group` string, nullable — Starbase routing group resolved from the base symbol of the instrument's currency pair (for example `BTC`, `ETH`, `TIER_2`, or `TIER_3`).
    - `base_currency` string, nullable — Base currency of the instrument's currency pair.
    - `quote_currency` string, nullable — Quote currency of the instrument's currency pair.
    - `settlement_currency` string, nullable — Settlement currency for the instrument. Currently equal to `quote_currency`.
    - `tick_size` number — Minimum price increment for the instrument.
    - `qty_tick_size` number — Minimum quantity increment (step size) for order amounts on this instrument, expressed in the instrument's amount units. This is the same value the SBE `InstrumentDefinition` (10) message carries as `minOrderQuantity × 10^quantityExponent` — for example `qty_tick_size = 0.1` corresponds to `minOrderQuantity = 1` with `quantityExponent = -1`.
    - `strike` number, nullable — Strike price (options only). `null` for non-option instruments.
    - `option_type` 'call' | 'put', nullable — Option type (options only). `null` for non-option instruments.
    - `is_active` boolean, required — Whether the instrument is currently enabled for trading.
    - `expiration_timestamp` integer, nullable — Instrument expiration time in milliseconds since the Unix epoch. `null` for perpetuals and other non-expiring instruments.
    - `creation_timestamp` integer, nullable — Instrument creation/listing time in milliseconds since the Unix epoch.
    - `min_trade_amount` number, nullable — Minimum allowed order quantity. May be `null` if not yet populated.
    - `contract_size` number, nullable — Contract size for the instrument. May be `null` if not yet populated.
    - `settlement_period` string, nullable — Settlement period descriptor. May be `null` if not yet populated.
    - `maker_commission` number, nullable — Maker commission rate. May be `null` if not yet populated.
    - `taker_commission` number, nullable — Taker commission rate. May be `null` if not yet populated.
    - `block_trade_commission` number, nullable — Block trade commission rate. May be `null` if not yet populated.

## Other responses

- `500` — Internal server error while building the instrument list.

## Changes

> 5 revisions in range; 2 could not be searched.

- **2026-07-31** `f2f2dd44cc4e` — 1 info
  - added the optional property `result/items/index_id` to the response with the `200` status

[Change history](https://skmtc.dev/deribit/apis/starbase-rest-api/changes/api/v2/public/get_instruments/get.md)

---

[API](https://skmtc.dev/deribit/apis/starbase-rest-api.md) · [All operations](https://skmtc.dev/deribit/apis/starbase-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/deribit/starbase-rest-api/revisions/2e8e1b6fb09d/schema)
