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

# List public instrument metadata

> Returns only instruments whose lifecycle state is `open`.



## OpenAPI

````yaml /_generated/openapi.yaml get /v1/market/instruments
openapi: 3.1.0
info:
  title: Joyride Core HTTP API
  version: 0.1.0
  description: |
    HTTP endpoints served by joyride-core v8 components. Decimal money,
    price, and quantity fields are strings with up to 8 decimal places unless
    noted otherwise.
servers:
  - url: https://joyride.exchange/api
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Public
  - name: Query
  - name: Withdrawals
  - name: Market Data
    description: Publicly accessible market data. No authentication required.
  - name: Account
    description: Account-scoped history and provisioning. Requires a bearer JWT.
  - name: Referrals
    description: Referral-code validation and attribution surfaces.
  - name: AI Chat
    description: >
      AI-powered trading assistant. Uses SIWS (Sign In With Solana)
      authentication

      and JWT sessions. Returns responses as Server-Sent Events (SSE).
paths:
  /v1/market/instruments:
    get:
      tags:
        - Public
      summary: List public instrument metadata
      description: Returns only instruments whose lifecycle state is `open`.
      operationId: listPublicInstruments
      responses:
        '200':
          description: Public instrument metadata
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicInstrumentsResponse'
      security: []
components:
  schemas:
    PublicInstrumentsResponse:
      type: object
      required:
        - instruments
      properties:
        instruments:
          type: array
          items:
            $ref: '#/components/schemas/PublicInstrument'
    PublicInstrument:
      type: object
      description: >-
        Public instrument metadata as returned by `/instruments`,
        `/v1/market/instruments`, and `public/get_instruments`. Clients
        interface with instruments by `symbol` only; the internal numeric
        instrument id is never exposed. Public discovery only returns currently
        open instruments.
      required:
        - symbol
        - underlying
        - strike
        - option_type
        - expiry
        - state
      properties:
        symbol:
          type: string
          description: >-
            Human-facing instrument symbol — the primary identifier clients use
            to submit orders (`instrument_name`) and subscribe to market data.
          example: BTC_USDC-2MAY26-77000-C
        underlying:
          type: string
          description: Underlying ticker, resolved from the internal id.
          example: BTC
        strike:
          $ref: '#/components/schemas/DecimalString'
        option_type:
          type: string
          enum:
            - call
            - put
            - unknown
        expiry:
          type: integer
        state:
          type: string
          enum:
            - open
    DecimalString:
      type: string
      pattern: ^-?[0-9]+(\.[0-9]{1,8})?$
      examples:
        - '100.00000000'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        SIWS-issued JWT. Admin commands require the `admin` role, `admin:*`, or
        the exact `admin:<type>` scope; admin reads use their documented read
        scope.

````