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_typestringrequiredData type (e.g.
"TRADE", "QUOTE")symbolstringrequiredUnderlying symbol
datestringrequiredDate in
YYYYMMDD formatmax_dteintoptionalMaximum days to expiration filter
Response
symbolstringUnderlying symbol
expirationstringExpiration date in
YYYYMMDD formatstrikestringStrike price in dollars as a string
rightstring"C" for call, "P" for putSample 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
OptionContractstruct exposed by every SDK (symbol,expiration,strike,right). TheVec<OptionContract>is decoded from the v3 gRPCDataTableresponse — there is no raw JSON wire format on this endpoint, so the SDK'ssymbolvocabulary 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_dteto 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.