Sportsbook

BetOnline Odds API

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

A sportsbook's market list is not purely a commercial decision. What a book is allowed to offer depends in part on who licenses it, which is why two books covering the same match can publish quite different sets of markets.

BetOnline is not tied to a single regulated market the way a US state-licensed book is. That shows up in the data as a different coverage shape rather than as more coverage, and it is the reason to carry it.

Where BetOnline shows up in the coverage tables

The Premier League coverage table on our EPL page lists a different set of books for each market category. BetOnline appears in one of them: shots and attacking props — shots, shots_onGoal, shots_assisted, dribbles_attempted and assists.

The books named for that category are not the same ones named for the headline match lines. Moneylines, spreads and totals list DraftKings, FanDuel, BetMGM, Caesars and the rest of the majors. Shots and attacking props list bet365, FanDuel, BetRivers, BetOnline, PrizePicks, Novig and Ballybet.

That gap is the whole point. On a Premier League moneyline you have more books than you need and they mostly agree. On shots on goal for a specific midfielder, the field thins out fast, and a book that prices it is worth more to you than the tenth book pricing the moneyline.

The same pattern holds across the tables generally: headline markets are crowded, the long tail is not, and the books in the long tail are rarely the biggest names.

Which plan includes BetOnline

BetOnline is available on the Rookie plan and above. The free Amateur tier carries a shorter list of nine books that does not include it, so a request filtered to betonline on that plan returns an empty result rather than an error. Pricing lists the books on each tier.

Requesting BetOnline prices

Filter to BetOnline alone with bookmakerID=betonline:

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

In practice you want it alongside the books it complements rather than on its own:

curl "https://api.sportsgameodds.com/v2/events?leagueID=EPL&bookmakerID=betonline,bet365,fanduel,prizepicks&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 BetOnline price looks like

Player props use the player's ID as the statEntityID, following the same {statID}-{statEntityID}-{periodID}-{betTypeID}-{sideID} pattern as every other market:

{
  "eventID": "...",
  "leagueID": "EPL",
  "odds": {
    "shots_onGoal-PLAYER_ID-game-ou-over": {
      "oddID": "shots_onGoal-PLAYER_ID-game-ou-over",
      "marketName": "Shots On Goal Over/Under",
      "statID": "shots_onGoal",
      "statEntityID": "PLAYER_ID",
      "periodID": "game",
      "betTypeID": "ou",
      "sideID": "over",
      "fairOdds": "+118",
      "fairOverUnder": "1.5",
      "bookOdds": "+110",
      "byBookmaker": {
        "betonline": { "odds": "+120", "overUnder": "1.5", "available": true },
        "bet365": { "odds": "+105", "overUnder": "1.5", "available": true }
      }
    }
  }
}

Odds and lines both arrive as strings, so +120 stays "+120" with the plus sign intact and "1.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

BetOnline does not price everything, and its coverage is less predictable than a major book's. Read byBookmaker on each odd rather than assuming it is there, 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.

This is also a book where availability genuinely varies for your end users depending on where they are. If you are building a product that surfaces a price and then sends someone to a book, that is worth handling in your interface rather than assuming every line you can read is a line your user can act on.

Use cases for BetOnline data

Odds comparison is the direct one, with the caveat above about what you present to whom. The value is concentrated in the markets where fewer books compete rather than in the headline lines.

For arbitrage tools, books outside the main cluster turn up on one leg more often than their size suggests, simply because they are not watching the same competitors as closely.

For positive EV work and modelling generally, a book with a different market list gives you markets to price that the crowded books never post, which is usually more useful than another opinion on a spread you already have twenty views of.

BetOnline API technical specifications

BetOnline 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 BetOnline alone or BetOnline 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. 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 BetOnline?
betonline, in lowercase. Pass bookmakerID=betonline to /v2/events and read the price from byBookmaker.betonline on each odd. Build against the ID rather than the display name, since the two do not always match across books.
Which plans include BetOnline?
Rookie and above. The free Amateur tier carries a shorter list of nine books that does not include BetOnline, so filtering a request to bookmakerID=betonline on that plan returns an empty result rather than an error.
Why carry BetOnline when I already have the major books?
Because coverage overlaps least where it matters most. The headline markets are priced by dozens of books that mostly agree, while narrower categories like shots and attacking props are priced by a much smaller set. BetOnline appears in that second group, so it adds markets rather than another opinion on markets you already have.
Which markets does BetOnline price?
It appears in our Premier League coverage table under shots and attacking props, covering shots, shots on goal, shots assisted, dribbles attempted and assists, alongside core game lines across the major leagues. Coverage changes, so read byBookmaker on each odd or query the /markets endpoint rather than hardcoding a list.
Is BetOnline available to all of my users?
Not necessarily. Availability differs by where an end user is, which is worth handling in your interface if your product surfaces a price and then links someone to a book. The API returns the line regardless; whether a given user can act on it is a separate question your product needs to answer.
Does adding BetOnline 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 BetOnline to a request you were already making costs response size and nothing else.

Cover the markets the big books skip

BetOnline 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
BetMGM
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