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

# Get instrument details

> Live **24h volume**, **quote volume**, **trade count**, and **price change** for one instrument or a filtered set.

### Parameters

| Parameter | Required | Type | Description |
| --------- | -------- | ---- | ----------- |
| instrumentId | yes | string (decimal) | Instrument ID to fetch details for. When omitted, returns all indexed instruments (optionally narrowed by `contractType` / `expiry` / `underlyingAsset`). Cannot be combined with those filters. |
| contractType | yes | string | Optional contract type filter (comma-separated). Accepted values (case-insensitive): `option`, `future`, `perp`, `spot`. Ignored (and rejected) when `instrumentId` is set. |
| expiry | yes | string | null | Optional expiry filter. Matches the instrument's formatted expiry (e.g. `28MAR25`). Ignored (and rejected) when `instrumentId` is set. |
| underlyingAsset | yes | string | null | Optional underlying asset ticker filter (e.g. `BTC`). Case-insensitive. Ignored (and rejected) when `instrumentId` is set. |

### Response fields

| Parameter | Required | Type | Description |
| --------- | -------- | ---- | ----------- |
| `instruments` | yes | object[] | Live 24h volume and price change for the requested instrument(s). |
| `instruments[].change24hr` | yes | string | Quote price change over the 24h window (decimal string). |
| `instruments[].instrumentId` | yes | string (decimal) | An instrument identifier (8-byte hash). |
| `instruments[].quoteVolume` | yes | string | — |
| `instruments[].tradeCount` | yes | integer (int64) | — |
| `instruments[].volume24hr` | yes | string | — |

### Response example

A sample **`200`** response body is attached to this operation as an OpenAPI **example** — see the **Example** panel on this page.



## OpenAPI

````yaml /specs/indexer-openapi.json get /instrument-details
openapi: 3.1.0
info:
  title: Rocket Indexer API Documentation
  description: >-
    Welcome to the RocketChain Indexer API documentation!


    The indexer REST API serves historical and aggregated market data from
    ClickHouse. Endpoints cover candles, trades, order history, portfolio
    curves, funding events, bridge events, vault events, current/historical
    instruments, and live instrument details.
  license:
    name: MIT
    url: https://github.com/rocketfoundation/rocket-sdk-rust/blob/main/LICENSE
  version: '1.0'
  x-logo:
    altText: ROCKET
    backgroundColor: '#00000000'
    url: https://www.rocketfoundation.io/assets/rocket-logo.svg
servers:
  - url: https://beta.rocket-cluster-1.com/indexer
    description: Beta
  - url: https://testnet.rocket-cluster-1.com/indexer
    description: Testnet
  - url: https://devnet.rocket-cluster-1.com/indexer
    description: Devnet
security: []
tags:
  - name: Indexer REST-API
    description: >-
      Read-only REST endpoints backed by the RocketChain indexer. All routes are
      served over HTTP GET.
