Options chain API

Options Chain API for expiry selection, strike discovery, and live contract context

CuteMarkets provides an options chain API that returns chain snapshots with Greeks, implied volatility, open interest, and the latest quote and trade, plus expiration lookups and reference workflows.

Quick answer

An options chain API returns the listed contracts for an underlying, usually grouped by expiration, strike, call/put type, and market context. CuteMarkets chain snapshots include Greeks, implied volatility, open interest, latest quote and trade context, and underlying price in one response.

Real-time dataHistorical market dataQuotes & tradesAggregates & indicators

Why teams use it

What teams need from an options chain API

Each capability below is tied to a specific decision a developer has to make before shipping a scanner, dashboard, or research workflow.

Full chain in one request

See the listed contracts for an underlying without stitching many point queries together.

Greeks, IV, and open interest

Filter chain results on the fields researchers and product teams usually care about first.

Quote and trade context

Move beyond a static chain surface by including the latest market context in the same payload.

Expiration lookup

Populate expiry selectors and avoid requesting dates with no listed contracts.

Contract detail follow-up

Pivot from the chain into a focused single-contract snapshot when a workflow narrows to one strike.

Developer-friendly docs

Open the specific chain docs and examples quickly.

Chain workflow map

How to move from an underlying ticker to an auditable option candidate

An options chain API is strongest when the page teaches the full decision path: discover listed expirations, load a complete chain surface, apply scanner vocabulary, reject weak rows, and only then inspect one contract with quote, trade, and historical evidence.

FactorPage-specific guidanceAPI implementation
Expiration and DTEStart with listed expirations instead of hard-coded dates, then tag 0DTE, weekly, monthly, quarterly, LEAPS, and event windows by days to expiration.Request expirations first, pass `expiration_date` into the chain endpoint, and persist DTE beside the row before strategy filters run.
Strike and moneynessSeparate ITM, ATM, and OTM contracts with underlying price, strike, side, delta, and distance-from-spot so rows are not ranked out of context.Store underlying price, strike, contract type, delta, moneyness band, and distance percentage in the scanner artifact.
Liquidity and spreadVolume, open interest, premium, bid, ask, midpoint, minimum bid, spread width, and spread percent are different terms and need different thresholds.Rank after the full page set is loaded, then reject no-bid rows, crossed or locked markets, stale quotes, and spreads that exceed the model policy.
Quote and trade conditionsA latest quote or last print is not enough unless the condition code, correction context, exchange id, and timestamp semantics are preserved.Carry quote condition, trade condition, correction, exchange, sequence, and quote age into follow-up quote or trade windows.
Historical handoffA current chain identifies live candidates. Historical research must rebuild the contract universe and quote window at the decision timestamp.Use `as_of` contract discovery, historical quotes, historical trades, aggregates, and replay artifacts before calling a backtest fill valid.

Developer examples

Two code paths teams usually need first

Request 01

chain snapshot

chain snapshot
curl "https://api.cutemarkets.com/v1/options/chain/AAPL/?expiration_date=2026-01-16&limit=25" \
  -H "Authorization: Bearer YOUR_API_KEY"

Request 02

expiration lookup

expiration lookup
curl "https://api.cutemarkets.com/v1/tickers/expirations/AAPL/" \
  -H "Authorization: Bearer YOUR_API_KEY"

Chain context

A chain endpoint is the beginning of a scanner, not the whole workflow

The Options Chain API should be read with options chain scanner architecture, options volume and open interest, and options-flow false positives. Those pages explain why volume, OI, premium, IV, Greeks, DTE, moneyness, spread percent, and quote age all need separate labels in scanner output.

When a row looks interesting, the workflow should drill into contract snapshots, historical options quotes, options trades, quote and trade condition codes, or the quote versus trade timeline tool rather than treating the latest chain row as execution proof.

Scanner education

The long-form quote-aware chain scanner guide and the unusual activity scanner guide give developers the implementation detail behind this page.

Endpoint handoff

When a chain snapshot is enough and when it is not

DecisionUse chain snapshot?Better next endpoint
Build a strike tableYes. The chain is the primary breadth view.Option chain.
Populate an expiration selectorNot first. The app needs listed dates.Expirations.
Refresh one selected legUsually no. The chain is broader than needed.Contract snapshot.
Rank by current IV or deltaYes, after pagination and filters are complete.Option chain plus contract snapshot for selected rows.
Simulate a historical fillNo. Latest chain state is not fill evidence.Contracts with `as_of`, then historical quotes.
Validate unusual activityPartly. Chain context helps, but prints matter.Trades, quotes, open interest, and chain.

