1. API
  2. Options data API

Options data API

Every options number,
one REST API.

Chains with the Greeks on every row, IV rank and term structure, dealer gamma, flow, expected moves, earnings history and end-of-day chains for past dates. One Bearer token, JSON back, read from the same feed the ApexVol Terminal uses.

Included with every paid plan; there is no free API tier. 7 days free, card required.

64REST endpoints in 12 families
5,500+US stocks and ETFs
44MCP tools on the same data

A real response

This is what
comes back.

Is SPY's IV curve in contango or inverted, and what move does each expiration price? 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. The endpoint page has every parameter and field.

GET /api/mcp/data/term-structure/SPY200, application/json
{
  "as_of": "2026-09-08T07:48:58.063902",
  "iv_units": "percentage_points",
  "stock_price": 770.25,
  "term_structure": [
    {
      "atm_iv": 5.92,
      "atm_strike": 770.0,
      "dte": 0,
      "expected_move_dollar": 3.82,
      "expected_move_pct": 0.5,
      "expiration": "2026-09-08",
      "iv_expected_move_dollar": 0.0,
      "iv_expected_move_pct": 0.0,
      "lower_1sigma": 766.43,
      "lower_2sigma": 762.61,
      "straddle_call": 1.98,
      "straddle_price": 3.82,
      "straddle_put": 1.84,
      "upper_1sigma": 774.07,
      "upper_2sigma": 777.89
    },
    {
      "atm_iv": 7.09,
      "atm_strike": 770.0,
      "dte": 1,
      "expected_move_dollar": 5.12,
      "expected_move_pct": 0.66,
      "expiration": "2026-09-09",
      "iv_expected_move_dollar": 2.86,
      "iv_expected_move_pct": 0.37,
      "lower_1sigma": 765.14,
      "lower_2sigma": 760.02,
      "straddle_call": 2.66,
      "straddle_price": 5.12,
      "straddle_put": 2.45,
      "upper_1sigma": 775.36,
      "upper_2sigma": 780.48
    },
    {
      "atm_iv": 8.06,
      "atm_strike": 770.0,
      "dte": 2,
      "expected_move_dollar": 6.38,
      "expected_move_pct": 0.83,
      "expiration": "2026-09-10",
      "iv_expected_move_dollar": 4.6,
      "iv_expected_move_pct": 0.6,
      "lower_1sigma": 763.88,
      "lower_2sigma": 757.5,
      "straddle_call": 3.3,
      "straddle_price": 6.38,
      "straddle_put": 3.08,
      "upper_1sigma": 776.62,
      "upper_2sigma": 783.0
    }
  ],
  "ticker": "SPY"
}

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/term-structure/SPY"
Pythonrequests, nothing else
import requests

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

Is SPY's term structure in contango or backwardation right now?

The assistant calls get_term_structure and answers from the JSON above.

Every family

12 families,
64 endpoints.

All under https://apexvol.com/api/mcp/data. Each family page lists its endpoints with a real response; each endpoint page has the parameters and their bounds, every field and the errors.

12 endpoints Implied volatility REST endpoints for IV rank, IV percentile, the vol cone, term structure and volatility risk premium. One Bearer token, JSON back, the same tools as MCP. 6 endpoints Options chain An options chain API that returns every strike with bid, ask, IV, delta, gamma, theta, vega, volume and open interest as JSON. Live and historical chains. 3 endpoints Options Greeks Options Greeks over REST: find contracts by delta, pull Greeks heatmaps across strikes and expirations, aggregate a portfolio, and get third-order Greeks. 7 endpoints Gamma exposure Dealer gamma exposure by strike as JSON: net GEX, call and put GEX, the gamma flip level, key levels, 0DTE gamma and max pain for stocks, ETFs and indexes. 2 endpoints Options flow Options flow as JSON: the largest premium by contract, unusual volume against open interest, call and put premium totals and a sentiment read, per ticker. 9 endpoints Earnings and expected move Expected move and earnings analytics over REST: the priced move, the historical average, IV crush, straddle hit rates and a scored verdict per report. 5 endpoints Strategies POST endpoints that build a named strategy from the live chain, analyze custom legs, grid-search strikes, price probability of profit and re-price a chain. 4 endpoints Portfolio risk POST your stock and option positions and get net Greeks, a risk level, scenario P&L, a stress-test battery and the hedge that neutralises delta. 3 endpoints Events and calendars Upcoming earnings with the options-implied move next to the historical average, the macro calendar with estimates and actuals, and monthly seasonality. 4 endpoints Screeners Preset screens over the whole universe, a market-wide volatility regime read, IV-to-SPY mean-reversion stretches and cross-strike arbitrage checks. 7 endpoints Stock analytics Per-ticker context by REST: price and momentum regime, borrow rate and squeeze risk, dividends and the implied dividend, correlation and beta, the raw row. 2 endpoints Account and index Two endpoints about the API itself: your month's usage, allowance, remaining and reset time as JSON, and the machine-readable list of every endpoint.

What comes back

The data,
family by family.

The short version of each family above, plus the history that runs across them.

