{"openapi":"3.1.0","info":{"title":"Options Pricing API","version":"1.0.0","description":"Black-Scholes option-pricing maths as an API, computed locally and deterministically. The black-scholes endpoint prices European call and put options from the spot price, strike, time to expiry, risk-free rate, volatility and an optional dividend yield — Call = S·e^(−qT)·Φ(d1) − K·e^(−rT)·Φ(d2) — returning both prices, the intermediate d1 and d2, and the put-call parity figure. The greeks endpoint computes the full set of option sensitivities for the call and the put: delta, gamma, theta (per year and per day), vega and rho, the quantities traders use to hedge and manage risk. The implied-volatility endpoint inverts the model, solving by bisection for the volatility that reproduces a given option market price. Rates, volatilities and dividend yields are decimals (0.05 = 5 %) and time to expiry is in years. Everything is computed locally and deterministically, so it is instant and private. Ideal for fintech, trading, quantitative-finance and derivatives app developers, options analytics and risk tools, and finance education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is options pricing; for NPV and IRR use an NPV API and for CAGR and real returns an investment API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/options-api","description":"oanor gateway"}],"tags":[{"name":"Options"},{"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/black-scholes":{"get":{"operationId":"get_v1_black_scholes","tags":["Options"],"summary":"Option price","description":"","parameters":[{"name":"spot","in":"query","required":true,"description":"Spot price","schema":{"type":"string"},"example":"100"},{"name":"strike","in":"query","required":true,"description":"Strike price","schema":{"type":"string"},"example":"100"},{"name":"time","in":"query","required":true,"description":"Time to expiry (years)","schema":{"type":"string"},"example":"1"},{"name":"rate","in":"query","required":true,"description":"Risk-free rate (decimal)","schema":{"type":"string"},"example":"0.05"},{"name":"dividend_yield","in":"query","required":false,"description":"Dividend yield (decimal)","schema":{"type":"string"},"example":"0"},{"name":"volatility","in":"query","required":true,"description":"Volatility (decimal)","schema":{"type":"string"},"example":"0.2"}],"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)·Φ(d1) − K·e^(−rT)·Φ(d2); put by parity. Rates/vol are decimals; time in years.","inputs":{"rate":0.05,"spot":100,"time":1,"strike":100,"volatility":0.2,"dividend_yield":0},"put_price":5.573518,"call_price":10.450575,"put_call_parity":4.877058},"meta":{"timestamp":"2026-06-05T03:09:00.614Z","request_id":"e420d234-4aa8-4575-9b55-452d7c07c557"},"status":"ok","message":"Black-Scholes","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/greeks":{"get":{"operationId":"get_v1_greeks","tags":["Options"],"summary":"Option Greeks","description":"","parameters":[{"name":"spot","in":"query","required":true,"description":"Spot price","schema":{"type":"string"},"example":"100"},{"name":"strike","in":"query","required":true,"description":"Strike price","schema":{"type":"string"},"example":"100"},{"name":"time","in":"query","required":true,"description":"Time to expiry (years)","schema":{"type":"string"},"example":"1"},{"name":"rate","in":"query","required":true,"description":"Risk-free rate (decimal)","schema":{"type":"string"},"example":"0.05"},{"name":"dividend_yield","in":"query","required":false,"description":"Dividend yield (decimal)","schema":{"type":"string"},"example":"0"},{"name":"volatility","in":"query","required":true,"description":"Volatility (decimal)","schema":{"type":"string"},"example":"0.2"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"put":{"delta":-0.363169,"rho_per_1pct":-0.418905,"theta_per_day":-0.004542,"theta_per_year":-1.657881},"call":{"delta":0.636831,"rho_per_1pct":0.532325,"theta_per_day":-0.017573,"theta_per_year":-6.414028},"note":"Gamma and vega are the same for calls and puts. Vega and rho are per 1 % move; theta per year and per day.","gamma":0.018762,"inputs":{"rate":0.05,"spot":100,"time":1,"strike":100,"volatility":0.2,"dividend_yield":0},"vega_per_1pct":0.37524},"meta":{"timestamp":"2026-06-05T03:09:00.723Z","request_id":"d23d287d-449f-49a6-bae1-390d75c7b52d"},"status":"ok","message":"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/implied-volatility":{"get":{"operationId":"get_v1_implied_volatility","tags":["Options"],"summary":"Implied volatility","description":"","parameters":[{"name":"spot","in":"query","required":true,"description":"Spot price","schema":{"type":"string"},"example":"100"},{"name":"strike","in":"query","required":true,"description":"Strike price","schema":{"type":"string"},"example":"100"},{"name":"time","in":"query","required":true,"description":"Time to expiry (years)","schema":{"type":"string"},"example":"1"},{"name":"rate","in":"query","required":true,"description":"Risk-free rate (decimal)","schema":{"type":"string"},"example":"0.05"},{"name":"dividend_yield","in":"query","required":false,"description":"Dividend yield (decimal)","schema":{"type":"string"},"example":"0"},{"name":"price","in":"query","required":true,"description":"Option market price","schema":{"type":"string"},"example":"10.45"},{"name":"type","in":"query","required":false,"description":"call or put","schema":{"type":"string"},"example":"call"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"The Black-Scholes volatility that reproduces the given option price, found by bisection.","inputs":{"rate":0.05,"spot":100,"time":1,"type":"call","price":10.45,"strike":100,"dividend_yield":0},"implied_volatility":0.199985,"implied_volatility_percent":19.9985},"meta":{"timestamp":"2026-06-05T03:09:00.801Z","request_id":"28351862-be5e-4ad8-8886-b01d701ef35f"},"status":"ok","message":"Implied vol","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":"Spot/strike in the same currency, time to expiry in years, rate/volatility/dividend_yield as decimals (0.05 = 5 %). European options.","service":"options-api","formulae":{"d1":"(ln(S/K) + (r − q + σ²/2)·T)/(σ√T)","call":"S·e^(−qT)·Φ(d1) − K·e^(−rT)·Φ(d2)","put_call_parity":"C − P = S·e^(−qT) − K·e^(−rT)"},"endpoints":{"GET /v1/meta":"This document.","GET /v1/greeks":"Delta, gamma, theta, vega and rho for the call and the put.","GET /v1/black-scholes":"Call and put prices and d1/d2 from spot, strike, time, rate and volatility.","GET /v1/implied-volatility":"The volatility that reproduces a given option market price."},"description":"Black-Scholes option pricing: call and put prices, the option Greeks (delta, gamma, theta, vega, rho), and implied volatility from a market price."},"meta":{"timestamp":"2026-06-05T03:09:00.877Z","request_id":"09b7eb3d-c793-47b8-b547-4a2bd48c76d7"},"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":2000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1500,"monthly_call_quota":40000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":3900,"monthly_call_quota":300000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":11900,"monthly_call_quota":2000000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/options-api"}