Skip to main content

VTB — VTB United League Infobasket (Russia) — Player

vtb_infobasket_player​

Player profile: names, birth date, height, weight, position.

Endpoint URL: GET https://org.infobasket.su/Widget/PlayerPage/{person_id}

Valid URL: https://org.infobasket.su/Widget/PlayerPage/423011?format=json&tag=vtb

API ParameterPythonPatternRequiredNullableDescription
person_idperson_idYInfobasket PersonID (person_id in a box score or roster): one person across clubs and seasons, e.g. 423011.
tagtagYCompetition tag scoping the profile: vtb (VTB United League, default), vtbyouth, wbc, wpremier or rfb. The season table is read for this tag.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
person_idintegerInfobasket PersonID: one person across clubs and seasons; players, coaches and officials share the space.
person_last_name_rucharacterLast name, Russian.
person_first_name_rucharacterFirst name, Russian.
person_last_name_encharacterLast name, English.
person_first_name_encharacterFirst name, English.
person_genderintegerPerson gender: 1 on every sampled (male) person.
birth_datecharacterBirth date (ISO 8601 date) of a player: public bio, kept; coaches' and officials' birth data is never output.
person_heightintegerHeight in centimetres.
person_weightintegerWeight in kilograms.
person_statusintegerPerson record status (1 active, 0 otherwise); meaning unverified.
player_positioncharacterUnobserved: null in every sample, so its type and meaning are unconfirmed.
player_handcharacterUnobserved: null in every sample, so its type and meaning are unconfirmed.
is_naturalizedlogicalTrue for naturalised players.
position_idintegerPosition id of the player (PosID), with its names in position_name_ru / position_name_en.
position_name_rucharacterPosition name in Russian.
position_name_encharacterPosition name in English.

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

vtb_infobasket_player(person_id=423011)

Last validated n/a.

vtb_infobasket_player_season_stats​

A player's season-by-season totals in the competition tag.

Endpoint URL: GET https://org.infobasket.su/Widget/PlayerSeasonStats/{person_id}

Valid URL: https://org.infobasket.su/Widget/PlayerSeasonStats/423011?format=json&tag=vtb

