API Reference

Options Chain & Price History

The core market-data endpoints behind the dashboard: live chains with Greeks, lazy-loaded expirations, the volatility table, historical OHLC, HV series, return distributions, and Pro-tier historical chain snapshots (chain state at any past date/time, back-to-back comparisons, and intraday timelines).

These endpoints use session-cookie auth (the platform UI). For programmatic access with a long-lived API token, see the Bearer-token surface on the MCP / Claude integration page.

Live chain (/api)

These endpoints take the ticker as a query parameter.

GET /api/main_data
Optional login Rate: 100/min

Primary dashboard payload: processed chains for the first 2 expirations plus the ~30-DTE expiration, full expiration list (≤50) for lazy loading, company stats, IVx term structure, vol-intelligence panel (IV vs HV, IV rank, skew, 12-quarter earnings history), 30-day expected move, put/call OI ratio, live price with session label (regular/pre/post/closed). Non-subscribers get 90 days of history for HV (365 for subscribers).

Parameters

ticker (required), strike_range (strikes either side of ATM; default 30, 0 = all)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/main_data?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/main_data", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"Show me the AAPL options chain for the nearest expiration."

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/chain_batch
Optional login Rate: 100/min

Lazy-loads chains for specific expirations after first paint. Returns chains, stock_price, and term-structure points for the requested expirations.

Parameters

ticker, exp (repeatable, one per expiration), strike_range (default 30)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/chain_batch?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/chain_batch", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"Show me the AAPL options chain for the nearest expiration."

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vol_table_data
Optional login

Volatility table across the first 8 expirations: rows by DTE, columns at fixed deltas (ATM/35Δ/25Δ/15Δ calls and puts) or fixed moneyness (±5/10/15/20%). {columns, data}.

Parameters

ticker, metric ∈ vol | iv | theta | vega (default vol), mode ∈ delta | pct_atm

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vol_table_data?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vol_table_data", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"Show me the AAPL options chain for the nearest expiration."

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/expirations
Optional login

All listed expirations plus first_earnings_expiration (the first expiry whose our institutional data feed earnEffect > 0 — used for the 'E' badge).

Parameters

ticker (required)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/expirations?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/expirations", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"Show me the AAPL options chain for the nearest expiration."

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/volume-profile
Basic options_chain Rate: 100/min

Volume profile by strike: top volume and open-interest strikes with call/put split, distance from spot, moneyness, and put/call ratio.

Parameters

ticker (required), expiration (optional; defaults to nearest)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/volume-profile?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/volume-profile", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"Show me the AAPL options chain for the nearest expiration."

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/max-pain
Basic options_chain Rate: 100/min

Max-pain calculation: the strike minimizing aggregate option-holder payoff at expiry, with per-strike pain values and distance from spot.

Parameters

ticker (required), expiration (optional; defaults to nearest)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/max-pain?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/max-pain", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"Show me the AAPL options chain for the nearest expiration."

# Claude routes the request to the matching MCP tool — no HTTP required.

Historical chain snapshots (Pro)

Feature key: historical_snapshots (Pro plan).

GET /api/chain_at_time
Pro historical_snapshots

Full option chain snapshot as it stood at a specific historical date and time.

Parameters

ticker, exp, trade_date (all required), time (HH:MM, default 10:00)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/chain_at_time?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/chain_at_time", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"Show me the AAPL options chain for the nearest expiration."

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/chain_comparison
Pro historical_snapshots

Side-by-side chain comparison between two points in time — built for pre/post event analysis (earnings, FOMC, etc.).

Parameters

ticker, exp, date1, date2 (required), time1, time2 (default 10:00)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/chain_comparison?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/chain_comparison", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"Show me the AAPL options chain for the nearest expiration."

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/chain_timeline
Pro historical_snapshots

Chain snapshots at multiple times through one trading day.

Parameters

ticker, exp, trade_date (required), intervals (comma-separated HH:MM list)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/chain_timeline?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/chain_timeline", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"Show me the AAPL options chain for the nearest expiration."

# Claude routes the request to the matching MCP tool — no HTTP required.

Price history & distributions

GET /api/historical_volatility
Optional login

30-day rolling HV series (annualized %) with our institutional data feed 30-day IV history aligned on the same date axis. {dates, hv_values, current/min/max_hv, iv_dates, iv_values, current_iv}.

Parameters

ticker (default SPY), days (default 365, max 3650)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/historical_volatility?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/historical_volatility", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"Show me the AAPL options chain for the nearest expiration."

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/returns_histogram
Optional login

Signed return distribution over the lookback for the given DTE (0DTE uses open-to-close moves). Returns 25-bin histogram, cumulative curve, term-matched HV, vol spread vs current IV with state (OVERPRICED … UNDERPRICED), and the historical % of moves inside/outside the implied move.

Parameters

ticker, dte (0–365), lookback_days (1–3650) — required; current_iv, implied_move (optional, from the front end)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/returns_histogram?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/returns_histogram", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"Show me the AAPL options chain for the nearest expiration."

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/historical_price_chart_data
Optional login

OHLC records, close series, cumulative % returns, and volumes for charting.

Parameters

ticker, lookback_days (required)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/historical_price_chart_data?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/historical_price_chart_data", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"Show me the AAPL options chain for the nearest expiration."

# Claude routes the request to the matching MCP tool — no HTTP required.
7 days free, cancel anytime Card required · no charge for 7 days
Start trial →