NBA games API
games
nba.gamesEvery scheduled and played NBA game from the 2020-21 season onward — preseason, the 82-game regular season, the In-Season Tournament, the play-in round, and the four-round playoffs through the NBA Finals. All-Star exhibitions are not included.
GET/api/v1/nba/gamesList games for NBA
Requires one of:
season_id — requests satisfying none of these return 400.Parameters
season_idquerybigintoptionalFilter to a season. Defaults to the current season.
home_team_idquerybigintoptionalFilter by home team.
away_team_idquerybigintoptionalFilter by away team.
statusquerystringoptionalFilter by game status. Values: Cancelled, Final, Scheduled.
dayqueryintegeroptionalFilter by calendar day (YYYYMMDD integer, US Eastern) — e.g. day=20260609 for tonight's slate. Note season_id defaults to the current season; pass season_id explicitly when querying a past season's day. Range syntax: day__gte=, day__lte=, day__between=.
season_typequerystringoptionalFilter by season phase (regular_season, preseason, postseason, play_in, in_season_tournament, all_star). Values: all_star, in_season_tournament, play_in, postseason, preseason, regular_season.
limitqueryintegeroptionaldefault 100Page size. Defaults to 100; max 5000.
from_idquerybigintoptionalReturn 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/nba/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/jsonResponse Schema(27 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
away_team_id | bigint | — e.g. 1 | |
home_team_id | bigint | — e.g. 1 | |
league_game_id | stringnullable | — | Official NBA game ID (issued by the league) e.g. 0022500650 |
season_id | bigint | — e.g. 2023 | |
stadium_id | integernullable | — e.g. 19 | |
attendance | integernullable | — | — e.g. 19156 |
away_rotation_number | integernullable | — | — e.g. — (all-null in sample) |
away_team | string | — | — e.g. BOS |
away_team_score | integer | — | — e.g. 113 |
channel | stringnullable | — | — e.g. NBA TV |
day | integer | — | — e.g. 20250413 |
end_time | timestamptznullable | — | — e.g. 2025-03-20T04:11:00.000Z |
game_label | stringnullable | — | — e.g. — (all-null in sample) |
game_sub_label | stringnullable | — | — e.g. — (all-null in sample) |
game_time | timestamptznullable | — | Scheduled tip-off (timezone-aware); null when the league published no time. e.g. 2025-04-13T19:30:00.000Z |
home_rotation_number | integernullable | — | — e.g. — (all-null in sample) |
home_team | string | — | — e.g. BOS |
home_team_score | integer | — | — e.g. 112 |
if_necessary | booleannullable | — | — e.g. — (all-null in sample) |
neutral_venue | boolean | — | — Values:falsetrue |
postponed_status | stringnullable | — | — e.g. — (all-null in sample) |
season_type | string | — | — Values:regular_seasonpostseasonpreseasonplay_inin_season_tournament |
series_game_number | stringnullable | — | — e.g. — (all-null in sample) |
series_name | stringnullable | — | — e.g. — (all-null in sample) |
series_text | stringnullable | — | — e.g. — (all-null in sample) |
status | string | — | — e.g. Final |
GET/api/v1/nba/games/{id}Get a single game by id
Parameters
idpathbigintrequiredPrimary 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/nba/games/{pk_value}'Responses
200Single game row.application/jsonshow example ▸
404Row not found.
Response Schema(27 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
away_team_id | bigint | — e.g. 1 | |
home_team_id | bigint | — e.g. 1 | |
league_game_id | stringnullable | — | Official NBA game ID (issued by the league) e.g. 0022500650 |
season_id | bigint | — e.g. 2023 | |
stadium_id | integernullable | — e.g. 19 | |
attendance | integernullable | — | — e.g. 19156 |
away_rotation_number | integernullable | — | — e.g. — (all-null in sample) |
away_team | string | — | — e.g. BOS |
away_team_score | integer | — | — e.g. 113 |
channel | stringnullable | — | — e.g. NBA TV |
day | integer | — | — e.g. 20250413 |
end_time | timestamptznullable | — | — e.g. 2025-03-20T04:11:00.000Z |
game_label | stringnullable | — | — e.g. — (all-null in sample) |
game_sub_label | stringnullable | — | — e.g. — (all-null in sample) |
game_time | timestamptznullable | — | Scheduled tip-off (timezone-aware); null when the league published no time. e.g. 2025-04-13T19:30:00.000Z |
home_rotation_number | integernullable | — | — e.g. — (all-null in sample) |
home_team | string | — | — e.g. BOS |
home_team_score | integer | — | — e.g. 112 |
if_necessary | booleannullable | — | — e.g. — (all-null in sample) |
neutral_venue | boolean | — | — Values:falsetrue |
postponed_status | stringnullable | — | — e.g. — (all-null in sample) |
season_type | string | — | — Values:regular_seasonpostseasonpreseasonplay_inin_season_tournament |
series_game_number | stringnullable | — | — e.g. — (all-null in sample) |
series_name | stringnullable | — | — e.g. — (all-null in sample) |
series_text | stringnullable | — | — e.g. — (all-null in sample) |
status | string | — | — e.g. Final |