{"openapi":"3.1.0","info":{"title":"Option Strategy API","version":"1.0.0","description":"Live options-strategy payoff and analysis that options traders run before placing a trade — computed on demand, no key, nothing cached. Get the profit-at-expiry curve of any multi-leg position (calls, puts and stock) plus the net premium, maximum profit, maximum loss and breakeven points; pull just those headline numbers; or build a named strategy (straddle, strangle, bull/bear spread, covered call, protective put, iron condor) from friendly parameters and analyse it. Works for equity, FX or crypto options. A multi-leg payoff engine, distinct from single-option pricing tools: it turns a combination of legs into the profit profile, breakevens and risk a trader acts on.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/optionstrategy-api","description":"oanor gateway"}],"tags":[{"name":"Option Strategy"}],"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/breakeven":{"get":{"operationId":"get_v1_breakeven","tags":["Option Strategy"],"summary":"Net premium, max profit/loss and breakevens only","description":"","parameters":[{"name":"legs","in":"query","required":true,"description":"Legs type:strike:premium:qty, comma-separated","schema":{"type":"string"},"example":"call:100:6:1,call:110:2:-1"},{"name":"multiplier","in":"query","required":false,"description":"Contract multiplier (default 1)","schema":{"type":"string"},"example":"1"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"legs":[{"qty":1,"type":"call","strike":100,"premium":6},{"qty":-1,"type":"call","strike":110,"premium":2}],"source":"OPTIONSTRATEGY","max_loss":-4,"position":"net debit","spot_max":220,"spot_min":0,"breakevens":[104],"max_profit":6,"multiplier":1,"max_loss_at":0,"net_premium":4,"max_profit_at":110,"max_profit_unbounded":false},"meta":{"timestamp":"2026-06-10T22:56:17.799Z","request_id":"25530d84-192a-4dc7-ada8-c6857efa449d"},"status":"ok","message":"Breakeven computed","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":["Option Strategy"],"summary":"Service metadata and endpoint list","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Legs format: type:strike:premium:qty, comma-separated (e.g. legs=call:100:5:1,put:100:5:1). type = call|put|stock; qty signed (negative = short); stock uses entry price as the 'strike' field.","source":"Computed in-process from caller-supplied legs (no upstream)","service":"optionstrategy-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/payoff":"Profit-at-expiry curve + metrics for a multi-leg position (legs=call:100:5:1,put:100:5:1).","GET /v1/strategy":"Build & analyse a named strategy (name=straddle, strike=100, premium_call=5, premium_put=5).","GET /v1/breakeven":"Net premium, max profit/loss and breakevens only (legs=...).","GET /v1/strategies":"List supported named strategies and their parameters."},"description":"Live options-strategy payoff and analysis computed on demand. The payoff endpoint returns the profit-at-expiry curve of any multi-leg position (calls, puts and stock) plus net premium, maximum profit, maximum loss and breakeven points; the breakeven endpoint returns just those headline numbers; the strategy endpoint builds a named strategy (straddle, strangle, bull/bear spread, covered call, protective put, iron condor) from friendly parameters and analyses it; the strategies endpoint lists the supported strategies. Computed live from your input, nothing stored — works for equity, FX or crypto options. A multi-leg payoff engine, distinct from single-option pricing tools.","upstream_status":"ok"},"meta":{"timestamp":"2026-06-10T22:56:17.881Z","request_id":"315ec879-308c-4831-8b13-e41a04d791cc"},"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"}}}},"/v1/payoff":{"get":{"operationId":"get_v1_payoff","tags":["Option Strategy"],"summary":"Profit-at-expiry curve + metrics for a multi-leg position","description":"","parameters":[{"name":"legs","in":"query","required":true,"description":"Legs type:strike:premium:qty, comma-separated (qty signed)","schema":{"type":"string"},"example":"call:100:5:1,put:100:5:1"},{"name":"multiplier","in":"query","required":false,"description":"Contract multiplier (default 1)","schema":{"type":"string"},"example":"1"},{"name":"steps","in":"query","required":false,"description":"Curve resolution 5-500 (default 50)","schema":{"type":"string"},"example":"50"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"legs":[{"qty":1,"type":"call","strike":100,"premium":5},{"qty":1,"type":"put","strike":100,"premium":5}],"curve":[{"price":0,"profit":90},{"price":4,"profit":86},{"price":8,"profit":82},{"price":12,"profit":78},{"price":16,"profit":74},{"price":20,"profit":70},{"price":24,"profit":66},{"price":28,"profit":62},{"price":32,"profit":58},{"price":36,"profit":54},{"price":40,"profit":50},{"price":44,"profit":46},{"price":48,"profit":42},{"price":52,"profit":38},{"price":56,"profit":34},{"price":60,"profit":30},{"price":64,"profit":26},{"price":68,"profit":22},{"price":72,"profit":18},{"price":76,"profit":14},{"price":80,"profit":10},{"price":84,"profit":6},{"price":88,"profit":2},{"price":92,"profit":-2},{"price":96,"profit":-6},{"price":100,"profit":-10},{"price":104,"profit":-6},{"price":108,"profit":-2},{"price":112,"profit":2},{"price":116,"profit":6},{"price":120,"profit":10},{"price":124,"profit":14},{"price":128,"profit":18},{"price":132,"profit":22},{"price":136,"profit":26},{"price":140,"profit":30},{"price":144,"profit":34},{"price":148,"profit":38},{"price":152,"profit":42},{"price":156,"profit":46},{"price":160,"profit":50},{"price":164,"profit":54},{"price":168,"profit":58},{"price":172,"profit":62},{"price":176,"profit":66},{"price":180,"profit":70},{"price":184,"profit":74},{"price":188,"profit":78},{"price":192,"profit":82},{"price":196,"profit":86},{"price":200,"profit":90}],"source":"OPTIONSTRATEGY","max_loss":-10,"position":"net debit","spot_max":200,"spot_min":0,"breakevens":[90,110],"multiplier":1,"max_loss_at":100,"net_premium":10,"max_profit_unbounded":true},"meta":{"timestamp":"2026-06-10T22:56:17.982Z","request_id":"5f2b442e-4098-4e86-933c-bf085797d6f3"},"status":"ok","message":"Payoff computed","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/strategies":{"get":{"operationId":"get_v1_strategies","tags":["Option Strategy"],"summary":"List supported named strategies and their parameters","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Call /v1/strategy?name=<name>&<params> with the parameters listed. Premiums are per-unit option prices.","count":9,"source":"OPTIONSTRATEGY","strategies":[{"name":"long_call","parameters":"strike, premium"},{"name":"long_put","parameters":"strike, premium"},{"name":"straddle","parameters":"strike, premium_call, premium_put"},{"name":"strangle","parameters":"call_strike, put_strike, premium_call, premium_put"},{"name":"bull_call_spread","parameters":"lower_strike, upper_strike, premium_lower, premium_upper"},{"name":"bear_put_spread","parameters":"upper_strike, lower_strike, premium_upper, premium_lower"},{"name":"covered_call","parameters":"stock_price, strike, premium"},{"name":"protective_put","parameters":"stock_price, strike, premium"},{"name":"iron_condor","parameters":"put_long_strike, put_short_strike, call_short_strike, call_long_strike, premium_put_long, premium_put_short, premium_call_short, premium_call_long"}]},"meta":{"timestamp":"2026-06-10T22:56:18.080Z","request_id":"dfbad22b-8376-4f77-968f-29abcb8ef107"},"status":"ok","message":"Strategies listed","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/strategy":{"get":{"operationId":"get_v1_strategy","tags":["Option Strategy"],"summary":"Build & analyse a named strategy","description":"","parameters":[{"name":"name","in":"query","required":true,"description":"Strategy name (see /v1/strategies)","schema":{"type":"string"},"example":"straddle"},{"name":"strike","in":"query","required":false,"description":"Strike (for straddle/long_call/long_put)","schema":{"type":"string"},"example":"100"},{"name":"premium_call","in":"query","required":false,"description":"Call premium","schema":{"type":"string"},"example":"5"},{"name":"premium_put","in":"query","required":false,"description":"Put premium","schema":{"type":"string"},"example":"5"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"legs":[{"qty":1,"type":"call","strike":100,"premium":5},{"qty":1,"type":"put","strike":100,"premium":5}],"curve":[{"price":0,"profit":90},{"price":4,"profit":86},{"price":8,"profit":82},{"price":12,"profit":78},{"price":16,"profit":74},{"price":20,"profit":70},{"price":24,"profit":66},{"price":28,"profit":62},{"price":32,"profit":58},{"price":36,"profit":54},{"price":40,"profit":50},{"price":44,"profit":46},{"price":48,"profit":42},{"price":52,"profit":38},{"price":56,"profit":34},{"price":60,"profit":30},{"price":64,"profit":26},{"price":68,"profit":22},{"price":72,"profit":18},{"price":76,"profit":14},{"price":80,"profit":10},{"price":84,"profit":6},{"price":88,"profit":2},{"price":92,"profit":-2},{"price":96,"profit":-6},{"price":100,"profit":-10},{"price":104,"profit":-6},{"price":108,"profit":-2},{"price":112,"profit":2},{"price":116,"profit":6},{"price":120,"profit":10},{"price":124,"profit":14},{"price":128,"profit":18},{"price":132,"profit":22},{"price":136,"profit":26},{"price":140,"profit":30},{"price":144,"profit":34},{"price":148,"profit":38},{"price":152,"profit":42},{"price":156,"profit":46},{"price":160,"profit":50},{"price":164,"profit":54},{"price":168,"profit":58},{"price":172,"profit":62},{"price":176,"profit":66},{"price":180,"profit":70},{"price":184,"profit":74},{"price":188,"profit":78},{"price":192,"profit":82},{"price":196,"profit":86},{"price":200,"profit":90}],"source":"OPTIONSTRATEGY","max_loss":-10,"position":"net debit","spot_max":200,"spot_min":0,"strategy":"straddle","breakevens":[90,110],"multiplier":1,"max_loss_at":100,"net_premium":10,"max_profit_unbounded":true},"meta":{"timestamp":"2026-06-10T22:56:18.178Z","request_id":"7d2508ca-4270-4828-9a95-e61517d046e6"},"status":"ok","message":"Strategy analysed","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":4750,"rps_limit":3,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":675,"monthly_call_quota":107000,"rps_limit":10,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1825,"monthly_call_quota":525000,"rps_limit":25,"hard_limit":true},{"slug":"business","name":"Business","price_cents_month":4400,"monthly_call_quota":3220000,"rps_limit":55,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/optionstrategy-api"}