Skip to contents

CURRENT roster of a team page (player names in Cyrillic even on /en/).

Usage

vhl_roster(team_page_id, return_parsed = TRUE)

Arguments

team_page_id

Team page id (home_team_page_id / away_team_page_id in vhl_game_info), e.g. 390. Neither a club id nor a team-season id.

return_parsed

TRUE (default) returns the parsed tibble; FALSE returns the page's parsed record (a named list, plus _request with the season, stage, tn and the ids asked for).

Value

A fastRhockey_data tibble with one row per player:

col_nametypedescription
team_page_idintegerTeam page id (vhlru.ru /en/teams/{team_page_id}/), stable across seasons; for report rows the page id of the row's side.
teamcharacterTeam short name (Latin; the report tables' form).
calendar_tnintegerTournament id of the team's CURRENT season stage (the page's 'To the calendar' link).
calendar_team_season_idintegerThe team's team-season id in calendar_tn.
roster_as_ofcharacterDate the roster is valid for, as printed ('12.10.2026').
jerseyintegerJersey number (integer).
positioncharacterPosition in English, lower case: goaltender, defense, forward.
player_idintegerPlayer id: the {player_id} of /en/players/{player_id}/, stable across seasons and teams; also the photo id on img.khl.ru. Same numeric sequence as khl.ru player ids; whether it equals the same person's khl.ru id is unverified.
playercharacterPlayer name, 'Surname Given' - in CYRILLIC even on the /en/ page.
borncharacterBirth date 'DD.MM.YYYY' as the public page prints it.
countrycharacterCitizenship (English).

With return_parsed = FALSE, the page's parsed record (a named list) instead.

Details

The roster is the team page's CURRENT one (names are Cyrillic even on /en/), not a season's.

Source: GET https://www.vhlru.ru/en/teams/{team_page_id}/ (server-rendered HTML, keyless; parsed with rvest). Unofficial use of a public source; payloads are not redistributed.

Terms of use

Check the provider's terms of use before redistributing this data.

Errors

  • fastRhockey_no_data: the VHL has nothing for the request (a season without that stage, a game not in the season's calendar, an unknown game, player or team page).

  • fastRhockey_bad_request: a bad season / stage / id, a missing argument, or HTTP 400 / 422.

  • fastRhockey_asset_fetch: the page could not be fetched, or it is not the page asked for (another season, game or player; a missing table or header drift).

Examples

# \donttest{
  try(vhl_roster(team_page_id = 390))
#> ── VHL Roster Information from vhlru.ru ─────────────────── fastRhockey 1.1.0 ──
#> ℹ Data updated: 2026-11-02 03:53:36 UTC
#> # A tibble: 23 × 11
#>    team_page_id team  calendar_tn calendar_team_season_id roster_as_of jersey
#>           <int> <chr>       <int>                   <int> <chr>         <int>
#>  1          390 Toros        1430                   15531 02.11.2026       28
#>  2          390 Toros        1430                   15531 02.11.2026       97
#>  3          390 Toros        1430                   15531 02.11.2026       31
#>  4          390 Toros        1430                   15531 02.11.2026       25
#>  5          390 Toros        1430                   15531 02.11.2026       71
#>  6          390 Toros        1430                   15531 02.11.2026       36
#>  7          390 Toros        1430                   15531 02.11.2026        1
#>  8          390 Toros        1430                   15531 02.11.2026       46
#>  9          390 Toros        1430                   15531 02.11.2026       19
#> 10          390 Toros        1430                   15531 02.11.2026       88
#> # ℹ 13 more rows
#> # ℹ 5 more variables: position <chr>, player_id <int>, player <chr>,
#> #   born <chr>, country <chr>
# }