Skip to main content

NBL Australia (Rosetta) — NBL / WNBL / NBL1 Rosetta proxy (prod.rosetta.nbl.com.au, Australia) — Match

nbl_rosetta_match_by_id​

One match's header (the same body as nbl_rosetta_match): status, scores, venue, season and teams.

Endpoint URL: GET https://prod.rosetta.nbl.com.au/get/match/{match_id}

Valid URL: https://prod.rosetta.nbl.com.au/get/match/b217a699-4bef-11f0-bc08-933162362355

API ParameterPythonPatternRequiredNullableDescription
match_idmatch_idYDataCore fixture id of the match (match_id of nbl_rosetta_matches), a UUID, e.g. b217a699-4bef-11f0-bc08-933162362355.

Returns​

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

col_nametypedescription
orgcharacterOrganisation the row belongs to: nbl, wnbl or nbl1. From the row's competition, else from the request.
match_idcharacterDataCore fixture id (UUID v1); equal to id.
match_statuscharacterStatus of the match in Rosetta's words (complete for a finished game): box score and play-by-play of any other status are partial.
start_time_datetimecharacterTip-off, UTC; same value as start_time.
match_typecharacterMatch type: regular, final (FINAL upper case seen)
attendanceintegerAttendance, a STRING; null when not recorded.
clockcharacterGame clock of the latest event, HH:MM:SS remaining in the period.
current_periodintegerLatest period number as a STRING; null on older matches.
clock_runninglogicalGame clock is running.
home_scoreintegerHome final score, a STRING; null before tip-off.
away_scoreintegerAway final score, a STRING; null before tip-off.
roundcharacterRound label: a number as a string in the regular season ("13"), words in the finals ("SEMI FINAL SERIES 1", "CHAMPIONSHIP")
start_timecharacterTip-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)
statuscharacterProvider fixture status: CONFIRMED, SCHEDULED.
external_media_idcharacterMedia 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.
match_slugcharacterURL slug of the match page on nbl.com.au.
match_titlecharacterMatch title (" v <men|women> DD-MM-YYYY")
secondary_external_idcharacterUnobserved in samples (null in every capture); type and meaning unverified.
live_exclusivelogicalMatch is a live-stream exclusive.
season_idcharacterDataCore id (UUID v1, Sportradar) of the season; stable across seasons and the id to join on across routes.
rosetta_season_idcharacterRosetta'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_yearintegerRosetta'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_typecharacterSeason type: regular (includes finals), preseason, in_season (cups, blitz, exhibition), test.
season_competition_idcharacterRosetta competition id (UUID v4)
season_competition_namecharacterName of the competition the season belongs to (e.g. NBL, WNBL, NBL1 North Men).
season_competition_gendercharacterGender (MALE/FEMALE upper case on seasons and players, male/female lower case on competitions and divisions; UNKNOWN seen)
season_competition_league_namecharacterName of the league the competition belongs to (NBL, WNBL or NBL1).
season_competition_divisioncharacterNBL1 divisions (conference x gender); empty for NBL and WNBL.
venue_idcharacterDataCore id (UUID v1, Sportradar) of the venue; stable across seasons and the id to join on across routes.
rosetta_venue_idcharacterRosetta'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_namecharacterName of the venue (arena), e.g. RAC Arena.
venue_addresscharacterUnobserved in samples (null in every capture); type and meaning unverified.
venue_capacityintegerUnobserved in samples (null in every capture); type and meaning unverified.
venue_timezonecharacterIANA time zone of the venue, e.g. Australia/Sydney.
venue_codecharacterVenue code; often null.
venue_statecharacterUnobserved in samples (null in every capture); type and meaning unverified.
venue_suburbcharacterUnobserved in samples (null in every capture); type and meaning unverified.
venue_latitudenumericUnobserved in samples (null in every capture); type and meaning unverified.
venue_longitudenumericUnobserved in samples (null in every capture); type and meaning unverified.
venue_countrycharacterCountry; often null.
home_team_idcharacterDataCore id (UUID v1, Sportradar) of the home team; stable across seasons and the id to join on across routes.
home_team_namecharacterDisplay name of the team.
home_team_external_team_namecharacterTeam name as DataCore spells it.
home_team_codecharacterTeam code of the home team, e.g. PER or SYD.
away_team_idcharacterDataCore id (UUID v1, Sportradar) of the away team; stable across seasons and the id to join on across routes.
away_team_namecharacterDisplay name of the team.
away_team_external_team_namecharacterTeam name as DataCore spells it.
away_team_codecharacterTeam code of the away team, e.g. PER or SYD.
data_sourcecharacterBackend that built the body: nexus-api or lambda-cache (observed). It varies between requests for the same match (the NBL 2025-26 sample game came back lambda-cache from /live/all and nexus-api from /match/{match_id} minutes apart, with identical play-by-play), so it says nothing about the data.
match_status_stringcharacterStatus banner text, e.g. FINAL.
play_by_play_updated_datetimecharacterLast play-by-play update, ISO 8601 UTC.
season_end_yearintegersdv 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.

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