paths:
  /instrument-details:
    get:
      tags:
        - Indexer REST-API
      summary: Get instrument details
      description: >-
        Live **24h volume**, **quote volume**, **trade count**, and **price
        change** for one instrument or a filtered set.


        ### Parameters


        | Parameter | Required | Type | Description |

        | --------- | -------- | ---- | ----------- |

        | instrumentId | yes | string (decimal) | Instrument ID to fetch details
        for. When omitted, returns all indexed instruments (optionally narrowed
        by `contractType` / `expiry` / `underlyingAsset`). Cannot be combined
        with those filters. |

        | contractType | yes | string | Optional contract type filter
        (comma-separated). Accepted values (case-insensitive): `option`,
        `future`, `perp`, `spot`. Ignored (and rejected) when `instrumentId` is
        set. |

        | expiry | yes | string | null | Optional expiry filter. Matches the
        instrument's formatted expiry (e.g. `28MAR25`). Ignored (and rejected)
        when `instrumentId` is set. |

        | underlyingAsset | yes | string | null | Optional underlying asset
        ticker filter (e.g. `BTC`). Case-insensitive. Ignored (and rejected)
        when `instrumentId` is set. |


        ### Response fields


        | Parameter | Required | Type | Description |

        | --------- | -------- | ---- | ----------- |

        | `instruments` | yes | object[] | Live 24h volume and price change for
        the requested instrument(s). |

        | `instruments[].change24hr` | yes | string | Quote price change over
        the 24h window (decimal string). |

        | `instruments[].instrumentId` | yes | string (decimal) | An instrument
        identifier (8-byte hash). |

        | `instruments[].quoteVolume` | yes | string | — |

        | `instruments[].tradeCount` | yes | integer (int64) | — |

        | `instruments[].volume24hr` | yes | string | — |


        ### Response example


        A sample **`200`** response body is attached to this operation as an
        OpenAPI **example** — see the **Example** panel on this page.
      operationId: getInstrumentDetails
      parameters:
        - name: instrumentId
          in: path
          description: >-
            Instrument ID to fetch details for. When omitted, returns all
            indexed instruments

            (optionally narrowed by `contractType` / `expiry` /
            `underlyingAsset`). Cannot be

            combined with those filters.
          required: true
          schema:
            oneOf:
              - type: 'null'
              - $ref: '#/components/schemas/InstrumentId'
          example: '0x85d55cb42a3e6b50'
        - name: contractType
          in: path
          description: >-
            Optional contract type filter (comma-separated). Accepted values

            (case-insensitive): `option`, `future`, `perp`, `spot`. Ignored (and
            rejected)

            when `instrumentId` is set.
          required: true
          schema:
            type: string
          example: perp,option
        - name: expiry
          in: path
          description: >-
            Optional expiry filter. Matches the instrument's formatted expiry
            (e.g. `28MAR25`).

            Ignored (and rejected) when `instrumentId` is set.
          required: true
          schema:
            type:
              - string
              - 'null'
          example: 28MAR25
        - name: underlyingAsset
          in: path
          description: >-
            Optional underlying asset ticker filter (e.g. `BTC`).
            Case-insensitive.

            Ignored (and rejected) when `instrumentId` is set.
          required: true
          schema:
            type:
              - string
              - 'null'
          example: BTC
      responses:
        '200':
          description: Instrument details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetInstrumentDetailsResponse'
              example:
                instruments:
                  - change24hr: '1.23'
                    instrumentId: '0x85d55cb42a3e6b50'
                    quoteVolume: '1121.2625'
                    tradeCount: 42
                    volume24hr: '12.5'
        '400':
          description: Invalid query parameters
          content:
            text/plain:
              schema:
                type: string
        '500':
          description: Internal server error
          content:
            text/plain:
              schema:
                type: string
components:
  schemas:
    InstrumentId:
      type: string
      format: decimal
      description: An instrument identifier (8-byte hash).
      example: '42'
    GetInstrumentDetailsResponse:
      type: object
      required:
        - instruments
      properties:
        instruments:
          type: array
          items:
            $ref: '#/components/schemas/InstrumentDetailsResponseItem'
          description: Live 24h volume and price change for the requested instrument(s).
      examples:
        - instruments:
            - change24hr: '1.23'
              instrumentId: '0x85d55cb42a3e6b50'
              quoteVolume: '1121.2625'
              tradeCount: 42
              volume24hr: '12.5'
    InstrumentDetailsResponseItem:
      type: object
      required:
        - instrumentId
        - volume24hr
        - quoteVolume
        - tradeCount
        - change24hr
      properties:
        change24hr:
          type: string
          description: Quote price change over the 24h window (decimal string).
        instrumentId:
          $ref: '#/components/schemas/InstrumentId'
        quoteVolume:
          type: string
        tradeCount:
          type: integer
          format: int64
          minimum: 0
        volume24hr:
          type: string

````