Skip to content

Trade

FreeValueStandardPro

Fetch the trade at a specific time of day across a date range for an option.

  • Returns the last trade reported by OPRA at a specified millisecond of the day.
  • Trade condition mappings can be found here.
  • Extended trade conditions are not reported by OPRA for options, so they can be ignored.
  • The time_of_dayparameter represents the 00:00:00.000 ET that the trade should be provided for.
SPY · 20250321 · 20250303 · 20250306 · 10:30:00.000
Client
Auth
Style
from thetadatadx import Client

client = Client.from_env()

rows = client.market_data.option_at_time_trade(
    "SPY", "20250321", "20250303", "20250306", "10:30:00.000",
    strike="570", right="C",
)
for t in rows:
    print(t.date, t.ms_of_day, t.price, t.size)
Sample response · JSON
[
  {
    "condition": 130,
    "exchange": 22,
    "ext_condition1": 255,
    "ext_condition2": 255,
    "ext_condition3": 255,
    "ext_condition4": 255,
    "price": 3.9,
    "sequence": 18902138,
    "size": 2,
    "timestamp": "2024-11-04T09:30:00.471"
  }
]

Parameters

NameTypeRequiredDefaultDescription
symbolstringyesTicker symbol (e.g. AAPL)
expirationdateyesExpiration date YYYYMMDD. Pass * to select all expirations for the underlying (chain-wide; query one date at a time).
start_datedateyesStart date YYYYMMDD
end_datedateyesEnd date YYYYMMDD
time_of_daystringyesET wall-clock time in HH:MM:SS.SSS (e.g. 09:30:00.000 for 9:30 AM ET; legacy 34200000 is also accepted)
strikestringno*Strike price in dollars as a string (e.g. 500 or 17.5). Use * for wildcard selection.
rightstringnobothOption side. Use both or * (alias) for calls and puts. Accepted values: call, put, both, *.
max_dteintnoMaximum days to expiration
strike_rangeintnoStrike range filter
timeout_msintnoPer-request deadline in milliseconds. 0 means no deadline.

Response

Rows of TradeTick:

FieldTypeDescription
ms_of_dayi32Milliseconds since midnight Eastern Time.
sequencei32Exchange-assigned trade sequence number.
ext_condition1i32Additional trade condition code.
ext_condition2i32Additional trade condition code.
ext_condition3i32Additional trade condition code.
ext_condition4i32Additional trade condition code.
conditioni32Trade condition code.
sizei32Number of contracts or shares traded.
exchangei32Exchange code where the trade executed.
pricef64Trade price.
condition_flagsi32Trade condition flags bitmap.
price_flagsi32Trade price flags bitmap.
volume_typei32Volume reporting mode: 0 = incremental, 1 = cumulative.
records_backi32Offset of this record behind the most recent record.
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.