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

# Market Data WebSocket

> Real-time streaming API for equity quotes, trades, and market indices. Subscribe to specific symbols with field-level granularity to receive only the data you need, minimizing bandwidth and latency.

<Note>
  **What this stream gives you.** Open one connection to `wss://api.aries.com/v1/market/ws`, authenticate once, and the server will push live prices, trades, and order-book activity for any symbols you ask about. You can stream the same data a professional trader watches on screen — bid/ask quotes, last sale prices, intraday OHLC, every individual trade as it prints, full depth-of-market, and option Greeks — without polling.
</Note>

<AccordionGroup>
  <Accordion title="Key Features" icon="star" defaultOpen>
    <CardGroup cols={2}>
      <Card title="Field-Level Subscriptions" icon="filter">
        Choose specific quote/trade fields or use wildcard `*` for all fields. Minimize bandwidth by requesting only the data you need.
      </Card>

      <Card title="Real-Time Updates" icon="bolt">
        NDJSON message framing for optimal performance with millisecond-level latency.
      </Card>

      <Card title="Initial Snapshot" icon="camera">
        Get the current market state when you subscribe.
      </Card>

      <Card title="Multi-Symbol Support" icon="layer-group">
        Subscribe to multiple symbols in a single request for efficient batch subscriptions.
      </Card>

      <Card title="Equities & Options" icon="building">
        Stream real-time data for stocks and option contracts using OSI symbols.
      </Card>

      <Card title="Market Indices" icon="chart-line-up">
        Track major indices including SPX, NDX, DJI, VIX, and more in real-time.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Supported Symbols" icon="tags">
    ### Equities

    Standard stock ticker symbols. Pass them just as you'd type them on a brokerage screen — for example `AAPL`, `MSFT`, `GOOGL`, `TSLA`. No special formatting required.

    ### Indices

    Major market indices are supported:

    | Symbol | Index                                                   |
    | ------ | ------------------------------------------------------- |
    | `SPX`  | S\&P 500 — broad large-cap U.S. stocks                  |
    | `NDX`  | Nasdaq 100 — 100 largest non-financial Nasdaq stocks    |
    | `DJI`  | Dow Jones Industrial Average — 30 blue-chip U.S. stocks |
    | `VIX`  | CBOE Volatility Index — market "fear gauge"             |
    | `RUT`  | Russell 2000 — small-cap U.S. stocks                    |
    | `COMP` | Nasdaq Composite — all Nasdaq-listed stocks             |
    | `NYA`  | NYSE Composite — all NYSE-listed stocks                 |
    | `OEX`  | S\&P 100 — 100 largest S\&P 500 companies               |
    | `MID`  | S\&P MidCap 400 — mid-sized U.S. stocks                 |
    | `SML`  | S\&P SmallCap 600 — small-cap U.S. stocks               |

    <Note>
      Indices are computed values, not securities you can buy and sell directly, so they don't have bid/ask quotes. When subscribing to an index, only request **trade fields** (`lastPrice`, `openPrice`, `highPrice`, `lowPrice`, `netChange`, `totalVolume`, etc.). Quote fields like `bidPrice`/`askPrice` will be empty.
    </Note>

    ### Options

    Option contracts use **OSI** (Options Symbology Initiative) symbols — the 21-character standard the U.S. options industry uses to uniquely identify a contract.

    The format is `ROOT + YYMMDD + C/P + 00000000` (the strike price in cents, left-padded). For example, `AAPL240119C00150000` decodes as:

    * `AAPL` — underlying stock
    * `240119` — expiration date, 2024-01-19
    * `C` — call (use `P` for a put)
    * `00150000` — strike price, \$150.00 (00150000 ÷ 1000)

    When subscribing to options, set `symbolType: "option"` so the server knows to apply option-specific routing and to enable Greeks if requested.
  </Accordion>

  <Accordion title="Data Types" icon="database">
    <CardGroup cols={2}>
      <Card title="Quote Data" icon="quotes">
        The best price a buyer is currently willing to pay (**bid**) and the best price a seller is currently willing to accept (**ask**), pulled from all U.S. exchanges combined — known as the **NBBO** (National Best Bid and Offer).
      </Card>

      <Card title="Trade Data" icon="arrow-right-arrow-left">
        The price and size of the most recent trade, plus session-level totals: **OHLC** = Open, High, Low, Close — the standard four prices used to draw a candle on a chart.
      </Card>

      <Card title="Level 2 / Order Book Data" icon="layer-group">
        Market depth — every visible bid and ask across the major exchanges, not just the single best price. Lets you see how much demand is sitting at each price level and which exchanges are quoting it.
      </Card>

      <Card title="Time & Sales Data" icon="clock">
        Every individual trade as it prints, with price, size, timestamp, and the exchange where it executed. Often called "the tape" — traders use it to read order flow and gauge buying vs. selling pressure.
      </Card>

      <Card title="Greeks Data" icon="function">
        For option contracts: the standard risk measures (delta, gamma, theta, vega, rho) plus implied volatility. The first message is a snapshot of the last known values; after that you receive updates whenever the Greeks are recalculated. Only available when `symbolType: "option"` and `greeksFields` is specified.
      </Card>

      <Card title="Market Status" icon="signal">
        Whether the U.S. market is currently `open`, `closed`, in pre-market, or in after-hours trading, plus the status of individual exchanges.
      </Card>
    </CardGroup>

    <Note>
      **What you receive first:** Quote, trade, and Greeks subscriptions all send an initial **snapshot** of the current state, then stream **updates** as values change. Level 2 is the exception — it does not send a snapshot, only live updates as new depth arrives from the exchanges.
    </Note>
  </Accordion>

  <Accordion title="Level 2: compact order book rows" icon="table">
    Level 2 updates are forwarded from the market feed as compact string arrays. `payload.data.orderBook` entries use `askSize:price:bidSize`, and `payload.data.quotes` entries use `exchange:askPrice:askSize:bidPrice:bidSize`.

    Example:

    ```json theme={null}
    {
      "orderBook": ["0:250.00:100", "100:272.55:0"],
      "quotes": ["EDGX:272.55:100:272.00:500"],
      "symbol": "AAPL",
      "timestamp": "2025-12-29T05:18:33.600000-05:00"
    }
    ```
  </Accordion>

  <Accordion title="Message Framing (NDJSON)" icon="code">
    To keep latency low when the market is active, the server may bundle several updates into a single WebSocket frame and separate them with a newline character (`\n`). This format is called **NDJSON** — Newline-Delimited JSON.

    **What this means for you:** Don't just call `JSON.parse(frame)` on every incoming message. Instead, split the frame on `\n`, drop empty lines, and parse each line independently. Otherwise you will silently lose messages whenever the server coalesces.

    ### Example

    A single WebSocket frame may contain:

    ```text theme={null}
    {"type":"event","payload":{"action":"snapshot","type":"quote","symbol":"MSFT","data":{"bidPrice":189.94},"id":"sub-1","timestamp":1701450000123}}
    {"type":"event","payload":{"action":"snapshot","type":"quote","symbol":"AAPL","data":{"bidPrice":172.21},"id":"sub-1","timestamp":1701450000124}}
    ```

    Clients should split on `\n` and parse each line independently.
  </Accordion>

  <Accordion title="Requirements" icon="list-check">
    <CardGroup cols={2}>
      <Card title="WebSocket Client" icon="plug">
        Library that supports WSS protocol for secure WebSocket connections.
      </Card>

      <Card title="Authentication" icon="key">
        Valid authentication token (if required by your environment).
      </Card>

      <Card title="JSON Parser" icon="code">
        NDJSON message format handling capability for parsing streaming data.
      </Card>

      <Card title="Network Connectivity" icon="wifi">
        Stable network connection to the WebSocket endpoint.
      </Card>
    </CardGroup>
  </Accordion>

  <Accordion title="Use Cases" icon="lightbulb">
    <CardGroup cols={2}>
      <Card title="Portfolio Monitoring" icon="chart-line">
        Live price updates, bid/ask spreads, and intraday performance tracking for your holdings.
      </Card>

      <Card title="Trading Applications" icon="arrow-right-arrow-left">
        Real-time market prices for order entry systems and trade execution platforms.
      </Card>

      <Card title="Market Dashboards" icon="chart-mixed">
        Display market trends and index movements (SPX, NDX, VIX) on your analytics dashboard.
      </Card>

      <Card title="Price Alert Systems" icon="bell">
        Trigger notifications on price thresholds, volume spikes, or custom market conditions.
      </Card>

      <Card title="Market Analysis Tools" icon="magnifying-glass-chart">
        Real-time data feeds for technical analysis and market research applications.
      </Card>
    </CardGroup>
  </Accordion>
</AccordionGroup>

## Authentication

If authentication is enabled, authenticate after opening the WebSocket and before subscribing. Auth uses the request/response envelope with `POST /auth`; the body is only the token object expected by the backend.

**Client sends:**

```json theme={null}
{
  "type": "request",
  "id": "auth-001",
  "payload": {
    "method": "POST",
    "path": "/auth",
    "body": {
      "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
    }
  }
}
```

**Server responds:**

```json theme={null}
{
  "type": "event",
  "payload": {
    "action": "authSuccess",
    "id": "auth-001",
    "data": {
      "expiresIn": 2700000
    },
    "timestamp": 1701450000123
  }
}
```

## Subscribing to Market Data

### Basic Subscription Structure

To start receiving data for a symbol, send a **subscribe** message. The `payload` is always an **array**, even when you only want one symbol — each item describes one symbol and the specific fields you want to receive for it.

**Subscription object fields:**

| Field                | Type            | Required | What to enter                                                                                                     |
| -------------------- | --------------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
| `symbol`             | string          | Yes      | A stock ticker (e.g. `AAPL`), an index code (e.g. `SPX`), or an OSI option symbol (e.g. `AAPL240119C00150000`).   |
| `symbolType`         | string          | No       | `equity` (default) for stocks and indices, or `option` for option contracts. Must be `option` if you want Greeks. |
| `quoteFields`        | string \| array | No       | Quote fields to subscribe to (see Quote Fields table below). Use `["*"]` for all.                                 |
| `tradeFields`        | string \| array | No       | Trade fields to subscribe to (see Trade Fields table below). Use `["*"]` for all.                                 |
| `level2`             | boolean         | No       | `true` to receive full order-book depth for this symbol. Defaults to `false`.                                     |
| `timeAndSales`       | boolean         | No       | `true` to receive a message for every individual trade execution. Defaults to `false`.                            |
| `timeAndSalesFields` | string \| array | No       | Specific T\&S fields to receive when `timeAndSales: true`. Defaults to all fields.                                |
| `greeksFields`       | string \| array | No       | Greek fields to subscribe to (options only). Use `["*"]` for all.                                                 |

```json theme={null}
{
  "type": "subscribe",
  "id": "optional-correlation-id",
  "payload": [
    {
      "symbol": "AAPL",
      "symbolType": "equity",
      "quoteFields": ["bidPrice", "askPrice"],
      "tradeFields": ["lastPrice", "totalVolume"],
      "level2": false,
      "timeAndSales": false,
      "timeAndSalesFields": ["price", "size"],
      "greeksFields": ["delta", "gamma"]
    }
  ]
}
```

<Note>
  **Defaults & shortcuts.**

  * `symbolType` defaults to `"equity"`. Set it to `"option"` only when you're subscribing to an option contract.
  * If you omit **both** `quoteFields` and `tradeFields`, the server treats it as "send me everything" and subscribes you to all quote and all trade fields for that symbol.
  * Any field list (`quoteFields`, `tradeFields`, `timeAndSalesFields`, `greeksFields`) accepts either a single string (`"bidPrice"`) or an array (`["bidPrice", "askPrice"]`). Arrays are recommended for consistency.
</Note>

### Subscription Examples

