get_player_totals
Get a Dota 2 player's average stats for all tracked metrics, including GPM, KDA, damage, and more, to analyze overall performance.
Instructions
Get aggregated performance statistics across ALL tracked metrics (GPM, KDA, damage, etc.).
Use this when users ask about AVERAGE PERFORMANCE or AGGREGATE STATS:
"What's [player]'s average GPM?"
"How much damage does [player] do per game?"
"What's [player]'s average kills per game?"
"Show me [player]'s average stats"
"What's [player]'s average last hits?"
"How much XPM does [player] average?"
Returns comprehensive statistics for ALL fields tracked by OpenDota including:
Combat: kills, deaths, assists, kda, hero_kills, hero_damage, hero_healing
Economy: gold, gold_per_min, xp_per_min, gold_spent
Farming: last_hits, denies, neutral_kills, lane_kills
Objectives: tower_damage, tower_kills, courier_kills, observer_uses, sentry_uses
And many more...
For simple win/loss counts, use get_player_win_loss() instead. For performance distribution analysis, use get_player_histograms() instead.
Supports both IDs and natural language for flexible querying.
Args: player_name: The Dota 2 player name to search for limit: Number of matches to analyze (default: all available matches) offset: Skip first N matches (for pagination) lane_role: Filter by lane (accepts "mid", "carry", "pos 1-4", etc.) hero_id: Filter to specific hero (accepts name or ID like "Rubick") included_account_id: Only include matches with these teammates (accepts names or IDs) excluded_account_id: Exclude matches with these players (accepts names or IDs) with_hero_id: Require these heroes on player's team (accepts IDs or names) against_hero_id: Require these heroes on enemy team (accepts IDs or names) having: Minimum games played threshold for included data
Returns: List of statistical totals (one object per metric), each containing: - field (str): Name of the statistic (e.g., "kills", "gold_per_min", "hero_damage") - games_played (int): Number of games in this dataset - count (float): Total sum across all games - average (float): Mean value per game (count / games_played)
Common queries: - All average stats: get_player_totals("kürlo") - Mid lane averages: get_player_totals("kürlo", lane_role="mid") - Rubick averages: get_player_totals("kürlo", hero_id="Rubick") - With teammate: get_player_totals("kürlo", included_account_id="hotpocalypse")
Example: get_player_totals("kürlo", hero_id="Rubick", lane_role="mid") -> [ {"field": "kills", "games_played": 80, "count": 418, "average": 5.225}, {"field": "deaths", "games_played": 80, "count": 520, "average": 6.5}, {"field": "gold_per_min", "games_played": 80, "count": 33840, "average": 423.0}, {"field": "hero_damage", "games_played": 80, "count": 1640000, "average": 20500.0}, ... ]
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| having | No | ||
| offset | No | ||
| hero_id | No | ||
| lane_role | No | ||
| player_name | Yes | ||
| with_hero_id | No | ||
| against_hero_id | No | ||
| excluded_account_id | No | ||
| included_account_id | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |