Screeners API, GET /market-overview
What is the volatility regime across the market today?
Market-wide vol stats, sector heatmap, index prices, breadth, movers and earnings this week. One call with the average IV and VRP across the universe, the regime label, a sector heatmap, ETF heatmap, index levels, rates, put skew, vol breadth, top movers, unusual activity and the IV-versus-HV outliers.
The answer, in one call
Units first,
then the request.
IVs in percentage points; VRP in points; changes in percent; yields in percent; OI and volume in contracts.
Bulk daily data across the covered universe.
curl -H "Authorization: Bearer avmcp_YOUR_TOKEN" \
"https://apexvol.com/api/mcp/data/market-overview"
import requests
headers = {"Authorization": "Bearer avmcp_YOUR_TOKEN"}
r = requests.get("https://apexvol.com/api/mcp/data/market-overview", headers=headers)
r.raise_for_status()
data = r.json()["data"]
print(data["index_prices"])
Give me a market volatility overview for this morning.
The assistant calls get_market_overview and answers from the JSON below.{
"success": true,
"data": {
"earnings_this_week": [
{
"capGroup": "large",
"days_to_earnings": 0,
"hv20d": 34.0,
"iv30d": 48.3,
"iv_percentile": 98.0,
"market_cap": "$28.0B",
"next_earnings": "2026-09-08",
"price": 755.96,
"sector": "C. Defensive",
"ticker": "CASY",
"vrp": 14.2
},
{
"capGroup": "mid",
"days_to_earnings": 0,
"hv20d": 22.4,
"iv30d": 52.2,
"iv_percentile": 52.0,
"market_cap": "$8.6B",
"next_earnings": "2026-09-08",
"price": 19.19,
"sector": "C. Cyclical",
"ticker": "GME",
"vrp": 29.8
},
{
"capGroup": "mid",
"days_to_earnings": 0,
"hv20d": 28.9,
"iv30d": 67.6,
"iv_percentile": 71.0,
"market_cap": "$2.7B",
"next_earnings": "2026-09-08",
"price": 43.87,
"sector": "C. Defensive",
"ticker": "UNFI",
"vrp": 38.8
}
],
"index_prices": {
"DJX": {
"chg1m": -1.87,
"chg1w": -0.43,
"chg_today": 0,
"iv30d": 11.2,
"name": "Dow Jones",
"price": 53686.0
},
"NDX": {
"chg1m": -0.01,
"chg1w": 0.17,
"chg_today": 0,
"iv30d": 16.4,
"name": "Nasdaq 100",
"price": 29482.32
},
"SPX": {
"chg1m": -0.08,
"chg1w": 0.07,
"chg_today": 0,
"iv30d": 11.2,
"name": "S&P 500",
"price": 7747.71
},
"VIX": {
"chg1m": -8.67,
"chg1w": 0.07,
"chg_today": 0,
"iv30d": 77.8,
"name": "VIX",
"price": 14.32
}
},
"market_stats": {
"avg_contango": -0.06,
"avg_iv30d": 45.8,
"avg_iv_percentile": 36.1,
"avg_put_call_ratio": 0.67,
"avg_vrp": 6.3,
"market_regime": "Normal",
"median_iv_percentile": 33.0,
"pct_high_iv": 12.4,
"regime_color": "green",
"total_options_oi": 583148513,
"total_options_vol": 76063634,
"total_tickers": 4011
},
"put_skew": {
"avg_skew_pctile": 39.4,
"avg_slope": 0.85,
"avg_slope_1y": 1.37
},
"scan_time": "2026-09-08T05:01:41",
"sector_heatmap": [
{
"avg_contango": -0.21,
"avg_iv30d": 39.6,
"avg_iv_percentile": 45.1,
"avg_vrp": 3.8,
"sector": "C. Defensive",
"ticker_count": 118
},
{
"avg_contango": -0.32,
"avg_iv30d": 29.6,
"avg_iv_percentile": 42.6,
"avg_vrp": 4.1,
"sector": "Utilities",
"ticker_count": 86
},
{
"avg_contango": 0.32,
"avg_iv30d": 60.5,
"avg_iv_percentile": 40.0,
"avg_vrp": 3.5,
"sector": "Technology",
"ticker_count": 422
}
],
"top_movers": [
{
"capGroup": "mega",
"iv30d": 33.2,
"iv_percentile": 100.0,
"market_cap": "$237.5B",
"price": 439.35,
"sector": "Healthcare",
"ticker": "AMGN",
"vrp": 12.0
},
{
"capGroup": "small",
"iv30d": 22.0,
"iv_percentile": 100.0,
"market_cap": "$493M",
"price": 50.91,
"sector": "N/A",
"ticker": "AMZA",
"vrp": 2.7
},
{
"capGroup": "mid",
"iv30d": 143.5,
"iv_percentile": 100.0,
"market_cap": "$3.1B",
"price": 39.55,
"sector": "Healthcare",
"ticker": "CLDX",
"vrp": null
}
],
"treasury_rates": {
"^FVX": {
"chg_bps": 4.1,
"name": "5-Year",
"yield": 4.55
},
"^TNX": {
"chg_bps": 2.2,
"name": "10-Year",
"yield": 4.784
},
"^TYX": {
"chg_bps": 0.3,
"name": "30-Year",
"yield": 5.246
}
},
"vol_breadth": {
"pct_contango_positive": 60.6,
"pct_iv_above_hv": 76.4,
"pct_iv_pctile_above_50": 27.8
}
}
}
Every response is wrapped as {"success": true, "data": {...}}. Lists in the sample are cut to a few rows so it fits on a page; the shape is exactly what your code receives.
Parameters
Bounded,
and the bounds are stated.
Out-of-range numbers are clamped to the documented range, never silently changed to something else. A missing required field returns 400 with the reason.
| Name | In | Default | Range | Meaning |
|---|---|---|---|---|
| No parameters. | ||||
Field by field
What each
number means.
market_stats.market_regime, avg_iv30d, avg_vrp, pct_high_iv- The regime.
sector_heatmap[], etf_heatmap[]- By sector and ETF.
index_prices, treasury_rates- Levels and rates.
vol_breadth, put_skew- Breadth and skew across names.
top_movers[], unusual_activity[], earnings_this_week[]- The lists.
Access, limits, errors
Before the
first call.
- Plan
- Premium Premium and above. Tokens are issued to paid and trial accounts from $55 a month; each endpoint follows the tier of its web feature. An endpoint above your plan answers 402 and names the plan it needs.
- Auth
- Bearer token, prefix
avmcp_, created under Account, then API Access. Shown once, hashed at rest, rotates in one click. Always callhttps://apexvol.com, never www. - Limits
- 60 requests a minute and 1,000 an hour per token, plus a monthly allowance by plan. Every response carries the remaining counts in
X-RateLimit-*headers; a 429 carriesRetry-Afterin seconds. - Errors
401no or revoked token;429Retry-After seconds;403Premium plan required;424data feed unavailable, retry. The full list with payload shapes is on the errors page.- Since
- API 1.0. Units, bases and timestamps follow the conventions shared by every endpoint; changes are logged in the API changelog.
- Machine-readable
- This page as Markdown, the family as one file, the whole API as llms-full.txt or OpenAPI 3.1.
The same data, in plain English
Ask for it
in an MCP client.
Connect the ApexVol MCP server and the assistant calls get_market_overview by name. One URL, a sign-in, no token to paste.
Give me a market volatility overview for this morning.
YouWhich sectors have the highest IV right now?
YouIs the market in a high-vol regime?
More in the prompt library. Set the server up in Claude Desktop, Claude Code, Cursor, ChatGPT, VS Code, Windsurf or Gemini CLI.
Included with
every paid plan.
From $55 a month, tier-matched: your token queries the data your plan includes and Pro unlocks the full surface.
Real market data, not a sandbox. See it live on AAPL.