get_player_histograms
Analyze a player's performance ranges by viewing the frequency distribution of stats like kills, GPM, or last hits to measure consistency and typical values.
Instructions
Get the DISTRIBUTION of a specific statistic across matches (performance consistency analysis).
Use this when users ask about PERFORMANCE RANGES or CONSISTENCY:
"How often does [player] get 10+ kills?"
"What's [player]'s typical GPM range?"
"How consistent is [player]'s farming?"
"Show me [player]'s kill distribution"
"What GPM does [player] usually achieve?"
"How often does [player] get a rampage (5+ kills)?"
This shows HOW OFTEN different values occur (e.g., "30 games with 5-6 kills, 20 games with 7-8 kills").
DO NOT use this for simple averages - use get_player_totals() instead. DO NOT use this for win/loss counts - use get_player_win_loss() instead.
Supports both IDs and natural language for flexible querying.
Args: player_name: The Dota 2 player name to search for field: Statistical field to analyze. Accepts variations like: - "kills", "deaths", "assists" - "gpm" or "gold_per_min" or "gold per min" - "xpm" or "xp_per_min" - "cs" or "last_hits" - "damage" or "hero_damage" - "healing" or "hero_healing" - "duration" - "comeback", "stomp", "loss" limit: Number of matches to analyze (default: all available) 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) included_account_id: Only 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
Returns: List of histogram buckets showing frequency distribution, each containing: - count (int): The value or range (e.g., 10 for "10 kills") - games_played (int): Number of games with this value - win (int): Games won at this performance level - win_rate (str): Win rate at this value (0.0 to 1.0)
The buckets are typically in ranges (e.g., 0-1, 1-2, 2-3 kills) or exact values depending on the field. Higher performance levels often correlate with higher win rates.
Common queries: - Kill distribution: get_player_histograms("kürlo", field="kills") - GPM consistency: get_player_histograms("kürlo", field="gpm") - Hero-specific: get_player_histograms("kürlo", field="last_hits", hero_id="Anti-Mage")
Example: get_player_histograms("kürlo", field="kills", hero_id="Rubick") -> [ {"count": 0, "games_played": 2, "win": 0, "win_rate": 0.0}, {"count": 1, "games_played": 5, "win": 1, "win_rate": 0.2}, {"count": 2, "games_played": 8, "win": 3, "win_rate": 0.375}, {"count": 3, "games_played": 12, "win": 7, "win_rate": 0.583}, {"count": 4, "games_played": 15, "win": 10, "win_rate": 0.667}, {"count": 5, "games_played": 20, "win": 16, "win_rate": 0.8}, ... ]
This tells you: player had 20 games with 5 kills, winning 16 of them (80% win rate at that performance level).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| field | Yes | ||
| 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 |