- API
- Risk API
Risk API
Your book,
as one set of Greeks.
Send the positions and get back net delta, theta and vega with a risk level, the P&L under the scenarios you name, a standard stress battery, and the shares or puts that bring delta to target.
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.
{
"portfolio_summary": {
"daily_decay_pct": 0.0234,
"delta_exposure_pct": 130.6218,
"risk_level": "LOW",
"total_cost_basis": 0,
"total_delta": 130.14,
"total_pnl": 76389.0,
"total_pnl_pct": 0,
"total_positions": 2,
"total_theta": 17.85,
"total_value": 76389.0,
"total_vega": -83.79,
"vega_risk_pct": 0.1097
},
"positions_by_ticker": {
"SPY": {
"delta": 130.14,
"positions": [
{
"charm": 0,
"current_price": 6.36,
"delta": -0.3014,
"entry_price": 0,
"expiration": "2026-10-09",
"gamma": 0,
"iv": 0.1365,
"position_type": "PUT",
"quantity": -1,
"rho": 0,
"stock_price": 0,
"strike": 755.0,
"theta": -0.1785,
"ticker": "SPY",
"vanna": 0,
"vega": 0.8379,
"vomma": 0
}
],
"theta": 17.85,
"value": 76389.0,
"vega": -83.79
}
},
"success": true,
"timestamp": "2026-09-08T08:07:44.450169"
}
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.
curl -X POST "https://apexvol.com/api/mcp/data/portfolio-greeks" \
-H "Authorization: Bearer avmcp_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"positions": [{"ticker": "SPY", "position_type": "STOCK", "quantity": 100, "current_price": 770.25}, {"ticker": "SPY", "position_type": "PUT", "quantity": -1, "strike": 755.0, "expiration": "2026-10-09", "current_price": 6.359999999999999, "delta": -0.3014, "theta": -0.1785, "vega": 0.8379, "iv": 0.1365}]}'
import requests
headers = {"Authorization": "Bearer avmcp_YOUR_TOKEN"}
body = {"positions": [{"ticker": "SPY", "position_type": "STOCK", "quantity": 100, "current_price": 770.25}, {"ticker": "SPY", "position_type": "PUT", "quantity": -1, "strike": 755.0, "expiration": "2026-10-09", "current_price": 6.359999999999999, "delta": -0.3014, "theta": -0.1785, "vega": 0.8379, "iv": 0.1365}]}
r = requests.post("https://apexvol.com/api/mcp/data/portfolio-greeks", headers=headers, json=body)
r.raise_for_status()
data = r.json()["data"]
print(data)
What are my portfolio Greeks: 100 SPY shares and short one 30-delta put?
The assistant calls calculate_portfolio_greeks 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
4 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.
POST /hedge-recommendations
How many SPY puts or shares neutralise my delta?
Stock and option hedges that bring your net delta to a target.
Pro
POST /portfolio-greeks
What is my net delta, theta and vega across these positions?
Aggregate Greeks and a risk level for a list of stock and option positions.
Pro
POST /scenario-analysis
What happens to my book if SPY drops 5% and IV rises 20% over 5 days?
Estimated P&L for your positions under the scenarios you specify.
Pro
POST /stress-tests
How does my book hold up in a crash, a vol spike and a melt-up?
A standard battery of stress scenarios with estimated P&L per scenario.
Pro
Field by field
What each
number means.
portfolio_summary.total_delta, total_theta, total_vega- Net across every position: share-equivalents for delta, dollars per day for theta, dollars per vol point for vega.
portfolio_summary.risk_level- Low, moderate, high or extreme, from delta exposure and daily decay against portfolio value.
scenarios[].estimated_pnl- Dollar P&L from a first-order Greeks approximation under the scenario's stock move, IV change and days forward.
delta_contribution, vega_contribution, theta_contribution- How much of each scenario's P&L came from each Greek.
hedges[].contracts, est_cost- Size and cost of each hedge that closes delta_gap.
positions_by_ticker- The same Greeks broken out per underlying.
The same data, in plain English
4 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.
- calculate_portfolio_greeks
- run_scenario_analysis
- generate_stress_tests
- get_hedge_recommendations
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.
Which position fields are required?
ticker, position_type and quantity. Strike, expiration, entry price, current price and the Greeks improve accuracy; missing Greeks are estimated from the chain.
Is the scenario P&L exact?
It is a first-order Greeks approximation, so gamma is ignored. It is good for small moves; for a large move, re-price the legs with the simulate-chain endpoint.
Does it read my broker account?
No. You send the positions in the request body and nothing is stored.
Which plan?
All four risk endpoints 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.