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. No card is required, and it 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, no card required.

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