Sportsbook

Bet365 Odds API

Pull Bet365 prices through the SportsGameOdds API, normalised into the same structure as 85+ other books. One request returns its lines alongside every other book pricing the same market.

Bet365 prices around a third of the markets in our feed, which puts it third by market count behind DraftKings and FanDuel. The reason to carry it anyway is where that coverage sits: it leads every book we cover on NBA markets, and it turns up in the categories where the field thins out — soccer corner kicks, individual innings, MLB pitching and batting props, and team and game specials.

That is the argument for carrying it, and it is a different argument from the one for a prop-heavy book.

Breadth, not prop depth

Bet365's gaps are worth knowing, because they are not random. It is absent from several of the mainstream US player prop categories — NFL passing props, NFL rushing and receiving props, MLB batting props and NBA combo props — which are exactly the rows where the other major US books, the DFS operators and the prop specialists appear instead. ESPN BET, for one, covers both of the NFL prop categories Bet365 does not.

On the team and game specials rows the position reverses. There Bet365 is listed next to Pinnacle and Circa rather than the mainstream books — and a market only those three post is one most feeds will not carry at all.

So the shape is the opposite of a book like Fanatics, which is concentrated in the prop rows and lighter elsewhere. If you are building prop comparison, Bet365 is not the book that fills your gaps. If you are building anything that reaches past the headline markets — period splits, corner markets, inning-by-inning baseball, the specials — it usually is.

The /markets endpoint returns the supported set by league from live data, which is the authoritative version of all of this.

Which plan includes Bet365

Bet365 is available on the Pro plan and above, in the same group as Circa, Fanatics, Pinnacle and PrizePicks. Neither the free Amateur tier nor the Rookie plan carries it.

This matters more than it sounds. A request filtered to bet365 on a plan that does not carry it returns an empty result rather than an error — a 200 with nothing in it. If you are evaluating on the free tier and your Bet365 request comes back blank, that is the plan gate, not a bug in your code. Pricing lists the books on each tier.

If you want the widest coverage available without a paid plan, DraftKings is the book to test against — it carries more markets than any other book in the feed, Bet365 included, and it is on the free Amateur tier.

Requesting Bet365 prices

Filter to Bet365 alone with bookmakerID=bet365:

curl "https://api.sportsgameodds.com/v2/events?leagueID=EPL&bookmakerID=bet365&oddsAvailable=true" \
  -H "x-api-key: YOUR_API_KEY"

In practice you want it next to the books you are comparing against:

curl "https://api.sportsgameodds.com/v2/events?leagueID=EPL&bookmakerID=bet365,draftkings,betmgm,pinnacle&oddsAvailable=true" \
  -H "x-api-key: YOUR_API_KEY"

Every book in the response sits under the same oddID, so comparing them is a lookup rather than a name-matching exercise.

What a Bet365 price looks like

Here is a corners total, one of the categories where fewer books compete:

{
  "eventID": "...",
  "leagueID": "EPL",
  "odds": {
    "cornerKicks-all-game-ou-over": {
      "oddID": "cornerKicks-all-game-ou-over",
      "marketName": "Total Corners Over/Under",
      "statID": "cornerKicks",
      "statEntityID": "all",
      "periodID": "game",
      "betTypeID": "ou",
      "sideID": "over",
      "fairOdds": "-110",
      "fairOverUnder": "10.5",
      "bookOdds": "-115",
      "byBookmaker": {
        "bet365": { "odds": "-108", "overUnder": "10.5", "available": true },
        "draftkings": { "odds": "-120", "overUnder": "10.5", "available": true }
      }
    }
  }
}

Game-level markets use all as the statEntityID rather than a team or player ID, following the same {statID}-{statEntityID}-{periodID}-{betTypeID}-{sideID} pattern as everything else. Odds and lines both arrive as strings, so -108 stays "-108" and "10.5" does not quietly become a float.

fairOdds is the vig-free consensus across every book pricing that market and bookOdds keeps the margin in, which gives you a benchmark without computing one.

Coverage, honestly

Bet365 does not price everything, and no single book does. Read byBookmaker on each odd rather than assuming it is there, and treat its absence as normal rather than as an error.

Coverage is not static either. Books add and drop markets, so anything you hardcode is a bug waiting for a quiet week. Query /markets if you would rather check up front than handle it at runtime. Every book we carry, and the plan each one is on, is listed on the bookmakers index.

Use cases for Bet365 data

Odds comparison is the direct one, and Bet365's breadth means it fills rows on your comparison grid that would otherwise be empty.

For live and in-play products, the period and half markets are carried pre-match and live, which is where most in-play products actually operate.

For arbitrage and positive EV work, the markets outside the headline lines are where prices disagree most, simply because fewer books are watching them.

Bet365 API technical specifications

Bet365 comes through the standard /v2/events endpoint, with no separate call, credential or schema for any individual book.

Billing is per event object rather than per market or per book, so a ten-match weekend is ten objects whether you ask for Bet365 alone or Bet365 alongside eighty others. Adding books to a request you were already making costs response size and nothing else.

