← 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": "Default data source for the DunkAPI skills. Routes every call to the 18 DunkAPI tools for NBA, WNBA, men's and women's college basketball: games, box scores, play-by-play, shot charts, team ratings, odds, line movement and player props. Use when any other skill needs basketball data, or when the user asks which tool answers a question or what a call costs.",
"included_files": [],
"name": "dunkapi-tool",
"skill_md_contents": "---\nname: dunkapi-tool\ndescription: \"Default data source for the DunkAPI skills. Routes every call to the 18 DunkAPI tools for NBA, WNBA, men's and women's college basketball: games, box scores, play-by-play, shot charts, team ratings, odds, line movement and player props. Use when any other skill needs basketball data, or when the user asks which tool answers a question or what a call costs.\"\nmetadata:\n version: 1.0.0\n author: DunkAPI\n user-invocable: false\n---\n\n# DunkAPI Tool\n\n> Connection: this plugin reaches the data through its MCP server, which the user connects with a normal OAuth sign-in. Never ask the user for an API key, token or password, and never put one in a tool argument.\n\n\nEvery other skill delegates data retrieval here. This skill owns the 18 tools, picks the cheapest call that answers the question, tracks credits, and explains the response envelope.\n\nFull per-tool reference: https://dunkapi.com/docs. Live coverage by season: https://dunkapi.com/docs/atlas.\n\n## Connecting\n\n| Path | How |\n|------|-----|\n| Tool catalogue | `GET https://mcp.dunkapi.com/v1/tools` (JSON Schema for every tool) |\n\n\n\nOver REST, every response is wrapped: `{\"data\": {...}}`. Read `response[\"data\"][\"standings\"]`, not `response[\"standings\"]`. REST responses carry `X-Credits-Used` and `X-Credits-Remaining` headers.\n\n## Conventions every tool shares\n\n- `league`: `nba` (default), `wnba`, `ncaam` (men's college), `ncaaw` (women's college). Not every tool accepts every league (table below).\n- `season` is the year the season ends: `2026` = 2025-26, `2027` = 2026-27. WNBA seasons are the calendar year.\n- `season_type`: `regular`, `postseason`, `play_in`, `preseason`.\n- Dates are `YYYY-MM-DD` in US Eastern time.\n- Game ids are ESPN game ids (strings like `\"401859967\"`). Player ids are ESPN athlete ids (like `\"3934672\"`). Teams take an id or an abbreviation (`NY`, `BOS`, `GS`, `SA`).\n- Paged tools return `next_offset`; pass it back as `offset`.\n\n## The 18 tools\n\n| Tool | Credits | Leagues | Returns | Used by |\n|------|---------|---------|---------|---------|\n| `list_teams` | 1 | all | Team ids, abbreviations, conference | game-lookup, team-analysis |\n| `search_players` | 1 | all | Player id from a name | player-scouting, player-form, prop-modeling |\n| `get_schedule` | 2 | all | Next 1-30 days with the median line | game-preview, odds-explorer |\n| `get_standings` | 2 | all | Standings computed from final games | team-analysis |\n| `get_injuries` | 2 | nba, wnba | Status, injury type, expected return | game-preview, prop-modeling |\n| `get_ratings` | 2 | all | DunkAPI Elo ratings, ranked | team-analysis, game-preview |\n| `get_game` | 5 | all | Both box scores, every player line, each book's open and close, win probability range | game-lookup, game-preview |\n| `get_player` | 5 | all | Profile, season averages and splits, last 10 games | player-scouting |\n| `get_player_games` | 5 | all | A player's game log | player-form, prop-modeling |\n| `get_leaders` | 5 | all | Season leaders by stat | player-scouting |\n| `get_team_stats` | 5 | all | Pace, ratings, four factors, three-point rate | team-analysis, feature-engineering |\n| `get_line_movement` | 10 | all | Snapshots of each book's line before tip-off | odds-explorer |\n| `get_plays` | 10 | all | Play-by-play with shot x/y, zone, expected points, win probability | shot-zone-analysis |\n| `get_shot_chart` | 10 | nba, wnba | Zone profile with expected points per shot | shot-zone-analysis |\n| `get_player_props` | 10 (per game, see below) | nba, wnba, ncaam | Prop lines by book, opening or closing | prop-modeling |\n\n`get_player_props` costs 10 credits for a whole game, or 10 credits per game returned when you pass `player_id` with `from_date` (up to 100 games). Pass `estimate_only: true` first to see the price without being charged.\n\n## Tool selection guide\n\n| You need | Use | Not |\n|----------|-----|-----|\n| Last night's scores | `list_games` with `date` | `get_game` per game |\n| Tonight's games and spread | `get_schedule` | `list_games` (past and scheduled mixed, no line) |\n| One game's box score and every book's line | `get_game` | `get_odds` + `get_plays` |\n| A day's lines for 3+ games | `get_odds` with `date` (10 flat) | `get_odds` per game (5 each) |\n| Player id | `search_players` | guessing from a name |\n| Last 10 games for a player | `get_player` (already included) | `get_player_games` (5 more credits) |\n| Rolling form over a season | `get_player_games` | `get_plays` |\n| Where a player shoots | `get_shot_chart` | `get_plays` and aggregating by hand |\n| Individual shots with game context | `get_plays` with `shots_only` | `get_shot_chart` |\n| Does a player beat his points line | `get_prop_history` | `get_player_props` per game |\n| Today's prop prices across books | `get_player_props` with `game_id` | `get_prop_history` |\n\n## Commands That Do NOT Exist\n\n| Not available | Use instead |\n|---------------|-------------|\n| `get_box_score` | `get_game` |\n| `get_player_stats` | `get_player` (profile, averages) or `get_player_games` (log) |\n| `get_live_odds`, `get_live_scores` | None. Data is historical and next-day; `get_schedule` shows posted pre-game lines |\n| `get_lineups`, `get_on_off` | None. Lineup and on/off data are not served |\n| `get_player_tracking` | None. No speed, touches or defender-distance data |\n| `get_advanced_stats` | `get_team_stats` for team ratings; compute player rates from `get_player_games` |\n| `get_head_to_head` | `list_games` with `team`, filter the opponent yourself |\n\n## Credit discipline\n\n- Look up ids once (1 credit each) and reuse them.\n- Prefer the date form of `get_odds` over per-game calls once you need 3 or more games.\n- `get_plays` and `get_shot_chart` are 10 credits each. Ask for a zone, a period, `clutch` or `shots_only` instead of pulling everything.\n- Never loop `get_line_movement` over a slate without telling the user the cost (10 per game).\n- A backtest over a full season of lines is thousands of credits. Sample first, then scale.\n\n## Error handling\n\n- Required fields are `game_id` (`get_game`, `get_line_movement`), `player_id` (`get_player`, `get_player_games`, `get_prop_history`), `name` (`search_players`), `stat` (`get_leaders`) and `market` (`get_prop_history`). Fix a rejected call, do not retry it blindly.\n- An empty list usually means the season, league or date has no data, not that the call failed. Check `season` (ends-in-year convention) and `league` first.\n- In `get_odds`, `count` is the number of book rows returned, not the number of games. Count `len(data[\"games\"])`.\n- Opening and closing fields can be `null` for one book while others have values.\n\n## Bring your own data\n\nIf the user supplies a CSV or JSON, skip the API and work with the file. State which columns you need (`date`, `home`, `away`, `home_score`, `away_score` at minimum for team work) and verify dates parse before any modeling.\n\n## What to Do Next\n\n| Situation | Skill |\n|-----------|-------|\n| Don't know which skill to load | `dispatch` |\n| Want games or scores | `game-lookup` |\n| Want team strength | `team-analysis` |\n| Want lines and prices | `odds-explorer` |\n"
}SHA-256 of public snapshot: fed55d1915c70948a04b5603ec9e1bbb23c4ace07514346ff49996df31adb74c