Scanner filters

Fields a serious options chain scanner should expose

FilterWhy it belongsImplementation note
DTE and expirationSeparates 0DTE, weekly, monthly, and longer-dated workflows.Fetch listed expirations first, then request chains by selected date.
Moneyness or deltaKeeps the candidate set tied to the strategy intent.Use underlying price, strike, contract side, and Greeks when available.
Spread percentPrevents low-premium contracts from ranking above tradable contracts.Compute from bid and ask where quote fields are entitled and fresh.
Open interest and volumeShows participation without treating activity as execution quality.Use as prefilters, then confirm quote and trade evidence.
Quote freshnessStops stale rows from triggering alerts or screenshots.Store latest quote timestamp and compare it to the scanner decision time.
Pagination statusFull chains can be paginated.Do not rank a chain until the requested surface is fully loaded or marked incomplete.

Chain expertise

A chain guide teaches scanner architecture beyond listed fields

The best chain content explains how a developer turns a full surface into a safe candidate set. That means expiration selection, pagination, strike filters, DTE buckets, moneyness bands, liquidity gates, quote freshness labels, and a clear handoff to quotes, trades, snapshots, and historical contracts.

Load the calendar first

Expiration discovery makes the chain request explicit and separates 0DTE, weekly, monthly, quarterly, LEAPS, and event-specific expiries before a strike table appears.

Filter for usable candidates

Moneyness, DTE, delta, gamma, theta, vega, IV, open interest, same-day volume, volume/OI ratio, spread percent, minimum bid, and quote freshness should be visible in the scanner model.

Do not backtest from latest state

A current chain can select today's contracts for a live scanner. Historical research should switch to contracts with `as_of` and historical quote windows.

Liquidity language

Chain rows need bid/ask, print, and condition-code vocabulary

A useful chain row keeps quote state, trade state, and derived analytics separate. The same contract can have attractive volume but a no-bid exit, a wide spread, a stale quote, or a trade condition that makes the latest print weak evidence.

Quote context

Bid, ask, midpoint, spread width, spread percent, quote timestamp, quote condition, exchange id, and stale-quote status explain whether the displayed market is usable.

Trade context

Last price, size, premium, trade condition, correction flag, sequence number, and exchange context explain what printed without pretending it is a current executable market.

Scanner reject terms

No bid, crossed market, locked market, wide spread, stale quote, missing Greek, missing OI, incomplete pagination, and failed entitlement checks should be saved as explicit reject reasons.

State management

Production chains need pagination, freshness, and audit terms

Full chains can be large, live state can age quickly, and plan boundaries can change which fields are available. Developers should log state terms beside the market values so scanner decisions remain explainable.

Completeness state

Record requested expiration, contract side, strike range, page size, next cursor, loaded row count, and incomplete-chain state before ranking the results.

Freshness state

Attach snapshot timestamp, latest quote timestamp, latest trade timestamp, live/delayed label, cache age, and backfill status to every selected row.

Audit state

Save the request URL, underlying price, selected OCC symbol, filters, reject reason, and follow-up quote or trade window for every alert candidate.

FAQ

Common questions about this options data API

What is an options chain API used for?

An options chain API is used to discover listed contracts for an underlying, inspect expiry and strike surfaces, and filter candidates by liquidity and option-specific fields.

Does CuteMarkets provide both real-time and historical options data?

Yes. CuteMarkets supports real-time snapshots and historical workflows across contracts, trades, quotes, aggregates, and expirations, with plan-specific live or delayed access.

Do you provide quotes, trades, and historical contracts?

Yes. The platform includes contracts, chain snapshots, contract snapshots, trade history, quote history, aggregates, and expiration lookups for U.S.-listed options.

Do you provide the earnings calendar too?

CuteMarkets provides the options data layer. Earnings timing should come from a dedicated earnings calendar source that you combine with the options data.

Build chain explorers and scanners without stitching multiple endpoints

Use the chain endpoint, expiration lookup, and contract detail flow together, then move directly into docs and signup when you are ready.