nbl_rosetta_match_by_id(match_id='b217a699-4bef-11f0-bc08-933162362355')

Last validated n/a.

nbl_rosetta_match_player_box​

One match's official player box score, one row per player line (period 0 = whole game).

Endpoint URL: GET https://prod.rosetta.nbl.com.au/get/match/{match_id}/live/all

Valid URL: https://prod.rosetta.nbl.com.au/get/match/b217a699-4bef-11f0-bc08-933162362355/live/all

API ParameterPythonPatternRequiredNullableDescription
match_idmatch_idYDataCore fixture id of the match (match_id of nbl_rosetta_matches), a UUID, e.g. b217a699-4bef-11f0-bc08-933162362355.

Returns​

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

col_nametypedescription
match_idcharacterDataCore fixture id of the match (UUID v1): the {match_id} route key and fixtureId in play-by-play. Join on it.
match_statuscharacterStatus of the match in Rosetta's words (complete for a finished game): box score and play-by-play of any other status are partial.
stat_line_idcharacterProvider record hash of this statistics row (64 hex characters)
rosetta_stat_line_idcharacterRosetta id of this statistics row (UUID v4)
assistsintegerAssists in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
blocksintegerBlocks in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
defensive_reboundsintegerDefensive rebounds in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
efficiencyintegerEfficiency rating (PTS + REB + AST + STL + BLK - missed FG - missed FT - TOV) in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
field_goals_attemptedintegerField goals attempted in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
field_goals_madeintegerField goals made in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
field_goals_percentagenumericField goals made / attempted, a 0-1 FRACTION.
foulsintegerFouls committed (personal + technical + others) in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
free_throws_attemptedintegerFree throws attempted in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
free_throws_madeintegerFree throws made in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
free_throws_percentagenumericFree throws made / attempted, a 0-1 FRACTION.
jersey_numbercharacterJersey number, a STRING.
minutesnumericMinutes played: "MM:SS" string in player_match_statistics, decimal minutes in calculated_player_statistics, player-minutes (integer, 5 x period length) in team rows; "00:00" or 0 where not recorded.
minutes_stringcharacterMinutes played as an ISO 8601 duration (PT30M32S); null on NBL1.
offensive_reboundsintegerOffensive rebounds in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
participatedlogicalPlayer took part in the game.
periodintegerPeriod as a STRING: 0 = game or season total, 1-4 = quarters, 11/12/13 = first/second/third overtime (inferred: fewer teams have each)
period_typecharacterPeriod type: regular (overtime unobserved)
personal_foulsintegerPersonal fouls in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
playing_positioncharacterPlaying position code (G, F, C, PG, SF, FC, ...); null when not recorded.
plus_minusintegerPoint differential while on court in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
pointsintegerPoints in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
reboundsintegerTotal rebounds in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
starterlogicalPlayer started the game.
stealsintegerSteals in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
technical_foulsintegerTechnical fouls in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
three_points_attemptedintegerThree-point field goals attempted in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
three_points_madeintegerThree-point field goals made in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
three_points_percentagenumericThree-point field goals made / attempted, a 0-1 FRACTION.
turnoversintegerTurnovers in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
two_points_attemptedintegerTwo-point field goals attempted in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
two_points_madeintegerTwo-point field goals made in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
two_points_percentagenumericTwo-point field goals made / attempted, a 0-1 FRACTION.
rosetta_match_idcharacterRosetta's match RECORD id (UUID v4) as carried by box-score and play-by-play rows; no route accepts it. Join on match_id.
player_idcharacterDataCore id (UUID v1, Sportradar) of the player; stable across seasons and the id to join on across routes.
player_first_namecharacterThe player's given name, e.g. Elijah.
player_last_namecharacterThe player's family name, e.g. Pepper.
player_full_namecharacterGiven and family name.
player_jersey_numbercharacterJersey number, a STRING.
player_playing_positioncharacterPlaying position code (G, F, C, PG, SF, FC, ...); null when not recorded.
team_idcharacterDataCore id (UUID v1, Sportradar) of the team; stable across seasons and the id to join on across routes.
team_codecharacterTeam code, e.g. PER (the {team_code} path value)
team_namecharacterName of the team as Rosetta spells it, e.g. Perth Wildcats.
scintegerNBL SuperCoach fantasy score for the game.

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

