API Reference

Volatility Analytics

The deepest part of the API: IV rank and cones, vol surfaces and smiles, term structure, volatility risk premium, HV regimes, IV mispricing, skew analytics, and day-over-day IV shift. Most endpoints require Premium (volatility_lab / iv_dashboard) or Pro (vol_term_analytics, iv_shift, skew_intelligence, volatility_arbitrage).

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.

IV analytics (/api/iv)

Feature key: volatility_lab (Premium).

GET /api/iv/rank
Premium volatility_lab Rate: 100/min

IV rank and percentile over the lookback window.

Parameters

ticker (required), days (lookback, 20–504, default 252)

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

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/iv/volatility-cone
Premium volatility_lab

Realized-vol cone (percentiles by window) with current IV overlay.

Parameters

ticker (required)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/iv/volatility-cone?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/iv/volatility-cone", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/iv/volatility-risk-premium
Premium volatility_lab

Volatility risk premium: implied minus realized volatility.

Parameters

ticker (required)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/iv/volatility-risk-premium?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/iv/volatility-risk-premium", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/iv/mean-reversion
Premium volatility_lab

IV mean-reversion opportunity detection.

Parameters

ticker (required)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/iv/mean-reversion?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/iv/mean-reversion", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/iv/vol-spread
Premium volatility_lab

Current IV minus term-matched HV (HV window = DTE). Positive = IV rich, negative = IV cheap.

Parameters

ticker, dte (required, 1–365), expiration (optional)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/iv/vol-spread?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/iv/vol-spread", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/iv/mispricing-heatmap
Premium volatility_lab

Vol-spread (IV − HV) heatmap across strikes × expirations for spotting mispriced options.

Parameters

ticker; type ∈ calls | puts; strikes (10–50, default 30); expirations (2–12, default 8); moneyness ∈ all | otm | itm; lookback (20–365, optional)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/iv/mispricing-heatmap?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/iv/mispricing-heatmap", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/iv/skew-analyzer
Premium volatility_lab

Vol spread at the put wing, ATM, and call wing of the smile for one expiration.

Parameters

ticker; expiration (optional — defaults to nearest)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/iv/skew-analyzer?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/iv/skew-analyzer", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

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

Vol surface, smiles & cone (/api)

Feature key: volatility_lab (Premium) unless noted.

GET /api/volatility_smile
Premium volatility_lab

IV smile for one expiration.

Parameters

ticker, exp (required)

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

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/term_structure_smiles
Premium volatility_lab

Smiles for several expirations at once (term-structure overlay).

Parameters

ticker, exps (comma-separated expirations; required)

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

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/volatility_surface
Premium volatility_lab

3-D vol surface data (Plotly format).

Parameters

ticker (required)

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

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/volatility_cone
Premium volatility_lab

Rolling realized-vol percentiles (p10/p25/median/p75/p90, min/max) for 10/20/30/60/90-day windows plus current ~30-DTE ATM IV.

Parameters

ticker; lookback (30–1260 trading days, default 252)

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

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/price_distribution
Premium volatility_lab

Price-distribution panel data grouped by delta or moneyness.

Parameters

ticker, dte, exp (required); group_by (default delta), metric (default price), num_exps (default 3), moneyness_interval (default 5), moneyness_strikes (default 3)

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

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vol-arb/scan
Pro volatility_arbitrage

Volatility-arbitrage scan for one underlying (cross-expiry and surface dislocations).

Parameters

ticker (required)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vol-arb/scan?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vol-arb/scan", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

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

Volatility Lab bundle (/api/vol-lab)

Consolidated endpoints behind the Volatility Lab page (2–3 our institutional data feed calls instead of ~50 chain calls). Feature key: volatility_lab (Premium).

GET /api/vol-lab/init/<ticker>
Premium volatility_lab

Everything for first paint in one call: smiles, term structure, surface, mispricing, headline metrics.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vol-lab/init/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vol-lab/init/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vol-lab/cone/<ticker>
Premium volatility_lab

Volatility cone (lazy-loaded tab).

Parameters

lookback (30–1260, default 252)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vol-lab/cone/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vol-lab/cone/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vol-lab/iv-rank-history/<ticker>
Premium volatility_lab

IV-rank time series.

Parameters

days (30–1260, default 252)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vol-lab/iv-rank-history/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vol-lab/iv-rank-history/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vol-lab/vrp-history/<ticker>
Premium volatility_lab

VRP time series.

Parameters

days (30–1260, default 252)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vol-lab/vrp-history/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vol-lab/vrp-history/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vol-lab/smile-history/<ticker>
Premium volatility_lab

Historical smile evolution.

Parameters

days (30–1890, default 504)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vol-lab/smile-history/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vol-lab/smile-history/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vol-lab/delta-iv-rank/<ticker>
Premium volatility_lab

IV rank computed at each delta point on the smile.

Parameters

days (30–1890, default 504)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vol-lab/delta-iv-rank/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vol-lab/delta-iv-rank/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vol-lab/skew-analytics/<ticker>
Premium volatility_lab

