Skip to main content

International basketball

Twenty-four international basketball families live under sportsdataverse.basketball.<home>. A home is named for a provider family, not always a league: some providers serve many competitions, and some leagues are served by a provider that also serves others. The international competitions ESPN covers are separate, in the ESPN league modules (fiba, olympics_mbk, olympics_wbk, nbl).

The homes​

HomeProviderCoversFunction prefix
fiba_hubFIBA's digital API and game pagesFIBA competitions and national teamsfiba_gdap_*, fiba_gamepage_*, and per competition (fiba_eurobasket_*, fiba_wc_*, fiba_bcl_*, ...)
geniusGenius Sports LiveStatsmany competitions that publish through LiveStats, including the WBBLgenius_*, wbbl_*
atriumSportradar Atriummany competitionsatrium_*
nbl_auNBL Australia (Rosetta)NBL Australianbl_rosetta_*
febSpanish federation (FEB)the FEB competitionsfeb_*
scbthe German leagues' stats providerBBL and DBBLscb_*
lbaLega BasketSerie A (Italy)lba_*
acbLiga ACBLiga Endesa (Spain)acb_*
ibbaIsrael Basketball Associationthe Israeli leaguesibba_*
wjblW Leaguethe Japanese women's leaguewjbl_*
vtbInfobasket and the league siteVTB United Leaguevtb_infobasket_* and others
kblKBLthe Korean Basketball Leaguekbl_*
bleagueB.LEAGUEthe Japanese men's leaguebleague_*
kzsKZSthe Slovenian leagueskzs_*
lklLKLthe Lithuanian leaguelkl_*
tbfTurkish federation (TBF)the Turkish leaguestbf_*
ceblCEBL Stats Hubthe Canadian Elite Basketball Leaguecebl_*
abaABA Leaguethe Adriatic leagueaba_*
easlEASL, through an unofficial proxythe East Asia Super Leagueeasl_*
bnxtSportpressthe BNXT Leaguesportpress_*
tpblTPBLthe Taiwan Professional Basketball Leaguetpbl_*
plgP. LEAGUE+ site and its Preciser feedP. LEAGUE+ (Taiwan)pleague_*, pleague_preciser_*
cbaCBAthe Chinese Basketball Associationcba_*
dblSportalityBasketligaen (Denmark)sportality_*

Two consequences of naming homes for providers: the function prefix is the provider's (sportpress_schedule in bnxt, sportality_pbp in dbl, nbl_rosetta_match_pbp in nbl_au), and one home can reach several competitions through a league or competition argument (scb_games(league="dbbl"), genius_competition_games(comp_id), atrium_fixtures(website_id)).

What each home covers​

Most homes have a schedule or results, standings, box scores and play-by-play; many add shot charts, leaders and player pages. Each also exports its parsers (parse_<home>_*). The league pages list every function with its parameters and Returns table: FIBA, Genius, Atrium, CEBL and the rest under Basketball in the sidebar.

Shared conventions​

  • Seasons are END years at the public API (season=2026 is 2025-26 for a winter league; a summer league's season is its calendar year). Each runtime maps it to the provider's own key.
  • Polite pacing. Requests go through one throttled session that spaces them at least one second apart.
  • Proxies are optional and named. A few providers block some networks; set GENIUS_PROXY or CBA_PROXY to route those families through a proxy. The value is never logged.
  • Some sites need curl_cffi. Live FIBA game pages and P. LEAGUE+ sit behind bot protection, so their runtimes use curl_cffi (pip install curl_cffi, or the all extra).
  • Tidy by default. Wrappers return a polars DataFrame; return_parsed=False gives the raw payload and return_as_pandas=True gives pandas.
from sportsdataverse.basketball.cebl import cebl_games, cebl_standings
from sportsdataverse.basketball.easl import easl_standings

standings = cebl_standings(season=2025) # CEBL plays in summer: the 2025 season
games = cebl_games(season=2025)
east_asia = easl_standings(season=2026) # 2025-26
print(standings.height, games.height, east_asia.height)

Several of these sources are unofficial uses of public sites, and some docstrings carry a release flag saying the data may be used for reference but not redistributed. Read the function's docstring before republishing anything.