nbl_rosetta_match_player_box(match_id='b217a699-4bef-11f0-bc08-933162362355')

Last validated n/a.

nbl_rosetta_match_team_box​

One match's team box score by period, one row per team and period (0 = whole game).

Endpoint URL: GET https://prod.rosetta.nbl.com.au/get/match/{match_id}/live/all

Valid URL: https://prod.rosetta.nbl.com.au/get/match/b217a699-4bef-11f0-bc08-933162362355/live/all

API ParameterPythonPatternRequiredNullableDescription
match_idmatch_idYDataCore fixture id of the match (match_id of nbl_rosetta_matches), a UUID, e.g. b217a699-4bef-11f0-bc08-933162362355.

Returns​

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

col_nametypedescription
match_idcharacterDataCore fixture id of the match (UUID v1): the {match_id} route key and fixtureId in play-by-play. Join on it.
match_statuscharacterStatus of the match in Rosetta's words (complete for a finished game): box score and play-by-play of any other status are partial.
stat_line_idcharacterProvider record hash of this statistics row (64 hex characters)
rosetta_stat_line_idcharacterRosetta id of this statistics row (UUID v4)
assistsintegerAssists in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
blocksintegerBlocks in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
defensive_reboundsintegerDefensive rebounds in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
field_goals_attemptedintegerField goals attempted in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
field_goals_madeintegerField goals made in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
field_goals_percentagenumericField goals made / attempted, a 0-1 FRACTION.
foulsintegerFouls committed (personal + technical + others) in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
free_throws_attemptedintegerFree throws attempted in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
free_throws_madeintegerFree throws made in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
free_throws_percentagenumericFree throws made / attempted, a 0-1 FRACTION.
minutesnumericMinutes played: "MM:SS" string in player_match_statistics, decimal minutes in calculated_player_statistics, player-minutes (integer, 5 x period length) in team rows; "00:00" or 0 where not recorded.
offensive_reboundsintegerOffensive rebounds in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
periodintegerPeriod as a STRING: 0 = game or season total, 1-4 = quarters, 11/12/13 = first/second/third overtime (inferred: fewer teams have each)
period_typecharacterPeriod type: regular (overtime unobserved)
personal_foulsintegerPersonal fouls in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
pointsintegerPoints in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
reboundsintegerTotal rebounds in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
stealsintegerSteals in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
technical_foulsintegerTechnical fouls in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
three_points_attemptedintegerThree-point field goals attempted in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
three_points_madeintegerThree-point field goals made in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
three_points_percentagenumericThree-point field goals made / attempted, a 0-1 FRACTION.
turnoversintegerTurnovers in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
two_points_attemptedintegerTwo-point field goals attempted in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
two_points_madeintegerTwo-point field goals made in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
two_points_percentagenumericTwo-point field goals made / attempted, a 0-1 FRACTION.
rosetta_match_idcharacterRosetta's match RECORD id (UUID v4) as carried by box-score and play-by-play rows; no route accepts it. Join on match_id.
team_idcharacterDataCore id (UUID v1, Sportradar) of the team; stable across seasons and the id to join on across routes.
team_codecharacterTeam code, e.g. PER (the {team_code} path value)
team_namecharacterName of the team as Rosetta spells it, e.g. Perth Wildcats.
timeoutsintegerTimeouts taken in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

