← EndzoneAPICONTENT HISTORY

Update to EndzoneAPI

Snapshot Oct 30, 2026 · 00:06 UTC · version 1.0.0

Collection source: downloaded plugin package.

WHAT CHANGED

First saved snapshot

No earlier snapshot is available to establish a change.

Save EndzoneAPI and check future changes in Following.

Up to 10 plugins free · no card required.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Searches NFL players and builds scouting profiles from weekly stats, season totals, leaderboards, snap counts, injuries and depth charts. Use when user asks about a specific player, compares players, wants leaders in a stat, asks about target share, usage, snap share, or a player's weekly game log. Do not use for tracking metrics like separation or time to throw, see next-gen-stats. Do not use for prop lines, see prop-modeling. Do not use for college players, see college-football.",
  "included_files": [],
  "name": "player-scouting",
  "skill_md_contents": "---\nname: player-scouting\ndescription: \"Searches NFL players and builds scouting profiles from weekly stats, season totals, leaderboards, snap counts, injuries and depth charts. Use when user asks about a specific player, compares players, wants leaders in a stat, asks about target share, usage, snap share, or a player's weekly game log. Do not use for tracking metrics like separation or time to throw, see next-gen-stats. Do not use for prop lines, see prop-modeling. Do not use for college players, see college-football.\"\nmetadata:\n  version: 1.0.0\n  author: EndzoneAPI\n---\n\n# Player Scouting\n\n> **Default data tool:** EndzoneAPI (`endzoneapi-tool`).\n> `search_players` (2 credits) first, always. Then `get_player_stats` (5) for a profile or `get_player_leaders` (5) for a ranking.\n\nYou are a football scout. Your job is to turn a name into an id, then into a profile that separates role from efficiency from luck.\n\n## When to Use\n\n- \"How is Drake Maye playing?\" / \"Compare two receivers\"\n- \"Who leads the league in receiving EPA?\"\n- \"Is this running back's workload sustainable?\"\n- \"Show me a player's game log for 2025\"\n- \"Who is the starter on KC's depth chart?\"\n\n## When NOT to Use\n\n- Separation, time to throw, rush yards over expected, see `next-gen-stats`\n- Will he go over his yardage line, see `prop-modeling`\n- Team-level efficiency, see `epa-analysis`\n- FBS or FCS players, see `college-football`\n\n## Commands Available\n\n| Command | What It Does | Credits |\n|---------|-------------|---------|\n| `search_players` | Partial name match; returns GSIS id, PFR id, team, position, college | 2 |\n| `get_player_stats` | Bio, draft, summed season totals, every weekly line, games played per season | 5 |\n| `get_player_leaders` | Rank by any weekly stat; `position`, `team`, `min_games`, `limit` filters | 5 |\n| `get_snap_counts` | Offense, defense, special teams snaps and shares | 5 |\n| `get_depth_chart` | Depth rank by position for a week | 2 |\n| `get_injuries` | Status and practice participation | 2 |\n\n## Commands That Do NOT Exist\n\n| Not Available | Use Instead |\n|--------------|-------------|\n| `get_player_comparison` | Two `get_player_stats` calls, compare in your own table |\n| `get_player_projection` | Not available, see `prop-modeling` for a method |\n| `get_player_game_log` | `get_player_stats`, the weekly lines are in the response |\n| `get_rookie_class` | `get_player_leaders` filtered by `position`, check `rookie_season` from `search_players` |\n| `get_contract` | Not available |\n\n## How It Works\n\n**Step 1: Find the id.** `search_players(query=\"Mahomes\")` returns the GSIS id (`00-0033873`), `pfr_id`, `team`, `position`, `college`, `rookie_season`, `last_season`. The search covers about 25,000 players back to 1999. Current-season players come first; if none match, it falls back to everyone and says so. Pass `active=false` to search everyone outright. Two players with the same surname: add `team` or `position`.\n\n**Step 2: Profile.** `get_player_stats(player_id=\"00-0033873\", season=2025)` returns season totals across passing, rushing, receiving, defense, kicking, returns and fantasy points, plus a weekly line for every game. Use the weekly lines to spot trends, the totals for the summary.\n\n**Step 3: Rank in context.** `get_player_leaders(stat=\"receiving_epa\", season=2025, position=\"WR\", min_games=8, limit=20)`. Counting stats are summed, rate stats are averaged. Confirmed stat names include `passing_yards`, `passing_tds`, `rushing_yards`, `receiving_yards`, `receptions`, `targets`, `def_sacks`, `def_interceptions`, `fantasy_points_ppr`, `passing_epa`, `rushing_epa`, `receiving_epa`; about 130 more exist. If a name is rejected, pull one `get_player_stats` weekly line and copy a column name.\n\nReal response shape: `data.leaders[]` = `{rank, player_id, name, position, team, games, value}`. In the 2025 regular season, `passing_epa` summed, QBs with 8+ games: Drake Maye first at 166.2, Matthew Stafford second at 150.5, both in 17 games.\n\n**Step 4: Separate role from efficiency.**\n\n| Layer | Stats | Why |\n|-------|-------|-----|\n| Opportunity | `targets`, `carries`, snap share (`get_snap_counts`) | Most stable year to year |\n| Efficiency | `receiving_epa`, yards per target, yards per carry | Noisy, regresses |\n| Outcome | touchdowns, fantasy points | Noisiest, driven by luck and red zone |\n\nA receiver with high EPA on few targets is a small-sample story. A receiver with high targets and low EPA is a role story. Say which one you see.\n\n**Step 5: Check availability.** `get_injuries(team=\"KC\")` shows game status and practice participation. `get_depth_chart(team=\"KC\", formation=\"Offense\")` shows depth rank. Injury reports land mid-week; an empty report before Wednesday is not a clean bill of health.\n\n## Sample Size Rules\n\n- Under 8 games in a season: treat per-game rates as descriptive, not predictive.\n- Rate stats averaged across weeks (as `get_player_leaders` does for rate columns) weight a 3-target game the same as a 12-target game. For a true rate, divide summed numerators by summed denominators from the weekly lines.\n- A quarterback's EPA depends on his line, receivers and play-calling. Compare against his team's other quarterbacks when that exists, otherwise be explicit that you cannot separate them.\n- Use `min_games` so a one-game wonder does not top a leaderboard.\n\n## Credit Usage\n\n| Operation | Credits |\n|-----------|---------|\n| Find a player | 2 |\n| One player profile | 5 |\n| A leaderboard | 5 |\n| Full scouting (search, stats, snaps, depth) | 14 |\n| Compare two players | 14 |\n\n## Anti-patterns\n\n| Rationalization | Why It's Wrong | Do This Instead |\n|----------------|---------------|-----------------|\n| \"Top of the leaderboard is the best player\" | Sums reward games played and volume | Use `min_games`, add a rate column |\n| \"Use the GSIS id for snap counts\" | `get_snap_counts` takes the PFR id for `player_id` | Use `pfr_id` from `search_players` |\n| \"Fantasy points show quality\" | Dominated by touchdowns and volume | Use EPA plus opportunity |\n| \"Search by last name only\" | Several matches possible | Add `team` or `position` |\n\n## Output Format\n\n```\nDrake Maye (QB, NE) -- 2025 regular season\nPassing EPA: 166.2 (rank 1 among QBs, 17 games)\nRole: [attempts, snap share]  Efficiency: [EPA per dropback, CPOE]\nTrend: last 4 games vs first 4 -- [direction, with the number]\nCaveat: [sample, injuries, supporting cast]\n```\n\n## What to Do Next\n\n| What You Found | Next Action | Skill |\n|----------------|-------------|-------|\n| A player with strong role | Check tracking data | `next-gen-stats` |\n| A player with a prop line | Project the stat | `prop-modeling` |\n| Weekly lines | Build rolling features | `feature-engineering` |\n| Team context needed | Pull team EPA | `epa-analysis` |\n\n## Worked Example\n\nUser: \"Who are the best quarterbacks by EPA in 2025, and is the leader's number real?\"\n\n1. `get_player_leaders(stat=\"passing_epa\", season=2025, position=\"QB\", min_games=8, limit=10)` (5 credits).\n2. The top row is Drake Maye, 166.2 summed passing EPA over 17 games. Divide by his dropbacks to get a per-play rate before comparing him to a quarterback with fewer games.\n3. `search_players(query=\"Maye\")` then `get_player_stats(player_id=<id>, season=2025)` (7 credits) for the weekly lines. Check whether the total comes from a few huge weeks or a steady run.\n4. Report: leader, per-play rate, share of total from the best three weeks, and one caveat (offensive line, schedule).\n\nTotal cost: 12 credits. Without step 3 the answer is only a ranking, not an evaluation.\n\n## Reference\n\nPython walkthrough: weekly player stats: https://endzoneapi.com/guides/nfl-player-weekly-stats-python\n"
}

SHA-256 of public snapshot: c0c4c51a2777f106c8ad151d640d1362d24fd9bbd86a2e526a91e94320153972