Sportsbook

William Hill Odds API

Pull William Hill 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.

The bookmakerID is williamhill. Not william-hill, not William Hill, not williamHill.

That sounds like a trivia question until you consider how most people build a bookmaker lookup: take the display name, lowercase it, replace the spaces with hyphens, and use that as the key. Do that here and every William Hill request comes back empty. Not an error — empty, which is considerably harder to notice.

Names and IDs are separate fields, and they do not always agree

William Hill is the clearest example in the book list, but it is not the only one. Display names carry spaces, punctuation and capitalisation that the IDs do not, and the two are maintained as separate fields rather than one being derived from the other. A name can be corrected without the ID moving, because the ID is the contract.

So do not derive one from the other in either direction. The bookmakers reference lists every bookmakerID with its display name, which is the list to build your lookup from. If you are storing books in your own database, store the ID as the key and treat the name as a label you render.

This matters more than it looks. A wrong ID in a request parameter returns an empty result rather than a 4xx, so the failure is silent: your comparison table renders, it just quietly has one fewer book in it than you think, on every row, forever.

William Hill 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.

William Hill is the UK-facing book in that group. Most of the rest are American, which is worth knowing when you are deciding what to test your integration against — a book pricing to a British audience will not always post the same market list as one pricing to a US audience, and the free plan is the cheapest place to find that out.

The Unibet Odds API page covers the other side of that, including how three-way soccer markets are structured, since two of the eight free-plan leagues are soccer competitions.

Where William Hill shows up

Two places worth calling out, both from our own coverage tables:

NFL defensive props. The NFL page lists William Hill in the defence prop row, covering defense_tackles, defense_soloTackles, defense_assistedTackles, defense_combinedTackles, defense_sacks and defense_interceptions. A British book pricing individual tackle counts in American football is not the first thing you would guess, and defensive props are a thinner category than the offensive ones, so the books that do carry them matter more.

Soccer regulation lines. It appears in the coverage for the three-way regulation moneyline across international competitions, which is the market a soccer product is built around.

Requesting William Hill prices

Filter to William Hill alone with bookmakerID=williamhill:

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

More usefully, request it alongside the other books on the same market:

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

Every book comes back under the same oddID, so comparing them is a lookup rather than a name-matching problem — which is the same reason building against IDs rather than names matters.

What a William Hill price looks like

{
  "eventID": "...",
  "leagueID": "NFL",
  "odds": {
    "defense_sacks-PLAYER_ID-game-ou-over": {
      "oddID": "defense_sacks-PLAYER_ID-game-ou-over",
      "marketName": "Sacks Over/Under",
      "statID": "defense_sacks",
      "statEntityID": "PLAYER_ID",
      "periodID": "game",
      "betTypeID": "ou",
      "sideID": "over",
      "fairOdds": "+135",
      "fairOverUnder": "0.5",
      "bookOdds": "+125",
      "byBookmaker": {
        "williamhill": { "odds": "+130", "overUnder": "0.5", "available": true },
        "draftkings": { "odds": "+120", "overUnder": "0.5", "available": true }
      }
    }
  }
}

Note the key inside byBookmaker is williamhill, matching the request parameter. Odds and lines are both strings, so +130 keeps its plus sign and "0.5" stays a string rather than becoming a float. fairOdds is the vig-free consensus across every book pricing that market while bookOdds keeps the margin in.

Coverage, honestly

William Hill does not price everything. Read byBookmaker on each odd rather than assuming it is there, and treat its absence as normal rather than as an error — particularly on the narrower prop categories, where the field of books pricing a market thins out considerably. The /markets endpoint returns the supported set by league if you would rather check before requesting odds.

Because an unrecognised bookmakerID also returns nothing, an empty result on its own does not tell you which of the two happened. If a filtered request comes back empty, check the ID against the bookmakers reference before assuming the book is not pricing the market.

Use cases for William Hill data

Prototyping is the honest first one. William Hill is available before you have entered a card, so it is 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 aimed at a different audience than the American majors is worth a column, because two books selling to the same customers tend to show the same number.

For player prop tooling, the defensive categories are where a marginal book is worth most, simply because far fewer books price them than price passing and rushing markets.

William Hill API technical specifications

William Hill comes through the standard /v2/events endpoint, with no separate call, credential or schema.

Billing is per event object rather than per market or per book, so a ten-game slate is ten objects whether the response carries four books or eighty, and whether it returns four markets per game or four hundred.

The free Amateur plan gives you 2,500 objects a month at 10 requests a minute on 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 William Hill?
williamhill, all lowercase and with no space, hyphen or underscore. Pass bookmakerID=williamhill to /v2/events and read the price from byBookmaker.williamhill on each odd. Do not derive the ID by slugifying the display name — the name and the ID are separate fields and they do not always agree.
Is William Hill available on the free plan?
Yes. William Hill is one of nine bookmakers included on the free Amateur tier, alongside FanDuel, Draft Kings, BetMGM, Caesars, ESPN BET, Bovada, Unibet and PointsBet. No card is required, and it stays available on every paid plan above that.
Why did my William Hill request come back empty?
Most often because the bookmakerID was wrong. An unrecognised ID returns an empty result rather than an error, so a typo fails silently instead of throwing. Check the ID is exactly williamhill before concluding the book is not pricing the market. The other possibility is genuine: no single book prices every market, so read byBookmaker on each odd.
Which markets does William Hill price?
It appears in our NFL coverage table under defensive props, covering tackles, solo and assisted tackles, combined tackles, sacks and interceptions, and in the three-way regulation moneyline coverage for international soccer. Coverage changes, so read byBookmaker on each odd or query the /markets endpoint rather than hardcoding a list.
Should I store bookmakers by name or by ID?
By ID. The bookmakerID is the stable contract that requests and responses are keyed on, while the display name is a label that can be corrected without the ID moving. Store the ID as your key and render the name, rather than the other way round.
Does adding William Hill 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 William Hill to a request you were already making costs response size and nothing else.

Build against it before you pay anything

William Hill 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
Unibet
Sportsbook
Virgin Bet
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