Skip to contents

UI string tables of the site in English, French and Dutch (one row per language and key).

Endpoint: GET https://bnxt.sportpress.info/api/v1/server-config

Usage

sportpress_ui_strings()

Value

A hoopR_data tibble: UI string tables of the site in English, French and Dutch (one row per language and key). An empty valid answer raises hoopR_no_data; the columns are always these, in this order (sportsdataverse-py sportpress_ui_strings):

col_nametypedescription
languagecharacterISO 639-1 code of the UI language: en, fr (French) or nl (Dutch).
keycharacterDotted UI string key such as 'statistics.individual.points'; 302 keys per language.
textcharacterThe UI text in that language; 11 keys label statistics columns, the rest are menus and buttons.

Details

  • Unofficial and unsupported: the Sportpress API is the JSON backend of bnxtleague.com, not a documented public API. Every route needs a header key; it is public (hard-coded in the site bundle), bnxt_runtime reads it from the bundle at run time, falls back to a documented value when the bundle cannot be read, and never prints or logs it. A 401 raises AssetFetchError (key rotated?). robots.txt allows everything; requests are spaced at least 1 s apart.

  • Season key: the END year (season=2026 is 2025-26), the API's own key on the season routes. Every other route is keyed by the competition id (one per season: 1 = 2021-22, 2 = 2020-21, 3 = 2022-23, 12 = 2023-24, 22 = 2024-25, 24 = 2025-26, 25 = 2026-27), the competition-team id (new every season; uu_team_id is the stable club), the roster id (player x team x season) or the game id (unique across seasons). sportpress_phases(season) maps a season to its competition id.

  • Coverage: schedule and rosters from 2021-22 (2020-21 is empty); box scores for 2021-22, 2024-25, 2025-26 and 2026-27 (2022-23 and 2023-24 answer empty); standings and averages for 2021-22 and 2024-25 on; play-by-play ('film', with court x/y) for 2021-22 and 2026-27 only: for 2022-23 to 2025-26 use Genius play-by-play through genius_id (sportpress_game_slider(), organisation BNXT). The game routes (box score, film, overview) refuse a game that is not finished (AssetFetchError).

  • Data notes: a team's box total can differ from the schedule final score on about 18 of 1,246 sampled team boxes (mostly 2024-25, by 2-21 points); the frames report what the API serves. nationality_code is dirty (lower case, USA/BEL pairs, empty, HOL). Names differ by language and sponsor: join on ids. Contact and social fields are dropped; only a player's public birth date is kept. The sibling tenants sopron.sportpress.info and beac.sportpress.info are not wrapped.

  • Errors are classed conditions: hoopR_no_data (HTTP 404, an empty data list: an unknown id or a season without data, an empty ranking), hoopR_bad_request (an id or season that is not an integer, HTTP 400 / 422) and hoopR_asset_fetch (a rejected key after one renewal, any other non-200, a non-JSON or empty body, an error or changed envelope, a game that is not finished, a body for another season, competition, team or game), all inheriting hoopR_error. Wrappers raise; they never return an empty frame for a failed request. Whole doubles (24) are accepted for integer arguments.