Games

One game: per-book odds, period odds, period scores, weather

GET/v1/games/{game_id}
Bearer keySingle objectJSON onlyReturns GameDetail

Request

curl
curl "https://api.thebettinginsider.com/v1/games/NFL-20240905-BAL-KC" \
  -H "Authorization: Bearer tbi_live_YOUR_KEY"

Parameters

ParameterTypeDescription
game_idrequiredpath · string— e.g. NFL-20240908-KC-BAL

Response

Captured from production on 2026-10-13, book and period arrays trimmed. GET /v1/games/NFL-20240905-BAL-KC

200 OK
{
  "data": {
    "game_id": "NFL-20240905-BAL-KC",
    "sport": "nfl",
    "season": 2024,
    "season_type": "regular",
    "week": 1,
    "game_date": "2024-09-05",
    "start_time": "2024-09-06T00:40:00.000Z",
    "status": "final",
    "home": {
      "team_id": 139,
      "abbreviation": "KC",
      "name": "Kansas City Chiefs",
      "score": 27
    },
    "away": {
      "team_id": 126,
      "abbreviation": "BAL",
      "name": "Baltimore Ravens",
      "score": 20
    },
    "neutral_site": false,
    "overtime": null,
    "venue": {
      "venue_id": 2300,
      "name": "GEHA Field at Arrowhead Stadium",
      "city": "Kansas City",
      "indoor": false
    },
    "referee": "Shawn Hochuli",
    "result": {
      "margin_home": 7,
      "home_covered": true,
      "went_over": null,
      "favorite": "home"
    },
    "consensus": {
      "moneyline": {
        "home_open": -148,
        "home_close": -148,
        "away_open": 124,
        "away_close": 124
      },
      "spread": {
        "open": -3,
        "close": -3,
        "home_juice_open": null,
        "home_juice_close": -105,
        "away_juice_open": null,
        "away_juice_close": -115
      },
      "total": {
        "open": 46.5,
        "close": 47,
        "over_juice_close": -112,
        "under_juice_close": -108
      }
    },
    "period_scores": {
      "q1": {
        "home": 7,
        "away": 7
      },
      "q2": {
        "home": 6,
        "away": 3
      },
      "q3": {
        "home": 7,
        "away": 0
      },
      "q4": {
        "home": 7,
        "away": 10
      },
      "1h": {
        "home": 13,
        "away": 10
      },
      "2h": {
        "home": 14,
        "away": 10
      }
    },
    "weather": {
      "temp_f": 71,
      "wind_mph": 16,
      "wind_direction": null,
      "condition": "Clear"
    },
    "books": [
      {
        "book_id": 1002,
        "book": "betmgm",
        "book_name": "BetMGM",
        "moneyline": {
          "home_open": -155,
          "home_close": -150,
          "away_open": 130,
          "away_close": 125
        },
        "spread": {
          "open": -3,
          "close": -3,
          "home_juice_open": null,
          "home_juice_close": -105,
          "away_juice_open": null,
          "away_juice_close": -115
        },
        "total": {
          "open": 46.5,
          "close": 46.5,
          "over_juice_open": null,
          "over_juice_close": -115,
          "under_juice_open": null,
          "under_juice_close": -105
        },
        "team_total": {
          "home_open": 23.5,
          "home_close": 23.5,
          "away_open": 23.5,
          "away_close": 23.5
        }
      },
      {
        "book_id": 1001,
        "book": "betonlineag",
        "book_name": "BetOnline.ag",
        "moneyline": {
          "home_open": -145,
          "home_close": -145,
          "away_open": 125,
          "away_close": 125
        },
        "spread": {
          "open": -3,
          "close": -2.5,
          "home_juice_open": null,
          "home_juice_close": -115,
          "away_juice_open": null,
          "away_juice_close": -105
        },
        "total": {
          "open": 46.5,
          "close": 46.5,
          "over_juice_open": null,
          "over_juice_close": -108,
          "under_juice_open": null,
          "under_juice_close": -112
        },
        "team_total": {
          "home_open": 24.5,
          "home_close": 24.5,
          "away_open": 21.5,
          "away_close": 21.5
        }
      }
    ],
    "period_odds": [
      {
        "period": "1h",
        "book_id": 1002,
        "book": "betmgm",
        "moneyline": {
          "home_open": -140,
          "home_close": -145,
          "away_open": 115,
          "away_close": 120
        },
        "spread": {
          "open": -1,
          "close": -1.5,
          "home_juice_close": -110,
          "away_juice_close": -110
        },
        "total": {
          "open": 23,
          "close": 23,
          "over_juice_close": -105,
          "under_juice_close": -115
        }
      },
      {
        "period": "1h",
        "book_id": 1001,
        "book": "betonlineag",
        "moneyline": {
          "home_open": -140,
          "home_close": -145,
          "away_open": 120,
          "away_close": 125
        },
        "spread": {
          "open": -1.5,
          "close": -1.5,
          "home_juice_close": 100,
          "away_juice_close": -120
        },
        "total": {
          "open": 23,
          "close": 23,
          "over_juice_close": 100,
          "under_juice_close": -120
        }
      },
      {
        "period": "1h",
        "book_id": 1003,
        "book": "betrivers",
        "moneyline": {
          "home_open": null,
          "home_close": null,
          "away_open": null,
          "away_close": null
        },
        "spread": {
          "open": -1.5,
          "close": -1.5,
          "home_juice_close": -105,
          "away_juice_close": -120
        },
        "total": {
          "open": 22.5,
          "close": 22.5,
          "over_juice_close": -118,
          "under_juice_close": -106
        }
      }
    ]
  },
  "meta": {
    "request_id": "7db797d3-c65a-4959-92f7-edab4eddcf96"
  }
}

