CBOE APIcboe.com ↗
Access CBOE delayed options chain data for equities, indices, and VX futures — including full Greeks, volume, and open interest — plus Rule 201 circuit breaker alerts.
What is the CBOE API?
The CBOE API exposes 3 endpoints covering delayed options chain data and regulatory alerts from cboe.com. The get_options_chain endpoint returns full call and put arrays with Greeks, pricing, volume, and open interest for equity symbols like SPY and AAPL, index symbols like SPX and VIX, and VX futures. A separate get_short_sale_circuit_breaker endpoint delivers Rule 201 short sale restriction alerts by year, including rescission status.
curl -X POST 'https://api.parse.bot/scraper/bb4298e7-0f8a-49f8-9476-a9065fe9a282/get_options_chain' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"symbol": "SPY"
}'Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace cboe-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.cboe_options_market_data_api import Cboe, OptionsChain, VxFuturesOptionsChain, CircuitBreakerReport, Option, Year, SymbolNotFound
cboe = Cboe()
# Fetch SPY options chain
chain = cboe.optionschains.get(symbol="SPY")
print(chain.symbol, chain.timestamp, chain.total_calls, chain.total_puts)
for call in chain.calls:
print(call.option_symbol, call.strike_price, call.bid, call.ask, call.iv, call.delta, call.volume)
for put in chain.puts:
print(put.option_symbol, put.strike_price, put.bid, put.ask, put.iv, put.delta, put.volume)
# Fetch short sale circuit breaker report using Year enum
report = cboe.circuitbreakerreports.get(year=Year.Y2025)
print(report.year, report.total_alerts, report.ttl)
for alert in report.alerts:
print(alert.symbol, alert.security_name, alert.exchange, alert.start_time, alert.is_rescinded)
# Fetch VX futures options
vx_chain = cboe.vxfuturesoptionschains.get(futures_symbol="VXN26")
print(vx_chain.futures_symbol, vx_chain.contract_month, vx_chain.contract_year, vx_chain.total_options)
for call in vx_chain.calls:
print(call.option_symbol, call.expiration_date, call.strike_price, call.theta, call.gamma)
Retrieve detailed options chain data for equities, indices, and VX futures. Returns all option contracts with full Greeks, pricing, and volume data. Supports equity symbols (SPY, AAPL), index symbols (SPX, VIX, NDX - auto-prefixed with underscore), and caret-prefixed symbols (^SPX). Each option includes IV, Delta, Gamma, Theta, Vega, Rho, bid/ask, volume, and open interest. Paginates internally; the full chain is returned in one response.
| Param | Type | Description |
|---|---|---|
| symbolrequired | string | Ticker symbol. Equities: SPY, AAPL, MSFT. Indices: SPX, VIX, NDX (auto-prefixed with underscore). Also accepts ^SPX format. |
{
"type": "object",
"fields": {
"puts": "array - List of put option objects with Greeks, pricing, and volume",
"calls": "array - List of call option objects with Greeks, pricing, and volume",
"symbol": "string - Original symbol input (uppercased)",
"timestamp": "string - Data timestamp",
"total_puts": "integer - Number of put options",
"total_calls": "integer - Number of call options",
"total_options": "integer - Total number of option contracts",
"normalized_symbol": "string - Symbol as sent to API (e.g., _SPX for indices)"
},
"sample": {
"data": {
"puts": [
{
"iv": 0,
"ask": 0.01,
"bid": 0,
"rho": 0,
"vega": 0,
"delta": 0,
"gamma": 0,
"theta": 0,
"volume": 239,
"option_type": "Put",
"strike_price": 500,
"open_interest": 1,
"option_symbol": "SPY260609P00500000",
"expiration_date": "2026-06-09",
"underlying_symbol": "SPY"
}
],
"calls": [
{
"iv": 0,
"ask": 238.12,
"bid": 234.89,
"rho": 0,
"vega": 0,
"delta": 1,
"gamma": 0,
"theta": 0,
"volume": 17,
"option_type": "Call",
"strike_price": 500,
"open_interest": 0,
"option_symbol": "SPY260609C00500000",
"expiration_date": "2026-06-09",
"underlying_symbol": "SPY"
}
],
"symbol": "SPY",
"timestamp": "2026-06-10 03:59:31",
"total_puts": 7037,
"total_calls": 7037,
"total_options": 14074,
"normalized_symbol": "SPY"
},
"status": "success"
}
}About the CBOE API
Options Chain Data
The get_options_chain endpoint accepts a single symbol parameter and returns two arrays — calls and puts — each containing full option contract objects with Greeks, pricing, and volume data. Equity tickers (SPY, AAPL, MSFT) are passed as-is. Index symbols (SPX, VIX, NDX) are automatically normalized to underscore-prefixed form (e.g., _SPX) — the normalized_symbol field in the response confirms how the symbol was sent. Caret-prefixed symbols like ^SPX are also accepted. The response includes summary fields: total_calls, total_puts, total_options, and a timestamp indicating data freshness. Data is delayed, not real-time.
VX Futures Options
The get_vx_futures_options endpoint targets options on VX futures contracts specifically, using CBOE's standard month-code format: VX + month code + 2-digit year (e.g., VXK26 for May 2026). Month codes follow the futures convention: F=Jan, G=Feb, H=Mar, J=Apr, K=May, M=Jun, N=Jul, Q=Aug, U=Sep, V=Oct, X=Nov, Z=Dec. The response mirrors the equity options chain shape — calls, puts, total_options — and adds contract-specific fields: contract_month, contract_year, and futures_symbol. Only active or near-term contracts carry options data; requests for expired contracts return a not-found error.
Short Sale Circuit Breaker Alerts
The get_short_sale_circuit_breaker endpoint returns Rule 201 short sale price test restriction alerts published by CBOE. The optional year parameter (4-digit string) scopes results to a specific year. Each alert object in the alerts array includes symbol, security_name, exchange, start_time, end_time, status, and is_rescinded. The total_alerts field gives a count of events for the requested period. This data reflects the official regulatory publication from CBOE, not exchange-aggregated data from other venues.
The CBOE API is a managed, monitored endpoint for cboe.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when cboe.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official cboe.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build an options scanner that ranks contracts by open interest or volume across SPX, SPY, and VIX chains.
- Monitor Rule 201 short sale circuit breaker triggers by year to analyze which securities hit price restrictions.
- Calculate historical implied volatility surfaces using the full Greeks returned per contract in get_options_chain.
- Track near-term VX futures options chains to model volatility term structure.
- Alert on newly rescinded short sale restrictions using the is_rescinded field from get_short_sale_circuit_breaker.
- Compare call/put ratios across equity and index symbols using total_calls and total_puts response fields.
- Identify which exchanges triggered Rule 201 alerts by filtering circuit breaker alerts on the exchange field.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does CBOE have an official developer API?+
What does get_options_chain return for index symbols, and how are they handled differently from equities?+
normalized_symbol field showing exactly how the symbol was processed. The returned calls and puts arrays have the same structure as equity symbols, including full Greeks, pricing, and volume per contract.How current is the options data?+
timestamp field in each response reflects the data publication time. This API is suited for analysis, screening, and research workflows that tolerate delayed quotes — not for live execution or real-time risk systems.