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.
- You might need to change the default expiration date to a different date if it is past the current date.
rust
pub fn option_snapshot_ohlc(&self, symbol: &str, expiration: &str) -> OptionSnapshotOhlcBuilder<'_>Optional parameters chain on the builder: .strike(&str), .right(&str), .max_dte(i32), .strike_range(i32), .min_time(&str). Execute with .await → Result<Vec<OhlcTick>, Error>, or decode chunk-by-chunk with .stream(handler).
Example
rust
let rows = tdx
.option_snapshot_ohlc("SPY", "20250321")
.strike("570")
.right("C")
.await?;
for t in &rows {
println!("date={} open={} high={} low={} close={}", t.date, t.open, t.high, t.low, t.close);
}Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
symbol | string | yes | — | Ticker symbol (e.g. AAPL) |
expiration | date | yes | — | Expiration date YYYYMMDD |
strike | string | no | * | Strike price in dollars as a string (e.g. 500 or 17.5). Use * for wildcard selection. |
right | string | no | both | Option side. Accepted values: call, put, both. |
max_dte | int | no | — | Maximum days to expiration |
strike_range | int | no | — | Strike range filter |
min_time | string | no | — | Minimum time filter |
timeout_ms | int | no | — | Per-request deadline in milliseconds. 0 means no deadline. |
Response
Rows of OhlcTick:
| Field | Type | Description |
|---|---|---|
ms_of_day | i32 | Opening time of the bar, milliseconds since midnight ET. |
open | f64 | Opening trade price. |
high | f64 | Highest traded price. |
low | f64 | Lowest traded price. |
close | f64 | Closing traded price. |
volume | i64 | Number of contracts or shares traded. |
count | i64 | Number of trades. |
vwap | f64 | Volume-weighted average price of the session. |
date | i32 | Trading 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).
Example response
ms_of_day | open | high | low | close | volume | count | vwap | date |
|---|---|---|---|---|---|---|---|---|
| 38510718 | 211.74 | 211.74 | 211.74 | 211.74 | 5 | 1 | 0 | 20260421 |
Decoded from a captured production response; 1 of 1 rows shown.