Our data

Bars

Open, high, low, close and volume for each interval. Second, minute, hour and daily bars are stored; any coarser interval, up to a year, is resampled from them when you ask.

7736.007732.257728.25

History

Futures
16 yrs
Futures options
16 yrs
US stocks
8 yrs
Equity options
13 yrs

Schemas

  • ohlcv-1sAllResample to 5s, 10s, 15s, 30s
  • ohlcv-1mAllResample to 2m, 3m, 5m, 10m, 15m, 30m
  • ohlcv-1hAllResample to 2h, 3h, 4h
  • ohlcv-1dAllResample to 1w, 1mo, 1y
  • Futures: one contract (ESZ6) or a continuous series (ES.v.0 rolls on volume), back- or ratio-adjusted on request.
  • US stocks: from the listing exchange's feed, which carries the official open and close.
  • Equity options: one bar per exchange per interval.

Fields

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
open
open price
high
high price
low
low price
close
close price
volume
volume
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, ohlcv-1m · ohlcv-1m
ts_eventrtypepublisher_idinstrument_idopenhighlowclosevolumesymbol
2026-10-22T13:30:00+00:00331102527729773377257731.7512051ES.v.0
2026-10-22T13:31:00+00:00331102527731.7577347729.757733.759031ES.v.0
2026-10-22T13:32:00+00:00331102527733.57736.257729.2577308898ES.v.0
2026-10-22T13:33:00+00:00331102527729.7577397729.57737.57914ES.v.0
2026-10-22T13:34:00+00:00331102527737.57740.757736.257738.257557ES.v.0

Times are UTC to the nanosecond; a bar is stamped at its open.

Request it

import quantpad_data as qpd

h = qpd.Historical()
bars = h.timeseries.get_range(
    dataset="GLBX.MDP3", symbols="ES.v.0", stype_in="continuous",
    schema="ohlcv-1m", resample="5m", roll_adjust="back",
    start="2026-10-01", end="2026-10-23",
)

Or ask the agent in plain English; it writes the same call for you.