Skip to main content

BNXT — BNXT League Sportpress API (bnxt.sportpress.info, Belgium and the Netherlands) — Player

sportpress_player_rankings​

Qualified-player per-game leaders in nine categories (one row per player and category).

Endpoint URL: GET https://bnxt.sportpress.info/api/v1/player/average-rankings/{competition_id}

Valid URL: https://bnxt.sportpress.info/api/v1/player/average-rankings/24

API ParameterPythonPatternRequiredNullableDescription
competition_idcompetition_idYRequired. Competition id (integer), ONE per season of the league: 24 = 2025-26, 25 = 2026-27 (sportpress_phases maps a season to it).
phase_idphase_idYRestrict to one phase (integer), from sportpress_phases. Omitted = every phase.
limitlimitYCap each ranking list at this many rows. Omitted = the complete lists.
typetypeYReturn one ranking category only (e.g. points); all or omitted = the nine categories.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
competition_idintegerCompetition id (key space: sportpress competitions): ONE season of the league (24 = 2025-26, 25 = 2026-27). Not the season number. The key of the standings, ranking, slider and box routes.
categorycharacterRanking category: efficiency, points, total_rebound, block, assist, steal, two_point_percent, three_point_percent or free_throw_percent.
rankintegerPlace in the category list, 1 = the leader (the list is sorted best first).
roster_idintegerRoster id (key space: sportpress roster entries): one player on one competition team in one season, so a player has a new roster_id for every team and season. player_id is the person.
player_idintegerPlayer id (key space: sportpress persons): stable across seasons and teams, distinct from roster_id. Not a Genius or FIBA person id.
first_namecharacterGiven name of the player as entered in the CMS.
last_namecharacterFamily name of the player as entered in the CMS.
nationality_codecharacterNationality code in FIBA style (USA, BEL, NED): DIRTY, with lower-case variants, '/'-joined pairs (USA/BEL), the empty string and 'HOL'; normalise before joining.
birth_datecharacterDate of birth as shown on the public player page; null when unknown.
competition_team_idintegerCompetition-team id (key space: sportpress competition teams): a team in ONE competition, so a club has a new id every season (Antwerp = 3 in 2021-22, 506 in 2025-26, 541 in 2026-27). uu_team_id is the stable club key.
teamcharacterTeam display name including the sponsor; varies with language and playoff suffixes: never join on it.
team_short_namecharacterThree-letter club code (ANT, MON, ...), stable across seasons in the samples.
valuenumericThe player's per-game mean (or percentage 0-100) in the row's category.
throw_madenumericField goals made per game; filled in the three percentage categories only.
throw_attemptednumericField goals attempted per game; filled in the three percentage categories only.

return_parsed=False — the raw body (dict): {'data': ...} (the settings object for the site config, the nine-category object for the rankings) with contact fields dropped, plus _request (the season, competition, team, roster or game ids asked for).

Example​

sportpress_player_rankings(competition_id=24)

Last validated n/a.

sportpress_player_career​

Season-by-season per-game averages of the player of a roster entry.

Endpoint URL: GET https://bnxt.sportpress.info/api/v1/player/career-averages/{roster_id}

Valid URL: https://bnxt.sportpress.info/api/v1/player/career-averages/11193

