Skip to content

Open Interest

FreeValueStandardPro

Get the latest open interest snapshot for an option contract.

  • Retrieve the last open interest message of an option contract.
  • Open interest is reported around 06:30 ET every morning by OPRA and reflects the open interest at the of the previous trading day.
  • You might need to change the default expiration date to a different date if it is past the current date.
  • This endpoint will return no data if the market was closed for the day. Theta Data resets the snapshot cache at midnight ET every night.
rust
pub fn option_snapshot_open_interest(&self, symbol: &str, expiration: &str) -> OptionSnapshotOpenInterestBuilder<'_>

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

Example

rust
let rows = tdx
    .option_snapshot_open_interest("SPY", "20250321")
    .strike("570")
    .right("C")
    .await?;
for t in &rows {
    println!("date={} open_interest={}", t.date, t.open_interest);
}

Parameters

NameTypeRequiredDefaultDescription
symbolstringyesTicker symbol (e.g. AAPL)
expirationdateyesExpiration date YYYYMMDD
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
min_timestringnoMinimum time filter
timeout_msintnoPer-request deadline in milliseconds. 0 means no deadline.

Response

Rows of OpenInterestTick:

FieldTypeDescription
ms_of_dayi32Milliseconds since midnight Eastern Time.
open_interesti32Total outstanding contracts.
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.