Skip to content

option_list_contracts

FreeValueStandardPro

List all option contracts available for a given underlying symbol on a specific date. Returns the full matrix of expirations, strikes, and sides.

Code Example

rust
let data = tdx.option_list_contracts("TRADE", "SPY", "20260402").await?;
for t in &data {
    println!("symbol={} expiration={} strike={:.2} right={}",
        t.symbol, t.expiration, t.strike, t.right);
}
python
data = tdx.option_list_contracts("TRADE", "SPY", "20260402")
for t in data:
    print(f"symbol={t.symbol} expiration={t.expiration} strike={t.strike:.2f} right={t.right}")
typescript
const data = tdx.optionListContracts('TRADE', 'SPY', '20260402');
console.log(data);
cpp
auto data = client.option_list_contracts("TRADE", "SPY", "20260402");
for (const auto& t : data) {
    printf("symbol=%s expiration=%d strike=%.2f right=%s\n",
        t.symbol, t.expiration, t.strike, t.right);
}

Parameters

request_typestringrequired
Data type (e.g. "TRADE", "QUOTE")
symbolstringrequired
Underlying symbol
datestringrequired
Date in YYYYMMDD format
max_dteintoptional
Maximum days to expiration filter

Response

symbolstring
Underlying symbol
expirationstring
Expiration date in YYYYMMDD format
strikestring
Strike price in dollars as a string
rightstring
"C" for call, "P" for put

Sample Response

json
[
  {"symbol": "SPY", "expiration": 20260403, "strike": 320.00, "right": "C"},
  {"symbol": "SPY", "expiration": 20260403, "strike": 640.00, "right": "C"},
  {"symbol": "SPY", "expiration": 20260417, "strike": 550.00, "right": "P"}
]

Field names above match the typed OptionContract struct exposed by every SDK (symbol, expiration, strike, right). The Vec<OptionContract> is decoded from the v3 gRPC DataTable response — there is no raw JSON wire format on this endpoint, so the SDK's symbol vocabulary is what callers see.

Lists all option contracts for SPY on the given date. 5,467 contracts returned for 2026-04-02.

Notes

  • Use max_dte to limit results to near-term expirations, which significantly reduces the result set for highly liquid underlyings like SPY.
  • This is a bulk discovery endpoint. For targeted queries, use option_list_expirations + option_list_strikes instead.

Released under the Apache-2.0 License.