
Women's International Basketball Data in R: FIBA, EuroLeague Women, WNBL, W League and More
Saiem Gilani, Geoffery Hutchinson
Source:vignettes/articles/womens-international-basketball-leagues.Rmd
womens-international-basketball-leagues.Rmdwehoop reaches well beyond the WNBA and NCAA: it
wraps the official data feeds behind FIBA’s national-team tournaments,
Europe’s club competitions, and domestic women’s leagues in Australia,
Japan, France, Great Britain, Germany, Spain, Turkey and Latin
America. This article is a map of those functions: which league
each family covers, how seasons are numbered, and the function to call
for a schedule, play-by-play, box score or shot chart.
None of the code in this article is run when the site is built. Every function here calls a live source, so copy the examples into your own session.
What you’ll learn
- Which
wehoopfamily covers which league or competition. - The common pattern every family follows: list the seasons, get a schedule, then pull a game.
- How each family numbers its seasons.
- Practical rules for calling these sources politely.
The league map
| League or competition | Country or region | Prefix | Schedule | Play-by-play | Shots | Box scores |
|---|---|---|---|---|---|---|
| FIBA Women’s Basketball World Cup | Worldwide | fiba_wwc_ |
yes | yes | yes | player, team |
| Women’s Olympic Basketball Tournament | Worldwide | fiba_woly_ |
yes | yes | yes | player, team |
| FIBA Women’s EuroBasket | Europe | fiba_weurobasket_ |
yes | yes | yes | player, team |
| FIBA Women’s AmeriCup | Americas | fiba_wamericup_ |
yes | yes | yes | player, team |
| FIBA Women’s Asia Cup (Division A) | Asia and Oceania | fiba_wasiacup_ |
yes | yes | yes | player, team |
| FIBA Women’s AfroBasket | Africa | fiba_wafrobasket_ |
yes | yes | yes | player, team |
| EuroLeague Women | Europe (clubs) | fiba_elw_ |
yes | yes | yes | player, team |
| EuroCup Women | Europe (clubs) | fiba_ecw_ |
yes | yes | yes | player, team |
| Any FIBA competition | Worldwide |
fiba_gdap_, fiba_gamepage_
|
yes | yes | yes | player, team |
| WNBL | Australia |
nbl_rosetta_ (org = "wnbl", the
default) |
yes | yes | player, team, player by period | |
| NBL1 (men’s and women’s conferences) | Australia |
nbl1_ (Atrium) or nbl_rosetta_
(org = "nbl1") |
yes | yes | nbl1_shots() |
player, team |
| W League (WJBL) | Japan | wjbl_ |
yes, by month | yes | player, team, by period | |
| Ligue Feminine de Basket (LFB) | France |
lfb_ (Genius Sports) |
yes | yes | yes | player, team |
| Women’s British Basketball League (WBBL) | Great Britain |
wbbl_ (Genius Sports) |
yes | yes | yes | player, team |
| DBBL (Damen-Basketball-Bundesliga) | Germany |
scb_ (league = "dbbl", the default) |
yes | scb_game_actions() |
player, team | |
| Liga Femenina Endesa and other FEB competitions | Spain |
feb_ (group = 4, the default) |
yes | yes | yes | player |
| KBSL (Kadinlar Basketbol Super Ligi) | Turkey |
tbf_ (competition = "kbsl", the
default) |
yes | yes | yes | player, team |
| LNBP Femenil (with LNBP and Copa Value) | Mexico |
lnbp_ (Atrium) |
yes | yes | yes | player, team |
| Liga Mayor de Baloncesto | El Salvador |
lmb_ (Atrium) |
yes | yes | yes | player, team |
| LPB / LPBF | Panama |
lpb_ (Atrium) |
yes | yes | yes | player, team |
Notes on the table:
-
“Both” sites. The Atrium sites (
lnbp_,nbl1_,lmb_,lpb_) host men’s and women’s competitions side by side. List them with the*_seasons()function and pass the women’scompetition_id(orseason_id) to the schedule, standings and teams functions. - LFB coverage. Genius Sports hosts only the 2018 and 2019 LFB seasons.
-
TBF and FEB coverage. TBF serves play-by-play and
shots for finished games from the 2025-26 season. FEB
groupis the site’s menu group (1 Primera FEB, 2 Segunda FEB, 4 Liga Femenina Endesa, 9 and 10 LF-2, 67 LF Challenge, 73 Copa de Espana, 74 Liga U), not a competition id. - Shot charts. The WNBL Rosetta, W League and SCB feeds have no shot locations.
Each family’s reference page lists every function and its returned columns: FIBA, FIBA competitions, Genius Sports, Genius competitions, Atrium, Atrium competitions, NBL / WNBL (Rosetta), SCB (DBBL), FEB, TBF and WJBL. The whole group is the International Basketball section of the reference.
How are the families built?
Most of these families sit on a handful of shared data engines:
-
FIBA GDAP (
fiba_gdap_*()) is FIBA’s data API for national-team events and FIBA club competitions;fiba_gamepage_*()reads the per-game pages of fiba.basketball. -
Genius Sports (
genius_*()) hosts LiveStats and widget feeds for many federations;orgpicks the league. -
Atrium (
atrium_*(), Sportradar) runs league stats sites;website_idpicks the site. - The rest (
nbl_rosetta_*(),scb_*(),feb_*(),tbf_*(),wjbl_*()) each wrap one league’s own feed.
The per-competition prefixes (fiba_wwc_,
wbbl_, lnbp_ and so on) are thin aliases.
fiba_wwc_schedule() is fiba_gdap_schedule()
with the Women’s World Cup filled in; wbbl_pbp() is
genius_pbp(); lnbp_shots() is
atrium_shots() with the LNBP site id. Use the alias when it
exists. Use the base engine when you need a competition without one.
Every alias family follows the same three steps:
- List what exists:
*_editions(),*_seasons()or*_competitions(). - Get the schedule for a season, which returns game ids.
- Pass a game id to
*_pbp(),*_shots(),*_player_box()or*_team_box().
How are seasons numbered?
Season labels follow the convention of each source, so check before you loop.
| Family |
season means |
Example |
|---|---|---|
FIBA tournaments (fiba_wwc_, fiba_woly_,
fiba_weurobasket_, fiba_wamericup_,
fiba_wasiacup_, fiba_wafrobasket_) |
The event year |
2024 is Paris 2024 |
EuroLeague Women, EuroCup Women (fiba_elw_,
fiba_ecw_) |
The ending year |
2025 is 2024-25 |
| WBBL, LFB | The ending year |
2026 is 2025-26 |
WNBL (nbl_rosetta_) |
The ending year |
2026 is 2025-26 |
| NBL1, LNBP, LMB, LPB | The calendar year | 2025 |
W League (wjbl_) |
The ending year |
2026 is 2025-26 |
DBBL (scb_) |
The ending year |
2026 is 2025-26 |
| FEB, TBF | The ending year |
2026 is 2025-26 |
FIBA: World Cup, Olympics and continental championships
library(wehoop)
# Every edition of the Women's World Cup the API knows about
fiba_wwc_editions()
# The 2022 tournament (Sydney)
wwc_2022 <- fiba_wwc_schedule(season = 2022)
# One game: play-by-play, shot chart and box scores
game_id <- wwc_2022$game_id[1]
fiba_wwc_pbp(game_id, season = 2022)
fiba_wwc_shots(game_id, season = 2022)
fiba_wwc_player_box(game_id, season = 2022)
# Final standings and teams
fiba_wwc_standings(season = 2022)
fiba_wwc_teams(season = 2022)The Olympics and the continental championships work the same way:
fiba_woly_schedule(season = 2024) # Paris 2024
fiba_weurobasket_schedule(season = 2025)
fiba_wamericup_schedule(season = 2025)
fiba_wasiacup_schedule(season = 2025)
fiba_wafrobasket_schedule(season = 2025)EuroLeague Women and EuroCup Women
FIBA runs both European club competitions, so they share the FIBA
aliases. Their season is the year the season ends.
elw <- fiba_elw_schedule(season = 2025) # 2024-25
fiba_elw_standings(season = 2025)
fiba_elw_pbp(elw$game_id[1], season = 2025)
fiba_ecw_schedule(season = 2025) # EuroCup Women 2024-25For any FIBA competition without an alias, find its edition and call
the base engine directly: fiba_gdap_editions() takes a
competition family id and returns the editions;
fiba_gdap_schedule(comp = ...) takes an edition id.
Australia: WNBL and NBL1
The Rosetta functions default to the WNBL.
nbl_rosetta_seasons() # WNBL seasons
wnbl <- nbl_rosetta_matches(season = 2026) # 2025-26
match_id <- wnbl$match_id[1]
nbl_rosetta_match_pbp(match_id)
nbl_rosetta_match_player_box(match_id)
nbl_rosetta_standings(season = 2026)
# NBL1, the second tier, has women's conferences on two feeds
nbl_rosetta_matches(season = 2025, org = "nbl1")
nbl1_seasons() # Atrium site: pick a women's competition_id hereJapan: the W League
The W League schedule is paged by month. List the months, then loop.
wjbl_leagues()
months <- wjbl_game_months(season = 2026)
games <- wjbl_schedule(season = 2026, game_month = months$game_month[1])
id <- games$play_schedule_id[1]
wjbl_pbp(id)
wjbl_box_score(id)
wjbl_team_box_score(id)The source is in Japanese (team names, phases, play descriptions); the column documentation translates the vocabulary.
France and Great Britain: LFB and WBBL
Both run on Genius Sports.
wbbl_competitions()
wbbl_sched <- wbbl_schedule(season = 2026)
wbbl_pbp(wbbl_sched$match_id[1])
wbbl_shots(wbbl_sched$match_id[1])
lfb_schedule(season = 2019) # Genius hosts the 2018 and 2019 LFB seasonsgenius_competitions(org = ...) and
genius_schedule(org, comp_id) reach other Genius-hosted
leagues.
Germany, Spain and Turkey
# Germany: DBBL (the default league for the scb_ family)
dbbl <- scb_games(season = 2026)
scb_game_actions(dbbl$game_id[1])
scb_game_players(dbbl$game_id[1])
scb_standings(season = 2026)
# Spain: Liga Femenina Endesa (group 4, the default)
lf <- feb_schedule(season = 2026)
feb_pbp(lf$game_id[1])
feb_shots(lf$game_id[1])
feb_player_box(lf$game_id[1])
# Turkey: KBSL (the default competition)
kbsl <- tbf_schedule(season = 2026)
tbf_pbp(kbsl$match_id[1])
tbf_shots(kbsl$match_id[1])
tbf_standings(season = 2026)Latin America: Mexico, El Salvador and Panama
These Atrium sites carry men’s and women’s competitions. Find the women’s competition first.
lnbp_seasons() # look for the LNBP Femenil competition_id
femenil <- lnbp_schedule(season = 2025, competition_id = "<competition_id>")
lnbp_pbp(femenil$fixture_id[1])
lnbp_shots(femenil$fixture_id[1])
lmb_seasons() # El Salvador
lpb_seasons() # Panama (LPB and the women's LPBF)How do I call these sources politely?
- Go slowly. The international runtimes wait at least one second between requests to the same host. Do not wrap them in parallel loops.
-
Expect classed errors. A game with no data raises a
wehoop_no_datacondition, a bad argument raiseswehoop_bad_request, and anything else raiseswehoop_asset_fetch. Wrap loops intryCatch()so one missing game does not stop the run. - Finished games only. Several feeds (TBF, the W League) serve only final games and check that the answer matches the game you asked for.
- Check the terms before you republish. Some sources are unofficial uses of public sites. The SCB (BBL and DBBL) and W League reference pages quote the relevant site notices; read them before you store or share the data.
-
No release files. Unlike the WNBA and NCAA, these
leagues have no
load_*()release loaders. Save what you pull.
Where to go next
- Getting Started: the package layout and the glossary.
-
Shot
charts: the plotting recipes there work for any
*_shots()output once the coordinates are on a court frame. FIBA courts are drawn in meters withsportyR::geom_basketball("fiba"). - Advanced metrics: the box score formulas apply to any league’s box scores.
- The International Basketball section of the function reference.