nbl_rosetta_match_team_box(match_id='b217a699-4bef-11f0-bc08-933162362355')

Last validated n/a.

nbl_rosetta_match_player_period_box​

One match's player box score by period (Rosetta-computed from the event log), one row per player and period.

Endpoint URL: GET https://prod.rosetta.nbl.com.au/get/match/{match_id}/live/all

Valid URL: https://prod.rosetta.nbl.com.au/get/match/b217a699-4bef-11f0-bc08-933162362355/live/all

API ParameterPythonPatternRequiredNullableDescription
match_idmatch_idYDataCore fixture id of the match (match_id of nbl_rosetta_matches), a UUID, e.g. b217a699-4bef-11f0-bc08-933162362355.

Returns​

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

col_nametypedescription
match_idcharacterDataCore fixture id of the match (UUID v1): the {match_id} route key and fixtureId in play-by-play. Join on it.
match_statuscharacterStatus of the match in Rosetta's words (complete for a finished game): box score and play-by-play of any other status are partial.
player_idcharacterDataCore id (UUID v1, Sportradar) of the player; stable across seasons and the id to join on across routes.
rosetta_player_idcharacterRosetta's own id (UUID v4; v5 on NBL1) of the player; routes that take this entity accept it as well as the DataCore id.
player_first_namecharacterThe player's given name, e.g. Elijah.
player_last_namecharacterThe player's family name, e.g. Pepper.
player_jersey_numbercharacterJersey number, a STRING.
player_playing_positioncharacterPlaying position code (G, F, C, PG, SF, FC, ...); null when not recorded.
team_idcharacterDataCore id (UUID v1, Sportradar) of the team; stable across seasons and the id to join on across routes.
rosetta_team_idcharacterRosetta's own id (UUID v4; v5 on NBL1) of the team; routes that take this entity accept it as well as the DataCore id.
periodintegerPeriod as a STRING: 0 = game or season total, 1-4 = quarters, 11/12/13 = first/second/third overtime (inferred: fewer teams have each)
period_typecharacterPeriod type: regular (overtime unobserved)
rosetta_match_idcharacterRosetta's match RECORD id (UUID v4) as carried by box-score and play-by-play rows; no route accepts it. Join on match_id.
assistsintegerAssists in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
blocksintegerBlocks in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
defensive_reboundsintegerDefensive rebounds in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
field_goals_attemptedintegerField goals attempted in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
field_goals_madeintegerField goals made in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
field_goals_percentagenumericField goals made / attempted, a 0-1 FRACTION.
foulsintegerFouls committed (personal + technical + others) in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
free_throws_attemptedintegerFree throws attempted in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
free_throws_madeintegerFree throws made in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
free_throws_percentagenumericFree throws made / attempted, a 0-1 FRACTION.
minutesnumericMinutes played: "MM:SS" string in player_match_statistics, decimal minutes in calculated_player_statistics, player-minutes (integer, 5 x period length) in team rows; "00:00" or 0 where not recorded.
offensive_reboundsintegerOffensive rebounds in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
personal_foulsintegerPersonal fouls in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
pointsintegerPoints in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
reboundsintegerTotal rebounds in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
stealsintegerSteals in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
technical_foulsintegerTechnical fouls in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
three_points_attemptedintegerThree-point field goals attempted in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
three_points_madeintegerThree-point field goals made in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
three_points_percentagenumericThree-point field goals made / attempted, a 0-1 FRACTION.
turnoversintegerTurnovers in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
two_points_attemptedintegerTwo-point field goals attempted in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
two_points_madeintegerTwo-point field goals made in the match, or in the period on period rows; 0 where the era did not record it (results-only seasons before pbp)
two_points_percentagenumericTwo-point field goals made / attempted, a 0-1 FRACTION.
jersey_numbercharacterJersey number, a STRING.

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

nbl_rosetta_match_player_period_box(match_id='b217a699-4bef-11f0-bc08-933162362355')

Last validated n/a.

nbl_rosetta_match_pbp​

One match's play-by-play with shot x/y, oldest first (NBL 2025-26 included, which ESPN's nbl feed lacks).

Endpoint URL: GET https://prod.rosetta.nbl.com.au/get/match/{match_id}/live/all

