API Reference

Screeners & Market Overview

Market-wide endpoints: the bulk our institutional data feed-powered screener, quick public screeners, the market overview, and the (temporarily disabled) legacy screener and vol-surface-monitor routes.

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.

Market overview

Feature key: market_overview (Premium).

GET /api/market_overview
Premium market_overview

Bulk market overview from /cores: sector heatmap, top movers, earnings calendar, with live index prices merged in on a 60-second cache.

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

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

Bulk screener (/api/screener)

Feature key: screener (Premium). Runs on 1–2 bulk our institutional data feed calls.

GET /api/screener/screens
Premium screener

Lists available screen types with names and descriptions.

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

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/screener/run/<screen_type>
Premium screener

Runs a named screen (IV rank, VRP, skew, earnings, …) with optional threshold overrides and market-cap / liquidity / earnings-window filters.

Parameters

limit (1–200, default 50); min_market_cap (default 1e9); max_market_cap; min_opt_volume; exclude_earnings_days; exclude_past_earnings_days; threshold overrides: iv_rank_min, iv_rank_max, vrp_min, days_max, skew_pctile_min, contango_min, z_score_min, beta_max

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

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/screener/live-prices
Premium screener

Lightweight batched live prices used to patch stale closing prices after the table renders. {prices: {TICKER: price}}.

Parameters

tickers (comma-separated, max 200; required)

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

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

Quick screeners (no tier gate)

Defined in the IV module; available to any visitor (rate-limited).

GET /api/screener/unusual-volume
Optional login Rate: 100/min

Unusual options volume screen. {success, results}.

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

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

IV extremes screen (very high / very low IV).

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

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

High-theta (premium-selling) opportunities screen.

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

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

Temporarily disabled

These return 503 with an explanatory message while being optimized.

GET /api/vol-surface-monitor
Pro vol_surface_monitor [Disabled — 503]

S&P 100 vol-surface monitor.

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

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/vol-surface-monitor/batch
Pro vol_surface_monitor [Disabled — 503]

Batch variant.

# log in first and reuse the cookie jar (see Authentication)
curl -b cookies.txt "https://apexvol.com/api/vol-surface-monitor/batch"
import requests
s = requests.Session()
# log in to populate the session cookie (see Authentication)
r = s.get("https://apexvol.com/api/vol-surface-monitor/batch")
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"Screen the market for high IV-rank stocks."

# Claude routes the request to the matching MCP tool — no HTTP required.
POST /api/vol-surface-monitor/summary
Pro vol_surface_monitor [Disabled — 503]

Summary variant.

# fetch a CSRF token, then POST with it
TOKEN=$(curl -s -b cookies.txt https://apexvol.com/api/csrf-token | jq -r .token)
curl -b cookies.txt -X POST "https://apexvol.com/api/vol-surface-monitor/summary" \
     -H "Content-Type: application/json" -H "X-CSRFToken: $TOKEN" \
     -d '{ "ticker": "AAPL" }'
import requests
s = requests.Session()
# log in first, then include the CSRF token on writes
token = s.get("https://apexvol.com/api/csrf-token").json()["token"]
r = s.post("https://apexvol.com/api/vol-surface-monitor/summary",
          headers={"X-CSRFToken": token}, json={"ticker": "AAPL"})
print(r.json())
# With the apexvol-mcp server connected to Claude, just ask:
"Screen the market for high IV-rank stocks."

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/screener (legacy)
Premium screener [Disabled — 503]

Legacy screener route.

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

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/screener/search
Premium screener [Disabled — 503]

Legacy screener search.

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

# Claude routes the request to the matching MCP tool — no HTTP required.
GET /api/screener/<filter_type>
Premium screener [Disabled — 503]

Legacy screener filters.

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

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