Skip to main content

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

sportpress_game_slider​

The latest 14 finished games of a competition plus every upcoming game, with the Genius match id.

Endpoint URL: GET https://bnxt.sportpress.info/api/v1/schedule/game-slider/{competition_id}

Valid URL: https://bnxt.sportpress.info/api/v1/schedule/game-slider/25

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).

Returns​

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

col_nametypedescription
game_idintegerGame id (key space: sportpress games), unique across seasons: the key of every game route.
genius_idintegerGenius Sports LiveStats match id (organisation BNXT): the join to the genius family. Upcoming games already carry one; null for the 2020-21 competition.
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 (2026 = 2025-26), the sdv convention and the API's own season key.
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').
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.

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_game_slider(competition_id=25)

Last validated n/a.

sportpress_game_find​

One game: teams, scores, phase, venue and the neighbouring game ids.

Endpoint URL: GET https://bnxt.sportpress.info/api/v1/schedule/find/{game_id}

Valid URL: https://bnxt.sportpress.info/api/v1/schedule/find/11295

API ParameterPythonPatternRequiredNullableDescription
game_idgame_idYRequired. Game id (integer), unique across seasons; from sportpress_schedule (game_id).

Returns​

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

col_nametypedescription
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 (2026 = 2025-26), the sdv convention and the API's own season key.
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.
last_game_idintegerLatest finished meeting of the same two teams in the competition, which can be LATER than this game; null when none.
next_game_idintegerNext meeting of the same two teams; null in every sample.

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_game_find(game_id=11295)

Last validated n/a.

sportpress_game_periods​

Points each side scored in each period of a game (periods 5 and up are overtimes).

Endpoint URL: GET https://bnxt.sportpress.info/api/v1/schedule/find/{game_id}

Valid URL: https://bnxt.sportpress.info/api/v1/schedule/find/11295

API ParameterPythonPatternRequiredNullableDescription
game_idgame_idYRequired. Game id (integer), unique across seasons; from sportpress_schedule (game_id).

Returns​

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

