US Options Security Master
Root-level reference catalogue of listed and delisted OPRA option roots. One row per option root security (ASID) with underlying, option and settlement type, exercise style, weekly flag, close time, listing status, trade-date ranges and whether analytics exist. It defines the root, not individual strikes or expirations.
How to use it
Effective-dated contract reference data. Adjusted (non-standard) contracts carry a modified deliverable; use the OCC settlement details rather than the standard 100-share multiplier for them.
Typical use
Contract identity, lifecycle, and adjusted-deliverable handling for US-listed options.
Limitations
Vendor-curated reference data: rows can be restated when AlgoSeek learns of a late or corrected event, so land each delivery as a snapshot rather than overwriting history. Root-level only: no strike, expiration or call/put. A bar/OI/analytics row is tied to a root via its Ticker (assumed to equal OptionTicker; the guide does not say so) and a trade date inside OptionTradeDates. Effective dating: OptionTradeDates holds one or more 'start:end' periods separated by ';' (example 20120103:20130318;20130415:29991231); end 29991231 means still active/no end date. A new range is created when the gap between consecutive dates exceeds 7 days. Because tickers are reused (guide example: S for Sprint Nextel, Sprint, then SentinelOne), resolving ticker -> ASID needs a trade date via the lookup file opt_ticker_to_asid.csv (columns ASID, OptionTicker, UnderTicker, UnderSecId, OptionTradeDates). ASID assignment: test tickers keep one ASID for all history. Non-standard (adjusted) tickers get a new ASID if the underlying ticker changes, the underlying SecId changes, or there is no underlying SecId / it stopped trading, for each new date range. Standard tickers get a new ASID if the underlying ticker or SecId changes or two date ranges are 30 or more days apart.
Coverage
All listed and delisted OPRA options on stocks, ETFs, ETNs, indexes and currencies (UnderType S, I, F). Guide says 2012 to present; product page says 2015 to present; sample OptionTradeDates start 20120103.
Usage constraints
- Licensed vendor data: never export raw rows to a tenant-local destination or include them verbatim in a public artifact; serve only through entitlement-checked platform reads.
- Do not treat the vendor's `Ticker` as a stable identity across time; join on an AlgoSeek security key (SecId or ASID, which are distinct) or the platform symbol mapping.
Known issues (8)
- Documentation discrepancyHistory start: page says 2015 to present, guide says 2012 to present, and sample OptionTradeDates begin 20120103.
- Documentation discrepancyPage says the ASID stays stable throughout the lifecycle of an option root; guide intro says it 'remains unchanged during specific contract expiration' (wording copied from contract master) and Appendix A shows ASIDs change when the underlying ticker/SecId changes or after gaps.
- Documentation discrepancyGuide names the file eq_opt_sec_master.csv; the published sample is opt_sec_master.csv.
- Documentation discrepancyGuide text says 'Table 4 below' before the settlement-type table, which is numbered Table 5.
- Documentation discrepancyGuide UnderTradeDates doc type shows a single 'yyyymmdd:yyyymmdd' range while OptionTradeDates allows ';'-separated multiple ranges.
- Documentation discrepancySample has two rows (ABAT, ABKFQ, both delisted) with blank UnderTicker, UnderType, OptionType, OptionStyle, IsWeekly, MarketClose, SettlType, UnderSecId, UnderTradeDates and GreeksCoverage = N; all 98 other rows are stock/vanilla/American/16:00/PM. Sample SettlTicker is blank in all 100 rows.
- Documentation discrepancyASID doc type is string here but integer in the OPRA Contracts Security Master guide.
- Documentation discrepancyGuide columns match the 15-column sample header exactly, in the same order.
15 columns in delivery order · file or table name opt_sec_master. Types are ODCS logical types; the format line shows how values are written.
| Column | Type | Key | Description |
|---|---|---|---|
| ASID | string16-digit identifier, e.g. 1110000000001005 | Key 1 · Required | algoseek unique option root security identifier Missing values: Never · Source: vendor guide and sample |
| OptionTicker | string | Required | Option root ticker (e.g. AAPL, SPXW); the same ticker can map to different ASIDs over time Missing values: Never · Source: vendor guide and sample |
| UnderTicker | string | Ticker of the underlying security Missing values: Blank · Source: vendor guide and sample | |
| UnderType | string · enum (3) | Type of underlying Missing values: Blank · Source: vendor guide and sample 3 allowed values
| |
| OptionType | string · enum (2) | Option type Missing values: Blank · Source: vendor guide and sample 2 allowed values
| |
| OptionStyle | string · enum (2) | Exercise style Missing values: Blank · Source: vendor guide and sample 2 allowed values
| |
| IsWeekly | string · enum (2) | Whether the root covers only weekly options Missing values: Blank · Source: vendor guide and sample 2 allowed values
| |
| MarketClose | timeHH:MM | Market close time for this root symbol (16:00 or 16:15 in guide/sample) Missing values: Blank · Source: vendor guide and sample | |
| SettlType | string · enum (2) | Settlement type of the option Missing values: Blank · Source: vendor guide and sample 2 allowed values
| |
| SettlTicker | string | Ticker providing the price used for the exercise-settlement amount (e.g. SPX for SPXW) Missing values: Blank · Source: vendor guide and sample | |
| OptionTradeDates | stringstart:end periods separated by ';', end 29991231 = still active | Date range(s) during which this option root ASID traded Missing values: Never · Source: vendor guide and sample | |
| OptionListStatus | string · enum (2) | Required | Current list status of the root Missing values: Never · Source: vendor guide and sample 2 allowed values
|
| UnderSecId | integeri64 | algoseek unique equity security identifier (SecId) of the underlying Missing values: Blank · Source: vendor guide and sample | |
| UnderTradeDates | stringstart:end, end 29991231 = still active | Start and end dates of the underlying SecId Missing values: Blank · Source: vendor guide and sample | |
| GreeksCoverage | string · enum (2) | Whether algoseek provides analytics (Daily Analytics) for this root Missing values: Never · Source: vendor guide and sample 2 allowed values
|
- errorrow_count_positivecompleteness
Every delivered partition (trade date, or snapshot) carries at least one row.
rowCount must be greater than 0
- errorprimary_key_uniqueuniqueness
The declared primary key is unique within each delivered partition (one file or table snapshot).
duplicateValues (properties: ASID) must be 0
Delivery
S3 flat files
AlgoSeek flat-file delivery (the layout the schema below describes).
- Layout:
- Single flat CSV (guide names it eq_opt_sec_master.csv; published sample is opt_sec_master.csv) delivered as one consolidated file, one row per option root ASID. Companion lookup file opt_ticker_to_asid.csv maps ASID <-> option ticker, underlying ticker, underlying SecId and trade dates. Compression not stated.
- Compression:
- gzip
- Access:
- Bucket access is granted per subscription; bucket names arrive with license provisioning.
REST API
AlgoSeek Datasets REST API (X-API-KEY header; JSON, CSV or gzipped CSV). Returns AlgoSeek's normalized API layout, which differs from the flat-file columns in this contract's schema.
https://api.algoseek.com/v1/data/us-equity-opt-ref/sec-master
- Authentication:
- X-API-KEY header issued by AlgoSeek
- Response formats:
- json, csv, csv_gzip
- Pagination:
- offset + limit; tick endpoints take trade_date and identifier (Ticker or ASID) in the path
Service levels
- History starts
- 2012-01-01
- First trade date of the vendor history.
- Update frequency
- Daily
- Retention
- Bounded by the license term
- Retention of landed copies is bounded by the AlgoSeek license; purge on termination.
Service levels describe the vendor feed as documented. They are draft values, not a commitment by AlphaSwarm.
Data Contract Editor · read-only preview — edits are not saved
Open-source Data Contract Editor (MIT). Changes stay in this browser tab: Cancel restores the published contract, and Download copy saves your edited YAML to your device only.
Contracts follow the Open Data Contract Standard (Bitol, LF AI & Data).
Vendor names are trademarks of their owners.