{"openapi":"3.1.0","info":{"title":"Black-Scholes Options API","version":"1.0.0","description":"Black-Scholes-Merton European option pricing as an API, computed locally and deterministically. The price endpoint computes the fair value of a European call and put from the spot price, strike, annualized risk-free rate, annualized volatility, time to expiry in years and an optional continuous dividend yield, using Call = S·e^(−qT)·N(d1) − K·e^(−rT)·N(d2) and the put-call-parity put, with d1 = [ln(S/K) + (r − q + σ²/2)·T]/(σ√T) and d2 = d1 − σ√T and a high-accuracy standard-normal CDF — an at-the-money option on a 100 spot with a 5 % rate, 20 % volatility and one year to expiry is worth about 10.45 for the call and 5.57 for the put. The greeks endpoint returns the full risk sensitivities for both call and put: delta (∂V/∂S), gamma (∂²V/∂S²), vega (∂V/∂σ, per 1.00 and per 1 % point), theta (∂V/∂t, per year and per calendar day) and rho (∂V/∂r). Rates, dividend yield and volatility are annualized and time is in years, continuous compounding. Everything is computed locally and deterministically, so it is instant and private. Ideal for fintech, trading, quant, portfolio-risk, derivatives and finance-education app developers, option-pricing and Greeks dashboards, and risk engines. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 2 endpoints. This is the European Black-Scholes model; for American-style early exercise or implied volatility solving it returns the closed-form European result only.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/blackscholes-api","description":"oanor gateway"}],"tags":[{"name":"BlackScholes"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/greeks":{"get":{"operationId":"get_v1_greeks","tags":["BlackScholes"],"summary":"Option Greeks","description":"","parameters":[{"name":"spot","in":"query","required":true,"description":"Spot price S","schema":{"type":"string"},"example":"100"},{"name":"strike","in":"query","required":true,"description":"Strike price K","schema":{"type":"string"},"example":"100"},{"name":"rate","in":"query","required":true,"description":"Annual risk-free rate (e.g. 0.05)","schema":{"type":"string"},"example":"0.05"},{"name":"volatility","in":"query","required":true,"description":"Annual volatility (e.g. 0.2)","schema":{"type":"string"},"example":"0.2"},{"name":"time","in":"query","required":true,"description":"Time to expiry in years","schema":{"type":"string"},"example":"1"},{"name":"dividend_yield","in":"query","required":false,"description":"Continuous dividend yield (e.g. 0.03)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Greeks: delta = ∂V/∂S, gamma = ∂²V/∂S², vega = ∂V/∂σ (per 1.00 vol; vega_per_1pct per 1% point), theta = ∂V/∂t (per year and per day), rho = ∂V/∂r.","vega":37.52403469,"gamma":0.0187620173,"inputs":{"rate":0.05,"spot":100,"time":1,"strike":100,"volatility":0.2,"dividend_yield":0},"put_rho":-41.89045902,"call_rho":53.23248343,"put_delta":-0.36316941,"call_delta":0.63683059,"vega_per_1pct":0.37524035,"put_theta_per_day":-0.00454214,"call_theta_per_day":-0.01757268,"put_theta_per_year":-1.65788052,"call_theta_per_year":-6.41402764},"meta":{"timestamp":"2026-06-05T19:50:26.018Z","request_id":"972ceac2-42b9-4a99-ae70-6b58e3d02e27"},"status":"ok","message":"Option Greeks","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/price":{"get":{"operationId":"get_v1_price","tags":["BlackScholes"],"summary":"Option price (call & put)","description":"","parameters":[{"name":"spot","in":"query","required":true,"description":"Spot price S","schema":{"type":"string"},"example":"100"},{"name":"strike","in":"query","required":true,"description":"Strike price K","schema":{"type":"string"},"example":"100"},{"name":"rate","in":"query","required":true,"description":"Annual risk-free rate (e.g. 0.05)","schema":{"type":"string"},"example":"0.05"},{"name":"volatility","in":"query","required":true,"description":"Annual volatility (e.g. 0.2)","schema":{"type":"string"},"example":"0.2"},{"name":"time","in":"query","required":true,"description":"Time to expiry in years","schema":{"type":"string"},"example":"1"},{"name":"dividend_yield","in":"query","required":false,"description":"Continuous dividend yield (e.g. 0.03)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"d1":0.35,"d2":0.15,"note":"Black-Scholes-Merton. Call = S·e^(−qT)·N(d1) − K·e^(−rT)·N(d2); Put by put-call parity. Rate, dividend yield and volatility are annualized; time in years. ATM S=K=100, r=5%, σ=20%, T=1 gives a call ≈ 10.45.","inputs":{"rate":0.05,"spot":100,"time":1,"strike":100,"volatility":0.2,"dividend_yield":0},"put_price":5.57351807,"call_price":10.45057562},"meta":{"timestamp":"2026-06-05T19:50:26.122Z","request_id":"6a37ee3c-690f-4e0a-a8c2-e2f4534fcb95"},"status":"ok","message":"Option price","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"notes":"Inputs: spot, strike, rate (annualized), volatility (annualized), time (years), optional dividend_yield. European exercise, continuous compounding. For American options or implied volatility this returns the European model only.","service":"blackscholes-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/price":"Call and put price plus d1/d2.","GET /v1/greeks":"Delta, gamma, vega, theta and rho for call and put."},"description":"Black-Scholes-Merton European option pricing and Greeks (delta, gamma, vega, theta, rho)."},"meta":{"timestamp":"2026-06-05T19:50:26.226Z","request_id":"5627ef76-490a-46d4-adba-922f7290034d"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":2500,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1200,"monthly_call_quota":25000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":3500,"monthly_call_quota":130000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":11000,"monthly_call_quota":850000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/blackscholes-api"}