Skip to contents

Per-player box score of a finished game (one row per player line).

Endpoint: GET https://bnxt.sportpress.info/api/v1/boxscore/game/{competition_id}/{game_id}

Usage

sportpress_game_box(competition_id, game_id)

Arguments

competition_id

(required) Competition id (integer), ONE per season of the league: 24 = 2025-26, 25 = 2026-27 (sportpress_phases() maps a season to it).

game_id

(required) Game id (integer), unique across seasons; from sportpress_schedule() (game_id).

Value

A hoopR_data tibble: Per-player box score of a finished game (one row per player line). An empty valid answer raises hoopR_no_data; the columns are always these, in this order (sportsdataverse-py sportpress_game_box):

col_nametypedescription
game_idintegerGame id the box score was asked for (the body does not echo it).
competition_idintegerCompetition id the box score was asked for; checked against the game.
team_sidecharacterSide of the game the row belongs to: home or away (the provider's is_home, or side 1 / 2).
competition_team_idintegerCompetition-team id (key space: sportpress competition teams): a team in ONE competition, so a club has a new id every season (Antwerp = 3 in 2021-22, 506 in 2025-26, 541 in 2026-27). uu_team_id is the stable club key.
teamcharacterTeam display name including the sponsor; varies with language and playoff suffixes: never join on it.
team_short_namecharacterThree-letter club code (ANT, MON, ...), stable across seasons in the samples.
roster_idintegerRoster id of the line; null when the line has no player (15 of 14,142 sampled lines).
player_idintegerPlayer id (key space: sportpress persons): stable across seasons and teams, distinct from roster_id. Not a Genius or FIBA person id.
first_namecharacterGiven name of the player as entered in the CMS.
last_namecharacterFamily name of the player as entered in the CMS.
nationality_codecharacterNationality code in FIBA style (USA, BEL, NED): DIRTY, with lower-case variants, '/'-joined pairs (USA/BEL), the empty string and 'HOL'; normalise before joining.
birth_dateDateDate of birth as shown on the public player page; null when unknown.
position_idintegerPlaying position id (key space: sportpress positions); null on 21 of 14,142 sampled lines.
positioncharacterPlaying position: point_guard, shooting_guard, small_forward, power_forward or center.
starterlogicalTrue when the player was in the starting five.
jerseycharacterShirt number as text; the box score sends it as an integer, so a zero-padded '00' is already lost there.
minuteintegerMinutes played; for a team total, the sum over its players (200 + 25 per overtime).
foulintegerPersonal fouls committed.
defensive_foulintegerFouls DRAWN (suffered), despite the name: equals the opponent's foul count up to scorer corrections.
dunk_madeintegerDunks made (a subset of the two-point field goals).
dunk_allintegerDunks attempted.
dunk_percentdoubleDunk percentage 0-100; 0 when none were attempted.
two_point_madeintegerTwo-point field goals made.
two_point_allintegerTwo-point field goals attempted.
two_point_percentdoubleTwo-point percentage 0-100.
three_point_madeintegerThree-point field goals made.
three_point_allintegerThree-point field goals attempted.
three_point_percentdoubleThree-point percentage 0-100.
throw_madeintegerAll field goals made, two- plus three-pointers (the provider calls them 'throw').
throw_allintegerAll field goals attempted, two- plus three-pointers (the provider calls them 'throw').
throw_percentdoubleField-goal percentage 0-100.
free_throw_madeintegerFree throws made.
free_throw_allintegerFree throws attempted.
free_throw_percentdoubleFree-throw percentage 0-100.
offensive_reboundintegerOffensive rebounds.
defensive_reboundintegerDefensive rebounds.
total_reboundintegerTotal rebounds (offensive plus defensive).
blockintegerShots blocked by the player.
block_againstintegerOwn shots blocked by an opponent.
turnoverintegerTurnovers committed.
stealintegerSteals (balls taken from an opponent).
assistintegerAssists (passes leading directly to a made basket).
pointsintegerPoints scored (2 x two-pointers + 3 x three-pointers + free throws).
valueintegerEfficiency rating (PIR with fouls drawn): points + rebounds + assists + steals + blocks + fouls drawn - missed field goals - missed free throws - turnovers.
plusminusintegerPlus/minus: the score margin while the player (or team) was on court; for a team total it is the game margin.

Details

Source, terms of use, request pacing, seasons, ids, coverage and error classes of this family: see the notes in sportpress_ui_strings().

Examples

# \donttest{
  try(sportpress_game_box(competition_id = 25, game_id = 11295))
#> ── BNXT League Game Box Score from Sportpress ─────────────────── hoopR 3.2.0 ──
#> ℹ Data updated: 2026-10-31 21:34:13 UTC
#> # A tibble: 21 × 45
#>    game_id competition_id team_side competition_team_id team     team_short_name
#>      <int>          <int> <chr>                   <int> <chr>    <chr>          
#>  1   11295             25 home                      541 Windros… ANT            
#>  2   11295             25 home                      541 Windros… ANT            
#>  3   11295             25 home                      541 Windros… ANT            
#>  4   11295             25 home                      541 Windros… ANT            
#>  5   11295             25 home                      541 Windros… ANT            
#>  6   11295             25 home                      541 Windros… ANT            
#>  7   11295             25 home                      541 Windros… ANT            
#>  8   11295             25 home                      541 Windros… ANT            
#>  9   11295             25 home                      541 Windros… ANT            
#> 10   11295             25 home                      541 Windros… ANT            
#> # ℹ 11 more rows
#> # ℹ 39 more variables: roster_id <int>, player_id <int>, first_name <chr>,
#> #   last_name <chr>, nationality_code <chr>, birth_date <date>,
#> #   position_id <int>, position <chr>, starter <lgl>, jersey <chr>,
#> #   minute <int>, foul <int>, defensive_foul <int>, dunk_made <int>,
#> #   dunk_all <int>, dunk_percent <dbl>, two_point_made <int>,
#> #   two_point_all <int>, two_point_percent <dbl>, three_point_made <int>, …
# }