col_nametypedescription
game_idintegerGame id (key space: sportpress games), unique across seasons: the key of every game route.
team_sidecharacterSide of the game the row belongs to: home or away (the provider's is_home, or side 1 / 2).
competition_team_idintegerCompetition-team id of the side.
periodintegerPeriod number: 1-4 are the quarters, 5 and up are overtimes (5 = first overtime).
scoreintegerPoints the side scored IN that period (not cumulative).

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_game_periods(game_id=11295)

Last validated n/a.

sportpress_game_overview​

Team totals of both sides of a finished game.

Endpoint URL: GET https://bnxt.sportpress.info/api/v1/schedule/overview/{game_id}

Valid URL: https://bnxt.sportpress.info/api/v1/schedule/overview/11295

API ParameterPythonPatternRequiredNullableDescription
game_idgame_idYRequired. Game id (integer), unique across seasons; from sportpress_schedule (game_id).

Returns​

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

col_nametypedescription
game_idintegerGame id the overview was asked for (the body does not echo it).
team_sidecharacterSide of the game the row belongs to: home or away (the provider's is_home, or side 1 / 2).
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.
scoreintegerFinal score of the side.
minuteintegerThe team's total: minutes played; for a team total, the sum over its players (200 + 25 per overtime).
foulintegerThe team's total: personal fouls committed.
defensive_foulintegerThe team's total: fouls DRAWN (suffered), despite the name: equals the opponent's foul count up to scorer corrections.
dunk_madeintegerThe team's total: dunks made (a subset of the two-point field goals).
dunk_allintegerThe team's total: dunks attempted.
dunk_percentnumericThe team's total: dunk percentage 0-100; 0 when none were attempted.
two_point_madeintegerThe team's total: two-point field goals made.
two_point_allintegerThe team's total: two-point field goals attempted.
two_point_percentnumericThe team's total: two-point percentage 0-100.
three_point_madeintegerThe team's total: three-point field goals made.
three_point_allintegerThe team's total: three-point field goals attempted.
three_point_percentnumericThe team's total: three-point percentage 0-100.
throw_madeintegerThe team's total: all field goals made, two- plus three-pointers (the provider calls them 'throw').
throw_allintegerThe team's total: all field goals attempted, two- plus three-pointers (the provider calls them 'throw').
throw_percentnumericThe team's total: field-goal percentage 0-100.
free_throw_madeintegerThe team's total: free throws made.
free_throw_allintegerThe team's total: free throws attempted.
free_throw_percentnumericThe team's total: free-throw percentage 0-100.
offensive_reboundintegerThe team's total: offensive rebounds.
defensive_reboundintegerThe team's total: defensive rebounds.
total_reboundintegerThe team's total: total rebounds (offensive plus defensive).
blockintegerThe team's total: shots blocked by the player.
block_againstintegerThe team's total: own shots blocked by an opponent.
turnoverintegerThe team's total: turnovers committed.
stealintegerThe team's total: steals (balls taken from an opponent).
assistintegerThe team's total: assists (passes leading directly to a made basket).
pointsintegerThe team's total: points scored (2 x two-pointers + 3 x three-pointers + free throws).
valueintegerThe team's total: efficiency rating (PIR with fouls drawn): points + rebounds + assists + steals + blocks + fouls drawn - missed field goals - missed free throws - turnovers.
plusminusintegerThe team's total: plus/minus: the score margin while the player (or team) was on court; for a team total it is the game margin.

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_game_overview(game_id=11295)

Last validated n/a.

sportpress_game_top_performers​

The top performer of each side of a finished game, with his full line.

Endpoint URL: GET https://bnxt.sportpress.info/api/v1/schedule/overview/{game_id}

Valid URL: https://bnxt.sportpress.info/api/v1/schedule/overview/11295

API ParameterPythonPatternRequiredNullableDescription
game_idgame_idYRequired. Game id (integer), unique across seasons; from sportpress_schedule (game_id).

Returns​

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

col_nametypedescription
game_idintegerGame id the overview was asked for (the body does not echo it).
team_sidecharacterSide of the game the row belongs to: home or away (the provider's is_home, or side 1 / 2).
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.
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.
jerseycharacterShirt number as text.
starterlogicalTrue when the player started the game.
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_game_top_performers(game_id=11295)

Last validated n/a.

sportpress_game_leaders​

The game leader of each side in every statistic (one row per side and statistic).

Endpoint URL: GET https://bnxt.sportpress.info/api/v1/schedule/overview/{game_id}

Valid URL: https://bnxt.sportpress.info/api/v1/schedule/overview/11295

API ParameterPythonPatternRequiredNullableDescription
game_idgame_idYRequired. Game id (integer), unique across seasons; from sportpress_schedule (game_id).

Returns​

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

col_nametypedescription
game_idintegerGame id the overview was asked for (the body does not echo it).
team_sidecharacterSide of the game the row belongs to: home or away (the provider's is_home, or side 1 / 2).
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.
statcharacterStatistic the leader leads, in the provider's column name (points, total_rebound, value, ...).
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.
valuenumericThe leader's count (or percentage) in that statistic in this game.

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_game_leaders(game_id=11295)

Last validated n/a.

sportpress_game_box​

Per-player box score of a finished game (one row per player line).

Endpoint URL: GET https://bnxt.sportpress.info/api/v1/boxscore/game/{competition_id}/{game_id}

Valid URL: https://bnxt.sportpress.info/api/v1/boxscore/game/25/11295

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).
game_idgame_idYRequired. Game id (integer), unique across seasons; from sportpress_schedule (game_id).

Returns​

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

col_nametypedescription
game_idintegerGame id the box score was asked for (the body does not echo it).
competition_idintegerCompetition id the box score was asked for; checked against the game.
team_sidecharacterSide of the game the row belongs to: home or away (the provider's is_home, or side 1 / 2).
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.
roster_idintegerRoster id of the line; null when the line has no player (15 of 14,142 sampled lines).
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.
position_idintegerPlaying position id (key space: sportpress positions); null on 21 of 14,142 sampled lines.
positioncharacterPlaying position: point_guard, shooting_guard, small_forward, power_forward or center.
starterlogicalTrue when the player was in the starting five.
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.
plusminusintegerPlus/minus: the score margin while the player (or team) was on court; for a team total it is the game margin.

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_game_box(competition_id=25, game_id=11295)

Last validated n/a.

sportpress_game_team_box​

Team totals of both sides from the box score of a finished game.

Endpoint URL: GET https://bnxt.sportpress.info/api/v1/boxscore/game/{competition_id}/{game_id}

Valid URL: https://bnxt.sportpress.info/api/v1/boxscore/game/25/11295

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).
game_idgame_idYRequired. Game id (integer), unique across seasons; from sportpress_schedule (game_id).

Returns​

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

col_nametypedescription
game_idintegerGame id the box score was asked for (the body does not echo it).
competition_idintegerCompetition id the box score was asked for; checked against the game.
team_sidecharacterSide of the game the row belongs to: home or away (the provider's is_home, or side 1 / 2).
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.
minuteintegerThe team's total: minutes played; for a team total, the sum over its players (200 + 25 per overtime).
foulintegerThe team's total: personal fouls committed.
defensive_foulintegerThe team's total: fouls DRAWN (suffered), despite the name: equals the opponent's foul count up to scorer corrections.
dunk_madeintegerThe team's total: dunks made (a subset of the two-point field goals).
dunk_allintegerThe team's total: dunks attempted.
dunk_percentnumericThe team's total: dunk percentage 0-100; 0 when none were attempted.
two_point_madeintegerThe team's total: two-point field goals made.
two_point_allintegerThe team's total: two-point field goals attempted.
two_point_percentnumericThe team's total: two-point percentage 0-100.
three_point_madeintegerThe team's total: three-point field goals made.
three_point_allintegerThe team's total: three-point field goals attempted.
three_point_percentnumericThe team's total: three-point percentage 0-100.
throw_madeintegerThe team's total: all field goals made, two- plus three-pointers (the provider calls them 'throw').
throw_allintegerThe team's total: all field goals attempted, two- plus three-pointers (the provider calls them 'throw').
throw_percentnumericThe team's total: field-goal percentage 0-100.
free_throw_madeintegerThe team's total: free throws made.
free_throw_allintegerThe team's total: free throws attempted.
free_throw_percentnumericThe team's total: free-throw percentage 0-100.
offensive_reboundintegerThe team's total: offensive rebounds.
defensive_reboundintegerThe team's total: defensive rebounds.
total_reboundintegerThe team's total: total rebounds (offensive plus defensive).
blockintegerThe team's total: shots blocked by the player.
block_againstintegerThe team's total: own shots blocked by an opponent.
turnoverintegerThe team's total: turnovers committed.
stealintegerThe team's total: steals (balls taken from an opponent).
assistintegerThe team's total: assists (passes leading directly to a made basket).
pointsintegerTeam points in the box score; can differ from the schedule final score (about 18 of 1,246 sampled team boxes, by 2-21 points).
valueintegerThe team's total: efficiency rating (PIR with fouls drawn): points + rebounds + assists + steals + blocks + fouls drawn - missed field goals - missed free throws - turnovers.
plusminusintegerThe team's total: plus/minus: the score margin while the player (or team) was on court; for a team total it is the game margin.

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_game_team_box(competition_id=25, game_id=11295)

Last validated n/a.

sportpress_game_film​

Play-by-play ('film') of a finished game with court x/y (2021-22 and 2026-27 only).

Endpoint URL: GET https://bnxt.sportpress.info/api/v1/film/game/{competition_id}/{game_id}

Valid URL: https://bnxt.sportpress.info/api/v1/film/game/25/11295

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).
game_idgame_idYRequired. Game id (integer), unique across seasons; from sportpress_schedule (game_id).

Returns​

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

col_nametypedescription
game_idintegerGame id the film was asked for (the body does not echo it).
competition_idintegerCompetition id the film was asked for; checked against the game.
orderintegerEvent sequence number in the game, strictly increasing from 0.
periodintegerPeriod of the event: 1-4 quarters, 5 and up overtimes.
minuteintegerWhole minutes ELAPSED in the period (not clock remaining).
secondintegerSeconds elapsed within that minute.
team_sidecharacterSide of the game the row belongs to: home or away (the provider's is_home, or side 1 / 2).
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.
event_codeintegerProvider event code: 1000 made shot, 1001 missed shot, 1002 defensive rebound, 1003 offensive rebound, 1004 steal, 1005 turnover, 1006 foul drawn, 1007 foul committed, 1008 assist, 1009 block, 1011 substitution, 1101 period marker; 2xxx team events (meaning unverified).
event_subcodeintegerProvider sub-type of the event: for shots 1, 2 and 5 = two-pointer, 3 = three-pointer, 4 = free throw; turnover and foul sub-types are unnamed by the provider.
xintegerCourt x position of the event in the provider's integer court coordinates (0 on events with none); the coordinate system and orientation are unverified.
yintegerCourt y position of the event in the provider's integer court coordinates (0 on events with none); the coordinate system and orientation are unverified.
home_scoreintegerRunning home score AFTER the event; the maximum is the final score.
away_scoreintegerRunning away score AFTER the event; the maximum is the final score.
player_idintegerPlayer id of the actor; null on team events and period markers.
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.
player2_idintegerPlayer id of the second player; filled on substitutions only.
player2_first_namecharacterGiven name of the second player; substitutions only.
player2_last_namecharacterFamily name of the second player; substitutions 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_game_film(competition_id=25, game_id=11295)

Last validated n/a.