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

# Off-lit trades

> Receive live off-lit (dark pool) trades throughout the trading session.

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

**Coverage:** `off_lit_trades` streams off-lit (dark pool) prints at or above roughly \$100,000 notional (price x size). Smaller prints are not included. For the complete unfiltered tape across all sizes, use the Kafka `all-trade-report` topic.

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: `off_lit_trades` for off-lit (dark pool) trades.

Payload format:

```
[
  "off_lit_trades",
  {
    "symbol": "AAPL",
    "price": "150.25",
    "type": "off_lit",
    "size": 100,
    "volume": 1000,
    "trade_settlement": "regular",
    "trade_code": null,
    "ext_hour_sold_codes": "extended_hours_trade",
    "sale_cond_codes": null,
    "executed_at": "2024-09-22T14:30:00Z",
    "trf_executed_at": "2024-09-22T14:30:00.250Z",
    "nbbo_bid": "150.20",
    "nbbo_ask": "150.25",
    "nbbo_bid_quantity": 500,
    "nbbo_ask_quantity": 800,
    "sector": "Technology",
    "next_earnings_date": "2024-10-25",
    "avg30_volume": "75000000.0",
    "issue_type": "Common Stock",
    "marketcap": "2400000000000.0"
  }
]
```

The schema is identical to `lit_trades` but `type` is always `"off_lit"`. Off-lit prints are reported to the consolidated tape via a TRF (typically with a small delay), so `trf_executed_at` is more frequently populated on this channel and may differ from `executed_at`.

### Field reference

See the [`lit_trades` field reference](/docs/websocket/lit-trades) for the full schema. The two channels share the same payload shape.
