STAT-API

NHL games API

gamesnhl.games
Every scheduled and played NHL game — preseason, the 82-game regular season, and the four-round Stanley Cup Playoffs through the Stanley Cup Final.
⚠️ This endpoint is documented but not yet live. Calls return 503 until data is wired in.
GET/api/v1/nhl/games
Requires one of: season_id — requests satisfying none of these return 400.
Parameters
season_idquerybigintoptional
Filter to a season. Defaults to the current season.
home_team_idquerybigintoptional
Filter by home team.
away_team_idquerybigintoptional
Filter by away team.
statusquerystringoptional
Filter by game status.
dayqueryintegeroptional
Filter by calendar day (YYYY-MM-DD date) — e.g. day=2026-06-09 for today's slate. season_id defaults to the current season; pass it explicitly for past-season days. Range syntax: day__gte=, day__lte=, day__between=.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nhl/games?season_id=2026'
Responses
200games rows matching the declared filter set, wrapped in { games, limit, next_from_id }. next_from_id is the last row's id on a full page — pass it back via ?from_id= to walk the full result; null marks the terminal page.application/jsonshow example ▸
400No declared filter set was satisfied — response body matches MissingRequiredFiltersError; pick one combo from the accepted-sets hint and resend.application/json
503Coming soon — handler returns 503 until data is wired in.
Response Schema(35 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
arena_id
bigintnullable—
e.g. — (all-null in sample)
away_team_id
bigint—
e.g. — (all-null in sample)
home_team_id
bigint—
e.g. — (all-null in sample)
league_game_id
integernullable—Official NHL game ID (issued by the league)
e.g. — (all-null in sample)
league_id
stringnullable—Official NHL game identifier
e.g. — (all-null in sample)
season_id
bigint—
e.g. — (all-null in sample)
attendance
integernullable——
e.g. — (all-null in sample)
away_team_score
integernullable——
e.g. — (all-null in sample)
away_team_score_overtime
integernullable——
e.g. — (all-null in sample)
away_team_score_period1
integernullable——
e.g. — (all-null in sample)
away_team_score_period2
integernullable——
e.g. — (all-null in sample)
away_team_score_period3
integernullable——
e.g. — (all-null in sample)
away_team_series_wins
integernullable——
e.g. — (all-null in sample)
channel
stringnullable——
e.g. — (all-null in sample)
day
integer—Calendar day as a YYYYMMDD integer (e.g. 20240915), US Eastern.
e.g. — (all-null in sample)
game_time
timestamptz—Scheduled puck drop (timezone-aware).
e.g. — (all-null in sample)
home_team_score
integernullable——
e.g. — (all-null in sample)
home_team_score_overtime
integernullable——
e.g. — (all-null in sample)
home_team_score_period1
integernullable——
e.g. — (all-null in sample)
home_team_score_period2
integernullable——
e.g. — (all-null in sample)
home_team_score_period3
integernullable——
e.g. — (all-null in sample)
home_team_series_wins
integernullable——
e.g. — (all-null in sample)
is_overtime
boolean——
e.g. — (all-null in sample)
is_shootout
boolean——
e.g. — (all-null in sample)
last_play
stringnullable——
e.g. — (all-null in sample)
neutral_site
boolean——
e.g. — (all-null in sample)
overtime_periods
integernullable——
e.g. — (all-null in sample)
period
stringnullable—Current period (1, 2, 3, OT, SO, Final)
e.g. — (all-null in sample)
playoff_round
stringnullable—First Round, Second Round, Conference Finals, Stanley Cup Final
e.g. — (all-null in sample)
season_type
string—Canonical season phase (text). Was integer 1/2/3/4 before the 2026-06-29 normalization.
e.g. — (all-null in sample)
series_game_number
integernullable——
e.g. — (all-null in sample)
status
string——
e.g. — (all-null in sample)
time_remaining_minutes
integernullable——
e.g. — (all-null in sample)
time_remaining_seconds
integernullable——
e.g. — (all-null in sample)
GET/api/v1/nhl/games/{id}
Parameters
idpathbigintrequired
Primary key (id) of the game row.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nhl/games/{pk_value}'
Responses
200Single game row.application/jsonshow example ▸
404Row not found.
503Coming soon — handler returns 503 until data is wired in.
Response Schema(35 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
arena_id
bigintnullable—
e.g. — (all-null in sample)
away_team_id
bigint—
e.g. — (all-null in sample)
home_team_id
bigint—
e.g. — (all-null in sample)
league_game_id
integernullable—Official NHL game ID (issued by the league)
e.g. — (all-null in sample)
league_id
stringnullable—Official NHL game identifier
e.g. — (all-null in sample)
season_id
bigint—
e.g. — (all-null in sample)
attendance
integernullable——
e.g. — (all-null in sample)
away_team_score
integernullable——
e.g. — (all-null in sample)
away_team_score_overtime
integernullable——
e.g. — (all-null in sample)
away_team_score_period1
integernullable——
e.g. — (all-null in sample)
away_team_score_period2
integernullable——
e.g. — (all-null in sample)
away_team_score_period3
integernullable——
e.g. — (all-null in sample)
away_team_series_wins
integernullable——
e.g. — (all-null in sample)
channel
stringnullable——
e.g. — (all-null in sample)
day
integer—Calendar day as a YYYYMMDD integer (e.g. 20240915), US Eastern.
e.g. — (all-null in sample)
game_time
timestamptz—Scheduled puck drop (timezone-aware).
e.g. — (all-null in sample)
home_team_score
integernullable——
e.g. — (all-null in sample)
home_team_score_overtime
integernullable——
e.g. — (all-null in sample)
home_team_score_period1
integernullable——
e.g. — (all-null in sample)
home_team_score_period2
integernullable——
e.g. — (all-null in sample)
home_team_score_period3
integernullable——
e.g. — (all-null in sample)
home_team_series_wins
integernullable——
e.g. — (all-null in sample)
is_overtime
boolean——
e.g. — (all-null in sample)
is_shootout
boolean——
e.g. — (all-null in sample)
last_play
stringnullable——
e.g. — (all-null in sample)
neutral_site
boolean——
e.g. — (all-null in sample)
overtime_periods
integernullable——
e.g. — (all-null in sample)
period
stringnullable—Current period (1, 2, 3, OT, SO, Final)
e.g. — (all-null in sample)
playoff_round
stringnullable—First Round, Second Round, Conference Finals, Stanley Cup Final
e.g. — (all-null in sample)
season_type
string—Canonical season phase (text). Was integer 1/2/3/4 before the 2026-06-29 normalization.
e.g. — (all-null in sample)
series_game_number
integernullable——
e.g. — (all-null in sample)
status
string——
e.g. — (all-null in sample)
time_remaining_minutes
integernullable——
e.g. — (all-null in sample)
time_remaining_seconds
integernullable——
e.g. — (all-null in sample)