Option Endpoints
ThetaDataDx provides 34 typed endpoints for option market data, organized into five categories.
Contract Identification
Option contracts are identified by four parameters:
| Parameter | Description | Example |
|---|---|---|
symbol | Underlying ticker | "SPY" |
expiration | Expiration date (YYYYMMDD) | "20241220" |
strike | Strike price in dollars as string | "500" ($500.00) |
right | Call or put | "C" or "P" |
Wildcard queries: Pass "0" for expiration, strike, and/or right to fetch data across multiple contracts. Each returned tick carries contract identification fields (expiration, strike, right) so you can determine which contract it belongs to. See Options & Greeks for usage examples.
Endpoint Categories
List (5 endpoints)
Discover available symbols, expirations, strikes, dates, and contracts.
- List Symbols - all option underlying symbols
- List Dates - available dates for a contract
- List Strikes - strike prices for an expiration
- List Expirations - expiration dates for an underlying
- List Contracts - all contracts for a symbol on a date
Snapshot (9 endpoints)
Latest point-in-time data for a contract.
- Snapshot OHLC
- Snapshot Trade
- Snapshot Quote
- Snapshot Open Interest
- Snapshot Greeks IV
- Snapshot Greeks All
- Snapshot Greeks First Order
- Snapshot Greeks Second Order
- Snapshot Greeks Third Order
History (16 endpoints)
Historical time series data for a contract.
- History EOD
- History OHLC
- History Trade
- History Quote
- History Trade + Quote
- History Open Interest
- History Greeks EOD
- History Greeks All
- History Greeks First Order
- History Greeks Second Order
- History Greeks Third Order
- History Greeks IV
- History Trade Greeks All
- History Trade Greeks First Order
- History Trade Greeks Second Order
- History Trade Greeks Third Order
- History Trade Greeks IV
At-Time (2 endpoints)
Data at a specific time of day across a date range.
Streaming (Rust only)
Streaming variants (*_stream) use per-chunk callbacks and are available in the Rust SDK only. Other languages use the non-streaming equivalents which return complete result sets.
tdx.option_history_trade_stream(
"SPY", "20240419", "500", "C", "20240315",
|chunk| { Ok(()) }
).await?;
tdx.option_history_quote_stream(
"SPY", "20240419", "500", "C", "20240315", "0",
|chunk| { Ok(()) }
).await?;