<AccordionGroup>
  <Accordion title="Basic Examples" icon="play">
    ### Subscribe to Trade Fields Only

    Get just price and size data for AAPL:

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-1",
      "payload": [
        {
          "symbol": "AAPL",
          "tradeFields": ["price", "size"]
        }
      ]
    }
    ```

    ### Subscribe to All Quote and Trade Fields

    When both `quoteFields` and `tradeFields` are omitted, the backend subscribes to all quote and all trade fields:

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-2",
      "payload": [
        {
          "symbol": "AAPL"
        }
      ]
    }
    ```

    ### Subscribe to Quote Fields Only

    Include only `quoteFields` when you do not want a trade subscription:

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-quote-1",
      "payload": [
        {
          "symbol": "AAPL",
          "quoteFields": ["bidPrice", "askPrice", "bidSize", "askSize"]
        }
      ]
    }
    ```

    ### Subscribe to All Fields Using Wildcard

    Use `"*"` to subscribe to all available fields:

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-4",
      "payload": [
        {
          "symbol": "GOOGL",
          "quoteFields": ["*"],
          "tradeFields": ["*"]
        }
      ]
    }
    ```
  </Accordion>

  <Accordion title="Multiple Symbols" icon="layer-group">
    ### Subscribe to Specific Quote Fields for Multiple Symbols

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-3",
      "payload": [
        {
          "symbol": "AAPL",
          "quoteFields": ["bidPrice", "bidSize", "askPrice", "askSize", "midPrice", "spread"]
        },
        {
          "symbol": "MSFT",
          "quoteFields": ["bidPrice", "bidSize", "askPrice", "askSize", "midPrice", "spread"]
        }
      ]
    }
    ```

    ### Subscribe to Multiple Symbols with Different Fields

    Different symbols can have different field subscriptions:

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-6",
      "payload": [
        {
          "symbol": "AAPL",
          "tradeFields": ["lastPrice", "size", "netChange", "tick"]
        },
        {
          "symbol": "MSFT",
          "quoteFields": ["bidPrice", "askPrice", "spread"]
        },
        {
          "symbol": "GOOGL",
          "quoteFields": ["*"],
          "tradeFields": ["*"]
        }
      ]
    }
    ```
  </Accordion>

  <Accordion title="Level 2 & Time & Sales" icon="chart-network">
    ### Subscribe to Level 2 Order Book Data

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-l2-1",
      "payload": [
        {
          "symbol": "AAPL",
          "level2": true
        }
      ]
    }
    ```

    ### Subscribe to Time & Sales Data

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-tns-1",
      "payload": [
        {
          "symbol": "AAPL",
          "timeAndSales": true
        }
      ]
    }
    ```

    ### Subscribe to Both Level 2 and Time & Sales

    Perfect for tape reading and order flow analysis:

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-l2-tns-1",
      "payload": [
        {
          "symbol": "AAPL",
          "level2": true,
          "timeAndSales": true
        }
      ]
    }
    ```

    ### Full Market Data Suite

    Subscribe to quotes, trades, Level 2, and Time & Sales:

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-full-1",
      "payload": [
        {
          "symbol": "AAPL",
          "quoteFields": ["bidPrice", "askPrice", "midPrice", "spread"],
          "tradeFields": ["lastPrice", "size", "totalVolume", "netChange"],
          "level2": true,
          "timeAndSales": true
        }
      ]
    }
    ```
  </Accordion>

  <Accordion title="Index Data" icon="chart-line-up">
    ### Subscribe to S\&P 500 Index

    <Warning>
      Indices do not have bid/ask quote data. Use `tradeFields` only.
    </Warning>

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-7",
      "payload": [
        {
          "symbol": "SPX",
          "tradeFields": ["lastPrice", "openPrice", "highPrice", "lowPrice", "netChange", "totalVolume"]
        }
      ]
    }
    ```

    ### Subscribe to Multiple Indices

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-8",
      "payload": [
        {
          "symbol": "SPX",
          "tradeFields": ["lastPrice", "netChange"]
        },
        {
          "symbol": "NDX",
          "tradeFields": ["lastPrice", "netChange"]
        },
        {
          "symbol": "VIX",
          "tradeFields": ["lastPrice", "netChange"]
        }
      ]
    }
    ```

    ### Mixed Equities and Indices

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-9",
      "payload": [
        {
          "symbol": "AAPL",
          "quoteFields": ["bidPrice", "askPrice", "midPrice"],
          "tradeFields": ["lastPrice", "netChange"]
        },
        {
          "symbol": "SPX",
          "tradeFields": ["lastPrice", "openPrice", "highPrice", "lowPrice"]
        }
      ]
    }
    ```
  </Accordion>

  <Accordion title="Option Contracts" icon="option">
    ### Subscribe to a Single Option Contract

    <Info>
      Options use OSI (Options Symbology Initiative) symbols. You **must** set `symbolType: "option"`.
    </Info>

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-10",
      "payload": [
        {
          "symbol": "AAPL240119C00150000",
          "symbolType": "option",
          "quoteFields": ["bidPrice", "askPrice", "midPrice", "spread", "openInterest"],
          "tradeFields": ["lastPrice", "totalVolume"]
        }
      ]
    }
    ```

    ### Subscribe to Multiple Option Contracts

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-11",
      "payload": [
        {
          "symbol": "AAPL240119C00150000",
          "symbolType": "option",
          "quoteFields": ["bidPrice", "askPrice"],
          "tradeFields": ["lastPrice"]
        },
        {
          "symbol": "AAPL240119C00155000",
          "symbolType": "option",
          "quoteFields": ["bidPrice", "askPrice"],
          "tradeFields": ["lastPrice"]
        },
        {
          "symbol": "AAPL240119P00145000",
          "symbolType": "option",
          "quoteFields": ["bidPrice", "askPrice"],
          "tradeFields": ["lastPrice"]
        }
      ]
    }
    ```

    ### Subscribe to All Greeks (Wildcard)

    Use `"*"` to receive all Greeks fields for an option contract:

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-greeks-1",
      "payload": [
        {
          "symbol": "XSP281215C00920000",
          "symbolType": "option",
          "greeksFields": ["*"]
        }
      ]
    }
    ```

    ### Subscribe to Specific Greeks Fields

    Request only the Greeks you need to minimize bandwidth:

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-greeks-2",
      "payload": [
        {
          "symbol": "AAPL240119C00150000",
          "symbolType": "option",
          "greeksFields": ["delta", "impliedVolatility"]
        }
      ]
    }
    ```

    ### Subscribe to Greeks Alongside Quotes

    Combine Greeks with quote data in a single subscription:

    ```json theme={null}
    {
      "type": "subscribe",
      "id": "sub-greeks-3",
      "payload": [
        {
          "symbol": "AAPL240119C00150000",
          "symbolType": "option",
          "quoteFields": ["bidPrice", "askPrice", "midPrice"],
          "greeksFields": ["delta", "gamma", "theta", "vega", "impliedVolatility"]
        }
      ]
    }
    ```

    <Note>
      `greeksFields` is only applicable when `symbolType` is `"option"`. Including it for equity symbols has no effect.
    </Note>
  </Accordion>
</AccordionGroup>

## Available Fields Reference

Frequently used fields you can subscribe to, organized by data type. The wildcard `["*"]` expands to every backend-supported field for that category.

<AccordionGroup>
  <Accordion title="Quote Fields" icon="quotes" defaultOpen>
    Subscribe to these fields using the `quoteFields` array. Use `["*"]` for all fields.

    | Field            | Description                                                                                                              |
    | ---------------- | ------------------------------------------------------------------------------------------------------------------------ |
    | `*`              | **Wildcard** - Subscribe to all available quote fields                                                                   |
    | `bidPrice`       | Current best bid price - the highest price a buyer is willing to pay                                                     |
    | `bidChange`      | Change in bid price from the previous quote update                                                                       |
    | `bidSize`        | Number of shares available at the bid price (typically in round lots of 100)                                             |
    | `bidSizeChange`  | Change in bid size from the previous quote update                                                                        |
    | `bidTimestamp`   | Unix timestamp in milliseconds when the bid was last updated                                                             |
    | `bidExchange`    | Exchange code where the best bid originated (e.g., 'Q' for NASDAQ, 'N' for NYSE)                                         |
    | `askPrice`       | Current best ask (offer) price - the lowest price a seller is willing to accept                                          |
    | `askChange`      | Change in ask price from the previous quote update                                                                       |
    | `askSize`        | Number of shares available at the ask price (typically in round lots of 100)                                             |
    | `askSizeChange`  | Change in ask size from the previous quote update                                                                        |
    | `askTimestamp`   | Unix timestamp in milliseconds when the ask was last updated                                                             |
    | `askExchange`    | Exchange code where the best ask originated (e.g., 'Q' for NASDAQ, 'N' for NYSE)                                         |
    | `quoteTimestamp` | Unix timestamp in milliseconds of the consolidated/top-of-book quote time                                                |
    | `midPrice`       | Midpoint price calculated as (bidPrice + askPrice) / 2                                                                   |
    | `spread`         | Bid-ask spread calculated as askPrice - bidPrice                                                                         |
    | `openInterest`   | Total outstanding open contracts for the option (options only; include in `quoteFields` when `symbolType` is `"option"`) |

    **Example:**

    ```json theme={null}
    "quoteFields": ["bidPrice", "askPrice", "bidSize", "askSize", "midPrice", "spread"]
    ```
  </Accordion>

  <Accordion title="Trade Fields" icon="arrow-right-arrow-left">
    Subscribe to these fields using the `tradeFields` array. Use `["*"]` for all fields.

    | Field                | Description                                                                                |
    | -------------------- | ------------------------------------------------------------------------------------------ |
    | `*`                  | **Wildcard** - Subscribe to all available trade fields                                     |
    | `price`              | Last trade execution price (same as lastPrice in most cases)                               |
    | `size`               | Number of shares in the last trade execution                                               |
    | `totalVolume`        | Cumulative trading volume for the current session (total shares traded)                    |
    | `tickVolume`         | Volume of shares traded in the most recent tick/update                                     |
    | `openPrice`          | Opening price for the current trading session                                              |
    | `highPrice`          | Highest price reached during the current trading session                                   |
    | `lowPrice`           | Lowest price reached during the current trading session                                    |
    | `lastPrice`          | Most recent trade price (last sale price)                                                  |
    | `netChange`          | Net price change from previous close (lastPrice - previousClosePrice)                      |
    | `tick`               | Tick direction indicator: 'up' (uptick), 'down' (downtick), or 'unchanged'                 |
    | `tradeSeq`           | Trade sequence number - monotonically increasing identifier for each trade                 |
    | `tradeTimestamp`     | ISO 8601 timestamp of when the trade was executed                                          |
    | `closePrice`         | Official closing price (may be from current or previous session depending on market hours) |
    | `previousClosePrice` | Previous trading session's official closing price, used to calculate netChange             |

    **Example:**

    ```json theme={null}
    "tradeFields": ["lastPrice", "size", "totalVolume", "netChange", "tick"]
    ```

    <Note>
      **For Indices**: Use trade fields only. Indices do not have bid/ask quote data.
    </Note>
  </Accordion>

  <Accordion title="Time & Sales Fields" icon="clock">
    Subscribe to these fields using the `timeAndSalesFields` array when `timeAndSales: true`. Use `["*"]` for all fields (default if not specified).

    | Field            | Description                                                                                        |
    | ---------------- | -------------------------------------------------------------------------------------------------- |
    | `*`              | **Wildcard** - Subscribe to all available Time & Sales fields                                      |
    | `symbol`         | The ticker symbol for the trade                                                                    |
    | `price`          | Trade execution price                                                                              |
    | `size`           | Number of shares in the trade                                                                      |
    | `tick`           | Tick direction indicator: 'up' (uptick), 'down' (downtick), or 'unchanged'                         |
    | `tradeSeq`       | Trade sequence number - monotonically increasing identifier for each trade                         |
    | `tradeExchange`  | Exchange code where the trade was executed (e.g., 'Q' for NASDAQ, 'N' for NYSE, 'D' for FINRA ADF) |
    | `tradeTimestamp` | ISO 8601 timestamp of when the trade was executed                                                  |

    **Example:**

    ```json theme={null}
    {
      "symbol": "AAPL",
      "timeAndSales": true,
      "timeAndSalesFields": ["price", "size", "tick", "tradeTimestamp", "tradeExchange"]
    }
    ```

    <Info>
      Time & Sales shows **every individual trade execution** in real-time. Essential for tape reading and order flow analysis.
    </Info>
  </Accordion>

  <Accordion title="Level 2 Fields" icon="layer-group">
    Level 2 data is enabled with `level2: true`. The response contains market depth across multiple exchanges in a compact format.

    | Field       | Description                                                                       |
    | ----------- | --------------------------------------------------------------------------------- |
    | `symbol`    | The ticker symbol for the order book                                              |
    | `orderBook` | Array of compact order book entries in format `"askSize:price:bidSize"`           |
    | `quotes`    | Array of exchange quotes in format `"EXCHANGE:askPrice:askSize:bidPrice:bidSize"` |
    | `timestamp` | ISO 8601 timestamp of the update                                                  |

    **Order Book Format:**
    Each entry in `orderBook` follows: `"askSize:price:bidSize"`

    * `askSize`: Number of shares at ask (0 if no ask)
    * `price`: Price level
    * `bidSize`: Number of shares at bid (0 if no bid)

    **Quotes Format:**
    Each entry in `quotes` follows: `"EXCHANGE:askPrice:askSize:bidPrice:bidSize"`

    * `EXCHANGE`: Exchange code (NSDQ, NYSE, BATS, EDGX, etc.)
    * `askPrice`: Ask price at this exchange
    * `askSize`: Number of shares at ask
    * `bidPrice`: Bid price at this exchange
    * `bidSize`: Number of shares at bid

    **Example Response:**

    <Note>
      **Format Guide:**

      * **orderBook**: `askSize:price:bidSize` (e.g., `"0:250.00:100"` = 0 shares ask, \$250.00 price, 100 shares bid)
      * **quotes**: `exchange:askPrice:askSize:bidPrice:bidSize` (e.g., `"EDGX:272.55:100:272.00:500"` = EDGX exchange, $272.55 ask with 100 shares, $272.00 bid with 500 shares)
    </Note>

    ```json theme={null}
    {
      "type": "event",
      "payload": {
        "action": "update",
        "type": "level2nOB",
        "symbol": "AAPL",
        "data": {
          "orderBook": [
            "0:250.00:100",
            "0:271.00:100",
            "0:272.00:1000",
            "45:272.49:0",
            "100:272.55:0"
          ],
          "quotes": [
            "EDGX:272.55:100:272.00:500",
            "BATS:272.58:300:271.00:100",
            "NSDQ:272.49:45:272.40:10"
          ],
          "symbol": "AAPL",
          "timestamp": "2025-12-29T05:18:33.600000-05:00"
        },
        "timestamp": 1767003513653
      }
    }
    ```

    <Warning>
      **No Initial Snapshot**: Level 2 data does not provide an initial snapshot. You will receive updates as they arrive from the market feed.
    </Warning>
  </Accordion>

  <Accordion title="Greeks Fields" icon="function">
    Subscribe to these fields using the `greeksFields` array. Only available for option contracts (`symbolType: "option"`). Use `["*"]` for all fields.

    **What are Greeks?** Greeks are standard risk measures that tell you *how* an option's price is likely to move when something changes — the underlying stock price, time, or volatility. They are the building blocks of options risk management.

    | Field               | Description                                                                                                                                                                                                                                          |
    | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `*`                 | **Wildcard** — subscribe to all available Greeks fields                                                                                                                                                                                              |
    | `delta`             | How much the option's price moves for a \*\*$1 move in the underlying stock**. Calls are 0 to 1, puts are -1 to 0. A 0.50 delta call gains ≈ $0.50 if the stock rises \$1. Also a rough estimate of the probability the option expires in-the-money. |
    | `gamma`             | How much **delta itself** changes per \$1 move in the underlying. High gamma = delta swings quickly, so position risk changes fast.                                                                                                                  |
    | `theta`             | How much value the option **loses per day** purely from time passing (the "time decay"). Almost always negative for long option holders.                                                                                                             |
    | `vega`              | How much the option's price changes for a **1-percentage-point change in implied volatility**. Long options have positive vega — they gain when volatility rises.                                                                                    |
    | `rho`               | How much the option's price changes for a **1-percentage-point change in interest rates**. Usually small for short-dated options.                                                                                                                    |
    | `impliedVolatility` | The market's expectation of how volatile the underlying will be over the option's life, expressed as a decimal: `0.2752` means 27.52% annualized. Higher IV = more expensive options.                                                                |
    | `symbol`            | The OSI symbol of the option contract                                                                                                                                                                                                                |
    | `timestamp`         | ISO 8601 timestamp of when the Greeks were last calculated                                                                                                                                                                                           |

    **Example (all Greeks):**

    ```json theme={null}
    "greeksFields": ["*"]
    ```

    **Example (selective fields):**

    ```json theme={null}
    "greeksFields": ["delta", "gamma", "impliedVolatility"]
    ```

    <Warning>
      `greeksFields` is only applicable when `symbolType` is `"option"`. It has no effect for equity or index symbols.
    </Warning>
  </Accordion>
</AccordionGroup>

## Unsubscribing from Market Data

The WebSocket supports three unsubscribe modes for flexible subscription management.

<Tabs>
  <Tab title="Mode 1: Full Unsubscribe">
    Remove all subscriptions for one or more symbols:

    ```json theme={null}
    {
      "type": "unsubscribe",
      "id": "unsub-1",
      "payload": ["AAPL", "MSFT", "GOOGL"]
    }
    ```

    This removes **all quote, trade, Level 2, Time & Sales, and Greeks subscriptions** for the specified symbols.
  </Tab>

  <Tab title="Mode 2: Type-Specific">
    Unsubscribe from specific data types while keeping others active:

    ### Unsubscribe from Quotes Only

    ```json theme={null}
    {
      "type": "unsubscribe",
      "id": "unsub-2",
      "payload": [
        {
          "symbol": "AAPL",
          "quote": true,
          "trade": false
        }
      ]
    }
    ```

    ### Unsubscribe from Trades Only

    ```json theme={null}
    {
      "type": "unsubscribe",
      "id": "unsub-3",
      "payload": [
        {
          "symbol": "TSLA",
          "trade": true
        }
      ]
    }
    ```

    ### Unsubscribe from Level 2 Only

    ```json theme={null}
    {
      "type": "unsubscribe",
      "id": "unsub-l2-1",
      "payload": [
        {
          "symbol": "AAPL",
          "level2": true
        }
      ]
    }
    ```

    ### Unsubscribe from Time & Sales Only

    ```json theme={null}
    {
      "type": "unsubscribe",
      "id": "unsub-tns-1",
      "payload": [
        {
          "symbol": "AAPL",
          "timeAndSales": true
        }
      ]
    }
    ```

    ### Unsubscribe from Level 2 and Time & Sales

    ```json theme={null}
    {
      "type": "unsubscribe",
      "id": "unsub-l2-tns-1",
      "payload": [
        {
          "symbol": "AAPL",
          "level2": true,
          "timeAndSales": true
        }
      ]
    }
    ```

    ### Unsubscribe from All Greeks

    ```json theme={null}
    {
      "type": "unsubscribe",
      "id": "unsub-greeks-1",
      "payload": [
        {
          "symbol": "XSP281215C00920000",
          "greeks": true
        }
      ]
    }
    ```

    **Available type flags:**

    * `quote`: boolean - Unsubscribe from all quote data
    * `trade`: boolean - Unsubscribe from all trade data
    * `level2`: boolean - Unsubscribe from Level 2 data
    * `timeAndSales`: boolean - Unsubscribe from Time & Sales data
    * `greeks`: boolean - Unsubscribe from all Greeks data (options only)
  </Tab>

  <Tab title="Mode 3: Field-Level">
    Remove specific fields while keeping the subscription active:

    ### Unsubscribe from Specific Quote Fields

    ```json theme={null}
    {
      "type": "unsubscribe",
      "id": "unsub-4",
      "payload": [
        {
          "symbol": "GOOGL",
          "quoteFields": ["bidChange", "askChange", "bidSizeChange", "askSizeChange"]
        }
      ]
    }
    ```

    ### Unsubscribe from Specific Trade Fields

    ```json theme={null}
    {
      "type": "unsubscribe",
      "id": "unsub-5",
      "payload": [
        {
          "symbol": "AAPL",
          "tradeFields": ["tickVolume", "tick", "tradeSeq"]
        }
      ]
    }
    ```

    ### Unsubscribe from Mixed Fields

    ```json theme={null}
    {
      "type": "unsubscribe",
      "id": "unsub-6",
      "payload": [
        {
          "symbol": "MSFT",
          "quoteFields": ["bidTimestamp", "askTimestamp"],
          "tradeFields": ["tradeTimestamp", "closePrice"]
        }
      ]
    }
    ```

    <Info>
      Field-level unsubscribe is supported for quote and trade fields. For Greeks, use `greeks: true` to remove the full Greeks subscription for an option symbol.
    </Info>
  </Tab>
</Tabs>

### Unsubscribe Response

When you unsubscribe, the server confirms the action:

```json theme={null}
{
  "type": "event",
  "payload": {
    "action": "unsubscribe",
    "data": {
      "symbols": ["AAPL"]
    },
    "id": "unsub-1",
    "timestamp": 1701450000123
  }
}
```

## Message Formats & Responses

### Snapshot Responses

When you subscribe, you immediately receive a snapshot of current market data. The snapshot contains all requested fields.

<AccordionGroup>
  <Accordion title="Quote Snapshot Example" icon="quotes" defaultOpen>
    ```json theme={null}
    {
      "type": "event",
      "payload": {
        "action": "snapshot",
        "type": "quote",
        "symbol": "AAPL",
        "data": {
          "bidPrice": 150.25,
          "bidSize": 500,
          "bidChange": 0.05,
          "bidSizeChange": 100,
          "bidTimestamp": 1701450000120,
          "bidExchange": "Q",
          "askPrice": 150.26,
          "askSize": 300,
          "askChange": 0.03,
          "askSizeChange": -50,
          "askTimestamp": 1701450000121,
          "askExchange": "N",
          "quoteTimestamp": 1701450000121,
          "midPrice": 150.255,
          "spread": 0.01
        },
        "id": "sub-1",
        "timestamp": 1701450000123
      }
    }
    ```
  </Accordion>

  <Accordion title="Trade Snapshot Example" icon="arrow-right-arrow-left">
    ```json theme={null}
    {
      "type": "event",
      "payload": {
        "action": "snapshot",
        "type": "trade",
        "symbol": "AAPL",
        "data": {
          "price": 150.25,
          "lastPrice": 150.25,
          "size": 100,
          "totalVolume": 45678900,
          "tickVolume": 100,
          "openPrice": 149.50,
          "highPrice": 151.00,
          "lowPrice": 149.25,
          "closePrice": 149.80,
          "previousClosePrice": 149.80,
          "netChange": 0.45,
          "tick": "up",
          "tradeSeq": 123456,
          "tradeTimestamp": "2026-04-20T07:11:01.123000-04:00"
        },
        "id": "sub-1",
        "timestamp": 1701450000125
      }
    }
    ```
  </Accordion>

  <Accordion title="Level 2 Update Example" icon="layer-group">
    <Warning>
      Level 2 does not send an initial snapshot. You receive updates as they arrive.
    </Warning>

    <Note>
      **Format Guide:**

      * **orderBook**: `askSize:price:bidSize`
      * **quotes**: `exchange:askPrice:askSize:bidPrice:bidSize`
    </Note>

    ```json theme={null}
    {
      "type": "event",
      "payload": {
        "action": "update",
        "type": "level2nOB",
        "symbol": "AAPL",
        "timestamp": 1701450000123,
        "data": {
          "orderBook": [
            "0:150.24:200",
            "0:150.24:300",
            "500:150.26:0",
            "300:150.26:0",
            "400:150.27:0"
          ],
          "quotes": [
            "NSDQ:150.26:500:150.25:400",
            "NYSE:150.27:200:150.24:200",
            "PACF:150.26:300:150.24:300"
          ],
          "symbol": "AAPL",
          "timestamp": "2025-12-29T05:18:33.123000-05:00"
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="Time & Sales Update Example" icon="clock">
    ```json theme={null}
    {
      "type": "event",
      "payload": {
        "action": "update",
        "type": "timeAndSales",
        "symbol": "AAPL",
        "timestamp": 1701450000458,
        "data": {
          "symbol": "AAPL",
          "price": "150.26",
          "size": "250",
          "tick": "up",
          "tradeSeq": "123457",
          "tradeExchange": "Q",
          "tradeTimestamp": "2026-04-20T07:11:01.717000-04:00"
        }
      }
    }
    ```

    <Info>
      Each Time & Sales message represents a **single trade execution**. You may receive multiple messages per second during active trading.
    </Info>
  </Accordion>

  <Accordion title="Option Contract Snapshot" icon="option">
    ```json theme={null}
    {
      "type": "event",
      "payload": {
        "action": "snapshot",
        "type": "quote",
        "symbol": "AAPL240119C00150000",
        "data": {
          "bidPrice": 5.25,
          "askPrice": 5.30,
          "bidSize": 50,
          "askSize": 75,
          "midPrice": 5.275,
          "spread": 0.05,
          "openInterest": 12450
        },
        "id": "sub-opt-1",
        "timestamp": 1701450000123
      }
    }
    ```
  </Accordion>

  <Accordion title="Greeks Snapshot & Update Example" icon="function">
    Upon subscribing with `greeksFields`, the server immediately sends a **snapshot** of the last known Greeks values. Subsequent **updates** are streamed whenever Greeks are recalculated.

    **1. Initial snapshot** (received immediately on subscribe):

    ```json theme={null}
    {
      "type": "event",
      "payload": {
        "action": "snapshot",
        "type": "greeks",
        "symbol": "XSP281215C00920000",
        "timestamp": 1770975436651,
        "data": {
          "delta": 0.522,
          "gamma": 0.0386,
          "impliedVolatility": 0.2752,
          "symbol": "XSP281215C00920000",
          "theta": -0.0246,
          "rho": 0.004,
          "timestamp": "2026-02-13T15:07:16.65+05:30",
          "vega": 0.1606
        }
      }
    }
    ```

    **2. Real-time update** (streamed when Greeks change):

    ```json theme={null}
    {
      "type": "event",
      "payload": {
        "action": "update",
        "type": "greeks",
        "symbol": "XSP281215C00920000",
        "timestamp": 1770975502651,
        "data": {
          "delta": 0.531,
          "gamma": 0.0391,
          "impliedVolatility": 0.2788,
          "symbol": "XSP281215C00920000",
          "theta": -0.0249,
          "rho": 0.004,
          "timestamp": "2026-02-13T15:08:22.10+05:30",
          "vega": 0.1618
        }
      }
    }
    ```

    **Selective fields** (using `greeksFields: ["delta", "impliedVolatility"]`):

    ```json theme={null}
    {
      "type": "event",
      "payload": {
        "action": "snapshot",
        "type": "greeks",
        "symbol": "AAPL240119C00150000",
        "timestamp": 1701450000890,
        "data": {
          "delta": 0.638,
          "impliedVolatility": 0.3105
        }
      }
    }
    ```

    <Info>
      Use `action: "snapshot"` vs `action: "update"` to distinguish the initial state from real-time changes. Only the fields you subscribed to are included in each message.
    </Info>
  </Accordion>
</AccordionGroup>

### Update Responses

After the snapshot, you receive real-time updates with **only changed fields**:

<AccordionGroup>
  <Accordion title="Quote Update" icon="quotes" defaultOpen>
    ```json theme={null}
    {
      "type": "event",
      "payload": {
        "action": "update",
        "type": "quote",
        "symbol": "AAPL",
        "timestamp": 1701450001456,
        "data": {
          "bidPrice": 150.26,
          "bidSize": 600,
          "bidChange": 0.01,
          "bidSizeChange": 100,
          "bidTimestamp": 1701450001450
        }
      }
    }
    ```

    <Info>
      **Bandwidth Optimization**: Updates contain only fields that changed since the last message, minimizing network usage.
    </Info>
  </Accordion>

  <Accordion title="Trade Update" icon="arrow-right-arrow-left">
    ```json theme={null}
    {
      "type": "event",
      "payload": {
        "action": "update",
        "type": "trade",
        "symbol": "GOOG",
        "timestamp": 1776683461767,
        "data": {
          "netChange": -3.1300000000000003,
          "price": 336.27000000000004,
          "size": 6,
          "symbol": "GOOG",
          "tradeTimestamp": "2026-04-20T07:11:01.717000-04:00"
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

### Market Status Updates

After successful authentication and whenever market status changes, the server can send a market status event:

```json theme={null}
{
  "type": "event",
  "payload": {
    "action": "update",
    "type": "marketStatus",
    "data": {
      "market": "open",
      "serverTime": "2026-05-13T10:30:00Z",
      "exchanges": {
        "nyse": "open",
        "nasdaq": "open"
      },
      "currencies": {
        "fx": "open"
      },
      "afterHours": false,
      "earlyHours": false
    },
    "timestamp": 1701450000123
  }
}
```

### Streaming event structure

Streaming market data events use the following envelope:

| Field               | Type    | Description                                                                                                                                                                                                                                             |
| ------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `type`              | string  | Outer envelope type. Streaming market data events always use `event`.                                                                                                                                                                                   |
| `payload.action`    | string  | What kind of event this is. One of: `snapshot` (the first message you receive after subscribing — current state), `update` (a real-time change), `error` (something went wrong), `unsubscribe` (the server confirming you've been removed from a feed). |
| `payload.type`      | string  | Which data category the event belongs to. One of: `quote` (best bid/ask), `trade` (last sale info), `level2nOB` (order book depth), `timeAndSales` (every individual trade), `greeks` (option risk measures), `marketStatus` (market session state).    |
| `payload.symbol`    | string  | The ticker or option symbol the event is about. Omitted for market-wide events such as `marketStatus`.                                                                                                                                                  |
| `payload.data`      | object  | The actual data payload. Note that `update` messages only include fields that changed since the last message — fields not in the update have not changed.                                                                                               |
| `payload.id`        | string  | Correlation ID. When the event was triggered by one of your subscribe requests, the server echoes back the `id` you sent.                                                                                                                               |
| `payload.timestamp` | integer | When the event happened, in Unix milliseconds (epoch).                                                                                                                                                                                                  |

<Note>
  **Quick guide to outer `type` values:**

  * `event` — Streaming pushes from the server: market data, auth/refresh notifications, unsubscribe confirmations, subscription errors.
  * `pong` — Reply to a `ping` you sent. Used only for keep-alive.
  * `response` — Reply to an on-demand `request` you sent (e.g. fetching option expiry dates).
</Note>

## Error Handling

### Error Response Format

```json theme={null}
{
  "type": "event",
  "payload": {
    "action": "error",
    "symbol": "INVALID",
    "error": "symbol not found",
    "id": "sub-1",
    "timestamp": 1701450000123
  }
}
```

### Common Error Messages

| Message                       | Description                                                               | Resolution                                                                |
| ----------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| `authentication required`     | The connection must authenticate before this action                       | Send a `POST /auth` request message with a valid token                    |
| `invalid subscribe format`    | Subscribe payload could not be parsed as an array of symbol requests      | Send `payload` as an array of objects                                     |
| `invalid unsubscribe format`  | Unsubscribe payload could not be parsed as an array of strings or objects | Send `payload` as `["AAPL"]` or `[{ "symbol": "AAPL", "quote": true }]`   |
| `no symbols provided`         | The request did not include any symbols                                   | Include at least one symbol                                               |
| `too many symbols in request` | Request exceeded the backend symbol limit                                 | Split symbols across multiple requests                                    |
| `invalid quote fields: ...`   | One or more quote field names are not supported                           | Check field names against the quote field list                            |
| `invalid trade fields: ...`   | One or more trade field names are not supported                           | Check field names against the trade field list                            |
| `invalid greeks fields: ...`  | One or more Greeks field names are not supported                          | Use only `delta`, `gamma`, `theta`, `vega`, `rho`, or `impliedVolatility` |

<Warning>
  Always implement error handling in your WebSocket client to handle network issues, invalid requests, and server errors gracefully.
</Warning>

## Connection Management

### Ping/Pong Keepalive

Send periodic pings to keep the WebSocket connection alive and detect network issues:

**Client sends:**

```json theme={null}
{
  "type": "ping",
  "id": "ping-001"
}
```

**Server responds:**

```json theme={null}
{
  "type": "pong",
  "id": "ping-001",
  "timestamp": "2026-05-13T10:30:00Z",
  "payload": null
}
```

<Note>
  **Recommended**: Send a ping every 30-60 seconds to maintain the connection and detect disconnects quickly.
</Note>

### Handling Disconnects

```javascript theme={null}
const ws = new WebSocket('wss://api.aries.com/v1/market/ws');

ws.onclose = (event) => {
  console.log('WebSocket closed:', event.code, event.reason);

  // Implement reconnection logic with exponential backoff
  setTimeout(() => {
    reconnect();
  }, getBackoffDelay());
};

ws.onerror = (error) => {
  console.error('WebSocket error:', error);
};
```

<Info>
  Implement **exponential backoff** for reconnections: start with 1 second, then 2s, 4s, 8s, up to a maximum of 60 seconds.
</Info>

## Request/Response Pattern

Besides streaming subscriptions, the WebSocket supports on-demand queries using a RESTful-style request/response pattern.

### Get Option Expiry Dates

Query all available expiration dates for an underlying symbol:

**Request:**

```json theme={null}
{
  "type": "request",
  "id": "req-expiry-1",
  "payload": {
    "method": "GET",
    "path": "/options/AAPL/expiry-dates"
  }
}
```

**Response:**

```json theme={null}
{
  "type": "response",
  "id": "req-expiry-1",
  "payload": {
    "status": 200,
    "data": {
      "symbol": "AAPL",
      "expiryDates": [
        {
          "date": "2024-01-19"
        },
        {
          "date": "2024-02-16"
        },
        {
          "date": "2024-03-15"
        },
        {
          "date": "2024-04-19"
        }
      ]
    }
  }
}
```

### Get Option Contract Symbols

Query all call and put contracts for a symbol and expiration date:

**Request:**

```json theme={null}
{
  "type": "request",
  "id": "req-contracts-1",
  "payload": {
    "method": "GET",
    "path": "/options/AAPL/contracts/2024-01-19"
  }
}
```

For weekly contracts, include the optional frequency path segment:

```json theme={null}
{
  "type": "request",
  "id": "req-contracts-weekly-1",
  "payload": {
    "method": "GET",
    "path": "/options/SPX/contracts/2024-01-19/W"
  }
}
```

**Response:**

```json theme={null}
{
  "type": "response",
  "id": "req-contracts-1",
  "payload": {
    "status": 200,
    "data": {
      "symbol": "AAPL",
      "expiryDate": "2024-01-19",
      "calls": [
        {
          "symbol": "AAPL240119C00145000",
          "strikePrice": 145.00
        },
        {
          "symbol": "AAPL240119C00150000",
          "strikePrice": 150.00
        }
      ],
      "puts": [
        {
          "symbol": "AAPL240119P00145000",
          "strikePrice": 145.00
        },
        {
          "symbol": "AAPL240119P00150000",
          "strikePrice": 150.00
        }
      ]
    }
  }
}
```

### Request Responses

Successful request replies are returned as `type: "response"` with `payload.status` and `payload.data`.

Request/response errors use `type: "response"` with `payload.status` and `payload.error`. Streaming subscription errors use `type: "event"` with `payload.action: "error"`.


## AsyncAPI

````yaml asyncapi-specs/market-data.json marketDataStream
id: marketDataStream
title: Market data stream
description: >-
  Bidirectional WebSocket endpoint for market data streaming. Clients connect
  here to send subscription requests and receive real-time market data updates.
servers:
  - id: production
    protocol: wss
    host: api.aries.com
    bindings: []
    variables: []
address: /v1/market/ws
parameters: []
bindings: []
operations:
  - &ref_11
    id: authenticate
    title: Authenticate
    description: Sign in to the market-data WebSocket
    type: receive
    messages:
      - &ref_35
        id: authRequest
        contentType: application/json
        payload:
          - name: Auth Request
            description: Request to authenticate the WebSocket connection
            type: object
            properties:
              - name: type
                type: string
                description: Set this to `request` when you authenticate.
                enumValues:
                  - request
                required: true
              - name: id
                type: string
                description: >-
                  Optional. Add your own request ID here if you want it returned
                  in the auth reply.
                required: false
              - name: timestamp
                type: string
                description: >-
                  Optional time when your client created this message, in ISO
                  8601 format.
                required: false
              - name: payload
                type: object
                description: Put the auth request details here.
                required: true
                properties:
                  - name: method
                    type: string
                    description: Use `POST` to send the token for authentication.
                    enumValues:
                      - POST
                    required: true
                  - name: path
                    type: string
                    description: Auth route on the WebSocket API. Always `/auth`.
                    enumValues:
                      - /auth
                    required: true
                  - name: body
                    type: object
                    description: >-
                      JSON body for `POST /auth`. Put the raw access token
                      directly in `body.token`.
                    required: true
                    properties:
                      - name: token
                        type: string
                        description: Access token for this WebSocket connection.
                        required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - payload
          description: >-
            Sign-in message. Send this right after connecting so the server can
            open your market-data connection.
          properties:
            type:
              type: string
              enum:
                - request
              description: Set this to `request` when you authenticate.
              example: request
              x-parser-schema-id: <anonymous-schema-1>
            id:
              type: string
              description: >-
                Optional. Add your own request ID here if you want it returned
                in the auth reply.
              example: auth-001
              x-parser-schema-id: <anonymous-schema-2>
            timestamp:
              type: string
              format: date-time
              description: >-
                Optional time when your client created this message, in ISO 8601
                format.
              example: '2025-01-15T10:30:00Z'
              x-parser-schema-id: <anonymous-schema-3>
            payload:
              type: object
              required:
                - method
                - path
                - body
              description: Put the auth request details here.
              properties:
                method:
                  type: string
                  enum:
                    - POST
                  description: Use `POST` to send the token for authentication.
                  example: POST
                  x-parser-schema-id: <anonymous-schema-5>
                path:
                  type: string
                  enum:
                    - /auth
                  description: Auth route on the WebSocket API. Always `/auth`.
                  example: /auth
                  x-parser-schema-id: <anonymous-schema-6>
                body:
                  type: object
                  required:
                    - token
                  description: >-
                    JSON body for `POST /auth`. Put the raw access token
                    directly in `body.token`.
                  properties:
                    token:
                      type: string
                      description: Access token for this WebSocket connection.
                      example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
                      x-parser-schema-id: <anonymous-schema-8>
                  example:
                    token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
                  x-parser-schema-id: <anonymous-schema-7>
              example:
                method: POST
                path: /auth
                body:
                  token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
              x-parser-schema-id: <anonymous-schema-4>
          x-parser-schema-id: AuthRequestPayload
        title: Auth Request
        description: Request to authenticate the WebSocket connection
        example: |-
          {
            "type": "request",
            "id": "auth-001",
            "payload": {
              "method": "POST",
              "path": "/auth",
              "body": {
                "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyLTEyMzQ1IiwiZXhwIjoxNzAxNDUzNjAwfQ.signature"
              }
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: authRequest
    bindings: []
    extensions: &ref_5
      - id: x-parser-unique-object-id
        value: marketDataStream
  - &ref_12
    id: subscribe
    title: Subscribe to Market Data
    description: >-
      Subscribe to real-time quote, trade, Level 2, Time & Sales, and/or Greeks
      data for one or more symbols
    type: receive
    messages:
      - &ref_36
        id: subscribeRequest
        contentType: application/json
        payload:
          - name: Subscribe Request
            description: Request to subscribe to market data for one or more symbols
            type: object
            properties:
              - name: type
                type: string
                description: Set this to `subscribe` to start live updates.
                enumValues:
                  - subscribe
                required: true
              - name: payload
                type: array
                description: >-
                  Add one or more symbol requests here. Each one tells the
                  server which symbol and data you want.
                required: true
                properties:
                  - name: symbol
                    type: string
                    description: >-
                      Symbol to subscribe to. For stocks and indices use ticker
                      symbols such as `AAPL` or `SPX`. For options use symbols
                      such as `AAPL240119C00150000`.
                    required: true
                  - name: symbolType
                    type: string
                    description: Optional. Use `option` only when the symbol is an option.
                    enumValues:
                      - equity
                      - option
                    required: false
                  - name: fields
                    type: oneOf
                    description: >-
                      Combined field list. Use this if you want to send one
                      field list instead of separate quote, trade, or Greeks
                      lists. Use `["*"]` to ask for all fields.
                    required: false
                  - name: quoteFields
                    type: oneOf
                    description: >-
                      Quote fields you want back. If you leave both
                      `quoteFields` and `tradeFields` empty, the server sends
                      all quote and trade fields.
                    required: false
                  - name: tradeFields
                    type: oneOf
                    description: >-
                      Trade fields you want back. If you leave both
                      `quoteFields` and `tradeFields` empty, the server sends
                      all quote and trade fields.
                    required: false
                  - name: level2
                    type: boolean
                    description: >-
                      Set to `true` to get Level 2 order book updates from
                      multiple exchanges.
                    required: false
                  - name: timeAndSales
                    type: boolean
                    description: Set to `true` to get Time & Sales updates.
                    required: false
                  - name: timeAndSalesFields
                    type: oneOf
                    description: >-
                      Time & Sales fields to subscribe to. If omitted when
                      timeAndSales is true, all Time & Sales fields are
                      included.
                    required: false
                  - name: greeksFields
                    type: oneOf
                    description: Greeks fields you want back. Use this only for options.
                    required: false
              - name: id
                type: string
                description: >-
                  Optional. Add your own request ID here if you want the server
                  to send it back in related replies.
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - payload
          properties:
            type:
              type: string
              enum:
                - subscribe
              const: subscribe
              description: Set this to `subscribe` to start live updates.
              example: subscribe
              x-parser-schema-id: <anonymous-schema-9>
            payload:
              type: array
              description: >-
                Add one or more symbol requests here. Each one tells the server
                which symbol and data you want.
              minItems: 1
              items:
                type: object
                required:
                  - symbol
                description: >-
                  Subscription request for a single symbol with optional field
                  selection and data types. Field list properties accept either
                  a string or an array of strings.
                properties:
                  symbol:
                    type: string
                    description: >-
                      Symbol to subscribe to. For stocks and indices use ticker
                      symbols such as `AAPL` or `SPX`. For options use symbols
                      such as `AAPL240119C00150000`.
                    example: AAPL
                    x-parser-schema-id: <anonymous-schema-11>
                  symbolType:
                    type: string
                    enum:
                      - equity
                      - option
                    default: equity
                    description: Optional. Use `option` only when the symbol is an option.
                    example: equity
                    x-parser-schema-id: <anonymous-schema-12>
                  fields:
                    oneOf:
                      - &ref_0
                        type: string
                        description: >-
                          Field names you can use in
                          `SymbolFieldRequest.fields`.
                        oneOf:
                          - const: '*'
                            description: >-
                              Wildcard - subscribe to all available Greeks
                              fields
                            x-parser-schema-id: <anonymous-schema-14>
                          - const: bidPrice
                            description: >-
                              Current best bid price - the highest price a buyer
                              is willing to pay
                            x-parser-schema-id: <anonymous-schema-15>
                          - const: bidChange
                            description: Change in bid price from the previous quote update
                            x-parser-schema-id: <anonymous-schema-16>
                          - const: bidSize
                            description: >-
                              Number of shares available at the bid price
                              (typically in round lots of 100)
                            x-parser-schema-id: <anonymous-schema-17>
                          - const: bidSizeChange
                            description: Change in bid size from the previous quote update
                            x-parser-schema-id: <anonymous-schema-18>
                          - const: bidTimestamp
                            description: >-
                              Unix timestamp in milliseconds when the bid was
                              last updated
                            x-parser-schema-id: <anonymous-schema-19>
                          - const: bidExchange
                            description: >-
                              Exchange code where the best bid originated (e.g.,
                              'Q' for NASDAQ, 'N' for NYSE)
                            x-parser-schema-id: <anonymous-schema-20>
                          - const: askPrice
                            description: >-
                              Current best ask (offer) price - the lowest price
                              a seller is willing to accept
                            x-parser-schema-id: <anonymous-schema-21>
                          - const: askChange
                            description: Change in ask price from the previous quote update
                            x-parser-schema-id: <anonymous-schema-22>
                          - const: askSize
                            description: >-
                              Number of shares available at the ask price
                              (typically in round lots of 100)
                            x-parser-schema-id: <anonymous-schema-23>
                          - const: askSizeChange
                            description: Change in ask size from the previous quote update
                            x-parser-schema-id: <anonymous-schema-24>
                          - const: askTimestamp
                            description: >-
                              Unix timestamp in milliseconds when the ask was
                              last updated
                            x-parser-schema-id: <anonymous-schema-25>
                          - const: askExchange
                            description: >-
                              Exchange code where the best ask originated (e.g.,
                              'Q' for NASDAQ, 'N' for NYSE)
                            x-parser-schema-id: <anonymous-schema-26>
                          - const: quoteTimestamp
                            description: >-
                              Unix timestamp in milliseconds of the
                              consolidated/top-of-book quote time
                            x-parser-schema-id: <anonymous-schema-27>
                          - const: midPrice
                            description: >-
                              Midpoint price calculated as (bidPrice + askPrice)
                              / 2
                            x-parser-schema-id: <anonymous-schema-28>
                          - const: spread
                            description: Bid-ask spread calculated as askPrice - bidPrice
                            x-parser-schema-id: <anonymous-schema-29>
                          - const: openInterest
                            description: >-
                              Total number of outstanding open contracts for the
                              option. Only applicable when symbolType is
                              'option'.
                            x-parser-schema-id: <anonymous-schema-30>
                          - const: price
                            description: >-
                              Last trade execution price (same as lastPrice in
                              most cases)
                            x-parser-schema-id: <anonymous-schema-31>
                          - const: size
                            description: Number of shares in the last trade execution
                            x-parser-schema-id: <anonymous-schema-32>
                          - const: totalVolume
                            description: Total shares traded so far today.
                            x-parser-schema-id: <anonymous-schema-33>
                          - const: tickVolume
                            description: >-
                              Volume of shares traded in the most recent
                              tick/update
                            x-parser-schema-id: <anonymous-schema-34>
                          - const: openPrice
                            description: Opening price for today.
                            x-parser-schema-id: <anonymous-schema-35>
                          - const: highPrice
                            description: Highest price so far today.
                            x-parser-schema-id: <anonymous-schema-36>
                          - const: lowPrice
                            description: Lowest price so far today.
                            x-parser-schema-id: <anonymous-schema-37>
                          - const: lastPrice
                            description: Most recent trade price (last sale price)
                            x-parser-schema-id: <anonymous-schema-38>
                          - const: netChange
                            description: >-
                              Net price change from previous close (lastPrice -
                              previousClosePrice)
                            x-parser-schema-id: <anonymous-schema-39>
                          - const: tick
                            description: >-
                              Tick direction indicator: 'up' (uptick), 'down'
                              (downtick), or 'unchanged'
                            x-parser-schema-id: <anonymous-schema-40>
                          - const: tradeSeq
                            description: >-
                              Trade sequence number - monotonically increasing
                              identifier for each trade
                            x-parser-schema-id: <anonymous-schema-41>
                          - const: tradeTimestamp
                            description: Time when the trade happened, in ISO 8601 format.
                            x-parser-schema-id: <anonymous-schema-42>
                          - const: closePrice
                            description: >-
                              Official close price. This may be from today or
                              the previous trading day, depending on market
                              hours.
                            x-parser-schema-id: <anonymous-schema-43>
                          - const: previousClosePrice
                            description: >-
                              Previous official close price, used to calculate
                              netChange
                            x-parser-schema-id: <anonymous-schema-44>
                          - const: delta
                            description: >-
                              Rate of change of the option price relative to a
                              $1 change in the underlying asset price. Ranges
                              from -1 to 1 for puts and 0 to 1 for calls.
                            x-parser-schema-id: <anonymous-schema-45>
                          - const: gamma
                            description: >-
                              Rate of change of delta relative to a $1 change in
                              the underlying asset price. Measures the convexity
                              of the option's value.
                            x-parser-schema-id: <anonymous-schema-46>
                          - const: theta
                            description: >-
                              Rate of change of the option price relative to the
                              passage of time (time decay). Typically negative,
                              representing daily value erosion.
                            x-parser-schema-id: <anonymous-schema-47>
                          - const: vega
                            description: >-
                              Rate of change of the option price relative to a
                              1% change in implied volatility.
                            x-parser-schema-id: <anonymous-schema-48>
                          - const: rho
                            description: >-
                              Rate of change of the option price relative to a
                              1% change in the risk-free interest rate.
                            x-parser-schema-id: <anonymous-schema-49>
                          - const: impliedVolatility
                            description: >-
                              The market's implied volatility for the option
                              contract, expressed as a decimal (e.g., 0.2752 =
                              27.52%).
                            x-parser-schema-id: <anonymous-schema-50>
                          - const: symbol
                            description: Option symbol.
                            x-parser-schema-id: <anonymous-schema-51>
                          - const: timestamp
                            description: >-
                              Time when these Greeks were calculated, in ISO
                              8601 format.
                            x-parser-schema-id: <anonymous-schema-52>
                        x-parser-schema-id: UnifiedFieldEnum
                      - type: array
                        description: Array of field names
                        minItems: 1
                        items: *ref_0
                        x-parser-schema-id: <anonymous-schema-53>
                    description: >-
                      Combined field list. Use this if you want to send one
                      field list instead of separate quote, trade, or Greeks
                      lists. Use `["*"]` to ask for all fields.
                    example:
                      - bidPrice
                      - lastPrice
                      - delta
                    x-parser-schema-id: <anonymous-schema-13>
                  quoteFields:
                    oneOf:
                      - &ref_1
                        type: string
                        description: >-
                          Available fields for quote subscriptions. Quote data
                          represents the current best bid and ask prices from
                          the order book.
                        oneOf:
                          - const: '*'
                            description: Wildcard - subscribe to all available quote fields
                            x-parser-schema-id: <anonymous-schema-55>
                          - const: bidPrice
                            description: >-
                              Current best bid price - the highest price a buyer
                              is willing to pay
                            x-parser-schema-id: <anonymous-schema-56>
                          - const: bidChange
                            description: Change in bid price from the previous quote update
                            x-parser-schema-id: <anonymous-schema-57>
                          - const: bidSize
                            description: >-
                              Number of shares available at the bid price
                              (typically in round lots of 100)
                            x-parser-schema-id: <anonymous-schema-58>
                          - const: bidSizeChange
                            description: Change in bid size from the previous quote update
                            x-parser-schema-id: <anonymous-schema-59>
                          - const: bidTimestamp
                            description: >-
                              Unix timestamp in milliseconds when the bid was
                              last updated
                            x-parser-schema-id: <anonymous-schema-60>
                          - const: bidExchange
                            description: >-
                              Exchange code where the best bid originated (e.g.,
                              'Q' for NASDAQ, 'N' for NYSE)
                            x-parser-schema-id: <anonymous-schema-61>
                          - const: askPrice
                            description: >-
                              Current best ask (offer) price - the lowest price
                              a seller is willing to accept
                            x-parser-schema-id: <anonymous-schema-62>
                          - const: askChange
                            description: Change in ask price from the previous quote update
                            x-parser-schema-id: <anonymous-schema-63>
                          - const: askSize
                            description: >-
                              Number of shares available at the ask price
                              (typically in round lots of 100)
                            x-parser-schema-id: <anonymous-schema-64>
                          - const: askSizeChange
                            description: Change in ask size from the previous quote update
                            x-parser-schema-id: <anonymous-schema-65>
                          - const: askTimestamp
                            description: >-
                              Unix timestamp in milliseconds when the ask was
                              last updated
                            x-parser-schema-id: <anonymous-schema-66>
                          - const: askExchange
                            description: >-
                              Exchange code where the best ask originated (e.g.,
                              'Q' for NASDAQ, 'N' for NYSE)
                            x-parser-schema-id: <anonymous-schema-67>
                          - const: quoteTimestamp
                            description: >-
                              Unix timestamp in milliseconds of the
                              consolidated/top-of-book quote time
                            x-parser-schema-id: <anonymous-schema-68>
                          - const: midPrice
                            description: >-
                              Midpoint price calculated as (bidPrice + askPrice)
                              / 2
                            x-parser-schema-id: <anonymous-schema-69>
                          - const: spread
                            description: Bid-ask spread calculated as askPrice - bidPrice
                            x-parser-schema-id: <anonymous-schema-70>
                          - const: openInterest
                            description: >-
                              Total number of outstanding open contracts for the
                              option. Only applicable when symbolType is
                              'option'.
                            x-parser-schema-id: <anonymous-schema-71>
                        x-parser-schema-id: QuoteFieldEnum
                      - type: array
                        description: Array of field names
                        minItems: 1
                        items: *ref_1
                        x-parser-schema-id: <anonymous-schema-72>
                    description: >-
                      Quote fields you want back. If you leave both
                      `quoteFields` and `tradeFields` empty, the server sends
                      all quote and trade fields.
                    example:
                      - bidPrice
                      - askPrice
                      - midPrice
                      - spread
                    x-parser-schema-id: <anonymous-schema-54>
                  tradeFields:
                    oneOf:
                      - &ref_2
                        type: string
                        description: >-
                          Available fields for trade subscriptions. Trade data
                          includes last sale information, volume, and OHLC
                          (Open-High-Low-Close) prices.
                        oneOf:
                          - const: '*'
                            description: Wildcard - subscribe to all available trade fields
                            x-parser-schema-id: <anonymous-schema-74>
                          - const: price
                            description: >-
                              Last trade execution price (same as lastPrice in
                              most cases)
                            x-parser-schema-id: <anonymous-schema-75>
                          - const: size
                            description: Total shares traded so far today.
                            x-parser-schema-id: <anonymous-schema-76>
                          - const: totalVolume
                            description: Total shares traded so far today.
                            x-parser-schema-id: <anonymous-schema-77>
                          - const: tickVolume
                            description: Opening price for today.
                            x-parser-schema-id: <anonymous-schema-78>
                          - const: openPrice
                            description: Highest price so far today.
                            x-parser-schema-id: <anonymous-schema-79>
                          - const: highPrice
                            description: Lowest price so far today.
                            x-parser-schema-id: <anonymous-schema-80>
                          - const: lowPrice
                            description: Lowest price so far today.
                            x-parser-schema-id: <anonymous-schema-81>
                          - const: lastPrice
                            description: Most recent trade price (last sale price)
                            x-parser-schema-id: <anonymous-schema-82>
                          - const: netChange
                            description: >-
                              Net price change from previous close (lastPrice -
                              previousClosePrice)
                            x-parser-schema-id: <anonymous-schema-83>
                          - const: tick
                            description: >-
                              Tick direction indicator: 'up' (uptick), 'down'
                              (downtick), or 'unchanged'
                            x-parser-schema-id: <anonymous-schema-84>
                          - const: tradeSeq
                            description: >-
                              Trade sequence number - monotonically increasing
                              identifier for each trade
                            x-parser-schema-id: <anonymous-schema-85>
                          - const: tradeTimestamp
                            description: Time when the trade happened, in ISO 8601 format.
                            x-parser-schema-id: <anonymous-schema-86>
                          - const: closePrice
                            description: >-
                              Official close price. This may be from today or
                              the previous trading day, depending on market
                              hours.
                            x-parser-schema-id: <anonymous-schema-87>
                          - const: previousClosePrice
                            description: Previous official close price.
                            x-parser-schema-id: <anonymous-schema-88>
                        x-parser-schema-id: TradeFieldEnum
                      - type: array
                        description: Array of field names
                        minItems: 1
                        items: *ref_2
                        x-parser-schema-id: <anonymous-schema-89>
                    description: >-
                      Trade fields you want back. If you leave both
                      `quoteFields` and `tradeFields` empty, the server sends
                      all quote and trade fields.
                    example:
                      - lastPrice
                      - size
                      - totalVolume
                      - netChange
                    x-parser-schema-id: <anonymous-schema-73>
                  level2:
                    type: boolean
                    default: false
                    description: >-
                      Set to `true` to get Level 2 order book updates from
                      multiple exchanges.
                    example: true
                    x-parser-schema-id: <anonymous-schema-90>
                  timeAndSales:
                    type: boolean
                    default: false
                    description: Set to `true` to get Time & Sales updates.
                    example: true
                    x-parser-schema-id: <anonymous-schema-91>
                  timeAndSalesFields:
                    oneOf:
                      - &ref_3
                        type: string
                        description: >-
                          Available fields for Time & Sales subscriptions. Time
                          & Sales shows individual trade executions in
                          real-time.
                        oneOf:
                          - const: '*'
                            description: >-
                              Wildcard - subscribe to all available Time & Sales
                              fields
                            x-parser-schema-id: <anonymous-schema-93>
                          - const: symbol
                            description: The ticker symbol for the trade
                            x-parser-schema-id: <anonymous-schema-94>
                          - const: price
                            description: Trade execution price
                            x-parser-schema-id: <anonymous-schema-95>
                          - const: size
                            description: Number of shares in the trade
                            x-parser-schema-id: <anonymous-schema-96>
                          - const: tick
                            description: >-
                              Tick direction indicator: 'up' (uptick), 'down'
                              (downtick), or 'unchanged'
                            x-parser-schema-id: <anonymous-schema-97>
                          - const: tradeSeq
                            description: >-
                              Trade sequence number - monotonically increasing
                              identifier for each trade
                            x-parser-schema-id: <anonymous-schema-98>
                          - const: tradeExchange
                            description: >-
                              Exchange code where the trade was executed (e.g.,
                              'Q' for NASDAQ, 'N' for NYSE, 'D' for FINRA ADF)
                            x-parser-schema-id: <anonymous-schema-99>
                          - const: tradeTimestamp
                            description: Time when the trade happened, in ISO 8601 format.
                            x-parser-schema-id: <anonymous-schema-100>
                        x-parser-schema-id: TimeAndSalesFieldEnum
                      - type: array
                        description: Array of field names
                        minItems: 1
                        items: *ref_3
                        x-parser-schema-id: <anonymous-schema-101>
                    description: >-
                      Time & Sales fields to subscribe to. If omitted when
                      timeAndSales is true, all Time & Sales fields are
                      included.
                    example:
                      - price
                      - size
                      - tick
                      - tradeTimestamp
                    x-parser-schema-id: <anonymous-schema-92>
                  greeksFields:
                    oneOf:
                      - &ref_4
                        type: string
                        description: >-
                          Available fields for Greeks subscriptions. Greeks are
                          only available for option contracts (symbolType:
                          'option').
                        oneOf:
                          - const: '*'
                            description: >-
                              Wildcard - subscribe to all available Greeks
                              fields
                            x-parser-schema-id: <anonymous-schema-103>
                          - const: delta
                            description: >-
                              Rate of change of the option price relative to a
                              $1 change in the underlying asset price. Ranges
                              from -1 to 1 for puts and 0 to 1 for calls.
                            x-parser-schema-id: <anonymous-schema-104>
                          - const: gamma
                            description: >-
                              Rate of change of delta relative to a $1 change in
                              the underlying asset price. Measures the convexity
                              of the option's value.
                            x-parser-schema-id: <anonymous-schema-105>
                          - const: theta
                            description: >-
                              Rate of change of the option price relative to the
                              passage of time (time decay). Typically negative,
                              representing daily value erosion.
                            x-parser-schema-id: <anonymous-schema-106>
                          - const: vega
                            description: >-
                              Rate of change of the option price relative to a
                              1% change in implied volatility.
                            x-parser-schema-id: <anonymous-schema-107>
                          - const: rho
                            description: >-
                              Rate of change of the option price relative to a
                              1% change in the risk-free interest rate.
                            x-parser-schema-id: <anonymous-schema-108>
                          - const: impliedVolatility
                            description: >-
                              The market's implied volatility for the option
                              contract, expressed as a decimal (e.g., 0.2752 =
                              27.52%).
                            x-parser-schema-id: <anonymous-schema-109>
                          - const: symbol
                            description: Option symbol.
                            x-parser-schema-id: <anonymous-schema-110>
                          - const: timestamp
                            description: >-
                              Time when these Greeks were calculated, in ISO
                              8601 format.
                            x-parser-schema-id: <anonymous-schema-111>
                        x-parser-schema-id: GreeksFieldEnum
                      - type: array
                        description: Array of field names
                        minItems: 1
                        items: *ref_4
                        x-parser-schema-id: <anonymous-schema-112>
                    description: Greeks fields you want back. Use this only for options.
                    example:
                      - delta
                      - gamma
                      - impliedVolatility
                    x-parser-schema-id: <anonymous-schema-102>
                x-parser-schema-id: SymbolFieldRequest
              example:
                - symbol: AAPL
                  quoteFields:
                    - bidPrice
                    - askPrice
                  tradeFields:
                    - lastPrice
                    - totalVolume
              x-parser-schema-id: <anonymous-schema-10>
            id:
              type: string
              description: >-
                Optional. Add your own request ID here if you want the server to
                send it back in related replies.
              example: sub-1
              x-parser-schema-id: <anonymous-schema-113>
          description: Use this message to start live updates for one or more symbols.
          x-parser-schema-id: SubscribeRequestPayload
        title: Subscribe Request
        description: Request to subscribe to market data for one or more symbols
        example: |-
          {
            "type": "subscribe",
            "id": "sub-1",
            "payload": [
              {
                "symbol": "AAPL",
                "tradeFields": [
                  "price",
                  "size"
                ]
              }
            ]
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: subscribeRequest
    bindings: []
    extensions: *ref_5
  - &ref_18
    id: receiveQuoteUpdate
    title: Receive Quote Update
    description: Receive real-time quote updates
    type: send
    messages:
      - &ref_42
        id: quoteUpdate
        contentType: application/json
        payload:
          - name: Quote Update
            description: Real-time quote update for a subscribed symbol
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `event` for live updates.
                required: false
              - name: payload
                type: object
                description: >-
                  Data inside an update event. This is a live change after the
                  initial snapshot.
                required: false
                properties:
                  - name: action
                    type: string
                    description: Indicates this is a real-time update
                    required: false
                  - name: type
                    type: string
                    description: >-
                      Type of market data in this message: quote, trade, Level
                      2, Time & Sales, Greeks, or market status.
                    enumValues:
                      - quote
                      - trade
                      - level2nOB
                      - timeAndSales
                      - greeks
                      - marketStatus
                    examples: &ref_6
                      - quote
                      - trade
                      - level2nOB
                      - timeAndSales
                      - greeks
                      - marketStatus
                    required: false
                  - name: symbol
                    type: string
                    description: The ticker symbol this update is for
                    required: false
                  - name: data
                    type: object
                    description: Changed data for this symbol.
                    required: false
                  - name: timestamp
                    type: integer
                    description: >-
                      Server timestamp in Unix milliseconds when this event was
                      sent
                    required: false
        headers: []
        jsonPayloadSchema: &ref_7
          type: object
          description: Event wrapper for update responses
          properties:
            type:
              type: string
              const: event
              description: The server sets this to `event` for live updates.
              x-parser-schema-id: <anonymous-schema-136>
            payload:
              type: object
              description: >-
                Data inside an update event. This is a live change after the
                initial snapshot.
              properties:
                action:
                  type: string
                  const: update
                  description: Indicates this is a real-time update
                  x-parser-schema-id: <anonymous-schema-137>
                type: &ref_8
                  type: string
                  enum:
                    - quote
                    - trade
                    - level2nOB
                    - timeAndSales
                    - greeks
                    - marketStatus
                  description: >-
                    Type of market data in this message: quote, trade, Level 2,
                    Time & Sales, Greeks, or market status.
                  examples: *ref_6
                  x-parser-schema-id: DataType
                symbol:
                  type: string
                  description: The ticker symbol this update is for
                  example: AAPL
                  x-parser-schema-id: <anonymous-schema-138>
                data:
                  type: object
                  description: Changed data for this symbol.
                  additionalProperties: true
                  x-parser-schema-id: <anonymous-schema-139>
                timestamp:
                  type: integer
                  format: int64
                  description: >-
                    Server timestamp in Unix milliseconds when this event was
                    sent
                  example: 1701450001123
                  x-parser-schema-id: <anonymous-schema-140>
              x-parser-schema-id: UpdateEventPayload
          x-parser-schema-id: UpdateResponsePayload
        title: Quote Update
        description: Real-time quote update for a subscribed symbol
        example: |-
          {
            "type": "event",
            "payload": {
              "action": "update",
              "type": "quote",
              "symbol": "AAPL",
              "data": {
                "bidPrice": 190.04,
                "askPrice": 190.06,
                "midPrice": 190.05,
                "spread": 0.02,
                "quoteTimestamp": 1701450001000
              },
              "timestamp": 1701450001123
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: quoteUpdate
    bindings: []
    extensions: *ref_5
  - &ref_19
    id: receiveTradeUpdate
    title: Receive Trade Update
    description: Receive real-time trade/price updates
    type: send
    messages:
      - &ref_43
        id: tradeUpdate
        contentType: application/json
        payload:
          - name: Trade Update
            description: Real-time trade/price update for a subscribed symbol
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `event` for live updates.
                required: false
              - name: payload
                type: object
                description: >-
                  Data inside an update event. This is a live change after the
                  initial snapshot.
                required: false
                properties:
                  - name: action
                    type: string
                    description: Indicates this is a real-time update
                    required: false
                  - name: type
                    type: string
                    description: >-
                      Type of market data in this message: quote, trade, Level
                      2, Time & Sales, Greeks, or market status.
                    enumValues:
                      - quote
                      - trade
                      - level2nOB
                      - timeAndSales
                      - greeks
                      - marketStatus
                    examples: *ref_6
                    required: false
                  - name: symbol
                    type: string
                    description: The ticker symbol this update is for
                    required: false
                  - name: data
                    type: object
                    description: Changed data for this symbol.
                    required: false
                  - name: timestamp
                    type: integer
                    description: >-
                      Server timestamp in Unix milliseconds when this event was
                      sent
                    required: false
        headers: []
        jsonPayloadSchema: *ref_7
        title: Trade Update
        description: Real-time trade/price update for a subscribed symbol
        example: |-
          {
            "type": "event",
            "payload": {
              "action": "update",
              "type": "trade",
              "symbol": "AAPL",
              "data": {
                "price": 190.05,
                "size": 100
              },
              "timestamp": 1701450001123
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: tradeUpdate
    bindings: []
    extensions: *ref_5
  - &ref_20
    id: receiveLevel2Update
    title: Receive Level 2 / Order Book Update
    description: Receive real-time Level 2 order book updates
    type: send
    messages:
      - &ref_44
        id: level2Update
        contentType: application/json
        payload:
          - name: Level 2 / Order Book Update
            description: >-
              Real-time Level 2 order book update showing market depth across
              exchanges
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `event` for live updates.
                required: false
              - name: payload
                type: object
                description: Data inside a Level 2 update.
                required: false
                properties:
                  - name: action
                    type: string
                    description: Indicates this is a real-time Level 2 update
                    required: false
                  - name: type
                    type: string
                    description: Data type indicator for Level 2 order book
                    required: false
                  - name: symbol
                    type: string
                    description: The ticker symbol this Level 2 data is for
                    required: false
                  - name: data
                    type: object
                    description: Level 2 data for this symbol.
                    required: false
                    properties:
                      - name: symbol
                        type: string
                        description: The ticker symbol
                        required: false
                      - name: orderBook
                        type: array
                        description: >-
                          Compact order-book rows in askSize:price:bidSize
                          format
                        required: false
                        properties:
                          - name: item
                            type: string
                            required: false
                      - name: quotes
                        type: array
                        description: >-
                          Compact venue quote rows in
                          exchange:askPrice:askSize:bidPrice:bidSize format
                        required: false
                        properties:
                          - name: item
                            type: string
                            required: false
                      - name: timestamp
                        type: string
                        description: Feed timestamp
                        required: false
                      - name: bidPrice
                        type: number
                        description: Top-level fallback bid price when present
                        required: false
                      - name: askPrice
                        type: number
                        description: Top-level fallback ask price when present
                        required: false
                      - name: bidSize
                        type: number
                        description: Top-level fallback bid size when present
                        required: false
                      - name: askSize
                        type: number
                        description: Top-level fallback ask size when present
                        required: false
                  - name: timestamp
                    type: integer
                    description: >-
                      Server timestamp in Unix milliseconds when this event was
                      sent
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          description: Event wrapper for Level 2 order book updates
          properties:
            type:
              type: string
              const: event
              description: The server sets this to `event` for live updates.
              x-parser-schema-id: <anonymous-schema-141>
            payload:
              type: object
              description: Data inside a Level 2 update.
              properties:
                action:
                  type: string
                  const: update
                  description: Indicates this is a real-time Level 2 update
                  x-parser-schema-id: <anonymous-schema-142>
                type:
                  type: string
                  const: level2nOB
                  description: Data type indicator for Level 2 order book
                  x-parser-schema-id: <anonymous-schema-143>
                symbol:
                  type: string
                  description: The ticker symbol this Level 2 data is for
                  example: AAPL
                  x-parser-schema-id: <anonymous-schema-144>
                data:
                  type: object
                  description: Level 2 data for this symbol.
                  additionalProperties: true
                  properties:
                    symbol:
                      type: string
                      description: The ticker symbol
                      example: AAPL
                      x-parser-schema-id: <anonymous-schema-146>
                    orderBook:
                      type: array
                      description: Compact order-book rows in askSize:price:bidSize format
                      items:
                        type: string
                        example: 0:250.00:100
                        x-parser-schema-id: <anonymous-schema-148>
                      x-parser-schema-id: <anonymous-schema-147>
                    quotes:
                      type: array
                      description: >-
                        Compact venue quote rows in
                        exchange:askPrice:askSize:bidPrice:bidSize format
                      items:
                        type: string
                        example: EDGX:272.55:100:272.00:500
                        x-parser-schema-id: <anonymous-schema-150>
                      x-parser-schema-id: <anonymous-schema-149>
                    timestamp:
                      type: string
                      description: Feed timestamp
                      example: '2025-12-29T05:18:33.600000-05:00'
                      x-parser-schema-id: <anonymous-schema-151>
                    bidPrice:
                      type: number
                      format: double
                      description: Top-level fallback bid price when present
                      x-parser-schema-id: <anonymous-schema-152>
                    askPrice:
                      type: number
                      format: double
                      description: Top-level fallback ask price when present
                      x-parser-schema-id: <anonymous-schema-153>
                    bidSize:
                      type: number
                      format: double
                      description: Top-level fallback bid size when present
                      x-parser-schema-id: <anonymous-schema-154>
                    askSize:
                      type: number
                      format: double
                      description: Top-level fallback ask size when present
                      x-parser-schema-id: <anonymous-schema-155>
                  x-parser-schema-id: <anonymous-schema-145>
                timestamp:
                  type: integer
                  format: int64
                  description: >-
                    Server timestamp in Unix milliseconds when this event was
                    sent
                  example: 1701450001123
                  x-parser-schema-id: <anonymous-schema-156>
              x-parser-schema-id: Level2EventPayload
          x-parser-schema-id: Level2UpdatePayload
        title: Level 2 / Order Book Update
        description: >-
          Real-time Level 2 order book update showing market depth across
          exchanges
        example: |-
          {
            "type": "event",
            "payload": {
              "action": "update",
              "type": "level2nOB",
              "symbol": "AAPL",
              "data": {
                "orderBook": [
                  "0:150.24:200",
                  "500:150.26:0"
                ],
                "quotes": [
                  "NSDQ:150.26:500:150.25:400",
                  "NYSE:150.27:200:150.24:200"
                ],
                "symbol": "AAPL",
                "timestamp": "2025-12-29T05:18:33.600000-05:00"
              },
              "timestamp": 1701450000123
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: level2Update
    bindings: []
    extensions: *ref_5
  - &ref_21
    id: receiveTimeAndSalesUpdate
    title: Receive Time & Sales Update
    description: Receive real-time Time & Sales trade execution feed
    type: send
    messages:
      - &ref_45
        id: timeAndSalesUpdate
        contentType: application/json
        payload:
          - name: Time & Sales Update
            description: Real-time trade execution from the time and sales feed
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `event` for live updates.
                required: false
              - name: payload
                type: object
                description: Data inside a Time & Sales event.
                required: false
                properties:
                  - name: action
                    type: string
                    description: Indicates this is a real-time Time & Sales update
                    required: false
                  - name: type
                    type: string
                    description: Data type indicator for Time & Sales
                    required: false
                  - name: symbol
                    type: string
                    description: The ticker symbol this trade execution is for
                    required: false
                  - name: data
                    type: object
                    description: Time & Sales data representing a single trade execution
                    required: false
                    properties:
                      - name: symbol
                        type: string
                        description: The ticker symbol
                        required: false
                      - name: price
                        type: string
                        description: Trade execution price
                        required: false
                      - name: size
                        type: string
                        description: Number of shares in the trade
                        required: false
                      - name: tick
                        type: string
                        description: Tick direction indicator
                        enumValues:
                          - up
                          - down
                          - unchanged
                        required: false
                      - name: tradeSeq
                        type: string
                        description: >-
                          Trade sequence number - monotonically increasing
                          identifier
                        required: false
                      - name: tradeExchange
                        type: string
                        description: Exchange code where the trade was executed
                        enumValues:
                          - Q
                          - 'N'
                          - P
                          - Z
                          - K
                          - J
                          - M
                          - A
                          - B
                          - C
                          - D
                          - I
                          - X
                          - 'Y'
                          - W
                        required: false
                      - name: tradeTimestamp
                        type: string
                        description: Time when the trade happened, in ISO 8601 format.
                        required: false
                  - name: timestamp
                    type: integer
                    description: >-
                      Server timestamp in Unix milliseconds when this event was
                      sent
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          description: Event wrapper for Time & Sales updates
          properties:
            type:
              type: string
              const: event
              description: The server sets this to `event` for live updates.
              x-parser-schema-id: <anonymous-schema-157>
            payload:
              type: object
              description: Data inside a Time & Sales event.
              properties:
                action:
                  type: string
                  const: update
                  description: Indicates this is a real-time Time & Sales update
                  x-parser-schema-id: <anonymous-schema-158>
                type:
                  type: string
                  const: timeAndSales
                  description: Data type indicator for Time & Sales
                  x-parser-schema-id: <anonymous-schema-159>
                symbol:
                  type: string
                  description: The ticker symbol this trade execution is for
                  example: AAPL
                  x-parser-schema-id: <anonymous-schema-160>
                data:
                  type: object
                  description: Time & Sales data representing a single trade execution
                  properties:
                    symbol:
                      type: string
                      description: The ticker symbol
                      example: AAPL
                      x-parser-schema-id: <anonymous-schema-161>
                    price:
                      type: string
                      description: Trade execution price
                      example: '189.95'
                      x-parser-schema-id: <anonymous-schema-162>
                    size:
                      type: string
                      description: Number of shares in the trade
                      example: '100'
                      x-parser-schema-id: <anonymous-schema-163>
                    tick:
                      type: string
                      description: Tick direction indicator
                      example: up
                      enum:
                        - up
                        - down
                        - unchanged
                      x-parser-schema-id: <anonymous-schema-164>
                    tradeSeq:
                      type: string
                      description: >-
                        Trade sequence number - monotonically increasing
                        identifier
                      example: '123456789'
                      x-parser-schema-id: <anonymous-schema-165>
                    tradeExchange:
                      type: string
                      description: Exchange code where the trade was executed
                      example: Q
                      enum:
                        - Q
                        - 'N'
                        - P
                        - Z
                        - K
                        - J
                        - M
                        - A
                        - B
                        - C
                        - D
                        - I
                        - X
                        - 'Y'
                        - W
                      x-parser-schema-id: <anonymous-schema-166>
                    tradeTimestamp:
                      type: string
                      format: date-time
                      description: Time when the trade happened, in ISO 8601 format.
                      example: '2026-04-20T07:11:01.717000-04:00'
                      x-parser-schema-id: <anonymous-schema-167>
                  x-parser-schema-id: TimeAndSalesData
                timestamp:
                  type: integer
                  format: int64
                  description: >-
                    Server timestamp in Unix milliseconds when this event was
                    sent
                  example: 1701450001123
                  x-parser-schema-id: <anonymous-schema-168>
              x-parser-schema-id: TimeAndSalesEventPayload
          x-parser-schema-id: TimeAndSalesUpdatePayload
        title: Time & Sales Update
        description: Real-time trade execution from the time and sales feed
        example: |-
          {
            "type": "event",
            "payload": {
              "action": "update",
              "type": "timeAndSales",
              "symbol": "AAPL",
              "data": {
                "symbol": "AAPL",
                "price": "189.95",
                "size": "100",
                "tick": "up",
                "tradeSeq": "123456789",
                "tradeExchange": "Q",
                "tradeTimestamp": "2026-04-20T07:11:01.717000-04:00"
              },
              "timestamp": 1701450001123
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: timeAndSalesUpdate
    bindings: []
    extensions: *ref_5
  - &ref_22
    id: receiveGreeksUpdate
    title: Receive Greeks Update
    description: Receive Greeks snapshot and real-time updates for an option contract
    type: send
    messages:
      - &ref_46
        id: greeksUpdate
        contentType: application/json
        payload:
          - name: Greeks Update
            description: >-
              Greeks snapshot on subscribe and real-time updates for an option
              contract
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `event` for live updates.
                required: false
              - name: payload
                type: object
                description: Data inside a Greeks event.
                required: false
                properties:
                  - name: action
                    type: string
                    description: >-
                      `snapshot` for the first Greeks values, `update` for later
                      changes.
                    enumValues:
                      - snapshot
                      - update
                    required: false
                  - name: type
                    type: string
                    description: Data type indicator for Greeks data
                    required: false
                  - name: symbol
                    type: string
                    description: Option symbol
                    required: false
                  - name: data
                    type: object
                    description: >-
                      Option Greeks data. Only the fields requested via
                      greeksFields (or all fields if ["*"] was used) are
                      included in each update.
                    required: false
                    properties:
                      - name: symbol
                        type: string
                        description: Option symbol.
                        required: false
                      - name: delta
                        type: number
                        description: >-
                          Rate of change of the option price relative to a $1
                          move in the underlying. Ranges from 0 to 1 for calls
                          and -1 to 0 for puts.
                        required: false
                      - name: gamma
                        type: number
                        description: >-
                          Rate of change of delta relative to a $1 move in the
                          underlying. Measures curvature of option value.
                        required: false
                      - name: theta
                        type: number
                        description: >-
                          Daily time decay of the option price. Typically
                          negative, representing value lost each day as
                          expiration approaches.
                        required: false
                      - name: vega
                        type: number
                        description: >-
                          Rate of change of the option price relative to a 1%
                          change in implied volatility.
                        required: false
                      - name: rho
                        type: number
                        description: >-
                          Rate of change of the option price relative to a 1%
                          change in the risk-free interest rate.
                        required: false
                      - name: impliedVolatility
                        type: number
                        description: >-
                          Implied volatility of the option contract, expressed
                          as a decimal (e.g., 0.2752 = 27.52%).
                        required: false
                      - name: timestamp
                        type: string
                        description: >-
                          Time when these Greeks were calculated, in ISO 8601
                          format.
                        required: false
                  - name: timestamp
                    type: integer
                    description: >-
                      Server timestamp in Unix milliseconds when this event was
                      sent
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          description: Event wrapper for Greeks updates
          properties:
            type:
              type: string
              const: event
              description: The server sets this to `event` for live updates.
              x-parser-schema-id: <anonymous-schema-169>
            payload:
              type: object
              description: Data inside a Greeks event.
              properties:
                action:
                  type: string
                  enum:
                    - snapshot
                    - update
                  description: >-
                    `snapshot` for the first Greeks values, `update` for later
                    changes.
                  x-parser-schema-id: <anonymous-schema-170>
                type:
                  type: string
                  const: greeks
                  description: Data type indicator for Greeks data
                  x-parser-schema-id: <anonymous-schema-171>
                symbol:
                  type: string
                  description: Option symbol
                  example: XSP281215C00920000
                  x-parser-schema-id: <anonymous-schema-172>
                data:
                  type: object
                  description: >-
                    Option Greeks data. Only the fields requested via
                    greeksFields (or all fields if ["*"] was used) are included
                    in each update.
                  properties:
                    symbol:
                      type: string
                      description: Option symbol.
                      example: XSP281215C00920000
                      x-parser-schema-id: <anonymous-schema-173>
                    delta:
                      type: number
                      format: double
                      description: >-
                        Rate of change of the option price relative to a $1 move
                        in the underlying. Ranges from 0 to 1 for calls and -1
                        to 0 for puts.
                      example: 0.522
                      x-parser-schema-id: <anonymous-schema-174>
                    gamma:
                      type: number
                      format: double
                      description: >-
                        Rate of change of delta relative to a $1 move in the
                        underlying. Measures curvature of option value.
                      example: 0.0386
                      x-parser-schema-id: <anonymous-schema-175>
                    theta:
                      type: number
                      format: double
                      description: >-
                        Daily time decay of the option price. Typically
                        negative, representing value lost each day as expiration
                        approaches.
                      example: -0.0246
                      x-parser-schema-id: <anonymous-schema-176>
                    vega:
                      type: number
                      format: double
                      description: >-
                        Rate of change of the option price relative to a 1%
                        change in implied volatility.
                      example: 0.1606
                      x-parser-schema-id: <anonymous-schema-177>
                    rho:
                      type: number
                      format: double
                      description: >-
                        Rate of change of the option price relative to a 1%
                        change in the risk-free interest rate.
                      example: 0.004
                      x-parser-schema-id: <anonymous-schema-178>
                    impliedVolatility:
                      type: number
                      format: double
                      description: >-
                        Implied volatility of the option contract, expressed as
                        a decimal (e.g., 0.2752 = 27.52%).
                      example: 0.2752
                      x-parser-schema-id: <anonymous-schema-179>
                    timestamp:
                      type: string
                      format: date-time
                      description: >-
                        Time when these Greeks were calculated, in ISO 8601
                        format.
                      example: '2026-02-13T15:07:16.65+05:30'
                      x-parser-schema-id: <anonymous-schema-180>
                  x-parser-schema-id: GreeksData
                timestamp:
                  type: integer
                  format: int64
                  description: >-
                    Server timestamp in Unix milliseconds when this event was
                    sent
                  example: 1770975436651
                  x-parser-schema-id: <anonymous-schema-181>
              x-parser-schema-id: GreeksEventPayload
          x-parser-schema-id: GreeksUpdatePayload
        title: Greeks Update
        description: >-
          Greeks snapshot on subscribe and real-time updates for an option
          contract
        example: |-
          {
            "type": "event",
            "payload": {
              "action": "update",
              "type": "greeks",
              "symbol": "XSP281215C00920000",
              "data": {
                "delta": 0.531,
                "gamma": 0.0391,
                "impliedVolatility": 0.2788,
                "symbol": "XSP281215C00920000",
                "theta": -0.0249,
                "rho": 0.004,
                "timestamp": "2026-02-13T15:08:22.10+05:30",
                "vega": 0.1618
              },
              "timestamp": 1770975502651
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: greeksUpdate
    bindings: []
    extensions: *ref_5
  - &ref_23
    id: receiveError
    title: Receive Error
    description: Receive error messages from the server
    type: send
    messages:
      - &ref_47
        id: errorResponse
        contentType: application/json
        payload:
          - name: Error Response
            description: Error message from the server
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `event` for this message.
                required: false
              - name: payload
                type: object
                required: false
                properties:
                  - name: action
                    type: string
                    description: Indicates this is an error response
                    required: false
                  - name: symbol
                    type: string
                    description: The symbol related to the error, if applicable
                    required: false
                  - name: error
                    type: string
                    description: Human-readable error message describing what went wrong
                    required: false
                  - name: id
                    type: string
                    description: Request ID from your earlier message, if you sent one.
                    required: false
                  - name: timestamp
                    type: integer
                    description: >-
                      Server timestamp in Unix milliseconds when the error
                      occurred
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            type:
              type: string
              const: event
              description: The server sets this to `event` for this message.
              x-parser-schema-id: <anonymous-schema-193>
            payload:
              type: object
              properties:
                action:
                  type: string
                  const: error
                  description: Indicates this is an error response
                  x-parser-schema-id: <anonymous-schema-194>
                symbol:
                  type: string
                  description: The symbol related to the error, if applicable
                  example: AAPL
                  x-parser-schema-id: <anonymous-schema-195>
                error:
                  type: string
                  description: Human-readable error message describing what went wrong
                  example: 'invalid quote fields: invalidField'
                  x-parser-schema-id: <anonymous-schema-196>
                id:
                  type: string
                  description: Request ID from your earlier message, if you sent one.
                  x-parser-schema-id: <anonymous-schema-197>
                timestamp:
                  type: integer
                  format: int64
                  description: >-
                    Server timestamp in Unix milliseconds when the error
                    occurred
                  example: 1701450004000
                  x-parser-schema-id: <anonymous-schema-198>
              x-parser-schema-id: ErrorEventPayload
          x-parser-schema-id: ErrorResponsePayload
        title: Error Response
        description: Error message from the server
        example: |-
          {
            "type": "event",
            "payload": {
              "action": "error",
              "symbol": "AAPL",
              "error": "invalid quote fields: invalidField1, invalidField2",
              "id": "sub-1",
              "timestamp": 1701450004000
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: errorResponse
    bindings: []
    extensions: *ref_5
  - &ref_13
    id: unsubscribe
    title: Unsubscribe from Market Data
    description: Unsubscribe from market data for one or more symbols
    type: receive
    messages:
      - &ref_37
        id: unsubscribeRequest
        contentType: application/json
        payload:
          - name: Unsubscribe Request
            description: Request to unsubscribe from market data
            type: object
            properties:
              - name: type
                type: string
                description: Set this to `unsubscribe` to stop live updates.
                enumValues:
                  - unsubscribe
                required: true
              - name: payload
                type: array
                required: true
                properties:
                  - name: symbol
                    type: string
                    description: The ticker symbol to unsubscribe from
                    required: true
                  - name: quote
                    type: boolean
                    description: >-
                      Mode 2: If true, unsubscribe from all quote data for this
                      symbol. Takes precedence over quoteFields.
                    required: false
                  - name: trade
                    type: boolean
                    description: >-
                      Mode 2: If true, unsubscribe from all trade data for this
                      symbol. Takes precedence over tradeFields.
                    required: false
                  - name: level2
                    type: boolean
                    description: >-
                      Mode 2: If true, unsubscribe from Level 2 / Order Book
                      data for this symbol.
                    required: false
                  - name: timeAndSales
                    type: boolean
                    description: >-
                      Mode 2: If true, unsubscribe from Time & Sales data for
                      this symbol.
                    required: false
                  - name: greeks
                    type: boolean
                    description: >-
                      Mode 2: If true, unsubscribe from all Greeks data for this
                      symbol. Only applicable for option contracts.
                    required: false
                  - name: quoteFields
                    type: array
                    description: >-
                      Mode 3: Specific quote fields to unsubscribe from. The
                      subscription remains active with remaining fields. If all
                      fields are removed, the subscription is terminated.
                    required: false
                    properties:
                      - name: item
                        type: string
                        description: >-
                          Available fields for quote subscriptions. Quote data
                          represents the current best bid and ask prices from
                          the order book.
                        required: false
                  - name: tradeFields
                    type: array
                    description: >-
                      Mode 3: Specific trade fields to unsubscribe from. The
                      subscription remains active with remaining fields. If all
                      fields are removed, the subscription is terminated.
                    required: false
                    properties:
                      - name: item
                        type: string
                        description: >-
                          Available fields for trade subscriptions. Trade data
                          includes last sale information, volume, and OHLC
                          (Open-High-Low-Close) prices.
                        required: false
              - name: id
                type: string
                description: >-
                  Optional. Add your own request ID here if you want it returned
                  in the unsubscribe reply or error.
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - payload
          properties:
            type:
              type: string
              enum:
                - unsubscribe
              const: unsubscribe
              description: Set this to `unsubscribe` to stop live updates.
              example: unsubscribe
              x-parser-schema-id: <anonymous-schema-114>
            payload:
              oneOf:
                - type: array
                  description: >-
                    Mode 1: full unsubscribe. Send a plain array of symbols to
                    remove every active subscription for each symbol.
                  items:
                    type: string
                    description: Symbol to fully unsubscribe from.
                    example: AAPL
                    x-parser-schema-id: <anonymous-schema-117>
                  example:
                    - AAPL
                    - MSFT
                    - GOOGL
                  x-parser-schema-id: <anonymous-schema-116>
                - type: array
                  description: >-
                    Mode 2 and Mode 3: detailed unsubscribe objects for
                    type-specific or field-level removal.
                  items:
                    type: object
                    required:
                      - symbol
                    description: >-
                      Detailed unsubscribe request for a single symbol. Supports
                      type-specific (Mode 2) and field-level (Mode 3)
                      unsubscribe.
                    properties:
                      symbol:
                        type: string
                        description: The ticker symbol to unsubscribe from
                        example: AAPL
                        x-parser-schema-id: <anonymous-schema-119>
                      quote:
                        type: boolean
                        description: >-
                          Mode 2: If true, unsubscribe from all quote data for
                          this symbol. Takes precedence over quoteFields.
                        example: true
                        x-parser-schema-id: <anonymous-schema-120>
                      trade:
                        type: boolean
                        description: >-
                          Mode 2: If true, unsubscribe from all trade data for
                          this symbol. Takes precedence over tradeFields.
                        example: false
                        x-parser-schema-id: <anonymous-schema-121>
                      level2:
                        type: boolean
                        description: >-
                          Mode 2: If true, unsubscribe from Level 2 / Order Book
                          data for this symbol.
                        example: true
                        x-parser-schema-id: <anonymous-schema-122>
                      timeAndSales:
                        type: boolean
                        description: >-
                          Mode 2: If true, unsubscribe from Time & Sales data
                          for this symbol.
                        example: true
                        x-parser-schema-id: <anonymous-schema-123>
                      greeks:
                        type: boolean
                        description: >-
                          Mode 2: If true, unsubscribe from all Greeks data for
                          this symbol. Only applicable for option contracts.
                        example: true
                        x-parser-schema-id: <anonymous-schema-124>
                      quoteFields:
                        type: array
                        description: >-
                          Mode 3: Specific quote fields to unsubscribe from. The
                          subscription remains active with remaining fields. If
                          all fields are removed, the subscription is
                          terminated.
                        items: *ref_1
                        example:
                          - bidChange
                          - askChange
                        x-parser-schema-id: <anonymous-schema-125>
                      tradeFields:
                        type: array
                        description: >-
                          Mode 3: Specific trade fields to unsubscribe from. The
                          subscription remains active with remaining fields. If
                          all fields are removed, the subscription is
                          terminated.
                        items: *ref_2
                        example:
                          - tickVolume
                          - tick
                        x-parser-schema-id: <anonymous-schema-126>
                    x-parser-schema-id: UnsubscribeSymbolRequest
                  example:
                    - symbol: AAPL
                      quote: true
                  x-parser-schema-id: <anonymous-schema-118>
              x-parser-schema-id: <anonymous-schema-115>
            id:
              type: string
              description: >-
                Optional. Add your own request ID here if you want it returned
                in the unsubscribe reply or error.
              example: unsub-1
              x-parser-schema-id: <anonymous-schema-127>
          description: >-
            Use this message to stop live updates. You can stop everything for a
            symbol or stop only some data types or fields.
          x-parser-schema-id: UnsubscribeRequestPayload
        title: Unsubscribe Request
        description: Request to unsubscribe from market data
        example: |-
          {
            "type": "unsubscribe",
            "id": "unsub-1",
            "payload": [
              "AAPL",
              "MSFT"
            ]
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: unsubscribeRequest
    bindings: []
    extensions: *ref_5
  - &ref_14
    id: ping
    title: Ping
    description: Send a ping to keep the connection alive
    type: receive
    messages:
      - &ref_38
        id: pingRequest
        contentType: application/json
        payload:
          - name: Ping Request
            description: Keep-alive ping message
            type: object
            properties:
              - name: type
                type: string
                description: >-
                  Set this to `ping` to check that the connection is still
                  alive.
                enumValues:
                  - ping
                required: true
              - name: id
                type: string
                description: >-
                  Optional. Add your own request ID here if you want it returned
                  in the `pong` reply.
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - ping
              const: ping
              description: Set this to `ping` to check that the connection is still alive.
              example: ping
              x-parser-schema-id: <anonymous-schema-128>
            id:
              type: string
              description: >-
                Optional. Add your own request ID here if you want it returned
                in the `pong` reply.
              example: ping-001
              x-parser-schema-id: <anonymous-schema-129>
          description: >-
            Use this message to check that the WebSocket connection is still
            alive.
          x-parser-schema-id: PingRequestPayload
        title: Ping Request
        description: Keep-alive ping message
        example: |-
          {
            "type": "ping",
            "id": "ping-001"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: pingRequest
    bindings: []
    extensions: *ref_5
  - &ref_15
    id: getExpiryDates
    title: Get Option Expiry Dates
    description: Request option expiry dates for a symbol
    type: receive
    messages:
      - &ref_39
        id: getExpiryDatesRequest
        contentType: application/json
        payload:
          - name: Get Expiry Dates Request
            description: Request to get option expiration dates for a symbol
            type: object
            properties:
              - name: type
                type: string
                description: Set this to `request` for this one-time lookup.
                enumValues:
                  - request
                required: true
              - name: id
                type: string
                description: >-
                  Optional. Add your own request ID here if you want it returned
                  in the reply.
                required: false
              - name: payload
                type: object
                description: Put the request details here.
                required: true
                properties:
                  - name: method
                    type: string
                    description: Use `GET` to read the expiry dates.
                    required: true
                  - name: path
                    type: string
                    description: >-
                      Lookup route for expiration dates. Replace `{symbol}` with
                      the underlying ticker or index symbol whose option
                      expiries you want, such as `AAPL` or `SPX`.
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - payload
          description: >-
            Use this message to get the available option expiry dates for one
            symbol.
          properties:
            type:
              type: string
              enum:
                - request
              const: request
              description: Set this to `request` for this one-time lookup.
              example: request
              x-parser-schema-id: <anonymous-schema-199>
            id:
              type: string
              description: >-
                Optional. Add your own request ID here if you want it returned
                in the reply.
              example: req-001
              x-parser-schema-id: <anonymous-schema-200>
            payload:
              type: object
              required:
                - method
                - path
              description: Put the request details here.
              properties:
                method:
                  type: string
                  const: GET
                  description: Use `GET` to read the expiry dates.
                  example: GET
                  x-parser-schema-id: <anonymous-schema-202>
                path:
                  type: string
                  description: >-
                    Lookup route for expiration dates. Replace `{symbol}` with
                    the underlying ticker or index symbol whose option expiries
                    you want, such as `AAPL` or `SPX`.
                  pattern: ^/options/[^/]+/expiry-dates$
                  example: /options/AAPL/expiry-dates
                  x-parser-schema-id: <anonymous-schema-203>
              example:
                method: GET
                path: /options/AAPL/expiry-dates
              x-parser-schema-id: <anonymous-schema-201>
          x-parser-schema-id: GetExpiryDatesRequestPayload
        title: Get Expiry Dates Request
        description: Request to get option expiration dates for a symbol
        example: |-
          {
            "type": "request",
            "id": "req-expiry-1",
            "payload": {
              "method": "GET",
              "path": "/options/AAPL/expiry-dates"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: getExpiryDatesRequest
    bindings: []
    extensions: *ref_5
  - &ref_16
    id: getContractSymbols
    title: Get Option Contract Symbols
    description: Request option contract symbols for a symbol and expiry date
    type: receive
    messages:
      - &ref_40
        id: getContractSymbolsRequest
        contentType: application/json
        payload:
          - name: Get Contract Symbols Request
            description: >-
              Request to get option contract symbols for a symbol and expiry
              date
            type: object
            properties:
              - name: type
                type: string
                description: Set this to `request` for this one-time lookup.
                enumValues:
                  - request
                required: true
              - name: id
                type: string
                description: >-
                  Optional. Add your own request ID here if you want it returned
                  in the reply.
                required: false
              - name: payload
                type: object
                description: Put the request details here.
                required: true
                properties:
                  - name: method
                    type: string
                    description: Use `GET` to read the contract symbols.
                    required: true
                  - name: path
                    type: string
                    description: >-
                      Contract-chain route. Replace `{symbol}` with the
                      underlying ticker or index and `{expiryDate}` with
                      `YYYY-MM-DD`. Append `/W` when you specifically want
                      weekly contracts for that date.
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - payload
          description: >-
            Use this message to get all contract symbols for one underlying and
            one expiration date.
          properties:
            type:
              type: string
              enum:
                - request
              const: request
              description: Set this to `request` for this one-time lookup.
              example: request
              x-parser-schema-id: <anonymous-schema-216>
            id:
              type: string
              description: >-
                Optional. Add your own request ID here if you want it returned
                in the reply.
              example: req-003
              x-parser-schema-id: <anonymous-schema-217>
            payload:
              type: object
              required:
                - method
                - path
              description: Put the request details here.
              properties:
                method:
                  type: string
                  const: GET
                  description: Use `GET` to read the contract symbols.
                  example: GET
                  x-parser-schema-id: <anonymous-schema-219>
                path:
                  type: string
                  description: >-
                    Contract-chain route. Replace `{symbol}` with the underlying
                    ticker or index and `{expiryDate}` with `YYYY-MM-DD`. Append
                    `/W` when you specifically want weekly contracts for that
                    date.
                  pattern: ^/options/[^/]+/contracts/[0-9]{4}-[0-9]{2}-[0-9]{2}(/W)?$
                  example: /options/AAPL/contracts/2024-01-19
                  x-parser-schema-id: <anonymous-schema-220>
              example:
                method: GET
                path: /options/AAPL/contracts/2024-01-19
              x-parser-schema-id: <anonymous-schema-218>
          x-parser-schema-id: GetContractSymbolsRequestPayload
        title: Get Contract Symbols Request
        description: Request to get option contract symbols for a symbol and expiry date
        example: |-
          {
            "type": "request",
            "id": "req-contracts-1",
            "payload": {
              "method": "GET",
              "path": "/options/AAPL/contracts/2024-01-19"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: getContractSymbolsRequest
    bindings: []
    extensions: *ref_5
  - &ref_17
    id: getEquitySnapshot
    title: Get Equity Snapshot
    description: Request a full snapshot of equity data for a symbol
    type: receive
    messages:
      - &ref_41
        id: getEquitySnapshotRequest
        contentType: application/json
        payload:
          - name: Get Equity Snapshot Request
            description: Request to get a full snapshot of equity data for a symbol
            type: object
            properties:
              - name: type
                type: string
                description: Set this to `request` for this one-time snapshot lookup.
                enumValues:
                  - request
                required: true
              - name: id
                type: string
                description: >-
                  Optional. Add your own request ID here if you want it returned
                  in the reply.
                required: false
              - name: payload
                type: object
                description: Put the request details here.
                required: true
                properties:
                  - name: method
                    type: string
                    description: Use `GET` to read the snapshot.
                    required: true
                  - name: path
                    type: string
                    description: >-
                      Snapshot route for a single equity ticker. Replace
                      `{symbol}` with the stock symbol you want, such as `AAPL`
                      or `MSFT`.
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - payload
          description: >-
            Use this message to get one equity snapshot without opening a live
            subscription.
          properties:
            type:
              type: string
              enum:
                - request
              const: request
              description: Set this to `request` for this one-time snapshot lookup.
              example: request
              x-parser-schema-id: <anonymous-schema-233>
            id:
              type: string
              description: >-
                Optional. Add your own request ID here if you want it returned
                in the reply.
              example: req-003
              x-parser-schema-id: <anonymous-schema-234>
            payload:
              type: object
              required:
                - method
                - path
              description: Put the request details here.
              properties:
                method:
                  type: string
                  const: GET
                  description: Use `GET` to read the snapshot.
                  example: GET
                  x-parser-schema-id: <anonymous-schema-236>
                path:
                  type: string
                  description: >-
                    Snapshot route for a single equity ticker. Replace
                    `{symbol}` with the stock symbol you want, such as `AAPL` or
                    `MSFT`.
                  pattern: ^/equities/[^/]+/snapshot$
                  example: /equities/AAPL/snapshot
                  x-parser-schema-id: <anonymous-schema-237>
              example:
                method: GET
                path: /equities/AAPL/snapshot
              x-parser-schema-id: <anonymous-schema-235>
          x-parser-schema-id: GetEquitySnapshotRequestPayload
        title: Get Equity Snapshot Request
        description: Request to get a full snapshot of equity data for a symbol
        example: |-
          {
            "type": "request",
            "id": "req-003",
            "payload": {
              "method": "GET",
              "path": "/equities/AAPL/snapshot"
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: getEquitySnapshotRequest
    bindings: []
    extensions: *ref_5
  - &ref_24
    id: receiveAuthRequired
    title: Receive Auth Required
    description: Server requests authentication from the client
    type: send
    messages:
      - &ref_48
        id: authRequiredResponse
        contentType: application/json
        payload:
          - name: Auth Required Response
            description: Server requests authentication
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `event` for this message.
                required: true
              - name: payload
                type: object
                description: Payload sent when the server requires authentication.
                required: true
                properties:
                  - name: action
                    type: string
                    description: Always `authRequired` when the client must authenticate.
                    enumValues:
                      - authRequired
                    required: false
                  - name: error
                    type: string
                    description: Error message explaining why authentication is required
                    enumValues:
                      - authentication required
                      - authentication timeout
                    required: false
                  - name: id
                    type: string
                    description: >-
                      The request ID from the original request that triggered
                      this response, if applicable
                    required: false
                  - name: timestamp
                    type: integer
                    description: Server timestamp in Unix milliseconds
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - payload
          description: >-
            Server message sent when you need to sign in before using the
            socket.
          properties:
            type:
              type: string
              const: event
              description: The server sets this to `event` for this message.
              x-parser-schema-id: <anonymous-schema-325>
            payload:
              type: object
              description: Payload sent when the server requires authentication.
              properties:
                action:
                  type: string
                  enum:
                    - authRequired
                  description: Always `authRequired` when the client must authenticate.
                  x-parser-schema-id: <anonymous-schema-326>
                error:
                  type: string
                  description: Error message explaining why authentication is required
                  example: authentication required
                  enum:
                    - authentication required
                    - authentication timeout
                  x-parser-schema-id: <anonymous-schema-327>
                id:
                  type: string
                  description: >-
                    The request ID from the original request that triggered this
                    response, if applicable
                  x-parser-schema-id: <anonymous-schema-328>
                timestamp:
                  type: integer
                  format: int64
                  description: Server timestamp in Unix milliseconds
                  example: 1701450000123
                  x-parser-schema-id: <anonymous-schema-329>
              x-parser-schema-id: AuthRequiredEventPayload
          x-parser-schema-id: AuthRequiredResponsePayload
        title: Auth Required Response
        description: Server requests authentication
        example: |-
          {
            "type": "event",
            "payload": {
              "action": "authRequired",
              "error": "authentication required",
              "id": "sub-001",
              "timestamp": 1701450000123
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: authRequiredResponse
    bindings: []
    extensions: *ref_5
  - &ref_25
    id: receiveRefreshAuth
    title: Receive Refresh Auth Warning
    description: Server warns that authentication will expire soon
    type: send
    messages:
      - &ref_49
        id: refreshAuthResponse
        contentType: application/json
        payload:
          - name: Refresh Auth Response
            description: Server warns authentication expires soon
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `event` for this message.
                required: true
              - name: payload
                type: object
                description: Payload sent when the server wants you to refresh your token.
                required: true
                properties:
                  - name: action
                    type: string
                    description: Always `refreshAuth`. Sign in again soon with a new token.
                    enumValues:
                      - refreshAuth
                    required: false
                  - name: data
                    type: object
                    required: false
                    properties:
                      - name: message
                        type: string
                        description: >-
                          Message from the server telling you the sign-in is
                          about to expire.
                        required: false
                      - name: expiresIn
                        type: integer
                        description: Milliseconds left before the sign-in expires.
                        required: false
                  - name: timestamp
                    type: integer
                    description: Server timestamp in Unix milliseconds
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - payload
          description: Server warning sent when your sign-in is about to expire.
          properties:
            type:
              type: string
              const: event
              description: The server sets this to `event` for this message.
              x-parser-schema-id: <anonymous-schema-330>
            payload:
              type: object
              description: Payload sent when the server wants you to refresh your token.
              properties:
                action:
                  type: string
                  enum:
                    - refreshAuth
                  description: Always `refreshAuth`. Sign in again soon with a new token.
                  x-parser-schema-id: <anonymous-schema-331>
                data:
                  type: object
                  properties:
                    message:
                      type: string
                      description: >-
                        Message from the server telling you the sign-in is about
                        to expire.
                      example: authentication expires soon, please re-authenticate
                      x-parser-schema-id: <anonymous-schema-333>
                    expiresIn:
                      type: integer
                      format: int64
                      description: Milliseconds left before the sign-in expires.
                      example: 300000
                      x-parser-schema-id: <anonymous-schema-334>
                  x-parser-schema-id: <anonymous-schema-332>
                timestamp:
                  type: integer
                  format: int64
                  description: Server timestamp in Unix milliseconds
                  example: 1701450000123
                  x-parser-schema-id: <anonymous-schema-335>
              x-parser-schema-id: RefreshAuthEventPayload
          x-parser-schema-id: RefreshAuthResponsePayload
        title: Refresh Auth Response
        description: Server warns authentication expires soon
        example: |-
          {
            "type": "event",
            "payload": {
              "action": "refreshAuth",
              "data": {
                "message": "authentication expires soon, please re-authenticate",
                "expiresIn": 300000
              },
              "timestamp": 1701450000123
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: refreshAuthResponse
    bindings: []
    extensions: *ref_5
  - &ref_26
    id: receiveAuthExpired
    title: Receive Auth Expired
    description: Server notifies that authentication has expired
    type: send
    messages:
      - &ref_50
        id: authExpiredResponse
        contentType: application/json
        payload:
          - name: Auth Expired Response
            description: Server notifies authentication has expired
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `event` for this message.
                required: true
              - name: payload
                type: object
                description: Payload sent when your sign-in has expired.
                required: true
                properties:
                  - name: action
                    type: string
                    description: Always `authExpired` - reconnect and authenticate again.
                    enumValues:
                      - authExpired
                    required: false
                  - name: error
                    type: string
                    description: Message from the server saying the sign-in has expired.
                    required: false
                  - name: timestamp
                    type: integer
                    description: Server timestamp in Unix milliseconds
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - payload
          description: Server message sent when your sign-in has expired.
          properties:
            type:
              type: string
              const: event
              description: The server sets this to `event` for this message.
              x-parser-schema-id: <anonymous-schema-336>
            payload:
              type: object
              description: Payload sent when your sign-in has expired.
              properties:
                action:
                  type: string
                  enum:
                    - authExpired
                  description: Always `authExpired` - reconnect and authenticate again.
                  x-parser-schema-id: <anonymous-schema-337>
                error:
                  type: string
                  description: Message from the server saying the sign-in has expired.
                  example: authentication expired
                  x-parser-schema-id: <anonymous-schema-338>
                timestamp:
                  type: integer
                  format: int64
                  description: Server timestamp in Unix milliseconds
                  example: 1701450000123
                  x-parser-schema-id: <anonymous-schema-339>
              x-parser-schema-id: AuthExpiredEventPayload
          x-parser-schema-id: AuthExpiredResponsePayload
        title: Auth Expired Response
        description: Server notifies authentication has expired
        example: |-
          {
            "type": "event",
            "payload": {
              "action": "authExpired",
              "error": "authentication expired",
              "timestamp": 1701450000123
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: authExpiredResponse
    bindings: []
    extensions: *ref_5
  - &ref_27
    id: receiveAuthSuccess
    title: Receive auth success
    description: Successful authentication response
    type: send
    messages:
      - &ref_51
        id: authSuccessResponse
        contentType: application/json
        payload:
          - name: Auth Success Response
            description: Successful authentication response
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `event` for this message.
                required: true
              - name: payload
                type: object
                description: Payload sent when authentication succeeds.
                required: true
                properties:
                  - name: action
                    type: string
                    description: >-
                      Result action. Always `authSuccess` when authentication
                      succeeds.
                    enumValues:
                      - authSuccess
                    required: false
                  - name: id
                    type: string
                    description: The request ID from the original auth request, if provided
                    required: false
                  - name: data
                    type: object
                    description: Authentication result data
                    required: false
                    properties:
                      - name: expiresIn
                        type: integer
                        description: How long this sign-in stays valid, in milliseconds.
                        required: false
                      - name: message
                        type: string
                        description: Optional message (e.g., when auth is not required)
                        required: false
                  - name: timestamp
                    type: integer
                    description: Server timestamp in Unix milliseconds
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - payload
          description: Server message sent when sign-in succeeds.
          properties:
            type:
              type: string
              const: event
              description: The server sets this to `event` for this message.
              x-parser-schema-id: <anonymous-schema-318>
            payload:
              type: object
              description: Payload sent when authentication succeeds.
              properties:
                action:
                  type: string
                  enum:
                    - authSuccess
                  description: >-
                    Result action. Always `authSuccess` when authentication
                    succeeds.
                  x-parser-schema-id: <anonymous-schema-319>
                id:
                  type: string
                  description: The request ID from the original auth request, if provided
                  x-parser-schema-id: <anonymous-schema-320>
                data:
                  type: object
                  description: Authentication result data
                  properties:
                    expiresIn:
                      type: integer
                      format: int64
                      description: How long this sign-in stays valid, in milliseconds.
                      example: 2700000
                      x-parser-schema-id: <anonymous-schema-322>
                    message:
                      type: string
                      description: Optional message (e.g., when auth is not required)
                      example: auth not required
                      x-parser-schema-id: <anonymous-schema-323>
                  x-parser-schema-id: <anonymous-schema-321>
                timestamp:
                  type: integer
                  format: int64
                  description: Server timestamp in Unix milliseconds
                  example: 1701450000123
                  x-parser-schema-id: <anonymous-schema-324>
              x-parser-schema-id: AuthSuccessEventPayload
          x-parser-schema-id: AuthSuccessResponsePayload
        title: Auth Success Response
        description: Successful authentication response
        example: |-
          {
            "type": "event",
            "payload": {
              "action": "authSuccess",
              "id": "auth-001",
              "data": {
                "expiresIn": 2700000
              },
              "timestamp": 1701450000123
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: authSuccessResponse
    bindings: []
    extensions: *ref_5
  - &ref_28
    id: receiveSnapshot
    title: Receive subscription snapshot
    description: Initial market data snapshot after subscribing
    type: send
    messages:
      - &ref_52
        id: snapshotResponse
        contentType: application/json
        payload:
          - name: Snapshot Response
            description: Initial snapshot of market data after subscription
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `event` for live updates.
                required: false
              - name: payload
                type: object
                description: >-
                  Data inside a snapshot event. This is the first full value the
                  server sends for a subscription.
                required: false
                properties:
                  - name: action
                    type: string
                    description: >-
                      The server sets this to `snapshot` for the first full
                      update after you subscribe.
                    required: false
                  - name: type
                    type: string
                    description: >-
                      Type of market data in this message: quote, trade, Level
                      2, Time & Sales, Greeks, or market status.
                    enumValues:
                      - quote
                      - trade
                      - level2nOB
                      - timeAndSales
                      - greeks
                      - marketStatus
                    examples: *ref_6
                    required: false
                  - name: symbol
                    type: string
                    description: Symbol this update is for.
                    required: false
                  - name: data
                    type: object
                    description: The first full set of data for this symbol.
                    required: false
                  - name: id
                    type: string
                    description: Request ID from your subscribe message, if you sent one.
                    required: false
                  - name: timestamp
                    type: integer
                    description: >-
                      Server timestamp in Unix milliseconds when this event was
                      sent
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          description: Server message for the first full set of values after you subscribe.
          properties:
            type:
              type: string
              const: event
              description: The server sets this to `event` for live updates.
              x-parser-schema-id: <anonymous-schema-130>
            payload:
              type: object
              description: >-
                Data inside a snapshot event. This is the first full value the
                server sends for a subscription.
              properties:
                action:
                  type: string
                  const: snapshot
                  description: >-
                    The server sets this to `snapshot` for the first full update
                    after you subscribe.
                  x-parser-schema-id: <anonymous-schema-131>
                type: *ref_8
                symbol:
                  type: string
                  description: Symbol this update is for.
                  example: AAPL
                  x-parser-schema-id: <anonymous-schema-132>
                data:
                  type: object
                  description: The first full set of data for this symbol.
                  additionalProperties: true
                  x-parser-schema-id: <anonymous-schema-133>
                id:
                  type: string
                  description: Request ID from your subscribe message, if you sent one.
                  x-parser-schema-id: <anonymous-schema-134>
                timestamp:
                  type: integer
                  format: int64
                  description: >-
                    Server timestamp in Unix milliseconds when this event was
                    sent
                  example: 1701450000123
                  x-parser-schema-id: <anonymous-schema-135>
              x-parser-schema-id: SnapshotEventPayload
          x-parser-schema-id: SnapshotResponsePayload
        title: Snapshot Response
        description: Initial snapshot of market data after subscription
        example: |-
          {
            "type": "event",
            "payload": {
              "action": "snapshot",
              "type": "quote",
              "symbol": "AAPL",
              "data": {
                "bidPrice": 189.94,
                "bidSize": 100,
                "askPrice": 189.96,
                "askSize": 200,
                "midPrice": 189.95,
                "spread": 0.02,
                "quoteTimestamp": 1701450000000
              },
              "id": "sub-2",
              "timestamp": 1701450000123
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: snapshotResponse
    bindings: []
    extensions: *ref_5
  - &ref_29
    id: receiveUnsubscribeResponse
    title: Receive unsubscribe confirmation
    description: Confirmation of unsubscribe request
    type: send
    messages:
      - &ref_53
        id: unsubscribeResponse
        contentType: application/json
        payload:
          - name: Unsubscribe Response
            description: Confirmation of unsubscribe request
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `event` for this message.
                required: false
              - name: payload
                type: object
                required: false
                properties:
                  - name: action
                    type: string
                    description: Confirms the unsubscribe action
                    required: false
                  - name: data
                    type: object
                    required: false
                    properties:
                      - name: symbols
                        type: array
                        description: List of symbols that were unsubscribed
                        required: false
                        properties:
                          - name: item
                            type: string
                            required: false
                  - name: id
                    type: string
                    description: Request ID from your unsubscribe message, if you sent one.
                    required: false
                  - name: timestamp
                    type: integer
                    description: Server timestamp in Unix milliseconds
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            type:
              type: string
              const: event
              description: The server sets this to `event` for this message.
              x-parser-schema-id: <anonymous-schema-182>
            payload:
              type: object
              properties:
                action:
                  type: string
                  const: unsubscribe
                  description: Confirms the unsubscribe action
                  x-parser-schema-id: <anonymous-schema-183>
                data:
                  type: object
                  properties:
                    symbols:
                      type: array
                      items:
                        type: string
                        x-parser-schema-id: <anonymous-schema-186>
                      description: List of symbols that were unsubscribed
                      example:
                        - AAPL
                        - MSFT
                      x-parser-schema-id: <anonymous-schema-185>
                  x-parser-schema-id: <anonymous-schema-184>
                id:
                  type: string
                  description: Request ID from your unsubscribe message, if you sent one.
                  x-parser-schema-id: <anonymous-schema-187>
                timestamp:
                  type: integer
                  format: int64
                  description: Server timestamp in Unix milliseconds
                  example: 1701450002000
                  x-parser-schema-id: <anonymous-schema-188>
              x-parser-schema-id: UnsubscribeEventPayload
          x-parser-schema-id: UnsubscribeResponsePayload
        title: Unsubscribe Response
        description: Confirmation of unsubscribe request
        example: |-
          {
            "type": "event",
            "payload": {
              "action": "unsubscribe",
              "data": {
                "symbols": [
                  "AAPL",
                  "MSFT"
                ]
              },
              "id": "unsub-1",
              "timestamp": 1701450002000
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: unsubscribeResponse
    bindings: []
    extensions: *ref_5
  - &ref_30
    id: receivePong
    title: Receive pong
    description: Pong response to ping
    type: send
    messages:
      - &ref_54
        id: pongResponse
        contentType: application/json
        payload:
          - name: Pong Response
            description: Response to ping request
            type: object
            properties:
              - name: type
                type: string
                description: Shared WebSocket pong message type
                required: true
              - name: id
                type: string
                description: Request ID from your ping, if you sent one.
                required: false
              - name: timestamp
                type: string
                description: Time when the server sent this `pong`, in RFC3339 format.
                required: false
              - name: payload
                type: 'null'
                description: Always `null` for `pong` messages.
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
          properties:
            type:
              type: string
              const: pong
              description: Shared WebSocket pong message type
              x-parser-schema-id: <anonymous-schema-189>
            id:
              type: string
              description: Request ID from your ping, if you sent one.
              example: ping-001
              x-parser-schema-id: <anonymous-schema-190>
            timestamp:
              type: string
              format: date-time
              description: Time when the server sent this `pong`, in RFC3339 format.
              example: '2026-05-13T10:30:00Z'
              x-parser-schema-id: <anonymous-schema-191>
            payload:
              type: 'null'
              description: Always `null` for `pong` messages.
              x-parser-schema-id: <anonymous-schema-192>
          x-parser-schema-id: PongResponsePayload
        title: Pong Response
        description: Response to ping request
        example: |-
          {
            "type": "pong",
            "id": "ping-001",
            "timestamp": "2026-05-13T10:30:00Z",
            "payload": null
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: pongResponse
    bindings: []
    extensions: *ref_5
  - &ref_31
    id: receiveGetExpiryDatesResponse
    title: Receive option expiry dates response
    description: Response with option expiration dates
    type: send
    messages:
      - &ref_55
        id: getExpiryDatesResponse
        contentType: application/json
        payload:
          - name: Get Expiry Dates Response
            description: Response containing option expiration dates
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `response` in the reply.
                required: true
              - name: id
                type: string
                description: Request ID echoed from the original request
                required: false
              - name: timestamp
                type: string
                description: Time when the server sent this reply, in RFC3339 format.
                required: false
              - name: payload
                type: object
                required: true
                properties:
                  - name: status
                    type: integer
                    description: Status code for this reply. `200` means success.
                    required: true
                  - name: data
                    type: object
                    description: List of option expiry dates for the symbol.
                    required: false
                    properties:
                      - name: symbol
                        type: string
                        description: The underlying symbol
                        required: false
                      - name: expiryDates
                        type: array
                        description: >-
                          List of available expiration dates with optional
                          frequency marker, sorted chronologically
                        required: false
                        properties:
                          - name: date
                            type: string
                            description: Expiration date in YYYY-MM-DD format
                            required: true
                          - name: freq
                            type: string
                            description: >-
                              Frequency marker. Weekly options use W; standard
                              monthly options omit this field.
                            required: false
                  - name: error
                    type: object
                    description: Error details in a response
                    required: false
                    properties:
                      - name: type
                        type: string
                        description: Error type category
                        enumValues:
                          - bad_request
                          - not_found
                          - internal
                          - unauthorized
                        required: false
                      - name: code
                        type: string
                        description: Error code for programmatic handling
                        required: false
                      - name: message
                        type: string
                        description: Human-readable error message
                        required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - payload
          description: Server reply with the option expiry dates.
          properties:
            type:
              type: string
              const: response
              description: The server sets this to `response` in the reply.
              x-parser-schema-id: <anonymous-schema-204>
            id:
              type: string
              description: Request ID echoed from the original request
              x-parser-schema-id: <anonymous-schema-205>
            timestamp:
              type: string
              format: date-time
              description: Time when the server sent this reply, in RFC3339 format.
              x-parser-schema-id: <anonymous-schema-206>
            payload:
              type: object
              required:
                - status
              properties:
                status:
                  type: integer
                  description: Status code for this reply. `200` means success.
                  example: 200
                  x-parser-schema-id: <anonymous-schema-208>
                data:
                  type: object
                  description: List of option expiry dates for the symbol.
                  properties:
                    symbol:
                      type: string
                      description: The underlying symbol
                      example: AAPL
                      x-parser-schema-id: <anonymous-schema-209>
                    expiryDates:
                      type: array
                      description: >-
                        List of available expiration dates with optional
                        frequency marker, sorted chronologically
                      items:
                        type: object
                        required:
                          - date
                        properties:
                          date:
                            type: string
                            format: date
                            description: Expiration date in YYYY-MM-DD format
                            example: '2024-01-19'
                            x-parser-schema-id: <anonymous-schema-211>
                          freq:
                            type: string
                            description: >-
                              Frequency marker. Weekly options use W; standard
                              monthly options omit this field.
                            example: W
                            x-parser-schema-id: <anonymous-schema-212>
                        x-parser-schema-id: ExpiryDate
                      x-parser-schema-id: <anonymous-schema-210>
                  x-parser-schema-id: ExpiryDatesData
                error: &ref_10
                  type: object
                  description: Error details in a response
                  properties:
                    type:
                      type: string
                      description: Error type category
                      enum:
                        - bad_request
                        - not_found
                        - internal
                        - unauthorized
                      example: bad_request
                      x-parser-schema-id: <anonymous-schema-213>
                    code:
                      type: string
                      description: Error code for programmatic handling
                      example: INVALID_REQUEST
                      x-parser-schema-id: <anonymous-schema-214>
                    message:
                      type: string
                      description: Human-readable error message
                      example: symbol is required
                      x-parser-schema-id: <anonymous-schema-215>
                  x-parser-schema-id: ResponseError
              x-parser-schema-id: <anonymous-schema-207>
          x-parser-schema-id: GetExpiryDatesResponsePayload
        title: Get Expiry Dates Response
        description: Response containing option expiration dates
        example: |-
          {
            "type": "response",
            "id": "req-expiry-1",
            "payload": {
              "status": 200,
              "data": {
                "symbol": "AAPL",
                "expiryDates": [
                  {
                    "date": "2024-01-19"
                  },
                  {
                    "date": "2024-01-26",
                    "freq": "W"
                  },
                  {
                    "date": "2024-02-16"
                  }
                ]
              }
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: getExpiryDatesResponse
    bindings: []
    extensions: *ref_5
  - &ref_32
    id: receiveGetContractSymbolsResponse
    title: Receive option contract symbols response
    description: Response with calls and puts for an expiry
    type: send
    messages:
      - &ref_56
        id: getContractSymbolsResponse
        contentType: application/json
        payload:
          - name: Get Contract Symbols Response
            description: Response containing option contract symbols (calls and puts)
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `response` in the reply.
                required: true
              - name: id
                type: string
                description: Request ID echoed from the original request
                required: false
              - name: timestamp
                type: string
                description: Time when the server sent this reply, in RFC3339 format.
                required: false
              - name: payload
                type: object
                required: true
                properties:
                  - name: status
                    type: integer
                    description: Status code for this reply. `200` means success.
                    required: true
                  - name: data
                    type: object
                    description: Option contract symbols for the symbol and expiry date.
                    required: false
                    properties:
                      - name: symbol
                        type: string
                        description: The underlying symbol
                        required: false
                      - name: expiryDate
                        type: string
                        description: The expiration date in YYYY-MM-DD format
                        required: false
                      - name: calls
                        type: array
                        description: >-
                          List of call option contracts, sorted by strike price
                          ascending
                        required: false
                        properties:
                          - name: symbol
                            type: string
                            description: Option symbol, for example `AAPL240119C00150000`.
                            required: false
                          - name: strikePrice
                            type: number
                            description: The strike price of the option
                            required: false
                      - name: puts
                        type: array
                        description: >-
                          List of put option contracts, sorted by strike price
                          ascending
                        required: false
                        properties:
                          - name: symbol
                            type: string
                            description: Option symbol, for example `AAPL240119C00150000`.
                            required: false
                          - name: strikePrice
                            type: number
                            description: The strike price of the option
                            required: false
                      - name: freq
                        type: string
                        description: >-
                          Frequency marker. Weekly options use W; standard
                          monthly options omit this field.
                        required: false
                  - name: error
                    type: object
                    description: Error details in a response
                    required: false
                    properties:
                      - name: type
                        type: string
                        description: Error type category
                        enumValues:
                          - bad_request
                          - not_found
                          - internal
                          - unauthorized
                        required: false
                      - name: code
                        type: string
                        description: Error code for programmatic handling
                        required: false
                      - name: message
                        type: string
                        description: Human-readable error message
                        required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - payload
          description: Server reply with the option contract symbols.
          properties:
            type:
              type: string
              const: response
              description: The server sets this to `response` in the reply.
              x-parser-schema-id: <anonymous-schema-221>
            id:
              type: string
              description: Request ID echoed from the original request
              x-parser-schema-id: <anonymous-schema-222>
            timestamp:
              type: string
              format: date-time
              description: Time when the server sent this reply, in RFC3339 format.
              x-parser-schema-id: <anonymous-schema-223>
            payload:
              type: object
              required:
                - status
              properties:
                status:
                  type: integer
                  description: Status code for this reply. `200` means success.
                  example: 200
                  x-parser-schema-id: <anonymous-schema-225>
                data:
                  type: object
                  description: Option contract symbols for the symbol and expiry date.
                  properties:
                    symbol:
                      type: string
                      description: The underlying symbol
                      example: AAPL
                      x-parser-schema-id: <anonymous-schema-226>
                    expiryDate:
                      type: string
                      format: date
                      description: The expiration date in YYYY-MM-DD format
                      example: '2024-01-19'
                      x-parser-schema-id: <anonymous-schema-227>
                    calls:
                      type: array
                      description: >-
                        List of call option contracts, sorted by strike price
                        ascending
                      items: &ref_9
                        type: object
                        description: An option contract symbol with its strike price
                        properties:
                          symbol:
                            type: string
                            description: Option symbol, for example `AAPL240119C00150000`.
                            example: AAPL240119C00150000
                            x-parser-schema-id: <anonymous-schema-229>
                          strikePrice:
                            type: number
                            format: double
                            description: The strike price of the option
                            example: 150
                            x-parser-schema-id: <anonymous-schema-230>
                        x-parser-schema-id: ContractSymbol
                      x-parser-schema-id: <anonymous-schema-228>
                    puts:
                      type: array
                      description: >-
                        List of put option contracts, sorted by strike price
                        ascending
                      items: *ref_9
                      x-parser-schema-id: <anonymous-schema-231>
                    freq:
                      type: string
                      description: >-
                        Frequency marker. Weekly options use W; standard monthly
                        options omit this field.
                      example: W
                      x-parser-schema-id: <anonymous-schema-232>
                  x-parser-schema-id: ContractSymbolsData
                error: *ref_10
              x-parser-schema-id: <anonymous-schema-224>
          x-parser-schema-id: GetContractSymbolsResponsePayload
        title: Get Contract Symbols Response
        description: Response containing option contract symbols (calls and puts)
        example: |-
          {
            "type": "response",
            "id": "req-contracts-1",
            "payload": {
              "status": 200,
              "data": {
                "symbol": "AAPL",
                "expiryDate": "2024-01-19",
                "calls": [
                  {
                    "symbol": "AAPL240119C00145000",
                    "strikePrice": 145
                  },
                  {
                    "symbol": "AAPL240119C00150000",
                    "strikePrice": 150
                  }
                ],
                "puts": [
                  {
                    "symbol": "AAPL240119P00145000",
                    "strikePrice": 145
                  },
                  {
                    "symbol": "AAPL240119P00150000",
                    "strikePrice": 150
                  }
                ]
              }
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: getContractSymbolsResponse
    bindings: []
    extensions: *ref_5
  - &ref_33
    id: receiveGetEquitySnapshotResponse
    title: Receive equity snapshot response
    description: Full equity snapshot data
    type: send
    messages:
      - &ref_57
        id: getEquitySnapshotResponse
        contentType: application/json
        payload:
          - name: Get Equity Snapshot Response
            description: Response containing comprehensive equity data snapshot
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `response` in the reply.
                required: true
              - name: id
                type: string
                description: Request ID echoed from the original request
                required: false
              - name: timestamp
                type: string
                description: Time when the server sent this reply, in RFC3339 format.
                required: false
              - name: payload
                type: object
                required: true
                properties:
                  - name: status
                    type: integer
                    description: Status code for this reply. `200` means success.
                    required: true
                  - name: data
                    type: object
                    description: >-
                      Equity snapshot data with quote, trade, and company
                      details.
                    required: false
                    properties:
                      - name: symbol
                        type: string
                        description: The ticker symbol
                        required: false
                      - name: name
                        type: string
                        description: Company name
                        required: false
                      - name: description
                        type: string
                        description: Company description
                        required: false
                      - name: assetType
                        type: string
                        description: Type of asset (e.g., Common Stock)
                        required: false
                      - name: sector
                        type: string
                        description: Business sector
                        required: false
                      - name: industry
                        type: string
                        description: Industry classification
                        required: false
                      - name: address
                        type: string
                        description: Company headquarters address
                        required: false
                      - name: sicCode
                        type: string
                        description: Standard Industrial Classification code
                        required: false
                      - name: fiscalYearEnd
                        type: string
                        description: Fiscal year end month
                        required: false
                      - name: latestQuarter
                        type: string
                        description: Most recent quarter end date
                        required: false
                      - name: lastPrice
                        type: string
                        description: Last traded price
                        required: false
                      - name: price
                        type: string
                        description: Current price
                        required: false
                      - name: openPrice
                        type: string
                        description: Opening price for the day
                        required: false
                      - name: highPrice
                        type: string
                        description: Highest price for the day
                        required: false
                      - name: lowPrice
                        type: string
                        description: Lowest price for the day
                        required: false
                      - name: closePrice
                        type: string
                        description: Previous closing price
                        required: false
                      - name: netChange
                        type: string
                        description: Net price change from previous close
                        required: false
                      - name: bidPrice
                        type: string
                        description: Current bid price
                        required: false
                      - name: bidSize
                        type: string
                        description: Size at bid price
                        required: false
                      - name: askPrice
                        type: string
                        description: Current ask price
                        required: false
                      - name: askSize
                        type: string
                        description: Size at ask price
                        required: false
                      - name: midPrice
                        type: string
                        description: Mid-point between bid and ask
                        required: false
                      - name: spread
                        type: string
                        description: Bid-ask spread
                        required: false
                      - name: bidExchange
                        type: string
                        description: Exchange providing best bid
                        required: false
                      - name: askExchange
                        type: string
                        description: Exchange providing best ask
                        required: false
                      - name: tradeExchange
                        type: string
                        description: Exchange of last trade
                        required: false
                      - name: totalVolume
                        type: string
                        description: Total trading volume for the day
                        required: false
                      - name: avgVolume4Weeks
                        type: string
                        description: Average daily volume over 4 weeks
                        required: false
                      - name: tick
                        type: string
                        description: Tick direction (-1, 0, 1)
                        required: false
                      - name: tradeSeq
                        type: string
                        description: Trade sequence number
                        required: false
                      - name: quoteTimestamp
                        type: string
                        description: Timestamp of last quote update
                        required: false
                      - name: tradeTimestamp
                        type: string
                        description: Timestamp of last trade
                        required: false
                      - name: high52WeekPrice
                        type: string
                        description: 52-week high price
                        required: false
                      - name: high52WeekDate
                        type: string
                        description: Date of 52-week high
                        required: false
                      - name: low52WeekPrice
                        type: string
                        description: 52-week low price
                        required: false
                      - name: low52WeekDate
                        type: string
                        description: Date of 52-week low
                        required: false
                      - name: movingAverage50Day
                        type: string
                        description: 50-day moving average
                        required: false
                      - name: movingAverage200Day
                        type: string
                        description: 200-day moving average
                        required: false
                      - name: marketCapitalization
                        type: string
                        description: Market capitalization
                        required: false
                      - name: sharesOutstanding
                        type: string
                        description: Total shares outstanding
                        required: false
                      - name: eps
                        type: string
                        description: Earnings per share
                        required: false
                      - name: EPSDiluted
                        type: string
                        description: Diluted earnings per share
                        required: false
                      - name: dilutedEPSTTM
                        type: string
                        description: Trailing twelve month diluted EPS
                        required: false
                      - name: EPSLatest12Month
                        type: string
                        description: Latest 12-month EPS
                        required: false
                      - name: EPS3YearGrowthRate
                        type: string
                        description: 3-year EPS growth rate
                        required: false
                      - name: EPS5YearGrowthRate
                        type: string
                        description: 5-year EPS growth rate
                        required: false
                      - name: PE
                        type: string
                        description: Price-to-earnings ratio
                        required: false
                      - name: trailingPE
                        type: string
                        description: Trailing P/E ratio
                        required: false
                      - name: forwardPE
                        type: string
                        description: Forward P/E ratio
                        required: false
                      - name: pegRatio
                        type: string
                        description: PEG ratio (P/E to growth)
                        required: false
                      - name: priceToBookRatio
                        type: string
                        description: Price-to-book ratio
                        required: false
                      - name: priceToSalesRatioTTM
                        type: string
                        description: Trailing twelve month price-to-sales ratio
                        required: false
                      - name: bookValue
                        type: string
                        description: Book value per share
                        required: false
                      - name: beta
                        type: string
                        description: Beta coefficient
                        required: false
                      - name: dividend
                        type: string
                        description: Latest dividend amount
                        required: false
                      - name: dividendPerShare
                        type: string
                        description: Annual dividend per share
                        required: false
                      - name: dividendYield
                        type: string
                        description: Dividend yield
                        required: false
                      - name: revenueTTM
                        type: string
                        description: Trailing twelve month revenue
                        required: false
                      - name: revenuePerShareTTM
                        type: string
                        description: Trailing twelve month revenue per share
                        required: false
                      - name: grossProfitTTM
                        type: string
                        description: Trailing twelve month gross profit
                        required: false
                      - name: ebitda
                        type: string
                        description: EBITDA
                        required: false
                      - name: profitMargin
                        type: string
                        description: Profit margin
                        required: false
                      - name: operatingMarginTTM
                        type: string
                        description: Trailing twelve month operating margin
                        required: false
                      - name: returnOnAssetsTTM
                        type: string
                        description: Trailing twelve month return on assets
                        required: false
                      - name: returnOnEquityTTM
                        type: string
                        description: Trailing twelve month return on equity
                        required: false
                      - name: evToRevenue
                        type: string
                        description: Enterprise value to revenue ratio
                        required: false
                      - name: evToEBITDA
                        type: string
                        description: Enterprise value to EBITDA ratio
                        required: false
                      - name: quarterlyEarningsGrowthYOY
                        type: string
                        description: Year-over-year quarterly earnings growth
                        required: false
                      - name: quarterlyRevenueGrowthYOY
                        type: string
                        description: Year-over-year quarterly revenue growth
                        required: false
                      - name: assets
                        type: string
                        description: Total assets
                        required: false
                      - name: liabilities
                        type: string
                        description: Total liabilities
                        required: false
                      - name: longTermDebt
                        type: string
                        description: Long-term debt
                        required: false
                      - name: alphaVantageUpdatedAt
                        type: string
                        description: >-
                          Timestamp when fundamentals were last refreshed from
                          the external data source
                        required: false
                      - name: type
                        type: string
                        description: >-
                          Category reported for this snapshot record, such as
                          the source or instrument group. This is not the
                          top-level WebSocket message `type`.
                        required: false
                      - name: size
                        type: string
                        description: Trade size
                        required: false
                  - name: error
                    type: object
                    description: Error details in a response
                    required: false
                    properties:
                      - name: type
                        type: string
                        description: Error type category
                        enumValues:
                          - bad_request
                          - not_found
                          - internal
                          - unauthorized
                        required: false
                      - name: code
                        type: string
                        description: Error code for programmatic handling
                        required: false
                      - name: message
                        type: string
                        description: Human-readable error message
                        required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - payload
          description: Server reply with the equity snapshot.
          properties:
            type:
              type: string
              const: response
              description: The server sets this to `response` in the reply.
              x-parser-schema-id: <anonymous-schema-238>
            id:
              type: string
              description: Request ID echoed from the original request
              x-parser-schema-id: <anonymous-schema-239>
            timestamp:
              type: string
              format: date-time
              description: Time when the server sent this reply, in RFC3339 format.
              x-parser-schema-id: <anonymous-schema-240>
            payload:
              type: object
              required:
                - status
              properties:
                status:
                  type: integer
                  description: Status code for this reply. `200` means success.
                  example: 200
                  x-parser-schema-id: <anonymous-schema-242>
                data:
                  type: object
                  description: Equity snapshot data with quote, trade, and company details.
                  properties:
                    symbol:
                      type: string
                      description: The ticker symbol
                      example: AAPL
                      x-parser-schema-id: <anonymous-schema-243>
                    name:
                      type: string
                      description: Company name
                      example: Apple Inc.
                      x-parser-schema-id: <anonymous-schema-244>
                    description:
                      type: string
                      description: Company description
                      x-parser-schema-id: <anonymous-schema-245>
                    assetType:
                      type: string
                      description: Type of asset (e.g., Common Stock)
                      example: Common Stock
                      x-parser-schema-id: <anonymous-schema-246>
                    sector:
                      type: string
                      description: Business sector
                      example: TECHNOLOGY
                      x-parser-schema-id: <anonymous-schema-247>
                    industry:
                      type: string
                      description: Industry classification
                      example: CONSUMER ELECTRONICS
                      x-parser-schema-id: <anonymous-schema-248>
                    address:
                      type: string
                      description: Company headquarters address
                      x-parser-schema-id: <anonymous-schema-249>
                    sicCode:
                      type: string
                      description: Standard Industrial Classification code
                      x-parser-schema-id: <anonymous-schema-250>
                    fiscalYearEnd:
                      type: string
                      description: Fiscal year end month
                      example: September
                      x-parser-schema-id: <anonymous-schema-251>
                    latestQuarter:
                      type: string
                      description: Most recent quarter end date
                      example: '2025-09-30'
                      x-parser-schema-id: <anonymous-schema-252>
                    lastPrice:
                      type: string
                      description: Last traded price
                      x-parser-schema-id: <anonymous-schema-253>
                    price:
                      type: string
                      description: Current price
                      x-parser-schema-id: <anonymous-schema-254>
                    openPrice:
                      type: string
                      description: Opening price for the day
                      x-parser-schema-id: <anonymous-schema-255>
                    highPrice:
                      type: string
                      description: Highest price for the day
                      x-parser-schema-id: <anonymous-schema-256>
                    lowPrice:
                      type: string
                      description: Lowest price for the day
                      x-parser-schema-id: <anonymous-schema-257>
                    closePrice:
                      type: string
                      description: Previous closing price
                      x-parser-schema-id: <anonymous-schema-258>
                    netChange:
                      type: string
                      description: Net price change from previous close
                      x-parser-schema-id: <anonymous-schema-259>
                    bidPrice:
                      type: string
                      description: Current bid price
                      x-parser-schema-id: <anonymous-schema-260>
                    bidSize:
                      type: string
                      description: Size at bid price
                      x-parser-schema-id: <anonymous-schema-261>
                    askPrice:
                      type: string
                      description: Current ask price
                      x-parser-schema-id: <anonymous-schema-262>
                    askSize:
                      type: string
                      description: Size at ask price
                      x-parser-schema-id: <anonymous-schema-263>
                    midPrice:
                      type: string
                      description: Mid-point between bid and ask
                      x-parser-schema-id: <anonymous-schema-264>
                    spread:
                      type: string
                      description: Bid-ask spread
                      x-parser-schema-id: <anonymous-schema-265>
                    bidExchange:
                      type: string
                      description: Exchange providing best bid
                      x-parser-schema-id: <anonymous-schema-266>
                    askExchange:
                      type: string
                      description: Exchange providing best ask
                      x-parser-schema-id: <anonymous-schema-267>
                    tradeExchange:
                      type: string
                      description: Exchange of last trade
                      x-parser-schema-id: <anonymous-schema-268>
                    totalVolume:
                      type: string
                      description: Total trading volume for the day
                      x-parser-schema-id: <anonymous-schema-269>
                    avgVolume4Weeks:
                      type: string
                      description: Average daily volume over 4 weeks
                      x-parser-schema-id: <anonymous-schema-270>
                    tick:
                      type: string
                      description: Tick direction (-1, 0, 1)
                      x-parser-schema-id: <anonymous-schema-271>
                    tradeSeq:
                      type: string
                      description: Trade sequence number
                      x-parser-schema-id: <anonymous-schema-272>
                    quoteTimestamp:
                      type: string
                      description: Timestamp of last quote update
                      x-parser-schema-id: <anonymous-schema-273>
                    tradeTimestamp:
                      type: string
                      description: Timestamp of last trade
                      x-parser-schema-id: <anonymous-schema-274>
                    high52WeekPrice:
                      type: string
                      description: 52-week high price
                      x-parser-schema-id: <anonymous-schema-275>
                    high52WeekDate:
                      type: string
                      description: Date of 52-week high
                      x-parser-schema-id: <anonymous-schema-276>
                    low52WeekPrice:
                      type: string
                      description: 52-week low price
                      x-parser-schema-id: <anonymous-schema-277>
                    low52WeekDate:
                      type: string
                      description: Date of 52-week low
                      x-parser-schema-id: <anonymous-schema-278>
                    movingAverage50Day:
                      type: string
                      description: 50-day moving average
                      x-parser-schema-id: <anonymous-schema-279>
                    movingAverage200Day:
                      type: string
                      description: 200-day moving average
                      x-parser-schema-id: <anonymous-schema-280>
                    marketCapitalization:
                      type: string
                      description: Market capitalization
                      x-parser-schema-id: <anonymous-schema-281>
                    sharesOutstanding:
                      type: string
                      description: Total shares outstanding
                      x-parser-schema-id: <anonymous-schema-282>
                    eps:
                      type: string
                      description: Earnings per share
                      x-parser-schema-id: <anonymous-schema-283>
                    EPSDiluted:
                      type: string
                      description: Diluted earnings per share
                      x-parser-schema-id: <anonymous-schema-284>
                    dilutedEPSTTM:
                      type: string
                      description: Trailing twelve month diluted EPS
                      x-parser-schema-id: <anonymous-schema-285>
                    EPSLatest12Month:
                      type: string
                      description: Latest 12-month EPS
                      x-parser-schema-id: <anonymous-schema-286>
                    EPS3YearGrowthRate:
                      type: string
                      description: 3-year EPS growth rate
                      x-parser-schema-id: <anonymous-schema-287>
                    EPS5YearGrowthRate:
                      type: string
                      description: 5-year EPS growth rate
                      x-parser-schema-id: <anonymous-schema-288>
                    PE:
                      type: string
                      description: Price-to-earnings ratio
                      x-parser-schema-id: <anonymous-schema-289>
                    trailingPE:
                      type: string
                      description: Trailing P/E ratio
                      x-parser-schema-id: <anonymous-schema-290>
                    forwardPE:
                      type: string
                      description: Forward P/E ratio
                      x-parser-schema-id: <anonymous-schema-291>
                    pegRatio:
                      type: string
                      description: PEG ratio (P/E to growth)
                      x-parser-schema-id: <anonymous-schema-292>
                    priceToBookRatio:
                      type: string
                      description: Price-to-book ratio
                      x-parser-schema-id: <anonymous-schema-293>
                    priceToSalesRatioTTM:
                      type: string
                      description: Trailing twelve month price-to-sales ratio
                      x-parser-schema-id: <anonymous-schema-294>
                    bookValue:
                      type: string
                      description: Book value per share
                      x-parser-schema-id: <anonymous-schema-295>
                    beta:
                      type: string
                      description: Beta coefficient
                      x-parser-schema-id: <anonymous-schema-296>
                    dividend:
                      type: string
                      description: Latest dividend amount
                      x-parser-schema-id: <anonymous-schema-297>
                    dividendPerShare:
                      type: string
                      description: Annual dividend per share
                      x-parser-schema-id: <anonymous-schema-298>
                    dividendYield:
                      type: string
                      description: Dividend yield
                      x-parser-schema-id: <anonymous-schema-299>
                    revenueTTM:
                      type: string
                      description: Trailing twelve month revenue
                      x-parser-schema-id: <anonymous-schema-300>
                    revenuePerShareTTM:
                      type: string
                      description: Trailing twelve month revenue per share
                      x-parser-schema-id: <anonymous-schema-301>
                    grossProfitTTM:
                      type: string
                      description: Trailing twelve month gross profit
                      x-parser-schema-id: <anonymous-schema-302>
                    ebitda:
                      type: string
                      description: EBITDA
                      x-parser-schema-id: <anonymous-schema-303>
                    profitMargin:
                      type: string
                      description: Profit margin
                      x-parser-schema-id: <anonymous-schema-304>
                    operatingMarginTTM:
                      type: string
                      description: Trailing twelve month operating margin
                      x-parser-schema-id: <anonymous-schema-305>
                    returnOnAssetsTTM:
                      type: string
                      description: Trailing twelve month return on assets
                      x-parser-schema-id: <anonymous-schema-306>
                    returnOnEquityTTM:
                      type: string
                      description: Trailing twelve month return on equity
                      x-parser-schema-id: <anonymous-schema-307>
                    evToRevenue:
                      type: string
                      description: Enterprise value to revenue ratio
                      x-parser-schema-id: <anonymous-schema-308>
                    evToEBITDA:
                      type: string
                      description: Enterprise value to EBITDA ratio
                      x-parser-schema-id: <anonymous-schema-309>
                    quarterlyEarningsGrowthYOY:
                      type: string
                      description: Year-over-year quarterly earnings growth
                      x-parser-schema-id: <anonymous-schema-310>
                    quarterlyRevenueGrowthYOY:
                      type: string
                      description: Year-over-year quarterly revenue growth
                      x-parser-schema-id: <anonymous-schema-311>
                    assets:
                      type: string
                      description: Total assets
                      x-parser-schema-id: <anonymous-schema-312>
                    liabilities:
                      type: string
                      description: Total liabilities
                      x-parser-schema-id: <anonymous-schema-313>
                    longTermDebt:
                      type: string
                      description: Long-term debt
                      x-parser-schema-id: <anonymous-schema-314>
                    alphaVantageUpdatedAt:
                      type: string
                      description: >-
                        Timestamp when fundamentals were last refreshed from the
                        external data source
                      x-parser-schema-id: <anonymous-schema-315>
                    type:
                      type: string
                      description: >-
                        Category reported for this snapshot record, such as the
                        source or instrument group. This is not the top-level
                        WebSocket message `type`.
                      x-parser-schema-id: <anonymous-schema-316>
                    size:
                      type: string
                      description: Trade size
                      x-parser-schema-id: <anonymous-schema-317>
                  x-parser-schema-id: EquitySnapshotData
                error: *ref_10
              x-parser-schema-id: <anonymous-schema-241>
          x-parser-schema-id: GetEquitySnapshotResponsePayload
        title: Get Equity Snapshot Response
        description: Response containing comprehensive equity data snapshot
        example: |-
          {
            "type": "response",
            "id": "req-003",
            "timestamp": "2026-01-07T15:17:32Z",
            "payload": {
              "status": 200,
              "data": {
                "symbol": "AAPL",
                "name": "Apple Inc.",
                "description": "Apple Inc. is a preeminent American multinational technology company renowned for its innovative consumer electronics, software, and online services.",
                "assetType": "Common Stock",
                "sector": "TECHNOLOGY",
                "industry": "CONSUMER ELECTRONICS",
                "address": "ONE APPLE PARK WAY, CUPERTINO, CA, UNITED STATES, 95014",
                "sicCode": "3663",
                "fiscalYearEnd": "September",
                "latestQuarter": "2025-09-30",
                "lastPrice": "261.9",
                "price": "261.968295",
                "openPrice": "263.59999999999997",
                "highPrice": "263.68",
                "lowPrice": "261.21",
                "closePrice": "262.428295",
                "netChange": "-0.45999999999999996",
                "bidPrice": "261.98",
                "bidSize": "400",
                "askPrice": "261.99",
                "askSize": "100",
                "midPrice": "261.985",
                "spread": "0.009999999999990905",
                "bidExchange": "NQEX|Nasdaq Exchange",
                "askExchange": "NQEX|Nasdaq Exchange",
                "tradeExchange": "NQNX|Nasdaq Trade Reporting Facility",
                "totalVolume": "10781409",
                "avgVolume4Weeks": "41245325",
                "tick": "-1",
                "tradeSeq": "13264647",
                "quoteTimestamp": "2026-01-07T10:16:56.961000-05:00",
                "tradeTimestamp": "2026-01-07T10:17:31.398000-05:00",
                "high52WeekPrice": "288.62",
                "high52WeekDate": "2025-12-03T00:00:00.000Z",
                "low52WeekPrice": "169.2101",
                "low52WeekDate": "2025-04-08T00:00:00.000Z",
                "movingAverage50Day": "269.52",
                "movingAverage200Day": "229.91",
                "marketCapitalization": "4021300494000",
                "sharesOutstanding": "14776353",
                "eps": "7.4",
                "EPSDiluted": "1.84",
                "dilutedEPSTTM": "7.4",
                "EPSLatest12Month": "89.690722",
                "EPS3YearGrowthRate": "12.566554",
                "EPS5YearGrowthRate": "19.982310000000002",
                "PE": "35.1689",
                "trailingPE": "36.62",
                "forwardPE": "33.0",
                "pegRatio": "2.769",
                "priceToBookRatio": "54.84",
                "priceToSalesRatioTTM": "9.66",
                "bookValue": "4.991",
                "beta": "1.107",
                "dividend": "0.26",
                "dividendPerShare": "1.02",
                "dividendYield": "0.0037",
                "revenueTTM": "416161006000",
                "revenuePerShareTTM": "27.84",
                "grossProfitTTM": "195201008000",
                "ebitda": "144748003000",
                "profitMargin": "0.269",
                "operatingMarginTTM": "0.317",
                "returnOnAssetsTTM": "0.23",
                "returnOnEquityTTM": "1.714",
                "evToRevenue": "9.82",
                "evToEBITDA": "28.24",
                "quarterlyEarningsGrowthYOY": "0.912",
                "quarterlyRevenueGrowthYOY": "0.079",
                "assets": "359241000",
                "liabilities": "285508000",
                "longTermDebt": "986570000",
                "alphaVantageUpdatedAt": "2025-12-23T11:29:26Z",
                "type": "ETRADE",
                "size": "1"
              }
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: getEquitySnapshotResponse
    bindings: []
    extensions: *ref_5
  - &ref_34
    id: receiveMarketStatusUpdate
    title: Receive Market Status Update
    description: Receive current market status
    type: send
    messages:
      - &ref_58
        id: marketStatusUpdate
        contentType: application/json
        payload:
          - name: Market Status Update
            description: Current market status
            type: object
            properties:
              - name: type
                type: string
                description: The server sets this to `event` for this message.
                required: true
              - name: payload
                type: object
                description: >-
                  Market status details sent after authentication and whenever
                  the market status changes.
                required: true
                properties:
                  - name: action
                    type: string
                    description: Market status is sent as an update event
                    required: true
                  - name: type
                    type: string
                    description: Data type for market status messages.
                    required: true
                  - name: data
                    type: object
                    required: true
                    properties:
                      - name: market
                        type: string
                        description: Overall market status
                        required: false
                      - name: serverTime
                        type: string
                        description: Server timestamp from the market status provider
                        required: false
                      - name: exchanges
                        type: object
                        description: Exchange status map
                        required: false
                      - name: currencies
                        type: object
                        description: Currency market status map
                        required: false
                      - name: afterHours
                        type: boolean
                        description: Whether after-hours trading is active
                        required: false
                      - name: earlyHours
                        type: boolean
                        description: Whether pre-market trading is active
                        required: false
                  - name: timestamp
                    type: integer
                    description: Server timestamp in Unix milliseconds
                    required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - payload
          description: Server event that reports the current market status.
          properties:
            type:
              type: string
              const: event
              description: The server sets this to `event` for this message.
              x-parser-schema-id: <anonymous-schema-340>
            payload:
              type: object
              required:
                - action
                - type
                - data
                - timestamp
              description: >-
                Market status details sent after authentication and whenever the
                market status changes.
              properties:
                action:
                  type: string
                  const: update
                  description: Market status is sent as an update event
                  x-parser-schema-id: <anonymous-schema-341>
                type:
                  type: string
                  const: marketStatus
                  description: Data type for market status messages.
                  x-parser-schema-id: <anonymous-schema-342>
                data:
                  type: object
                  properties:
                    market:
                      type: string
                      description: Overall market status
                      example: open
                      x-parser-schema-id: <anonymous-schema-343>
                    serverTime:
                      type: string
                      description: Server timestamp from the market status provider
                      example: '2026-05-13T10:30:00Z'
                      x-parser-schema-id: <anonymous-schema-344>
                    exchanges:
                      type: object
                      additionalProperties:
                        type: string
                        x-parser-schema-id: <anonymous-schema-346>
                      description: Exchange status map
                      x-parser-schema-id: <anonymous-schema-345>
                    currencies:
                      type: object
                      additionalProperties:
                        type: string
                        x-parser-schema-id: <anonymous-schema-348>
                      description: Currency market status map
                      x-parser-schema-id: <anonymous-schema-347>
                    afterHours:
                      type: boolean
                      description: Whether after-hours trading is active
                      x-parser-schema-id: <anonymous-schema-349>
                    earlyHours:
                      type: boolean
                      description: Whether pre-market trading is active
                      x-parser-schema-id: <anonymous-schema-350>
                  x-parser-schema-id: MarketStatusData
                timestamp:
                  type: integer
                  format: int64
                  description: Server timestamp in Unix milliseconds
                  example: 1701450000123
                  x-parser-schema-id: <anonymous-schema-351>
              x-parser-schema-id: MarketStatusEventPayload
          x-parser-schema-id: MarketStatusUpdatePayload
        title: Market Status Update
        description: Current market status
        example: |-
          {
            "type": "event",
            "payload": {
              "action": "update",
              "type": "marketStatus",
              "data": {
                "market": "open",
                "serverTime": "2026-05-13T10:30:00Z",
                "exchanges": {
                  "nyse": "open",
                  "nasdaq": "open"
                },
                "currencies": {
                  "fx": "open"
                },
                "afterHours": false,
                "earlyHours": false
              },
              "timestamp": 1701450000123
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: marketStatusUpdate
    bindings: []
    extensions: *ref_5
sendOperations:
  - *ref_11
  - *ref_12
  - *ref_13
  - *ref_14
  - *ref_15
  - *ref_16
  - *ref_17
receiveOperations:
  - *ref_18
  - *ref_19
  - *ref_20
  - *ref_21
  - *ref_22
  - *ref_23
  - *ref_24
  - *ref_25
  - *ref_26
  - *ref_27
  - *ref_28
  - *ref_29
  - *ref_30
  - *ref_31
  - *ref_32
  - *ref_33
  - *ref_34
sendMessages:
  - *ref_35
  - *ref_36
  - *ref_37
  - *ref_38
  - *ref_39
  - *ref_40
  - *ref_41
receiveMessages:
  - *ref_42
  - *ref_43
  - *ref_44
  - *ref_45
  - *ref_46
  - *ref_47
  - *ref_48
  - *ref_49
  - *ref_50
  - *ref_51
  - *ref_52
  - *ref_53
  - *ref_54
  - *ref_55
  - *ref_56
  - *ref_57
  - *ref_58
extensions:
  - id: x-parser-unique-object-id
    value: marketDataStream
securitySchemes: []

````