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 futures
  • mbp-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.

ES front month (ES.v.0), 22 October 2026, from 09:30:00 ET, the first book update · mbp-10
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.