Skip to contents

Playoff and play-in series by round: one row per game, with its series score.

Usage

nl_playoffs(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

robots.txt ruling. www.nationalleague.ch/robots.txt disallows /api. The owner approved building on it on 2026-10-12, for polite, incremental use only: requests are spaced at least one second apart (on every attempt, retries included), and a bulk backfill or a published mirror needs the owner's sign-off first. 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/playoffs.

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_playoffs(season = 2026))
#> ── National League Playoffs Information from nationalleague.ch ─────────────────
#> ℹ Data updated: 2026-10-13 01:58:29 UTC
#> # A tibble: 46 × 39
#>    series_group series_home_team_short_name series_away_team_short_name
#>           <int> <chr>                       <chr>                      
#>  1            1 HCD                         FRI                        
#>  2            1 HCD                         FRI                        
#>  3            1 HCD                         FRI                        
#>  4            1 HCD                         FRI                        
#>  5            1 HCD                         FRI                        
#>  6            1 HCD                         FRI                        
#>  7            1 HCD                         FRI                        
#>  8            1 HCD                         ZSC                        
#>  9            1 HCD                         ZSC                        
#> 10            1 HCD                         ZSC                        
#> # ℹ 36 more rows
#> # ℹ 36 more variables: series_home_team_id <dbl>, 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>,
#> #   away_team_id <dbl>, vimeo_video_id <dbl>, date <chr>, status <chr>, …
# }