NBA game_player_stats API
game_player_stats
nba.game_player_statsEach NBA player's stat line for each game — points, rebounds, assists, steals, blocks, shooting line, three-point line, free-throw line, plus-minus, and minutes played.
GET/api/v1/nba/game_player_statsList game_player_stats for NBA
Requires one of:
game_id or player_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
player_idquerybigintoptionalFilter to a single player — their full game log, newest first. Combine with game_date ranges to window it.
team_idquerybigintoptionalFilter by team.
game_datequeryintegeroptionalFilter by game day (YYYYMMDD integer, US Eastern). Range syntax: game_date__gte=, game_date__lte=, game_date__between=.
limitqueryintegeroptionaldefault 50Page size. Defaults to 50; 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/game_player_stats?game_id=1'Responses
200game_player_stats rows matching the declared filter set, wrapped in { game_player_stats, 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(113 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 122 | |
player_id | bigint | — e.g. 75 | |
team_id | bigint | — e.g. 17 | |
abnormal_exit_clock | integer | — | — e.g. 0 |
abnormal_exit_period | integer | — | — e.g. 0 |
alley_oops | integer | — | — e.g. 0 |
and_ones | integer | — | — e.g. 0 |
assist_percentage | decimalnullable | — | — e.g. 0.0000 |
assist_ratio | decimalnullable | — | — e.g. 0.0000 |
assist_to_turnover | decimalnullable | — | — e.g. 0.0000 |
assists | integer | — | — e.g. 0 |
avg_dribbles_per_touch | decimalnullable | — | — e.g. 0.0000 |
avg_seconds_per_touch | decimalnullable | — | — e.g. 0.0000 |
backcourt_violations | integer | — | — e.g. 0 |
balls_stolen | integernullable | — | — e.g. 0 |
basket_interference_violations | integer | — | — e.g. 0 |
blocks | integer | — | — e.g. 0 |
box_outs | integernullable | — | — e.g. 0 |
carrying_palming_violations | integer | — | — e.g. 0 |
challenges_requested | integer | — | — e.g. 0 |
charges_taken | integernullable | — | — e.g. 0 |
comment | stringnullable | — | — e.g. — (all-null in sample) |
competitive_minutes | decimal | — | — e.g. 0.0 |
contests | integernullable | — | — e.g. 1 |
defensive_rating | decimalnullable | — | — e.g. 100.0000 |
defensive_rebound_percentage | decimalnullable | — | — e.g. 0.0000 |
defensive_rebounds | integer | — | — e.g. 1 |
deflections | integernullable | — | — e.g. 1 |
double_doubles | integer | — | — e.g. 0 |
double_dribble_violations | integer | — | — e.g. 0 |
drives | integernullable | — | — e.g. 0 |
dunks | integer | — | — e.g. 0 |
effective_field_goal_percentage | decimalnullable | — | — e.g. 0.0000 |
ejections | integer | — | — e.g. 0 |
elbow_touches | integernullable | — | — e.g. 0 |
estimated_defensive_rating | decimalnullable | — | — e.g. 100.0000 |
estimated_net_rating | decimalnullable | — | — e.g. 0.0000 |
estimated_offensive_rating | decimalnullable | — | — e.g. 100.0000 |
estimated_pace | decimalnullable | — | — e.g. 84.7100 |
estimated_usage_percentage | decimalnullable | — | — e.g. 0.1670 |
fast_break_pts | integer | — | — e.g. 0 |
field_goal_percentage | decimalnullable | — | — e.g. 0.0000 |
field_goals_attempted | integer | — | — e.g. 5 |
field_goals_made | integer | — | — e.g. 1 |
foul_trouble_severity | integer | — | — e.g. 0 |
fouls | integer | — | Total fouls: personal_fouls + technical_fouls. Use personal_fouls, not this, to judge foul trouble — a player fouls out on 6 PERSONAL fouls and technicals do not count toward that. e.g. 1 |
fouls_drawn | integer | — | — e.g. 0 |
free_throw_percentage | decimalnullable | — | — e.g. 0.0000 |
free_throws_attempted | integer | — | — e.g. 0 |
free_throws_made | integer | — | — e.g. 0 |
front_court_touches | integernullable | — | — e.g. 14 |
game_date | integer | — | — e.g. 20251112 |
garbage_time_minutes | decimal | — | — e.g. 0 |
goaltending_violations | integer | — | — e.g. 0 |
hockey_assists | integernullable | — | — e.g. 0 |
jump_balls_lost | integer | — | — e.g. 0 |
jump_balls_won | integer | — | — e.g. 0 |
lane_violations | integer | — | — e.g. 0 |
layups | integer | — | — e.g. 0 |
loose_balls_recovered | integernullable | — | — e.g. 0 |
minutes | decimal | — | — e.g. 31.7000 |
minutes_deviation_pct | decimal | — | — e.g. 0 |
net_rating | decimalnullable | — | — e.g. 0.0000 |
offensive_fouls | integer | — | Offensive fouls. A SUBSET of personal_fouls, not an addition to it. e.g. 0 |
offensive_rating | decimalnullable | — | — e.g. 100.0000 |
offensive_rebound_percentage | decimalnullable | — | — e.g. 0.0000 |
offensive_rebounds | integer | — | — e.g. 0 |
paint_touches | integernullable | — | — e.g. 0 |
pass_percentage | decimalnullable | — | — e.g. 0.0000 |
passes | integernullable | — | — e.g. 18 |
passes_deflected | integernullable | — | — e.g. 0 |
personal_fouls | integer | — | Personal fouls only — the count a player fouls out on at 6. Includes offensive and flagrant fouls, which the NBA scores as personal fouls. e.g. 1 |
player_impact_estimate | decimal | — | — e.g. 0.0000 |
plus_minus | integer | — | — e.g. 0 |
possessions | integer | — | — e.g. 53 |
post_touches | integernullable | — | — e.g. 0 |
potential_assists | integernullable | — | — e.g. 0 |
pts | integer | — | — e.g. 0 |
pts_per_elbow_touch | decimalnullable | — | — e.g. — (all-null in sample) |
pts_per_paint_touch | decimalnullable | — | — e.g. — (all-null in sample) |
pts_per_post_touch | decimalnullable | — | — e.g. — (all-null in sample) |
pts_per_touch | decimalnullable | — | — e.g. 0.0000 |
put_backs | integer | — | — e.g. 0 |
rebound_percentage | decimalnullable | — | — e.g. 0.0000 |
rebounds | integer | — | — e.g. 2 |
role_anomalous_game | boolean | — | — Values:falsetrue |
role_archetype | stringnullable | — | — Values:deep_benchco_starcore_starterrotationend_of_benchalphasixth_mantwo_way |
role_archetype_confidence | decimal | — | — e.g. 0.6 |
rotation_context | stringnullable | — | — Values:normalgarbage_time_boostambiguous_anomalyblowout_restfoul_troublefoul_outinjury_exitdnp_coach |
rotation_context_confidence | decimal | — | — e.g. 0.5 |
screen_assists | integernullable | — | — e.g. 0 |
second_chance_pts | integer | — | — e.g. 0 |
shot_clock_violations | integer | — | — e.g. 0 |
shot_contested_count | integernullable | — | — e.g. 1 |
shots_blocked | integernullable | — | — e.g. 0 |
start_position | stringnullable | — | — Values:GFC |
steals | integer | — | — e.g. 0 |
substitutions_in | integer | — | — e.g. 0 |
substitutions_out | integer | — | — e.g. 0 |
technical_fouls | integer | — | Technical fouls. The one foul type the NBA keeps OUT of the personal count; 2 means ejection. e.g. 0 |
three_point_percentage | decimalnullable | — | — e.g. 0.0000 |
three_pointers_attempted | integer | — | — e.g. 0 |
three_pointers_made | integer | — | — e.g. 0 |
time_of_possession | decimalnullable | — | — e.g. 0.2000 |
timeouts_called | integer | — | — e.g. 0 |
touches | integernullable | — | — e.g. 28 |
traveling_violations | integer | — | — e.g. 0 |
triple_doubles | integer | — | — e.g. 0 |
true_shooting_percentage | decimalnullable | — | — e.g. 0.0000 |
turnover_ratio | decimalnullable | — | — e.g. 0.0000 |
turnovers | integer | — | — e.g. 0 |
usage_percentage | decimalnullable | — | — e.g. 0.0000 |
GET/api/v1/nba/game_player_stats/{id}Get a single game_player_stat by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_player_stat 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/game_player_stats/{pk_value}'Responses
200Single game_player_stat row.application/jsonshow example ▸
404Row not found.
Response Schema(113 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 122 | |
player_id | bigint | — e.g. 75 | |
team_id | bigint | — e.g. 17 | |
abnormal_exit_clock | integer | — | — e.g. 0 |
abnormal_exit_period | integer | — | — e.g. 0 |
alley_oops | integer | — | — e.g. 0 |
and_ones | integer | — | — e.g. 0 |
assist_percentage | decimalnullable | — | — e.g. 0.0000 |
assist_ratio | decimalnullable | — | — e.g. 0.0000 |
assist_to_turnover | decimalnullable | — | — e.g. 0.0000 |
assists | integer | — | — e.g. 0 |
avg_dribbles_per_touch | decimalnullable | — | — e.g. 0.0000 |
avg_seconds_per_touch | decimalnullable | — | — e.g. 0.0000 |
backcourt_violations | integer | — | — e.g. 0 |
balls_stolen | integernullable | — | — e.g. 0 |
basket_interference_violations | integer | — | — e.g. 0 |
blocks | integer | — | — e.g. 0 |
box_outs | integernullable | — | — e.g. 0 |
carrying_palming_violations | integer | — | — e.g. 0 |
challenges_requested | integer | — | — e.g. 0 |
charges_taken | integernullable | — | — e.g. 0 |
comment | stringnullable | — | — e.g. — (all-null in sample) |
competitive_minutes | decimal | — | — e.g. 0.0 |
contests | integernullable | — | — e.g. 1 |
defensive_rating | decimalnullable | — | — e.g. 100.0000 |
defensive_rebound_percentage | decimalnullable | — | — e.g. 0.0000 |
defensive_rebounds | integer | — | — e.g. 1 |
deflections | integernullable | — | — e.g. 1 |
double_doubles | integer | — | — e.g. 0 |
double_dribble_violations | integer | — | — e.g. 0 |
drives | integernullable | — | — e.g. 0 |
dunks | integer | — | — e.g. 0 |
effective_field_goal_percentage | decimalnullable | — | — e.g. 0.0000 |
ejections | integer | — | — e.g. 0 |
elbow_touches | integernullable | — | — e.g. 0 |
estimated_defensive_rating | decimalnullable | — | — e.g. 100.0000 |
estimated_net_rating | decimalnullable | — | — e.g. 0.0000 |
estimated_offensive_rating | decimalnullable | — | — e.g. 100.0000 |
estimated_pace | decimalnullable | — | — e.g. 84.7100 |
estimated_usage_percentage | decimalnullable | — | — e.g. 0.1670 |
fast_break_pts | integer | — | — e.g. 0 |
field_goal_percentage | decimalnullable | — | — e.g. 0.0000 |
field_goals_attempted | integer | — | — e.g. 5 |
field_goals_made | integer | — | — e.g. 1 |
foul_trouble_severity | integer | — | — e.g. 0 |
fouls | integer | — | Total fouls: personal_fouls + technical_fouls. Use personal_fouls, not this, to judge foul trouble — a player fouls out on 6 PERSONAL fouls and technicals do not count toward that. e.g. 1 |
fouls_drawn | integer | — | — e.g. 0 |
free_throw_percentage | decimalnullable | — | — e.g. 0.0000 |
free_throws_attempted | integer | — | — e.g. 0 |
free_throws_made | integer | — | — e.g. 0 |
front_court_touches | integernullable | — | — e.g. 14 |
game_date | integer | — | — e.g. 20251112 |
garbage_time_minutes | decimal | — | — e.g. 0 |
goaltending_violations | integer | — | — e.g. 0 |
hockey_assists | integernullable | — | — e.g. 0 |
jump_balls_lost | integer | — | — e.g. 0 |
jump_balls_won | integer | — | — e.g. 0 |
lane_violations | integer | — | — e.g. 0 |
layups | integer | — | — e.g. 0 |
loose_balls_recovered | integernullable | — | — e.g. 0 |
minutes | decimal | — | — e.g. 31.7000 |
minutes_deviation_pct | decimal | — | — e.g. 0 |
net_rating | decimalnullable | — | — e.g. 0.0000 |
offensive_fouls | integer | — | Offensive fouls. A SUBSET of personal_fouls, not an addition to it. e.g. 0 |
offensive_rating | decimalnullable | — | — e.g. 100.0000 |
offensive_rebound_percentage | decimalnullable | — | — e.g. 0.0000 |
offensive_rebounds | integer | — | — e.g. 0 |
paint_touches | integernullable | — | — e.g. 0 |
pass_percentage | decimalnullable | — | — e.g. 0.0000 |
passes | integernullable | — | — e.g. 18 |
passes_deflected | integernullable | — | — e.g. 0 |
personal_fouls | integer | — | Personal fouls only — the count a player fouls out on at 6. Includes offensive and flagrant fouls, which the NBA scores as personal fouls. e.g. 1 |
player_impact_estimate | decimal | — | — e.g. 0.0000 |
plus_minus | integer | — | — e.g. 0 |
possessions | integer | — | — e.g. 53 |
post_touches | integernullable | — | — e.g. 0 |
potential_assists | integernullable | — | — e.g. 0 |
pts | integer | — | — e.g. 0 |
pts_per_elbow_touch | decimalnullable | — | — e.g. — (all-null in sample) |
pts_per_paint_touch | decimalnullable | — | — e.g. — (all-null in sample) |
pts_per_post_touch | decimalnullable | — | — e.g. — (all-null in sample) |
pts_per_touch | decimalnullable | — | — e.g. 0.0000 |
put_backs | integer | — | — e.g. 0 |
rebound_percentage | decimalnullable | — | — e.g. 0.0000 |
rebounds | integer | — | — e.g. 2 |
role_anomalous_game | boolean | — | — Values:falsetrue |
role_archetype | stringnullable | — | — Values:deep_benchco_starcore_starterrotationend_of_benchalphasixth_mantwo_way |
role_archetype_confidence | decimal | — | — e.g. 0.6 |
rotation_context | stringnullable | — | — Values:normalgarbage_time_boostambiguous_anomalyblowout_restfoul_troublefoul_outinjury_exitdnp_coach |
rotation_context_confidence | decimal | — | — e.g. 0.5 |
screen_assists | integernullable | — | — e.g. 0 |
second_chance_pts | integer | — | — e.g. 0 |
shot_clock_violations | integer | — | — e.g. 0 |
shot_contested_count | integernullable | — | — e.g. 1 |
shots_blocked | integernullable | — | — e.g. 0 |
start_position | stringnullable | — | — Values:GFC |
steals | integer | — | — e.g. 0 |
substitutions_in | integer | — | — e.g. 0 |
substitutions_out | integer | — | — e.g. 0 |
technical_fouls | integer | — | Technical fouls. The one foul type the NBA keeps OUT of the personal count; 2 means ejection. e.g. 0 |
three_point_percentage | decimalnullable | — | — e.g. 0.0000 |
three_pointers_attempted | integer | — | — e.g. 0 |
three_pointers_made | integer | — | — e.g. 0 |
time_of_possession | decimalnullable | — | — e.g. 0.2000 |
timeouts_called | integer | — | — e.g. 0 |
touches | integernullable | — | — e.g. 28 |
traveling_violations | integer | — | — e.g. 0 |
triple_doubles | integer | — | — e.g. 0 |
true_shooting_percentage | decimalnullable | — | — e.g. 0.0000 |
turnover_ratio | decimalnullable | — | — e.g. 0.0000 |
turnovers | integer | — | — e.g. 0 |
usage_percentage | decimalnullable | — | — e.g. 0.0000 |