1. API
  2. Stock analytics API

Stock analytics API

The context
behind the chain.

Where a stock sits in its range and how its vol compares with the move, whether it is hard to borrow, what it pays and when, how it tracks SPY and its sector, and the 340-field analytics row the platform screens on.

7Endpoints in this family
2Matching MCP tools
60/minPer token, 1,000 an hour

A real response

This is what
comes back.

Captured from the live endpoint on 2026-09-08, lists cut to a few rows so it fits on a page. The shape is exactly what your code receives. Run it on your own ticker from the endpoint page.

GET /api/mcp/data/price-context/NVDA200, application/json
{
  "avg_opt_volume_20d": 3290792,
  "avg_opt_volume_baseline": 3290792,
  "best_etf": "XLK",
  "beta_1m": 3.08,
  "beta_1y": 1.93,
  "borrow_30d": 3.42,
  "call_oi": 8454385,
  "call_volume": 3549509,
  "contango": 1.26,
  "correl_etf_1y": 0.27,
  "correl_spy_1y": 0.41,
  "daily_change": -0.06,
  "daily_change_pct": -0.03,
  "days_since_hi_52w": 117,
  "days_since_lo_52w": 368,
  "days_to_earnings": 71,
  "div_yield": 0.4,
  "earnings_flag": false,
  "essentials_summary": "92% up the 52-week range, option flow 1.7\u00d7 the 20-day average",
  "flow_sentiment": {
    "color": "emerald",
    "label": "Bullish"
  },
  "forecast_20d": 32.03,
  "forecast_inf": 41.38,
  "hi_52w": 236.26,
  "hv_20d": 37.86,
  "hv_bars": [
    {
      "close": 44.28,
      "label": "5D",
      "open_range": 43.95
    },
    {
      "close": 56.93,
      "label": "10D",
      "open_range": 46.68
    },
    {
      "close": 44.92,
      "label": "20D",
      "open_range": 37.86
    }
  ],
  "implied_earnings_move": 4.8,
  "implied_earnings_move_sigma": 6.0,
  "implied_move": 4.8,
  "is_partial_session": false,
  "iv_30d": 33.05,
  "iv_etf_ratio": 2.8,
  "iv_pctile_1y": 11.9,
  "iv_spy_ratio": 2.8,
  "lo_52w": 163.85,
  "market_cap": 5561054100,
  "market_cap_fmt": "$5.56T",
  "momentum_regime": {
    "color": "green",
    "label": "Bullish"
  },
  "next_earnings": "2026-11-18",
  "pct_from_high": -2.52,
  "pct_from_low": 40.56,
  "price": 230.3,
  "price_1m": 219.22,
  "price_1w": 217.55,
  "price_1y": 171.43,
  "price_6m": 177.6,
  "prior_close": 230.36,
  "put_call_ratio_volume": 0.54,
  "put_oi": 7571013,
  "put_volume": 1906366,
  "quick_take": "NVDA is 3% off its 52-week high, in an extreme low vol regime.",
  "range_position": 91.8,
  "return_1m": 5.05,
  "return_1w": 5.86,
  "return_1y": 34.34,
  "return_6m": 29.67,
  "sector": "Technology",
  "session_progress": null,
  "stock_volume": 6443150,
  "ticker": "NVDA",
  "trade_date": "2026-09-04",
  "vol_regime": {
    "color": "cyan",
    "label": "Extreme Low"
  },
  "volume_as_of": "2026-09-04 20:55:19",
  "vrp": -4.8
}

Every response is wrapped as {"success": true, "data": {...}}. Errors use the same envelope with an error string and a status code that means what it says.

Call it three ways. Same token, same JSON.

curlBearer token from Account, then API Access
curl -H "Authorization: Bearer avmcp_YOUR_TOKEN" \
     "https://apexvol.com/api/mcp/data/price-context/NVDA"
Pythonrequests, nothing else
import requests

headers = {"Authorization": "Bearer avmcp_YOUR_TOKEN"}
r = requests.get("https://apexvol.com/api/mcp/data/price-context/NVDA", headers=headers)
r.raise_for_status()
data = r.json()["data"]
print(data["price"])
In Claude, Cursor or ChatGPTthrough the MCP server, no code
You

Give me price context on NVDA: range, momentum and vol.

The assistant calls get_ticker_analytics and answers from the JSON above.

More prompts for this family in the prompt library. Set the server up in Claude Desktop, Claude Code, Cursor, ChatGPT, VS Code, Windsurf or Gemini CLI.

The family

7 endpoints,
one prefix.

All under https://apexvol.com/api/mcp/data. Each card opens a page with the parameters and their bounds, every response field, a real captured response and a console that runs it on your ticker.

Download as Markdown Copy for your AI

The Markdown twin of this family, sized for a context window.

Field by field

What each
number means.

range_position
Where the price sits between the 52-week low, 0, and high, 100.
momentum_regime, vol_regime
Labels from multi-timeframe returns, and from implied against realized vol.
current.borrow30, borrow_class
The 30-day borrow rate in percent and its class from easy to hard; borrow_pctile ranks it against the name's own history.
squeeze_score
Borrow spike, short interest and price momentum combined into one 0 to 100 score.
current.implied_vs_actual
The dividend the options market implies against the declared one. A gap flags an expected change.
correlations.spy_1y, beta.beta_1y
One-year correlation and beta to SPY; the etf twins use the best-matching sector ETF.

The same data, in plain English

2 MCP tools
wrap this family.

Connect the ApexVol MCP server and an assistant can call these by name. One URL, a sign-in, no token to paste.

  • get_ticker_analytics
  • get_orats_cores

Set it up in:

What people build

Three things
this is for.

Access

Auth
Bearer token, prefix avmcp_, created under Account, then API Access. Shown once, hashed at rest, rotates in one click.
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 headers.
Plans
Included with every paid or trial plan from $55 a month. Each endpoint follows the tier of its web feature; the cards above show which.
Spec
OpenAPI 3.1 at /docs/api/openapi.json, this family as one Markdown file, the whole reference at /llms-full.txt. Shared conventions, the error model and the changelog.

Questions

Asked before
the first call.

What is the cores endpoint?

The raw pre-computed analytics row the screener reads: a curated subset by default, every one of the 340-plus fields with fields=all. It is Pro.

Are dividends adjusted?

The history is as declared. The implied dividend is read from put-call parity in the chain, which is why it can disagree with the declared one before a change.

How current is the borrow rate?

Daily, with the time series and spike detection over the past year.

Which plan?

Price context is Basic. Borrow, dividend and correlation are Premium. Cores and relative value are Pro.

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.

7 days free, cancel anytime Card required · no charge for 7 days
Start trial →