Our data
Depth
The ten best price levels on each side of the book, with the size and number of orders at each, on every change. Kept for the most recent 30 days; stock depth is the Nasdaq book.
7730.0040
7729.7544
7729.5038
7729.2526
247729.00
397728.75
427728.50
457728.25
History
- Futures
- 30 days
- Futures options
- 30 days
- US stocks
- 30 days
Schemas
mbp-10GLBX.MDP3Futures and options on futuresmbp-10XNAS.ITCHUS stocks, the Nasdaq book
- A liquid future is millions of book updates a day; pass columns=[…] to take only the levels you need.
Fields
- ts_recv
- when the feed received it, UTC, to the nanosecond
- ts_event
- when the exchange stamped the event, UTC, to the nanosecond
- rtype
- record type
- publisher_id
- exchange and feed the record came from
- instrument_id
- numeric id of the contract or stock
- action
- book action: 'A' add, 'C' cancel, 'M' modify, 'T' trade, 'F' fill, 'R' clear
- side
- 'A' ask, 'B' bid, 'N' none; on a trade, the side that was hit
- depth
- book level the event changed, 0 for the top
- price
- price of the event or trade
- size
- size of the event or trade
- flags
- record flags set by the feed
- ts_in_delta
- feed latency, nanoseconds
- sequence
- feed sequence number
- bid_px_00 … bid_px_09
- bid price, levels 0 (best) to 9
- ask_px_00 … ask_px_09
- ask price, levels 0 (best) to 9
- bid_sz_00 … bid_sz_09
- size resting at the bid, levels 0 (best) to 9
- ask_sz_00 … ask_sz_09
- size resting at the ask, levels 0 (best) to 9
- bid_ct_00 … bid_ct_09
- number of orders at the bid, levels 0 (best) to 9
- ask_ct_00 … ask_ct_09
- number of orders at the ask, levels 0 (best) to 9
- symbol
- the symbol you asked for
Example data
Rows exactly as the API returned them.
OrdersBid sizePriceAsk sizeOrders
7731.503325
7731.252820
7731.004329
7730.753924
7730.504128
7730.254028
7730.004031
7729.754427
7729.503825
7729.252613
9247729.00
27397728.75
31427728.50
33457728.25
33497728.00
26397727.75
24387727.50
28387727.25
25377727.00
33477726.75
Size is contracts resting at each level; orders is how many orders make it up.
Times are UTC to the nanosecond; a bar is stamped at its open.
Request it
import quantpad_data as qpd
h = qpd.Historical()
for book in h.timeseries.iter_range(
dataset="GLBX.MDP3", symbols="ES.v.0", stype_in="continuous",
schema="mbp-10", start="2026-10-20", end="2026-10-23",
columns=["ts_event", "bid_px_00", "ask_px_00", "bid_sz_00", "ask_sz_00"],
):
...Or ask the agent in plain English; it writes the same call for you.