Skip to contents

Wraps GET https://www.shl.se/api/statistics-v2/athlete/playerProfile_seasonGameLog of the SHL site API (www.shl.se). Unofficial use of a public source; seasons are END years (2026 = 2025/26) and are mapped to the site's ssgt uuids through /statistics-v2/layout-info.

Usage

shl_athlete_game_log(
  athlete_uuid,
  master_site_instance_id = NULL,
  season = NULL,
  return_parsed = TRUE
)

Arguments

athlete_uuid

Required. Athlete uuid.

master_site_instance_id

Site instance (shl1_shl). No effect in the drop-one probe.

season

Season END year (2026 = 2025/26); the runtime sends the START year this route takes. None = the player's default (shorter) log.

return_parsed

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

Value

A fastRhockey_data tibble (the raw JSON list when return_parsed = FALSE) with the following columns:

col_nametypedescription
datecharacterDate of the game (YYYY-MM-DD).
seriescharacterSeries id in the career log.
home_teamcharacterHome team SHORT NAME (e.g. Frölunda; may carry a trailing space), not a code.
home_team_iconcharacterHome team logo URL.
guest_teamcharacterAway team SHORT NAME (e.g. Luleå), not a code.
guest_team_iconcharacterAway team logo URL.
gpnumericNumber of games played.
gpinumericGames played with ice time.
gsnumericGames started (goalie log).
wnumeric1 when the goalie was credited with the win in this game (overtime and shootout included), else 0.
tnumeric1 when the goalie was credited a tie in this game, else 0; 0 in every sampled row, as overtime and shootouts now decide every game.
lnumeric1 when the goalie was charged with the loss in this game (overtime and shootout included), else 0.
sonumericNumber of shutouts (games without a goal against).
ganumericNumber of goals conceded (goals against).
gaanumericGoals against average (per 60 minutes). Numeric, but sent as a string in some rows and as a number in others.
soganumericShots on goal against.
svsnumericNumber of saves made by the goalie.
svs_percnumericSave %. Numeric, but sent as a string in some rows and as a number in others.
info_full_namecharacterGiven name and surname.
info_first_namecharacterGiven (first) name of the player.
info_last_namecharacterSurname (family name) of the player.
info_birth_datecharacterDate of birth (YYYY-MM-DD).
info_nationalitycharacterNationality (ISO country code).
info_gendercharacterSex of the athlete or team (male / female).
info_jersey_numbercharacterJersey (shirt) number of the player.
info_positioncharacterPosition code (CE = centre, LW, RW, D, GK, F); N/A in the athlete game logs.
info_position_codecharacterPosition code (GK, D, F; CE / LW / RW in stats rows); N/A when unknown.
info_shootscharacterShooting side (L / R; Left / Right). '-' placeholder in every sample.
info_team_namecharacterTeam name (e.g. Frölunda HC); empty in some rows. Empty string in every sample (placeholder).
info_season_statscharacterCurrent-season stat rows of the player (empty in the sample).
info_career_statscharacterCareer stat rows of the player (empty in the sample).
info_statistics_providercharacterStats provider of the data (statnet seen).
info_is_in_squadlogicalWhether the player is in the current squad.
info_player_idintegerisa (StatNet) player id as an INTEGER. Join trap: play-by-play sends the same id as a STRING (player.playerId, pop/nep, assists) and map keys are strings; cast before joining.
info_ssgt_uuidcharacterssgt uuid (platform key space: one season + series + game type); label via layout-info seasonSeriesGameTypeTeams[].

Errors

fastRhockey_no_data: the host answered 404, an empty body (gameday routes before 2023/24), a table with no rows, or the season and game type are not in layout-info. fastRhockey_asset_fetch: any other non-2xx answer or a dead connection after retries, a non-JSON or error-envelope 200, a stats-info page that reaches count or falls short of its totalCount, or a body for another game, team, athlete or ssgt than the one asked for. fastRhockey_bad_request: a 400 / 422, a season that is not a year, or an argument outside its choices.

Examples

# \donttest{
  shl_athlete_game_log(athlete_uuid = "qQ9-349c7WDv6",
    master_site_instance_id = "shl1_shl", season = 2026)
#> ── SHL Athlete Game Log Information from www.shl.se ── fastRhockey 1.0.0.9000 ──
#> ℹ Data updated: 2026-10-13 01:59:08 UTC
#> # A tibble: 58 × 35
#>    date   series home_team home_team_icon guest_team guest_team_icon    gp   gpi
#>    <chr>  <chr>  <chr>     <chr>          <chr>      <chr>           <dbl> <dbl>
#>  1 2026-… "[{\"… "Luleå"   https://sport… "Frölunda… https://sporta…     1     0
#>  2 2026-… "[{\"… "Frölund… https://sport… "Luleå"    https://sporta…     1     0
#>  3 2026-… "[{\"… "Luleå"   https://sport… "Frölunda… https://sporta…     1     1
#>  4 2026-… "[{\"… "Luleå"   https://sport… "Frölunda… https://sporta…     1     0
#>  5 2026-… "[{\"… "Frölund… https://sport… "Luleå"    https://sporta…     1     0
#>  6 2026-… "[{\"… "Frölund… https://sport… "Luleå"    https://sporta…     1     0
#>  7 2026-… "[{\"… "Frölund… https://sport… "Malmö"    https://sporta…     1     1
#>  8 2026-… "[{\"… "Frölund… https://sport… "Djurgård… https://sporta…     1     0
#>  9 2026-… "[{\"… "Leksand" https://sport… "Frölunda… https://sporta…     1     1
#> 10 2026-… "[{\"… "Frölund… https://sport… "Timrå"    https://sporta…     1     0
#> # ℹ 48 more rows
#> # ℹ 27 more variables: gs <dbl>, w <dbl>, t <dbl>, l <dbl>, so <dbl>, ga <dbl>,
#> #   gaa <dbl>, soga <dbl>, svs <dbl>, svs_perc <dbl>, info_full_name <chr>,
#> #   info_first_name <chr>, info_last_name <chr>, info_birth_date <chr>,
#> #   info_nationality <chr>, info_gender <chr>, info_jersey_number <chr>,
#> #   info_position <chr>, info_position_code <chr>, info_shoots <chr>,
#> #   info_team_name <chr>, info_season_stats <chr>, info_career_stats <chr>, …
# }