Options chains
Every strike for one or more expirations, calls and puts on the same row, with per-contract IV, delta, gamma, theta, vega, rho, volume and open interest. Trimmed to 20 strikes either side of the money by default; strikes_around=0 returns the full chain.
Implied volatility
IV rank and percentile against the last year, the term structure with the straddle-implied move for each expiration, the volatility cone, skew, the smoothed surface and the volatility risk premium.
Greeks and dealer gamma
Greeks heatmaps across strikes and expirations, third-order Greeks, charm, and dealer gamma exposure by strike with the gamma flip, the call and put walls and max pain.
Options flow
The day's largest trades for a ticker with a bullish or bearish read, and the trades that look institutional.
Earnings and expected move
The move priced to each expiration, past earnings moves, IV crush, post-earnings drift and a buy-or-sell read on the earnings straddle.
History
End-of-day chains for past trade dates with bid, ask, IV and Greeks, daily IV against realized vol, realized-vol regimes, skew history and seasonality.
Strategies and risk
Build, price and optimise multi-leg trades, probability of profit, what-if repricing of the chain, portfolio Greeks, scenarios, stress tests and hedge suggestions.
Screens and calendars
Preset screens such as the highest IV rank, a market-wide volatility overview, relative-value and vol-arbitrage scans, and the earnings and economic calendars.

Coverage and freshness

What it covers,
and how fresh it is.

Symbols
5,500+ US-listed stocks and ETFs with listed options, plus the major indexes. GET /search confirms that a symbol is covered.
During market hours
Chains, IV and Greeks are read live from the data feed. Very frequent polling of one ticker may be answered from a short cache rather than a fresh read.
Outside market hours
You get the last session's values, and the chain's data_type field says whether what you are reading is live.
Past dates
End of day only. Historical chains are the close of each trading day; there are no intraday snapshots for past sessions.
Source
An institutional options data feed, the same one behind the ApexVol Terminal.
Units
Analytics endpoints give IV in percentage points and say so in iv_units; chain rows give per-contract IV as a decimal. The conventions page lists the rest.

The same data, in plain English

44 MCP tools
wrap the whole API.

Connect the ApexVol MCP server and Claude, ChatGPT, Cursor or another MCP client calls these by name. Add it from Claude's connector directory or paste https://apexvol.com/mcp-server; it signs in to your ApexVol account, so there is no token to paste.

Set it up in:

Ready-made questions for every family in the prompt library.

What people build

3 things
this is for.

Access, limits and price

Who can call it
Accounts on a paid plan or a trial. There is no free API tier: a token needs an active plan, and a token whose plan lapses stops working until the plan is active again.
Auth
Bearer token, prefix avmcp_, created under Account, then API Access. Shown once, hashed at rest, rotates in one click.
Rate limits
60 requests a minute and 1,000 an hour per token. Every response carries the remaining counts in headers, and a 429 carries Retry-After.
Monthly allowance
10,000 data requests a month per account on every plan, 75,000 on a paid Pro plan (trials use 10,000). Most calls cost 1; GET /me/usage shows what is left and costs nothing. How it is counted.
Plans
Basic, $55 a month, reaches 18 of 64 endpoints; Premium, $95, reaches 42; Pro, $195, reaches all 64. Each endpoint follows the plan of its feature in the web app, and every card and endpoint page shows which. Compare plans.
Use of the data
For your own analysis, models and tools. The terms do not allow redistributing or reselling API data to third parties.
Spec
OpenAPI 3.1 at /docs/api/openapi.json, the whole reference as one Markdown file at /llms-full.txt. Shared conventions, the error model and the changelog.

Questions

Asked before
the first call.

Is there a free tier?

No. The API and the MCP server come with every paid plan, and every plan starts with a free trial that includes the API from day one. The trial needs a card. Documentation pages like this one are public, with captured responses rather than live calls.

What counts against the monthly allowance?

Upstream data requests, not API calls. Most calls read one source and cost 1; composites such as the expected move or the mispricing assessment cost 2 to 3. GET /me/usage shows the live figure and costs nothing.

Is this a real-time quote feed?

No. It is a request-and-response REST API for options analytics: you ask for a snapshot and get JSON back. There is no streaming connection, and the chain's bid and ask are the data feed's parity-implied values, not the exchange NBBO, so they are for analysis rather than order routing.

Which plan do I need?

Each endpoint follows the plan of its feature in the web app. Basic covers chains, expirations, contracts by delta, Greeks heatmaps, strategies and the calendars. Premium adds IV rank and the volatility endpoints, gamma exposure, flow, the expected move and screens. Pro adds historical chains, skew, earnings analytics, portfolio risk and the rest.

Can I use the data in my own product?

It is for your own analysis, models and tools. The terms of service do not allow redistributing, reselling or passing API data to third parties, directly or through a product built on it.

Can an AI assistant use it?

Yes. The ApexVol MCP server wraps the same endpoints as tools that Claude, ChatGPT, Cursor and other MCP clients call by name. Add it from Claude's connector directory or paste https://apexvol.com/mcp-server; it signs in to your ApexVol account, so there is no token to paste.

One token,
every family.

API access comes with every paid plan, and each endpoint follows the plan of its feature in the web app. From $55 a month, with a 7-day trial, card required.

API and MCP access need a paid or trial plan.