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

# Contracts Stream

> Contract definitions with live mark price, IV, and Greeks.

This stream is available on the `optionsContracts` subscription. It provides option contract definitions with live mark price, implied volatility, and Greeks, scoped by **underlying** and **expiration date**.

#### Snapshot vs. Update

The `emitOptionsContracts` request returns the full set of contracts for an underlying and expiration date via `optionsContracts`. Once subscribed, `optionsContractUpdate` messages stream price, IV, and Greek changes per contract.

See [Pricing & Greeks](/latest/options/guides/pricing-and-greeks) for how the Greeks are computed.


## AsyncAPI

````yaml latest/options/asyncapi/options-ws.yaml contractsStream
id: contractsStream
title: Contracts Stream
description: >
  Available on the `optionsContracts` subscription. Contract definitions with
  live mark price, implied volatility, and Greeks, scoped by underlying and
  expiration date.
servers:
  - id: sandbox
    protocol: wss
    host: ws.sandbox.rails.xyz
    bindings: []
    variables: []
address: >-
  ?product=options&market={market}&expiration={expiration}&strike={strike}&type={type}&subscriptions=optionsContracts
parameters:
  - id: market
    jsonSchema:
      type: string
      description: A specific market (e.g. `BTC-USDT`) or `ALL`.
      default: BTC-USDT
    description: A specific market (e.g. `BTC-USDT`) or `ALL`.
    type: string
    required: true
    deprecated: false
  - id: expiration
    jsonSchema:
      type: string
      description: >-
        Contract expiration, e.g. `24JUN26`. Requires `market`; omit to match
        every expiration.
      default: 24JUN26
    description: >-
      Contract expiration, e.g. `24JUN26`. Requires `market`; omit to match
      every expiration.
    type: string
    required: true
    deprecated: false
  - id: strike
    jsonSchema:
      type: string
      description: >-
        Strike price, e.g. `62000`. Requires `expiration`; omit to match every
        strike.
      default: '62000'
    description: >-
      Strike price, e.g. `62000`. Requires `expiration`; omit to match every
      strike.
    type: string
    required: true
    deprecated: false
  - id: type
    jsonSchema:
      type: string
      description: '`C` (call) or `P` (put). Requires `strike`; omit to match both.'
      default: C
    description: '`C` (call) or `P` (put). Requires `strike`; omit to match both.'
    type: string
    required: true
    deprecated: false
