Skip to contents

Player boxscore of one team in one match, one row per player.

Wraps GET https://s3.eu-west-1.amazonaws.com/den.hokejovyzapis.cz/matches/{match_id}/team-stats/{team_id}.json of the Metal Ligaen eSports bucket. Example: https://s3.eu-west-1.amazonaws.com/den.hokejovyzapis.cz/matches/575/team-stats/8.json. Seasons are END years (2027 = 2026/27); every request waits at least one second after the last one to the same host.

Usage

metal_player_box(match_id, team_id, return_parsed = TRUE)

Arguments

match_id

Match id (per-bucket match key space: match_id in metal_schedule). Not the league website's game id.

team_id

Team id (per-bucket team key space: home_id / guest_id in metal_schedule).

return_parsed

Parse the payload into a tibble (default TRUE); FALSE returns the raw decoded JSON body (a nested list).

Value

A tibble::tibble() with one row per row of the file (zero rows, carrying the documented columns, for an empty frame); the raw JSON list when return_parsed = FALSE. Columns:

col_nametypedescription
player_idintegerPlayer id (playerId key space, per bucket, stable across games and seasons).
namecharacterPlayer full name.
firstnamecharacterFirst name of the player in this row.
surnamecharacterPlayer last name.
birthdatecharacterBirth date YYYY-MM-DD.
activelogicalTrue when the player is active on the team.
positioncharacterPosition code: GK goalie, DE defence, FW / FO forward (FO meaning unverified).
stickcharacterHandedness: left or right; null when unknown.
weightintegerWeight in kg; 0 placeholder when unknown.
heightintegerHeight in cm; 0 placeholder when unknown.
jerseyintegerJersey number.
birth_countrycharacterPlayer's country of birth (name).
nationalitycharacterNationality, country name.
nationality_shortcharacterNationality, three-letter code (CAN, GER; UK for Britain).
team_shortcutcharacterThree-letter team code.
gamesintegerGames played.
goalsintegergoals in total (goals_home + goals_away: the body splits it by home and away games).
goals_homeintegerSplit by venue: home = in the player's home games, away = in away games.
goals_awayintegerSplit by venue: home = in the player's home games, away = in away games.
assistsintegerassists in total (assists_home + assists_away: the body splits it by home and away games).
assists_homeintegerSplit by venue: home = in the player's home games, away = in away games.
assists_awayintegerSplit by venue: home = in the player's home games, away = in away games.
pointsintegerpoints in total (points_home + points_away: the body splits it by home and away games).
points_homeintegerSplit by venue: home = in the player's home games, away = in away games.
points_awayintegerSplit by venue: home = in the player's home games, away = in away games.
penalty_minutesintegerPenalty minutes assessed to the player (this game, or to date in the season / league-part files).
positiveintegerPlus: on ice for goals for at even strength or shorthanded.
negativeintegerMinus: on ice for goals against at even strength or on the power play.
points_per_gamenumericAverage goals plus assists per game played.
shot_efficiencynumericShooting percentage, goals / shots on goal x 100.
penalty_minutes_per_gamenumericAverage penalty minutes per game played.
pp_goalsintegerPower-play goals.
sh_goalsintegerShorthanded goals.
gw_goalsintegerGame-winning goals.
shots_attemptsintegerShot attempts (on goal + missed + blocked).
shots_on_goalintegershots_on_goal in total (shots_on_goal_home + shots_on_goal_away: the body splits it by home and away games).
shots_on_goal_homeintegerSplit by venue: home = in the player's home games, away = in away games.
shots_on_goal_awayintegerSplit by venue: home = in the player's home games, away = in away games.
shots_missedintegerThis player's shot attempts that missed the net.
shots_blockedintegerThis player's shot attempts that were blocked.
blocked_shots_by_playerintegerOpponent shots this player blocked.
faceoffs_winintegerFace-offs the player won (this game, or to date in the season / league-part files).
faceoffs_lossesintegerFace-offs the player lost (this game, or to date in the season / league-part files).
faceoffs_countintegerFace-offs the player took (this game, or to date in the season / league-part files).
timeonicenumericTime on ice, seconds with decimals (tracking-based; differs from timeOnIce).
timeonice_eqnumericTime on ice at even strength (EQ), on the power play (PP) or shorthanded (SH), seconds with decimals.
timeonice_ppnumericTime on ice at even strength (EQ), on the power play (PP) or shorthanded (SH), seconds with decimals.
timeonice_shnumericTime on ice at even strength (EQ), on the power play (PP) or shorthanded (SH), seconds with decimals.
hitsintegerBody checks delivered.
xgnumericExpected goals of the player's shots.
top5logicalTrue when the player ranks in the team's top five.
rankintegerRank of the player in the file's default sort (points).

Errors

Signalled as classed conditions: fastRhockey_no_data when the bucket has no such key (S3 404 NoSuchKey: unknown season, competition, match or team) or the file holds no rows (an unplayed game, an empty shot shell); fastRhockey_asset_fetch for any other non-2xx answer (403 AccessDenied), a connection failure after retries, an empty or unreadable 200 body, an error envelope, a body of the wrong shape, or a body for another season or game; fastRhockey_bad_request for an HTTP 400/422 or an invalid argument. All three also inherit fastRhockey_error. Wrappers raise; they never warn and return an empty frame.

See also

Metal Ligaen (the league site whose widgets read this public eSports bucket)

Other Metal Ligaen eSports functions: metal_game_center(), metal_game_info(), metal_goalie_box(), metal_pbp(), metal_schedule(), metal_standings(), metal_top_scorers()

Examples

# \donttest{
  try(metal_player_box(match_id = 575, team_id = 8))
#> ── Metal Ligaen player_box from the eSports hokejovyzapis bucket ───────────────
#> ℹ Data updated: 2026-10-13 01:56:59 UTC
#> # A tibble: 24 × 79
#>    player_id name       firstname surname birthdate active position stick weight
#>        <int> <chr>      <chr>     <chr>   <chr>     <lgl>  <chr>    <chr>  <int>
#>  1       124 Nikolaj K… "Nikolaj" Krag C… 1998-08-… TRUE   FW       left      92
#>  2       405 Jerkko Rä… "Jerkko"  Rämö    2000-05-… TRUE   DE       left      80
#>  3       220 Miku Ronk… "Miku"    Ronkai… 1997-08-… TRUE   FW       left      74
#>  4       400 Mathieu C… "Mathieu" Caron   2000-03-… TRUE   GK       left      86
#>  5       113 Niclas Kr… "Niclas"  Krarup  2000-08-… TRUE   FW       left      85
#>  6       406 Jesse Vuo… "Jesse"   Vuorela 2002-01-… TRUE   DE       right     84
#>  7       322 Bertram W… "Bertram" Witoms… 2006-08-… TRUE   GK       left      72
#>  8       104 Frederick… "Frederi… Amonds… 2006-05-… TRUE   DE       left      91
#>  9       402 Sebastian… "Sebasti… Bergho… 1993-05-… TRUE   DE       left      83
#> 10       110 Mikey Ber… "Mikey"   Bergma… 2007-02-… TRUE   FW       left      80
#> # ℹ 14 more rows
#> # ℹ 70 more variables: height <int>, jersey <int>, birth_country <chr>,
#> #   nationality <chr>, nationality_short <chr>, team_shortcut <chr>,
#> #   games <int>, goals <int>, goals_home <int>, goals_away <int>,
#> #   assists <int>, assists_home <int>, assists_away <int>, points <int>,
#> #   points_home <int>, points_away <int>, penalty_minutes <int>,
#> #   positive <int>, negative <int>, points_per_game <dbl>, …
# }