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

> ## Agent Instructions
> API requests use the base URL https://api.unusualwhales.com and require a bearer token in the `Authorization` header (`Authorization: Bearer <API_KEY>`). Create and manage API tokens at https://unusualwhales.com/dashboard/api.
> For live market data inside an AI tool, use the Unusual Whales MCP server at https://unusualwhales.com/public-api/mcp.
> Instructions for agents using Unusual Whales tools: https://unusualwhales.com/skill.md

# Ticker Interval flow

> Receive per interval option flow statistics for a ticker (sweeps, floors, multilegs, Greek flows, IV, net prem).

**NOTE:**
This is the documentation for websocket channel `interval_flow`.
Websocket access for personal use is only available through the [Advanced plan](https://unusualwhales.com/pricing?product=api).

The data on this channel is the exact same data shown on [https://unusualwhales.com/ticker-interval-flow](https://unusualwhales.com/ticker-interval-flow).

Ticker Interval flow shows you summary stats about option transactions for a given ticker in a 5min window. It shows the options volume, transactions count, greek exposure, net premium, implied move change and many more stats. This is very useful if you want to build an alerting system that alerts if there is a volume spike or some other sort of spike in a ticker in a short time frame.

You can find fully-functional examples that stream data from many channels here:

* Python: [https://github.com/unusual-whales/api-examples/tree/main/examples/ws-multi-channel-multi-output](https://github.com/unusual-whales/api-examples/tree/main/examples/ws-multi-channel-multi-output)
* Javascript: [https://github.com/unusual-whales/api-examples/tree/main/examples/ws-multi-channel-multi-output-nodejs](https://github.com/unusual-whales/api-examples/tree/main/examples/ws-multi-channel-multi-output-nodejs)

Connect to the websocket URI:

`wss://api.unusualwhales.com/socket?token=<YOUR_API_TOKEN>`

then `join` the channel you wish to stream: `interval_flow` for live per-interval option flow statistics. Each message carries a single ticker in its `ticker` field; subscribers receive updates for all tickers across the channel.

Payload format:

```
[
  "interval_flow",
  {
    "ticker": "CVNA",
    "interval_type": "All",
    "start_time": "2026-04-27T14:25:00Z",
    "tape_time": "2026-04-27T14:27:54.391Z",
    "call_vol": 76,
    "put_vol": 155,
    "transactions": 73,
    "call_vol_ask_side": 38,
    "call_vol_bid_side": 37,
    "call_vol_neutral_side": 1,
    "put_vol_ask_side": 28,
    "put_vol_bid_side": 107,
    "put_vol_neutral_side": 20,
    "call_sweep_vol": 0,
    "put_sweep_vol": 0,
    "call_floor_vol": 0,
    "put_floor_vol": 0,
    "call_cross_vol": 0,
    "put_cross_vol": 0,
    "call_multi_vol": 22,
    "put_multi_vol": 12,
    "cum_net_call_delta": 200,
    "cum_net_put_delta": -149,
    "avg_dte": "4",
    "avg_otm": "0.697458",
    "avg_size": "1",
    "avg_prem": "54",
    "net_call_prem": 16424,
    "net_put_prem": -10344,
    "open": "407",
    "close": "406.322",
    "implied_move_perc_30d_open": 165,
    "implied_move_perc_30d_close": 165,
    "volatility_30d_open": 849,
    "volatility_30d_close": 855,
    "delta_flow": 1243,
    "gamma_flow": 11,
    "vega_flow": 6780,
    "dir_delta_flow": 8,
    "dir_gamma_flow": -38,
    "dir_vega_flow": -892
  }
]
```

### Field reference

Each message describes a 5-minute window of option flow for a single ticker. Two messages are emitted per ticker per interval, distinguished by `interval_type`: one rolls up all contracts, the other restricts to OTM contracts.

| Field | Type | Description |
| - | - | - |
| `ticker` | string | Underlying ticker. |
| `interval_type` | `"All"` \| `"OtmOnly"` | `"All"` includes every contract; `"OtmOnly"` restricts to OTM. |
| `start_time` | ISO 8601 string | Start of the 5-minute window (UTC). |
| `tape_time` | ISO 8601 string | Time of the snapshot within the window. The same window may emit multiple messages as the window fills; only the latest is current. |
| `call_vol` / `put_vol` | int | Total call / put volume in the window. |
| `transactions` | int | Distinct option transactions in the window. |
| `call_vol_ask_side`, `call_vol_bid_side`, `call_vol_neutral_side` | int | Call volume by trade-side classification. |
| `put_vol_ask_side`, `put_vol_bid_side`, `put_vol_neutral_side` | int | Put volume by trade-side classification. |
| `call_sweep_vol` / `put_sweep_vol` | int | Volume tagged as sweep (multi-exchange print). |
| `call_floor_vol` / `put_floor_vol` | int | Volume tagged as floor trade. |
| `call_cross_vol` / `put_cross_vol` | int | Volume from cross trades. |
| `call_multi_vol` / `put_multi_vol` | int | Volume from multi-leg trades. |
| `cum_net_call_delta` / `cum_net_put_delta` | int | Session-cumulative net delta from calls / puts (signed by side). |
| `avg_dte` | decimal string \| null | Average days-to-expiration across the window's trades. |
| `avg_otm` | decimal string \| null | Average OTM percentage across the window. |
| `avg_size` | decimal string \| null | Average trade size in contracts. |
| `avg_prem` | decimal string \| null | Average per-trade premium in dollars. |
| `net_call_prem` / `net_put_prem` | int | Net call / put premium in the window (`ask_side - bid_side`), in dollars. |
| `open` / `close` | decimal string \| null | Underlying price at the start / end of the window. |
| `implied_move_perc_30d_open` / `implied_move_perc_30d_close` | int | 30-day implied move at window open / close, in basis points. |
| `volatility_30d_open` / `volatility_30d_close` | int | 30-day implied volatility at window open / close, in basis points. |
| `delta_flow` / `gamma_flow` / `vega_flow` | int | Absolute Greek flow in the window. |
| `dir_delta_flow` / `dir_gamma_flow` / `dir_vega_flow` | int | Directional (signed by side) Greek flow in the window. |
