← DunkAPICONTENT HISTORY
WHAT CHANGED
Update to DunkAPI
Snapshot Oct 31, 2026 · 01:21 UTC · version 1.0.0
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save DunkAPI and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Looks up and profiles basketball players: finds the player id, reads per-season averages and shooting splits, compares two or more players on a per-minute basis, and pulls season leaderboards. Use when the user asks about a player, who leads a stat, how two players compare, or whether a scoring line is efficient or lucky. Covers NBA, WNBA, men's and women's college. Do not use for rolling or recent form across a season, see player-form. Do not use for shot location, see shot-zone-analysis. Do not use for prop lines, see prop-modeling.",
"included_files": [],
"name": "player-scouting",
"skill_md_contents": "---\nname: player-scouting\ndescription: \"Looks up and profiles basketball players: finds the player id, reads per-season averages and shooting splits, compares two or more players on a per-minute basis, and pulls season leaderboards. Use when the user asks about a player, who leads a stat, how two players compare, or whether a scoring line is efficient or lucky. Covers NBA, WNBA, men's and women's college. Do not use for rolling or recent form across a season, see player-form. Do not use for shot location, see shot-zone-analysis. Do not use for prop lines, see prop-modeling.\"\nmetadata:\n version: 1.0.0\n author: DunkAPI\n---\n\n# Player Scouting\n\n> **Default data tool:** DunkAPI (`dunkapi-tool`).\n> `search_players` (1 credit) to get the id, `get_player` (5) for profile and averages, `get_leaders` (5) for leaderboards.\n\nYou turn a name into a defensible read on a player: usage-adjusted, efficiency-checked, with the sample size stated.\n\n## When to Use\n\n- \"Tell me about Jalen Brunson\" / \"Is he actually efficient?\"\n- \"Compare Tatum and Brown\" / \"Who is the better rebounder per minute?\"\n- \"Who led the league in true shooting?\" / \"Top 10 in assists\"\n- \"How did he do in the playoffs vs the regular season?\"\n- Finding a `player_id` for another skill\n\n## When NOT to Use\n\n- Game-by-game rolling averages or minutes trends, see `player-form`\n- Where a player shoots from, see `shot-zone-analysis`\n- Whether he will beat a points line, see `prop-modeling`\n- A team-level question, see `team-analysis`\n\n## Commands Available\n\n| Command | What it does | Credits |\n|---------|-------------|---------|\n| `search_players` | Player id from a full or partial name, most recent players first | 1 |\n| `get_player` | Profile, per-season averages and shooting splits (regular season and postseason as separate rows), last 10 games | 5 |\n| `get_leaders` | Season leaders by `pts reb ast stl blk tpm min plus_minus fg_pct tp_pct ft_pct ts_pct total_pts` | 5 |\n| `get_player_games` | Full game log (for form, see `player-form`) | 5 |\n\n## Commands That Do NOT Exist\n\n| Not available | Use instead |\n|---------------|-------------|\n| `get_player_stats` | `get_player` |\n| `get_usage_rate`, `get_per`, `get_bpm`, `get_vorp` | Not served. Compute per-minute rates and true shooting from `get_player` fields |\n| `get_player_tracking` | Not served; no speed, touches or contested-shot data |\n| `compare_players` | Call `get_player` for each, compare in code |\n| `get_draft_prospects`, `get_contract` | Not served |\n\n## Season Resolution\n\n`season` is the year the season ends (2025-26 is `2026`). The WNBA uses the calendar year. `search_players` returns `last_season`; a stale value means the player is retired or has not played recently.\n\n## How It Works\n\n**Step 1: Find the id.** `search_players {\"name\": \"brunson\", \"limit\": 3}` returned two people:\n\n```json\n{\"data\": {\"players\": [\n {\"player_id\": \"3934672\", \"name\": \"Jalen Brunson\", \"position\": \"G\", \"team\": \"NY\", \"last_season\": 2027},\n {\"player_id\": \"106\", \"name\": \"Rick Brunson\", \"position\": \"PG\", \"team\": \"PHI\", \"last_season\": 2007}\n]}}\n```\n\nMatch on `last_season` and `team` before spending 5 credits on the wrong profile. Pass `league` for WNBA or college; the default is the NBA.\n\n**Step 2: Pull the profile.** `get_player` returns `player`, `seasons` (one row per season per `season_type`, with `games starts min pts reb ast stl blk tov oreb dreb pf plus_minus fgm fga tpm tpa ftm fta fg_pct tp_pct ft_pct efg_pct ts_pct`) and `recent_games` (last 10).\n\n**Step 3: Normalize.** Per-game numbers hide minutes. Convert before comparing:\n\n```\nper36(stat) = stat / min * 36\nfga_per36 = fga/games / min * 36\nts_pct = pts / (2 * (fga + 0.44 * fta)) [totals, not per game]\nthree_rate = tpa / fga\nft_rate = fta / fga\nast_to_tov = ast / tov\n```\n\n`total_pts`, `fgm`, `fga` and the other counting fields on a season row are season totals; `pts`, `reb`, `ast` and `min` are per-game averages. Do not divide a total by a per-game number.\n\n**Step 4: Check the sample.** Under about 20 games, shooting percentages are noise. Under 100 three-point attempts, `tp_pct` has a standard error near 5 points (`sqrt(p*(1-p)/n)` with p = 0.35, n = 100 gives 0.048). State the attempts next to every percentage.\n\n**Step 5: Split by season type.** The API returns postseason rows separately. Playoff rows are fewer games against better defences; compare them to the player's own regular season, not to other players' regular season.\n\n**Step 6: Leaderboards.** `get_leaders {\"stat\": \"ts_pct\", \"season\": 2024, \"limit\": 3}` returns `leaders` (`player_id name team games value`) with a `min_games` floor (default: a quarter of the season). Percentage leaders are dominated by low-usage centers. Read `games` and pair a percentage leader with a volume stat before calling anyone elite.\n\n## Comparing Two Players\n\n1. Same season, same `season_type`, same league.\n2. Normalize to per-36 minutes and show the minutes gap.\n3. Show shooting as `ts_pct` plus the attempts that produced it.\n4. Show role: `starts / games`, `min`, `three_rate`, `ft_rate`.\n5. Say what the data cannot see: defence, off-ball value, lineup effects (no tracking or on/off data here).\n6. One-line verdict that matches the numbers shown.\n\n## Interpreting Efficiency\n\n| Reading | Meaning |\n|---------|---------|\n| `ts_pct` above ~0.60 on 15+ FGA per game | Elite efficient volume scorer |\n| `efg_pct` well above `fg_pct` | Threes drive the efficiency |\n| `ts_pct` far above `efg_pct` | Free throws drive it |\n| `fg_pct` high, `fga` very low | Role player finishing, not creating |\n| `plus_minus` per game | Team context; do not rank players on it |\n\nThresholds are rules of thumb from league-wide norms. Compare with `get_leaders` for the same season rather than trusting a fixed number.\n\n## Gotchas\n\n| Gotcha | Handling |\n|--------|----------|\n| Traded players | `teams` can read like `DAL/WSH` on a season row; the line is combined |\n| Two rows for one season | Regular season and postseason; filter by `season_type` |\n| College players | Rows are by season; players change teams and roles; sample sizes are 25-35 games |\n| Same name, different players | Check `last_season` and `team` |\n| A rookie with few games | Show games played first and widen the caveat |\n\n## Credit Usage\n\n| Operation | Credits |\n|-----------|---------|\n| Id lookup | 1 |\n| Profile | 5 |\n| Two-player comparison | 12 (2 lookups + 2 profiles) |\n| Leaderboard | 5 |\n\n## Output Format\n\n```\n[Player], [team], [pos]: [season] regular season ([games] GP, [min] mpg)\nPer game: [pts]/[reb]/[ast] on [fg%]/[3p%]/[ft%], TS [ts%]\nPer 36: [pts]/[reb]/[ast]\nSample: [tpa] 3PA, [fta] FTA\nPlayoffs: [games] GP, [pts]/[reb]/[ast], TS [ts%]\nRead: [one sentence that matches the numbers above]\n```\n\n## What to Do Next\n\n| Found | Next | Skill |\n|-------|------|-------|\n| Efficiency looks off | Where the shots come from | `shot-zone-analysis` |\n| Recent change in output | Rolling form | `player-form` |\n| Wants to bet his line | Prop history | `prop-modeling` |\n| Wants the team context | Team efficiency | `team-analysis` |\n"
}SHA-256 of public snapshot: 0b403fc9d1320149e30bde203b1863ac70c1f101e18e46c7bae4f5dc247877b5