API ParameterPythonPatternRequiredNullableDescription
person_idperson_idYInfobasket PersonID (person_id in a box score or roster): one person across clubs and seasons, e.g. 423011.
tagtagYCompetition tag scoping the profile: vtb (VTB United League, default), vtbyouth, wbc, wpremier or rfb. The season table is read for this tag.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
person_idintegerInfobasket person id (PersonID): one person (player, coach or official) across clubs and seasons. Joins to /Widget/PlayerPage/{personId} (players) and /Widget/CoachPage/{personId} (coaches).
seasonintegerSeason END year (2026 = 2025-26). The wire sends it as Season.CompID, a third meaning of CompID.
season_name_rucharacterSeason name in Russian ('Сезон 2025/2026').
season_name_encharacterSeason name in English ('Season 2025/2026').
team_short_name_rucharacterThe the team's short name in Russian (as the competition names it).
team_short_name_encharacterThe the team's short name in English (as the competition names it).
team_name_rucharacterThe the team's name in Russian (as the competition names it).
team_name_encharacterThe the team's name in English (as the competition names it).
team_region_name_rucharacterThe the team's region or city in Russian (as the competition names it).
team_region_name_encharacterThe the team's region or city in English (as the competition names it).
team_idintegerInfobasket team id (TeamID): one club's entry in a competition family (Lokomotiv Kuban = 2650). Joins to /Widget/Team*/{teamId} and equals the v2 API teamId.
game_countintegerGames in the totals.
in_game_countintegerGames actually played (on the court).
start_countintegerGames the person started.
pointsintegerPoints. The wire's null is 0 here (null counts are filled).
shot1integerFree throws attempted. The wire's null is 0 here (null counts are filled).
goal1integerFree throws made. The wire's null is 0 here (null counts are filled).
shot2integer2-point field goals attempted. The wire's null is 0 here (null counts are filled).
goal2integer2-point field goals made. The wire's null is 0 here (null counts are filled).
shot3integer3-point field goals attempted. The wire's null is 0 here (null counts are filled).
goal3integer3-point field goals made. The wire's null is 0 here (null counts are filled).
shot1_percentnumericFree-throw percentage (0-100); parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
shot2_percentnumeric2-point percentage (0-100); parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
shot3_percentnumeric3-point percentage (0-100); parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
assistintegerAssists. The wire's null is 0 here (null counts are filled).
blocksintegerBlocked shots. The wire's null is 0 here (null counts are filled).
def_reboundintegerDefensive rebounds. The wire's null is 0 here (null counts are filled).
off_reboundintegerOffensive rebounds. The wire's null is 0 here (null counts are filled).
reboundintegerTotal rebounds. The wire's null is 0 here (null counts are filled).
stealintegerSteals. The wire's null is 0 here (null counts are filled).
turnoverintegerTurnovers. The wire's null is 0 here (null counts are filled).
foulintegerPersonal fouls committed. The wire's null is 0 here (null counts are filled).
opponent_foulintegerFouls drawn. The wire's null is 0 here (null counts are filled).
avg_pointsnumericPer-game average of: points; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_assistnumericPer-game average of: assists; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_blocksnumericPer-game average of: blocked shots; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_def_reboundnumericPer-game average of: defensive rebounds; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_off_reboundnumericPer-game average of: offensive rebounds; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_reboundnumericPer-game average of: total rebounds; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_stealnumericPer-game average of: steals; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_turnovernumericPer-game average of: turnovers; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_foulnumericPer-game average of: personal fouls committed; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_opponent_foulnumericPer-game average of: fouls drawn; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_plus_minusnumericPer-game average of: plus-minus: point differential while on the court; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
secondsintegerPlaying time in seconds.
played_timecharacterPlaying time as 'minutes:seconds' (team rows sum the five players: '200:00' = 40 minutes x 5).
avg_played_timecharacterAverage playing time per game as 'minutes:seconds'.
plus_minusintegerPlus-minus: point differential while on the court. Null where the host sends none.

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

vtb_infobasket_player_season_stats(person_id=423011)

Last validated n/a.

vtb_infobasket_player_career_stats​

A player's career totals in the competition tag.

Endpoint URL: GET https://org.infobasket.su/Widget/PlayerSeasonStats/{person_id}

Valid URL: https://org.infobasket.su/Widget/PlayerSeasonStats/423011?format=json&tag=vtb