Forward vol, contango, and RIP time series.

Parameters

days (30–1890, default 756)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vol-lab/skew-analytics/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vol-lab/skew-analytics/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

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

IV Intelligence dashboard (/api/iv-dashboard)

Feature key: iv_dashboard (Premium).

GET /api/iv-dashboard/init/<ticker>
Premium iv_dashboard

Core data for all 12 dashboard panels (parallel fetch of cores + IV rank + summaries).

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/iv-dashboard/init/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/iv-dashboard/init/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/iv-dashboard/history/<ticker>
Premium iv_dashboard

Sparkline series for IV rank, VRP, skew, and contango.

Parameters

days (7–90, default 30)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/iv-dashboard/history/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/iv-dashboard/history/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/iv-dashboard/surface/<ticker>
Premium iv_dashboard

Lazy-loaded vol surface with implied-vs-forecast mispricing.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/iv-dashboard/surface/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/iv-dashboard/surface/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/iv-dashboard/hvs/<ticker>
Premium iv_dashboard

Lazy-loaded full HV dataset.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/iv-dashboard/hvs/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/iv-dashboard/hvs/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

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

Volatility risk premium (/api/vrp)

Feature key: iv_dashboard (Premium).

GET /api/vrp/<ticker>
Premium iv_dashboard

Comprehensive period-based VRP analysis.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vrp/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vrp/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vrp/<ticker>/expirations
Premium iv_dashboard

VRP by expiration (term-structure view).

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vrp/AAPL/expirations"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vrp/AAPL/expirations")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vrp/<ticker>/timeseries
Premium iv_dashboard

IV vs HV time series for charting.

Parameters

lookback (≤90, default 60), hv_period (default 30)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vrp/AAPL/timeseries"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vrp/AAPL/timeseries")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vrp/<ticker>/cone
Premium iv_dashboard

Volatility cone data.

Parameters

periods (comma-separated day windows, optional)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vrp/AAPL/cone"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vrp/AAPL/cone")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vrp/<ticker>/strategies
Premium iv_dashboard [Deprecated]

Deprecated — always returns an empty object.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vrp/AAPL/strategies"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vrp/AAPL/strategies")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vrp/scan
Premium iv_dashboard

Scan the universe (or a custom list) for high-VRP opportunities.

Parameters

min_vrp (default 5.0), tickers (comma-separated, optional)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vrp/scan"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vrp/scan")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

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

Institutional vol analytics (/api/institutional)

Bloomberg-style analytics. Feature key: volatility_lab (Premium). These use the demo-friendly gate: anonymous/Free users reach them but are limited to AAPL by the global demo restriction.

GET /api/institutional/vix
Premium volatility_lab

VIX command center: price/OHLC/change, 1-year percentile and rank, regime classification (extreme_fear → complacent), stats, 90-day chart.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/institutional/vix"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/institutional/vix")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/institutional/vix/historical
Premium volatility_lab

Historical VIX rows (date, close, high, low).

Parameters

days (default 252, max 504)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/institutional/vix/historical"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/institutional/vix/historical")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/institutional/skew/<ticker>
Premium volatility_lab

25-delta skew: risk reversal (25Δ call IV − 25Δ put IV), butterfly, strikes/IVs, sentiment.

Parameters

expiration (optional; auto-selects ~30 DTE)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/institutional/skew/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/institutional/skew/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/institutional/skew/<ticker>/term-structure
Premium volatility_lab

Risk-reversal and butterfly across expirations.

Parameters

max_expirations (default 8, max 12)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/institutional/skew/AAPL/term-structure"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/institutional/skew/AAPL/term-structure")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/institutional/term-structure/<ticker>
Premium volatility_lab

ATM IV term structure with interpolated constant-maturity 30/60/90-day points and shape classification (contango / backwardation / flat).

Parameters

max_expirations (default 12, max 15)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/institutional/term-structure/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/institutional/term-structure/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/institutional/surface-change/<ticker>
Premium volatility_lab

Day-over-day IV surface changes with summary statistics.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/institutional/surface-change/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/institutional/surface-change/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/institutional/dashboard/<ticker>
Premium volatility_lab

Combined payload: skew + term structure + surface in one response.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/institutional/dashboard/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/institutional/dashboard/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

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

Term Vol Analytics & strike history (Pro)

Feature key: vol_term_analytics (Pro).

GET /api/vol-term/expirations/<ticker>
Pro vol_term_analytics

Expiration dropdown data with ATM IV, slope, and confidence per expiry.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vol-term/expirations/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vol-term/expirations/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vol-term/<ticker>/<expiration>
Pro vol_term_analytics

Full per-expiration analytics payload: strike-level mispricing, probability edge, institutional positioning.

Parameters

expiration in path (YYYY-MM-DD)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vol-term/AAPL/2026-01-16"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vol-term/AAPL/2026-01-16")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/strike-intel/history/<ticker>
Pro vol_term_analytics Rate: 100/min

