Raw enriched trades for a contract
https://flow-api.skylit.ai/v1/contract/{symbol}/tradesSame enriched trade shape as /v1/underlying/{ticker}/trades,
scoped to a single OPRA contract. Because the contract is fixed,
chain-level filters (moneyness, strike, DTE, expiration) do not
apply here.
Authorization
Authorization: Bearer <your API key>Required. A missing header returns 401; an invalid, revoked or expired key returns 403.
Path parameters
symbolstringrequiredOPRA option symbol in URL-safe form:
{ticker}__{YYMMDD}{C|P}{strike×1000, 8 digits}— the ticker and the 15-character contract block are joined by a double underscore (__). For example, an AAPL $250 call expiring 2026-01-17 isAAPL__260117C00250000. (A space-padded 21-char OCC form such asAAPL 260117C00250000is also accepted on some endpoints, but the__form is canonical and works across all contract routes.)
Query parameters
startstringLower time bound — RFC 3339 or Unix seconds. Defaults to start-of-trading-day.
endstringUpper time bound — RFC 3339 or Unix seconds. Defaults to now.
limitintegerdefault50min 1 · max 500only_sweepsbooleanonly_multi_legbooleanexclude_multi_legbooleanmin_premiumnumberdoublemin 0
Responses
- 200
Enriched trades for the contract.
- 400
Request validation failed.
- 401
Missing or invalid API key.
- 402
The account's shared Skylit credit balance is lower than this route's cost. Top up to continue. Carries
X-Credits-Remaining: 0. - 429
Per-minute rate limit exceeded.
Response fields
dataobject[]requireddateintegerrequiredDays since 1970-01-01 (compact session date).
tsEventintegerint64requiredTrade event timestamp in milliseconds since epoch.
tsEventUsintegerint64Microsecond-precision timestamp (contract-trades endpoint only).
instrumentIdintegerint64requiredrawSymbolstringrequiredtickerstringrequiredexpirationintegerrequiredExpiration as days since 1970-01-01.
strikenumberdoublerequiredrightstringrequiredCPdteintegerrequiredpricenumberdoublerequiredsizeintegerrequiredsidestringrequiredGranular execution-side label —
BB(below bid),B(bid),AB(above bid),M(mid),BA(below ask),A(ask),AA(above ask), orN(no BBO).BBBABMBAAAANpublisherIdintegerrequiredbidPxnumberdoubleaskPxnumberdoublebidSzintegeraskSzintegerneutralSzintegerrequiredtotalPremiumnumberdoublerequiredspreadnumberdoubleunderlyingPricenumberdoublerequiredivnumberdoublemoneynessstringrequiredITMATMOTMmoneynessPercentnumberdoublerequiredopenInterestintegerrequiredprevOiintegerrequiredprevClosenumberdoubleprevCloseAgeintegerTrading days back the
prevClosecame from (0 = yesterday).priceChangenumberdoubledailyVolumeintegerrequiredsweepTradebooleanrequiredblockTradebooleanrequiredmultiLegbooleanrequiredivDirectionintegerrequired-1 = down, 0 = flat/unknown, 1 = up.
-101ingestionTimestampintegerint64requiredServer ingest time in milliseconds since epoch.
prevIvnumberdoublenextIvnumberdoublepremiumPercentileintegerBucketed premium percentile band (0 = below P50, 99 = P99+).
05075909599flowScoreintegerchainBidPctnumberdoublechainAskPctnumberdoublecontractBidPctnumberdoublecontractAskPctnumberdoubleaggCountintegeraggTotalPremiumnumberdoubleaggTotalSizeintegermlSiblingbooleanTrue when this leg was included via spread association rather than its own filter match.
strategyGroupIdstringstrategyTypestringstrategyLegCountintegerearningsDteintegernextEarningsDateintegercacheMissbooleansectorstringindustrystring
metaobjectrequiredtimestampstringdate-timerequiredServer-side timestamp the response was generated at.
requestIdstringrequiredShort opaque ID for log correlation.
Last updated