API ParameterPythonPatternRequiredNullableDescription
person_idperson_idYInfobasket PersonID (person_id in a box score or roster): one person across clubs and seasons, e.g. 423011.
tagtagYCompetition tag scoping the profile: vtb (VTB United League, default), vtbyouth, wbc, wpremier or rfb. The season table is read for this tag.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
person_idintegerInfobasket person id (PersonID): one person (player, coach or official) across clubs and seasons. Joins to /Widget/PlayerPage/{personId} (players) and /Widget/CoachPage/{personId} (coaches). The scope check compares it with the request.
game_countintegerGames in the totals.
in_game_countintegerGames actually played (on the court).
start_countintegerGames the person started.
has_more_seasonslogicalTrue when the host holds more seasons than listed (False in every sample).
pointsintegerPoints. The wire's null is 0 here (null counts are filled).
shot1integerFree throws attempted. The wire's null is 0 here (null counts are filled).
goal1integerFree throws made. The wire's null is 0 here (null counts are filled).
shot2integer2-point field goals attempted. The wire's null is 0 here (null counts are filled).
goal2integer2-point field goals made. The wire's null is 0 here (null counts are filled).
shot3integer3-point field goals attempted. The wire's null is 0 here (null counts are filled).
goal3integer3-point field goals made. The wire's null is 0 here (null counts are filled).
shot1_percentnumericFree-throw percentage (0-100); parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
shot2_percentnumeric2-point percentage (0-100); parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
shot3_percentnumeric3-point percentage (0-100); parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
assistintegerAssists. The wire's null is 0 here (null counts are filled).
blocksintegerBlocked shots. The wire's null is 0 here (null counts are filled).
def_reboundintegerDefensive rebounds. The wire's null is 0 here (null counts are filled).
off_reboundintegerOffensive rebounds. The wire's null is 0 here (null counts are filled).
reboundintegerTotal rebounds. The wire's null is 0 here (null counts are filled).
stealintegerSteals. The wire's null is 0 here (null counts are filled).
turnoverintegerTurnovers. The wire's null is 0 here (null counts are filled).
foulintegerPersonal fouls committed. The wire's null is 0 here (null counts are filled).
opponent_foulintegerFouls drawn. The wire's null is 0 here (null counts are filled).
avg_pointsnumericPer-game average of: points; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_assistnumericPer-game average of: assists; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_blocksnumericPer-game average of: blocked shots; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_def_reboundnumericPer-game average of: defensive rebounds; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_off_reboundnumericPer-game average of: offensive rebounds; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_reboundnumericPer-game average of: total rebounds; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_stealnumericPer-game average of: steals; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_turnovernumericPer-game average of: turnovers; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_foulnumericPer-game average of: personal fouls committed; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_opponent_foulnumericPer-game average of: fouls drawn; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
avg_plus_minusnumericPer-game average of: plus-minus: point differential while on the court; parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
secondsintegerPlaying time in seconds.
played_timecharacterPlaying time as 'minutes:seconds' (team rows sum the five players: '200:00' = 40 minutes x 5).
avg_played_timecharacterAverage playing time per game as 'minutes:seconds'.
plus_minusintegerPlus-minus: point differential while on the court. Null where the host sends none.

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

vtb_infobasket_player_career_stats(person_id=423011)

Last validated n/a.

vtb_infobasket_player_game_log​

A player's game log for one season and one team, one row per game.

Endpoint URL: GET https://org.infobasket.su/Widget/PlayerStats/{person_id}

Valid URL: https://org.infobasket.su/Widget/PlayerStats/423011?format=json&season=2026&team=2650&filter=1&tag=vtb

