1. API
  2. Strategies
  3. Simulated chain

Strategies API, POST /simulate-chain

What would the SPY chain look like if the stock rose 2% and IV rose 5 points in 10 days?

Re-prices a chain at a hypothetical spot, days to expiry and IV shift. Black-Scholes what-if: pass chain rows from /chain, or just a ticker and the server fetches the chain, and get every contract re-priced with new Greeks at your scenario.

BasicPlan and above, from $55/mo
1MCP tool that calls it
2026-09-08Sample captured from the live endpoint

The answer, in one call

Units first,
then the request.

sim_price in dollars; sim_dte in days; iv_adjustment in IV percentage points; output prices in dollars, IVs as decimals.

Re-pricing holds each contract's IV plus the shift and moves spot and time.

curlBearer token from Account, then API Access
curl -X POST "https://apexvol.com/api/mcp/data/simulate-chain" \
     -H "Authorization: Bearer avmcp_YOUR_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"ticker": "SPY", "sim_price": 785.65, "sim_dte": 10, "iv_adjustment": 5, "strikes_around": 3}'
Pythonrequests, nothing else
import requests

headers = {"Authorization": "Bearer avmcp_YOUR_TOKEN"}
body = {"ticker": "SPY", "sim_price": 785.65, "sim_dte": 10, "iv_adjustment": 5, "strikes_around": 3}
r = requests.post("https://apexvol.com/api/mcp/data/simulate-chain", headers=headers, json=body)
r.raise_for_status()
data = r.json()["data"]
print(data["sim_price"])
In Claude, Cursor or ChatGPTthrough the MCP server, no code
You

Re-price the SPY chain at 790 with 10 days left and IV up 5 points.

The assistant calls simulate_option_chain and answers from the JSON below.

Tokens come with every paid or trial plan. Sign in and create one under Account, then API Access, or start a trial. Your ticker, your budget.

POST /api/mcp/data/simulate-chain200, application/json, captured 2026-09-08
{
  "success": true,
  "data": {
    "chain": [
      {
        "Call Ask": 17.7104,
        "Call Bid": 17.6704,
        "Delta Call": 0.9877,
        "Delta Put": -0.0188,
        "Gamma Call": 0.004,
        "Gamma Put": 0.0053,
        "IV Call": 0.0612,
        "IV Put": 0.0663,
        "IVx Call": 0.1324,
        "IVx Put": 0.0076,
        "Put Ask": 0.0694,
        "Put Bid": 0.0494,
        "Strike": 769.0,
        "Theta Call": -0.112,
        "Theta Put": -0.0179,
        "Vega Call": 0.0414,
        "Vega Put": 0.0599
      },
      {
        "Call Ask": 16.7084,
        "Call Bid": 16.6884,
        "Delta Call": 0.9852,
        "Delta Put": -0.0222,
        "Gamma Call": 0.0048,
        "Gamma Put": 0.0063,
        "IV Call": 0.0596,
        "IV Put": 0.0646,
        "IVx Call": 0.1334,
        "IVx Put": 0.0089,
        "Put Ask": 0.0796,
        "Put Bid": 0.0596,
        "Strike": 770.0,
        "Theta Call": -0.1137,
        "Theta Put": -0.0199,
        "Vega Call": 0.0486,
        "Vega Put": 0.0688
      },
      {
        "Call Ask": 15.7199,
        "Call Bid": 15.6999,
        "Delta Call": 0.9816,
        "Delta Put": -0.0282,
        "Gamma Call": 0.0059,
        "Gamma Put": 0.0078,
        "IV Call": 0.0584,
        "IV Put": 0.0639,
        "IVx Call": 0.1349,
        "IVx Put": 0.0115,
        "Put Ask": 0.1005,
        "Put Bid": 0.0805,
        "Strike": 771.0,
        "Theta Call": -0.116,
        "Theta Put": -0.024,
        "Vega Call": 0.0586,
        "Vega Put": 0.0841
      }
    ],
    "expiration": "2026-09-08",
    "iv_adjustment": 5,
    "sim_dte": 10,
    "sim_price": 785.65
  }
}

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.

NameInDefaultRangeMeaning
sim_price requiredbodydollarsHypothetical spot.
sim_dte requiredbodydaysDays to expiration in the scenario.
iv_adjustmentbody0IV pointsShift applied to every IV.
chainbodyrows from /chainRows to re-price.
tickerbodysymbolFetch the chain when rows are omitted.
expirationbodynearestYYYY-MM-DDWhich expiration to fetch.
strikes_aroundbody200 for allStrikes per side.

Field by field

What each
number means.

chain[].Strike, Call Bid, Call Ask, Put Bid, Put Ask
Re-priced quotes.
chain[].Delta Call, Gamma Call, Theta Call, Vega Call and the put twins
Re-priced Greeks.
sim_price, sim_dte, iv_adjustment, expiration
The scenario echoed.

Access, limits, errors

Before the
first call.

Plan
Basic Basic 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 call https://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 carries Retry-After in seconds.
Errors
401 no or revoked token; 429 Retry-After seconds; 400 missing or malformed body. 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 simulate_option_chain by name. One URL, a sign-in, no token to paste.

Prompts that hit this endpointcopy one into Claude, Cursor or ChatGPT
You

Re-price the SPY chain at 790 with 10 days left and IV up 5 points.

You

What would my NVDA calls be worth if the stock fell 5% tomorrow?

You

Simulate the AAPL chain at a 3% higher spot.

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.

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