Every match of one league-season (schedule, scores, quarter points, venue), in one request.
Endpoint: GET https://api.vtb-league.com/v2/leagues/{league_slug}/seasons/{season}/matches
Value
A hoopR_data tibble: Every match of one league-season (schedule, scores, quarter points, venue), in one request.
The columns are always these, in this order (sportsdataverse-py vtb_league_matches); an empty valid answer raises
hoopR_no_data, a valid body with no rows for this frame is a zero-row tibble:
| col_name | type | description |
| match_id | integer | Match id; equals the Infobasket GameID (/Widget/GetOnline/{gameId}). |
| league | character | League slug, echoed. |
| season | integer | Season END year, echoed. |
| competition | character | Competition slug: 'vtb' (league games), 'vtb-supercup', 'vtb-allstars', 'wbc'. |
| phase_id | integer | v2 phase id of the stage (not an Infobasket CompID). |
| phase_name_en | character | The stage name in English. |
| phase_name_ru | character | The stage name in Russian. |
| match_number | character | Game number ('1/2-2' = semi-final 2; regular-season numbers otherwise). |
| match_type | character | Game type: REGULAR, FINALS (any playoff or cup knockout game), ALLSTARS. |
| match_status | character | Status: SCHEDULED, IN_PROGRESS, COMPLETE, POSTPONED, CANCELLED, UNKNOWN (the site filters on the first four). |
| match_time | character | Tip-off in venue local time, ISO 8601 with offset. |
| match_time_msk | character | Tip-off in Moscow time (UTC+3), ISO 8601. |
| match_time_utc | character | Tip-off in UTC, ISO 8601. |
| is_time_set | logical | True when the tip-off time is fixed. |
| time_actual | character | Unobserved: null in every sample, so its type and meaning are unconfirmed. |
| time_end_actual | character | Unobserved: null in every sample, so its type and meaning are unconfirmed. |
| duration | integer | Game duration; 0 in every sample (unverified). |
| periods | integer | Periods played (4 in regulation). |
| extra_periods_used | logical | True when the game went to overtime. |
| attendance | integer | Spectators (null when not recorded). |
| hosting_team_id | integer | Home team id (Infobasket TeamID). |
| venue_id | integer | Venue id; equals the Infobasket arena id (ArenaId). |
| venue_name_en | character | The venue name in English. |
| venue_name_ru | character | The venue name in Russian. |
| venue_region_name_en | character | The venue city in English. |
| venue_region_name_ru | character | The venue city in Russian. |
| home_team_id | integer | Infobasket TeamID of the home team. |
| home_score | integer | Final points of the home team (an integer; 0 for a cancelled match). |
| home_team_name_en | character | The home team's name in English. |
| home_team_name_ru | character | The home team's name in Russian. |
| home_team_code_en | character | The home team's short code in English. |
| home_team_code_ru | character | The home team's short code in Russian. |
| home_region_name_en | character | Region or city of the home team in English. |
| home_region_name_ru | character | Region or city of the home team in Russian. |
| away_team_id | integer | Infobasket TeamID of the away team. |
| away_score | integer | Final points of the away team (an integer; 0 for a cancelled match). |
| away_team_name_en | character | The away team's name in English. |
| away_team_name_ru | character | The away team's name in Russian. |
| away_team_code_en | character | The away team's short code in English. |
| away_team_code_ru | character | The away team's short code in Russian. |
| away_region_name_en | character | Region or city of the away team in English. |
| away_region_name_ru | character | Region or city of the away team in Russian. |
| subtitle_en | character | The site subtitle of the match in English. |
| subtitle_ru | character | The site subtitle of the match in Russian. |
| necessary_label_en | character | The site label of the match in English. |
| necessary_label_ru | character | The site label of the match in Russian. |
| points_by_quarters | character | Points per period as [home, away] pairs; null before the game. The home team (isHomeCompetitor true) is listed first in competitors on every probed row (vtb seasons 2025 and 2026, wbc 2026: 620 of 620), and the first value of each pair summed to that team's score on every finished one. |
| home_q1 | integer | Points of the home team in period 1. |
| away_q1 | integer | Points of the away team in period 1. |
| home_q2 | integer | Points of the home team in period 2. |
| away_q2 | integer | Points of the away team in period 2. |
| home_q3 | integer | Points of the home team in period 3. |
| away_q3 | integer | Points of the away team in period 3. |
| home_q4 | integer | Points of the home team in period 4. |
| away_q4 | integer | Points of the away team in period 4. |
| home_ot | integer | Points of the home team in all overtimes together (null without overtime). |
| away_ot | integer | Points of the away team in all overtimes together (null without overtime). |
Details
Source, access, seasons, ids and the error classes: see the notes of
vtb_infobasket_seasons().v2 pages: meta.count is the rows returned (not a total), page is ignored and the default limit is 20, so the matches wrapper asks for 1000 and refuses a body whose count reaches its limit. The API lists new seasons only (from 2024-25; vtb: 2025-2027, wbc: 2026-2027): earlier years answer no rows (
hoopR_no_data).
See also
Other VTB Functions:
vtb_infobasket_best_player_parameters(),
vtb_infobasket_best_players(),
vtb_infobasket_best_team_parameters(),
vtb_infobasket_best_teams(),
vtb_infobasket_box_score(),
vtb_infobasket_calendar(),
vtb_infobasket_coach(),
vtb_infobasket_comp_issue(),
vtb_infobasket_cross_table(),
vtb_infobasket_game(),
vtb_infobasket_game_page(),
vtb_infobasket_game_staff(),
vtb_infobasket_pbp(),
vtb_infobasket_player(),
vtb_infobasket_player_career_stats(),
vtb_infobasket_player_game_log(),
vtb_infobasket_player_season_stats(),
vtb_infobasket_playoff(),
vtb_infobasket_playoff_games(),
vtb_infobasket_roster(),
vtb_infobasket_roster_coaches(),
vtb_infobasket_seasons(),
vtb_infobasket_standings(),
vtb_infobasket_team(),
vtb_infobasket_team_box_score(),
vtb_infobasket_team_coach_stats(),
vtb_infobasket_team_comps(),
vtb_infobasket_team_games(),
vtb_infobasket_team_player_stats(),
vtb_infobasket_team_preview(),
vtb_infobasket_team_season_stats(),
vtb_infobasket_team_seasons(),
vtb_infobasket_team_stats(),
vtb_infobasket_team_stats_coaches(),
vtb_infobasket_team_stats_players(),
vtb_league_leagues(),
vtb_league_seasons()
Examples
# \donttest{
try(vtb_league_matches(league_slug = "vtb", season = 2026))
#> ── VTB League Matches from api.vtb-league.com ─────────────────── hoopR 3.2.0 ──
#> ℹ Data updated: 2026-10-31 21:35:38 UTC
#> # A tibble: 273 × 57
#> match_id league season competition phase_id phase_name_en phase_name_ru
#> <int> <chr> <int> <chr> <int> <chr> <chr>
#> 1 932510 vtb 2026 vtb-supercup 1213772 1/2 finals (1) 1/2 финала (1)
#> 2 932509 vtb 2026 vtb-supercup 1213771 1/2 finals (2) 1/2 финала (2)
#> 3 932511 vtb 2026 vtb-supercup 1213774 Final for 3 Финал за 3 место
#> 4 945674 vtb 2026 vtb-supercup 1213774 Final for 3 Финал за 3 место
#> 5 932512 vtb 2026 vtb-supercup 1213773 Final Финал
#> 6 945673 vtb 2026 vtb-supercup 1213773 Final Финал
#> 7 921391 vtb 2026 vtb 1202269 Regular Season Регулярный чемпи…
#> 8 921390 vtb 2026 vtb 1202269 Regular Season Регулярный чемпи…
#> 9 921392 vtb 2026 vtb 1202269 Regular Season Регулярный чемпи…
#> 10 921394 vtb 2026 vtb 1202269 Regular Season Регулярный чемпи…
#> # ℹ 263 more rows
#> # ℹ 50 more variables: match_number <chr>, match_type <chr>,
#> # match_status <chr>, match_time <chr>, match_time_msk <chr>,
#> # match_time_utc <chr>, is_time_set <lgl>, time_actual <chr>,
#> # time_end_actual <chr>, duration <int>, periods <int>,
#> # extra_periods_used <lgl>, attendance <int>, hosting_team_id <int>,
#> # venue_id <int>, venue_name_en <chr>, venue_name_ru <chr>, …
# }
