Skip to main content
Coverage

30 new Italian sportsbooks

  • 🇮🇹 Eplay24 IT, Totosi IT, Vincitu IT, Starcasino IT, Betitaly IT, Winbet IT, Betpassion IT, Sportium IT, Betwin360 IT, Staryes IT, Elabet IT
  • 🇮🇹 DAZN Bet IT, BGame IT, Domusbet IT, Sportbet IT, Sunbet IT, Gioco Digitale IT, Gioca7 IT, Netwin IT
  • 🇮🇹 William Hill IT, Marathonbet IT, Codere IT, Perlaplay IT, MyLotteriesPlay IT, Winamax IT, Casino Sanremo IT
  • 🇮🇹 Stake IT, Zonagioco IT, Fastbet IT, Betpoint IT
Odds-API.io now covers every sportsbook licensed by ADM, the Italian regulator (48 of 48). The full list is on the Odds API Italy page.All are listed in GET /v3/bookmakers and available on REST and WebSocket.

Live odds for more Italian sportsbooks

Snai IT, Goldbet IT, Lottomatica IT, Planetwin365 IT, BetFlag IT, Bwin IT, AdmiralBet IT, Betsson IT, NetBet IT, Stanleybet IT and Quigioco IT now have in-play odds, with faster live updates. Eurobet IT in-play odds now update faster too.

More markets for Italian sportsbooks

AdmiralBet IT, Betsson IT, NetBet IT, Stanleybet IT, Quigioco IT, Totosi IT, Vincitu IT, Starcasino IT, DAZN Bet IT, BGame IT, Domusbet IT, Sportbet IT, Sunbet IT, William Hill IT, Marathonbet IT, Codere IT, Perlaplay IT and MyLotteriesPlay IT now carry Double Chance, Handicap and Draw No Bet in football, plus hockey Spread and Totals.
Odds

Bet365 (no latency) on /v3/odds/updated

GET /v3/odds/updated?bookmaker=Bet365 now returns the Bet365 (no latency) key alongside Bet365, the same as /v3/odds/multi and the WebSocket. Merge it by bookmaker and market name like any other key.
Coverage

29 bookmakers added

29 more sportsbooks are now live, including Bet365 in eight local markets.
  • 🇩🇰 Betsson DK, Bet25, PokerStars DK, Merkur Bets DK, Marathonbet DK
  • 🇸🇪 Bethard
  • 🇬🇷 Elabet, Efbet GR
  • 🇭🇷 PSK HR, SuperSport HR
  • 🇦🇹 Admiral AT
  • 🇧🇦 AdmiralBet BA
  • 🇧🇷 Superbet BR
  • 🇷🇺 Betcity RU
  • 🌏 8Xbet, 18bet, HKJC, 10BET
  • 🌐 1Win, Epicbet, Izibet
  • Bet365 local markets: 🇩🇪 Bet365 DE, 🇫🇷 Bet365 FR, 🇮🇹 Bet365 IT, 🇪🇸 Bet365 ES, 🇬🇷 Bet365 GR, 🇳🇱 Bet365 NL, 🇧🇷 Bet365 BR, 🇦🇷 Bet365 AR
All are listed in GET /v3/bookmakers and available on REST and WebSocket, pre-match. Betsson DK, PokerStars DK, Bethard, Elabet, Efbet GR, Betcity RU, 1Win, AdmiralBet BA, Superbet BR, 18bet and the eight Bet365 local markets are also available in-play.
BookmakersWebSocket

Bookmaker status, and no odds from unavailable bookmakers

/v3/bookmakers now shows each bookmaker’s status in two new fields: status (ok, degraded or down) and reason. reason is null when ok, maintenance when the bookmaker is temporarily offline on its side, and unavailable when we temporarily have no fresh odds from it. Existing fields are unchanged.A bookmaker is down when none of its matches has had an odds update for 3+ hours while it lists 100+ active matches, for example while its own site is in maintenance. Its odds are then left out of /v3/odds, /v3/odds/multi, /v3/odds/updated, value bets and arbitrage, and the WebSocket sends a deleted message for each of its matches. When it updates again, its odds come back automatically. degraded (60+ minutes without an update) is informational; those odds are still served.See Bookmaker Status.
Free tier

