Sportsbook

Fanatics Odds API

Pull Fanatics Sportsbook prices through the SportsGameOdds API, normalised into the same structure as 85+ other books. Player props and game lines arrive on the same oddID, in one request.

Look at where Fanatics turns up in our own coverage tables and a pattern shows up quickly. It is not in the rows for moneylines and spreads, where almost every book appears and the numbers mostly agree. It is in the prop rows.

That is the case for carrying it, and it is a narrower case than "one more book on the list."

Where Fanatics actually shows up

Across the league pages, Fanatics sits in the player prop rows more consistently than the game line rows:

  • NFL — passing props (passing_yards, passing_touchdowns, passing_completions) and rushing and receiving props (rushing_yards, receiving_yards, receiving_receptions)
  • MLB — batting props (batting_hits, batting_homeRuns, batting_totalBases) and pitching props (pitching_strikeouts)
  • Soccer — card markets, including yellowCards, redCards and combinedCards
  • NHL — the core game lines alongside the other major US books

Game lines and props are not the same problem. A spread on a major NFL game is priced by dozens of books watching each other, and the numbers cluster. A prop on a third receiver is priced with less liquidity and more room for a book's own view, so the spread between the best and worst available number is wider — and which books you happen to carry matters more.

That is the argument for a prop-heavy book specifically. On a spread, the marginal book changes your best price by a cent or two. On a prop, it can change it by a lot more.

Which plan includes Fanatics

Fanatics is available on the Pro plan and above, in the same group as Bet365, Circa, Pinnacle and PrizePicks. Neither the free Amateur tier nor the Rookie plan carries it, so a request filtered to fanatics on those plans returns an empty result rather than an error. Pricing lists the books on each tier.

Worth knowing if you are building prop tools: PrizePicks is gated the same way. A product whose whole premise is comparing prop lines is a Pro-tier product, not a Rookie one.

Requesting Fanatics prices

Filter to Fanatics alone with bookmakerID=fanatics:

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

For prop comparison you want several books on the same market, which is the same request with a longer list:

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

Props come back in the same /v2/events response as the game lines. There is no separate props endpoint to call and reconcile.

What a Fanatics prop looks like

Player props use the player's ID as the statEntityID, so the oddID follows the same {statID}-{statEntityID}-{periodID}-{betTypeID}-{sideID} pattern as everything else:

{
  "eventID": "...",
  "leagueID": "NFL",
  "odds": {
    "passing_yards-JALEN_HURTS_1_NFL-game-ou-over": {
      "oddID": "passing_yards-JALEN_HURTS_1_NFL-game-ou-over",
      "marketName": "Jalen Hurts Passing Yards Over/Under",
      "statID": "passing_yards",
      "statEntityID": "JALEN_HURTS_1_NFL",
      "periodID": "game",
      "betTypeID": "ou",
      "sideID": "over",
      "fairOdds": "-108",
      "fairOverUnder": "224.5",
      "bookOdds": "-112",
      "byBookmaker": {
        "fanatics": { "odds": "-105", "overUnder": "223.5", "available": true },
        "draftkings": { "odds": "-115", "overUnder": "224.5", "available": true }
      }
    }
  }
}

Two things that matter here. Odds and lines are both strings, so -105 arrives as "-105" and "223.5" stays a string rather than becoming a float you have to guard against. And the two books are not on the same number — Fanatics is at 223.5 and DraftKings at 224.5. On props that happens constantly, and handling a line difference rather than only a price difference is most of the work in a prop comparison tool.

fairOdds and fairOverUnder give you the vig-free consensus across every book pricing that market, so you have a reference without building one.

Coverage, honestly

Fanatics does not price every prop, 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. The /markets endpoint returns the supported set by league if you would rather check before requesting odds than handle it at runtime.

Prop catalogues also change more than game lines do. Books add and drop prop types between seasons and sometimes within them, so anything you hardcode is a bug waiting for a quiet week.

Coverage is also uneven by sport rather than uniformly deep. Fanatics is strongest on the US prop categories; the soccer attacking props are named to a different set of books again, which the BetOnline Odds API page covers.

Use cases for Fanatics data

Prop comparison is the direct one. Wider spreads between books mean more to find, and the finding only works if the lines as well as the prices line up on a shared oddID. See the odds comparison API.

For positive EV work, props are usually where the edge is, precisely because they are priced with less scrutiny than a marquee spread. A book with deep prop coverage gives your model more markets to disagree with.

Player prop tooling more broadly benefits from carrying books that price the long tail rather than only the headline markets, and DFS-style products can put a sportsbook prop line next to a fantasy projection on the same player and stat. Our provider guide compares what the main prop data sources actually return.

Fanatics API technical specifications

Fanatics 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. A ten-game NFL Sunday is ten objects whether the response carries four books or eighty, and whether it carries four markets per game or four hundred. Props are the clearest case where that matters: a single football game can return hundreds of prop markets and still counts once.

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 Fanatics?
fanatics, in lowercase. Pass bookmakerID=fanatics to /v2/events and read the price from byBookmaker.fanatics on each odd. Build against the ID rather than the display name, since the two do not always match across books.
Which plans include Fanatics?
Pro and above. Fanatics sits in the same group as Bet365, Circa, Pinnacle and PrizePicks, none of which are on the free Amateur tier or the Rookie book list. A request filtered to bookmakerID=fanatics on a plan that does not carry it returns an empty result rather than an error.
Do I need a separate request to get Fanatics player props?
No. Props come back in the same /v2/events response as the game lines, keyed by the same oddID pattern with the player's ID as the statEntityID. There is no separate props endpoint to call and reconcile against the event.
Why do two books show different lines on the same prop?
Because props are priced with less liquidity and more room for a book's own view than a marquee spread, so books disagree on the line as well as the price. A prop comparison tool has to handle both: Fanatics at 223.5 and DraftKings at 224.5 on the same market is normal, not an error. Both the odds and the line arrive as strings.
Which props does Fanatics price?
Coverage is strongest on the main US prop categories: NFL passing, rushing and receiving props, MLB batting and pitching props, and soccer card markets. Availability changes between and within seasons, so read byBookmaker on each odd or query the /markets endpoint rather than hardcoding a list.
Does requesting props cost more than requesting game lines?
No. Billing is per event object rather than per market, so one NFL game counts once whether the response returns four markets or four hundred. Adding Fanatics and its prop coverage to a request you were already making costs response size and nothing else.

Compare prop lines across books

Fanatics, PrizePicks 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
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
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