Historical Optionable Tickers

The Historical Optionable Tickers dataset captures the point-in-time universe of U.S. equities with listed options chains.

It is a monthly snapshot of stocks with available options contracts, enriched with structural expiration information to help traders construct optionable universes with precision.

Each record reflects the option listing structure as it existed on the first trading day of the respective month.

Why it’s useful

Use this dataset to:

  • Construct historically accurate optionable universes

  • Filter equities by expiration density (weekly vs non-weekly structures)

  • Study the evolution of options availability over time

  • Backtest strategies that require confirmed option chain presence

  • Identify securities with robust weekly expiration coverage

This dataset is especially useful for systematic traders who need to avoid survivorship bias in options-based research.

Snapshot Methodology
  • Snapshots are taken on the first trading day of each month

  • Each snapshot reflects listed option expirations available at that time

  • Historical records correspond to the first trading day of their respective month

  • Records are point-in-time and do not retroactively change

Endpoint
Sample Request

Python

import requests

url = "https://api.alphanume.com/v1/optionable-tickers"
params = {
    "api_key": "alp_abc123"
}

r = requests.get(url, params=params)
print(r.json())

cURL

curl "https://api.alphanume.com/v1/optionable-tickers?api_key=alp_abc123"
Request Parameters
api_key (optional)

Your API key. Enables full dataset access and reduces per-request limits.
If omitted, a limited subset is returned.

date (optional)

Snapshot date (YYYY-MM-DD).
If omitted, all existing snapshots are returned.

Date Filtering

All dates must be provided in YYYY-MM-DD format.

Supported parameters:

  • date

  • date_gte

  • date_lte

  • date_gt

  • date_lt

Any logically valid combination is accepted.

If querying across all tickers without specifying a ticker, date ranges may be restricted depending on your access tier.

Example Response
{
  "count": 1,
  "has_more":false,
  "next_cursor":null,
  "data": [
    {
      "date": "2026-02-02",
      "ticker": "PFE",
      "avg_days_between": 7.0,
      "has_weeklies": 1
    }
  ]
}
Response Fields

Core Snapshot Fields (Point-in-Time)

Field

Type

Description

date

string

Snapshot date (first trading day of month)

ticker

string

Stock ticker

avg_days_between

float

Average number of days between the next 6 consecutive option expirations

has_weeklies

integer

Binary indicator (1 = multiple consecutive weekly expirations present, 0 = not present)

Field Definitions

avg_days_between

Represents the average number of days between the next six consecutive option expiration dates after the first week window (expirations 1 through 6).

Values close to 7 indicate dense weekly expiration structures.

Higher values indicate less frequent expiration spacing (e.g., biweekly or monthly listings).

This metric is useful for:

  • Identifying securities with robust weekly options coverage

  • Filtering for strategies that depend on short-dated expirations

  • Studying expiration structure evolution over time

has_weeklies

Binary indicator:

  • 1 → Multiple consecutive weekly expirations were listed at the snapshot date

  • 0 → Weekly expiration continuity was not present

This provides a simple filter for traders requiring consistent weekly option availability.

Pagination

The Optionable Tickers endpoint uses cursor-based pagination for efficient retrieval of large result sets.

Results are ordered deterministically:

ORDER BY date DESC, ticker DESC

This ensures stable, repeatable pagination across requests.

How Pagination Works

Each response includes:

  • count — number of rows returned in this page

  • has_more — whether additional data is available

  • next_cursor — cursor object to retrieve the next page

If has_more = true, use the next_cursor values in your next request.

Cursor Parameters

When paginating, you must provide both:

  • cursor_date

  • cursor_ticker

These must match the next_cursor object from the previous response.

Example:

requests.get("https://api.alphanume.com/v1/optionable-tickers?api_key=alp_abc123")
{
  "has_more": true,
  "next_cursor": {
    "date": "2026-01-02",
    "ticker": "TKO"
  }
}

Next request:

params = {
    "cursor_date": "2026-01-02",
    "cursor_ticker": "TKO"
}
requests.get("https://api.alphanume.com/v1/optionable-tickers?&cursor_date=2026-01-02&cursor_ticker=TKO&api_key=alp_abc123")

If only one cursor field is provided, the request will return a 400 error.

Notes on Data Behavior
  • Snapshots are taken on the first trading day of each month

  • Records are never retroactively altered

  • Each snapshot reflects only information known at that time

  • Historical records remain fixed once published

  • All dates are returned as YYYY-MM-DD strings

Typical Use Cases
  • Backtesting weekly options strategies without survivorship bias

  • Building a historical universe of optionable equities

  • Filtering cross-sectional universes by expiration density

  • Studying the expansion of weekly listings over time