API ParameterPythonPatternRequiredNullableDescription
person_idperson_idYInfobasket PersonID (person_id in a box score or roster): one person across clubs and seasons, e.g. 423011.
seasonseasonYSeason END year (2026 = 2025-26); the wrapper maps it to the season-level Infobasket CompID with vtb_infobasket_seasons (one extra request per tag, cached). Required.
teamteamYInfobasket TeamID (team_id in the calendar, a box score or the v2 matches), e.g. 2650 (Lokomotiv Kuban). Required: the body is the player's games for that club.
filterfilterYSite filter code; the widget always sends 1 (meaning unverified).
tagtagYCompetition tag scoping the profile: vtb (VTB United League, default), vtbyouth, wbc, wpremier or rfb. The season table is read for this tag.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
person_idinteger0 on every game row (the player is the body's PersonID).
game_idintegerInfobasket game id (GameID); equals the v2 API matchId. Joins to /Widget/GetOnline/{gameId} and /Widget/GamePage/{gameId}.
game_numbercharacterGame number within the competition, e.g. 'RS-002' (RS = regular season); playoff games use the series code.
game_statusintegerGame status in the game-record code set: 21 completed.
team_idintegerInfobasket TeamID the player played for in that game.
team_a_idintegerUnobserved: null in every sample, so its type and meaning are unconfirmed.
team_b_idintegerUnobserved: null in every sample, so its type and meaning are unconfirmed.
score_aintegerFinal points of team A (listed first).
score_bintegerFinal points of team B (listed second).
team_a_short_name_rucharacterThe team A (the home side in the calendar)'s short name in Russian (as the competition names it).
team_a_short_name_encharacterThe team A (the home side in the calendar)'s short name in English (as the competition names it).
team_a_name_rucharacterThe team A (the home side in the calendar)'s name in Russian (as the competition names it).
team_a_name_encharacterThe team A (the home side in the calendar)'s name in English (as the competition names it).
team_a_region_name_rucharacterThe team A (the home side in the calendar)'s region or city in Russian (as the competition names it).
team_a_region_name_encharacterThe team A (the home side in the calendar)'s region or city in English (as the competition names it).
team_b_short_name_rucharacterThe team B (the away side)'s short name in Russian (as the competition names it).
team_b_short_name_encharacterThe team B (the away side)'s short name in English (as the competition names it).
team_b_name_rucharacterThe team B (the away side)'s name in Russian (as the competition names it).
team_b_name_encharacterThe team B (the away side)'s name in English (as the competition names it).
team_b_region_name_rucharacterThe team B (the away side)'s region or city in Russian (as the competition names it).
team_b_region_name_encharacterThe team B (the away side)'s region or city in English (as the competition names it).
game_datecharacterGame date as an ISO 8601 date (YYYY-MM-DD); the wire sends DD.MM.YYYY.
team_numberintegerSide (1 or 2) the player's team had in the game.
player_numberintegerShirt number as an integer (-1 when none).
display_numbercharacterShirt number as displayed ('0' and '00' differ).
pointsintegerPoints. The wire's null is 0 here (null counts are filled).
shot1integerFree throws attempted. The wire's null is 0 here (null counts are filled).
goal1integerFree throws made. The wire's null is 0 here (null counts are filled).
shot2integer2-point field goals attempted. The wire's null is 0 here (null counts are filled).
goal2integer2-point field goals made. The wire's null is 0 here (null counts are filled).
shot3integer3-point field goals attempted. The wire's null is 0 here (null counts are filled).
goal3integer3-point field goals made. The wire's null is 0 here (null counts are filled).
shot23integerField goals (2 + 3 points) attempted. The wire's null is 0 here (null counts are filled).
goal23integerField goals (2 + 3 points) made. The wire's null is 0 here (null counts are filled).
shot1_percentnumericFree-throw percentage (0-100); parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
shot2_percentnumeric2-point percentage (0-100); parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
shot3_percentnumeric3-point percentage (0-100); parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
shot23_percentnumericField-goal percentage (0-100); parsed to a number (the wire sends a comma-decimal string, null when there were no attempts).
assistintegerAssists. The wire's null is 0 here (null counts are filled).
blocksintegerUnobserved: null in every sample, so its type and meaning are unconfirmed.
def_reboundintegerDefensive rebounds. The wire's null is 0 here (null counts are filled).
off_reboundintegerOffensive rebounds. The wire's null is 0 here (null counts are filled).
reboundintegerTotal rebounds. The wire's null is 0 here (null counts are filled).
stealintegerSteals. The wire's null is 0 here (null counts are filled).
turnoverintegerTurnovers. The wire's null is 0 here (null counts are filled).
foulintegerPersonal fouls committed. The wire's null is 0 here (null counts are filled).
opponent_foulintegerFouls drawn. The wire's null is 0 here (null counts are filled).
secondsintegerPlaying time in seconds.
played_timecharacterPlaying time as 'minutes:seconds' (team rows sum the five players: '200:00' = 40 minutes x 5).
plus_minusintegerPlus-minus: point differential while on the court. Null where the host sends none.
is_startlogicalTrue for a starter.
start_markcharacter'+' for a starter, else empty.
kpiintegerEfficiency index (KPI, the platform's 'КПИ'); formula unverified.

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

vtb_infobasket_player_game_log(person_id=423011, season=2026, team=2650)

Last validated n/a.