Bet365: low-latency direct feed, now on paid plans

Bet365 now runs on a new direct feed with very low latency. It covers the main football, basketball and handball markets today, and more markets and sports are being added.From 26 October 2026 at 19:00 UTC, Bet365 requires a paid plan. Free keys get a 403 on Bet365 requests, and Bet365 is removed from free bookmaker selections so the slot can go to another book. The free plan keeps every other recreational book, such as DraftKings, FanDuel and Unibet. To keep Bet365, upgrade to a paid plan.
Value BetsArbitrageMarkets

Value bets and arbitrage, rebuilt

Our value bet and arbitrage engine has been rebuilt from the ground up. It now scans 100+ markets across 415+ bookmakers in under a second, and it is the most complete value bet and arbitrage API available.Value bets in under a second. Every price change is checked against a sharp fair price in under a second, and a new value bet reaches the API as soon as it is found. Each bet carries firstSeenAt (when it appeared) and bookmakerOddsUpdatedAt (when the bookmaker’s price was last written).Only bets you can take. Live and settled matches are left out, prices from feeds that have gone quiet are held back, and exchange and prediction market prices are after fees. Public lists stick to main lines.More to find. New markets (half-time ML, Draw No Bet, Double Chance, team corners and cards totals) and more bookmakers scanned.Arbitrage that holds up. /v3/arbitrage-bets refreshes every few seconds and drops an opportunity the moment a price moves, a line is pulled or the match starts. Legs from a bookmaker that stopped updating while the market moved are left out. Margins and stakes use prices after commission or taker fees (netOdds), and stakes stay within bookmaker limits (maxStake, totalStake 1000 or lower).New in the arbitrage response: one row per event, market and line by default (allCombinations=true returns every combination), legs[].oddsUpdatedAt, firstSeenAt, and the filters sport, league, markets and minProfit.Ice hockey lines no longer mixed. Books that settle hockey goal lines after 60 minutes now publish them as Totals Regulation and Spread Regulation, separate from overtime-inclusive Totals and Spread.See the Value Bets guide and the Arbitrage Bets guide.
CoverageMarketsWebSocket

Bet365: faster in-play, more markets

In-play odds in under a second. Bet365 in-play prices now come from a new direct feed and reach REST and WebSocket within a second of Bet365 changing them.A clean switch at kick-off. Pre-match odds and the bet365 link stay until kick-off, and the live board takes over at kick-off. Before, the live board could take over a few minutes early, and for up to a minute after kick-off markets could look closed. On the WebSocket the switch is one update, with no no_markets while live prices exist.New in-play markets: goals, corners and team totals during the match, and volleyball set markets: ML, Spread and Totals for the 1st to 5th set.New pre-match markets:
  • Football: First Goalscorer and Last Goalscorer, next to Anytime Goalscorer
  • NBA: combined milestones, and milestone ladders under Player Props, like every other bookmaker
  • NHL: first goalscorer, multiple goalscorers, power-play points and blocked shots
Next: we’re working on bringing Bet365 pre-match latency down further.
Coverage

Three Danish bookmakers added

Three more Danish sportsbooks are now live: 🇩🇰 Spreadex DK, Betmaster DK and Tipwin DK.
  • Listed in GET /v3/bookmakers and available on REST and WebSocket
  • Pre-match only, with ML and totals on most sports plus spreads where the book offers them, across football, basketball, tennis, ice hockey, handball and more
API

Period score keys are now the same for every event

Every scores.periods map now uses one set of keys, on /events, /historical, /settlements and WebSocket score and status messages:
  • p1 to pN: the score in that period only.
  • ft: the running total at the end of regulation.
  • ot: the running total after overtime or extra time. Some events used to carry the overtime period alone under ot. It is now always the total, so overtime alone is ot minus ft.
  • ap: the running total after a penalty shootout.
  • The headline home/away never includes a penalty shootout. A few results had the shootout added to it, for example a 3-3 draw won 4-3 on penalties read 6-7. It now reads 3-3, with ap at 6-7.
