{"openapi":"3.1.0","info":{"title":"Betting Odds API","version":"1.0.0","description":"Betting-odds maths as an API, computed locally and deterministically. The convert endpoint translates a price between every format used by bookmakers — decimal (European), fractional (UK), American (moneyline) and the implied probability — give it any one and it returns all the others, with the implied probability that the odds represent (1 ÷ decimal). The payout endpoint computes the profit and total return for a stake at given decimal or American odds. The parlay endpoint combines several decimal-odds selections into one accumulator by multiplying them, returning the combined odds, the implied probability and the payout for a stake — every leg must win, so the payout grows fast while the probability shrinks. Decimal odds are the total return per unit staked, American odds are at least +100 for an underdog or −100 or lower for a favourite, and fractional odds look like 5/2. Everything is computed locally and deterministically, so it is instant and private. Ideal for sports-betting, fantasy, odds-comparison and gaming app developers, bet-slip and value tools, and probability education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is odds conversion; for probability distributions use a probability API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/odds-api","description":"oanor gateway"}],"tags":[{"name":"Odds"},{"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/convert":{"get":{"operationId":"get_v1_convert","tags":["Odds"],"summary":"Convert odds","description":"","parameters":[{"name":"decimal","in":"query","required":false,"description":"Decimal odds","schema":{"type":"string"},"example":"2.5"},{"name":"american","in":"query","required":false,"description":"Or American/moneyline odds","schema":{"type":"string"}},{"name":"fractional","in":"query","required":false,"description":"Or fractional odds (e.g. 5/2)","schema":{"type":"string"}},{"name":"probability","in":"query","required":false,"description":"Or implied probability (0–1)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Decimal = total return per 1 staked; American ≥ +100 underdog or ≤ −100 favourite; implied probability = 1/decimal.","inputs":{"source":"decimal"},"decimal":2.5,"american":"+150","fractional":"3/2","american_value":150,"implied_probability":0.4,"implied_probability_percent":40},"meta":{"timestamp":"2026-06-05T03:08:59.151Z","request_id":"5c76c5be-72a8-47ab-bfb7-19aa1e549140"},"status":"ok","message":"Odds convert","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/parlay":{"get":{"operationId":"get_v1_parlay","tags":["Odds"],"summary":"Parlay / accumulator","description":"","parameters":[{"name":"odds","in":"query","required":true,"description":"Comma-separated decimal odds","schema":{"type":"string"},"example":"1.5,2.0,3.0"},{"name":"stake","in":"query","required":false,"description":"Stake","schema":{"type":"string"},"example":"10"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"A parlay multiplies the decimal odds of every leg; all selections must win. Higher payout, lower probability.","inputs":{"legs":3,"stake":10},"profit":80,"american":"+800","total_return":90,"combined_decimal_odds":9,"implied_probability_percent":11.1111},"meta":{"timestamp":"2026-06-05T03:08:59.243Z","request_id":"f7e2359f-cdf9-4d53-86c9-d50298224f63"},"status":"ok","message":"Parlay","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/payout":{"get":{"operationId":"get_v1_payout","tags":["Odds"],"summary":"Payout","description":"","parameters":[{"name":"stake","in":"query","required":true,"description":"Stake","schema":{"type":"string"},"example":"100"},{"name":"decimal","in":"query","required":false,"description":"Decimal odds","schema":{"type":"string"},"example":"2.5"},{"name":"american","in":"query","required":false,"description":"Or American odds","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Total return = stake × decimal odds; profit = total return − stake.","inputs":{"stake":100,"decimal_odds":2.5},"profit":150,"total_return":250,"implied_probability_percent":40},"meta":{"timestamp":"2026-06-05T03:08:59.320Z","request_id":"3baadbea-2127-4174-a108-50abb1dc3c96"},"status":"ok","message":"Payout","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":"Decimal odds are the total return per 1 staked (must be > 1). American odds are ≥ +100 or ≤ −100. Fractional like '5/2'.","service":"odds-api","formulae":{"parlay":"product of the legs' decimal odds","american_to_decimal":"+a → a/100 + 1 ; −a → 100/|a| + 1","implied_probability":"1 / decimal"},"endpoints":{"GET /v1/meta":"This document.","GET /v1/parlay":"Combine several decimal odds into one accumulator with its payout.","GET /v1/payout":"Profit and total return for a stake at given odds.","GET /v1/convert":"Convert any odds format (decimal, fractional, American, probability) to all the others."},"description":"Betting-odds calculator: convert between decimal, fractional, American (moneyline) odds and implied probability, compute payouts, and combine a parlay."},"meta":{"timestamp":"2026-06-05T03:08:59.412Z","request_id":"5a51eca0-e57f-4089-adc7-c6810e364629"},"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":3000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":400,"monthly_call_quota":40000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1200,"monthly_call_quota":250000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":3900,"monthly_call_quota":1544000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/odds-api"}