Skip to contents

A team's roster at a competition.

Endpoint: GET https://digital-api.fiba.basketball/hapi/getgdapcompetitionteamrosterbyteamid

Usage

fiba_gdap_roster(team_id, discipline_format = NULL, return_parsed = TRUE)

Arguments

team_id

(integer, required) Required. Competition team id: one per team per competition (teamA.teamId of a game row; Germany is 279569 at the 2023 World Cup and 281545 at Paris 2024). Not the federation organisationId

discipline_format

(character, optional) Optional; the site passes its discipline format. 5x5 answers the same as omitting it (verified on awards and rosters)

return_parsed

Parse the payload into a tibble (default TRUE); FALSE returns the raw JSON list.

Value

A wehoop_data tibble (the raw JSON list when return_parsed = FALSE) with the following columns:

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 code (FIBA country code or club abbreviation).
team_namecharacterTeam name (the country for a national team, the club for a club team).
organisation_idintegerStable federation or club id (Int64), the same in every competition and season (64 = Germany).
competition_idintegerFIBA competition id (GDAP key space): one per edition (2023 World Cup = 208182, BCL 2024-25 = 208850); gdapCompetitionId.
person_idintegerFIBA person id, global across competitions and roles (player, coach, official): roster personId = play-by-play pId = game-page P_<id> = gdapPlayerId.
first_namecharacterGiven name(s) as registered with FIBA.
last_namecharacterLast name (officials: upper case).
gendercharacterSex of the person: M or F (Male/Female on getgdapcompetitionnominationsbyid).
date_of_birthcharacterDate of birth, YYYY-MM-DD.
uniform_numbercharacterJersey number (a string).
uniform_namecharacterName printed on the jersey.
positioncharacterPlaying position (roster: Point Guard...; game page: PG, SG, SF, PF, C).
height_in_cmintegerPlayer height in centimetres.
height_in_feet_inchescharacterHeight, feet and inches string (6'7").
nationalitycharacterFIBA code of the main nationality.
is_on_final_rosterlogicalTrue when on the final (12-player) roster.
games_playedintegerGames played in the competition.
club_idintegerOrganisation id of the player's club (organisationId key space).
club_namecharacterClub at the time of the competition.
country_fiba_codecharacterFIBA code of the country the person represents.
club_country_fiba_codecharacterFIBA code of the club's country.
is_captainlogicalTrue for the team captain.
is_player_free_agentlogicalTrue when the player had no club.
final_roster_member_status_codecharacterRoster entry status: VALID, PARTIAL (incomplete registration).

Details

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.

The GDAP subscription key is public (fiba.basketball ships it in every page); the runtime reads it from the live page at run time and never logs it. Officials' contact details and coaches' and officials' dates of birth are dropped from every body.

Id key spaces: competition_id is one per edition (2023 World Cup = 208182) and game_id is global across competitions (the <gameId> of a game-page URL). team_id is per team per competition (Germany is 279569 at the 2023 World Cup and 281545 at Paris 2024), while organisation_id is the stable federation or club (64 = Germany, every year); the game page's T_<id> and the play-by-play oId are organisation ids, not team ids.

Errors are classed conditions (all inherit wehoop_error): wehoop_no_data when FIBA has nothing (HTTP 404, or GDAP answers {} / [] for an unknown id); wehoop_bad_request for HTTP 400 / 422 or a malformed id, season or date; wehoop_asset_fetch for any other failed fetch or an answer that is not about the request (an error envelope, HTTP 401 after a key refresh, HTTP 500, a body for another game, competition, team, player, federation, family or season). Seasons are FIBA's own key, which equals the sdv key: the END year for club competitions, the event year for national-team events, the target tournament year for qualifiers.

Examples

# \donttest{
  try(fiba_gdap_roster(team_id = 279569))
#> ── FIBA gdap_roster from fiba.basketball ─────────────────────── wehoop 3.1.0 ──
#> ℹ Data updated: 2026-10-22 02:35:43 UTC
#> # A tibble: 12 × 25
#>    team_id team_code team_name organisation_id competition_id person_id
#>      <int> <chr>     <chr>               <int>          <int>     <int>
#>  1  279569 GER       Germany                64         208182    211501
#>  2  279569 GER       Germany                64         208182    155956
#>  3  279569 GER       Germany                64         208182    269000
#>  4  279569 GER       Germany                64         208182    204689
#>  5  279569 GER       Germany                64         208182    188675
#>  6  279569 GER       Germany                64         208182    196287
#>  7  279569 GER       Germany                64         208182    189145
#>  8  279569 GER       Germany                64         208182    181996
#>  9  279569 GER       Germany                64         208182    198299
#> 10  279569 GER       Germany                64         208182    188677
#> 11  279569 GER       Germany                64         208182    227403
#> 12  279569 GER       Germany                64         208182    210175
#> # ℹ 19 more variables: first_name <chr>, last_name <chr>, gender <chr>,
#> #   date_of_birth <chr>, uniform_number <chr>, uniform_name <chr>,
#> #   position <chr>, height_in_cm <int>, height_in_feet_inches <chr>,
#> #   nationality <chr>, is_on_final_roster <lgl>, games_played <int>,
#> #   club_id <int>, club_name <chr>, country_fiba_code <chr>,
#> #   club_country_fiba_code <chr>, is_captain <lgl>, is_player_free_agent <lgl>,
#> #   final_roster_member_status_code <chr>
# }