API and MCP server

Get probability of profit, the option finder, delayed quotes and option chains from your own code, or from AI assistants through MCP. It uses the same calculations as the calculator.

Getting a key

Sign up for a free API key. You add a card with Stripe (the free tier is not charged) and confirm your email; the key works once both are done. Already have an account? Create a key on your account page. Send the key with every request:

Authorization: Bearer opc_live_...

Optionally, lock a key to your servers on the account page: allowed IP addresses or ranges (IPv4 or IPv6, e.g. 203.0.113.0/24) and allowed user agents (the request's User-Agent must contain one of them). A request that doesn't match gets HTTP 403 with error.code ip_not_allowed or user_agent_not_allowed.

Plans and limits

PlanPriceRequests / monthPer second / minuteOver the quota
FreeFree 3,000 (100/day) 1 / 10 Refused
Starter$5/mo 10,000 2 / 30 $1 per 1,000
Basic$20/mo 50,000 5 / 100 $0.80 per 1,000
Pro$75/mo 250,000 10 / 300 $0.60 per 1,000
Business$250/mo 1,000,000 25 / 1,000 $0.40 per 1,000
Scale$1,000/mo 5,000,000 50 / 2,500 $0.30 per 1,000
Enterprise$2,500/mo 15,000,000 100 / 5,000 $0.25 per 1,000
Enterprise Plus$3,500/mo 25,000,000 150 / 7,500 $0.20 per 1,000
Ultra$10,000/mo 100,000,000 300 / 15,000 $0.15 per 1,000
No key20/day per IP– / 5quote and expirations only

An option finder search counts as 5 requests, and a calculation with graph data as 2. Requests count across all your keys. Daily limits reset at midnight New York time, and the Free plan's monthly quota on the 1st of each month, also New York time. See pricing for details.

Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (per minute), X-Quota-Limit, X-Quota-Remaining and X-Quota-Reset (this billing period), and X-Overage-Requests. Identical /finder and /calculate requests within 2 minutes return the same result (X-Cache: HIT) and still count towards your quota. When a request is refused you get HTTP 429 with error.code rate_limited, quota_exceeded (Free plan) or overage_cap_reached, and a Retry-After header. Prices are delayed by at least 15 minutes.

Endpoints

Base URL: https://www.optionsprofitcalculator.com/api/v1. Every response is {"success": true, "data": {...}} or {"success": false, "error": {"code": "...", "message": "..."}}. The OpenAPI spec is at /openapi.json.

EndpointWhat it does
GET /quote?symbol=AAPLStock price, bid/ask and 30-day implied volatility (IV30)
GET /expirations?symbol=AAPLOption expiry dates
GET /chain?symbol=AAPL&expiry=2026-12-18Calls and puts for one expiry, with implied volatility
POST /popProbability of profit, breakevens, max profit and loss for any position
POST /calculateEverything /pop returns, plus the P/L graph data: profit by stock price and date
GET /finderThe best options or spreads for a price target

Probability of profit

Send up to 8 option legs and 1 stock leg. Leave out price or iv to use the current market.

curl -X POST https://www.optionsprofitcalculator.com/api/v1/pop \
  -H "Authorization: Bearer $OPC_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "symbol": "AAPL",
    "legs": [
      {"type": "call", "action": "buy",  "strike": 230, "expiry": "2026-12-18", "quantity": 1},
      {"type": "call", "action": "sell", "strike": 240, "expiry": "2026-12-18", "quantity": 1}
    ]
  }'

The response includes probabilityOfProfit (0 to 1), breakevens, maxProfit, maxLoss, netCost (negative for a credit), collateral for naked short options, and the prices and IVs used. Money values are dollars for the whole position. calculatorUrl opens the same position in the calculator, at the same prices. It is null when the calculator can't open the position from a link: no symbol given, 7 or more than 8 option legs, more than 500 contracts or 50,000 shares, or a stock price above $10,000. A leg priced by you at a strike or expiry that isn't listed opens with an error message in the calculator.

Probability of profit is the chance of making at least $0.01 at the earliest expiry. It uses a lognormal model of the stock price, with the 30-day implied volatility.

Calculation with graph data

POST /calculate takes the same body as /pop and returns the same results, plus a graph object with the profit/loss grid the calculator shows:

"graph": {
  "today": "2026-11-04",
  "prices": [330, 332, ..., 390],
  "dates": [{"date": "2026-11-05", "daysFromToday": 1, "atExpiry": false}, ..., {"date": "2026-12-18", "daysFromToday": 44, "atExpiry": true}],
  "profitLoss": [[-367, -362, ...], ...],
  "expiry": {"date": "2026-12-18", "profitLoss": [...]},
  "entryCost": 367
}

profitLoss[d][p] is the profit or loss in dollars, for the whole position, if closed at prices[p] on dates[d]. Dates are New York market dates, and daysFromToday counts calendar days from today, the date in New York. The first column is not necessarily today. The last date is the earliest expiry. Optional: priceMin and priceMax to set the price range, and ivChange to shift implied volatility by a percentage (e.g. -10).

Option finder

curl "https://www.optionsprofitcalculator.com/api/v1/finder?symbol=AAPL&target=eq&price=250&date=2026-12-18&budget=1000&strategies=option-purchase,debit-spread" \
  -H "Authorization: Bearer $OPC_API_KEY"
Parameter
symbolTicker
targeteq (at the price), gt (above it) or lt (below it)
priceTarget stock price
dateWhen you expect it, YYYY-MM-DD
exactExpirytrue to search only the expiry on (or next after) the date. Otherwise, every expiry from the date on.
budgetMost to risk, in dollars. Positions are sized to fit.
strategiesComma list of option-purchase, short-option, credit-spread, debit-spread

Returns up to 5 results, ranked by return on max risk at the target price and date (return on estimated margin for naked short options). Each has a calculatorUrl that opens it in the calculator.

MCP server

AI assistants that support MCP (Claude Code, Claude Desktop, Cursor, VS Code and others) can use the same calculations as tools: get_quote, get_expirations, get_option_chain, probability_of_profit, calculate_position and find_options. Then you can ask things like "What's the probability of profit on an AAPL 350/360 call spread for December?"

Set up in 3 steps

  1. Get a free API key (add a card, not charged on the free plan, and verify your email).
  2. Add the server to your app with the snippet below, replacing opc_live_... with your key.
  3. Restart the app or start a new chat, and ask about an options trade.

Server URL: https://www.optionsprofitcalculator.com/mcp (Streamable HTTP). Send your key in the Authorization: Bearer opc_live_... or X-API-Key: opc_live_... header.

Claude Code

claude mcp add --transport http optionsprofitcalculator https://www.optionsprofitcalculator.com/mcp \
  --header "Authorization: Bearer opc_live_..."

Claude Desktop

Settings → Developer → Edit Config, add this to claude_desktop_config.json, then restart Claude Desktop (needs Node.js):

{
  "mcpServers": {
    "optionsprofitcalculator": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://www.optionsprofitcalculator.com/mcp",
               "--header", "X-API-Key:opc_live_..."]
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "optionsprofitcalculator": {
      "url": "https://www.optionsprofitcalculator.com/mcp",
      "headers": { "X-API-Key": "opc_live_..." }
    }
  }
}

VS Code (GitHub Copilot)

Add to .vscode/mcp.json:

{
  "servers": {
    "optionsprofitcalculator": {
      "type": "http",
      "url": "https://www.optionsprofitcalculator.com/mcp",
      "headers": { "X-API-Key": "opc_live_..." }
    }
  }
}

Claude.ai in the browser

Claude.ai's custom connectors sign in with OAuth and can't send an API key, so they aren't supported yet. Use Claude Code or Claude Desktop for now.

Limits

MCP calls share your API key's plan: the Free plan includes 100 requests a day and 3,000 a month (a find_options search counts as 5, calculate_position as 2). Paid plans raise the limits. Without a key, only get_quote and get_expirations work, a few times a day.

Every tool result includes an attribution line, and the server asks assistants to credit Options Profit Calculator as the source of the data and calculations.

Attribution

When you show results from the API or MCP server, please credit Options Profit Calculator and link to optionsprofitcalculator.com. For example: Data and calculations: Options Profit Calculator (optionsprofitcalculator.com). Where a result has a calculatorUrl, linking to it lets your users see the full calculation.

Disclaimer

Estimates are for information only and are not financial advice. See the terms and conditions.