The older spellings stop on 12 November 2026, 09:00 UTC. This date is confirmed. Until then some events also carry period1 to period5, overtime, penalties and fulltime next to the keys above. If your code reads any of them, switch to the keys above before that date. See Period Scores.
WebSocket

WebSocket updates now arrive in sequence order

  • seq never decreases on a connection. Updates, including deleted messages, are delivered in seq order, so the highest seq you have received is a safe cursor for lastSeq when you reconnect. The same update sent for several bookmakers shares one seq, so identify a frame by id, bookie and seq together.
  • New replayComplete=true option. Add it to the connection URL to receive a replay_complete message once a reconnect has caught up on everything you missed. See Reconnection with Replay.
Markets

Regulation-time markets in ice hockey and basketball

Four new markets settle at the end of regulation time, without overtime or a shootout: Totals Regulation, Spread Regulation, Team Total Home Regulation and Team Total Away Regulation, and /v3/settlements/grade grades them.In ice hockey, basketball, baseball and American football, ML, Spread, Totals and the team totals now always include overtime, extra innings and the shootout. A bookmaker’s regulation-time line is only returned under the Regulation names, and the regulation result with a draw is 3-Way Result.
API

WebSocket compression required, and two /v3/odds/updated dates

  • WebSocket compression is now required. Since 15 October 2026 09:00 UTC, connections that don’t negotiate permessage-deflate are refused with 426. See Compression.
  • markets is required on /v3/odds/updated from Monday 19 October 2026, 09:00 UTC. A call without it, or where none of the names exist, returns 400.
  • /v3/odds/updated returns only changed markets from Thursday 22 October 2026, 09:00 UTC. Merge each response into your stored markets by market name instead of replacing an event’s market list. A missing market means unchanged, not removed. See Keeping Odds Fresh.
Coverage

50 bookmakers added

50 more sportsbooks are now live, including 19 in Australia.
  • 🇦🇺 Neds AU, Ladbrokes AU, Picklebet AU, Betr AU, Dabble AU, Swiftbet AU, PlayUp AU, NextBet AU, Betdeluxe AU, Bet Right AU, Surge AU, Noisy AU, BetNation AU, PulseBet AU, BigBet AU, YesBet AU, BetExpress AU, MightyBet AU, BetJet AU
  • 🇨🇦 Proline+, PlayNow
  • 🇺🇸 BetUS
  • 🇩🇪 Bpremium, OddSet, Wettarena, Bet3000, TipTorro, 888Sport DE, Betway DE
  • 🇩🇰 Expekt DK, LeoVegas DK, Bwin DK, MrGreen DK, 888Sport DK
  • 🇬🇧 LeoVegas UK, 7Bet UK
  • 🇮🇪 Unibet IE
  • 🇪🇸 Betway ES, Winamax ES, 888Sport ES
  • 🇵🇹 Bwin PT
  • 🇮🇹 NetBet IT, Betsson IT
  • 🇵🇱 Superbet PL
  • 🇷🇸 Superbet RS
  • 🇧🇪 Bingoal BE
  • 🇷🇴 Betano RO, Fortuna RO
  • 🇬🇷 Fonbet GR
  • 🌐 Bwin
All are listed in GET /v3/bookmakers and available on REST and WebSocket, pre-match. PlayNow and Fonbet GR are also available in-play.
Esports

Esports: team logos, game, parent league, region and match format

Esports events now carry an esports object with the game, the parent league (VCT, LCK, LEC), the region and the match format:
The parent league slug stays the same across a league’s splits and stages, so you can group events on it. It is returned by /v3/events, /v3/events/live, /v3/events/search and /v3/events/{id}. Historical events do not carry it.GET /v3/participants/{id}/logo now serves esports team logos. Esports rows in /v3/participants add game and, when known, shortCode, so teams that share a name across games can be told apart. See the Live Events guide.
New endpoint

