Option contracts

Discover chains by underlying, expiration and strike; expired contracts remain addressable. Status is evaluated at effective_date. Covers equity and ETF options listed in the US, not index options. Contracts are American-style; a standard contract delivers 100 shares of its underlying and settles physically, while one adjusted by a corporate action (its OCC root is not the underlying's ticker) lists no deliverables and settlement unknown. Default order: id ascending. Omitting entity selectors returns the entitled universe; explicit unauthorized selectors return 403. Data is delivered from validated canonical batches; a connected dataset with nothing published for the key's markets yet returns 503. Access requires the operation capability on the API key.

GET/v1/options/contracts
Required capability
options.read
Data timing
End of day; quotes the next morning
Credits
50 credits per request.
Live endpoint. Request examples query live data with your API key; response examples are illustrative. History and coverage vary by dataset and plan; see dataset coverage.

Parameters

underlying_idsstringoptional · query
Underlying instrument IDs.
contract_idsstringoptional · query
Option instrument IDs.
typestringoptional · query
Option right.

callput

expiration_fromstringoptional · query
Inclusive expiration date.
expiration_tostringoptional · query
Inclusive expiration date; must be on or after expiration_from.
strike_minstringoptional · query
Inclusive strike in the contract currency.
strike_maxstringoptional · query
Inclusive strike; must be >= strike_min.
statusstringoptional · query
Defaults to active; all includes expired contracts.

activeexpiredall

effective_datestringoptional · query
Effective date, defaults to the UTC date of as_of. Returns the latest eligible snapshot on or before this date; response retains its actual snapshot date.
as_ofstringoptional · query
Knowledge cutoff as a UTC date (YYYY-MM-DD): the response reflects what was known by the end of that day. Defaults to now; cannot be in the future. A date from before the dataset's knowledge history returns 422 point-in-time-unavailable naming the earliest one, which GET /v1/datasets lists as earliest_as_of.
known_fromstringoptional · query
First UTC date (YYYY-MM-DD, inclusive) on which a revision became known.
known_tostringoptional · query
Last UTC date (YYYY-MM-DD, inclusive) on which a revision became known; on or after known_from.
orderstringoptional · query
Direction on id; ties use ID ascending.

ascdesc

Default: asc
limitintegeroptional · query
Maximum records per page.Default: 100
cursorstringoptional · query
Opaque cursor, expires after one hour; binds filters, order, resolved as_of, account/key and entitlement. Repeat the original query unchanged.
formatstringoptional · query
Response format. csv returns the data rows with a header row, for spreadsheet functions such as IMPORTDATA; nested fields become dotted columns and lists one JSON array cell, the next page cursor is returned in X-Next-Cursor and meta.errors in X-Meta-Errors. A result without rows is the header row alone, listing the documented fields of a row. Default json, or csv when format is omitted and the Accept header ranks text/csv above JSON; a format the Accept header does not admit returns 406 not-acceptable.

jsoncsv

Response fields

Returns data as an array of records. All example values are illustrative.

idstring
Record identifier, stable across revisions.
instrument_idstring
Opaque stable public identifier; never an internal database key.
underlying_instrument_idstring
Opaque stable public identifier; never an internal database key.
contract_symbolstring
Canonical option symbol.
typestring
Option right.

callput

strikeobject
strike
expiration_datestring
expiration date
exercise_stylestring
Exercise style.

americaneuropeanbermudanunknown

settlementstring
Settlement method.

physicalcashunknown

multiplierstring
Underlying units per standard contract.
deliverablesarray
deliverables
statusstring
Contract status: active until its expiration date, then expired; inactive is not used.

activeexpiredinactive

Response metadata

Responses include meta.timezone. Dataset responses include next_cursor; health and exports have their own metadata. Request tracing uses the X-Request-ID header.

Read the shared data conventions

When something goes wrong

An empty data: [] is a successful query with no matching records. Invalid symbols, permissions and malformed parameters produce an RFC 9457 problem with an actionable detail.

Error codes & retry guidance

Plans

Requires options.read. Access, recency and history depth come from the plan definitions the API enforces.

PlanAccessRecencyHistory
FreeNot included——
DeveloperNot included——
ProIncludedEnd of day; quotes the next morning15 years
CommercialIncludedEnd of day; quotes the next morningFull history
ScaleIncludedEnd of day; quotes the next morningFull history

History is how far back a plan may request. How far records actually go for a symbol is history_from in dataset coverage. Nothing is real-time. Compare plans