Per-strike history of delta, theta, and IV (sparkline data) plus the ticker's ATM edge-vs-forecast series.

Parameters

exp (YYYY-MM-DD), strike (number), right ∈ C | P — all required; days (5–60, default 20)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/strike-intel/history/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/strike-intel/history/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

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

IV Shift (/api/iv-shift)

Bloomberg-grade smile-shift analysis. Feature key: iv_shift (Pro).

GET /api/iv-shift/<ticker>
Pro iv_shift

Main payload: current vs previous smile, ML forecast overlay, percentile envelope, and headline metrics.

Parameters

exp (required); compare (default prev_close); hv_window (default 30d); term_mode ∈ same_contract | constant_maturity; axis ∈ strike | moneyness | delta; envelope_days (10–90, default 30)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/iv-shift/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/iv-shift/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/iv-shift/<ticker>/heatmap
Pro iv_shift

IV change across strikes × expirations (term-structure heatmap).

Parameters

compare (default prev_close); mode ∈ change | richness | percentile; num_exps (3–10, default 6)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/iv-shift/AAPL/heatmap"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/iv-shift/AAPL/heatmap")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/iv-shift/<ticker>/envelope
Pro iv_shift

Smile percentile bands only (lazy-loaded).

Parameters

exp (required); days (10–90, default 20)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/iv-shift/AAPL/envelope"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/iv-shift/AAPL/envelope")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/iv-shift/<ticker>/summaries
Pro iv_shift

Bundle of decomposition history, forward vols, and option-seller win rate (all from one /hist/summaries fetch).

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/iv-shift/AAPL/summaries"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/iv-shift/AAPL/summaries")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

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

Skew Intelligence (/api/skew-intelligence)

Feature key: skew_intelligence (Pro).

GET /api/skew-intelligence/<ticker>
Pro skew_intelligence

Full skew dashboard: decomposition, sector-relative skew, regime bands.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/skew-intelligence/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/skew-intelligence/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/skew-intelligence/<ticker>/history
Pro skew_intelligence

Skew time series with regime bands.

Parameters

days (default 252)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/skew-intelligence/AAPL/history"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/skew-intelligence/AAPL/history")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/skew-intelligence/<ticker>/curvature
Pro skew_intelligence

Curvature (second-order skew) analysis.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/skew-intelligence/AAPL/curvature"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/skew-intelligence/AAPL/curvature")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

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

Hidden / unpublished volatility endpoints

These modules are wired up but their feature keys are unpublished (published=False), so they return 404 to regular users (admins can access them; demo users can reach the api_tier_required ones for AAPL only). Listed for completeness.

GET /api/monies/implied/<ticker>
Pro vol_surface_advanced [Hidden]

our institutional data feed implied monies surface (21 delta points × expirations).

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/monies/implied/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/monies/implied/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/monies/forecast/<ticker>
Pro vol_surface_advanced [Hidden]

the ML forecast surface.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/monies/forecast/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/monies/forecast/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/monies/comparison/<ticker>
Pro vol_surface_advanced [Hidden]

Implied vs forecast with mispricing signals.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/monies/comparison/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/monies/comparison/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/volatility-snapshot/<ticker>
Premium volatility_snapshot [Hidden]

Ultra-simple IV vs HV snapshot: zones (put wing / ATM / call wing), smile, skew-premium heatmap, term structure.

Parameters

expiration (optional); lookback (30–365, default 100)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/volatility-snapshot/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/volatility-snapshot/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/volatility-snapshot/multi
Premium volatility_snapshot [Hidden]

Snapshot summary for multiple tickers.

Parameters

tickers (comma-separated, max 10; default SPY,QQQ,IWM)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/volatility-snapshot/multi?ticker=AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/volatility-snapshot/multi", params={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/hv-regime/<ticker>
Premium hv_regimes [Hidden]

Full HV dashboard: all HV windows (5–1000d), term structure, regime label (Expanding / Normal / Contracting), 20-day forecast.

Parameters

days (default 252)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/hv-regime/AAPL"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/hv-regime/AAPL")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/hv-regime/<ticker>/term-structure
Premium hv_regimes [Hidden]

Current HV term structure.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/hv-regime/AAPL/term-structure"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/hv-regime/AAPL/term-structure")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/hv-regime/<ticker>/signals
Premium hv_regimes [Hidden]

HV regime crossover signals.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/hv-regime/AAPL/signals"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/hv-regime/AAPL/signals")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/hv-regime/<ticker>/decomposition
Premium hv_regimes [Hidden]

Close-to-close vs open-range HV decomposition.

Parameters

days (default 252)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/hv-regime/AAPL/decomposition"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/hv-regime/AAPL/decomposition")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/hv-regime/<ticker>/ex-earnings
Premium hv_regimes [Hidden]

Regular vs ex-earnings IV comparison.

Parameters

days (default 252)

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/hv-regime/AAPL/ex-earnings"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/hv-regime/AAPL/ex-earnings")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"What's the IV rank for AAPL?"

# 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 →