Join the MoviOdds Discord for API help, updates and custom bet365 work. Join the Discord

The bet365 odds API. Live and pre-match, every market, 24 sports.

JSON over REST and WebSocket. In-play prices arrive as bet365 moves them, with suspensions, price history, closing lines and results.

GET /odds?sport=soccer&groups=40
$ curl --compressed "https://moviodds.com/odds?sport=soccer&groups=40"
{
  "matches": [{
    "id": "201714805",
    "league": "Spain Segunda",
    "home": "Real Sociedad B",
    "away": "Granada",
    "kickoff_utc": "2026-10-05T14:00:00Z",
    "in_play": false,
    "quotes": [
      { "group_id": "40", "label": "Real Sociedad B", "odds_dec": 2.55 },
      { "group_id": "40", "label": "Draw", "odds_dec": 3.20 },
      { "group_id": "40", "label": "Granada", "odds_dec": 2.80 }
    ]
  }]
}
24sports
-matches tracked
-prices live
-live feed
Live board

What the feed looks like right now

Loaded once from GET /odds, then updated from the WebSocket. Suspended prices show as suspended.

Connecting
Features

Everything bet365 prices, in one feed

Live over WebSocket

Subscribe once to wss://moviodds.com/ws and get every price move and suspension as it happens.

Every market

Handicaps, totals, correct score, scorers, player props, alternative lines. Each price carries its market and selection ids.

History and closing lines

Every price change is stored. /history returns a timeline, /closing the last price before kickoff.

Results

/results lists finished matches with the final score and per-period scores where the sport has them.

Futures

/outrights has season futures like the Super Bowl, NBA and NHL champions and MVPs, the World Series, AFL, rugby, the top soccer leagues, golf, cycling and the Formula 1 championships

Live match stats

Add stats=1 and live matches come with their stats, xG possession and shots in soccer, quarter scores in basketball, aces and breaks in tennis and a lot more. Works on the WebSocket too, see how

Horse, harness and greyhound racing

Its own /racing feed with meetings, race cards, runners with Fixed Win and Place prices, each-way terms, race status and results with dividends. More in the racing docs

Bet Builder pricing

bet365's real combined price for several legs on one match, from /betbuilder/price.

Coverage

24 sports, every league bet365 lists

Pre-match and in-play, from top divisions to lower leagues, cups and youth competitions.

Rugby union
Rugby league
Australian rules
Volleyball
Handball
Badminton
Darts
Snooker
Boxing
MMA
Futsal
Bandy
Floorball
Field hockey
Gaelic games
FAQ

Common questions

Is it free?

Yes, no sign-up and no key needed. Only Bet Builder pricing needs a key, just ask for one on Discord

Whose odds are these?

Only bet365's, pre-match and in-play. MoviOdds is an independent project and is not affiliated with bet365.

Which sports do you cover?

24 sports, including soccer, tennis, basketball, American football, ice hockey, baseball, cricket, rugby, table tennis, volleyball and esports, with every league bet365 lists.

How fast are in-play prices?

They are pushed over the WebSocket within about a second of bet365 changing them.

Do you have historical odds and closing lines?

Yes. /history?fi=<match> returns every recorded price, and /closing?fi=<match> the last price before kickoff. See historical odds and closing lines.

Do you have results and futures?

Yes. /results lists finished matches with their final score, and /outrights has season futures such as the Super Bowl, NBA and NHL champions, plus soccer, golf, cycling and Formula 1

Do you have live match stats?

Yes, add stats=1 to /odds and every live match bet365 tracks comes with its stats, things like xG and possession in soccer or aces in tennis. It covers soccer, basketball, tennis, ice hockey, American football, rugby union, baseball, darts, volleyball, esoccer, ebasketball, CS2 and VALORANT. On the WebSocket send "stats": true with your subscribe, and /results?stats=1 gives the full time stats. All the fields are in the docs

Do you have horse and greyhound racing?

Yes, horse, harness and greyhound racing have their own /racing feed with race cards, runners, Fixed Win and Place prices, each-way terms and results with dividends. You poll it over REST, it is not on the WebSocket. See the racing page