Typed match references and combined match details now make history rows directly usable in bot messages and lazy detail lookups.
Changes
- Added
match.get_details(refresh=False)to history matches. It fetches combined RivalsData, RivalsTracker, and Tracker.gg details with typed teams, players, and hero statistics. - Added named map, queue, gameplay, platform, rank, season, and hero references. Map variant
1288displays as Hell's Heaven, with Hydra Charteris Base available as its location. Names resolve locally using 118 map variants and 20 observed seasons; unknown codes remain explicit. - Added normalized
accuracy_percentfor players and heroes. Session hit rate remains separate from accuracy, and invalid/NaN values are treated as unavailable. - Preserved provider responses, field provenance, conflicts, failures, and completeness. Ambiguous player identities remain visible instead of being combined by row order.
- Added refresh support and retry behavior for partial details, plus missing map/queue/platform/season context retained from the same history match.
Migration from 2.x
match.platform is now a typed Platform, rather than a numeric value. Use match.platform.id or match.platform_id for the original number.
print(match.map) # Hell's Heaven
print(match.map.name) # Hell's Heaven (plain string)
print(match.map.id) # 1288
print(match.game_mode) # Custom
print(match.gameplay_mode) # Domination
print(match.platform) # PCReferences format as names and retain their IDs. Serialized matches include structured reference objects alongside legacy numeric fields; .raw preserves the input payload. Gameplay names come from the map/objective context, rather than assuming a universal meaning for the raw gameplay code.
See readable references and migration and combined match details.
Validation
106 tests passed; Ruff passed; wheel and source distribution built successfully. The packaged catalogs were verified from the built wheel.
python -m pip install --upgrade rivals-api