Returns a snapshot of options contracts for one underlying equity: per-contract pricing context, Greeks, implied volatility, open interest, latest quote and trade (when your plan includes them), and underlying reference. Use it for chain overviews, comparing strikes and expirations, research, and strategy work.
If you are still learning what the columns mean, read How to Read an Options Chain and Options Greeks Explained first.
For one contract by underlying + OCC ticker, use Contract snapshot instead.
Example Endpoint
/v1/options/chain/NFLX/?limit=2Endpoint
GET /v1/options/chain/{ticker}
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ticker | string | Yes | Underlying symbol (for example NFLX or AAPL). |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
strike_price | number | No | Exact strike filter. |
expiration_date | string | No | Expiration date, YYYY-MM-DD. |
contract_type | string | No | Filter by type (for example call or put). |
strike_price.gte | number | No | Strike greater than or equal. |
strike_price.gt | number | No | Strike greater than. |
strike_price.lte | number | No | Strike less than or equal. |
strike_price.lt | number | No | Strike less than. |
expiration_date.gte | string | No | Expiration on or after this date (YYYY-MM-DD). |
expiration_date.gt | string | No | Expiration after this date. |
expiration_date.lte | string | No | Expiration on or before this date. |
expiration_date.lt | string | No | Expiration before this date. |
sort | string | No | Field used for ordering. |
order | string | No | Sort direction for sort. |
limit | integer | No | Maximum contracts returned. Default 10, maximum 100. |
page | string | No | Pagination continuation: use the URL in next_url, or pass the page query value from that URL here. |
Response
Top-level fields:
| Field | Type | Description |
|---|---|---|
status | string | Outcome of the request (for example OK). |
request_id | string | Unique identifier for this request, assigned by CuteMarkets. |
results | array | Snapshot objects, one per contract. |
next_url | string | When more contracts exist for the query, full URL for the next page. |
Each element of results may include:
| Field | Type | Description |
|---|---|---|
break_even_price | number | Underlying price at which the position breaks even (call: strike + premium; put: strike − premium). |
day | object | Latest daily bar: open, high, low, close, volume, VWAP, change fields, last_updated (nanoseconds). |
details | object | ticker, contract_type, exercise_style, expiration_date, strike_price, shares_per_contract. |
greeks | object | delta, gamma, theta, vega when available; some deep ITM or illiquid lines may omit values. |
implied_volatility | number | IV implied by the option price, when available. |
last_quote | object | Latest quote (bid/ask, sizes, exchanges, midpoint, last_updated, timeframe) when quotes are enabled for your plan. |
last_trade | object | Latest trade when your plan includes trade data: price, size, exchange, sip_timestamp, conditions, timeframe, and related fields. |
open_interest | number | Open interest. |
underlying_asset | object | Underlying: ticker, price, change_to_break_even, last_updated, timeframe. |
fmv | number | Fair market value estimate when your tier includes it. |
fmv_last_updated | integer | Nanosecond timestamp of last FMV update when fmv is present. |
Example requests
curl \
"https://api.cutemarkets.com/v1/options/chain/NFLX/?limit=2" \
-H "Authorization: Bearer YOUR_API_KEY"
Filtered chain (example):
curl \
"https://api.cutemarkets.com/v1/options/chain/NFLX/?contract_type=call&limit=50&sort=strike_price&order=asc" \
-H "Authorization: Bearer YOUR_API_KEY"
Higher limit (up to 100):
curl \
"https://api.cutemarkets.com/v1/options/chain/NFLX/?limit=100" \
-H "Authorization: Bearer YOUR_API_KEY"
Sample response
Sample with two results.
{
"results": [
{
"break_even_price": 100.025,
"day": {
"change": -0.08,
"change_percent": -80,
"close": 0.02,
"high": 0.15,
"last_updated": 1775016000000000000,
"low": 0.02,
"open": 0.11,
"previous_close": 0.1,
"volume": 11788,
"vwap": 0.03614
},
"details": {
"contract_type": "call",
"exercise_style": "american",
"expiration_date": "2026-04-02",
"shares_per_contract": 100,
"strike_price": 100,
"ticker": "O:NFLX260402C00100000"
},
"greeks": {
"delta": 0.02481795338171621,
"gamma": 0.022072818287936315,
"theta": -0.13121396656786571,
"vega": 0.0019964356066287225
},
"implied_volatility": 0.6950024226241469,
"last_quote": {
"ask": 0.03,
"ask_size": 486,
"ask_exchange": 309,
"bid": 0.02,
"bid_size": 238,
"bid_exchange": 322,
"last_updated": 1775072652441254747,
"midpoint": 0.025,
"timeframe": "REAL-TIME"
},
"last_trade": {
"sip_timestamp": 1775073506446593186,
"conditions": [
227
],
"price": 0.02,
"size": 50,
"exchange": 312,
"timeframe": "REAL-TIME"
},
"open_interest": 14078,
"underlying_asset": {
"change_to_break_even": 5.235,
"last_updated": 1775123022067431274,
"price": 94.79,
"ticker": "NFLX",
"timeframe": "DELAYED"
}
},
{
"break_even_price": 97.255,
"day": {
"change": -0.45,
"change_percent": -65.2,
"close": 0.24,
"high": 1.11,
"last_updated": 1775016000000000000,
"low": 0.16,
"open": 0.91,
"previous_close": 0.69,
"volume": 11096,
"vwap": 0.3416
},
"details": {
"contract_type": "call",
"exercise_style": "american",
"expiration_date": "2026-04-02",
"shares_per_contract": 100,
"strike_price": 97,
"ticker": "O:NFLX260402C00097000"
},
"greeks": {
"delta": 0.18593220522845647,
"gamma": 0.10775236828790113,
"theta": -0.5784063493211438,
"vega": 0.010167595059336215
},
"implied_volatility": 0.6600286584180963,
"last_quote": {
"ask": 0.27,
"ask_size": 63,
"ask_exchange": 318,
"bid": 0.24,
"bid_size": 60,
"bid_exchange": 315,
"last_updated": 1775073599203471487,
"midpoint": 0.255,
"timeframe": "REAL-TIME"
},
"last_trade": {
"sip_timestamp": 1775073599506207795,
"conditions": [
209
],
"price": 0.24,
"size": 1,
"exchange": 309,
"timeframe": "REAL-TIME"
},
"open_interest": 13473,
"underlying_asset": {
"change_to_break_even": 2.465,
"last_updated": 1775123022067431274,
"price": 94.79,
"ticker": "NFLX",
"timeframe": "DELAYED"
}
}
],
"status": "OK",
"request_id": "cm_adce10cb073745c7b859fc8131b203b0"
}
Related workflow pages
How to use chain snapshots well
The chain endpoint is the right starting point when the application needs to compare many contracts at once. A scanner can filter by expiration, strike range, contract type, delta, implied volatility, open interest, volume, or bid/ask width after the response arrives. A strategy builder can use the chain to choose candidate legs, then request historical quotes, trades, or aggregates for the exact OCC tickers that survive the filter.
Keep the chain request narrow enough for the job. If a user has already selected an expiration, pass expiration_date instead of loading every listed contract. If the workflow only needs calls near the money, use contract_type=call and a strike range. Narrow requests make the UI faster and reduce the chance that pagination splits a user-visible chain across multiple pages.
Do not treat every field as equally fresh. The underlying price, latest quote, latest trade, open interest, and daily bar can have different update behavior and plan-dependent freshness. When a chain powers an order-ticket-like UI or a backtest, display or store the relevant timestamp fields beside the values. That is especially important for short-dated options where stale quotes and wide spreads can change the conclusion.
Common chain patterns
- Expiration table: fetch listed expirations first, then request one expiration at a time.
- Strike ladder: sort by
strike_priceand filter bycontract_type. - Liquidity scan: combine open interest, volume, quote freshness, and spread width.
- Greeks screen: filter the chain response by delta, gamma, theta, or vega after checking liquidity.
- Backtest setup: use the chain to select a contract, then use historical quotes for fill evidence.
The main rule is simple: use the chain for selection, then use contract-specific endpoints for proof. A chain snapshot tells you which contracts are interesting now; historical quotes and trades tell you what was available at the timestamp your model is trying to reconstruct.