No. Massive does not publish Level 2 market depth, and there is no order-book endpoint or order-book WebSocket channel for stocks, options, futures, forex or crypto. What Massive publishes is the NBBO, the National Best Bid and Offer, which is the single best bid and the single best offer consolidated across the US exchanges, together with every individual trade and the exchange it printed on.
Applies to
- Plans: all plans. This is a coverage question rather than an entitlement one.
- Endpoints: /v3/quotes/{ticker} and /v2/last/nbbo/{ticker} for NBBO; /v3/trades/{ticker} for prints. Live quotes stream on Q for stocks, options and futures, C for forex and XQ for crypto.
- Asset classes: stocks, options, futures, forex and crypto.
What you get instead of depth
Instead of depth you get the consolidated touch and the full trade tape. This table maps what people usually want from Level 2 onto what Massive publishes:
| What you want | What Massive publishes |
|---|---|
| Every resting order at every price level | Not available |
| The best bid and offer, with sizes, as it changes | NBBO quotes on /v3/quotes, and the live quote channel for that cluster: Q on stocks, C on forex, XQ on crypto |
| Which venue is at the best price | The bid_exchange and ask_exchange fields on each quote |
| Every execution and where it happened | /v3/trades, with exchange and, for off-exchange prints, trf_id |
| How much traded away from the lit exchanges | Trades with exchange 4, which are the off-exchange prints |
For many questions people bring to Level 2, the NBBO plus the trade tape is enough: spread, quoted size at the touch, where liquidity is printing, and how much volume is going off-exchange. What it cannot tell you is the shape of the book behind the touch.
How to see the best bid and offer over time
curl -X GET "https://api.massive.com/v3/quotes/AAPL?timestamp.gte=1788535800000000000&limit=1&order=asc&sort=timestamp&apiKey=YOUR_API_KEY"
Response
{
"results": [
{
"ask_exchange": 12, "ask_price": 319.48, "ask_size": 400,
"bid_exchange": 10, "bid_price": 319.46, "bid_size": 160,
"conditions": [1],
"indicators": [1],
"participant_timestamp": 1788535800036991131,
"sequence_number": 46912468,
"sip_timestamp": 1788535800037007549,
"tape": 3
}
],
"status": "OK"
}
Each row is one change to the national best bid or offer, with the exchange that set each side, so a series of them is the history of the touch rather than a snapshot of the book.
The timestamp.gte above pins the request to a nanosecond rather than to a date, which is worth copying. Ask for a whole day with timestamp=2026-09-04&order=asc and the first records you get back are the day's administrative quotes: on 4 September 2026 the first three carry condition 19, Market Maker Quotes Closed, with every price and size field zero. The first quote with a price on it arrives at 04:00:00.006895 Eastern as the pre-market session opens, bid only, and the first two-sided quote lands 22 microseconds later. Zeroes at the top of an ascending day are the market being shut, not missing data.
Why the NBBO is not depth
The NBBO is not depth because it is a consolidation rather than a feed of orders. The SIPs publish the best price and size across all US exchanges as one stream, which is a single level by definition. Full depth is a separate product from each exchange, licensed per venue, and carries orders rather than a consolidated quote. That is why depth cannot be derived from what Massive publishes: the information is not thinned, it is a different feed.
If you see an error
There is no error to look for here, because no endpoint or channel returns depth. A subscribe to an invented channel such as L2 will come back as {"ev":"status","status":"error","message":"not authorized"}, which reads like a plan problem and is not one.
If you need depth, start a chat at massive.com/contact and tell us what you are building. It helps us prioritize, and we can tell you whether the NBBO and trade tape cover the case.

