Skip to content

Quote

FreeValueStandardPro

Fetch the quote at a specific time of day across a date range for an option.

  • Returns the last NBBO quote reported by OPRA at a specified millisecond of the day.
  • The time_of_dayparameter represents the 00:00:00.000 ET that the quote should be provided for.
rust
pub fn option_at_time_quote(
    &self,
    symbol: &str,
    expiration: &str,
    start_date: &str,
    end_date: &str,
    time_of_day: &str,
) -> OptionAtTimeQuoteBuilder<'_>

Optional parameters chain on the builder: .strike(&str), .right(&str), .max_dte(i32), .strike_range(i32). Execute with .awaitResult<Vec<QuoteTick>, Error>, or decode chunk-by-chunk with .stream(handler).

Example

rust
let rows = tdx
    .option_at_time_quote("SPY", "20250321", "20250303", "20250306", "10:30:00.000")
    .strike("570")
    .right("C")
    .await?;
for t in &rows {
    println!("date={} ms_of_day={} bid={} ask={}", t.date, t.ms_of_day, t.bid, t.ask);
}

Parameters

NameTypeRequiredDefaultDescription
symbolstringyesTicker symbol (e.g. AAPL)
expirationdateyesExpiration date YYYYMMDD
start_datedateyesStart date YYYYMMDD
end_datedateyesEnd date YYYYMMDD
time_of_daystringyesET wall-clock time in HH:MM:SS.SSS (e.g. 09:30:00.000 for 9:30 AM ET; legacy 34200000 is also accepted)
strikestringno*Strike price in dollars as a string (e.g. 500 or 17.5). Use * for wildcard selection.
rightstringnobothOption side. Accepted values: call, put, both.
max_dteintnoMaximum days to expiration
strike_rangeintnoStrike range filter
timeout_msintnoPer-request deadline in milliseconds. 0 means no deadline.

Response

Rows of QuoteTick:

FieldTypeDescription
ms_of_dayi32Milliseconds since midnight Eastern Time.
bid_sizei32Last NBBO bid size.
bid_exchangei32Exchange code of the NBBO bid.
bidf64Last NBBO bid price.
bid_conditioni32Quote condition code on the bid side.
ask_sizei32Last NBBO ask size.
ask_exchangei32Exchange code of the NBBO ask.
askf64Last NBBO ask price.
ask_conditioni32Quote condition code on the ask side.
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.