openapi: 3.1.0
info:
  title: Instruments
  version: 9.87.0
  description: tastytrade Instruments API.
  contact:
    name: tastytrade API support
    email: api.support@tastytrade.com
    url: https://developer.tastytrade.com
tags:
  - name: instruments
  - name: futures-option-chains
  - name: option-chains
paths:
  /instruments/cryptocurrencies:
    get:
      description: Returns active cryptocurrency instruments, optionally filtered by
        one or more symbols. Cryptocurrency symbols contain a forward slash
        (e.g. `BTC/USD`), so URL-encode them (e.g. `BTC%2FUSD`) before placing
        them in query parameters.
      parameters:
        - in: query
          name: symbol
          description: "Symbol(s) (example: symbol[]={value1}&symbol[]={value2})"
          required: false
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
          example:
            - BTC/USD
      responses:
        "200":
          description: Cryptocurrency instruments matching the requested symbols.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: "#/components/schemas/Cryptocurrency"
                    required:
                      - items
                  context:
                    type: string
                    example: /instruments/cryptocurrencies
                  pagination:
                    type: object
                    description: Paging metadata, present on paginated list responses.
                    properties:
                      per-page:
                        type: integer
                      page-offset:
                        type: integer
                      item-offset:
                        type: integer
                      total-items:
                        type: integer
                      total-pages:
                        type: integer
                      current-item-count:
                        type: integer
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsCryptocurrencies
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Cryptocurrencies
  /instruments/cryptocurrencies/{symbol}:
    get:
      description: Returns a single cryptocurrency instrument for the given symbol.
        The symbol contains a forward slash (e.g. `BTC/USD`) and must be
        URL-encoded (e.g. `BTC%2FUSD`) in the path.
      parameters:
        - in: path
          name: symbol
          description: Symbol
          required: true
          schema:
            type: string
          example: BTC/USD
      responses:
        "200":
          description: The cryptocurrency instrument for the requested symbol.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: "#/components/schemas/Cryptocurrency"
                  context:
                    type: string
                    example: /instruments/cryptocurrencies/{symbol}
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "404":
          description: No cryptocurrency exists for the given symbol. Verify the symbol
            and that it is URL-encoded.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsCryptocurrenciesSymbol
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: Get Cryptocurrency
  /instruments/equities:
    get:
      description: Returns equity definitions for one or more symbols. Optionally
        filter by lendability, or restrict results to index (`is-index`) or ETF
        (`is-etf`) instruments.
      parameters:
        - in: query
          name: symbol
          description: "The symbol of the equity(s), i.e `AAPL` (example:
            symbol[]={value1}&symbol[]={value2})"
          required: false
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
          example:
            - AAPL
        - in: query
          name: is-etf
          description: Flag indicating if equity is an etf instrument
          required: false
          schema:
            type: boolean
          example: true
        - in: query
          name: is-index
          description: Flag indicating if equity is an index instrument
          required: false
          schema:
            type: boolean
          example: true
        - in: query
          name: lendability
          description: Lendability
          required: false
          schema:
            type: string
            enum:
              - Easy To Borrow
              - Locate Required
              - Preborrow
          example: Easy To Borrow
      responses:
        "200":
          description: Equity definitions matching the requested symbols and filters.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: "#/components/schemas/Equity"
                    required:
                      - items
                  context:
                    type: string
                    example: /instruments/equities
                  pagination:
                    type: object
                    description: Paging metadata, present on paginated list responses.
                    properties:
                      per-page:
                        type: integer
                      page-offset:
                        type: integer
                      item-offset:
                        type: integer
                      total-items:
                        type: integer
                      total-pages:
                        type: integer
                      current-item-count:
                        type: integer
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsEquities
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Equities
  /instruments/equities/active:
    get:
      description: Returns all active equities in a paginated fashion. Use `per-page`
        and `page-offset` to page through results, and optionally filter by
        lendability.
      parameters:
        - in: query
          name: page-offset
          required: false
          schema:
            type: integer
            format: int32
            default: 0
          example: 10
        - in: query
          name: per-page
          required: false
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 5000
            default: 1000
          example: 10
        - in: query
          name: lendability
          description: Lendability. i.e. `Easy To Borrow`, `Locate Required` or `Preborrow`
          required: false
          schema:
            type: string
            enum:
              - Easy To Borrow
              - Locate Required
              - Preborrow
          example: Easy To Borrow
      responses:
        "200":
          description: A paginated list of active equities.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: "#/components/schemas/Equity"
                    required:
                      - items
                  context:
                    type: string
                    example: /instruments/equities/active
                  pagination:
                    type: object
                    description: Paging metadata, present on paginated list responses.
                    properties:
                      per-page:
                        type: integer
                      page-offset:
                        type: integer
                      item-offset:
                        type: integer
                      total-items:
                        type: integer
                      total-pages:
                        type: integer
                      current-item-count:
                        type: integer
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsEquitiesActive
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Active Equities
  /instruments/equities/{symbol}:
    get:
      description: Returns a single equity definition for the provided symbol (e.g. `AAPL`).
      parameters:
        - in: path
          name: symbol
          description: The symbol of the equity, i.e. `AAPL`
          required: true
          schema:
            type: string
          example: AAPL
      responses:
        "200":
          description: The equity definition for the requested symbol.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: "#/components/schemas/Equity"
                  context:
                    type: string
                    example: /instruments/equities/{symbol}
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "404":
          description: No equity exists for the given symbol. Verify the symbol is correct.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsEquitiesSymbol
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: Get Equity
  /instruments/equity-options:
    get:
      description: Returns equity option definitions for one or more symbols in OCC
        symbology (e.g. `SPY   230731C00393000`). Use `active` to filter out
        non-standard / flex options and `with-expired` to include expired
        contracts.
      parameters:
        - in: query
          name: active
          description: >-
            Whether an option is available for trading with the broker.
                             Terminology is somewhat misleading as this is generally used to filter non-standard / flex options out.
          required: false
          schema:
            type: boolean
          example: true
        - in: query
          name: symbol
          description: "The symbol of the equity option(s) using OCC Symbology, i.e.
            `[FB    180629C00200000]` (example:
            symbol[]={value1}&symbol[]={value2})"
          required: false
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
          example:
            - SPY   230731C00393000
        - in: query
          name: with-expired
          description: Include expired options
          required: false
          schema:
            type: boolean
          example: true
      responses:
        "200":
          description: Equity option definitions matching the requested symbols and filters.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: "#/components/schemas/EquityOption"
                    required:
                      - items
                  context:
                    type: string
                    example: /instruments/equity-options
                  pagination:
                    type: object
                    description: Paging metadata, present on paginated list responses.
                    properties:
                      per-page:
                        type: integer
                      page-offset:
                        type: integer
                      item-offset:
                        type: integer
                      total-items:
                        type: integer
                      total-pages:
                        type: integer
                      current-item-count:
                        type: integer
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsEquityOptions
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Equity Options
  /instruments/equity-options/{symbol}:
    get:
      description: Returns a single equity option instrument for the given symbol in
        OCC symbology (e.g. `SPY   230731C00393000`). Remember to URL-encode the
        embedded spaces.
      parameters:
        - in: path
          name: symbol
          description: The symbol of the equity option using OCC Symbology, i.e.
            `FB    180629C00200000`
          required: true
          schema:
            type: string
          example: FB    180629C00200000
        - in: query
          name: active
          description: >-
            Whether an option is available for trading with the broker.
                               Terminology is somewhat misleading as this is generally used to filter non-standard / flex options out.
          required: false
          schema:
            type: boolean
          example: true
      responses:
        "200":
          description: The equity option instrument for the requested symbol.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: "#/components/schemas/EquityOption"
                  context:
                    type: string
                    example: /instruments/equity-options/{symbol}
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "404":
          description: No equity option exists for the given symbol. Verify the OCC symbol
            and that spaces are URL-encoded.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsEquityOptionsSymbol
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: Get Equity Option
  /instruments/futures:
    get:
      description: Returns active outright futures contracts, optionally filtered by
        symbol or product code. Each future includes its associated product
        metadata nested under `future-product`. Futures symbols begin with a
        forward slash (e.g. `/ESU3`); URL-encode the slash (e.g. `%2FESU3`).
      parameters:
        - in: query
          name: exchange
          description: Name of the exchange for the product. Only used to avoid security
            id collisions if that is also given.
          required: false
          schema:
            type: string
        - in: query
          name: only-active-futures
          description: If true (defaults to true), only active futures are returned.
          required: false
          schema:
            type: boolean
          example: true
        - in: query
          name: product-code
          description: >-
            The product code of the future(s), i.e.
            `product-code[]=ES&product-code[]=6A`. \
                             Ignored if `symbol` parameter is given. (example: product-code[]={value1}&product-code[]={value2})
          required: false
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
        - in: query
          name: security-id
          description: "Exchange-specific ID used for order routing (example:
            security-id[]={value1}&security-id[]={value2})"
          required: false
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
        - in: query
          name: symbol
          description: "The symbol of the future(s), i.e. `symbol[]=ESZ9`. Leading forward
            slash is not required. (example:
            symbol[]={value1}&symbol[]={value2})"
          required: false
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
          example:
            - /ESU3
      responses:
        "200":
          description: Outright futures matching the requested symbols, product codes, or
            security ids.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: "#/components/schemas/Future"
                    required:
                      - items
                  context:
                    type: string
                    example: /instruments/futures
                  pagination:
                    type: object
                    description: Paging metadata, present on paginated list responses.
                    properties:
                      per-page:
                        type: integer
                      page-offset:
                        type: integer
                      item-offset:
                        type: integer
                      total-items:
                        type: integer
                      total-pages:
                        type: integer
                      current-item-count:
                        type: integer
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsFutures
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Futures
  /instruments/futures/{symbol}:
    get:
      description: Returns a single outright future for the given symbol (e.g.
        `/ESU3`). The leading forward slash is optional; URL-encode it (`%2F`)
        when present in the path.
      parameters:
        - in: path
          name: symbol
          description: The symbol of the future, i.e. `ESZ9`. Leading forward slash is not
            required.
          required: true
          schema:
            type: string
          example: ESZ9
      responses:
        "200":
          description: The outright future for the requested symbol.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: "#/components/schemas/Future"
                  context:
                    type: string
                    example: /instruments/futures/{symbol}
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "404":
          description: No future exists for the given symbol. Verify the symbol and that
            the forward slash is URL-encoded.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsFuturesSymbol
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: Get Future
  /instruments/future-option-products:
    get:
      description: Returns metadata for all supported future option products. A future
        option product is not a tradeable instrument; it describes the option
        contract code (root symbol) and expiration type, and includes the parent
        `future-product` it belongs to.
      responses:
        "200":
          description: All supported future option products.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: "#/components/schemas/FutureOptionProduct"
                    required:
                      - items
                  context:
                    type: string
                    example: /instruments/future-option-products
                  pagination:
                    type: object
                    description: Paging metadata, present on paginated list responses.
                    properties:
                      per-page:
                        type: integer
                      page-offset:
                        type: integer
                      item-offset:
                        type: integer
                      total-items:
                        type: integer
                      total-pages:
                        type: integer
                      current-item-count:
                        type: integer
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsFutureOptionProducts
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Future Option Products
  /instruments/future-option-products/{exchange}/{root_symbol}:
    get:
      description: Returns a single future option product identified by exchange and
        root symbol (e.g. exchange `CME`, root symbol `EW1`).
      parameters:
        - in: path
          name: exchange
          required: true
          schema:
            type: string
        - in: path
          name: root_symbol
          required: true
          schema:
            type: string
      responses:
        "200":
          description: The future option product for the given exchange and root symbol.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: "#/components/schemas/FutureOptionProduct"
                  context:
                    type: string
                    example: /instruments/future-option-products/{exchange}/{root_symbol}
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "404":
          description: No future option product exists for the given exchange and root
            symbol.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsFutureOptionProductsExchangeRootSymbol
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: Get Future Option Product
  /instruments/future-option-products/{root_symbol}:
    get:
      description: "Returns a single future option product identified by root symbol
        alone. Deprecated: prefer
        `/instruments/future-option-products/{exchange}/{root_symbol}`."
      parameters:
        - in: path
          name: root_symbol
          required: true
          schema:
            type: string
      responses:
        "200":
          description: The future option product for the given root symbol.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: "#/components/schemas/FutureOptionProduct"
                  context:
                    type: string
                    example: /instruments/future-option-products/{root_symbol}
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "404":
          description: No future option product exists for the given root symbol.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsFutureOptionProductsRootSymbol
      deprecated: true
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: Get Future Option Product By Root
  /instruments/future-options:
    get:
      description: Returns future option definitions for one or more symbols using
        tastytrade symbology (e.g. `./ESZ9 EW4U9 190927P2975`). You may filter
        by `option-root-symbol`, `expiration-date`, `option-type`, and
        `strike-price`, but these must be supplied together; `symbol` and
        `option-root-symbol` are mutually exclusive.
      parameters:
        - in: query
          name: exchange
          description: Name of the exchange for the product
          required: false
          schema:
            type: string
        - in: query
          name: expiration-date
          description: Expiration date
          required: false
          schema:
            type: string
            format: date
          example: 2024-01-15
        - in: query
          name: maturity-date
          description: Maturity date
          required: false
          schema:
            type: string
            format: date
          example: 2024-01-15
        - in: query
          name: option-root-symbol
          description: Future option root, i.e. EW3 or SO
          required: false
          schema:
            type: string
          example: EW1
        - in: query
          name: option-type
          description: P(ut) or C(all)
          required: false
          schema:
            type: string
            enum:
              - C
              - P
          example: C
        - in: query
          name: security-id
          description: "Exchange-specific ID used for order routing (example:
            security-id[]={value1}&security-id[]={value2})"
          required: false
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
        - in: query
          name: strike-price
          description: Strike price using display factor
          required: false
          schema:
            type: string
            format: decimal
            description: Decimal value serialized as a JSON string (e.g. "150.25").
          example: "97.50"
        - in: query
          name: symbol
          description: "The symbol of the future option(s) (example:
            symbol[]={value1}&symbol[]={value2})"
          required: false
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
          example:
            - ./ESZ9 EW4U9 190927P2975
      responses:
        "200":
          description: Future options matching the requested symbols and filters.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: "#/components/schemas/FutureOption"
                    required:
                      - items
                  context:
                    type: string
                    example: /instruments/future-options
                  pagination:
                    type: object
                    description: Paging metadata, present on paginated list responses.
                    properties:
                      per-page:
                        type: integer
                      page-offset:
                        type: integer
                      item-offset:
                        type: integer
                      total-items:
                        type: integer
                      total-pages:
                        type: integer
                      current-item-count:
                        type: integer
                required:
                  - data
                  - context
        "400":
          description: Invalid filter combination. The `option-root-symbol`,
            `expiration-date`, `option-type`, and `strike-price` filters must be
            supplied together, and `symbol` and `option-root-symbol` are
            mutually exclusive.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsFutureOptions
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Future Options
  /instruments/future-options/{symbol}:
    get:
      description: Returns a single future option for the given symbol using
        tastytrade symbology (e.g. `./ESZ9 EW4U9 190927P2975`). URL-encode the
        leading `./`, the forward slash, and the spaces before placing the
        symbol in the path.
      parameters:
        - in: path
          name: symbol
          description: The symbol of the future option
          required: true
          schema:
            type: string
          example: ./ESZ9 EW4U9 190927P2975
      responses:
        "200":
          description: The future option for the requested symbol.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: "#/components/schemas/FutureOption"
                  context:
                    type: string
                    example: /instruments/future-options/{symbol}
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "404":
          description: No future option exists for the given symbol. Verify the symbol and
            that special characters are URL-encoded.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsFutureOptionsSymbol
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: Get Future Option
  /instruments/future-products:
    get:
      description: Returns metadata for all supported futures products. A future
        product is not a tradeable instrument; it describes attributes such as
        the contract code and the months of the year that contracts are listed.
        For example, the E-mini S&P 500 product code is `ES` and every contract
        begins with `/ES`.
      responses:
        "200":
          description: All supported futures products.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: "#/components/schemas/FutureProduct"
                    required:
                      - items
                  context:
                    type: string
                    example: /instruments/future-products
                  pagination:
                    type: object
                    description: Paging metadata, present on paginated list responses.
                    properties:
                      per-page:
                        type: integer
                      page-offset:
                        type: integer
                      item-offset:
                        type: integer
                      total-items:
                        type: integer
                      total-pages:
                        type: integer
                      current-item-count:
                        type: integer
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsFutureProducts
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Future Products
  /instruments/future-products/{exchange}/{code}:
    get:
      description: Returns a single future product identified by exchange and product
        code (e.g. exchange `CME`, code `CL`).
      parameters:
        - in: path
          name: exchange
          description: The exchange code
          required: true
          schema:
            type: string
            enum:
              - CBOED
              - CFE
              - CME
              - SMALLS
          example: CBOED
        - in: path
          name: code
          description: The product code, i.e. `ES`
          required: true
          schema:
            type: string
          example: ES
      responses:
        "200":
          description: The future product for the given exchange and product code.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: "#/components/schemas/FutureProduct"
                  context:
                    type: string
                    example: /instruments/future-products/{exchange}/{code}
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "404":
          description: No future product exists for the given exchange and product code.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsFutureProductsExchangeCode
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: Get Future Product
  /instruments/quantity-decimal-precisions:
    get:
      description: Returns the quantity decimal precision for each instrument type or
        symbol. The `value` defines how many decimal places a quantity may use;
        for example BTC/USD has a precision of 8, so `0.12345678` is valid but
        `0.123456789` is not. A value of 0 means the instrument must trade in
        whole numbers.
      responses:
        "200":
          description: Quantity decimal precision definitions.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: "#/components/schemas/QuantityDecimalPrecision"
                    required:
                      - items
                  context:
                    type: string
                    example: /instruments/quantity-decimal-precisions
                  pagination:
                    type: object
                    description: Paging metadata, present on paginated list responses.
                    properties:
                      per-page:
                        type: integer
                      page-offset:
                        type: integer
                      item-offset:
                        type: integer
                      total-items:
                        type: integer
                      total-pages:
                        type: integer
                      current-item-count:
                        type: integer
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsQuantityDecimalPrecisions
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Quantity Decimal Precisions
  /instruments/warrants:
    get:
      description: Returns active warrant definitions, optionally filtered by one or
        more symbols (e.g. `NKLAW`).
      parameters:
        - in: query
          name: symbol
          description: "The symbol of the warrant(s), i.e `NKLAW` (example:
            symbol[]={value1}&symbol[]={value2})"
          required: false
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
          example:
            - NKLAW
      responses:
        "200":
          description: Warrant definitions matching the requested symbols.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: "#/components/schemas/Warrant"
                    required:
                      - items
                  context:
                    type: string
                    example: /instruments/warrants
                  pagination:
                    type: object
                    description: Paging metadata, present on paginated list responses.
                    properties:
                      per-page:
                        type: integer
                      page-offset:
                        type: integer
                      item-offset:
                        type: integer
                      total-items:
                        type: integer
                      total-pages:
                        type: integer
                      current-item-count:
                        type: integer
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsWarrants
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Warrants
  /instruments/warrants/{symbol}:
    get:
      description: Returns a single warrant definition for the provided symbol (e.g.
        `SEPAW`).
      parameters:
        - in: path
          name: symbol
          required: true
          schema:
            type: string
          example: AAPL
      responses:
        "200":
          description: The warrant definition for the requested symbol.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: "#/components/schemas/Warrant"
                  context:
                    type: string
                    example: /instruments/warrants/{symbol}
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "404":
          description: No warrant exists for the given symbol. Verify the symbol is correct.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - instruments
      operationId: getInstrumentsWarrantsSymbol
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: Get Warrant
  /futures-option-chains/{symbol}:
    get:
      description: Returns the full futures option chain for a given futures product
        code (e.g. `ES`) as a flat list of future option instruments. Each item
        is a complete future option representation.
      parameters:
        - in: path
          name: symbol
          required: true
          schema:
            type: string
          example: ES
      responses:
        "200":
          description: The futures option chain for the given product code as future
            option instruments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: "#/components/schemas/FutureOption"
                    required:
                      - items
                  context:
                    type: string
                    example: /futures-option-chains/{symbol}
                  pagination:
                    type: object
                    description: Paging metadata, present on paginated list responses.
                    properties:
                      per-page:
                        type: integer
                      page-offset:
                        type: integer
                      item-offset:
                        type: integer
                      total-items:
                        type: integer
                      total-pages:
                        type: integer
                      current-item-count:
                        type: integer
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "404":
          description: No futures option chain exists for the given product code.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - futures-option-chains
      operationId: getFuturesOptionChainsSymbol
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Detailed Futures Option Chains
  /futures-option-chains/{symbol}/nested:
    get:
      description: Returns the futures option chain for a given futures product code
        (e.g. `ES`) in a nested form that groups data by expiration and strike
        to minimize redundant processing. Each strike provides its call and put
        symbols.
      parameters:
        - in: path
          name: symbol
          required: true
          schema:
            type: string
          example: ES
      responses:
        "200":
          description: The nested futures option chain for the given product code.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: "#/components/schemas/FuturesNestedOptionChainSerializer"
                  context:
                    type: string
                    example: /futures-option-chains/{symbol}/nested
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "404":
          description: No futures option chain exists for the given product code.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - futures-option-chains
      operationId: getFuturesOptionChainsSymbolNested
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Nested Futures Option Chains
  /option-chains/{symbol}:
    get:
      description: Returns the full equity option chain for an underlying symbol (e.g.
        `AAPL`) as a flat list of equity option instruments. Each item is a
        complete equity option representation.
      parameters:
        - in: path
          name: symbol
          required: true
          schema:
            type: string
          example: AAPL
      responses:
        "200":
          description: The equity option chain for the given underlying symbol as equity
            option instruments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        items:
                          $ref: "#/components/schemas/EquityOption"
                    required:
                      - items
                  context:
                    type: string
                    example: /option-chains/{symbol}
                  pagination:
                    type: object
                    description: Paging metadata, present on paginated list responses.
                    properties:
                      per-page:
                        type: integer
                      page-offset:
                        type: integer
                      item-offset:
                        type: integer
                      total-items:
                        type: integer
                      total-pages:
                        type: integer
                      current-item-count:
                        type: integer
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "404":
          description: No option chain exists for the given underlying symbol.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - option-chains
      operationId: getOptionChainsSymbol
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Detailed Option Chains
  /option-chains/{symbol}/compact:
    get:
      description: Returns the equity option chain for an underlying symbol (e.g.
        `AAPL`) in a compact form that concatenates every strike symbol across
        all expirations into a single array, minimizing content size.
      parameters:
        - in: path
          name: symbol
          required: true
          schema:
            type: string
          example: AAPL
      responses:
        "200":
          description: The compact equity option chain for the given underlying symbol.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: "#/components/schemas/CompactOptionChainList"
                  context:
                    type: string
                    example: /option-chains/{symbol}/compact
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "404":
          description: No option chain exists for the given underlying symbol.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - option-chains
      operationId: getOptionChainsSymbolCompact
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Compact Option Chains
  /option-chains/{symbol}/nested:
    get:
      description: Returns the equity option chain for an underlying symbol (e.g.
        `AAPL`) in a nested form that groups expirations and strikes together to
        minimize redundant processing. Each strike provides its call and put
        symbols.
      parameters:
        - in: path
          name: symbol
          required: true
          schema:
            type: string
          example: AAPL
      responses:
        "200":
          description: The nested equity option chain for the given underlying symbol.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: "#/components/schemas/NestedOptionChainList"
                  context:
                    type: string
                    example: /option-chains/{symbol}/nested
                required:
                  - data
                  - context
        "401":
          description: Missing or expired access token, or a missing/malformed
            `User-Agent` header.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
                example:
                  error:
                    code: unauthorized
                    message: No valid access token was provided; access tokens expire after 15
                      minutes.
        "404":
          description: No option chain exists for the given underlying symbol.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
        "429":
          description: Request rate exceeded. Back off exponentially and reduce request
            frequency.
          content:
            application/json:
              schema:
                type: object
                description: Standard tastytrade error envelope. Branch on error.code, not the
                  message text.
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: string
                        description: Machine-readable error code (see the Error reference).
                      message:
                        type: string
                        description: Human-readable explanation.
                      errors:
                        type: array
                        description: Present for multi-error / validation failures; one entry per
                          problem.
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            message:
                              type: string
                            domain:
                              type: string
                required:
                  - error
      tags:
        - option-chains
      operationId: getOptionChainsSymbolNested
      x-tt-class: read
      x-money-moving: false
      x-idempotent: true
      x-rate-limit-bucket: read
      summary: List Nested Option Chains