Settle bets with the API

Two new endpoints tell you what happened in an event and whether a bet won.
/v3/settlements returns the status, final score and a final flag for up to 50 events. Cancelled and not yet resulted events get an explicit answer too, which /v3/historical/events never gave you./v3/settlements/grade takes up to 50 bets and returns won, lost, void, half_won or half_lost for each one. Describe a bet with the fields you already have from /v3/odds:
  • 64 markets in 20 sports: moneyline, spreads and Asian handicaps with quarter lines, totals, both teams to score, double chance, half-time markets, tennis games and sets, esports maps, football corners and bookings, and player props in basketball, baseball, ice hockey and American football.
  • Football settles on 90 minutes. Extra time and penalties never count, even though the match score includes them. Each grade shows the score it was based on.
  • No guessing. When the stored result cannot prove the answer, the bet comes back ungradeable with a reason.
Available on all paid plans. See the Bet Settlement guide for the rules and the full market list.
CoverageWebSocket

SingBet price groups: SingBet A, B, C and D

Crown (SingBet) shows handicap, totals and odd/even prices at four price groups, depending on the site and the account. SingBet and Crown keep the group they have always had. Four new bookmakers carry each group on its own: SingBet A, SingBet B, SingBet C and SingBet D, from the lowest prices to the highest.To find your group, add the two Hong Kong prices of one handicap line on your Crown page and compare the sum with the same line in each group. The sum stays the same when the line moves. Moneyline, correct score and the other markets are identical in all groups.The new bookmakers are available on REST and WebSocket on paid plans, for football and basketball, pre-match and live.
OddsWebSocket

Up to 40 markets per request

The markets parameter now takes up to 40 names, up from 20, on /v3/odds, /v3/odds/multi, /v3/odds/updated and the WebSocket feed. A longer list still returns 400 (Maximum 40 markets allowed, or Too many markets. Maximum 40 allowed. on the WebSocket).
OddsPrediction markets

Kalshi depth is now in US dollars

Kalshi’s depth fields on /v3/odds, /v3/odds/multi and the WebSocket now show the stake in US dollars you can place at the best price, as documented and as Polymarket, NoVig and ProphetX already do. They previously showed the number of contracts at the top of the book.The new value is contracts × the price per contract, so it is lower than before. For example, 31,694 contracts at 35 cents now reads 11,093. If you divided Kalshi depth by the price yourself, remove that step.
New endpoint

Odds summary: GET /v3/odds/summary

One call gives you the best, average, median, worst and margin-free fair price for every market line of an event across bookmakers, with the bookmakers offering the best price. It is built for odds comparison pages: show the average or best odds on a fixtures list without pulling every bookmaker.
  • Up to 10 events per call with /v3/odds/summary/multi, counted as one request.
  • One vote per bookmaker and only fresh prices. A bookmaker whose row has any outlier price is kept out of best, worst and average, and a line needs at least 3 bookmakers without one.
  • Exchanges reported separately with includeExchanges=true.
Available on Growth plans and above. Free, Solo and Starter plans get a sample response, marked with "demo": true, to build against. See the Odds Summary guide.
Odds

Easier odds movements requests

GET /v3/odds/movements now accepts requests the way /v3/odds returns them:
  • marketLine is optional. Markets without a line (Draw No Bet, Both Teams To Score, ML HT) work without it. On Spread and Totals markets, leaving it out returns the main line, the most balanced line, and each entry’s hdp shows which line that was.
  • Names are case-insensitive for market and bookmaker, and Bet365 (no latency) is accepted.
  • Lines match by value, so 2.50 finds 2.5.
  • A new latest field holds the most recent price.
  • 404s say what is missing: the bookmaker has no odds for the event, has no history for it, or lacks that market or line. They list the markets or lines that do have history.
Existing requests return the same data as before.
Coverage

Odds movements for 29 more bookmakers

