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.
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.
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.
| Factor | Page-specific guidance | API implementation |
|---|---|---|
| Expiration and DTE | Start 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 moneyness | Separate 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 spread | Volume, 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 conditions | A 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 handoff | A 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. |
Use cases
What you can build with this options data API
Chain scanners
Rank contracts by expiry, open interest, Greeks, or latest market context.
Open how-toStep 02UI components
Build chain explorers, strike pickers, and expiry widgets on top of a stable API surface.
Open how-toStep 03Event-driven workflows
Inspect the post-event chain before calculating implied moves or building spread candidates.
Open how-toStep 04Pre-trade filtering
Reject illiquid or structurally irrelevant contracts before a strategy proceeds to deeper pricing logic.
Open how-toDeveloper examples
Two code paths teams usually need first
Request 01
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
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
| Decision | Use chain snapshot? | Better next endpoint |
|---|---|---|
| Build a strike table | Yes. The chain is the primary breadth view. | Option chain. |
| Populate an expiration selector | Not first. The app needs listed dates. | Expirations. |
| Refresh one selected leg | Usually no. The chain is broader than needed. | Contract snapshot. |
| Rank by current IV or delta | Yes, after pagination and filters are complete. | Option chain plus contract snapshot for selected rows. |
| Simulate a historical fill | No. Latest chain state is not fill evidence. | Contracts with `as_of`, then historical quotes. |
| Validate unusual activity | Partly. Chain context helps, but prints matter. | Trades, quotes, open interest, and chain. |
Scanner filters
Fields a serious options chain scanner should expose
| Filter | Why it belongs | Implementation note |
|---|---|---|
| DTE and expiration | Separates 0DTE, weekly, monthly, and longer-dated workflows. | Fetch listed expirations first, then request chains by selected date. |
| Moneyness or delta | Keeps the candidate set tied to the strategy intent. | Use underlying price, strike, contract side, and Greeks when available. |
| Spread percent | Prevents low-premium contracts from ranking above tradable contracts. | Compute from bid and ask where quote fields are entitled and fresh. |
| Open interest and volume | Shows participation without treating activity as execution quality. | Use as prefilters, then confirm quote and trade evidence. |
| Quote freshness | Stops stale rows from triggering alerts or screenshots. | Store latest quote timestamp and compare it to the scanner decision time. |
| Pagination status | Full 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.
Evaluate and compare
Why chain snapshots alone are not enough
An options chain API is often the first endpoint teams touch, but chain snapshots become much more useful when they are paired with contract detail, quote/trade context, and expiration lookup.
Open next
Docs and research for the next step
Docs to open next
Relevant API docs
Tutorials and research
Related articles
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.