bindings: []
operations:
  - &ref_1
    id: emitOptionsContracts
    title: Emit options contracts
    description: Request the full set of contracts for an underlying and expiration date.
    type: receive
    messages:
      - &ref_4
        id: emitOptionsContractsRequest
        contentType: application/json
        payload:
          - name: Emit Options Contracts
            type: object
            properties:
              - name: message
                type: string
                description: Always `emitOptionsContracts`.
                required: true
              - name: content
                type: object
                required: true
                properties:
                  - name: clientRequestId
                    type: string
                    description: Client-generated UUID for correlation
                    required: false
                  - name: underlying
                    type: string
                    description: >-
                      Underlying asset (bare symbol, not paired with a quote
                      currency), e.g. `BTC`
                    required: true
                  - name: expirationDate
                    type: string
                    description: Expiration date, `YYYY-MM-DD`
                    required: true
                  - name: pageSize
                    type: integer
                    description: Page size for paginated results
                    required: false
                  - name: pageToken
                    type: string
                    description: Cursor for the next page
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            message:
              type: string
              description: Always `emitOptionsContracts`.
              x-parser-schema-id: <anonymous-schema-205>
            content:
              type: object
              properties:
                clientRequestId:
                  type: string
                  format: uuid
                  description: Client-generated UUID for correlation
                  x-parser-schema-id: <anonymous-schema-207>
                underlying:
                  type: string
                  description: >-
                    Underlying asset (bare symbol, not paired with a quote
                    currency), e.g. `BTC`
                  x-parser-schema-id: <anonymous-schema-208>
                expirationDate:
                  type: string
                  description: Expiration date, `YYYY-MM-DD`
                  x-parser-schema-id: <anonymous-schema-209>
                pageSize:
                  type: integer
                  description: Page size for paginated results
                  x-parser-schema-id: <anonymous-schema-210>
                pageToken:
                  type: string
                  description: Cursor for the next page
                  x-parser-schema-id: <anonymous-schema-211>
              required:
                - underlying
                - expirationDate
              x-parser-schema-id: <anonymous-schema-206>
          required:
            - message
            - content
          x-parser-schema-id: <anonymous-schema-204>
        title: Emit Options Contracts
        example: |-
          {
            "message": "emitOptionsContracts",
            "content": {
              "clientRequestId": "ec5e9e21-e4dd-47dd-af9b-345b2b3ea976",
              "underlying": "BTC",
              "expirationDate": "2026-07-10"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: emitOptionsContractsRequest
    bindings: []
    extensions: &ref_0
      - id: x-parser-unique-object-id
        value: contractsStream
  - &ref_2
    id: optionsContractsSnapshot
    title: Options contracts snapshot
    description: Response to `emitOptionsContracts`.
    type: send
    messages:
      - &ref_5
        id: optionsContractsResponse
        contentType: application/json
        payload:
          - name: Contracts Snapshot
            description: Response to `emitOptionsContracts`.
            type: object
            properties:
              - name: resultType
                type: string
                description: Always `optionsContracts`.
                required: true
              - name: market
                type: string
                description: Underlying asset (echoes the request `underlying`)
                required: true
              - name: data
                type: object
                required: true
                properties:
                  - name: clientRequestId
                    type: string
                    description: Client-generated UUID for correlation
                    required: false
                  - name: contracts
                    type: array
                    description: Contract definitions
                    required: true
                    properties:
                      - name: contractName
                        type: string
                        description: Contract name
                        required: true
                      - name: underlying
                        type: string
                        description: >-
                          Underlying market paired with its quote currency, e.g.
                          `BTC-USDT` (requests take the bare asset symbol, e.g.
                          `BTC`)
                        required: true
                      - name: strike
                        type: string
                        description: Strike price
                        required: true
                      - name: optionType
                        type: string
                        description: Call or put
                        enumValues:
                          - C
                          - P
                        required: true
                      - name: expiryDate
                        type: string
                        description: Expiry date (`YYYY-MM-DD`)
                        required: true
                      - name: markPrice
                        type: string
                        description: Mark price
                        required: true
                      - name: bidPrice
                        type: string
                        description: Best bid price
                        required: true
                      - name: askPrice
                        type: string
                        description: Best ask price
                        required: true
                      - name: bidSize
                        type: string
                        description: Best bid size
                        required: true
                      - name: askSize
                        type: string
                        description: Best ask size
                        required: true
                      - name: markIV
                        type: string
                        description: Mark implied volatility
                        required: true
                      - name: bidIV
                        type: string
                        description: >-
                          Implied volatility at the best bid; may be empty when
                          that side has no firm quote
                        required: true
                      - name: askIV
                        type: string
                        description: >-
                          Implied volatility at the best ask; may be empty when
                          that side has no firm quote
                        required: true
                      - name: forward
                        type: string
                        description: Forward price
                        required: true
                      - name: delta
                        type: string
                        description: >-
                          Rate of change of the option's price per $1 move in
                          the underlying
                        required: true
                      - name: gamma
                        type: string
                        description: Rate of change of delta per $1 move in the underlying
                        required: true
                      - name: vega
                        type: string
                        description: >-
                          Sensitivity of the option's price to a 1-point change
                          in implied volatility
                        required: true
                      - name: theta
                        type: string
                        description: >-
                          Sensitivity of the option's price to the passage of
                          one day
                        required: true
                      - name: rho
                        type: string
                        description: >-
                          Sensitivity of the option's price to a 1% change in
                          interest rates
                        required: true
                      - name: openInterest
                        type: string
                        description: Open interest
                        required: true
                      - name: volume24h
                        type: string
                        description: 24h traded volume
                        required: true
                  - name: expiries
                    type: array
                    description: Expected price move per expiry
                    required: true
                    properties:
                      - name: expiryDate
                        type: string
                        description: Expiry date (`YYYY-MM-DD`)
                        required: true
                      - name: underlying
                        type: string
                        description: Underlying market, e.g. `BTC-USDT`
                        required: true
                      - name: atmIV
                        type: string
                        description: At-the-money implied volatility for this expiry
                        required: true
                      - name: expectedPriceMove
                        type: string
                        description: Expected move of the index price by this expiry
                        required: true
                      - name: indexPrice
                        type: string
                        description: Index price the expected move is measured from
                        required: true
                  - name: statusCode
                    type: integer
                    description: Always `200`.
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            resultType:
              type: string
              description: Always `optionsContracts`.
              x-parser-schema-id: <anonymous-schema-213>
            market:
              type: string
              description: Underlying asset (echoes the request `underlying`)
              x-parser-schema-id: <anonymous-schema-214>
            data:
              type: object
              properties:
                clientRequestId:
                  type: string
                  description: Client-generated UUID for correlation
                  x-parser-schema-id: <anonymous-schema-216>
                contracts:
                  type: array
                  description: Contract definitions
                  items:
                    type: object
                    properties:
                      contractName:
                        type: string
                        description: Contract name
                        x-parser-schema-id: <anonymous-schema-218>
                      underlying:
                        type: string
                        description: >-
                          Underlying market paired with its quote currency, e.g.
                          `BTC-USDT` (requests take the bare asset symbol, e.g.
                          `BTC`)
                        x-parser-schema-id: <anonymous-schema-219>
                      strike:
                        type: string
                        description: Strike price
                        x-parser-schema-id: <anonymous-schema-220>
                      optionType:
                        type: string
                        enum:
                          - C
                          - P
                        description: Call or put
                        x-parser-schema-id: <anonymous-schema-221>
                      expiryDate:
                        type: string
                        description: Expiry date (`YYYY-MM-DD`)
                        x-parser-schema-id: <anonymous-schema-222>
                      markPrice:
                        type: string
                        description: Mark price
                        x-parser-schema-id: <anonymous-schema-223>
                      bidPrice:
                        type: string
                        description: Best bid price
                        x-parser-schema-id: <anonymous-schema-224>
                      askPrice:
                        type: string
                        description: Best ask price
                        x-parser-schema-id: <anonymous-schema-225>
                      bidSize:
                        type: string
                        description: Best bid size
                        x-parser-schema-id: <anonymous-schema-226>
                      askSize:
                        type: string
                        description: Best ask size
                        x-parser-schema-id: <anonymous-schema-227>
                      markIV:
                        type: string
                        description: Mark implied volatility
                        x-parser-schema-id: <anonymous-schema-228>
                      bidIV:
                        type: string
                        description: >-
                          Implied volatility at the best bid; may be empty when
                          that side has no firm quote
                        x-parser-schema-id: <anonymous-schema-229>
                      askIV:
                        type: string
                        description: >-
                          Implied volatility at the best ask; may be empty when
                          that side has no firm quote
                        x-parser-schema-id: <anonymous-schema-230>
                      forward:
                        type: string
                        description: Forward price
                        x-parser-schema-id: <anonymous-schema-231>
                      delta:
                        type: string
                        description: >-
                          Rate of change of the option's price per $1 move in
                          the underlying
                        x-parser-schema-id: <anonymous-schema-232>
                      gamma:
                        type: string
                        description: Rate of change of delta per $1 move in the underlying
                        x-parser-schema-id: <anonymous-schema-233>
                      vega:
                        type: string
                        description: >-
                          Sensitivity of the option's price to a 1-point change
                          in implied volatility
                        x-parser-schema-id: <anonymous-schema-234>
                      theta:
                        type: string
                        description: >-
                          Sensitivity of the option's price to the passage of
                          one day
                        x-parser-schema-id: <anonymous-schema-235>
                      rho:
                        type: string
                        description: >-
                          Sensitivity of the option's price to a 1% change in
                          interest rates
                        x-parser-schema-id: <anonymous-schema-236>
                      openInterest:
                        type: string
                        description: Open interest
                        x-parser-schema-id: <anonymous-schema-237>
                      volume24h:
                        type: string
                        description: 24h traded volume
                        x-parser-schema-id: <anonymous-schema-238>
                    required:
                      - contractName
                      - underlying
                      - strike
                      - optionType
                      - expiryDate
                      - markPrice
                      - bidPrice
                      - askPrice
                      - bidSize
                      - askSize
                      - markIV
                      - bidIV
                      - askIV
                      - forward
                      - delta
                      - gamma
                      - vega
                      - theta
                      - rho
                      - openInterest
                      - volume24h
                    x-parser-schema-id: ContractSnapshotEntry
                  x-parser-schema-id: <anonymous-schema-217>
                expiries:
                  type: array
                  description: Expected price move per expiry
                  items:
                    type: object
                    properties:
                      expiryDate:
                        type: string
                        description: Expiry date (`YYYY-MM-DD`)
                        x-parser-schema-id: <anonymous-schema-240>
                      underlying:
                        type: string
                        description: Underlying market, e.g. `BTC-USDT`
                        x-parser-schema-id: <anonymous-schema-241>
                      atmIV:
                        type: string
                        description: At-the-money implied volatility for this expiry
                        x-parser-schema-id: <anonymous-schema-242>
                      expectedPriceMove:
                        type: string
                        description: Expected move of the index price by this expiry
                        x-parser-schema-id: <anonymous-schema-243>
                      indexPrice:
                        type: string
                        description: Index price the expected move is measured from
                        x-parser-schema-id: <anonymous-schema-244>
                    required:
                      - expiryDate
                      - underlying
                      - atmIV
                      - expectedPriceMove
                      - indexPrice
                    x-parser-schema-id: ExpiryExpectedMove
                  x-parser-schema-id: <anonymous-schema-239>
                statusCode:
                  type: integer
                  description: Always `200`.
                  x-parser-schema-id: <anonymous-schema-245>
              required:
                - contracts
                - expiries
                - statusCode
              x-parser-schema-id: <anonymous-schema-215>
          required:
            - resultType
            - market
            - data
          x-parser-schema-id: <anonymous-schema-212>
        title: Contracts Snapshot
        description: Response to `emitOptionsContracts`.
        example: |-
          {
            "resultType": "optionsContracts",
            "market": "BTC",
            "data": {
              "clientRequestId": "ec5e9e21-e4dd-47dd-af9b-345b2b3ea976",
              "contracts": [
                {
                  "contractName": "BTC-10JUL26-63000-C",
                  "underlying": "BTC-USDT",
                  "strike": "63000",
                  "optionType": "C",
                  "expiryDate": "2026-07-10",
                  "markPrice": "1334.5252004",
                  "bidPrice": "749.89",
                  "askPrice": "751.71",
                  "bidSize": "8",
                  "askSize": "4",
                  "markIV": "0.3899",
                  "bidIV": "0.4178",
                  "askIV": "0.4185",
                  "forward": "63654.9041377805",
                  "delta": "0.6089291",
                  "gamma": "0.0001548",
                  "vega": "2443.5719736",
                  "theta": "-130.4974464",
                  "rho": "-13.346896",
                  "openInterest": "0",
                  "volume24h": "0"
                },
                {
                  "contractName": "BTC-10JUL26-63000-P",
                  "underlying": "BTC-USDT",
                  "strike": "63000",
                  "optionType": "P",
                  "expiryDate": "2026-07-10",
                  "markPrice": "699.9441769",
                  "bidPrice": "1626.58",
                  "askPrice": "1627.55",
                  "bidSize": "4",
                  "askSize": "4",
                  "markIV": "0.3899",
                  "bidIV": "0.5033",
                  "askIV": "0.5037",
                  "forward": "63654.9041377805",
                  "delta": "-0.3910709",
                  "gamma": "0.0001548",
                  "vega": "2443.5719736",
                  "theta": "-130.4974464",
                  "rho": "-7.000304",
                  "openInterest": "2",
                  "volume24h": "0"
                }
              ],
              "expiries": [
                {
                  "expiryDate": "2026-07-10",
                  "underlying": "BTC-USDT",
                  "atmIV": "0.3899",
                  "expectedPriceMove": "5225.80",
                  "indexPrice": "63450.00"
                }
              ]
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: optionsContractsResponse
    bindings: []
    extensions: *ref_0
  - &ref_3
    id: optionsContractUpdate
    title: Options contract update
    description: Pushed as a contract's price, IV, and Greeks change.
    type: send
    messages:
      - &ref_6
        id: optionsContractUpdate
        contentType: application/json
        payload:
          - name: Contract Update
            description: Pushed as a contract's price, IV, and Greeks change.
            type: object
            properties:
              - name: resultType
                type: string
                description: Always `optionsContractUpdate`.
                required: true
              - name: market
                type: string
                description: Contract name
                required: true
              - name: data
                type: object
                required: true
                properties:
                  - name: contractName
                    type: string
                    description: Contract name
                    required: true
                  - name: underlying
                    type: string
                    description: >-
                      Underlying market paired with its quote currency, e.g.
                      `BTC-USDT`
                    required: true
                  - name: strike
                    type: string
                    description: Strike price
                    required: true
                  - name: optionType
                    type: string
                    description: Call or put
                    enumValues:
                      - C
                      - P
                    required: true
                  - name: expiryDate
                    type: string
                    description: Expiry date (`YYYY-MM-DD`)
                    required: true
                  - name: markPrice
                    type: string
                    description: Mark price
                    required: true
                  - name: markIV
                    type: string
                    description: Mark implied volatility
                    required: true
                  - name: forward
                    type: string
                    description: Forward price
                    required: true
                  - name: delta
                    type: string
                    description: >-
                      Rate of change of the option's price per $1 move in the
                      underlying
                    required: true
                  - name: gamma
                    type: string
                    description: Rate of change of delta per $1 move in the underlying
                    required: true
                  - name: vega
                    type: string
                    description: >-
                      Sensitivity of the option's price to a 1-point change in
                      implied volatility
                    required: true
                  - name: theta
                    type: string
                    description: >-
                      Sensitivity of the option's price to the passage of one
                      day
                    required: true
                  - name: rho
                    type: string
                    description: >-
                      Sensitivity of the option's price to a 1% change in
                      interest rates
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            resultType:
              type: string
              description: Always `optionsContractUpdate`.
              x-parser-schema-id: <anonymous-schema-247>
            market:
              type: string
              description: Contract name
              x-parser-schema-id: <anonymous-schema-248>
            data:
              type: object
              properties:
                contractName:
                  type: string
                  description: Contract name
                  x-parser-schema-id: <anonymous-schema-250>
                underlying:
                  type: string
                  description: >-
                    Underlying market paired with its quote currency, e.g.
                    `BTC-USDT`
                  x-parser-schema-id: <anonymous-schema-251>
                strike:
                  type: string
                  description: Strike price
                  x-parser-schema-id: <anonymous-schema-252>
                optionType:
                  type: string
                  enum:
                    - C
                    - P
                  description: Call or put
                  x-parser-schema-id: <anonymous-schema-253>
                expiryDate:
                  type: string
                  description: Expiry date (`YYYY-MM-DD`)
                  x-parser-schema-id: <anonymous-schema-254>
                markPrice:
                  type: string
                  description: Mark price
                  x-parser-schema-id: <anonymous-schema-255>
                markIV:
                  type: string
                  description: Mark implied volatility
                  x-parser-schema-id: <anonymous-schema-256>
                forward:
                  type: string
                  description: Forward price
                  x-parser-schema-id: <anonymous-schema-257>
                delta:
                  type: string
                  description: >-
                    Rate of change of the option's price per $1 move in the
                    underlying
                  x-parser-schema-id: <anonymous-schema-258>
                gamma:
                  type: string
                  description: Rate of change of delta per $1 move in the underlying
                  x-parser-schema-id: <anonymous-schema-259>
                vega:
                  type: string
                  description: >-
                    Sensitivity of the option's price to a 1-point change in
                    implied volatility
                  x-parser-schema-id: <anonymous-schema-260>
                theta:
                  type: string
                  description: Sensitivity of the option's price to the passage of one day
                  x-parser-schema-id: <anonymous-schema-261>
                rho:
                  type: string
                  description: >-
                    Sensitivity of the option's price to a 1% change in interest
                    rates
                  x-parser-schema-id: <anonymous-schema-262>
              required:
                - contractName
                - underlying
                - strike
                - optionType
                - expiryDate
                - markPrice
                - markIV
                - forward
                - delta
                - gamma
                - vega
                - theta
                - rho
              x-parser-schema-id: <anonymous-schema-249>
          required:
            - resultType
            - market
            - data
          x-parser-schema-id: <anonymous-schema-246>
        title: Contract Update
        description: Pushed as a contract's price, IV, and Greeks change.
        example: |-
          {
            "resultType": "optionsContractUpdate",
            "market": "BTC-10JUL26-55000-C",
            "data": {
              "contractName": "BTC-10JUL26-55000-C",
              "underlying": "BTC-USDT",
              "strike": "55000",
              "optionType": "C",
              "expiryDate": "2026-07-10",
              "markPrice": "8810.9085883",
              "markIV": "0.6571",
              "forward": "63794.6796692",
              "delta": "0.9889426",
              "gamma": "0.0000069",
              "vega": "185.7490523",
              "theta": "-16.6912762",
              "rho": "-88.2604965"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: optionsContractUpdate
    bindings: []
    extensions: *ref_0
sendOperations:
  - *ref_1
receiveOperations:
  - *ref_2
  - *ref_3
sendMessages:
  - *ref_4
receiveMessages:
  - *ref_5
  - *ref_6
extensions:
  - id: x-parser-unique-object-id
    value: contractsStream
securitySchemes:
  - id: wsAuth
    name: Sec-WebSocket-Protocol
    type: httpApiKey
    description: Supply as `authorization#<JWT>` during the WebSocket handshake.
    in: header
    extensions: []

````