> ## 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

# Market tide

> Receive live updates of both the market tide and the otm market tide.

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

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: `market_tide` for the live market-wide net call/put premium and volume aggregate. The OTM-only breakout is included in the same payload via the `otm_net_*` fields.

Join `otm_market_tide` instead if you only need the OTM breakout. Every update is sent on
both channels with the same `timestamp`, and the `otm_market_tide` message carries the
`otm_net_*` values of `market_tide` under the names `net_volume`, `net_call_premium` and
`net_put_premium`. If you join both channels, you receive the OTM values twice.

Payload format:

```
[
  "market_tide",
  {
    "timestamp": "2026-04-27T14:27:54Z",
    "net_volume": 991,
    "net_call_premium": "488078.0",
    "net_put_premium": "-218102.0",
    "otm_net_volume": 1345,
    "otm_net_call_premium": "272395.0",
    "otm_net_put_premium": "-190694.0"
  }
]
```

### Field reference

Aggregates roll up every option transaction across the market. `net_*` fields cover all options; `otm_net_*` fields are restricted to out-of-the-money contracts (where dealer hedging tends to dominate price action).

| Field | Type | Description |
| - | - | - |
| `timestamp` | ISO 8601 string | Aggregation time, UTC. |
| `net_volume` | int | Net call volume minus net put volume across the entire market. |
| `net_call_premium` | decimal string | Net call premium (`ask_side - bid_side`) across all options, in dollars. |
| `net_put_premium` | decimal string | Net put premium (`ask_side - bid_side`) across all options, in dollars. |
| `otm_net_volume` | int | Same as `net_volume` but restricted to OTM contracts. |
| `otm_net_call_premium` | decimal string | Same as `net_call_premium` but restricted to OTM contracts. |
| `otm_net_put_premium` | decimal string | Same as `net_put_premium` but restricted to OTM contracts. |

### `otm_market_tide`

Payload format, for the same update as the `market_tide` example above:

```
[
  "otm_market_tide",
  {
    "timestamp": "2026-04-27T14:27:54Z",
    "net_volume": 1345,
    "net_call_premium": "272395.0",
    "net_put_premium": "-190694.0"
  }
]
```

| Field | Type | Description |
| - | - | - |
| `timestamp` | ISO 8601 string | Aggregation time, UTC. Equal to `timestamp` of the matching `market_tide` message. |
| `net_volume` | int | Net call volume minus net put volume, counting only OTM contracts. Same value as `otm_net_volume` on `market_tide`. |
| `net_call_premium` | decimal string | Net call premium of OTM contracts, in dollars. Same value as `otm_net_call_premium` on `market_tide`. |
| `net_put_premium` | decimal string | Net put premium of OTM contracts, in dollars. Same value as `otm_net_put_premium` on `market_tide`. |
