CuteMarkets Docs

API Reference

Everything you need to integrate market data, build faster, and scale.

Tip: open /docs/option-chain.md directly for raw markdown (easy copy/paste into an LLM).

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=2

Endpoint

bash
GET /v1/options/chain/{ticker}

Path parameters

ParameterTypeRequiredDescription
tickerstringYesUnderlying symbol (for example NFLX or AAPL).

Query parameters

ParameterTypeRequiredDescription
strike_pricenumberNoExact strike filter.
expiration_datestringNoExpiration date, YYYY-MM-DD.
contract_typestringNoFilter by type (for example call or put).
strike_price.gtenumberNoStrike greater than or equal.
strike_price.gtnumberNoStrike greater than.
strike_price.ltenumberNoStrike less than or equal.
strike_price.ltnumberNoStrike less than.
expiration_date.gtestringNoExpiration on or after this date (YYYY-MM-DD).
expiration_date.gtstringNoExpiration after this date.
expiration_date.ltestringNoExpiration on or before this date.
expiration_date.ltstringNoExpiration before this date.
sortstringNoField used for ordering.
orderstringNoSort direction for sort.
limitintegerNoMaximum contracts returned. Default 10, maximum 100.
pagestringNoPagination continuation: use the URL in next_url, or pass the page query value from that URL here.

Response

Top-level fields:

FieldTypeDescription
statusstringOutcome of the request (for example OK).
request_idstringUnique identifier for this request, assigned by CuteMarkets.
resultsarraySnapshot objects, one per contract.
next_urlstringWhen more contracts exist for the query, full URL for the next page.

Each element of results may include:

FieldTypeDescription
break_even_pricenumberUnderlying price at which the position breaks even (call: strike + premium; put: strike − premium).
dayobjectLatest daily bar: open, high, low, close, volume, VWAP, change fields, last_updated (nanoseconds).
detailsobjectticker, contract_type, exercise_style, expiration_date, strike_price, shares_per_contract.
greeksobjectdelta, gamma, theta, vega when available; some deep ITM or illiquid lines may omit values.
implied_volatilitynumberIV implied by the option price, when available.
last_quoteobjectLatest quote (bid/ask, sizes, exchanges, midpoint, last_updated, timeframe) when quotes are enabled for your plan.
last_tradeobjectLatest trade when your plan includes trade data: price, size, exchange, sip_timestamp, conditions, timeframe, and related fields.
open_interestnumberOpen interest.
underlying_assetobjectUnderlying: ticker, price, change_to_break_even, last_updated, timeframe.
fmvnumberFair market value estimate when your tier includes it.
fmv_last_updatedintegerNanosecond timestamp of last FMV update when fmv is present.

Example requests

bash
curl \
  "https://api.cutemarkets.com/v1/options/chain/NFLX/?limit=2" \
  -H "Authorization: Bearer YOUR_API_KEY"

Filtered chain (example):

bash
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):

bash
curl \
  "https://api.cutemarkets.com/v1/options/chain/NFLX/?limit=100" \
  -H "Authorization: Bearer YOUR_API_KEY"

Sample response

Sample with two results.

bash
{
  "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_price and filter by contract_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.

Next steps

Move from the docs into the product workflow

If you are evaluating the API rather than implementing a specific endpoint right now, the product pages map live and historical workflows for stocks, options, and WebSockets.