Skip to content

OHLC ​

FreeValueStandardPro

Get the latest OHLC snapshot for an option contract.

  • Retrieve a real-time last ohlc of an option contract for the trading day.
SPY · 20250321
Client
Auth
Style
from thetadatadx import Client

client = Client.from_env()

rows = client.market_data.option_snapshot_ohlc(
    "SPY", "20250321",
    strike="570", right="C",
)
for t in rows:
    print(t.date, t.open, t.high, t.low, t.close)
Sample response · JSON
[
  {
    "close": 1.51,
    "count": 29,
    "high": 1.78,
    "low": 1.51,
    "open": 1.78,
    "timestamp": "2025-08-20T15:25:31.03",
    "volume": 202
  }
]

Parameters ​

NameTypeRequiredDefaultDescription
symbolstringyes-Ticker symbol (e.g. AAPL)
expirationdateyes-Expiration date YYYYMMDD. Pass * to select all expirations for the underlying (chain-wide; query one date at a time).
strikestringno*Strike price in dollars as a string (e.g. 500 or 17.5). Use * for wildcard selection.
rightstringnobothOption side. Use both or * (alias) for calls and puts. Accepted values: call, put, both, *.
max_dteintno-Maximum days to expiration
strike_rangeintno-Strike range filter
min_timestringno-Minimum time filter
timeout_msintno-Per-request deadline in milliseconds. 0 means no deadline.

Response ​

Rows of OhlcTick:

FieldTypeDescription
ms_of_dayi32Opening time of the bar, milliseconds since midnight ET.
openf64Opening trade price.
highf64Highest traded price.
lowf64Lowest traded price.
closef64Closing traded price.
volumei64Number of contracts or shares traded.
counti64Number of trades.
vwapf64Volume-weighted average price of the session.
datei32Trading date as a YYYYMMDD integer.

Wildcard requests additionally populate expiration (YYYYMMDD), strike (dollars), and right ("C" / "P") on every row to identify the contract; on single-contract requests these are absent (None / null / undefined; the Rust and C rows carry the documented 0 / 0.0 / '\0' fills).

Released under the Apache-2.0 License.