RivalsData API 1.3.0
Hero stats mode selection and leaderboard rank
Detailed player hero stats now require an explicit mode and follow the selected
website tab's ordering.
competitive = player.stats.heroes(mode="competitive", season="all")
quickplay = player.stats.heroes(mode="quickplay", season=20)
print(competitive[0].competitive.games)
print(competitive[0].rank) # Source hero leaderboard position, or NoneMigration
- Update existing
player.stats.heroes(...)calls to supply
mode="competitive"ormode="quickplay". - MCP
get_player_statsrequiresmodewhencategory="heroes". - Hero results contain only the selected mode's nested data and a
modelabel.
Heroes without that mode's data are omitted. Rows are sorted by the selected
mode's games played descending; ties retain source order.
Hero rank
Every detailed hero row exposes rank, the source's top-level leaderboard
position shown as #N in the profile's left-hand hero card. Missing positions
return None (JSON null). This rank is preserved from the source, not recalculated
for Quickplay or All Seasons. Both hero endpoints returned Loki rank 408 for
GS-, matching the card during the 2026-10-01 browser investigation.
The website receives both modes together, then filters and sorts locally.
The wrapper now follows that behavior. README, API docs, MCP descriptions,
and project context document the required mode, ordering, and rank.
Class stats still return separate totals for both modes and support individual
seasons and All Seasons. Hero summaries retain their existing behavior.