New endpoint
Market catalogue: GET /v3/markets
See every market we serve, per sport, straight from live coverage:shape telling you how to parse its odds (moneyline, line, outcomes, yesno, labelled), a period (match, first-half, set, …) and prematch/live flags. Omit sport to get everything keyed by sport slug.OddsCoverage
Market normalization and much wider Bet365 coverage
We’ve normalized market names and shapes across all our scrapers, mostly affecting Bet365. Markets that used bookmaker-specific names now return under the same standard names as every other book, so cross-bookmaker filtering and comparison just works.Bet365 got a lot more. All handicap and goal lines now come back instead of only the main one (Spread went from 1 to ~5 lines per event, Totals from 1 to ~8), around 30 new pre-match football markets, wider in-play football, and in-play tennis grew from 3 markets to 33: per-set totals, handicaps and scores, plus per-game winners.Player props are one market on every bookmaker. Bet365 used to send ~58 separate per-stat markets (Points O/U, Pitcher Strikeouts O/U, …), and with the WebSocket’s 20-market filter limit you could not cover them. Baseball, basketball, American football and ice hockey props now come back in a single Player Props market with Player (Stat) labels on every book, so one filter covers the lot and props compare across bookmakers. Stat names and player names were unified too: batter hits read Hits (not Pitching Hits).Nothing breaks today. Every renamed market keeps returning under its old name for three weeks. On 5 September 2026 the deprecated names below stop being served, so switch to the standard name before then. The full list:Billing
Pay with crypto
You can now pay for any plan with cryptocurrency. Choose Crypto at checkout and pay with BTC, ETH, USDC, USDT, SOL, LTC or 70+ other coins. Payments are handled by CoinGate, licensed as a crypto-asset service provider by the Bank of Lithuania.Upgrades, extra requests and the WebSocket add-on work on crypto too, with the prorated amount shown before you confirm.One difference from cards: crypto cannot be charged automatically, so each renewal arrives as an invoice with a payment link, by email and in your dashboard. Your API access continues while the invoice is open. Full details in the crypto payments guide.HistoricalNew endpoint
Find finished matches by team name
/v3/historical/events needs an exact sport and league, so a team name alone was never enough to find a finished match. The new /v3/historical/events/search endpoint fixes that:query matches home or away team (case-insensitive, minimum 3 characters); sport and a from/to window of up to 31 days are optional. Up to 100 results, newest first, in the same shape as /v3/historical/events, so event IDs plug straight into /v3/historical/odds. Available on every plan. Details in the historical data guide.Coverage
New lower-tier leagues for football and basketball
We’ve added a batch of lower-tier and niche competitions, with live scores and the live clock included.Football: Bhutan Premier League, Kuwait First Division, Guatemala Primera División de Ascenso, Vietnam Women’s National League, Mexico U19 League, Poland IV Liga, and Brazilian lower tiers.Basketball: Rwanda Basketball League is live now; Uganda NBL, Singapore NBL, Bahrain, Iraq, Malaysia MBL, Morocco, Albania, Bolivia, Puerto Rico and Brazil LBF follow as their seasons schedule fixtures.Missing a league you need? Tell us in support chat or at hello@odds-api.io and we’ll usually have it live within a day or two.HistoricalNew endpoint
Historical closing lines in a single request
Pulling closing lines used to mean listing events for a league, then making one request per match. For a full season across several leagues that ran to roughly 1,900 requests.The new/v3/historical/closing-lines endpoint does it in one call. Give it a sport, up to 10 leagues, a date range, the markets you want and your bookmakers, and it returns every settled event in that window with closing odds attached:limit and skip for paging. The date span goes up to 366 days, so a whole season fits in one range.Closing odds go back to December 2025.This endpoint is available on paid plans. /v3/historical/events and /v3/historical/odds are unchanged and still available on every plan, including free.Also new: /v3/historical/odds now accepts an optional markets parameter, so you can ask for just the markets you need instead of filtering hundreds of them client-side.See the historical odds guide for the full reference.WebSockets
Live match clocks in WebSocket updates
Livescore and status messages now include an optional clock snapshot when clock data is available. Use it to re-anchor a client-side match timer after every score or status change without repeatedly polling the API.Seed the initial value from GET /events/live when you connect, then use subsequent WebSocket snapshots to keep it aligned. The clock is omitted for non-live events and sports without clock data. See the WebSocket guide for subscription details.Free tier
More sharp books moved to paid plans
Two additional sharp bookmakers now require a paid plan: Crown and 188bet. As before, the free plan keeps every recreational book. See the full list of paid-only bookmakers below.Free tier
Free tier changes
Starting 26 July 2026, we’re refocusing the free plan as a way to test the API before choosing a paid plan, not a place to run production workloads. Two changes:- Sharp and exchange bookmakers move to paid plans. The free plan keeps every recreational book (Bet365, DraftKings, FanDuel, Unibet, and many more). Betting exchanges, sharp bookmakers, and prediction markets require a paid plan.
- A daily request limit. The free plan will be capped at 500 requests/day (the 100/hour burst limit is unchanged). That’s plenty to evaluate the API, and paid plans get 5,000 requests an hour.