Skip to main content

FIBA (digital API and game pages) — additional Python functions — FIBA digital API and game pages: afrobasket_editions–bcl_player

fiba_afrobasket_editions​

fiba_afrobasket_editions(season: 'Optional[int]' = None, to_season: 'Optional[int]' = None, *, return_parsed: 'bool' = True, return_as_pandas: 'bool' = False, **kwargs: 'Any') -> 'Union[pl.DataFrame, pd.DataFrame, Dict]'

Every edition of FIBA AfroBasket.

FIBA AfroBasket (men's); season rule: event year (2025 = 2025).

Convenience wrapper: a thin binding of fiba_gdap_editions to this competition, minted from the competition registry (tools/codegen/basketball_competitions.yaml).

Read before use: FIBA's terms restrict this source. The GDAP developer-portal terms limit API use to 'Authorized Users' (federations, organisers, FIBA partners) and say any broader use 'is not authorised'; the fiba.basketball terms say no portion of the site may be duplicated, redistributed or manipulated. The package owner reviewed both clauses on 2026-10-12, accepted them and approved the full intake, published data releases included. Users who are not themselves authorised by FIBA should check the terms before using the wrappers.

Parameters

ParameterTypeDefaultDescription
seasonOptional[int]NoneFirst season (inclusive); omitted = all editions.
to_seasonOptional[int]NoneLast season, inclusive.
return_parsedboolTrueparse into a polars DataFrame (default True); False returns the raw body.
return_as_pandasboolFalsewith return_parsed, return a pandas DataFrame instead of polars.

Returns

A polars/pandas DataFrame by default; the raw JSON Dict when return_parsed=False.

col_nametypedescription
hostscharacterHost countries with their cities. Stored as a JSON string.
competition_idintegerFIBA competition id (GDAP key space): one per edition (2023 World Cup = 208182, BCL 2024-25 = 208850); gdapCompetitionId.
competition_codecharacterCompetition code (WMM men's World Cup, WOLYM, BCL, ELW...).
seasonintegerSeason key, three rules: the END year for club competitions (BCL 2024-25 = 2025) and the event year for national-team events (World Cup 2023 = 2023), both equal to the sdv season key; qualifiers carry the TARGET tournament year, not the year played (World Cup 2027 qualifiers played in 2025 = 2027, EuroBasket 2029 pre-qualifiers = 2029), whose sdv mapping is an open Phase B decision.
official_namecharacterEdition title (FIBA Basketball World Cup; Paris 2024 Men's Olympic Basketball Tournament).
startcharacterFirst day, YYYY-MM-DD.
endcharacterLast day, YYYY-MM-DD.
statuscharacterCompetition status: In Progress, Completed, Closed.
age_categorycharacterAge category (Senior, Under 16...).
gendercharacterMen or Women: the gender of the competition.
fiba_zonecharacterFIBA zone the competition belongs to (World, Europe, Americas...).
zone_information_zone_idintegerFIBA zone id (1 = World, 23 = Europe; zone table key space).
zone_information_zone_official_namecharacterOfficial name of the competition's FIBA zone (FIBA Europe, FIBA Americas, World).
zone_information_zone_codecharacterZone code (W, E, AF, AM, AS, OC).
zone_information_top_zone_idintegerParent zone id; null for top zones.
zone_information_top_zone_official_namecharacterParent zone name; always null in the samples, values unverified.
zone_information_top_zone_codecharacterParent zone code; always null in the samples, values unverified.
competition_typecharacterNational Teams or Clubs.
competition_category_is_leaguelogicalTrue for league-format club competitions.
competition_category_age_typecharacterAge type code: S senior, U16.
competition_category_codecharacterCategory code (WC World Cup, OLY Olympic Tournament, CCC-1 continental club tier 1).
competition_category_namecharacterName of the competition's category (FIBA Basketball World Cup, Olympic Basketball Tournament...).
official_flag_item_codecharacterOfficial-status code: O = official.
official_flag_item_namecharacterOfficial-status label.
officialcharacterOfficial-status label.
disciplinecharacterDiscipline (Basketball; 3x3 is a separate platform).
competition_marketing_name_competition_marketing_name_idintegerCompetition family id (201 = World Cup, 112 = BCL tier 1, 211 = EuroLeague Women); the of /en/history/ pages.
competition_marketing_name_marketing_namecharacterCompetition family name; slugified it is the of /en/history/ pages.
competition_marketing_name_codecharacterFamily code; null in every sample.

Example

from sportsdataverse.basketball.fiba_hub import fiba_afrobasket_editions
fiba_afrobasket_editions(season=2025)

fiba_afrobasket_pbp​

fiba_afrobasket_pbp(game_id: 'int', season: 'Optional[int]' = None, comp: 'Optional[int]' = None, *, return_parsed: 'bool' = True, return_as_pandas: 'bool' = False, **kwargs: 'Any') -> 'Union[pl.DataFrame, pd.DataFrame, Dict]'

Play-by-play of one FIBA AfroBasket game.

FIBA AfroBasket (men's); season rule: event year (2025 = 2025).

Convenience wrapper: a thin binding of fiba_gamepage_pbp to this competition, minted from the competition registry (tools/codegen/basketball_competitions.yaml).

Read before use: FIBA's terms restrict this source. The GDAP developer-portal terms limit API use to 'Authorized Users' (federations, organisers, FIBA partners) and say any broader use 'is not authorised'; the fiba.basketball terms say no portion of the site may be duplicated, redistributed or manipulated. The package owner reviewed both clauses on 2026-10-12, accepted them and approved the full intake, published data releases included. Users who are not themselves authorised by FIBA should check the terms before using the wrappers.

Parameters

ParameterTypeDefaultDescription
game_idintFIBA game id (game_id in the schedule).
seasonOptional[int]NoneEdition season key (see the season rule above). Omitted = the newest edition that has started.
compOptional[int]NoneFIBA competition id (one per edition); skips the edition lookup. Needed when a season lists several editions.
return_parsedboolTrueparse into a polars DataFrame (default True); False returns the raw body.
return_as_pandasboolFalsewith return_parsed, return a pandas DataFrame instead of polars.

Returns

A polars/pandas DataFrame by default; the game-page Dict (game, playByPlay, gameDetails, playersTeamA, playersTeamB) cut out of the RSC flight payload with its tokens resolved when return_parsed=False.

col_nametypedescription
game_idintegerFIBA game id (Int64), global across competitions: gdapGameId, the of a game-page URL.
competition_idintegerFIBA competition id (Int64) of the game's edition; the comp argument.
statistic_systemcharacterLive-stats system of the game: OVR (World Cup, Olympics) or FLS (club competitions, most qualifiers); they differ in the play-by-play action ids, order and text.
periodcharacterPeriod name: Q1..Q4, then OT1, OT2...
period_numberinteger1-based position of the period in the game.
action_idcharacterAction id (String): ':' in OVR games (3:0015), a sequence number in FLS games; unique within the game.
orderintegerSort key within the period (OVR: 1, 2, ...; FLS: 1000, 2000, ...); null on some period events.
clockcharacterGame clock: time REMAINING in the period, 'm:ss', counting down from 10:00 (5:00 in overtime).
clock_secondsintegerSeconds remaining in the period, derived from clock.
wall_time_msintegerWall-clock time of the action, Unix epoch milliseconds.
score_aintegerTeam A score after the action.
score_bintegerTeam B score after the action.
action_codecharacterAction code: P2 two-point shot, P3 three-point shot, FT free throw, REB rebound, TREB team rebound, ASS assist, ST steal, BS block, TO turnover, TTO team turnover, FOUL foul, RFOUL foul drawn, SUBST substitution, TIMO timeout, plus period events (STARTG, STARTP, ENDP, ENDG).
action_familycharacterAction family: shot, subst, timeout, periods, and 'unknwown' (FIBA's spelling) for every other action.
descriptioncharacterEnglish action text ('3pt jump shot missed', 'defensive rebound'); null on most OVR actions.
organisation_idintegerStable federation or club id (Int64) of the team, the same in every competition (64 = Germany); the page's T_ and the play-by-play oId. NOT the per-competition team_id.
team_sidecharacterA or B: whether the row is the schedule's team A or team B (null when the page does not say).
player_idintegerFIBA person id (Int64), global across competitions and roles: the page's P_, play-by-play pId, roster personId and fiba_gdap_roster.player_id.
player2_idintegerFIBA person id (Int64) of the second player on a substitution; null when the game does not record it (the refs note FLS only, but the Paris 2024 final, an OVR game, carries it and the FLS games sampled leave it null).
sub_directioncharacterSubstitution direction: IN or OUT; null on other actions.
madelogicalTrue when the shot went in (two-pointers, three-pointers and free throws only; null otherwise).
points_attemptedintegerPoints the attempt was worth (2, 3 or 1), made or not; null on other actions.
shot_typecharacterShot type derived from action_code: 2PT, 3PT or FT; null on other actions.
shot_xintegerShot x, integer pixels on a half-court image across the court width (observed 0-278, basket near x = 139). Present only on shots; free throws are 0. Which sideline is x = 0 and the scale are UNVERIFIED.
shot_yintegerShot y, integer pixels from the baseline (y = 0) towards midcourt (observed 0-224, basket near y = 25); both teams' shots are drawn on one basket. Free throws are 0. Scale UNVERIFIED.
has_locationlogicalTrue when shot_x / shot_y locate the shot (two- and three-pointers); False for free throws (always 0, 0); null on other actions.

Example

from sportsdataverse.basketball.fiba_hub import fiba_afrobasket_schedule, fiba_afrobasket_pbp
games = fiba_afrobasket_schedule(season=2025)
fiba_afrobasket_pbp(game_id=int(games['game_id'][0]), season=2025)

fiba_afrobasket_player_box​

fiba_afrobasket_player_box(game_id: 'int', season: 'Optional[int]' = None, comp: 'Optional[int]' = None, *, return_parsed: 'bool' = True, return_as_pandas: 'bool' = False, **kwargs: 'Any') -> 'Union[pl.DataFrame, pd.DataFrame, Dict]'

Player box score of one FIBA AfroBasket game.

FIBA AfroBasket (men's); season rule: event year (2025 = 2025).

Convenience wrapper: a thin binding of fiba_gamepage_box_players to this competition, minted from the competition registry (tools/codegen/basketball_competitions.yaml).

Read before use: FIBA's terms restrict this source. The GDAP developer-portal terms limit API use to 'Authorized Users' (federations, organisers, FIBA partners) and say any broader use 'is not authorised'; the fiba.basketball terms say no portion of the site may be duplicated, redistributed or manipulated. The package owner reviewed both clauses on 2026-10-12, accepted them and approved the full intake, published data releases included. Users who are not themselves authorised by FIBA should check the terms before using the wrappers.

Parameters

ParameterTypeDefaultDescription
game_idintFIBA game id (game_id in the schedule).
seasonOptional[int]NoneEdition season key (see the season rule above). Omitted = the newest edition that has started.
compOptional[int]NoneFIBA competition id (one per edition); skips the edition lookup. Needed when a season lists several editions.
return_parsedboolTrueparse into a polars DataFrame (default True); False returns the raw body.
return_as_pandasboolFalsewith return_parsed, return a pandas DataFrame instead of polars.

Returns

A polars/pandas DataFrame by default; the game-page Dict (game, playByPlay, gameDetails, playersTeamA, playersTeamB) cut out of the RSC flight payload with its tokens resolved when return_parsed=False.

col_nametypedescription
game_idintegerFIBA game id (Int64), global across competitions: gdapGameId, the of a game-page URL.
competition_idintegerFIBA competition id (Int64) of the game's edition; the comp argument.
team_sidecharacterA or B: whether the row is the schedule's team A or team B (null when the page does not say).
organisation_idintegerStable federation or club id (Int64) of the team, the same in every competition (64 = Germany); the page's T_ and the play-by-play oId. NOT the per-competition team_id.
player_idintegerFIBA person id (Int64), global across competitions and roles: the page's P_, play-by-play pId, roster personId and fiba_gdap_roster.player_id.
first_namecharacterGiven name(s) as registered with FIBA.
last_namecharacterLast name as registered with FIBA.
jerseycharacterJersey number as a string.
positioncharacterPlaying position code from the lineup card (PG, SG, SF, PF, C).
is_captainlogicalTrue for the team captain.
is_starterlogicalTrue for the starting five.
has_playedlogicalTrue when the player got on the court.
minutescharacterMinutes played as an 'm:ss' string ('0:0' = did not play).
seconds_playedintegerSeconds played, derived from minutes.
pointsintegerPoints scored in the game.
fg_madeintegerField goals made (2 + 3 points).
fg_attemptedintegerField goals attempted (2 + 3 points).
fg_pctnumericField-goal percentage, 0-100.
fg2_madeintegerTwo-point field goals made.
fg2_attemptedintegerTwo-point field goals attempted.
fg2_pctnumericTwo-point field-goal percentage, 0-100.
fg3_madeintegerThree-point field goals made.
fg3_attemptedintegerThree-point field goals attempted.
fg3_pctnumericThree-point field-goal percentage, 0-100.
ft_madeintegerFree throws made.
ft_attemptedintegerFree throws attempted.
ft_pctnumericFree-throw percentage, 0-100.
reb_offensiveintegerOffensive rebounds.
reb_defensiveintegerDefensive rebounds.
reb_totalintegerTotal rebounds (a team row includes the team rebounds team_reb_total).
assistsintegerAssists credited in the game.
stealsintegerSteals credited in the game.
blocksintegerBlocked shots (blocks made).
blocks_receivedintegerOwn shots blocked by the opponent (blocks received).
turnoversintegerTurnovers (a team row includes the team turnovers team_turnovers).
foulsintegerPersonal fouls (a team row includes the team fouls team_fouls).
fouls_drawnintegerFouls drawn in the game.
paint_fg_madeintegerField goals made in the paint (team points_in_paint = 2 x paint_fg_made on every sampled game).
paint_fg_attemptedintegerField goals attempted in the paint.
paint_fg_pctnumericField-goal percentage in the paint, 0-100.
efficiencyintegerEfficiency (FIBA EFF: points + rebounds + assists + steals + blocks - missed field goals - missed free throws - turnovers).
plus_minusintegerPlus/minus: the team's point differential while the player was on the court.
cblogicalBoolean flag, false on every sampled player; meaning unverified.

Example

from sportsdataverse.basketball.fiba_hub import fiba_afrobasket_schedule, fiba_afrobasket_player_box
games = fiba_afrobasket_schedule(season=2025)
fiba_afrobasket_player_box(game_id=int(games['game_id'][0]), season=2025)

fiba_afrobasket_schedule​

fiba_afrobasket_schedule(season: 'Optional[int]' = None, comp: 'Optional[int]' = None, *, return_parsed: 'bool' = True, return_as_pandas: 'bool' = False, **kwargs: 'Any') -> 'Union[pl.DataFrame, pd.DataFrame, Dict]'

Schedule and results of one FIBA AfroBasket edition, one row per game.

FIBA AfroBasket (men's); season rule: event year (2025 = 2025).

Convenience wrapper: a thin binding of fiba_gdap_schedule to this competition, minted from the competition registry (tools/codegen/basketball_competitions.yaml).

Read before use: FIBA's terms restrict this source. The GDAP developer-portal terms limit API use to 'Authorized Users' (federations, organisers, FIBA partners) and say any broader use 'is not authorised'; the fiba.basketball terms say no portion of the site may be duplicated, redistributed or manipulated. The package owner reviewed both clauses on 2026-10-12, accepted them and approved the full intake, published data releases included. Users who are not themselves authorised by FIBA should check the terms before using the wrappers.

Parameters

ParameterTypeDefaultDescription
seasonOptional[int]NoneEdition season key (see the season rule above). Omitted = the newest edition that has started.
compOptional[int]NoneFIBA competition id (one per edition); skips the edition lookup. Needed when a season lists several editions.
return_parsedboolTrueparse into a polars DataFrame (default True); False returns the raw body.
return_as_pandasboolFalsewith return_parsed, return a pandas DataFrame instead of polars.

Returns

A polars/pandas DataFrame by default; the raw JSON Dict when return_parsed=False.

col_nametypedescription
game_idintegerFIBA game id, global across competitions (GDAP key space): gdapGameId, the of a game-page URL.
game_namecharacterTechnical game name '--'.
game_numbercharacterGame number within the round or pairing (a string: '1', 'A').
status_codecharacterGame status code: VALID (validated result), CLOS (closed, pre-2000 rows).
team_a_team_idintegerCompetition team id: one per team per competition (Germany = 279569 at the 2023 World Cup, 281545 at Paris 2024). Joins getgdapcompetitionteamrosterbyteamid / getgdapcompetitionteamstatisticsbyteamid gdapTeamId; not an organisationId.
team_a_organisation_idintegerOrganisation id, stable across competitions and seasons: the national federation for a national team (64 = Germany), the club for a club team (396 = Filou Oostende). Same key space as nationalFederationId, clubId, play-by-play oId and the game page's T_.
team_a_codecharacterTeam code (national: FIBA country code; club: a club abbreviation such as OOST).
team_a_official_namecharacterOfficial name of team A: the country for a national team, the club for a club team.
team_a_short_namecharacterShort name of team A: the country code for a national team, the club's short name for a club.
team_b_team_idintegerCompetition team id: one per team per competition (Germany = 279569 at the 2023 World Cup, 281545 at Paris 2024). Joins getgdapcompetitionteamrosterbyteamid / getgdapcompetitionteamstatisticsbyteamid gdapTeamId; not an organisationId.
team_b_organisation_idintegerOrganisation id, stable across competitions and seasons: the national federation for a national team (64 = Germany), the club for a club team (396 = Filou Oostende). Same key space as nationalFederationId, clubId, play-by-play oId and the game page's T_.
team_b_codecharacterTeam code (national: FIBA country code; club: a club abbreviation such as NANT).
team_b_official_namecharacterOfficial name of team B: the country for a national team, the club for a club team.
team_b_short_namecharacterShort name of team B: the country code for a national team, the club's short name for a club.
team_a_scoreintegerFinal score of team A.
team_b_scoreintegerFinal score of team B.
is_livelogicalTrue while the game is being played.
current_periodcharacterLast period reached ('Q4', 'OT1').
chronocharacterGame clock of the current period, 'mm:ss' ('00:00' when finished).
live_game_statusintegerLive state code: 999 on every finished game; 5 seen on a finished 2024 youth game; mapping unverified.
current_period_statuscharacterState of the current period: E = ended (the only value sampled).
host_citycharacterCity of the venue.
host_countrycharacterCountry of the venue (name; a FIBA code in getgdapgameswithleaderdetailsbyteamid).
host_country_codecharacterFIBA code of the venue's country.
venue_idintegerVenue id (GDAP key space; 0 = unknown).
venue_namecharacterName of the arena the game is played in.
game_date_timecharacterTip-off in venue-local wall-clock time, ISO 8601 without offset (T00:00:00 when hasTimeGameDateTime is false).
game_date_time_utccharacterTip-off in UTC, ISO 8601 without the Z.
has_time_game_date_timelogicalFalse when only the date is known (the time part is then 00:00:00).
iana_time_zonecharacterIANA time zone of the venue.
utc_offsetcharacterVenue UTC offset at tip-off, hours.
is_postponedlogicalTrue when the game was postponed.
is_played_behind_closed_doorslogicalTrue when played without spectators.
venue_capacityintegerVenue capacity (0 = unknown).
spectatorsintegerAttendance at the game, as recorded by FIBA.
statistic_systemcharacterLive-stats system that scored the game: OVR (FIBA's Olympic/World Cup system), FLS (FIBA LiveStats), null before about 2006.
group_idcharacterGroup id (GDAP key space).
group_pairing_codecharacterGroup letter (group play) or pairing number (knockout bracket slot).
round_round_idintegerRound id (GDAP key space, unique across competitions); the first segment of gameName.
round_round_codecharacterRound code (GP group phase, QF, SF, F final, RS regular season, CL17-32 classification...).
round_round_namecharacterRound label (Group Phase, Quarter-Finals, Final...).
round_round_numberintegerRound number within the competition (1-based).
round_round_typecharacterRound type label: Group Round, Non Group Round, Super Round (getgdapgamesbycompetitionid uses the code G/NG here).
round_round_status_codecharacterRound status: COMPL completed, PROGR in progress, CLOS closed.
round_game_systemcharacterPairing system label (Single, Home and Away, Best of 3).
round_game_system_codecharacterPairing system code: S single game, HA home and away, BOF3 best of three.
round_start_datecharacterRound start, local date-time.
round_end_datecharacterRound end, local date-time (23:59:59.9999999 on the last day).
round_round_kindcharacterStandard Round or Qualifiers.
round_round_orderintegerDisplay order of the round.
competition_competition_idintegerFIBA competition id (GDAP key space): one per edition (2023 World Cup = 208182, BCL 2024-25 = 208850); gdapCompetitionId.
competition_competition_codecharacterCompetition code (WMM men's World Cup, WOLYM, BCL, ELW...).
competition_seasonintegerSeason key, three rules: the END year for club competitions (BCL 2024-25 = 2025) and the event year for national-team events (World Cup 2023 = 2023), both equal to the sdv season key; qualifiers carry the TARGET tournament year, not the year played (World Cup 2027 qualifiers played in 2025 = 2027, EuroBasket 2029 pre-qualifiers = 2029), whose sdv mapping is an open Phase B decision.
competition_official_namecharacterEdition title (FIBA Basketball World Cup; Paris 2024 Men's Olympic Basketball Tournament).
competition_startcharacterFirst day, YYYY-MM-DD.
competition_endcharacterLast day, YYYY-MM-DD.
competition_statuscharacterCompetition status: In Progress, Completed, Closed.
competition_age_categorycharacterAge category (Senior, Under 16...).
competition_gendercharacterMen or Women: the gender of the competition.
competition_fiba_zonecharacterFIBA zone the competition belongs to (World, Europe, Americas...).
competition_zone_information_zone_idintegerFIBA zone id (1 = World, 23 = Europe; zone table key space).
competition_zone_information_zone_official_namecharacterOfficial name of the competition's FIBA zone (FIBA Europe, FIBA Americas, World).
competition_zone_information_zone_codecharacterZone code (W, E, AF, AM, AS, OC).
competition_zone_information_top_zone_idintegerParent zone id; null for top zones.
competition_zone_information_top_zone_official_namecharacterParent zone name; always null in the samples, values unverified.
competition_zone_information_top_zone_codecharacterParent zone code; always null in the samples, values unverified.
competition_competition_typecharacterNational Teams or Clubs.
competition_competition_category_is_leaguelogicalTrue for league-format club competitions.
competition_competition_category_age_typecharacterAge type code: S senior, U16.
competition_competition_category_codecharacterCategory code (WC World Cup, OLY Olympic Tournament, CCC-1 continental club tier 1).
competition_competition_category_namecharacterName of the competition's category (FIBA Basketball World Cup, Olympic Basketball Tournament...).
competition_official_flag_item_codecharacterOfficial-status code: O = official.
competition_official_flag_item_namecharacterOfficial-status label.
competition_officialcharacterOfficial-status label.
competition_disciplinecharacterDiscipline (Basketball; 3x3 is a separate platform).
competition_competition_marketing_name_competition_marketing_name_idintegerCompetition family id (201 = World Cup, 112 = BCL tier 1, 211 = EuroLeague Women); the of /en/history/ pages.
competition_competition_marketing_name_marketing_namecharacterCompetition family name; slugified it is the of /en/history/ pages.
competition_competition_marketing_name_codecharacterFamily code; null in every sample.
game_statistic_status_codecharacterBox-score validation status: VALID.
game_play_by_play_status_codecharacterPlay-by-play availability flag: VALID or EMPTY. UNRELIABLE: World Cup 2014 and EuroBasket 2017 say EMPTY but their game pages carry full play-by-play; always check the page.
game_result_status_codecharacterResult validation status: VALID.
game_result_additional_informationcharacterFree-text result note (forfeit, overtime remark); null when none.
window_codecharacterQualifier window code; null otherwise.
window_namecharacterQualifier window name; null otherwise.
team_a_fromcharacterHow team A qualified for this slot ('Winner of Game 87', '1st of group C'); null in group play.
team_b_fromcharacterHow team B qualified for this slot ('Winner of Game 88', '2nd of group A'); null in group play.

Example

from sportsdataverse.basketball.fiba_hub import fiba_afrobasket_schedule
fiba_afrobasket_schedule(season=2025)

fiba_afrobasket_shots​

fiba_afrobasket_shots(game_id: 'int', season: 'Optional[int]' = None, comp: 'Optional[int]' = None, *, return_parsed: 'bool' = True, return_as_pandas: 'bool' = False, **kwargs: 'Any') -> 'Union[pl.DataFrame, pd.DataFrame, Dict]'

Shot chart of one FIBA AfroBasket game.

FIBA AfroBasket (men's); season rule: event year (2025 = 2025).

Convenience wrapper: a thin binding of fiba_gamepage_shots to this competition, minted from the competition registry (tools/codegen/basketball_competitions.yaml).

Read before use: FIBA's terms restrict this source. The GDAP developer-portal terms limit API use to 'Authorized Users' (federations, organisers, FIBA partners) and say any broader use 'is not authorised'; the fiba.basketball terms say no portion of the site may be duplicated, redistributed or manipulated. The package owner reviewed both clauses on 2026-10-12, accepted them and approved the full intake, published data releases included. Users who are not themselves authorised by FIBA should check the terms before using the wrappers.

Parameters

ParameterTypeDefaultDescription
game_idintFIBA game id (game_id in the schedule).
seasonOptional[int]NoneEdition season key (see the season rule above). Omitted = the newest edition that has started.
compOptional[int]NoneFIBA competition id (one per edition); skips the edition lookup. Needed when a season lists several editions.
return_parsedboolTrueparse into a polars DataFrame (default True); False returns the raw body.
return_as_pandasboolFalsewith return_parsed, return a pandas DataFrame instead of polars.

Returns

A polars/pandas DataFrame by default; the game-page Dict (game, playByPlay, gameDetails, playersTeamA, playersTeamB) cut out of the RSC flight payload with its tokens resolved when return_parsed=False.

col_nametypedescription
game_idintegerFIBA game id (Int64), global across competitions: gdapGameId, the of a game-page URL.
competition_idintegerFIBA competition id (Int64) of the game's edition; the comp argument.
statistic_systemcharacterLive-stats system of the game: OVR (World Cup, Olympics) or FLS (club competitions, most qualifiers); they differ in the play-by-play action ids, order and text.
periodcharacterPeriod name: Q1..Q4, then OT1, OT2...
period_numberinteger1-based position of the period in the game.
action_idcharacterAction id (String): ':' in OVR games (3:0015), a sequence number in FLS games; unique within the game.
orderintegerSort key within the period (OVR: 1, 2, ...; FLS: 1000, 2000, ...); null on some period events.
clockcharacterGame clock: time REMAINING in the period, 'm:ss', counting down from 10:00 (5:00 in overtime).
clock_secondsintegerSeconds remaining in the period, derived from clock.
action_codecharacterAction code: P2 two-point shot, P3 three-point shot, FT free throw, REB rebound, TREB team rebound, ASS assist, ST steal, BS block, TO turnover, TTO team turnover, FOUL foul, RFOUL foul drawn, SUBST substitution, TIMO timeout, plus period events (STARTG, STARTP, ENDP, ENDG).
organisation_idintegerStable federation or club id (Int64) of the team, the same in every competition (64 = Germany); the page's T_ and the play-by-play oId. NOT the per-competition team_id.
team_sidecharacterA or B: whether the row is the schedule's team A or team B (null when the page does not say).
player_idintegerFIBA person id (Int64), global across competitions and roles: the page's P_, play-by-play pId, roster personId and fiba_gdap_roster.player_id.
shot_typecharacterShot type derived from action_code: 2PT, 3PT or FT; null on other actions.
points_attemptedintegerPoints the attempt was worth (2, 3 or 1), made or not; null on other actions.
madelogicalTrue when the shot went in (two-pointers, three-pointers and free throws only; null otherwise).
shot_xintegerShot x, integer pixels on a half-court image across the court width (observed 0-278, basket near x = 139). Present only on shots; free throws are 0. Which sideline is x = 0 and the scale are UNVERIFIED.
shot_yintegerShot y, integer pixels from the baseline (y = 0) towards midcourt (observed 0-224, basket near y = 25); both teams' shots are drawn on one basket. Free throws are 0. Scale UNVERIFIED.
has_locationlogicalTrue when shot_x / shot_y locate the shot (two- and three-pointers); False for free throws (always 0, 0); null on other actions.

Example

from sportsdataverse.basketball.fiba_hub import fiba_afrobasket_schedule, fiba_afrobasket_shots
games = fiba_afrobasket_schedule(season=2025)
fiba_afrobasket_shots(game_id=int(games['game_id'][0]), season=2025)

fiba_afrobasket_standings​

fiba_afrobasket_standings(season: 'Optional[int]' = None, comp: 'Optional[int]' = None, *, return_parsed: 'bool' = True, return_as_pandas: 'bool' = False, **kwargs: 'Any') -> 'Union[pl.DataFrame, pd.DataFrame, Dict]'

Final standings of one FIBA AfroBasket edition.

FIBA AfroBasket (men's); season rule: event year (2025 = 2025).

Convenience wrapper: a thin binding of fiba_gdap_final_standings to this competition, minted from the competition registry (tools/codegen/basketball_competitions.yaml).

Read before use: FIBA's terms restrict this source. The GDAP developer-portal terms limit API use to 'Authorized Users' (federations, organisers, FIBA partners) and say any broader use 'is not authorised'; the fiba.basketball terms say no portion of the site may be duplicated, redistributed or manipulated. The package owner reviewed both clauses on 2026-10-12, accepted them and approved the full intake, published data releases included. Users who are not themselves authorised by FIBA should check the terms before using the wrappers.

Parameters

ParameterTypeDefaultDescription
seasonOptional[int]NoneEdition season key (see the season rule above). Omitted = the newest edition that has started.
compOptional[int]NoneFIBA competition id (one per edition); skips the edition lookup. Needed when a season lists several editions.
return_parsedboolTrueparse into a polars DataFrame (default True); False returns the raw body.
return_as_pandasboolFalsewith return_parsed, return a pandas DataFrame instead of polars.

Returns

A polars/pandas DataFrame by default; the raw JSON Dict when return_parsed=False.

col_nametypedescription
competition_idintegerFIBA competition id (Int64) the final ranking belongs to; the comp argument.
final_rankintegerFinal rank in the competition.
team_team_idintegerCompetition team id: one per team per competition (Germany = 279569 at the 2023 World Cup, 281545 at Paris 2024). Joins getgdapcompetitionteamrosterbyteamid / getgdapcompetitionteamstatisticsbyteamid gdapTeamId; not an organisationId.
team_team_codecharacterTeam abbreviation (FIBA country code or club abbreviation).
team_short_namecharacterShort team name: the country code for a national team, the club's short name for a club.
team_profilecharacterTeam profile; null in this route.
team_status_codecharacterTeam entry status; always null in the samples, values unverified.
team_status_namecharacterTeam entry status label; always null in the samples, values unverified.
team_organisation_idintegerOrganisation id, stable across competitions and seasons: the national federation for a national team (64 = Germany), the club for a club team (396 = Filou Oostende). Same key space as nationalFederationId, clubId, play-by-play oId and the game page's T_.

Example

from sportsdataverse.basketball.fiba_hub import fiba_afrobasket_standings
fiba_afrobasket_standings(season=2025)

fiba_afrobasket_team_box​

fiba_afrobasket_team_box(game_id: 'int', season: 'Optional[int]' = None, comp: 'Optional[int]' = None, *, return_parsed: 'bool' = True, return_as_pandas: 'bool' = False, **kwargs: 'Any') -> 'Union[pl.DataFrame, pd.DataFrame, Dict]'

Team box score of one FIBA AfroBasket game.

FIBA AfroBasket (men's); season rule: event year (2025 = 2025).

Convenience wrapper: a thin binding of fiba_gamepage_box_teams to this competition, minted from the competition registry (tools/codegen/basketball_competitions.yaml).

Read before use: FIBA's terms restrict this source. The GDAP developer-portal terms limit API use to 'Authorized Users' (federations, organisers, FIBA partners) and say any broader use 'is not authorised'; the fiba.basketball terms say no portion of the site may be duplicated, redistributed or manipulated. The package owner reviewed both clauses on 2026-10-12, accepted them and approved the full intake, published data releases included. Users who are not themselves authorised by FIBA should check the terms before using the wrappers.

Parameters

ParameterTypeDefaultDescription
game_idintFIBA game id (game_id in the schedule).
seasonOptional[int]NoneEdition season key (see the season rule above). Omitted = the newest edition that has started.
compOptional[int]NoneFIBA competition id (one per edition); skips the edition lookup. Needed when a season lists several editions.
return_parsedboolTrueparse into a polars DataFrame (default True); False returns the raw body.
return_as_pandasboolFalsewith return_parsed, return a pandas DataFrame instead of polars.

Returns

A polars/pandas DataFrame by default; the game-page Dict (game, playByPlay, gameDetails, playersTeamA, playersTeamB) cut out of the RSC flight payload with its tokens resolved when return_parsed=False.

col_nametypedescription
game_idintegerFIBA game id (Int64), global across competitions: gdapGameId, the of a game-page URL.
competition_idintegerFIBA competition id (Int64) of the game's edition; the comp argument.
statistic_systemcharacterLive-stats system of the game: OVR (World Cup, Olympics) or FLS (club competitions, most qualifiers); they differ in the play-by-play action ids, order and text.
team_sidecharacterA or B: whether the row is the schedule's team A or team B (null when the page does not say).
organisation_idintegerStable federation or club id (Int64) of the team, the same in every competition (64 = Germany); the page's T_ and the play-by-play oId. NOT the per-competition team_id.
scoreintegerTeam final score.
pointsintegerPoints scored in the game.
fg_madeintegerField goals made (2 + 3 points).
fg_attemptedintegerField goals attempted (2 + 3 points).
fg_pctnumericField-goal percentage, 0-100.
fg2_madeintegerTwo-point field goals made.
fg2_attemptedintegerTwo-point field goals attempted.
fg2_pctnumericTwo-point field-goal percentage, 0-100.
fg3_madeintegerThree-point field goals made.
fg3_attemptedintegerThree-point field goals attempted.
fg3_pctnumericThree-point field-goal percentage, 0-100.
ft_madeintegerFree throws made.
ft_attemptedintegerFree throws attempted.
ft_pctnumericFree-throw percentage, 0-100.
reb_offensiveintegerOffensive rebounds.
reb_defensiveintegerDefensive rebounds.
reb_totalintegerTotal rebounds (a team row includes the team rebounds team_reb_total).
assistsintegerAssists credited in the game.
stealsintegerSteals credited in the game.
blocksintegerBlocked shots (blocks made).
blocks_receivedcharacterOwn shots blocked by the opponent (blocks received).
turnoversintegerTurnovers (a team row includes the team turnovers team_turnovers).
foulsintegerPersonal fouls (a team row includes the team fouls team_fouls).
fouls_drawnintegerFouls drawn in the game.
paint_fg_madeintegerField goals made in the paint (team points_in_paint = 2 x paint_fg_made on every sampled game).
paint_fg_attemptedintegerField goals attempted in the paint.
paint_fg_pctnumericField-goal percentage in the paint, 0-100.
efficiencyintegerEfficiency (FIBA EFF: points + rebounds + assists + steals + blocks - missed field goals - missed free throws - turnovers).
biggest_leadintegerBiggest lead, points.
biggest_lead_scorecharacterScore when the biggest lead was reached, 'A-B' string (spacing varies; empty when the team never led).
biggest_runintegerBiggest scoring run, points.
biggest_run_scorecharacterScore of the biggest scoring run, 'x-y' string; exact meaning unverified.
fast_break_pointsintegerFast-break points.
points_off_turnoversintegerPoints scored after turnovers.
bench_pointsintegerPoints from the bench (the sum of the non-starters' points).
points_in_paintintegerPoints in the paint (2 x paint_fg_made).
second_chance_pointsintegerSecond-chance points.
a_actintegerAlways 0 in the samples; meaning unverified (FIBA stat code A_ACT).
a_foulintegerAlways 0 in the samples; meaning unverified (FIBA stat code A_FOUL).
a_todintegerAlways 0 in the samples; meaning unverified (FIBA stat code A_TOD).
a_totintegerAlways 0 in the samples; meaning unverified (FIBA stat code A_TOT).
team_reb_offensiveintegerTeam offensive rebounds, credited to no player.
team_reb_defensiveintegerTeam defensive rebounds, credited to no player.
team_reb_totalintegerTeam rebounds (total rebounds minus the players' sum).
team_foulsintegerTeam (bench/coach) fouls (personal fouls minus the players' sum).
team_turnoversintegerTeam turnovers (turnovers minus the players' sum).
team_bench_points_flagintegerBench points in FLS games (equal to bench_points); 0 in OVR games (FIBA stat code T_PFB).
time_ledcharacterTime the team led, 'mm:ss' string.
lead_changesintegerLead changes in the game (game-level; repeats on both team rows).
times_tiedintegerTimes the score was tied (game-level; repeats on both team rows).
durationcharacterGame duration as an 'h:mm' string (game-level; repeats on both team rows).
attendanceintegerAttendance (game-level; repeats on both team rows).

Example

from sportsdataverse.basketball.fiba_hub import fiba_afrobasket_schedule, fiba_afrobasket_team_box
games = fiba_afrobasket_schedule(season=2025)
fiba_afrobasket_team_box(game_id=int(games['game_id'][0]), season=2025)

fiba_afrobasket_teams​

fiba_afrobasket_teams(season: 'Optional[int]' = None, comp: 'Optional[int]' = None, *, return_parsed: 'bool' = True, return_as_pandas: 'bool' = False, **kwargs: 'Any') -> 'Union[pl.DataFrame, pd.DataFrame, Dict]'

Teams of one FIBA AfroBasket edition.

FIBA AfroBasket (men's); season rule: event year (2025 = 2025).

Convenience wrapper: a thin binding of fiba_gdap_teams to this competition, minted from the competition registry (tools/codegen/basketball_competitions.yaml).

Read before use: FIBA's terms restrict this source. The GDAP developer-portal terms limit API use to 'Authorized Users' (federations, organisers, FIBA partners) and say any broader use 'is not authorised'; the fiba.basketball terms say no portion of the site may be duplicated, redistributed or manipulated. The package owner reviewed both clauses on 2026-10-12, accepted them and approved the full intake, published data releases included. Users who are not themselves authorised by FIBA should check the terms before using the wrappers.

Parameters

ParameterTypeDefaultDescription
seasonOptional[int]NoneEdition season key (see the season rule above). Omitted = the newest edition that has started.
compOptional[int]NoneFIBA competition id (one per edition); skips the edition lookup. Needed when a season lists several editions.
return_parsedboolTrueparse into a polars DataFrame (default True); False returns the raw body.
return_as_pandasboolFalsewith return_parsed, return a pandas DataFrame instead of polars.

Returns

A polars/pandas DataFrame by default; the raw JSON Dict when return_parsed=False.

col_nametypedescription
team_idintegerCompetition team id: one per team per competition (Germany = 279569 at the 2023 World Cup, 281545 at Paris 2024). Joins getgdapcompetitionteamrosterbyteamid / getgdapcompetitionteamstatisticsbyteamid gdapTeamId; not an organisationId.
team_codecharacterTeam abbreviation (FIBA country code or club abbreviation).
short_namecharacterShort team name: the country code for a national team, the club's short name for a club.
profile_team_idintegerCompetition team id: one per team per competition (Germany = 279569 at the 2023 World Cup, 281545 at Paris 2024). Joins getgdapcompetitionteamrosterbyteamid / getgdapcompetitionteamstatisticsbyteamid gdapTeamId; not an organisationId.
profile_organisation_idintegerOrganisation id, stable across competitions and seasons: the national federation for a national team (64 = Germany), the club for a club team (396 = Filou Oostende). Same key space as nationalFederationId, clubId, play-by-play oId and the game page's T_.
profile_namecharacterTeam name as registered for the competition.
profile_codecharacterTeam code (FIBA country code or club abbreviation).
profile_country_namecharacterCountry of the team, in English.
profile_country_codecharacterCountry FIBA code.
profile_gendercharacterMen or Women: the gender of the team's competition.
profile_facebookcharacterFacebook handle or URL; always null in the samples, values unverified.
profile_twittercharacterX/Twitter handle; always null in the samples, values unverified.
profile_instagramcharacterInstagram handle; always null in the samples, values unverified.
profile_websitecharacterThe team's website address.
profile_you_tubecharacterYouTube handle; always null in the samples, values unverified.
profile_final_rankingintegerFinal rank in the competition.
profile_points_per_gamenumericThe team's average points per game played.
profile_rebounds_per_gamenumericThe team's average rebounds per game played.
profile_assists_per_gamenumericThe team's average assists per game played.
profile_rank_points_per_gamenumericRank in the competition by points per game (1 = highest).
profile_rank_rebounds_per_gamenumericRank in the competition by rebounds per game (1 = highest).
profile_rank_assists_per_gamenumericRank in the competition by assists per game (1 = highest).
profile_total_games_wonintegerThe team's total games won over the games played.
profile_total_games_lostintegerThe team's total games lost over the games played.
profile_social_networkscharacterSocial-network handles. Stored as a JSON string.
profile_competition_idintegerFIBA competition id (GDAP key space): one per edition (2023 World Cup = 208182, BCL 2024-25 = 208850); gdapCompetitionId.
status_codecharacterTeam entry status: APPR approved.
status_namecharacterTeam entry status label (Approved).
organisation_idintegerOrganisation id, stable across competitions and seasons: the national federation for a national team (64 = Germany), the club for a club team (396 = Filou Oostende). Same key space as nationalFederationId, clubId, play-by-play oId and the game page's T_.

Example

from sportsdataverse.basketball.fiba_hub import fiba_afrobasket_teams
fiba_afrobasket_teams(season=2025)

fiba_bcl_editions​

fiba_bcl_editions(season: 'Optional[int]' = None, to_season: 'Optional[int]' = None, *, return_parsed: 'bool' = True, return_as_pandas: 'bool' = False, **kwargs: 'Any') -> 'Union[pl.DataFrame, pd.DataFrame, Dict]'

Every edition of Basketball Champions League (FIBA Men's European Club Competitions Tier 1).

Basketball Champions League (FIBA Men's European Club Competitions Tier 1) (men's); season rule: END year (2024-25 = 2025).

Convenience wrapper: a thin binding of fiba_gdap_editions to this competition, minted from the competition registry (tools/codegen/basketball_competitions.yaml).

Read before use: FIBA's terms restrict this source. The GDAP developer-portal terms limit API use to 'Authorized Users' (federations, organisers, FIBA partners) and say any broader use 'is not authorised'; the fiba.basketball terms say no portion of the site may be duplicated, redistributed or manipulated. The package owner reviewed both clauses on 2026-10-12, accepted them and approved the full intake, published data releases included. Users who are not themselves authorised by FIBA should check the terms before using the wrappers.

Parameters

ParameterTypeDefaultDescription
seasonOptional[int]NoneFirst season (inclusive); omitted = all editions.
to_seasonOptional[int]NoneLast season, inclusive.
return_parsedboolTrueparse into a polars DataFrame (default True); False returns the raw body.
return_as_pandasboolFalsewith return_parsed, return a pandas DataFrame instead of polars.

Returns

A polars/pandas DataFrame by default; the raw JSON Dict when return_parsed=False.

col_nametypedescription
hostscharacterHost countries with their cities. Stored as a JSON string.
competition_idintegerFIBA competition id (GDAP key space): one per edition (2023 World Cup = 208182, BCL 2024-25 = 208850); gdapCompetitionId.
competition_codecharacterCompetition code (WMM men's World Cup, WOLYM, BCL, ELW...).
seasonintegerSeason key, three rules: the END year for club competitions (BCL 2024-25 = 2025) and the event year for national-team events (World Cup 2023 = 2023), both equal to the sdv season key; qualifiers carry the TARGET tournament year, not the year played (World Cup 2027 qualifiers played in 2025 = 2027, EuroBasket 2029 pre-qualifiers = 2029), whose sdv mapping is an open Phase B decision.
official_namecharacterEdition title (FIBA Basketball World Cup; Paris 2024 Men's Olympic Basketball Tournament).
startcharacterFirst day, YYYY-MM-DD.
endcharacterLast day, YYYY-MM-DD.
statuscharacterCompetition status: In Progress, Completed, Closed.
age_categorycharacterAge category (Senior, Under 16...).
gendercharacterMen or Women: the gender of the competition.
fiba_zonecharacterFIBA zone the competition belongs to (World, Europe, Americas...).
zone_information_zone_idintegerFIBA zone id (1 = World, 23 = Europe; zone table key space).
zone_information_zone_official_namecharacterOfficial name of the competition's FIBA zone (FIBA Europe, FIBA Americas, World).
zone_information_zone_codecharacterZone code (W, E, AF, AM, AS, OC).
zone_information_top_zone_idintegerParent zone id; null for top zones.
zone_information_top_zone_official_namecharacterParent zone name; always null in the samples, values unverified.
zone_information_top_zone_codecharacterParent zone code; always null in the samples, values unverified.
competition_typecharacterNational Teams or Clubs.
competition_category_is_leaguelogicalTrue for league-format club competitions.
competition_category_age_typecharacterAge type code: S senior, U16.
competition_category_codecharacterCategory code (WC World Cup, OLY Olympic Tournament, CCC-1 continental club tier 1).
competition_category_namecharacterName of the competition's category (FIBA Basketball World Cup, Olympic Basketball Tournament...).
official_flag_item_codecharacterOfficial-status code: O = official.
official_flag_item_namecharacterOfficial-status label.
officialcharacterOfficial-status label.
disciplinecharacterDiscipline (Basketball; 3x3 is a separate platform).
competition_marketing_name_competition_marketing_name_idintegerCompetition family id (201 = World Cup, 112 = BCL tier 1, 211 = EuroLeague Women); the of /en/history/ pages.
competition_marketing_name_marketing_namecharacterCompetition family name; slugified it is the of /en/history/ pages.
competition_marketing_name_codecharacterFamily code; null in every sample.

Example

from sportsdataverse.basketball.fiba_hub import fiba_bcl_editions
fiba_bcl_editions(season=2025)

fiba_bcl_pbp​

fiba_bcl_pbp(game_id: 'int', season: 'Optional[int]' = None, comp: 'Optional[int]' = None, *, return_parsed: 'bool' = True, return_as_pandas: 'bool' = False, **kwargs: 'Any') -> 'Union[pl.DataFrame, pd.DataFrame, Dict]'

Play-by-play of one Basketball Champions League (FIBA Men's European Club Competitions Tier 1) game.

Basketball Champions League (FIBA Men's European Club Competitions Tier 1) (men's); season rule: END year (2024-25 = 2025).

Convenience wrapper: a thin binding of fiba_gamepage_pbp to this competition, minted from the competition registry (tools/codegen/basketball_competitions.yaml).

Read before use: FIBA's terms restrict this source. The GDAP developer-portal terms limit API use to 'Authorized Users' (federations, organisers, FIBA partners) and say any broader use 'is not authorised'; the fiba.basketball terms say no portion of the site may be duplicated, redistributed or manipulated. The package owner reviewed both clauses on 2026-10-12, accepted them and approved the full intake, published data releases included. Users who are not themselves authorised by FIBA should check the terms before using the wrappers.

Parameters

ParameterTypeDefaultDescription
game_idintFIBA game id (game_id in the schedule).
seasonOptional[int]NoneEdition season key (see the season rule above). Omitted = the newest edition that has started.
compOptional[int]NoneFIBA competition id (one per edition); skips the edition lookup. Needed when a season lists several editions.
return_parsedboolTrueparse into a polars DataFrame (default True); False returns the raw body.
return_as_pandasboolFalsewith return_parsed, return a pandas DataFrame instead of polars.

Returns

A polars/pandas DataFrame by default; the game-page Dict (game, playByPlay, gameDetails, playersTeamA, playersTeamB) cut out of the RSC flight payload with its tokens resolved when return_parsed=False.

col_nametypedescription
game_idintegerFIBA game id (Int64), global across competitions: gdapGameId, the of a game-page URL.
competition_idintegerFIBA competition id (Int64) of the game's edition; the comp argument.
statistic_systemcharacterLive-stats system of the game: OVR (World Cup, Olympics) or FLS (club competitions, most qualifiers); they differ in the play-by-play action ids, order and text.
periodcharacterPeriod name: Q1..Q4, then OT1, OT2...
period_numberinteger1-based position of the period in the game.
action_idcharacterAction id (String): ':' in OVR games (3:0015), a sequence number in FLS games; unique within the game.
orderintegerSort key within the period (OVR: 1, 2, ...; FLS: 1000, 2000, ...); null on some period events.
clockcharacterGame clock: time REMAINING in the period, 'm:ss', counting down from 10:00 (5:00 in overtime).
clock_secondsintegerSeconds remaining in the period, derived from clock.
wall_time_msintegerWall-clock time of the action, Unix epoch milliseconds.
score_aintegerTeam A score after the action.
score_bintegerTeam B score after the action.
action_codecharacterAction code: P2 two-point shot, P3 three-point shot, FT free throw, REB rebound, TREB team rebound, ASS assist, ST steal, BS block, TO turnover, TTO team turnover, FOUL foul, RFOUL foul drawn, SUBST substitution, TIMO timeout, plus period events (STARTG, STARTP, ENDP, ENDG).
action_familycharacterAction family: shot, subst, timeout, periods, and 'unknwown' (FIBA's spelling) for every other action.
descriptioncharacterEnglish action text ('3pt jump shot missed', 'defensive rebound'); null on most OVR actions.
organisation_idintegerStable federation or club id (Int64) of the team, the same in every competition (64 = Germany); the page's T_ and the play-by-play oId. NOT the per-competition team_id.
team_sidecharacterA or B: whether the row is the schedule's team A or team B (null when the page does not say).
player_idintegerFIBA person id (Int64), global across competitions and roles: the page's P_, play-by-play pId, roster personId and fiba_gdap_roster.player_id.
player2_idintegerFIBA person id (Int64) of the second player on a substitution; null when the game does not record it (the refs note FLS only, but the Paris 2024 final, an OVR game, carries it and the FLS games sampled leave it null).
sub_directioncharacterSubstitution direction: IN or OUT; null on other actions.
madelogicalTrue when the shot went in (two-pointers, three-pointers and free throws only; null otherwise).
points_attemptedintegerPoints the attempt was worth (2, 3 or 1), made or not; null on other actions.
shot_typecharacterShot type derived from action_code: 2PT, 3PT or FT; null on other actions.
shot_xintegerShot x, integer pixels on a half-court image across the court width (observed 0-278, basket near x = 139). Present only on shots; free throws are 0. Which sideline is x = 0 and the scale are UNVERIFIED.
shot_yintegerShot y, integer pixels from the baseline (y = 0) towards midcourt (observed 0-224, basket near y = 25); both teams' shots are drawn on one basket. Free throws are 0. Scale UNVERIFIED.
has_locationlogicalTrue when shot_x / shot_y locate the shot (two- and three-pointers); False for free throws (always 0, 0); null on other actions.

Example

from sportsdataverse.basketball.fiba_hub import fiba_bcl_schedule, fiba_bcl_pbp
games = fiba_bcl_schedule(season=2025)
fiba_bcl_pbp(game_id=int(games['game_id'][0]), season=2025)

fiba_bcl_player_box​

fiba_bcl_player_box(game_id: 'int', season: 'Optional[int]' = None, comp: 'Optional[int]' = None, *, return_parsed: 'bool' = True, return_as_pandas: 'bool' = False, **kwargs: 'Any') -> 'Union[pl.DataFrame, pd.DataFrame, Dict]'

Player box score of one Basketball Champions League (FIBA Men's European Club Competitions Tier 1) game.

Basketball Champions League (FIBA Men's European Club Competitions Tier 1) (men's); season rule: END year (2024-25 = 2025).

Convenience wrapper: a thin binding of fiba_gamepage_box_players to this competition, minted from the competition registry (tools/codegen/basketball_competitions.yaml).

Read before use: FIBA's terms restrict this source. The GDAP developer-portal terms limit API use to 'Authorized Users' (federations, organisers, FIBA partners) and say any broader use 'is not authorised'; the fiba.basketball terms say no portion of the site may be duplicated, redistributed or manipulated. The package owner reviewed both clauses on 2026-10-12, accepted them and approved the full intake, published data releases included. Users who are not themselves authorised by FIBA should check the terms before using the wrappers.

Parameters

ParameterTypeDefaultDescription
game_idintFIBA game id (game_id in the schedule).
seasonOptional[int]NoneEdition season key (see the season rule above). Omitted = the newest edition that has started.
compOptional[int]NoneFIBA competition id (one per edition); skips the edition lookup. Needed when a season lists several editions.
return_parsedboolTrueparse into a polars DataFrame (default True); False returns the raw body.
return_as_pandasboolFalsewith return_parsed, return a pandas DataFrame instead of polars.

Returns

A polars/pandas DataFrame by default; the game-page Dict (game, playByPlay, gameDetails, playersTeamA, playersTeamB) cut out of the RSC flight payload with its tokens resolved when return_parsed=False.

col_nametypedescription
game_idintegerFIBA game id (Int64), global across competitions: gdapGameId, the of a game-page URL.
competition_idintegerFIBA competition id (Int64) of the game's edition; the comp argument.
team_sidecharacterA or B: whether the row is the schedule's team A or team B (null when the page does not say).
organisation_idintegerStable federation or club id (Int64) of the team, the same in every competition (64 = Germany); the page's T_ and the play-by-play oId. NOT the per-competition team_id.
player_idintegerFIBA person id (Int64), global across competitions and roles: the page's P_, play-by-play pId, roster personId and fiba_gdap_roster.player_id.
first_namecharacterGiven name(s) as registered with FIBA.
last_namecharacterLast name as registered with FIBA.
jerseycharacterJersey number as a string.
positioncharacterPlaying position code from the lineup card (PG, SG, SF, PF, C).
is_captainlogicalTrue for the team captain.
is_starterlogicalTrue for the starting five.
has_playedlogicalTrue when the player got on the court.
minutescharacterMinutes played as an 'm:ss' string ('0:0' = did not play).
seconds_playedintegerSeconds played, derived from minutes.
pointsintegerPoints scored in the game.
fg_madeintegerField goals made (2 + 3 points).
fg_attemptedintegerField goals attempted (2 + 3 points).
fg_pctnumericField-goal percentage, 0-100.
fg2_madeintegerTwo-point field goals made.
fg2_attemptedintegerTwo-point field goals attempted.
fg2_pctnumericTwo-point field-goal percentage, 0-100.
fg3_madeintegerThree-point field goals made.
fg3_attemptedintegerThree-point field goals attempted.
fg3_pctnumericThree-point field-goal percentage, 0-100.
ft_madeintegerFree throws made.
ft_attemptedintegerFree throws attempted.
ft_pctnumericFree-throw percentage, 0-100.
reb_offensiveintegerOffensive rebounds.
reb_defensiveintegerDefensive rebounds.
reb_totalintegerTotal rebounds (a team row includes the team rebounds team_reb_total).
assistsintegerAssists credited in the game.
stealsintegerSteals credited in the game.
blocksintegerBlocked shots (blocks made).
blocks_receivedintegerOwn shots blocked by the opponent (blocks received).
turnoversintegerTurnovers (a team row includes the team turnovers team_turnovers).
foulsintegerPersonal fouls (a team row includes the team fouls team_fouls).
fouls_drawnintegerFouls drawn in the game.
paint_fg_madeintegerField goals made in the paint (team points_in_paint = 2 x paint_fg_made on every sampled game).
paint_fg_attemptedintegerField goals attempted in the paint.
paint_fg_pctnumericField-goal percentage in the paint, 0-100.
efficiencyintegerEfficiency (FIBA EFF: points + rebounds + assists + steals + blocks - missed field goals - missed free throws - turnovers).
plus_minusintegerPlus/minus: the team's point differential while the player was on the court.
cblogicalBoolean flag, false on every sampled player; meaning unverified.

Example

from sportsdataverse.basketball.fiba_hub import fiba_bcl_schedule, fiba_bcl_player_box
games = fiba_bcl_schedule(season=2025)
fiba_bcl_player_box(game_id=int(games['game_id'][0]), season=2025)