- Live API Reference
- Pricing Calculators
- BSM Greeks Calculator
BSM Greeks Calculator API
Theoretical price plus first, second and third-order greeks from the inputs you provide.
Endpoint
Computes full Black-Scholes-Merton greeks from the inputs you provide. Returns the theoretical price plus first-order, second-order and third-order greeks. Pure calculation - no market data required. Available on all plans (Free+).
X-Api-Key)
Rate Limited: Yes
Plan: Free+
Parameters
| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
spot |
query | number | required | - | Underlying spot price. Invalid values return 400 invalid_input. Non-numeric values return a 400 problem-details body. |
strike |
query | number | required | - | Strike price. Invalid values return 400 invalid_input. Non-numeric values return a 400 problem-details body. |
dte |
query | number | required | - | Days to expiration. Invalid values return 400 invalid_input. Non-numeric values return a 400 problem-details body. |
sigma |
query | number | required | - | Implied volatility (annualized, e.g. 0.18 = 18%). Invalid values return 400 invalid_input. Non-numeric values return a 400 problem-details body. |
type |
query | enum | call |
call or put. Invalid values return 400 invalid_input. |
|
r |
query | number | 0.045 |
Risk-free rate (annualized). Non-numeric values return a 400 problem-details body. | |
q |
query | number | 0.013 |
Dividend yield (annualized). Non-numeric values return a 400 problem-details body. |
Request
curl -H "X-Api-Key: YOUR_API_KEY" \
"https://lab.flashalpha.com/v1/pricing/greeks?spot=580&strike=580&dte=30&sigma=0.18&type=call"import requests
resp = requests.get(
"https://lab.flashalpha.com/v1/pricing/greeks",
params={"spot": 580, "strike": 580, "dte": 30, "sigma": 0.18, "type": "call"},
headers={"X-Api-Key": "YOUR_API_KEY"}
)
resp.raise_for_status()
g = resp.json()
print(f"Price {g['theoretical_price']} | delta {g['first_order']['delta']} | vanna {g['second_order']['vanna']}")const qs = new URLSearchParams({ spot: 580, strike: 580, dte: 30, sigma: 0.18, type: "call" });
const resp = await fetch(`https://lab.flashalpha.com/v1/pricing/greeks?${qs}`, {
headers: { "X-Api-Key": "YOUR_API_KEY" }
});
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
const g = await resp.json();
console.log(`Price ${g.theoretical_price} | delta ${g.first_order.delta}`);Try it live
Runs on live market data and uses 1 request from your daily quota.
Response
{
"inputs": {
"spot": 580,
"strike": 580,
"dte": 30,
"sigma": 0.18,
"type": "call",
"risk_free_rate": 0.045,
"dividend_yield": 0.013
},
"theoretical_price": 12.6872,
"first_order": {
"delta": 0.53003,
"gamma": 0.013276,
"theta": -0.223599,
"vega": 0.660706,
"rho": 24.2244
},
"second_order": {
"vanna": -0.055551,
"charm": 0.00049,
"vomma": 0.709126,
"dual_delta": -0.508155
},
"third_order": {
"speed": -0.000057,
"zomma": -0.07361,
"color": -0.000223,
"ultima": -17.2416
},
"additional": {
"lambda": 24.2305,
"veta": 1.0923
},
"endpoint_version": "2026.09.30",
"data_as_of": {
"node": "fa5",
"equity_feed": "2026-10-30T13:46:17.449Z",
"equity_options_feed": "2026-10-30T13:46:17Z",
"index_feed": "2026-10-30T13:46:16.137Z",
"index_options_feed": "2026-10-30T13:46:16Z",
"futures_feed": "2026-10-30T13:46:15.271Z",
"futures_options_feed": "2026-10-30T13:46:14.335Z",
"flow_feed": "2026-10-30T13:46:00Z",
"oi_feed": "2026-10-29T20:00:00Z",
"macro_feed": "2026-10-29T21:00:20Z"
}
}Sending request…
See this endpoint on live data
Send this exact request and the real response shows up here, right next to the example.
Response Fields
| Field | Type | Description |
|---|---|---|
theoretical_price | number | BSM theoretical option price |
first_order.delta | number | ∂V/∂S - sensitivity to spot price |
first_order.gamma | number | ∂²V/∂S² - rate of change of delta |
first_order.theta | number | ∂V/∂t - time decay per day |
first_order.vega | number | ∂V/∂σ - sensitivity to a 1% vol change |
first_order.rho | number | ∂V/∂r - sensitivity to the interest rate |
second_order.vanna | number | ∂²V/∂S∂σ - delta sensitivity to vol |
second_order.charm | number | ∂²V/∂S∂t - delta decay per day |
second_order.vomma | number | ∂²V/∂σ² - vega convexity (volga) |
second_order.dual_delta | number | ∂V/∂K - sensitivity to strike price |
third_order.speed | number | ∂³V/∂S³ - gamma sensitivity to spot |
third_order.zomma | number | ∂³V/∂S²∂σ - gamma sensitivity to vol |
third_order.color | number | ∂³V/∂S²∂t - gamma decay per day |
third_order.ultima | number | ∂³V/∂σ³ - vomma sensitivity to vol |
additional.lambda | number | Delta × S / V - option leverage ratio (null if price ≤ 0) |
additional.veta | number | ∂²V/∂σ∂t - vega decay per day |
inputs | object | Inputs |
inputs.spot | number | Inputs: spot |
inputs.strike | number | Strike price |
inputs.dte | number | Days to expiration |
inputs.sigma | number | Inputs: sigma |
inputs.type | string | Option type |
inputs.risk_free_rate | number | Inputs: risk free rate |
inputs.dividend_yield | number | Inputs: dividend yield |
first_order | object | ∂V/∂S - sensitivity to spot price |
second_order | object | ∂²V/∂S∂σ - delta sensitivity to vol |
third_order | object | ∂³V/∂S³ - gamma sensitivity to spot |
additional | object | Delta × S / V - option leverage ratio (null if price ≤ 0) |
endpoint_version, data_as_of | string, object | Response envelope, see Response envelope. |
Errors
| Status | Error | When |
|---|---|---|
400 | invalid_input | An input is out of range, for example a spot, strike, dte or volatility that is not positive. |
400 | - | A query value has the wrong type, or a required value is missing. The body is an RFC 7807 problem-details object with errors.<param>. |
401 | - | Missing or invalid X-Api-Key. The body is empty; check the status code before parsing JSON. |
429 | Quota exceeded | Daily quota used up. Retry-After gives the seconds until the reset at 00:00 UTC. Rejected requests (including 403) count toward the quota. |
Authentication (401) and rate-limit (429) errors use the common error format, see Error Responses.
What Is the Greeks Calculator Endpoint?
The Greeks Calculator prices a European option with the Black-Scholes-Merton model from inputs you supply and returns every sensitivity in one response: the familiar first-order greeks, the second-order cross greeks (vanna, charm, vomma) that drive dealer hedging, and third-order greeks for convexity analysis. It never reads market data, so you can price hypothetical trades, stress inputs, or check your own pricer against a reference implementation.
Common Use Cases
- Price what-if trades - change spot, vol or days to expiry and read the new price and greeks
- Validate your own pricer - compare your BSM implementation against a reference output
- Study higher-order risk - read vanna, charm, speed and zomma for hedging and convexity work
- Build a calculator UI - back an options calculator without shipping pricing code to the client
Related
Related reading
- Build a BSM pricing tool with the greeks API - a worked calculator example
- Real-time options greeks API - greeks on live chains instead of your own inputs
Complementary endpoints
- Implied Volatility Solver - back out
sigmafrom a market price first - Kelly Position Sizing - size the trade once it is priced
- Option Quote - greeks for live listed contracts