option_history_trade
FreeValueStandardPro
Retrieve all individual trades for an option contract on a given date.
Code Example
rust
let data = tdx.option_history_trade("SPY", "20260417", "550", "C", "20260315").await?;
for t in &data {
println!("date={} ms_of_day={} price={:.2} size={} condition={} exchange={}",
t.date, t.ms_of_day, t.price, t.size, t.condition, t.exchange);
}python
data = tdx.option_history_trade("SPY", "20260417", "550", "C", "20260315")
for t in data:
print(f"date={t.date} ms_of_day={t.ms_of_day} price={t.price:.2f} "
f"size={t.size} condition={t.condition} exchange={t.exchange}")typescript
const data = tdx.optionHistoryTrade('SPY', '20260417', '550', 'C', '20260315');
for (const t of data) {
console.log(`date=${t.date} ms_of_day=${t.ms_of_day} price=${t.price} size=${t.size} condition=${t.condition} exchange=${t.exchange}`);
}cpp
auto data = client.option_history_trade("SPY", "20260417", "550", "C", "20260315");
for (const auto& t : data) {
printf("date=%d ms_of_day=%d price=%.2f size=%d condition=%d exchange=%d\n",
t.date, t.ms_of_day, t.price, t.size, t.condition, t.exchange);
}Parameters
symbolstringrequiredUnderlying symbol
expirationstringrequiredExpiration date in
YYYYMMDD formatstrikestringrequiredStrike price in dollars as a string
rightstringrequired"C" for call, "P" for putdatestringrequiredDate in
YYYYMMDD formatstart_timestringoptionalStart time as milliseconds from midnight
end_timestringoptionalEnd time as milliseconds from midnight
max_dteintoptionalMaximum days to expiration
strike_rangeintoptionalStrike range filter
Response
pricefloatTrade price
sizeintTrade size (number of contracts)
datestringDate
ms_of_dayintMilliseconds from midnight
sequenceintSequence number
conditionintTrade condition code
exchangeintExchange code
Sample Response
json
[
{"date": 20260402, "ms_of_day": 34203497, "price": 98.59, "size": 1, "condition": 130, "exchange": 6}
]Trades for SPY 2026-04-17 550 call on 2026-04-02. Deep ITM options may have only 1-2 trades per day.
Notes
- For liquid contracts, this can return hundreds of thousands of rows. In Rust, use the
_streamvariant to process in chunks.