API ParameterPythonPatternRequiredNullableDescription
roster_idroster_idYRequired. Roster id (integer): one player on one team in one season; from the roster frames.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
roster_idintegerRoster id the career was asked for; the rows are the person's seasons, each with its own roster.
competition_idintegerCompetition id of the season row.
seasonintegerSeason END year of the row.
competition_namecharacterCompetition name of the season row.
competition_team_idintegerCompetition-team id (key space: sportpress competition teams): a team in ONE competition, so a club has a new id every season (Antwerp = 3 in 2021-22, 506 in 2025-26, 541 in 2026-27). uu_team_id is the stable club key.
teamcharacterTeam display name including the sponsor; varies with language and playoff suffixes: never join on it.
team_short_namecharacterThree-letter club code (ANT, MON, ...), stable across seasons in the samples.
club_idintegerCountry of the team (key space: sportpress clubs): 1 = Belgium, 2 = Netherlands. The provider calls the country a club.
club_namecharacterCountry name in English, Belgium or Netherlands.
positioncharacterPlaying position; null in every sample.
jerseycharacterShirt number as text; the box score sends it as an integer, so a zero-padded '00' is already lost there.
played_gamesintegerGames played in the season.
games_startedintegerGames started (a count, not a mean).
minutenumericMinutes played; for a team total, the sum over its players (200 + 25 per overtime). Per-game mean over the games played (fractional).
foulnumericPersonal fouls committed. Per-game mean over the games played (fractional).
defensive_foulnumericFouls DRAWN (suffered), despite the name: equals the opponent's foul count up to scorer corrections. Per-game mean over the games played (fractional).
dunk_madenumericDunks made (a subset of the two-point field goals). Per-game mean over the games played (fractional).
dunk_allnumericDunks attempted. Per-game mean over the games played (fractional).
dunk_percentnumericDunk percentage 0-100; 0 when none were attempted. Per-game mean over the games played (fractional).
two_point_madenumericTwo-point field goals made. Per-game mean over the games played (fractional).
two_point_allnumericTwo-point field goals attempted. Per-game mean over the games played (fractional).
two_point_percentnumericTwo-point percentage 0-100. Per-game mean over the games played (fractional).
three_point_madenumericThree-point field goals made. Per-game mean over the games played (fractional).
three_point_allnumericThree-point field goals attempted. Per-game mean over the games played (fractional).
three_point_percentnumericThree-point percentage 0-100. Per-game mean over the games played (fractional).
throw_madenumericAll field goals made, two- plus three-pointers (the provider calls them 'throw'). Per-game mean over the games played (fractional).
throw_allnumericAll field goals attempted, two- plus three-pointers (the provider calls them 'throw'). Per-game mean over the games played (fractional).
throw_percentnumericField-goal percentage 0-100. Per-game mean over the games played (fractional).
free_throw_madenumericFree throws made. Per-game mean over the games played (fractional).
free_throw_allnumericFree throws attempted. Per-game mean over the games played (fractional).
free_throw_percentnumericFree-throw percentage 0-100. Per-game mean over the games played (fractional).
offensive_reboundnumericOffensive rebounds. Per-game mean over the games played (fractional).
defensive_reboundnumericDefensive rebounds. Per-game mean over the games played (fractional).
total_reboundnumericTotal rebounds (offensive plus defensive). Per-game mean over the games played (fractional).
blocknumericShots blocked by the player. Per-game mean over the games played (fractional).
block_againstnumericOwn shots blocked by an opponent. Per-game mean over the games played (fractional).
turnovernumericTurnovers committed. Per-game mean over the games played (fractional).
stealnumericSteals (balls taken from an opponent). Per-game mean over the games played (fractional).
assistnumericAssists (passes leading directly to a made basket). Per-game mean over the games played (fractional).
pointsnumericPoints scored (2 x two-pointers + 3 x three-pointers + free throws). Per-game mean over the games played (fractional).
valuenumericEfficiency rating (PIR with fouls drawn): points + rebounds + assists + steals + blocks + fouls drawn - missed field goals - missed free throws - turnovers. Per-game mean over the games played (fractional).

return_parsed=False — the raw body (dict): {'data': ...} (the settings object for the site config, the nine-category object for the rankings) with contact fields dropped, plus _request (the season, competition, team, roster or game ids asked for).

Example​

sportpress_player_career(roster_id=11193)

Last validated n/a.

sportpress_player_games​

Game-by-game box lines of a roster entry (including games with 0 minutes).

Endpoint URL: GET https://bnxt.sportpress.info/api/v1/boxscore/player/season-games/{roster_id}

Valid URL: https://bnxt.sportpress.info/api/v1/boxscore/player/season-games/11193