GET /v3/odds/movements now returns prematch price history for 1xbet, 22Bet, 888Sport, BC.Game, Betano, Betclic FR, Betfair Exchange, Betfair Sportsbook, BetMGM, Betsson, Betway, Bovada, CloudBet, Coolbet, Goldbet IT, Kalshi, Kambi, Ladbrokes, Paddy Power, Pamestoixima, Sharp Exchange, Sisal IT, Stake, Stoiximan, Tipico DE, Unibet, Vbet, William Hill and Winamax FR. 10BET and Polymarket are now listed too.History for these bookmakers starts from today, so events kicking off soon will have short series at first. Betfair Exchange and Sharp Exchange record the back price.
New endpoint

Native ID mappings: GET /v3/mappings

Link our events and selections to a bookmaker’s own ids. For every selection we price, you get the bookmaker’s event, market and outcome id, in our event’s orientation.
Polymarket and Kalshi are supported from today.
  • Look up by eventId, marketId, outcomeId, or marketId with outcomeId (needed for Kalshi, where yes/no alone matches every market). Batch with eventIds or marketIds, up to 10 per call.
  • Keep a local copy with bulk sync: send only bookmaker, optionally sport, league and market, and follow nextCursor page by page.
  • Join to prices on eventId, market, hdp and side, the same fields /v3/odds uses. Each row also carries the event’s teams, date, sport and league.
  • Mappings outlive prices. A mapping stays available when its price briefly disappears, and a withdrawn outcome stays listed with active: false. lastCheckedAt shows when we last confirmed it.
Available on paid plans, for bookmakers in your selection. See the Native ID Mappings guide.
Coverage

Five Danish bookmakers added

Five more Danish sportsbooks are now live: 🇩🇰 Swiper DK, Betoro DK, Vbet DK, GetLucky DK and Casinostuen DK.
  • Listed in GET /v3/bookmakers and available on REST and WebSocket
  • Pre-match and in-play, with ML, totals and spreads
Coverage

ProphetX exchange added

ProphetX, the US sports exchange, is now available as ProphetX on paid plans, alongside NoVig in the betting exchanges group.
  • NFL, NCAAF, MLB, WNBA, MLS, UFC, ATP and WTA, pre-match and in-play
  • Moneyline, spreads, totals, first half and first five innings lines, plus player prop ladders
  • Moneyline, spread and total lines carry max stake, lay prices and depth from the ProphetX orderbook
Markets

Handball ML is always the three-way result

Handball ML is now always the full-time three-way result (home, draw, away), for every bookmaker. Two-way handball winner prices are listed under Draw No Bet.
  • Bookmakers that only listed the three-way result under 3-Way Result now also return it as ML. 3-Way Result stays available
  • Historical handball odds follow the same rule
Billing

Annual plans: 12 months for the price of 10

Every plan (Solo, Starter, Growth, Pro and their WebSocket variants) can now be billed yearly at 10x the monthly price.
  • Choose Annual at checkout on odds-api.io/pricing
  • Existing monthly customers can switch from the dashboard Billing page. The switch is prorated and charged to the stored card straight away
  • Annual plans are card only for now. Extra request packages stay monthly and cannot be combined with a yearly plan
  • Promo codes apply to monthly plans only, since annual already includes 2 months free
Coverage

The bookmaker catalogue passed 365 books

GET /v3/bookmakers now returns 365 bookmakers, 360 of them active. 80 books became available in the last seven days.New this week
  • 🇳🇱 711 NL, Betcity NL, Betnation NL, Bingoal NL, Hommerson NL, Jacks NL, Unibet NL
  • 🇸🇪 BetMGM SE, Casumo SE, Hajper, LeoVegas SE, Snabbare
  • 🇬🇧 32Red, BetMGM UK, Casumo, Sky Bet
  • 🇧🇬 Bet.bg, Inbet
  • 🇨🇴 Codere CO, RushBet CO
  • 🇪🇪 Paf EE, Vivatbet
  • 🇪🇸 Casumo ES, Codere ES
  • 🇨🇦 NorthStar Bets
  • 🇩🇪 Winamax DE
  • 🇮🇪 BoyleSports
  • 🇮🇹 Stanleybet IT
  • 🇱🇻 Paf LV
  • 🌐 Bet2Fun, Betandyou, BetFriday, Betfrom, Betfury, Betlabel, BetMartini, BetRebels, BetsAmigo, Betspino, Betstro, BetWhale, BillyBets, Bitz, Bons, Boomerang Bet, Campobet, Casino-X, Casinova, Casinozer, Casombie, Cazimbo, Chips.gg, Cosmobet, Excitewin, FanSport, Fastbet, Helabet, Highbet, JoyCasino, Lilibet, Linebet, MalinaCasino, Marathonbet, Mobilebet, MrPacho, NovaJackpot, Nucleonbet, Paripesa, PlayZilla, Rakebit, Ramenbet, Riobet, Spinanga, Spinsy, Superboss, WallaceBet, Winnerz, WinWinBet, XpariBet, Yonibet
