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

# TradeReport

> The consolidated stock tape

Message
fields**26**
topic[all-trade-report](/docs/kafka/topics/all-trade-report.md)

**Proto definition**

```protobuf schema.proto theme={null}
message TradeReport {
  string symbol = 1;
  string market_center = 2;
  string security_class = 3;
  string control_number = 4;
  string price = 5;
  int32 size = 6;
  int64 volume = 7;
  string trade_settlement = 8;
  string trade_code = 9;
  string ext_hour_sold_codes = 10;
  string sale_cond_codes = 11;
  int64 executed_at = 12;
  int64 tracking_id = 13;
  string issue_type = 14;
  string nbbo_bid = 15;
  string nbbo_ask = 16;
  int64 nbbo_bid_quantity = 17;
  int64 nbbo_ask_quantity = 18;
  bool updates_high_low = 19;
  TradeSettlement trade_settlement_enum = 20;
  TradeCodes trade_code_enum = 21;
  ExthourSoldCodes ext_hour_sold_codes_enum = 22;
  SpecialSaleConditionsCodes sale_cond_codes_enum = 23;
  int32 ticker_id = 24;
  int64 trf_executed_at = 25;
  TickerInfo ticker_info = 26;
}
```

## Fields

The number on the right of each row is the protobuf field number.

symbol
string
1

The ticker symbol the trade is for.

market\_center
string
2

The market center where the trade executed. Can be one of: 1. Q => Nasdaq Stock Market (lit) 2. L or 2 => TRF (dark pool/off lit) 3. B or X => lit

security\_class
string
3

Security class code

control\_number
string
4

Identifier the upstream feed assigns to this trade message. Trade cancellations and corrections reference this same control number (see TradeCancel) to point back at the original print.

price
string
5

The price at which the trade executed

size
int32
6

The size of the trade. At the time of writing this there are no fractional trades but they are planned to go live this year (2026). In that case the protobuf will be extended with a new field that will have the fractional shares value.

volume
int64
7

The consolidated volume across all market places till now. This volume represents the total volume you see across websites, tv and on your broker.

trade\_settlement
string
8

Deprecated: do not use, use trade\_settlement\_enum instead. The settlement type as a lower case string (e.g. "regular", "cash", "next\_day", "seller").

trade\_code
string
9

Deprecated: do not use, use trade\_code\_enum instead. The trade code as a lower case string (e.g. "opening\_print"), or "empty" when the trade has none.

ext\_hour\_sold\_codes
string
10

Deprecated: do not use, use ext\_hour\_sold\_codes\_enum instead. The extended hours/sold code as a lower case string, or "empty" when the trade has none.

sale\_cond\_codes
string
11

Deprecated: do not use, use sale\_cond\_codes\_enum instead. The special sale condition code as a lower case string, or "empty" when the trade has none.

executed\_at
int64
12

The time at which the trade executed in milliseconds since 1970 (unix)

tracking\_id
int64
13

Internal tracking id of the trade

issue\_type
string
14

Deprecated: do not use, use ticker\_info.issue\_type instead, which is a well defined enum.

nbbo\_bid
string
15

The bid at the time of the trade. Note that when TRF trades are being pushed the BID does not represent the bid at the time of the TRF (off lit) trade but rather the bid at the time the TRF trade hit the tape.

nbbo\_ask
string
16

The ask at the time of the trade. Note that when TRF trades are being pushed the BID does not represent the ask at the time of the TRF (off lit) trade but rather the ask at the time the TRF trade hit the tape.

nbbo\_bid\_quantity
int64
17

The number of shares available at the NBBO bid at the time of the trade. The same TRF caveat as nbbo\_bid applies.

nbbo\_ask\_quantity
int64
18

The number of shares available at the NBBO ask at the time of the trade. The same TRF caveat as nbbo\_ask applies.

updates\_high\_low
bool
19

A boolean flag whether this trade is eligible for updating the open, high, low and close of a stock for the trading day. If you are using this data to build the daily OHLC of a stock live then you need to respect this flag as there is a lot of trades that are not eligible for updating the OHLC data.

trade\_settlement\_enum
[TradeSettlement](/docs/kafka/types/TradeSettlement.md)
20

The settlement type as a typed enum.

trade\_code\_enum
[TradeCodes](/docs/kafka/types/TradeCodes.md)
21

The trade code as a typed enum (an \*\_EMPTY value when the trade has none).

ext\_hour\_sold\_codes\_enum
[ExthourSoldCodes](/docs/kafka/types/ExthourSoldCodes.md)
22

The extended hours/sold code as a typed enum (an \*\_EMPTY value when the trade has none).

sale\_cond\_codes\_enum
[SpecialSaleConditionsCodes](/docs/kafka/types/SpecialSaleConditionsCodes.md)
23

The special sale condition code as a typed enum (an \*\_EMPTY value when the trade has none).

ticker\_id
int32
24

Internal unique ID for the given ticker at UW.

trf\_executed\_at
int64
25

For TRF (off lit) trades, the time the trade actually executed, in milliseconds since 1970 (unix). This differs from executed\_at, which is when the trade hit the consolidated tape, only set for TRF prints.

ticker\_info
[TickerInfo](/docs/kafka/types/TickerInfo.md)
26

Information about the ticker such as sector, industry, next earnings date and more.