GameDetail fields

FieldTypeDescription
game_idstring—
sportenumSport. ncaaf is FBS college football.mlbnflncaafnbanhl
seasoninteger—
season_typestring | nullregular | postseason
weekinteger | nullNFL/NCAAF week
game_datestringYYYY-MM-DD in America/New_York.
start_timestringISO-8601 UTC kickoff / first pitch / tip.
statusenum—final
homeobject—
home.team_idinteger | nullTeam id
home.abbreviationstring | nullAbbreviation as in /v1/teams
home.namestring | nullTeam name
home.scoreinteger | nullFinal score
awayobject—
away.team_idinteger | nullTeam id
away.abbreviationstring | nullAbbreviation as in /v1/teams
away.namestring | nullTeam name
away.scoreinteger | nullFinal score
neutral_siteboolean | nullNeutral site
overtimeboolean | nullWent to OT / extra innings / shootout
venueobject | null—
venue.venue_idinteger | nullVenue id
venue.namestring | nullVenue name
venue.citystring | nullCity
venue.indoorboolean | nullIndoor / dome
refereestring | nullLead official / home-plate umpire name
resultobject—
result.margin_homeinteger | nullhome score − away score
result.home_coveredboolean | nullHome covered the consensus closing spread (null on push or no line).
result.went_overboolean | nullFinal total went over the consensus closing total (null on push or no line).
result.favoriteenum | nullConsensus closing favorite.homeaway
consensusobjectMarket-wide consensus: the modal line across US books and the mean implied-probability price of the books on that line. Same numbers the web builder grades against. Null when no US book posted the market.
consensus.moneylineobject—
consensus.moneyline.home_openinteger | nullHome ML open. American odds (e.g. -110).
consensus.moneyline.home_closeinteger | nullHome ML close. American odds (e.g. -110).
consensus.moneyline.away_openinteger | nullAway ML open. American odds (e.g. -110).
consensus.moneyline.away_closeinteger | nullAway ML close. American odds (e.g. -110).
consensus.spreadobject—
consensus.spread.opennumber | nullHome spread open (negative = home favored). Decimal line (e.g. -3.5, 47.5).
consensus.spread.closenumber | nullHome spread close. Decimal line (e.g. -3.5, 47.5).
consensus.spread.home_juice_openinteger | nullHome spread price at open. American odds (e.g. -110).
consensus.spread.home_juice_closeinteger | nullHome spread price at close. American odds (e.g. -110).
consensus.spread.away_juice_openinteger | nullAway spread price at open. American odds (e.g. -110).
consensus.spread.away_juice_closeinteger | nullAway spread price at close. American odds (e.g. -110).
consensus.totalobject—
consensus.total.opennumber | nullTotal open. Decimal line (e.g. -3.5, 47.5).
consensus.total.closenumber | nullTotal close. Decimal line (e.g. -3.5, 47.5).
consensus.total.over_juice_closeinteger | nullOver price at close. American odds (e.g. -110).
consensus.total.under_juice_closeinteger | nullUnder price at close. American odds (e.g. -110).
period_scoresmap<object>Per-period scores keyed by period (q1…q4, 1h, 2h, p1…p3, inn1, inn5, ot). Only periods we have.
period_scores.*.homeinteger | null—
period_scores.*.awayinteger | null—
weatherobject | null—
weather.temp_fnumber | null°F
weather.wind_mphnumber | nullmph
weather.wind_directionstring | null—
weather.conditionstring | nullText condition; Indoor for domes
booksBookOdds[]Per-book full-game odds. US books only.
books[].book_idinteger—
books[].bookstringBook slug, e.g. draftkings.
books[].book_namestring—
books[].moneylineobject—
books[].moneyline.home_openinteger | nullHome ML open. American odds (e.g. -110).
books[].moneyline.home_closeinteger | nullHome ML close. American odds (e.g. -110).
books[].moneyline.away_openinteger | nullAway ML open. American odds (e.g. -110).
books[].moneyline.away_closeinteger | nullAway ML close. American odds (e.g. -110).
books[].spreadobject—
books[].spread.opennumber | nullHome spread open. Decimal line (e.g. -3.5, 47.5).
books[].spread.closenumber | nullHome spread close. Decimal line (e.g. -3.5, 47.5).
books[].spread.home_juice_openinteger | null American odds (e.g. -110).
books[].spread.home_juice_closeinteger | null American odds (e.g. -110).
books[].spread.away_juice_openinteger | null American odds (e.g. -110).
books[].spread.away_juice_closeinteger | null American odds (e.g. -110).
books[].totalobject—
books[].total.opennumber | nullTotal open. Decimal line (e.g. -3.5, 47.5).
books[].total.closenumber | nullTotal close. Decimal line (e.g. -3.5, 47.5).
books[].total.over_juice_openinteger | null American odds (e.g. -110).
books[].total.over_juice_closeinteger | null American odds (e.g. -110).
books[].total.under_juice_openinteger | null American odds (e.g. -110).
books[].total.under_juice_closeinteger | null American odds (e.g. -110).
books[].team_totalobject—
books[].team_total.home_opennumber | null Decimal line (e.g. -3.5, 47.5).
books[].team_total.home_closenumber | null Decimal line (e.g. -3.5, 47.5).
books[].team_total.away_opennumber | null Decimal line (e.g. -3.5, 47.5).
books[].team_total.away_closenumber | null Decimal line (e.g. -3.5, 47.5).
period_oddsPeriodOdds[]—
period_odds[].periodstring1h, 2h, q1–q4, p1, inn1, inn5.
period_odds[].book_idinteger—
period_odds[].bookstring—
period_odds[].moneylineobject—
period_odds[].moneyline.home_openinteger | null American odds (e.g. -110).
period_odds[].moneyline.home_closeinteger | null American odds (e.g. -110).
period_odds[].moneyline.away_openinteger | null American odds (e.g. -110).
period_odds[].moneyline.away_closeinteger | null American odds (e.g. -110).
period_odds[].spreadobject—
period_odds[].spread.opennumber | null Decimal line (e.g. -3.5, 47.5).
period_odds[].spread.closenumber | null Decimal line (e.g. -3.5, 47.5).
period_odds[].spread.home_juice_closeinteger | null American odds (e.g. -110).
period_odds[].spread.away_juice_closeinteger | null American odds (e.g. -110).
period_odds[].totalobject—
period_odds[].total.opennumber | null Decimal line (e.g. -3.5, 47.5).
period_odds[].total.closenumber | null Decimal line (e.g. -3.5, 47.5).
period_odds[].total.over_juice_closeinteger | null American odds (e.g. -110).
period_odds[].total.under_juice_closeinteger | null American odds (e.g. -110).

Errors

StatusWhen
400Invalid parameter
401Missing or unknown API key
403Key revoked or subscription inactive
404Unknown game, or game not yet final
429Rate limit or monthly quota exceeded (see Retry-After)

All errors share one envelope — see Errors.