OddsWebSocket

ON Sharp: one consensus line from the sharpest books

ON Sharp is a new bookmaker computed by odds-api.io. It blends the sharpest, highest-limit books in the market into one line: each book is de-vigged, the fair probabilities are blended, and the result is re-priced at a fixed margin of 2% on two-way markets and 2.5% on three-way markets. Strip the margin with one division and you have the sharp market’s fair probability.It covers prematch ML, Spread and Totals (full match and first half) across football, basketball, tennis, American football, baseball, ice hockey and esports, plus football corners, tennis game lines and baseball first five innings. Lines update in real time on the WebSocket and every change is kept in /v3/odds/movements, so you can measure closing line value against it.Available on all paid plans. Add ON Sharp to your bookmaker selection and request it like any other book: /v3/odds?eventId=...&bookmakers=ON Sharp. Details in the ON Sharp guide.
OddsWebSocket

Delta fetching for /v3/odds/updated, and gzip on every response

GET /v3/odds/updated now accepts a markets parameter (comma-separated, max 20) to shrink the payload to markets you care about, and a limit parameter (1-10000, default 10000) to cap how many rows come back. Every response also carries two new headers: X-Server-Time (the server’s clock at response time) and X-Next-Since (pass this straight back as your next since value). Recipe: start with since = now - 20, then on each poll set since to the previous response’s X-Next-Since.Every REST response is now sent gzip-compressed, whether or not your request sends an Accept-Encoding header. Most HTTP clients decompress this automatically; see the Best Practices guide if yours doesn’t.WebSocket clients must negotiate permessage-deflate compression. Uncompressed connections will stop being accepted soon. Node ws, browsers and Python websockets all negotiate this by default; if you’re on Python websocket-client or PHP textalk/websocket, switch to websockets / amphp/websocket-client. See the WebSocket guide for details.GET /v3/odds and GET /v3/odds/multi now accept the same optional markets parameter as /v3/odds/updated (comma-separated, case-insensitive, max 20). Leave it out to get every market, as before.
Odds

Retired market names are gone

The deprecated names from the 15 Aug rename stopped being served on 5 September 2026, as announced. Every market now returns under its standard name only. If you still filter on an old name (Half Time Result, Alternative Run Line, 1st Map Moneyline, Pitcher Strikeouts O/U, …) you will get no rows back: switch to the replacement in the mapping table below, or check GET /v3/markets?sport=<sport> for the current catalogue.
New endpoint

Market catalogue: GET /v3/markets

See every market we serve, per sport, straight from live coverage:
Each market has a 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 bookmakers, 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, TRX, SOL, LTC and more (10+ 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:
Responses are capped at 100 events, with 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

Live score 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.
Need full access? See plans from £49/mo.

Bookmakers that require a paid plan

Betting exchanges: Betfair Exchange, Orbit Exchange, Piwi247 Exchange, Sharp Exchange, Fair999 Exchange, NoVig, SkyExchangeSharp & Asian bookmakers: Sbobet, Circa, SingBet, Crown, 188bet, BetOnline.ag, LowVig AG, SportBetting AG, Tiger Gaming, 10BET, 12bet, DafaBetPrediction markets: Polymarket, Kalshi