Skip to contents

Standings of one competition season, one row per team.

Wraps GET https://s3.eu-west-1.amazonaws.com/icehl.hokejovyzapis.cz/tables/{season}/{league_id}.json of the ICE Hockey League eSports bucket. Example: https://s3.eu-west-1.amazonaws.com/icehl.hokejovyzapis.cz/tables/2026/1.json. Seasons are END years (2027 = 2026/27); every request waits at least one second after the last one to the same host.

Usage

icehl_standings(season, league_id = 1L, return_parsed = TRUE)

Arguments

season

Season by its END year (2027 = 2026/27). The bucket keys seasons by their START year; the wrapper requests season - 1.

league_id

Competition id. 1 = ICE Hockey League, regular season and playoffs in one file (split them by league_part_name); 2 = pre-season (2025/26 on).

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
group_idintegerGroup id (group key space); null when the stage has no groups, so unobserved here.
group_namecharacterGroup name; empty string when the stage has no groups.
completelogicalTrue when the standings include every finished game.
team_idintegerTeam id (per-bucket team key space); joins to home_id / guest_id in the schedule.
part_team_idintegerTeam-in-league-part id (its own key space: one team in one league part); no other captured file carries it.
namecharacterTeam display name.
team_originalcharacterTeam's registered name.
shortcutcharacterThree-letter team code.
positionintegerTable position, 1 = first.
pointsintegerTable points.
gamesintegerGames played.
winsintegerWins in regulation (DEL, EIHL, Denmark) or all wins (ICEHL, see winsReg); definition per bucket unverified.
wins_otintegerWins after overtime or shootout.
wins_regintegerWins in regulation time.
tiesintegerTies (0 under current rules).
losts_otintegerLosses after overtime or shootout.
lostsintegerLosses in regulation time.
score1integerGoals the team scored (goals for).
score2integerGoals against.
goals_awayintegerGoals scored in away games.
points_awayintegerTable points from away games.
last10characterForm over the last ten games as a result string; empty string in the samples.
only_ot_winsintegerWins in overtime.
only_so_winsintegerWins in a shootout.
only_ot_lostsintegerLosses in overtime.
only_so_lostsintegerLosses in a shootout.
qualifiedlogicalTrue when the team has clinched qualification.
livelogicalTrue while the team is playing a live game.
live_game_scorecharacterScore of the live game; null when none, so unobserved here.
position_changeintegerChange in table position since the previous round.
ppgnumericPoints per game.

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.

Examples

# \donttest{
  try(icehl_standings(season = 2027, league_id = 1))
#> ── ICE Hockey League standings from the eSports hokejovyzapis bucket ───────────
#> ℹ Data updated: 2026-10-13 01:54:32 UTC
#> # A tibble: 14 × 31
#>    group_id group_name complete team_id part_team_id name          team_original
#>       <int> <chr>      <lgl>      <int>        <int> <chr>         <chr>        
#>  1       NA ""         TRUE           7          566 HCB Südtirol… HCB Südtirol…
#>  2       NA ""         TRUE          13          570 Steinbach Bl… Steinbach Bl…
#>  3       NA ""         TRUE           2          560 EC-KAC        EC-KAC       
#>  4       NA ""         TRUE          10          568 Olimpija Lju… Olimpija Lju…
#>  5       NA ""         TRUE          85          559 Milano HC     Milano HC    
#>  6       NA ""         TRUE           5          563 HC Falkenste… HC Falkenste…
#>  7       NA ""         TRUE          12          571 Vienna Capit… Vienna Capit…
#>  8       NA ""         TRUE           9          558 Moser Medica… Moser Medica…
#>  9       NA ""         TRUE           3          561 EC Red Bull … EC Red Bull …
#> 10       NA ""         TRUE           6          564 HC TIWAG Inn… HC TIWAG Inn…
#> 11       NA ""         TRUE           1          572 EC iDM Wärme… EC iDM Wärme…
#> 12       NA ""         TRUE           8          565 Hydro Feherv… Hydro Feherv…
#> 13       NA ""         TRUE           4          562 FTC-Telekom   FTC-Telekom  
#> 14       NA ""         TRUE          11          569 Pioneers Vor… Pioneers Vor…
#> # ℹ 24 more variables: shortcut <chr>, position <int>, points <int>,
#> #   games <int>, wins <int>, wins_ot <int>, wins_reg <int>, ties <int>,
#> #   losts_ot <int>, losts <int>, score1 <int>, score2 <int>, goals_away <int>,
#> #   points_away <int>, last10 <chr>, only_ot_wins <int>, only_so_wins <int>,
#> #   only_ot_losts <int>, only_so_losts <int>, qualified <lgl>, live <lgl>,
#> #   live_game_score <chr>, position_change <int>, ppg <dbl>
# }