Skip to contents

One game's header: teams, score, venue, attendance and status codes (no box score or play-by-play: see fiba_gamepage).

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

Usage

fiba_gdap_game(game_id, return_parsed = TRUE)

Arguments

game_id

(integer, required) Required. FIBA game id (global GDAP key space): gameId of a schedule row; the <gameId> of a game page URL

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
game_idintegerFIBA game id, global across competitions (GDAP key space): gdapGameId, the <gameId> of a game-page URL.
round_namecharacterRound label (Group Phase, Quarter-Finals, Final...).
technical_namecharacterTechnical game name '<roundId>-<groupPairingCode>-<gameNumber>'.
round_typecharacterRound type label: Group Round, Non Group Round, Super Round (getgdapgamesbycompetitionid uses the code G/NG here).
group_pairing_codecharacterGroup letter (group play) or pairing number (knockout bracket slot).
game_numbercharacterGame number within the round or pairing (a string: '1', 'A').
status_codecharacterGame status code: VALID (validated result), CLOS (closed, pre-2000 rows).
game_dayintegerGame day number within the round.
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.
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_<id>.
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_<id>.
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.
team_a_aggregated_scoreintegerTwo-leg aggregate score of team A (0 when not a two-leg tie).
team_b_aggregated_scoreintegerTwo-leg aggregate score of team B (0 when not a two-leg tie).
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_offsetdoubleVenue UTC offset at tip-off, in hours (Float64: a half-hour zone such as India +5.5 or Adelaide +9.5 is a fraction; whole hours in every sample).
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.
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).
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_idintegerQualifier window id; null otherwise.
window_codecharacterQualifier window code; null otherwise.
window_namecharacterQualifier window name; null otherwise.

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_game(game_id = 100720))
#> ── FIBA gdap_game from fiba.basketball ───────────────────────── wehoop 3.1.0 ──
#> ℹ Data updated: 2026-10-22 02:35:39 UTC
#> # A tibble: 1 × 50
#>   game_id round_name technical_name round_type    group_pairing_code game_number
#>     <int> <chr>      <chr>          <chr>         <chr>              <chr>      
#> 1  100720 Final      25283-92-A     Non Group Ro… 92                 A          
#> # ℹ 44 more variables: status_code <chr>, game_day <int>, team_a_from <chr>,
#> #   team_b_from <chr>, team_a_team_id <int>, team_a_organisation_id <int>,
#> #   team_a_code <chr>, team_a_official_name <chr>, team_a_short_name <chr>,
#> #   team_b_team_id <int>, team_b_organisation_id <int>, team_b_code <chr>,
#> #   team_b_official_name <chr>, team_b_short_name <chr>, team_a_score <int>,
#> #   team_b_score <int>, team_a_aggregated_score <int>,
#> #   team_b_aggregated_score <int>, host_city <chr>, host_country <chr>, …
# }