Guide

Data conventions

Seasons, dates, odds format, consensus, pushes, exclusions.

Historical only

The API serves completed, graded games. A game appears once it is final and its results are computed — typically within a couple of hours of the end — and never before. There are no upcoming lines, no live odds and no schedules on this API. Think of it as a ledger: rows are added, not edited, except for rare data corrections.

Identifiers

  • game_id — SPORT-YYYYMMDD-AWAY-HOME, e.g. NFL-20240905-BAL-KC. Stable; the join key everywhere.
  • team_id / abbreviation — from /v1/teams. Filters accept either. Abbreviations are the ones in the catalog, not necessarily what a given book prints.
  • book slug / book_id — e.g. draftkings / 1004. Filters accept either.

Seasons

Sportseason meansExample
mlbCalendar year2025 = the 2025 season
nflYear the season started2025 = 2025-26 (Super Bowl in Feb 2026)
ncaafYear the season started2025 = 2025-26
nbaYear the season ended2026 = 2025-26
nhlYear the season ended2026 = 2025-26

season_type is regular or postseason. Preseason/exhibition games are not published. week is set for NFL and NCAAF only.

Dates and times

  • game_date is the local slate date in America/New_York (YYYY-MM-DD). A 10:40pm ET tip on the 5th that starts at 02:40 UTC on the 6th has game_date = …-05. from/to filter on this field, inclusive.
  • start_time is the scheduled start in ISO-8601 UTC.

Odds and lines

  • Prices are American odds (-110, +145).
  • Spreads are home-anchored: spread.close = -3 means the home team closed as a 3-point favorite; +3 means the home team was a 3-point underdog. Away spread is the negation.
  • open is the first number we captured for the market; close is the last pregame number. Opening prices (*_juice_open) are null where only the line, not the price, was captured — common before 2024.
  • Totals and team totals are plain numbers; null means the market wasn't offered or wasn't captured.

Consensus

consensus.* on /v1/games is computed across the published US books for that game: the modal line (the spread/total most books posted), priced at the mean implied probability of the books on that line, converted back to American odds. It is not any single book's number and it is not a stored field — if you need a specific book, use /v1/odds. Result flags on /v1/games are graded against the consensus close; result flags on /v1/odds are graded against that book's own close.

Results and pushes

  • result.margin_home = home score − away score.
  • home_covered / went_over are booleans, or null on a push or when there was no closing line to grade against. Check spread.close / total.close if you need to tell the two apart (on /v1/odds, spread_push / total_push are explicit).
  • favorite is derived from the consensus closing spread (home if negative, away if positive, null on a pick'em or no line).
  • overtime covers OT, extra innings and shootouts; null when unknown for older games.

Books

v1 publishes US-facing books as captured per game — DraftKings, FanDuel, BetMGM, Caesars, BetRivers, Bovada, BetOnline.ag, BetUS, MyBookie.ag, LowVig.ag. The list per game is in books[] on the game detail. We do not publish Pinnacle or betting-split/sharp-money fields on this API.

What is excluded

  • Games before the 2022 season (MLB/NFL/NCAAF), 2022-23 (NBA) or 2023-24 (NHL).
  • Preseason, exhibitions and all-star events (Pro Bowl, NBA All-Star, 4 Nations, MLB All-Star Game).
  • Postponed/cancelled games that never completed.
  • Player props, futures and live/in-play odds (props are on the roadmap — see the changelog).