Odds refresh sub-minute on Pro. Scores and settlement data ship alongside the odds, so there is no separate results integration — see bet tracking and settlement. The API documentation covers authentication, pagination and the full parameter list, handling odds covers reading byBookmaker in code, and there are SDKs for TypeScript, Python, Ruby, Go and Java.

Frequently asked questions

What is the bookmakerID for Bet365?
bet365, in lowercase with no space. Pass bookmakerID=bet365 to /v2/events and read the price from byBookmaker.bet365 on each odd. Build against the ID rather than the display name, since the two do not always match across books.
Which plans include Bet365?
Pro and above. Bet365 sits in the same group as Circa, Fanatics, Pinnacle and PrizePicks, none of which are on the free Amateur tier or the Rookie book list. A request filtered to bookmakerID=bet365 on a plan that does not carry it returns an empty result rather than an error, so a blank response while evaluating on the free tier is the plan gate rather than a bug.
Which leagues and markets does Bet365 cover?
Bet365 prices around a third of the markets in the feed across 23 leagues, which puts it third by market count behind DraftKings and FanDuel. Where it leads is basketball: it carries more NBA markets than any other book we cover. It is also deep on MLB pitching and batting props and on soccer team markets such as corner kicks. Coverage changes, so read byBookmaker on each odd or query the /markets endpoint rather than hardcoding a list.
Is Bet365 a good source for player props?
Less so than for other market types. Bet365 is absent from several mainstream US prop categories, including NFL passing props, NFL rushing and receiving props, MLB batting props and NBA combo props, which are the rows where the DFS operators and prop specialists appear instead. Carry Bet365 for market breadth and carry a prop-heavy book for prop depth.
Does Bet365 have a public odds API?
Bet365 does not offer a public developer API for its odds. SportsGameOdds provides Bet365 prices through one unified API alongside 85+ other books in the same schema, so adding it to an existing integration is a parameter change rather than new parsing code.
Are live in-play Bet365 odds available?
Yes. Pre-match and live markets both come through the same /v2/events endpoint, including period and half splits, and odds refresh sub-minute on Pro.
Does adding Bet365 to a request cost more?
No. Billing is per event object rather than per market or per book, so one match counts once whether the response carries four books or eighty. Adding Bet365 to a request you were already making costs response size and nothing else.

Reach past the headline markets

Bet365 and every other book we carry on the same oddID, in one request.

1xBet→
Sportsbook
888 Sport→
Sportsbook
Bally Bet→
Sportsbook
Barstool→
Sportsbook
BetAnySports→
Sportsbook
BetClic→
Sportsbook
Betfair Sportsbook→
Sportsbook
BetMGM→
Sportsbook
BetOnline→
Sportsbook
BetPARX→
Sportsbook
BetRivers→
Sportsbook
Betr Sportsbook→
Sportsbook
Betsson→
Sportsbook
BetUS→
Sportsbook
Bet Victor→
Sportsbook
Betway→
Sportsbook
BlueBet→
Sportsbook
Bookmaker.eu→
Sportsbook
Bovada→
Sportsbook
BoyleSports→
Sportsbook
Caesars→
Sportsbook
Casumo→
Sportsbook
Circa→
Sportsbook
Coolbet→
Sportsbook
Coral→
Sportsbook
DraftKings→
Sportsbook
ESPN BET→
Sportsbook
Everygame→
Sportsbook
Fanatics→
Sportsbook
FanDuel→
Sportsbook
Fliff→
Sportsbook
FOX Bet→
Sportsbook
FourWinds→
Sportsbook
Grosvenor→
Sportsbook
GTbets→
Sportsbook
Ladbrokes→
Sportsbook
LeoVegas→
Sportsbook
LiveScore Bet→
Sportsbook
LowVig→
Sportsbook
Marathon Bet→
Sportsbook
Mr Green→
Sportsbook
MyBookie→
Sportsbook
Neds→
Sportsbook
NordicBet→
Sportsbook
Paddy Power→
Sportsbook
Pinnacle→
Sportsbook
PlayUp→
Sportsbook
PointsBet→
Sportsbook
Prophet Exchange→
Sportsbook
SI Sportsbook→
Sportsbook
Sky Bet→
Sportsbook
SportsBet→
Sportsbook
SugarHouse→
Sportsbook
SportsBetting.ag→
Sportsbook
Superbook→
Sportsbook
Suprabets→
Sportsbook
TAB→
Sportsbook
TABtouch→
Sportsbook
Tipico→
Sportsbook
TopSport→
Sportsbook
Unibet→
Sportsbook
Virgin Bet→
Sportsbook
William Hill→
Sportsbook
Wind Creek (Betfred PA)→
Sportsbook
WynnBet→
Sportsbook
Betfred→
Sportsbook
Betsafe→
Sportsbook
BoomBet→
Sportsbook
NorthStar Bets→
Sportsbook
Stake→
Sportsbook
theScore Bet→
Sportsbook
Bodog→
Sportsbook
Prime Sports→
Sportsbook