servers:
  - url: https://api.cert.tastyworks.com
    description: Sandbox
  - url: https://api.tastyworks.com
    description: Production
components:
  schemas:
    Cryptocurrency:
      type: object
      properties:
        id:
          description: Unique numeric identifier for the cryptocurrency instrument.
          type: integer
          format: int32
          example: 1
        active:
          description: Whether the instrument is currently active and available for trading.
          type: boolean
          example: true
        description:
          description: Full human-readable description of the cryptocurrency pair.
          type: string
          example: Bitcoin to USD
        instrument-type:
          description: Instrument type discriminator; always `Cryptocurrency` for this
            model.
          type: string
          example: Cryptocurrency
        is-closing-only:
          description: Whether the instrument is restricted to closing transactions only.
          type: boolean
          example: false
        short-description:
          description: Short human-readable name for the cryptocurrency.
          type: string
          example: Bitcoin
        streamer-symbol:
          description: Symbol used to subscribe to market data on the DXLink streamer.
          type: string
          example: BTC/USD:CXTALP
        symbol:
          description: The cryptocurrency symbol (e.g. `BTC/USD`). URL-encode the forward
            slash when used in a URL.
          type: string
          example: BTC/USD
        tick-size:
          description: Minimum price increment for the instrument. Decimal value
            serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
          example: "0.01"
        destination-venue-symbols:
          description: Symbol listings at each destination venue, including the venue's
            precision limits and whether the venue is routable.
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
                example: 1
              symbol:
                description: Symbol used at the destination venue.
                type: string
                example: BTC
              destination-venue:
                description: Name of the destination venue.
                type: string
                example: CITADEL_CRYPTOCURRENCY
              max-quantity-precision:
                description: Maximum number of decimal places allowed in a quantity at this
                  venue.
                type: integer
                example: 8
              max-price-precision:
                description: Maximum number of decimal places allowed in a price at this venue.
                type: integer
                example: 8
              routable:
                description: Whether orders can be routed to this venue.
                type: boolean
                example: true
          x-tt-source: observed-response
      description: A tradeable cryptocurrency instrument such as BTC/USD.
        Cryptocurrency symbols contain a forward slash and are most often traded
        in fractional quantities.
    Equity:
      type: object
      properties:
        active:
          description: Whether the equity is currently active and tradeable.
          type: boolean
          example: true
        borrow-rate:
          description: Current rate charged to borrow shares for short selling. Decimal
            value serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
          example: "0.0"
        bypass-manual-review:
          description: ""
          type: boolean
        country-of-incorporation:
          description: ""
          type: string
        country-of-taxation:
          description: ""
          type: string
        description:
          description: Full company or fund description.
          type: string
          example: APPLE INC
        halted-at:
          description: ""
          type: string
          format: date-time
        instrument-sub-type:
          description: Optional sub-classification of the equity instrument.
          type: string
          example: Index
        instrument-type:
          description: Instrument type discriminator; always `Equity` for this model.
          type: string
          example: Equity
        is-closing-only:
          description: Whether the equity is restricted to closing transactions only.
          type: boolean
          example: false
        is-etf:
          description: Whether the equity is an exchange-traded fund.
          type: boolean
          example: false
        is-fractional-quantity-eligible:
          description: Whether the equity can be traded in fractional share quantities.
          type: boolean
          example: true
        is-illiquid:
          description: Whether the equity is flagged as illiquid.
          type: boolean
          example: false
        is-index:
          description: Whether the equity is an index instrument.
          type: boolean
          example: false
        is-options-closing-only:
          description: Whether options on this equity are restricted to closing
            transactions only.
          type: boolean
          example: false
        lendability:
          description: "Borrowing classification for short selling: `Easy To Borrow`,
            `Locate Required`, or `Preborrow`."
          type: string
          example: Easy To Borrow
        listed-market:
          description: Market identifier code (MIC) of the listing exchange.
          type: string
          example: XNAS
        market-time-instrument-collection:
          description: Market-time collection used to determine trading hours for the
            instrument.
          type: string
          example: Equity
        overnight-trading-permitted:
          description: ""
          type: boolean
        short-description:
          description: Short human-readable name for the equity.
          type: string
          example: APPLE INC
        stops-trading-at:
          description: ""
          type: string
          format: date-time
        streamer-symbol:
          description: Symbol used to subscribe to market data on the DXLink streamer.
          type: string
          example: AAPL
        symbol:
          description: The equity ticker symbol (e.g. `AAPL`).
          type: string
          example: AAPL
        underlying-product-type:
          description: ""
          type: string
        option-tick-sizes:
          description: Tick sizes for options on the equity.
          type: array
          properties:
            symbol:
              description: ""
              type: string
            threshold:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
            value:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
          items:
            type: object
            properties:
              symbol:
                description: ""
                type: string
              threshold:
                description: Decimal value serialized as a JSON string (e.g. "150.25").
                type: string
                format: decimal
              value:
                description: Decimal value serialized as a JSON string (e.g. "150.25").
                type: string
                format: decimal
          example:
            - value: "0.01"
              threshold: "3.0"
            - value: "0.05"
        tick-sizes:
          description: Tick sizes for the equity. Each entry gives a tick `value` and,
            when the tick applies only below a price level, a `threshold`.
          type: array
          properties:
            symbol:
              description: ""
              type: string
            threshold:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
            value:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
          items:
            type: object
            properties:
              symbol:
                description: ""
                type: string
              threshold:
                description: Decimal value serialized as a JSON string (e.g. "150.25").
                type: string
                format: decimal
              value:
                description: Decimal value serialized as a JSON string (e.g. "150.25").
                type: string
                format: decimal
          example:
            - value: "0.0001"
              threshold: "1.0"
            - value: "0.01"
        id:
          description: Unique numeric identifier of the equity instrument.
          type: integer
          example: 726
          x-tt-source: observed-response
        cusip:
          description: CUSIP identifier of the equity.
          type: string
          example: "037833100"
          x-tt-source: observed-response
      description: An equity instrument (common stock, ETF, or index) identified by
        its ticker symbol.
    EquityOption:
      type: object
      properties:
        active:
          description: Whether the option is currently available for trading with the
            broker.
          type: boolean
          example: true
        days-to-expiration:
          description: Number of days remaining until the option expires.
          type: integer
          format: int32
          example: 1
        exercise-style:
          description: Exercise style of the option, e.g. `American` or `European`.
          type: string
          example: American
        expiration-date:
          description: Calendar date on which the option expires (ISO-8601).
          type: string
          format: date
          example: 2023-07-31
        expiration-type:
          description: Expiration classification, e.g. `Regular`, `Weekly`, or `Quarterly`.
          type: string
          example: Weekly
        expires-at:
          description: Exact timestamp at which the option expires (ISO-8601).
          type: string
          format: date-time
          example: 2023-07-31T20:15:00.000+00:00
        halted-at:
          description: ""
          type: string
          format: date-time
        instrument-type:
          description: Instrument type discriminator; always `Equity Option` for this model.
          type: string
          example: Equity Option
        is-closing-only:
          description: Whether the option is restricted to closing transactions only.
          type: boolean
          example: false
        listed-market:
          description: ""
          type: string
        market-time-instrument-collection:
          description: ""
          type: string
        old-security-number:
          description: ""
          type: string
        option-chain-type:
          description: Type of option chain the contract belongs to, e.g. `Standard`.
          type: string
          example: Standard
        option-type:
          description: Whether the option is a call (`C`) or a put (`P`).
          type: string
          example: C
        root-symbol:
          description: Root symbol of the option, typically the underlying ticker.
          type: string
          example: SPY
        settlement-type:
          description: Settlement type, e.g. `PM` or `AM`.
          type: string
          example: PM
        shares-per-contract:
          description: Number of underlying shares deliverable per contract.
          type: integer
          format: int32
          example: 100
        stops-trading-at:
          description: Timestamp at which the option stops trading (ISO-8601).
          type: string
          format: date-time
          example: 2023-07-31T20:15:00.000+00:00
        streamer-symbol:
          description: Symbol used to subscribe to market data on the DXLink streamer.
          type: string
          example: .SPY230731C393
        strike-price:
          description: Strike price of the option. Decimal value serialized as a JSON
            string (e.g. "150.25").
          type: string
          format: decimal
          example: "393.0"
        symbol:
          description: The equity option symbol in OCC format.
          type: string
          example: SPY   230731C00393000
        underlying-symbol:
          description: Ticker symbol of the underlying equity.
          type: string
          example: SPY
      description: An equity option contract identified by its OCC symbol (e.g.
        `SPY   230731C00393000`).
    Future:
      type: object
      properties:
        active:
          description: Whether the contract is currently active.
          type: boolean
          example: true
        active-month:
          description: Whether this contract is in the currently active (front) month.
          type: boolean
          example: true
        back-month-first-calendar-symbol:
          description: ""
          type: boolean
        closing-only-date:
          description: ""
          type: string
          format: date
        contract-size:
          description: Size of the contract in underlying units. Decimal value serialized
            as a JSON string (e.g. "150.25").
          type: string
          format: decimal
          example: "50.0"
        display-factor:
          description: Factor applied to convert raw prices to display prices. Decimal
            value serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
          example: "0.01"
        exchange:
          description: Exchange on which the future trades.
          type: string
          example: CME
        exchange-data:
          description: ""
          type: object
        expiration-date:
          description: Calendar date on which the contract expires (ISO-8601).
          type: string
          format: date
          example: 2023-09-15
        expires-at:
          description: Exact timestamp at which the contract expires (ISO-8601).
          type: string
          format: date-time
          example: 2023-09-15T13:30:00.000+00:00
        first-notice-date:
          description: ""
          type: string
          format: date
        product-group:
          description: Internal grouping identifier for the product.
          type: string
          example: CME_ES
        is-closing-only:
          description: Whether the contract is restricted to closing transactions only.
          type: boolean
          example: false
        last-trade-date:
          description: Last date on which the contract may be traded (ISO-8601).
          type: string
          format: date
          example: 2023-09-15
        main-fraction:
          description: Decimal value serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
        next-active-month:
          description: Whether this contract is the next active month.
          type: boolean
          example: false
        notional-multiplier:
          description: Multiplier used to compute notional value from price. Decimal value
            serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
          example: "50.0"
        product-code:
          description: Product code of the future (e.g. `ES`).
          type: string
          example: ES
        roll-target-symbol:
          description: Symbol of the contract this one rolls into.
          type: string
          example: /ESZ3
        security-id:
          description: ""
          type: string
        stops-trading-at:
          description: Timestamp at which the contract stops trading (ISO-8601).
          type: string
          format: date-time
          example: 2023-09-15T13:30:00.000+00:00
        streamer-exchange-code:
          description: Exchange code used by the DXLink streamer.
          type: string
          example: XCME
        streamer-symbol:
          description: Symbol used to subscribe to market data on the DXLink streamer.
          type: string
          example: /ESU23:XCME
        sub-fraction:
          description: Decimal value serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
        symbol:
          description: The future contract symbol, beginning with a forward slash (e.g.
            `/ESU3`).
          type: string
          example: /ESU3
        tick-size:
          description: Minimum price increment for the contract. Decimal value serialized
            as a JSON string (e.g. "150.25").
          type: string
          format: decimal
          example: "0.25"
        is-tradeable:
          description: Whether the contract is currently tradeable.
          type: boolean
          example: true
        true-underlying-symbol:
          description: ""
          type: string
        future-etf-equivalent:
          description: ""
          type: object
          properties:
            share-quantity:
              description: ""
              type: integer
              format: int32
            symbol:
              description: ""
              type: string
        future-product:
          description: ""
          type: object
          properties:
            active-months:
              description: ""
              type: string
            back-month-first-calendar-symbol:
              description: ""
              type: boolean
            base-tick:
              description: ""
              type: integer
              format: int32
            cash-settled:
              description: ""
              type: boolean
            code:
              description: ""
              type: string
            contract-limit:
              description: ""
              type: integer
              format: int32
            description:
              description: ""
              type: string
            display-factor:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
            exchange:
              description: ""
              type: string
            first-notice:
              description: ""
              type: boolean
            listed-months:
              description: ""
              type: string
            market-sector:
              description: ""
              type: string
            notional-multiplier:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
            price-format:
              description: ""
              type: string
            product-subtype:
              description: ""
              type: string
            product-type:
              description: ""
              type: string
            security-group:
              description: ""
              type: string
            small-notional:
              description: ""
              type: boolean
            streamer-exchange-code:
              description: ""
              type: string
            sub-tick:
              description: ""
              type: integer
              format: int32
            supported:
              description: ""
              type: boolean
            root-symbol:
              description: ""
              type: string
            tick-size:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
            true-underlying-code:
              description: ""
              type: string
            underlying-description:
              description: ""
              type: string
            underlying-identifier:
              description: ""
              type: string
        option-tick-sizes:
          description: Tick sizes for options on the contract.
          type: array
          properties:
            symbol:
              description: ""
              type: string
            threshold:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
            value:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
          items:
            type: object
            properties:
              symbol:
                description: ""
                type: string
              threshold:
                description: Decimal value serialized as a JSON string (e.g. "150.25").
                type: string
                format: decimal
              value:
                description: Decimal value serialized as a JSON string (e.g. "150.25").
                type: string
                format: decimal
          example:
            - value: "0.05"
              threshold: "5.0"
            - value: "0.25"
        spread-tick-sizes:
          description: Tick sizes for spreads on the contract; entries may be scoped to a
            `symbol`.
          type: array
          properties:
            symbol:
              description: ""
              type: string
            threshold:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
            value:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
          items:
            type: object
            properties:
              symbol:
                description: ""
                type: string
              threshold:
                description: Decimal value serialized as a JSON string (e.g. "150.25").
                type: string
                format: decimal
              value:
                description: Decimal value serialized as a JSON string (e.g. "150.25").
                type: string
                format: decimal
          example:
            - value: "0.05"
              symbol: /ESH4
            - value: "0.05"
              symbol: /ESZ3
        tick-sizes:
          description: Tick sizes for the contract.
          type: array
          properties:
            symbol:
              description: ""
              type: string
            threshold:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
            value:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
          items:
            type: object
            properties:
              symbol:
                description: ""
                type: string
              threshold:
                description: Decimal value serialized as a JSON string (e.g. "150.25").
                type: string
                format: decimal
              value:
                description: Decimal value serialized as a JSON string (e.g. "150.25").
                type: string
                format: decimal
          example:
            - value: "0.25"
      description: An outright futures contract (e.g. `/ESU3`). Includes the
        associated product metadata nested under `future-product`.
    FutureOptionProduct:
      type: object
      properties:
        cash-settled:
          description: Whether options on this product settle in cash rather than physical
            delivery.
          type: boolean
          example: false
        code:
          description: Product code.
          type: string
          example: EW1
        display-factor:
          description: Factor applied to convert raw prices to display prices. Decimal
            value serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
          example: "0.01"
        exchange:
          description: Exchange on which the product trades.
          type: string
          example: CME
        expiration-type:
          description: Expiration cadence, e.g. `Weekly` or `Monthly`.
          type: string
          example: Weekly
        is-am-settled:
          description: Whether the product settles in the morning (AM settlement).
          type: boolean
          example: false
        itm-rule:
          description: ""
          type: string
        market-sector:
          description: Market sector classification.
          type: string
          example: Equity Index
        product-subtype:
          description: ""
          type: string
        product-type:
          description: Product type, e.g. `Physical` or `Financial`.
          type: string
          example: Physical
        root-symbol:
          description: Root (contract) symbol of the future option product.
          type: string
          example: EW1
        settlement-delay-days:
          description: Number of days between expiration and settlement.
          type: integer
          format: int32
          example: 0
        supported:
          description: Whether the product is supported by tastytrade.
          type: boolean
          example: true
        legacy-code:
          description: Legacy code of the option product.
          type: string
          example: EW1
          x-tt-source: observed-response
        clearport-code:
          description: ClearPort code of the option product.
          type: string
          example: EW1
          x-tt-source: observed-response
        clearing-code:
          description: Clearing code of the option product.
          type: string
          example: W1
          x-tt-source: observed-response
        clearing-exchange-code:
          description: Clearing exchange code of the option product.
          type: string
          example: 9C
          x-tt-source: observed-response
        clearing-price-multiplier:
          description: Multiplier applied to clearing prices. Decimal value serialized as
            a JSON string (e.g. "150.25").
          type: string
          format: decimal
          example: "1.0"
          x-tt-source: observed-response
        is-rollover:
          description: Whether the option product is a rollover product.
          type: boolean
          example: false
          x-tt-source: observed-response
        future-product:
          description: The parent future product this option product belongs to. Always
            present.
          $ref: "#/components/schemas/FutureProduct"
          x-tt-source: observed-response
      description: Metadata describing a future option product. A future option
        product is not tradeable; it describes the option contract code and
        expiration characteristics.
    FutureOption:
      type: object
      properties:
        active:
          description: Whether the option is currently available for trading.
          type: boolean
          example: true
        days-to-expiration:
          description: Number of days remaining until the option expires.
          type: integer
          format: int32
          example: 4
        display-factor:
          description: Factor applied to convert raw prices to display prices. Decimal
            value serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
          example: "0.01"
        exchange:
          description: Exchange on which the option trades.
          type: string
          example: CME
        exercise-style:
          description: Exercise style of the option, e.g. `American` or `European`.
          type: string
          example: American
        expiration-date:
          description: Calendar date on which the option expires (ISO-8601).
          type: string
          format: date
          example: 2023-08-03
        expires-at:
          description: Exact timestamp at which the option expires (ISO-8601).
          type: string
          format: date-time
          example: 2023-08-03T20:00:00.000+00:00
        future-price-ratio:
          description: Decimal value serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
        is-closing-only:
          description: ""
          type: boolean
        is-confirmed:
          description: ""
          type: boolean
        is-exercisable-weekly:
          description: ""
          type: boolean
        is-primary-deliverable:
          description: ""
          type: boolean
        is-vanilla:
          description: Whether the option is a standard (vanilla) contract.
          type: boolean
          example: true
        last-trade-time:
          description: ""
          type: string
        maturity-date:
          description: Maturity date of the option (ISO-8601).
          type: string
          format: date
          example: 2023-08-03
        multiplier:
          description: Contract multiplier. Decimal value serialized as a JSON string
            (e.g. "150.25").
          type: string
          format: decimal
          example: "1.0"
        notional-value:
          description: Notional value associated with the contract. Decimal value
            serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
          example: "0.5"
        option-root-symbol:
          description: Root symbol of the future option product (e.g. `E1D`).
          type: string
          example: E1D
        option-type:
          description: Whether the option is a call (`C`) or a put (`P`).
          type: string
          example: P
        product-code:
          description: Product code of the underlying future (e.g. `ES`).
          type: string
          example: ES
        root-symbol:
          description: Root symbol of the underlying future (e.g. `/ES`).
          type: string
          example: /ES
        security-id:
          description: ""
          type: string
        settlement-type:
          description: Settlement type, e.g. `Future`.
          type: string
          example: Future
        stops-trading-at:
          description: Timestamp at which the option stops trading (ISO-8601).
          type: string
          format: date-time
          example: 2023-08-03T20:00:00.000+00:00
        streamer-symbol:
          description: Symbol used to subscribe to market data on the DXLink streamer.
          type: string
          example: ./E1DQ23P3860:XCME
        strike-factor:
          description: Decimal value serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
        strike-price:
          description: Strike price of the option. Decimal value serialized as a JSON
            string (e.g. "150.25").
          type: string
          format: decimal
          example: "3860.0"
        symbol:
          description: The future option symbol in tastytrade symbology.
          type: string
          example: ./ESU3 E1DQ3 230803P3860
        underlying-count:
          description: Decimal value serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
        underlying-symbol:
          description: Symbol of the underlying future contract (e.g. `/ESU3`).
          type: string
          example: /ESU3
        future-option-product:
          description: ""
          type: object
          properties:
            cash-settled:
              description: ""
              type: boolean
            code:
              description: ""
              type: string
            display-factor:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
            exchange:
              description: ""
              type: string
            expiration-type:
              description: ""
              type: string
            is-am-settled:
              description: ""
              type: boolean
            itm-rule:
              description: ""
              type: string
            market-sector:
              description: ""
              type: string
            product-subtype:
              description: ""
              type: string
            product-type:
              description: ""
              type: string
            root-symbol:
              description: ""
              type: string
            settlement-delay-days:
              description: ""
              type: integer
              format: int32
            supported:
              description: ""
              type: boolean
        exchange-symbol:
          description: Exchange-format symbol for the contract.
          type: string
          example: E1DQ3 P3860
          x-tt-source: observed-response
        security-exchange:
          description: Security exchange identifier.
          type: string
          example: "2"
          x-tt-source: observed-response
        sx-id:
          description: SX identifier.
          type: string
          example: "0"
          x-tt-source: observed-response
      description: A future option contract identified by tastytrade symbology (e.g.
        `./ESZ9 EW4U9 190927P2975`). Includes the associated product metadata
        nested under `future-option-product`.
    FutureProduct:
      type: object
      properties:
        active-months:
          description: Month codes with currently active contracts.
          type: array
          items:
            type: string
          example:
            - H
            - M
            - U
            - Z
        back-month-first-calendar-symbol:
          description: Whether the back month is the first calendar symbol for spreads.
          type: boolean
          example: true
        base-tick:
          description: ""
          type: integer
          format: int32
        cash-settled:
          description: Whether contracts of this product settle in cash.
          type: boolean
          example: true
        code:
          description: Product code (e.g. `ES`).
          type: string
          example: ES
        contract-limit:
          description: ""
          type: integer
          format: int32
        description:
          description: Human-readable description of the product.
          type: string
          example: E Mini S&P
        display-factor:
          description: Factor applied to convert raw prices to display prices. Decimal
            value serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
          example: "0.01"
        exchange:
          description: Exchange on which the product trades.
          type: string
          example: CME
        first-notice:
          description: Whether the product observes a first-notice date.
          type: boolean
          example: false
        listed-months:
          description: Month codes for which contracts of this product are listed.
          type: array
          items:
            type: string
          example:
            - H
            - M
            - U
            - Z
        market-sector:
          description: Market sector classification.
          type: string
          example: Equity Index
        notional-multiplier:
          description: Multiplier used to compute notional value from price. Decimal value
            serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
          example: "50.0"
        price-format:
          description: ""
          type: string
        product-subtype:
          description: ""
          type: string
        product-type:
          description: Product type, e.g. `Financial` or `Physical`.
          type: string
          example: Financial
        security-group:
          description: Security group identifier.
          type: string
          example: ES
        small-notional:
          description: Whether this is a small-notional (micro) product.
          type: boolean
          example: false
        streamer-exchange-code:
          description: Exchange code used by the DXLink streamer.
          type: string
          example: XCME
        sub-tick:
          description: ""
          type: integer
          format: int32
        supported:
          description: Whether the product is supported by tastytrade.
          type: boolean
          example: true
        root-symbol:
          description: Root symbol of the product (e.g. `/ES`).
          type: string
          example: /ES
        tick-size:
          description: Minimum price increment for contracts of this product. Decimal
            value serialized as a JSON string (e.g. "150.25").
          type: string
          format: decimal
          example: "0.25"
        true-underlying-code:
          description: ""
          type: string
        underlying-description:
          description: ""
          type: string
        underlying-identifier:
          description: ""
          type: string
        clearing-code:
          description: Clearing code of the product.
          type: string
          example: ES
          x-tt-source: observed-response
        clearing-exchange-code:
          description: Clearing exchange code of the product.
          type: string
          example: "16"
          x-tt-source: observed-response
        clearport-code:
          description: ClearPort code of the product.
          type: string
          example: ES
          x-tt-source: observed-response
        legacy-code:
          description: Legacy code of the product.
          type: string
          example: ES
          x-tt-source: observed-response
        legacy-exchange-code:
          description: Legacy exchange code of the product.
          type: string
          example: CME
          x-tt-source: observed-response
        option-products:
          description: Future option products associated with this product. Missing or
            empty when tastytrade does not offer options for the product.
          type: array
          items:
            $ref: "#/components/schemas/FutureOptionProduct"
          x-tt-source: observed-response
        roll:
          description: Contract roll attributes for the product.
          type: object
          properties:
            name:
              type: string
              example: equity_index
            active-count:
              type: integer
              example: 3
            cash-settled:
              type: boolean
              example: true
            business-days-offset:
              type: integer
              example: 4
            first-notice:
              type: boolean
              example: false
          x-tt-source: observed-response
      description: Metadata describing a futures product. A future product is not
        tradeable; it describes attributes such as the contract code, listed
        months, and tick size.
    QuantityDecimalPrecision:
      type: object
      properties:
        instrument-type:
          description: The instrument type the precision applies to, e.g. `Cryptocurrency`
            or `Equity`.
          type: string
          example: Cryptocurrency
        minimum-increment-precision:
          description: Decimal precision of the minimum tradeable increment.
          type: integer
          format: int32
          example: 8
        symbol:
          description: Specific symbol the precision applies to, when scoped to a single
            instrument.
          type: string
          example: BTC/USD
        value:
          description: Number of decimal places allowed in a quantity. A value of 0 means
            whole numbers only.
          type: integer
          format: int32
          example: 8
      description: Defines the decimal precision allowed for an instrument type or
        symbol's quantity. Mostly relevant for cryptocurrencies and
        fractional-eligible equities.
    Warrant:
      type: object
      properties:
        active:
          description: Whether the warrant is currently active.
          type: boolean
          example: true
        cusip:
          description: CUSIP identifier for the warrant.
          type: string
          example: "021304206"
        description:
          description: Full human-readable description of the warrant.
          type: string
          example: AlphaTime Acquisition Corp - Warrant
        instrument-type:
          description: Instrument type discriminator; always `Warrant` for this model.
          type: string
          example: Warrant
        is-closing-only:
          description: Whether the warrant is restricted to closing transactions only.
          type: boolean
          example: false
        listed-market:
          description: Market identifier code (MIC) of the listing exchange.
          type: string
          example: XNAS
        symbol:
          description: The warrant ticker symbol.
          type: string
          example: ATMCW
      description: A warrant instrument identified by its ticker symbol (e.g. `ATMCW`).
    FuturesNestedOptionChainSerializer:
      type: object
      properties:
        futures:
          description: Futures contracts associated with the option chain.
          type: array
          properties:
            symbol:
              description: ""
              type: string
            root-symbol:
              description: ""
              type: string
            maturity-date:
              description: ""
              type: string
              format: date
            expiration-date:
              description: ""
              type: string
              format: date
            days-to-expiration:
              description: ""
              type: integer
              format: int32
            active-month:
              description: ""
              type: boolean
            next-active-month:
              description: ""
              type: boolean
            stops-trading-at:
              description: ""
              type: string
              format: date-time
            expires-at:
              description: ""
              type: string
              format: date-time
          items:
            type: object
            properties:
              symbol:
                description: ""
                type: string
              root-symbol:
                description: ""
                type: string
              maturity-date:
                description: ""
                type: string
                format: date
              expiration-date:
                description: ""
                type: string
                format: date
              days-to-expiration:
                description: ""
                type: integer
                format: int32
              active-month:
                description: ""
                type: boolean
              next-active-month:
                description: ""
                type: boolean
              stops-trading-at:
                description: ""
                type: string
                format: date-time
              expires-at:
                description: ""
                type: string
                format: date-time
        option-chains:
          description: Option chains grouped by expiration and strike for each underlying
            future.
          type: array
          properties:
            underlying-symbol:
              description: ""
              type: string
            root-symbol:
              description: ""
              type: string
            exercise-style:
              description: ""
              type: string
            expirations:
              description: ""
              type: array
              properties:
                underlying-symbol:
                  description: ""
                  type: string
                root-symbol:
                  description: ""
                  type: string
                option-root-symbol:
                  description: ""
                  type: string
                option-contract-symbol:
                  description: ""
                  type: string
                asset:
                  description: ""
                  type: string
                expiration-date:
                  description: ""
                  type: string
                  format: date
                days-to-expiration:
                  description: ""
                  type: integer
                  format: int32
                expiration-type:
                  description: ""
                  type: string
                settlement-type:
                  description: ""
                  type: string
                notional-value:
                  description: Decimal value serialized as a JSON string (e.g. "150.25").
                  type: string
                  format: decimal
                display-factor:
                  description: Decimal value serialized as a JSON string (e.g. "150.25").
                  type: string
                  format: decimal
                strike-factor:
                  description: Decimal value serialized as a JSON string (e.g. "150.25").
                  type: string
                  format: decimal
                stops-trading-at:
                  description: ""
                  type: string
                  format: date-time
                expires-at:
                  description: ""
                  type: string
                  format: date-time
                tick-sizes:
                  description: ""
                  type: array
                  properties:
                    symbol:
                      description: ""
                      type: string
                    threshold:
                      description: Decimal value serialized as a JSON string (e.g. "150.25").
                      type: string
                      format: decimal
                    value:
                      description: Decimal value serialized as a JSON string (e.g. "150.25").
                      type: string
                      format: decimal
                  items:
                    type: object
                strikes:
                  description: ""
                  type: array
                  properties:
                    strike-price:
                      description: Decimal value serialized as a JSON string (e.g. "150.25").
                      type: string
                      format: decimal
                    call:
                      description: ""
                      type: string
                    call-streamer-symbol:
                      description: ""
                      type: string
                    put:
                      description: ""
                      type: string
                    put-streamer-symbol:
                      description: ""
                      type: string
                  items:
                    type: object
              items:
                type: object
          items:
            type: object
            properties:
              underlying-symbol:
                description: ""
                type: string
              root-symbol:
                description: ""
                type: string
              exercise-style:
                description: ""
                type: string
              expirations:
                description: Expirations for the chain, each grouping its tick sizes and
                  strikes.
                type: array
                items:
                  type: object
                  properties:
                    underlying-symbol:
                      description: ""
                      type: string
                    root-symbol:
                      description: ""
                      type: string
                    option-root-symbol:
                      description: ""
                      type: string
                    option-contract-symbol:
                      description: ""
                      type: string
                    asset:
                      description: ""
                      type: string
                    expiration-date:
                      description: ""
                      type: string
                      format: date
                    days-to-expiration:
                      description: ""
                      type: integer
                      format: int32
                    expiration-type:
                      description: ""
                      type: string
                    settlement-type:
                      description: ""
                      type: string
                    notional-value:
                      description: Decimal value serialized as a JSON string (e.g. "150.25").
                      type: string
                      format: decimal
                    display-factor:
                      description: Decimal value serialized as a JSON string (e.g. "150.25").
                      type: string
                      format: decimal
                    strike-factor:
                      description: Decimal value serialized as a JSON string (e.g. "150.25").
                      type: string
                      format: decimal
                    stops-trading-at:
                      description: ""
                      type: string
                      format: date-time
                    expires-at:
                      description: ""
                      type: string
                      format: date-time
                    tick-sizes:
                      description: Tick sizes for the expiration.
                      type: array
                      items:
                        type: object
                        properties:
                          symbol:
                            description: ""
                            type: string
                          threshold:
                            description: Decimal value serialized as a JSON string (e.g. "150.25").
                            type: string
                            format: decimal
                          value:
                            description: Decimal value serialized as a JSON string (e.g. "150.25").
                            type: string
                            format: decimal
                    strikes:
                      description: Strikes for the expiration. Each strike provides its call and put
                        symbols.
                      type: array
                      items:
                        type: object
                        properties:
                          strike-price:
                            description: Decimal value serialized as a JSON string (e.g. "150.25").
                            type: string
                            format: decimal
                          call:
                            description: ""
                            type: string
                          call-streamer-symbol:
                            description: ""
                            type: string
                          put:
                            description: ""
                            type: string
                          put-streamer-symbol:
                            description: ""
                            type: string
      description: Nested representation of a futures option chain, grouping futures,
        expirations, and strikes to minimize redundant processing.
    CompactOptionChainSerializer:
      type: object
      properties:
        underlying-symbol:
          description: Ticker symbol of the underlying equity.
          type: string
          example: SPY
        root-symbol:
          description: Root symbol of the option chain.
          type: string
          example: SPY
        option-chain-type:
          description: Type of option chain, e.g. `Standard`.
          type: string
          example: Standard
        settlement-type:
          description: Settlement type, e.g. `PM`.
          type: string
          example: PM
        shares-per-contract:
          description: Number of underlying shares deliverable per contract.
          type: integer
          format: int32
          example: 100
        expiration-type:
          description: Expiration classification, e.g. `Weekly`.
          type: string
          example: Weekly
        deliverables:
          description: Deliverables for the option chain.
          type: array
          properties:
            id:
              description: ""
              type: integer
              format: int32
            amount:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
            deliverable-type:
              description: ""
              type: string
            description:
              description: ""
              type: string
            instrument-type:
              description: ""
              type: string
            percent:
              description: ""
              type: string
            root-symbol:
              description: ""
              type: string
            symbol:
              description: ""
              type: string
          items:
            type: object
            properties:
              id:
                description: ""
                type: integer
                format: int32
              amount:
                description: Decimal value serialized as a JSON string (e.g. "150.25").
                type: string
                format: decimal
              deliverable-type:
                description: ""
                type: string
              description:
                description: ""
                type: string
              instrument-type:
                description: ""
                type: string
              percent:
                description: ""
                type: string
              root-symbol:
                description: ""
                type: string
              symbol:
                description: ""
                type: string
          example:
            - id: 114830
              root-symbol: SPY
              deliverable-type: Shares
              description: 100 shares of SPY
              amount: "100.0"
              symbol: SPY
              instrument-type: Equity
              percent: "100"
        symbols:
          description: All option symbols (OCC format) across every expiration and strike,
            concatenated into a single array.
          type: array
          items:
            type: string
          example:
            - SPY   230731C00370000
            - SPY   230731P00370000
            - SPY   230731C00380000
            - SPY   230731P00380000
        streamer-symbols:
          description: Streamer symbols corresponding to each option symbol, concatenated
            into a single array.
          type: array
          items:
            type: string
          example:
            - .SPY230706C370
            - .SPY230706P370
      description: Compact representation of an equity option chain that concatenates
        all strike symbols across expirations into a single array to minimize
        content size.
    NestedOptionChainSerializer:
      type: object
      properties:
        underlying-symbol:
          description: Ticker symbol of the underlying equity.
          type: string
          example: SPY
        root-symbol:
          description: Root symbol of the option chain.
          type: string
          example: SPY
        option-chain-type:
          description: Type of option chain, e.g. `Standard`.
          type: string
          example: Standard
        shares-per-contract:
          description: Number of underlying shares deliverable per contract.
          type: integer
          format: int32
          example: 100
        tick-sizes:
          description: Tick sizes for the option chain.
          type: array
          properties:
            symbol:
              description: ""
              type: string
            threshold:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
            value:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
          items:
            type: object
            properties:
              symbol:
                description: ""
                type: string
              threshold:
                description: Decimal value serialized as a JSON string (e.g. "150.25").
                type: string
                format: decimal
              value:
                description: Decimal value serialized as a JSON string (e.g. "150.25").
                type: string
                format: decimal
        deliverables:
          description: Deliverables for the option chain.
          type: array
          properties:
            id:
              description: ""
              type: integer
              format: int32
            amount:
              description: Decimal value serialized as a JSON string (e.g. "150.25").
              type: string
              format: decimal
            deliverable-type:
              description: ""
              type: string
            description:
              description: ""
              type: string
            instrument-type:
              description: ""
              type: string
            percent:
              description: ""
              type: string
            root-symbol:
              description: ""
              type: string
            symbol:
              description: ""
              type: string
          items:
            type: object
            properties:
              id:
                description: ""
                type: integer
                format: int32
              amount:
                description: Decimal value serialized as a JSON string (e.g. "150.25").
                type: string
                format: decimal
              deliverable-type:
                description: ""
                type: string
              description:
                description: ""
                type: string
              instrument-type:
                description: ""
                type: string
              percent:
                description: ""
                type: string
              root-symbol:
                description: ""
                type: string
              symbol:
                description: ""
                type: string
        expirations:
          description: Expirations in the chain, each grouping its strikes.
          type: array
          properties:
            expiration-type:
              description: ""
              type: string
            expiration-date:
              description: ""
              type: string
              format: date
            days-to-expiration:
              description: ""
              type: integer
              format: int32
            settlement-type:
              description: ""
              type: string
            strikes:
              description: ""
              type: array
              properties:
                strike-price:
                  description: Decimal value serialized as a JSON string (e.g. "150.25").
                  type: string
                  format: decimal
                call:
                  description: ""
                  type: string
                call-streamer-symbol:
                  description: ""
                  type: string
                put:
                  description: ""
                  type: string
                put-streamer-symbol:
                  description: ""
                  type: string
              items:
                type: object
          items:
            type: object
            properties:
              expiration-type:
                description: ""
                type: string
              expiration-date:
                description: ""
                type: string
                format: date
              days-to-expiration:
                description: ""
                type: integer
                format: int32
              settlement-type:
                description: ""
                type: string
              strikes:
                description: Strikes for the expiration. Each strike provides its call and put
                  symbols.
                type: array
                items:
                  type: object
                  properties:
                    strike-price:
                      description: Decimal value serialized as a JSON string (e.g. "150.25").
                      type: string
                      format: decimal
                    call:
                      description: ""
                      type: string
                    call-streamer-symbol:
                      description: ""
                      type: string
                    put:
                      description: ""
                      type: string
                    put-streamer-symbol:
                      description: ""
                      type: string
      description: Nested representation of an equity option chain, grouping
        expirations and strikes together. Each strike provides its call and put
        symbols.
    NestedOptionChainList:
      description: Container for the nested equity option chain. The chain objects are
        returned in an `items` array.
      type: object
      properties:
        items:
          description: Nested option chain objects for the underlying symbol.
          type: array
          items:
            $ref: "#/components/schemas/NestedOptionChainSerializer"
      required:
        - items
    CompactOptionChainList:
      description: Container for the compact equity option chain. The chain objects
        are returned in an `items` array.
      type: object
      properties:
        items:
          description: Compact option chain objects for the underlying symbol.
          type: array
          items:
            $ref: "#/components/schemas/CompactOptionChainSerializer"
      required:
        - items
x-tastytrade-service:
  serviceName: instruments-api
  group: instruments
  title: Instruments
