Sportsbook

BetMGM Odds API

Pull BetMGM 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.

Where BetMGM earns its place is European soccer. It is the second-deepest book we carry in the Premier League, La Liga and the Champions League, behind only DraftKings, and it prices more markets in those competitions than Bet365 does — which matters because Bet365 is Pro-only while BetMGM is on the free Amateur tier.

So for a soccer product being built on the free plan, this is the book to test against. It is not the broadest book overall: DraftKings and FanDuel both carry more markets, and both are also on the free tier. BetMGM's advantage is where that coverage sits, not how much of it there is.

Where BetMGM shows up

It is listed in every NBA market category we publish, and in all but a couple of the rows across the other four leagues. In practice that means the deep stuff as well as the obvious stuff: quarter and half splits, individual innings in baseball, defensive and shooting props, corner markets, card props.

Its soccer coverage also runs into the second tiers, and that is where it leads outright. BetMGM prices La Liga 2 at 92 markets and Serie B at 69 — deeper on both than any other book we have counted, with DraftKings at 81 and 57. If your product covers second-tier European soccer, that is the reason to carry it. The full league list shows everything we cover.

Coverage changes, and our tables are a snapshot. The /markets endpoint returns the supported set by league from live data, which is the version to build against.

Which plan includes BetMGM

BetMGM is on the free Amateur tier, alongside FanDuel, DraftKings, Caesars, ESPN BET, Bovada, Unibet, PointsBet and William Hill. It's free for good, with no trial clock.

The free tier is limited in other ways — a smaller league list, a lower request rate and a longer refresh interval — so it is a way to build and test against real data rather than a way to run a product. Pricing has the detail on each tier.

Requesting BetMGM prices

Filter to BetMGM alone with bookmakerID=betmgm:

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

More usefully, request it next to the books you are comparing it against:

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

All four of those books are on the free tier, so that second request runs on a free key.

What a BetMGM price looks like

{
  "eventID": "...",
  "leagueID": "NBA",
  "odds": {
    "points-home-game-ml-home": {
      "oddID": "points-home-game-ml-home",
      "opposingOddID": "points-away-game-ml-away",
      "marketName": "Moneyline",
      "statID": "points",
      "statEntityID": "home",
      "periodID": "game",
      "betTypeID": "ml",
      "sideID": "home",
      "fairOdds": "-128",
      "bookOdds": "-135",
      "byBookmaker": {
        "betmgm": { "odds": "-132", "available": true },
        "draftkings": { "odds": "-138", "available": true },
        "fanduel": { "odds": "-135", "available": true }
      }
    }
  }
}

Odds arrive as strings, which preserves the leading + on plus-money prices and stops -132 becoming a number you have to reformat. fairOdds is the vig-free consensus across every book pricing that market, so you have a neutral benchmark rather than having to nominate one book as the reference.

Swap the periodID segment of any oddID to move between full game, halves and quarters — the rest of the key stays the same.

Coverage, honestly

Broad is not complete. BetMGM does not price every market in every league, 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.

Anything you hardcode from a coverage table, including ours, 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 BetMGM data

Odds comparison is the direct one — BetMGM rounds out the major US book set alongside DraftKings, FanDuel, Caesars and ESPN BET, and it fills rows the others leave empty.

For arbitrage and positive EV work, the secondary leagues matter more than the headline ones. Fewer books price a Serie B match than a Serie A match, and thinner fields are where prices diverge.

For sportsbook and fantasy apps, BetMGM is useful precisely when your league list runs past the big four US sports.

BetMGM API technical specifications

BetMGM 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-game slate is ten objects whether you ask for BetMGM alone or BetMGM alongside eighty others. Adding books to a request you were already making costs response size and nothing else.

Odds refresh sub-minute on Pro, with a longer interval on Rookie and the free Amateur tier. 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 BetMGM?
betmgm, in lowercase. Pass bookmakerID=betmgm to /v2/events and read the price from byBookmaker.betmgm on each odd. Build against the ID rather than the display name, since the two do not always match across books.
Which plans include BetMGM?
All of them, including the free Amateur tier, where it sits alongside FanDuel, DraftKings, Caesars, ESPN BET, Bovada, Unibet, PointsBet and William Hill. The free tier is limited in other ways — a smaller league list, a lower request rate and a longer refresh interval — so treat it as a way to build against real data rather than a way to run a product.
Which book has the widest coverage on the free plan?
DraftKings, which carries more markets than any other book we have counted and is on the free Amateur tier. FanDuel is second and BetMGM third. In European soccer the order is DraftKings then BetMGM: BetMGM is ahead of FanDuel in the Premier League, La Liga and the Champions League, but behind DraftKings in all three. Coverage changes, so query the /markets endpoint for the current picture.
Which leagues does BetMGM cover?
The major US leagues and European soccer, including the second tiers. It prices La Liga 2 at 92 markets and Serie B at 69, deeper on both than any other book we have counted — DraftKings is at 81 and 57. Its own depth runs NFL 175, MLB 130, La Liga 120, Ligue 1 118, Serie A 116, the Premier League and Bundesliga 112 each, the Champions League 111 and the NBA 104.
Does BetMGM have a public odds API?
BetMGM does not offer a public developer API for its odds. SportsGameOdds provides BetMGM 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 scores and results included?
Yes. Scores and settlement data ship alongside the odds on every plan, linked to oddIDs where scoring is supported, so you can grade bets without integrating a separate data source.
Does adding BetMGM to a request cost more?
No. Billing is per event object rather than per market or per book, so one game counts once whether the response carries four books or eighty. Adding BetMGM to a request you were already making costs response size and nothing else.

Test BetMGM on the free plan

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

1xBet→
Sportsbook
888 Sport→
Sportsbook
Bally Bet→
Sportsbook
Barstool→
Sportsbook
Bet365→
Sportsbook
BetAnySports→
Sportsbook
BetClic→
Sportsbook
Betfair Sportsbook→
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