Sportsbook

Unibet Odds API

Pull Unibet prices through the SportsGameOdds API, normalised into the same structure as 85+ other books. Included on the free plan, so you can build against it before you pay anything.

Nine bookmakers come with a free SportsGameOdds key. Unibet is one of them, and of the nine it is the one most likely to find a bug in your code — which, on a plan that costs nothing, is exactly what you want it doing.

That is not a knock on the book. It is a point about what the other eight have in common.

The nine books on the free plan

The free Amateur plan carries nine of the 85+ books in the feed: FanDuel, Draft Kings, BetMGM, Caesars, ESPN BET, Bovada, Unibet, PointsBet and William Hill.

At that size, which books you get matters more than how many. Nine books that all price the same way will happily let you ship an integration that falls over the first time it meets a market shape it has not seen. Most of that list is American, and American books mostly price two outcomes. Unibet is the one in the group that routinely returns a third.

The William Hill Odds API page covers the other non-American book on that list, including why its bookmakerID is one of the easiest in the feed to get wrong.

Why a third outcome changes your parsing

Two of the eight leagues on the free plan are soccer: the Champions League and MLS. Soccer draws, and a draw is not a push — it is a result that pays. So the headline market is a three-way moneyline rather than the two-way moneyline you get on an NFL game.

In the API that is betTypeID of ml3way, sitting on the reg period, which is the ninety minutes plus stoppage time rather than the full match including extra time. It carries six sides rather than two:

sideIDstatEntityIDPays when
homehomeHome team leads after regulation
awayawayAway team leads after regulation
drawallLevel after regulation
home+drawhomeHome team wins or draws
away+drawawayAway team wins or draws
not_drawallEither side wins

If your code assumes a moneyline has a home side and an away side, four of those six will surprise it. Better to discover that on a Champions League fixture during a free prototype than on a paid plan with a product already live.

The other thing soccer tends to catch out is the stat itself. Goals are not a goals statID — points is the score stat across every sport in the API, so a total goals market is points-all-reg-ou-over. The stats reference has the full list, and bet types and sides covers the three-way structure in detail.

Requesting Unibet prices

Filter to Unibet alone with bookmakerID=unibet:

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

More often you want Unibet next to the American books, which is the same request with a longer list:

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

Every book in that request comes back on the same oddID, so lining the prices up is a lookup rather than a matching problem.

What a Unibet price looks like

{
  "eventID": "...",
  "leagueID": "UEFA_CHAMPIONS_LEAGUE",
  "odds": {
    "points-all-reg-ml3way-draw": {
      "oddID": "points-all-reg-ml3way-draw",
      "marketName": "3-Way Moneyline",
      "statID": "points",
      "statEntityID": "all",
      "periodID": "reg",
      "betTypeID": "ml3way",
      "sideID": "draw",
      "fairOdds": "+245",
      "bookOdds": "+230",
      "byBookmaker": {
        "unibet": { "odds": "+240", "available": true },
        "draftkings": { "odds": "+225", "available": true }
      }
    }
  }
}

Two things worth knowing. Odds are strings, so +240 arrives as "+240" and the plus sign survives rather than being lost to a number cast. And fairOdds is the vig-free consensus across every book pricing that market while bookOdds keeps the margin in, so you get a benchmark without computing one.

Coverage, honestly

Unibet does not price everything, and neither does any other single book. Read byBookmaker on each odd rather than assuming Unibet is on a given market, and treat its absence as normal rather than as an error. The /markets endpoint returns the supported set by league if you would rather check up front than handle it at runtime.

Coverage is also not static. Books add and drop markets, so anything you hardcode today is a bug waiting for a slow week.

Linking out to the book

Each event carries a links.bookmakers object with a URL straight to that event on each book's own site, links.bookmakers.unibet among them. For an odds comparison product or anything with an affiliate arrangement, that saves you constructing URLs from team names and hoping the slug format holds.

Use cases for Unibet data

Prototyping is the honest first one. Unibet is available before you have entered a card, which makes it part of the set you can validate an integration against rather than something you read about and hope works after upgrading.

For odds comparison tools, a book pricing to a different audience than the American majors is worth having in the row. Two books aimed at the same customers tend to show the same number.

For anything soccer-facing, the three-way structure is the point rather than a complication. The Champions League and MLS pages cover how the periods and markets fit together for each competition.

Unibet API technical specifications

Unibet comes through the standard /v2/events endpoint. There is 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-fixture matchday is ten objects whether you ask for Unibet alone or Unibet alongside eighty others. Adding books to a request costs response size and nothing else.

The free Amateur plan gives you 2,500 objects a month at 10 requests a minute with a ten-minute update interval — enough to build against real fixtures, not enough to run anything live. Odds refresh sub-minute on Pro. The API documentation covers authentication, pagination and the full parameter list, and handling odds covers reading byBookmaker in code.

Frequently asked questions

What is the bookmakerID for Unibet?
unibet, in lowercase. Pass bookmakerID=unibet to /v2/events and read the price from byBookmaker.unibet on each odd. Build against the ID rather than the display name, since the two do not always match across books.
Is Unibet available on the free plan?
Yes. Unibet is one of nine bookmakers included on the free Amateur tier, alongside FanDuel, Draft Kings, BetMGM, Caesars, ESPN BET, Bovada, PointsBet and William Hill. Unibet also stays available on every paid plan above that.
Why does a Unibet soccer market have three sides instead of two?
Because a draw is a real result in soccer rather than a push, so the headline market is a three-way moneyline. That is betTypeID ml3way on the reg period, and it carries six sideID values: home, away, draw, home+draw, away+draw and not_draw. Code written against two-way American moneylines will not handle four of those.
Which leagues can I get Unibet odds for on the free plan?
The free plan covers eight leagues: NFL, NBA, MLB, NHL, College Football, College Basketball, Champions League and MLS. Unibet is one of the nine books available across them. Paid plans widen both the league list and the book list.
Why is a total goals market filed under points?
Because points is the score stat across every sport in the API. It means goals in soccer, runs in baseball and points in basketball, so a total goals market is points-all-reg-ou-over rather than anything goals-specific. One parsing path covers every sport.
How do I tell which markets Unibet actually prices?
Read byBookmaker on each odd. Every market lists the books currently pricing it, so Unibet being absent from one is normal rather than an error. If you would rather check before requesting odds, the /markets endpoint returns the supported set by league.

Build against it before you pay anything

Unibet is one of nine books on the free plan. 2,500 objects a month.

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