Skip to contents

Player box score of a finished game, both sides, plus a team rebounds/turnovers row per side (null player_id).

Endpoint: POST https://data-server.cbaleague.com/api/player-match-datas/data-count (JSON body)

Usage

cba_player_box(schedule_id)

Arguments

schedule_id

(required) Required. CBA game id (integer), the global 9-digit sequence 100xxxxxx (100105799 = 2025-26 round 1). Only a finished game is served.

Value

A hoopR_data tibble: One row per player and a team rebounds/turnovers row per side (null player_id). An empty valid answer is a zero-row tibble with these columns, in this order (sportsdataverse-py cba_player_box):

col_nametypedescription
schedule_idintegerCBA game id (key space: CBA games, ONE global 9-digit sequence 100xxxxxx across seasons and match types; the {scheduleId} of every game route). Stamped by the runtime from the request; null on a body parsed without it.
sidecharacterSide of the game the row belongs to: home (the API's host / home block) or away (guest / visiting block).
assistsintegerAssists in this game (integer). Null on the team row (the (Chinese text) rebounds/turnovers row).
blockedintegerBlocks in this game (integer). Null on the team row (the (Chinese text) rebounds/turnovers row).
cn_aliascharacterPlayer name (Chinese). The team row reads 'team rebounds / turnovers' (rebounds and turnovers not credited to a player; that row does not exist in the 2009-10 sample).
field_goalsintegerField goals made in this game (integer). Null on the team row (the (Chinese text) rebounds/turnovers row).
field_goals_attemptedintegerField goals attempted in this game (integer). Null on the team row (the (Chinese text) rebounds/turnovers row).
field_goals_percentagedoubleField-goal percentage as a FRACTION 0-1 (0.308), null when no attempt (0/0) as well as on the team row.
foulsintegerPersonal fouls in this game (integer). Null on the team row (the (Chinese text) rebounds/turnovers row).
free_throwsintegerFree throws made in this game (integer). Null on the team row (the (Chinese text) rebounds/turnovers row).
free_throws_attemptedintegerFree throws attempted in this game (integer). Null on the team row (the (Chinese text) rebounds/turnovers row).
free_throws_percentagedoubleFree-throw percentage as a FRACTION 0-1, null on the team row.
game_startintegerStarter flag: 1 = started the game. Null on the team row.
numbercharacterJersey number as a string. Null on the team row.
player_idintegerplayerId (key space: CBA persons, stable across seasons and clubs; 3-9 digits, older players have short ids (393433) and newer ones 100xxxxxx). Joins the player box routes, the season player lists and getPlayersByScheduleId. Not a team id. Null on the team row.
plus_minusintegerPlus-minus while on court. Null on the team row and on every row of the 2009-10 sample (not tracked then).
pointsintegerPoints in this game (integer). Null on the team row (the (Chinese text) rebounds/turnovers row).
reboundsintegerTotal rebounds in this game (integer). The team row carries the team's own total here.
rebounds_defensiveintegerDefensive rebounds in this game (integer). The team row carries the team's own total here.
rebounds_offensiveintegerOffensive rebounds in this game (integer). The team row carries the team's own total here.
stealsintegerSteals in this game (integer). Null on the team row (the (Chinese text) rebounds/turnovers row).
three_point_attemptedintegerThree-pointers attempted in this game (integer). Null on the team row (the (Chinese text) rebounds/turnovers row).
three_point_goalsintegerThree-pointers made in this game (integer). Null on the team row (the (Chinese text) rebounds/turnovers row).
three_point_percentagedoubleThree-point percentage as a FRACTION 0-1, null on the team row.
turnoversintegerTurnovers in this game (integer). The team row carries the team's own total here.
up_timeintegerTime on court in SECONDS (1692 = 28:12). Null on the team row.

Details

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

Examples

# \donttest{
  try(cba_player_box(schedule_id = 100105799))
#> ── CBA Player Box from data-server.cbaleague.com ──────────────── hoopR 3.2.0 ──
#> ℹ Data updated: 2026-10-31 21:27:42 UTC
#> # A tibble: 26 × 26
#>    schedule_id side  assists blocked cn_alias field_goals field_goals_attempted
#>          <int> <chr>   <int>   <int> <chr>          <int>                 <int>
#>  1   100105799 home        4       2 朱俊龙             3                     5
#>  2   100105799 home        2       0 胡金秋             6                    10
#>  3   100105799 home        3       0 布朗               4                    13
#>  4   100105799 home        3       0 孙铭徽             2                     5
#>  5   100105799 home        2       0 卡尔顿             3                     5
#>  6   100105799 home        3       1 林秉圣             3                     5
#>  7   100105799 home        1       1 桑普森             3                     5
#>  8   100105799 home        2       1 塔克               4                    11
#>  9   100105799 home        1       0 赵嘉仁             0                     2
#> 10   100105799 home        1       0 吴骁               0                     0
#> # ℹ 16 more rows
#> # ℹ 19 more variables: field_goals_percentage <dbl>, fouls <int>,
#> #   free_throws <int>, free_throws_attempted <int>,
#> #   free_throws_percentage <dbl>, game_start <int>, number <chr>,
#> #   player_id <int>, plus_minus <int>, points <int>, rebounds <int>,
#> #   rebounds_defensive <int>, rebounds_offensive <int>, steals <int>,
#> #   three_point_attempted <int>, three_point_goals <int>, …
# }