The organisation's next scheduled match (empty between seasons).
Endpoint: GET https://prod.rosetta.nbl.com.au/get/next/match/for/{org}/{season}
Arguments
- season
(integer required): Season END year (2026 = 2025-26). The runtime maps it to Rosetta's year: the START year for the NBL and WNBL from 1998-99, the calendar year for NBL1 and the NBL / WNBL winter seasons up to 1998. END 1998 and 1999 both read Rosetta year 1998, which holds two seasons; the matches frame keeps the one asked for.
- org
(character default
"wnbl", the women's WNBL): Organisation: nbl (men's NBL), wnbl (women's) or nbl1 (the second tier, men's and women's conferences). One of"nbl","wnbl","nbl1".
Value
A wehoop_data tibble (one row: the next match):
| col_name | type | description |
| org | character | Organisation the row belongs to: nbl, wnbl or nbl1. From the row's competition, else from the request. |
| match_id | character | DataCore fixture id (UUID v1); equal to id. |
| external_media_id | character | Media id. Through NBL25 (2024-25): the Genius Sports match id (7 digits, e.g. 2636769; 6 or fewer in older seasons). From NBL26: mostly an 8-digit number of unverified origin (e.g. 61386925), date-like codes on some games (05042026 = DDMMYYYY on the 2026 Championship game, 1409252 = DDMMYY + n on the Blitz), null on many preseason games. NBL1 and WNBL 2025 carry 8-digit numbers. |
| date_updated | character | Record last-edit time, ISO 8601 UTC. |
| start_time | character | Tip-off, UTC, with no offset or a Z suffix (ESPN dates the same Perth v SE Melbourne game 2025-12-18T10:30Z; Rosetta says 2025-12-18T10:30:00) |
| start_time_datetime | character | Tip-off, UTC; same value as start_time. |
| round | character | Round label: a number as a string in the regular season ("13"), words in the finals ("SEMI FINAL SERIES 1", "CHAMPIONSHIP") |
| match_type | character | Match type: regular, final (FINAL upper case seen) |
| match_status | character | Status of the match in Rosetta's words (complete for a finished game): box score and play-by-play of any other status are partial. |
| status | character | Provider fixture status: CONFIRMED, SCHEDULED. |
| home_score | integer | Unobserved in samples (null in every capture); type and meaning unverified. |
| away_score | integer | Unobserved in samples (null in every capture); type and meaning unverified. |
| attendance | integer | Unobserved in samples (null in every capture); type and meaning unverified. |
| match_slug | character | URL slug of the match page on nbl.com.au. |
| match_title | character | Match title ("<home> v <away> <men/women> DD-MM-YYYY") |
| venue_id | character | DataCore id (UUID v1, Sportradar) of the venue; stable across seasons and the id to join on across routes. |
| rosetta_venue_id | character | Rosetta's own id (UUID v4; v5 on NBL1) of the venue; routes that take this entity accept it as well as the DataCore id. |
| venue_name | character | Name of the venue (arena), e.g. RAC Arena. |
| venue_address | character | Unobserved in samples (null in every capture); type and meaning unverified. |
| venue_suburb | character | Unobserved in samples (null in every capture); type and meaning unverified. |
| venue_state | character | Unobserved in samples (null in every capture); type and meaning unverified. |
| venue_country | character | Unobserved in samples (null in every capture); type and meaning unverified. |
| venue_capacity | integer | Unobserved in samples (null in every capture); type and meaning unverified. |
| venue_timezone | character | IANA time zone of the venue, e.g. Australia/Sydney. |
| venue_code | character | Venue code; often null. |
| venue_latitude | double | Unobserved in samples (null in every capture); type and meaning unverified. |
| venue_longitude | double | Unobserved in samples (null in every capture); type and meaning unverified. |
| home_team_id | character | DataCore id (UUID v1, Sportradar) of the home team; stable across seasons and the id to join on across routes. |
| rosetta_home_team_id | character | Rosetta's own id (UUID v4; v5 on NBL1) of the home team; routes that take this entity accept it as well as the DataCore id. |
| home_team_name | character | Display name of the team. |
| home_team_external_team_name | character | Team name as DataCore spells it. |
| home_team_code | character | Team code of the home team, e.g. PER or SYD. |
| home_team_division | character | Unobserved in samples (null in every capture); type and meaning unverified. |
| home_team_conference | character | Unobserved in samples (null in every capture); type and meaning unverified. |
| away_team_id | character | DataCore id (UUID v1, Sportradar) of the away team; stable across seasons and the id to join on across routes. |
| rosetta_away_team_id | character | Rosetta's own id (UUID v4; v5 on NBL1) of the away team; routes that take this entity accept it as well as the DataCore id. |
| away_team_name | character | Display name of the team. |
| away_team_external_team_name | character | Team name as DataCore spells it. |
| away_team_code | character | Team code of the away team, e.g. PER or SYD. |
| away_team_division | character | Unobserved in samples (null in every capture); type and meaning unverified. |
| away_team_conference | character | Unobserved in samples (null in every capture); type and meaning unverified. |
| season_id | character | DataCore id (UUID v1, Sportradar) of the season; stable across seasons and the id to join on across routes. |
| rosetta_season_id | character | Rosetta's own id (UUID v4; v5 on NBL1) of the season; routes that take this entity accept it as well as the DataCore id. |
| season_name | character | Season name (NBL26, WNBL 2024/25, 2025 South Men) |
| season_year | integer | Rosetta's year of the season: the START year for the NBL and WNBL from 1998-99 (2025 = 2025-26), the calendar year for NBL1 and the 1979-1997 winter seasons. See season_end_year for the sdv key. |
| season_type | character | Season type: regular (includes finals), preseason, in_season (cups, blitz, exhibition), test. |
| season_gender | character | Gender (MALE/FEMALE upper case on seasons and players, male/female lower case on competitions and divisions; UNKNOWN seen) |
| season_competition_id | character | Rosetta competition id (UUID v4) |
| season_competition_name | character | Name of the competition the season belongs to (e.g. NBL, WNBL, NBL1 North Men). |
| season_competition_gender | character | Gender (MALE/FEMALE upper case on seasons and players, male/female lower case on competitions and divisions; UNKNOWN seen) |
| season_competition_league_name | character | Name of the league the competition belongs to (NBL, WNBL or NBL1). |
| season_competition_division | character | Always an empty array in samples; element shape and meaning unverified. |
| season_end_year | integer | sdv season key: the END year of the season (2026 = 2025-26), derived from season_year (a START year for the NBL and WNBL from 1998-99, a calendar year for NBL1 and the 1979-1997 winter seasons; year 1998 is split on the start date). Where the body carries no year it is the season asked for. |
Columns the body adds beyond these follow, in body order (sdv-py keeps them too).
Details
Unofficial: the JSON proxy behind nbl.com.au (not an API the NBL documents or supports). The terms of use were not reviewed; payloads are not redistributed as release assets.
Gated by a referer, not a key: every request carries Origin / Referer set to nbl.com.au (the runtime sends them); without them the host answers 403 MISSING_API_KEY, which is raised as
wehoop_asset_fetch.Fills a hole in ESPN: ESPN's nbl feed has box scores but no plays for the 2025-26 NBL season (the stats provider changed from Genius Sports to Sportradar DataCore that year). nbl_rosetta_match_pbp has the full event log with shot x/y for 2025-26 and, in the same shape, back to 2011-12 (WNBL about 2014-15). Matches from 1979 have box scores only.
One host serves three organisations; pass org='nbl' (default), 'wnbl' or 'nbl1'. NBL1 is the second tier (men's and women's conferences, calendar-year seasons).
Season = the END year (2026 = 2025-26) everywhere. Rosetta's own year is the START year for the NBL and WNBL from 1998-99 and a calendar year for NBL1 and the 1979-1997 winter seasons; the runtime maps it. Year 1998 holds two seasons (calendar 1998 and 1998-99).
Ids:
<entity>id columns are DataCore ids (UUID v1; join on them), rosetta<entity>_id Rosetta's own. match_id is the DataCore fixture id every match route is keyed on.Unknown ids, orgs and types answer 200 with no rows (
wehoop_no_data). Rosetta caches a body per path and serves it whatever the query string, so a page cut by someone else's limit is refused (wehoop_asset_fetch); retry after the cache entry expires.
Errors: wehoop_no_data when Rosetta answers 404 or no rows (an unknown match, team, player or
season id, an org or season type with nothing, or no season in progress); wehoop_asset_fetch
for the 403 gate body, a stub or error envelope, a page cut by Rosetta's path cache, a body for
another org, season or entity than the one asked for, or any other failed fetch;
wehoop_bad_request for an unknown org / season_type, a malformed id, or HTTP 400 / 422.
nbl_rosetta_next_match(org = "nbl", season = 2027)See also
Other NBL Rosetta Functions:
nbl_rosetta_match(),
nbl_rosetta_match_by_id(),
nbl_rosetta_match_pbp(),
nbl_rosetta_match_player_box(),
nbl_rosetta_match_player_period_box(),
nbl_rosetta_match_team_box(),
nbl_rosetta_matches(),
nbl_rosetta_next_match_team(),
nbl_rosetta_next_matches(),
nbl_rosetta_outcomes(),
nbl_rosetta_player_game_log(),
nbl_rosetta_player_stats(),
nbl_rosetta_players(),
nbl_rosetta_seasons(),
nbl_rosetta_seasons_current(),
nbl_rosetta_standings(),
nbl_rosetta_stats_leaders(),
nbl_rosetta_team_players(),
nbl_rosetta_team_stats(),
nbl_rosetta_team_stats_leaders(),
nbl_rosetta_teams()
