Skip to contents

Playout and league-qualification series by round: one row per game, with its series score.

Usage

nl_playouts(season = NULL, return_parsed = TRUE)

Arguments

season

Season END year (2026 is 2025/26), sent to the API unchanged. Changing it changes every list, so it scopes the answer. Lists are served for 2019-2027 (the app's season picker) and patchily before: 2012 and 2017 answered, 2010/2014/2015/2016/2018 answered an empty list (probed 2026-10-12). NULL (the default) leaves the choice to the API.

return_parsed

Logical. TRUE (the default) returns the fastRhockey_data tibble; FALSE returns the raw JSON body as a nested list (api keys already dropped).

Value

A fastRhockey_data tibble (39 columns) with the columns below, or the raw JSON body when return_parsed = FALSE. A valid but empty payload returns a zero-row tibble with these columns.

col_nametypedescription
series_groupintegerSeries number within the round (1 = first pairing; 0 seen in playouts)
series_home_team_short_namecharacterAbbreviation of the team with home ice
series_away_team_short_namecharacterAbbreviation of the other team
series_home_team_idnumericTeam with home ice in the series. SIHF team id (whole number; e.g. 101151 = HC Davos). The same key space as the sihf family's team_id.
series_away_team_idnumericThe other team in the series. SIHF team id (whole number; e.g. 101151 = HC Davos). The same key space as the sihf family's team_id.
series_home_team_resultintegerSeries wins of the team with home ice
series_away_team_resultintegerSeries wins of the other team
series_best_ofintegerSeries length in games (7; 2 in the play-in)
series_titlecharacterSeries length label, e.g. 'Best of 7'
roundcharacterRound key: final, semifinal, quarterfinal, playIn (/playoffs); leagueQualifications, playoutFinal (/playouts)
game_idnumericSIHF game id <season(4)><competition(4)><sequence(6)> (whole number; e.g. 20261105000325, 1105 = National League). The same id as the sihf family's game_id; its first four digits are the season END year.
home_team_short_namecharacterHome team abbreviation (e.g. HCD)
home_team_namecharacterHome team display name
away_team_short_namecharacterAway team abbreviation
away_team_namecharacterAway team display name
home_team_idnumericHome team. SIHF team id (whole number; e.g. 101151 = HC Davos). The same key space as the sihf family's team_id.
away_team_idnumericAway team. SIHF team id (whole number; e.g. 101151 = HC Davos). The same key space as the sihf family's team_id.
vimeo_video_idnumericFull-game video. Vimeo video id (whole number): vimeo.com/<id>.
datecharacterScheduled start, ISO 8601 with UTC offset
statuscharacterGame state: finished, canceled, beforeStartOfPlay (others appear live)
base_statuscharacterCoarse game state; equal to status in every sampled game
home_team_resultintegerHome team goals (final or current score; 0 before the game)
away_team_resultintegerAway team goals (final or current score; 0 before the game)
is_overtimelogicalGame went to overtime
is_shootoutlogicalGame went to a shootout
highlight_vimeo_video_idnumericHighlights video. Vimeo video id (whole number): vimeo.com/<id>.
has_highlightlogicalA highlight video exists
is_currentlogicalGame belongs to the current game day
is_current_for_teamlogicalGame is the team's current game (team-scoped views)
tv_partnercharacterBroadcaster logo image URLs
spectatorsintegerAttendance (whole number; the API sends a digit string).
has_my_sportslogicalBroadcast on MySports
refereescharacterOfficials as '#<number> <name>' strings (referees and linesmen; one entry in some games)
is_exhibitionlogicalExhibition game, not NL competition (competition code other than 1105)
home_team_coachcharacterHome head coach name; filled in a game's overview, null in the season lists; unobserved: null, absent or empty in every sampled row
away_team_coachcharacterAway head coach name; filled in a game's overview, null in the season lists; unobserved: null, absent or empty in every sampled row
game_timeintegerElapsed game minutes; 0 on every game in the season lists, 60 in a finished game's overview
show_game_timelogicalApp flag: show gameTime
arenacharacterName of the arena the game is played in

Details

Polite use. www.nationalleague.ch/robots.txt disallows /api, so keep use light and incremental. Requests are spaced at least one second apart (on every attempt, retries included). Check the site's terms of use before any bulk download or redistribution. Crawl incrementally: fetch a finished game once (keyed by game_id), find new games with one nl_schedule() call per run, and fetch season tables at most once per game day.

Seasons are END years and go on the wire unchanged. Ids (*_id) are whole-number numeric (a 14-digit game_id exceeds R's 32-bit integer); every other whole-number column is integer. The club backend key the API ships in /teams/{id}/info is dropped before parsing and never returned.

Endpoint: GET https://www.nationalleague.ch/api/games/playouts.

Errors

Raises a classed condition (all inherit fastRhockey_error): fastRhockey_no_data for a 404 or an empty answer (no games or rows for that season, team or phase), fastRhockey_asset_fetch for a failed fetch, an error object in a 200, a body without the ids it must carry, or an answer for another season, team, game or player, and fastRhockey_bad_request for a 400/422 or an argument that is not a whole number.

Examples

# \donttest{
  try(nl_playouts(season = 2026))
#> ── National League Playouts Information from nationalleague.ch ─────────────────
#> ℹ Data updated: 2026-11-02 03:51:53 UTC
#> # A tibble: 4 × 39
#>   series_group series_home_team_sho…¹ series_away_team_sho…² series_home_team_id
#>          <int> <chr>                  <chr>                                <dbl>
#> 1            0 HCAP                   HCA                                 101152
#> 2            0 HCAP                   HCA                                 101152
#> 3            0 HCAP                   HCA                                 101152
#> 4            0 HCAP                   HCA                                 101152
#> # ℹ abbreviated names: ¹​series_home_team_short_name,
#> #   ²​series_away_team_short_name
#> # ℹ 35 more variables: series_away_team_id <dbl>,
#> #   series_home_team_result <int>, series_away_team_result <int>,
#> #   series_best_of <int>, series_title <chr>, round <chr>, game_id <dbl>,
#> #   home_team_short_name <chr>, home_team_name <chr>,
#> #   away_team_short_name <chr>, away_team_name <chr>, home_team_id <dbl>, …
# }