Valid URL: https://prod.rosetta.nbl.com.au/get/match/b217a699-4bef-11f0-bc08-933162362355/live/all

API ParameterPythonPatternRequiredNullableDescription
match_idmatch_idYDataCore fixture id of the match (match_id of nbl_rosetta_matches), a UUID, e.g. b217a699-4bef-11f0-bc08-933162362355.

Returns​

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

col_nametypedescription
match_idcharacterDataCore fixture id of the match (UUID v1): the {match_id} route key and fixtureId in play-by-play. Join on it.
rosetta_match_idcharacterRosetta's match RECORD id (UUID v4) as carried by box-score and play-by-play rows; no route accepts it. Join on match_id.
match_statuscharacterStatus of the match in Rosetta's words (complete for a finished game): box score and play-by-play of any other status are partial.
action_idintegerEvent sequence number within the match (ascending in feed time)
periodintegerPeriod number, an INTEGER here (1-4 = quarters)
period_typecharacterPeriod type: regular (overtime unobserved)
clockcharacterGame clock at the event, MM:SS remaining in the period; null on some feed-control events.
clock_secondsnumericGame clock at the event as seconds (parsed from clock, MM:SS); null for events without a clock.
shot_clockcharacterShot clock at the event, MM:SS; in Genius-era matches it repeats the game clock (no shot-clock data)
shot_clock_secondsnumericShot clock at the event as seconds (parsed from shot_clock); in Genius-era backfills it repeats the game clock.
score_homeintegerHome team's running score after the event (score_1 in the body).
score_awayintegerAway team's running score after the event (score_2 in the body).
action_typecharacterEvent type: 2pt, 3pt, freeThrow, rebound, assist, steal, block, turnover, foul, substitution, timeOut, jumpBall, possession, possessionArrow, period, fixture, main (clock start/stop)
sub_typecharacterEvent detail (shot type, foul type, "1Of2" free throw, In/Out...); absent when the event has none. Two vocabularies: Title Case ("Jump Shot") in NBL/WNBL 2025-26 feeds (events carry fixtureId), camelCase ("jumpShot") in older backfills and NBL1.
sub_type_keycharactersub_type folded to snake_case, so the Title Case 2025-26 spelling and the camelCase backfill spelling match.
successlogicalShot or free throw made (true) or missed (false). DataCore-era feeds (events with fixtureId) and NBL1 carry it only on shots and free throws (absent elsewhere); older backfills carry it on every event, true on non-shot events.
team_idcharacterDataCore id (UUID v1, Sportradar) of the team; stable across seasons and the id to join on across routes.
team_codecharacterTeam code, e.g. PER (the {team_code} path value)
team_namecharacterName of the team as Rosetta spells it, e.g. Perth Wildcats.
is_homelogicalTrue when the event's team is the match's home team; null when the event has no team.
player_idcharacterDataCore id (UUID v1, Sportradar) of the player; stable across seasons and the id to join on across routes.
player_namecharacterFull name of the player the event belongs to; null for events no player owns (team rebounds, period starts).
jersey_numbercharacterJersey number of the player at the event, as text (a WNBL backfill writes 6.0).
xnumericShot or event position along the court length, percent 0-100, in game orientation (each team's shots sit at x > 50 for two periods and x < 50 for the others). Unverified: which end is x = 0; DataCore-era free-throw, foul and turnover coordinates are not at the free-throw line. Null where none was recorded.
ynumericShot or event position across the court width, percent 0-100 (free throws and close shots cluster near 50). Unverified: which sideline is y = 0. Null where none was recorded.
readable_action_typecharacterHuman-readable event label, e.g. "Game - Game completed".
system_action_typecharacterMachine event label, e.g. game_game_completed.
timestampcharacterWall-clock time of the event, ISO 8601 without offset (UTC)
feedcharacterFeed shape: datacore (NBL and WNBL 2025-26: events carry fixtureId, arrive newest first, Title Case sub_type, a real shot clock) or backfill (older seasons and NBL1 2025: no fixtureId, oldest first, camelCase sub_type, shot_clock repeating the game clock).

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

nbl_rosetta_match_pbp(match_id='b217a699-4bef-11f0-bc08-933162362355')

Last validated n/a.