API ParameterPythonPatternRequiredNullableDescription
roster_idroster_idYRequired. Roster id (integer): one player on one team in one season; from the roster frames.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
roster_idintegerRoster id the lines were asked for.
game_idintegerGame id (key space: sportpress games), unique across seasons: the key of every game route.
game_timecharacterTip-off as a naive datetime. The source carries no offset; the league's local time is assumed and unverified.
statuscharacterGame status: finished, or ready for an upcoming game.
competition_idintegerCompetition id (key space: sportpress competitions): ONE season of the league (24 = 2025-26, 25 = 2026-27). Not the season number. The key of the standings, ranking, slider and box routes.
seasonintegerSeason END year of the game's competition.
phase_idintegerPhase id (key space: sportpress phases), a stage of one competition such as the regular season or the playoffs; new every season.
phase_namecharacterPhase name as entered in the CMS ('Regular season 2026-27').
round_namecharacterRound label as entered in the CMS; often empty.
round_priorityintegerSort order of the round within the phase (provider's priority); meaning of the values is unverified.
period_namecharacterName of the period the game is in or ended in; 'Extra2' means the second overtime.
arenacharacterName of the arena where the game is played.
home_competition_team_idintegerHome side. Competition-team id (key space: sportpress competition teams): a team in ONE competition, so the same club has a new id every season (Antwerp = 3 in 2021-22, 506 in 2025-26, 541 in 2026-27). Joins competitors, rosters, box scores, film and standings. The stable club key across seasons is uu_team_id.
home_teamcharacterHome side. Display name incl. the sponsor. Teams of the playoff phases carry a ' playoff' suffix (2025-26), and standings names vary with X-Localization ('Partena Professional Okapi Aalst Playoff' (en) vs 'Okapi Aalst Playoff' (nl, fr)): never join on it.
home_team_short_namecharacterHome side. Three-letter club code (CHA, OOS, ANT, MON, LIM, ...), stable across seasons in the samples.
home_scoreintegerHome side. Final points of the side, including overtime.
away_competition_team_idintegerAway side. Competition-team id (key space: sportpress competition teams): a team in ONE competition, so the same club has a new id every season (Antwerp = 3 in 2021-22, 506 in 2025-26, 541 in 2026-27). Joins competitors, rosters, box scores, film and standings. The stable club key across seasons is uu_team_id.
away_teamcharacterAway side. Display name incl. the sponsor. Teams of the playoff phases carry a ' playoff' suffix (2025-26), and standings names vary with X-Localization ('Partena Professional Okapi Aalst Playoff' (en) vs 'Okapi Aalst Playoff' (nl, fr)): never join on it.
away_team_short_namecharacterAway side. Three-letter club code (CHA, OOS, ANT, MON, LIM, ...), stable across seasons in the samples.
away_scoreintegerAway side. Final points of the side, including overtime.
competition_team_idintegerCompetition-team id the player played for in the game.
starterlogicalTrue when the player started the game.
jerseycharacterShirt number as text; the box score sends it as an integer, so a zero-padded '00' is already lost there.
minuteintegerMinutes played; for a team total, the sum over its players (200 + 25 per overtime).
foulintegerPersonal fouls committed.
defensive_foulintegerFouls DRAWN (suffered), despite the name: equals the opponent's foul count up to scorer corrections.
dunk_madeintegerDunks made (a subset of the two-point field goals).
dunk_allintegerDunks attempted.
dunk_percentnumericDunk percentage 0-100; 0 when none were attempted.
two_point_madeintegerTwo-point field goals made.
two_point_allintegerTwo-point field goals attempted.
two_point_percentnumericTwo-point percentage 0-100.
three_point_madeintegerThree-point field goals made.
three_point_allintegerThree-point field goals attempted.
three_point_percentnumericThree-point percentage 0-100.
throw_madeintegerAll field goals made, two- plus three-pointers (the provider calls them 'throw').
throw_allintegerAll field goals attempted, two- plus three-pointers (the provider calls them 'throw').
throw_percentnumericField-goal percentage 0-100.
free_throw_madeintegerFree throws made.
free_throw_allintegerFree throws attempted.
free_throw_percentnumericFree-throw percentage 0-100.
offensive_reboundintegerOffensive rebounds.
defensive_reboundintegerDefensive rebounds.
total_reboundintegerTotal rebounds (offensive plus defensive).
blockintegerShots blocked by the player.
block_againstintegerOwn shots blocked by an opponent.
turnoverintegerTurnovers committed.
stealintegerSteals (balls taken from an opponent).
assistintegerAssists (passes leading directly to a made basket).
pointsintegerPoints scored (2 x two-pointers + 3 x three-pointers + free throws).
valueintegerEfficiency rating (PIR with fouls drawn): points + rebounds + assists + steals + blocks + fouls drawn - missed field goals - missed free throws - turnovers.

return_parsed=False — the raw body (dict): {'data': ...} (the settings object for the site config, the nine-category object for the rankings) with contact fields dropped, plus _request (the season, competition, team, roster or game ids asked for).

Example​

sportpress_player_games(roster_id=11193)

Last validated n/a.