Skip to content
OptionData

Get 50% off on all plans for the first year – contact sales for a promotional code.

Option chain API

Option Chain API for U.S. Stock Options

Option chain API for full U.S. stock option chains in one POST: strikes, expirations, bid, ask, last price, volume, open interest, implied volatility, and Greeks for the latest session or any historical trading day.

option chain apioptions data apistock options apioptions market dataoption chain data

Whole-chain REST responses

Request a symbol and receive calls and puts across expirations and strikes without stitching many contract calls together.

Complete market context

Responses include bid, ask, last price, volume, open interest, implied volatility, and Greeks for option-chain analysis.

Latest or historical chains

Use the newest available session for live products or specify a past trading date for backtests and research.

Best for

  • Options chain tables and screeners
  • Volatility surface workflows
  • Strategy builders and payoff tools
  • Historical chain research

Common API questions

Can I get a complete option chain from one API call?

Yes. The option-chain endpoint returns calls and puts across strikes and expirations for a requested U.S. equity symbol.

What fields are included in the option chain API?

The API includes strike, expiration, call/put type, bid, ask, last price, volume, open interest, implied volatility, and Greeks where available.

Can I request a historical option chain?

Yes. You can request the latest available chain or provide a historical trading date for research and backtesting.

How often does option-chain data update, and how often should I poll?

Current-session responses can reflect intraday updates for contracts that trade. Poll broad or full-chain requests about every 5 minutes; for a narrow symbol, expiry, or strike range, every 1-2 minutes is reasonable.

Is full option-chain data available over WebSocket?

No. Full option-chain data is available through the REST API. The OptionData WebSocket feed provides realtime options trades and flow, not full option-chain snapshots.

What do trading_date and as_of mean?

trading_date identifies the market session returned. as_of is the UTC timestamp of the latest data update represented in the response and should be used to evaluate freshness.

How the option chain API works

POST JSON or form fields to https://www.optiondata.io/api/option-chain with a required symbol. Optional filters include date, expiration_date, put_call, strike ranges, and include_flow.

Responses return { status, data[], meta } with contract rows (OCC option_symbol, bid/ask/mark/close, OI, IV, Greeks). trading_date and as_of describe the session and freshness.

Full chains are REST-only — the WebSocket is for trade flow, not whole-chain snapshots. Poll roughly every 1–5 minutes depending on breadth. Trial and active realtime plans include chain access.

Option chain API reference · All API docs · openapi.json

Example: latest SPY chain snapshot
curl -X POST 'https://www.optiondata.io/api/option-chain' \
  -H 'Content-Type: application/json' \
  -d '{
    "api_key": "YOUR_API_KEY",
    "symbol": "SPY",
    "include_flow": false
  }'

Core chain fields

option_symbol / put_call / strike / expiration_date
Contract identity
bid / ask / mark / close
Quotes; mark is mid with fallback to last trade
open_interest / volume / implied_volatility
Liquidity and IV context
delta / gamma / theta / vega
Greeks when available