Skip to contents

One game's per-period player box score, skaters and goalies, with tracking where Liiga has it.

Usage

liiga_game_stats(season, game_id)

Arguments

season

Season END year (2026 = 2025-26). Game ids repeat across seasons, so a game is (season, game_id).

game_id

Game id (game_id in liiga_schedule or liiga_games), e.g. 1; unique only within a season.

Value

A fastRhockey_data tibble (60 columns; zero rows when a valid payload has none).

col_nametypedescription
seasonintegerSeason END year (2026 = 2025-26).
game_idintegerGame id, unique only within a season: key a game as (season, game_id).
sidecharacterWhich team of the game the row belongs to: home or away.
team_idintegerTeam id, the number of Liiga's <num>:<slug> team key (sent as that string, a bare integer or a digit string depending on the route).
team_slugcharacterTeam slug, the part of Liiga's <num>:<slug> team key after the colon (e.g. hpk).
periodintegerPeriod number: 1-3 are regulation, 4 and up overtime (or the shootout).
player_idintegerPlayer id; the same number in lineups, rosters, stat tables and the profile (fihaId).
jerseyintegerJersey (sweater) number the player wore.
is_goalielogicalRow is a goalkeeper's (goalie columns filled).
pointsintegerPoints (player, this period).
assistsintegerAssists (player, this period).
goalsintegerGoals (player, this period).
plusminusintegerplus minus minus, this period.
plusintegerOn ice for goals for (the + of plus/minus).
minusintegerOn ice for goals against (the - of plus/minus).
shotsintegerShots (player, this period).
penaltyminutesintegerPenaltyminutes (player, this period).
timeoficeintegerTimeofice (player, this period). Seconds.
powerplay_goalsintegerPowerplay goals (player, this period).
short_handed_goalsintegerShort handed goals (player, this period).
winning_goallogicalGame-winning goal.
blocked_shotsintegerBlocked shots (player, this period).
faceoffs_totalintegerFaceoffs the player took in the period; null for every player in the 2026 captures.
faceoffs_wonintegerFaceoffs the player won in the period; null for every player in the 2026 captures.
corsi_forintegerCorsi (shot attempts) for (player, this period).
corsi_againstintegerCorsi (shot attempts) against (player, this period).
faceoffs_center_totalintegerFaceoffs the player took at centre ice in the period; null for every player in the 2026 captures.
faceoffs_center_wonintegerFaceoffs the player won at centre ice in the period; null for every player in the 2026 captures.
faceoffs_defence_totalintegerFaceoffs the player took in the defensive zone in the period; null for every player in the 2026 captures.
faceoffs_defence_wonintegerFaceoffs the player won in the defensive zone in the period; null for every player in the 2026 captures.
faceoffs_offence_totalintegerFaceoffs the player took in the offensive zone in the period; null for every player in the 2026 captures.
faceoffs_offence_wonintegerFaceoffs the player won in the offensive zone in the period; null for every player in the 2026 captures.
fs_zone_starts_ozintegerFull-strength (fs, unverified) zone starts offensive zone (player, this period).
fs_zone_starts_dzintegerFull-strength (fs, unverified) zone starts defensive zone (player, this period).
powerplay2_goalsintegerPowerplay 2 goals (player, this period).
penaltykill2_goalsintegerPenaltykill 2 goals (player, this period).
powerplay_assistsintegerPowerplay assists (player, this period).
penaltykill_assistsintegerPenaltykill assists (player, this period).
goals_to_empty_goalintegerGoals to empty goal (player, this period).
fs_team_shotsintegerFull-strength (fs, unverified) team shots (player, this period).
fs_team_goalsintegerFull-strength (fs, unverified) team goals (player, this period).
fs_team_shots_againstintegerFull-strength (fs, unverified) team shots against (player, this period).
fs_team_goals_againstintegerFull-strength (fs, unverified) team goals against (player, this period).
distancenumericDistance (player, this period). Distance; unit not stated (unverified).
total_passesintegerTotal passes (player, this period).
successful_passesintegerSuccessful passes (player, this period).
player_passes_under_pressureintegerPlayer passes under pressure (player, this period).
player_successful_passes_under_pressureintegerPlayer successful passes under pressure (player, this period).
player_passes_under_high_pressureintegerPlayer passes under high pressure (player, this period).
player_successful_passes_under_high_pressureintegerPlayer successful passes under high pressure (player, this period).
expected_goals_playernumericExpected goals (xG) of the player's own shots in the period, provider-computed (unverified scope).
expected_goals_teamnumericTeam expected goals (xG) while the player was on ice in the period, provider-computed (unverified scope).
expected_goals_againstnumericExpected goals against (xG) faced in the period, provider-computed.
expected_goals_against_shot_on_goalnumericExpected goals against (xG) of the shots on goal only, provider-computed.
savesintegerSaves (goalkeeper, this period).
goals_allowedintegerGoals allowed (goalkeeper, this period).
saves_percentagenumericSave percentage, 0-100, sent as a STRING (e.g. "92.86"; "" when no shots), this period.
shots_on_goalintegerShots on goal (goalkeeper, this period).
top_speednumericPlayer's top skating speed in the game (unit not stated; values near 9 fit m/s).
hardest_shotnumericPlayer's hardest shot in the game (unit not stated; values near 23 fit m/s).

Details

Endpoint: GET https://liiga.fi/api/v2/games/stats/{season}/{game_id}

Seasons are END years (2026 = 2025-26), the same key as sdv-py. Requests to liiga.fi are spaced at least one second apart. A request Liiga answers with nothing (an unknown game, a tournament not played that season, a shot map before 2016) raises fastRhockey_no_data; a failed fetch or an error-shaped answer raises fastRhockey_asset_fetch; a bad argument raises fastRhockey_bad_request.

Examples

# \donttest{
  try(liiga_game_stats(game_id = 1, season = 2026))
#> ── Liiga game box score Information from liiga.fi ──── fastRhockey 1.0.0.9000 ──
#> ℹ Data updated: 2026-10-13 01:55:19 UTC
#> # A tibble: 210 × 60
#>    season game_id side   team_id team_slug period player_id jersey is_goalie
#>     <int>   <int> <chr>    <int> <chr>      <int>     <int>  <int> <lgl>    
#>  1   2026       1 home  55786244 hpk            1  21870028     64 FALSE    
#>  2   2026       1 home  55786244 hpk            1  22709389     74 FALSE    
#>  3   2026       1 home  55786244 hpk            1  23029644     19 FALSE    
#>  4   2026       1 home  55786244 hpk            1  23806498     63 FALSE    
#>  5   2026       1 home  55786244 hpk            1  29885743     93 FALSE    
#>  6   2026       1 home  55786244 hpk            1  30417647     15 FALSE    
#>  7   2026       1 home  55786244 hpk            1  30670073      6 FALSE    
#>  8   2026       1 home  55786244 hpk            1  30851669     25 FALSE    
#>  9   2026       1 home  55786244 hpk            1  31585390     43 FALSE    
#> 10   2026       1 home  55786244 hpk            1  32919839     50 FALSE    
#> # ℹ 200 more rows
#> # ℹ 51 more variables: points <int>, assists <int>, goals <int>,
#> #   plusminus <int>, plus <int>, minus <int>, shots <int>,
#> #   penaltyminutes <int>, timeofice <int>, powerplay_goals <int>,
#> #   short_handed_goals <int>, winning_goal <lgl>, blocked_shots <int>,
#> #   faceoffs_total <int>, faceoffs_won <int>, corsi_for <int>,
#> #   corsi_against <int>, faceoffs_center_total <int>, …
# }