Skip to contents

A player's game log for an edition (default: the current one).

One row per game. has_won is true when the player's team won; is_selected_local is true when it played at home. play_time is 'mm:ss' (seconds_played in seconds). Percentages are Float64, the rest counts. Names follow the player-route vocabulary (rebounds, shots_rejected, fouls_received).

Endpoint: GET https://api2.acb.com/api/seasondata/PlayerProfile/matches

Usage

acb_player_matches(player_id, season = NULL)

Arguments

player_id

(required) ACB licence number (integer): the person id everywhere (box score, play-by-play, shots, rosters). 20209407 = Edy Tavares, 20212243 = Olek Balcerowski. A whole number; a whole double is accepted.

season

(default NULL) Season END year (2027 = 2026-27; the first ACB season, 1983-84, is 1984). acb_runtime sends the API's editionId = season - 1936. Omitted = the current season. A whole number; a whole double is accepted.

Value

A hoopR_data tibble, one row per record described above; the columns are always these, in this order (sportsdataverse-py acb_player_matches):

col_nametypedescription
player_idintegerACB licence number asked for.
match_idintegerACB match id of the game.
round_typecharacterPhase code of the game (LR regular season, PO playoff).
round_numberintegerRound number within the phase.
datePOSIXctTip-off instant (UTC).
home_team_idintegerSeason-team id: one team's entry in one competition edition (4467 = Barca in Liga 2026-27, 4388 = Real Madrid in Liga 2025-26). Changes every season and competition. Joins every homeTeamId / awayTeamId / teamId / teamEditionId. Not the club id.
home_club_idintegerClub id, stable across seasons and sponsor names (2 = Barca, 9 = Real Madrid, 13 = Valencia Basket): the clubId request param and every homeClubId / awayClubId.
home_teamcharacterTeam name that season (sponsor names change)
home_team_abbrcharacterThree-letter abbreviation (BAR, RMB)
away_team_idintegerSeason-team id: one team's entry in one competition edition (4467 = Barca in Liga 2026-27, 4388 = Real Madrid in Liga 2025-26). Changes every season and competition. Joins every homeTeamId / awayTeamId / teamId / teamEditionId. Not the club id.
away_club_idintegerClub id, stable across seasons and sponsor names (2 = Barca, 9 = Real Madrid, 13 = Valencia Basket): the clubId request param and every homeClubId / awayClubId.
away_teamcharacterTeam name that season (sponsor names change)
away_team_abbrcharacterThree-letter abbreviation (BAR, RMB)
edition_idintegerSeason id read from the home team entry (START year - 1935).
seasonintegerSeason END year (2027 = 2026-27) = edition_id + 1936: the key the wrappers take.
is_selected_locallogicalTrue when the player's team played at home.
has_wonlogicalTrue when the player's team won the game.
play_timecharacterTime on court as 'mm:ss'.
seconds_playedintegerTime on court in whole seconds (play_time parsed).
pointsintegerPoints (player game-log row)
three_pointers_madeintegerThree-point field goals made
three_pointers_attemptedintegerThree-point field goals attempted
three_pointers_percentagedoubleThree-point percentage, 0-100 with one decimal; 0 when there was no attempt
two_pointers_madeintegerTwo-point field goals made
two_pointers_attemptedintegerTwo-point field goals attempted
two_pointers_percentagedoubleTwo-point percentage, 0-100 with one decimal; 0 when there was no attempt
free_throws_madeintegerFree throws the player made in that match (a count, not a season total).
free_throws_attemptedintegerFree throws the player attempted in that match (a count, not a season total).
free_throws_percentagedoubleFree-throw percentage, 0-100 with one decimal; 0 when there was no attempt
reboundsintegerTotal rebounds in the game.
offensive_reboundsintegerOffensive rebounds the player took in that match (a count; part of the total rebounds).
defensive_reboundsintegerDefensive rebounds the player took in that match (a count; part of the total rebounds).
assistsintegerAssists (player game-log row)
stealsintegerSteals (player game-log row)
turnoversintegerTurnovers (player game-log row)
blocksintegerShots blocked (player game-log row)
shots_rejectedintegerShots of the player that were blocked.
dunksintegerDunks (player game-log row)
personal_foulsintegerFouls committed
fouls_receivedintegerFouls drawn by the player in the game.
ratingintegerACB rating (valoracion) of the game.
plus_minusintegerPoint differential while on court (+/-)

Details

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

Examples

# \donttest{
  try(acb_player_matches(player_id = 20209407, season = 2027))
#> ── ACB Player Matches from api2.acb.com ───────────────────────── hoopR 3.2.0 ──
#> ℹ Data updated: 2026-10-31 21:26:37 UTC
#> # A tibble: 5 × 42
#>   player_id match_id round_type round_number date                home_team_id
#>       <int>    <int> <chr>             <int> <dttm>                     <int>
#> 1  20209407   105383 LR                    1 2026-09-27 17:00:00         4476
#> 2  20209407   105389 LR                    2 2026-10-04 10:30:00         4479
#> 3  20209407   105397 LR                    3 2026-10-11 10:00:00         4476
#> 4  20209407   105407 LR                    4 2026-10-18 10:30:00         4476
#> 5  20209407   105419 LR                    5 2026-10-25 18:00:00         4465
#> # ℹ 36 more variables: home_club_id <int>, home_team <chr>,
#> #   home_team_abbr <chr>, away_team_id <int>, away_club_id <int>,
#> #   away_team <chr>, away_team_abbr <chr>, edition_id <int>, season <int>,
#> #   is_selected_local <lgl>, has_won <lgl>, play_time <chr>,
#> #   seconds_played <int>, points <int>, three_pointers_made <int>,
#> #   three_pointers_attempted <int>, three_pointers_percentage <dbl>,
#> #   two_pointers_made <int>, two_pointers_attempted <int>, …
# }