Every current player: webcaster id, khl.ru id, jersey and team (one row per player).
Value
A fastRhockey_data tibble (10 columns; zero rows with the same columns when the payload
is empty), or the raw body as a list when return_parsed = FALSE. Raises
fastRhockey_no_data (nothing there, or an unknown season / stage),
fastRhockey_asset_fetch (an error envelope, an answer for another id than the one
asked, or a failed fetch) and fastRhockey_bad_request (an invalid argument or an HTTP
400 / 422).
| col_name | types | description |
| id | integer | Webcaster id of the row object (webcaster key space); join to khl.ru through its khl_id |
| shirt_number | integer | Jersey number (not an id) |
| khl_id | integer | khl.ru id of the row object (site key space): the join key to khl-rest |
| image | character | Player photo URL on khl.ru |
| name | character | Name (English with locale=en) |
| team_id | integer | Webcaster id of the team object (webcaster key space); join to khl.ru through its khl_id |
| team_khl_id | integer | khl.ru club id of the team object (site key space): the join key to khl-rest |
| team_name | character | Team name as the site prints it |
| team_location | character | Team city / region (English with locale=en) |
| team | character | Team (webcaster) |
Details
Endpoint: GET https://khl.api.webcaster.pro/api/khl_mobile/players_v2_light.json.
The webcaster API is keyless JSON. Neither backend takes a year: season (the END year, 2026 =
2025/26) and stage are mapped to the webcaster stage id through the season table of
khl_webcaster_stages() (cached for the R session), or pass stage_id. Honours
getOption("fastRhockey.proxy"); betting fields and the caller's IP are removed from every body.
Ids and counts are integers (sdv-py Int64); a column holding values past 2^31 (epoch milliseconds) is returned as a whole-number double.
At least one second is left between two requests to a host.
Owner flag (sanctions). The KHL and its webcaster platform are run by Russian operators, some clubs by sanctioned state companies. Fetching on your own machine is fine; any published data release, hosted mirror or redistribution needs owner (sanctions / legal) sign-off first.
See also
Other KHL Functions:
khl_game_header(),
khl_game_info(),
khl_game_protocol(),
khl_pbp(),
khl_player_box(),
khl_player_career(),
khl_player_profile(),
khl_player_stats(),
khl_playoff_bracket(),
khl_roster(),
khl_schedule(),
khl_shots(),
khl_standings(),
khl_stat_filters(),
khl_webcaster_event(),
khl_webcaster_events(),
khl_webcaster_leaders(),
khl_webcaster_players(),
khl_webcaster_stages(),
khl_webcaster_tables(),
khl_webcaster_team(),
khl_webcaster_teams()
Examples
# \donttest{
try(khl_webcaster_players_light())
#> ── KHL Webcaster Players (Light) from khl.api.webcaster.pro ────────────────────
#> ℹ Data updated: 2026-10-13 01:55:07 UTC
#> # A tibble: 720 × 10
#> id shirt_number khl_id image name team_id team_khl_id team_name
#> <int> <int> <int> <chr> <chr> <int> <int> <chr>
#> 1 33797 11 23248 https://www.kh… Abra… 12 54 Amur
#> 2 43535 97 30941 https://www.kh… Abra… NA NA NA
#> 3 35165 17 30629 https://www.kh… Abro… 42 56 Severstal
#> 4 47215 33 43281 https://www.kh… Agaf… 22 26 Torpedo
#> 5 47627 95 40373 https://www.kh… Agla… NA NA NA
#> 6 4993 77 18961 https://www.kh… Adam… 10 34 Avangard
#> 7 28477 53 35353 https://www.kh… Aimu… 44 24 SKA
#> 8 38403 19 33710 https://www.kh… Akma… 12 54 Amur
#> 9 7699 90 15620 https://www.kh… Akol… 113 451 HC Sochi
#> 10 28149 61 34493 https://www.kh… Alal… 32 38 Salavat …
#> # ℹ 710 more rows
#> # ℹ 2 more variables: team_location <chr>, team <chr>
# }
