get_snap_counts
Offensive, defensive, and special-teams snaps and shares by game or player
When to use it
You are measuring playing time or usage: snaps and snap share per game by phase.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| game_id | string | no | Game id, e.g. 2025_01_KC_BUF |
| player_id | string | no | PFR player id (from search_players pfr_id) |
| team | string | no | Team code |
| season | string | number | no | Season year (with team or player) |
| week | integer | no | Week filter |
| limit | integer | no | Max rows (default 200) |
Request
curl -X POST https://football-mcp-production.up.railway.app/v1/get_snap_counts \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"game_id": "2025_01_KC_LAC",
"limit": 5
}'Over MCP, ask for it in plain English and the client calls get_snap_counts itself. Point any MCP client at https://football-mcp-production.up.railway.app/mcp?key=YOUR_API_KEY.
Response
{
"filters": {
"game_id": "2025_01_KC_LAC",
"player_id": null,
"team": null,
"season": null,
"week": null
},
"snap_counts": [
{
"game_id": "2025_01_KC_LAC",
"season": 2025,
"week": 1,
"team": "KC",
"opponent": "LAC",
"player": "Trey Smith",
"pfr_player_id": "SmitTr05",
"position": "G",
"offense_snaps": 61,
"offense_pct": 1,
"defense_snaps": 0,
"defense_pct": 0,
"st_snaps": 4,
"st_pct": 0.16
},
{
"game_id": "2025_01_KC_LAC",
"season": 2025,
"week": 1,
"team": "KC",
"opponent": "LAC",
"player": "Creed Humphrey",
"pfr_player_id": "HumpCr00",
"position": "C",
"offense_snaps": 61,
"offense_pct": 1,
"defense_snaps": 0,
"defense_pct": 0,
"st_snaps": 4,
"st_pct": 0.16
},
{
"game_id": "2025_01_KC_LAC",
"season": 2025,
"week": 1,
"team": "KC",
"opponent": "LAC",
"player": "Patrick Mahomes",
"pfr_player_id": "MahoPa00",
"position": "QB",
"offense_snaps": 61,
"offense_pct": 1,
"defense_snaps": 0,
"defense_pct": 0,
"st_snaps": 0,
"st_pct": 0
}
],
"count": 5,
"note": "Snap counts are keyed by PFR player id (see pfr_id on search_players)."
}Response fields
| Field | Type | Description |
|---|---|---|
| filters | object | |
| filters.game_id | string | |
| filters.player_id | null | |
| filters.team | null | |
| filters.season | null | |
| filters.week | null | |
| snap_counts[] | array | List of objects |
| snap_counts[].game_id | string | |
| snap_counts[].season | number | |
| snap_counts[].week | number | |
| snap_counts[].team | string | |
| snap_counts[].opponent | string | |
| snap_counts[].player | string | |
| snap_counts[].pfr_player_id | string | |
| snap_counts[].position | string | |
| snap_counts[].offense_snaps | number | |
| snap_counts[].offense_pct | number | |
| snap_counts[].defense_snaps | number | |
| snap_counts[].defense_pct | number | |
| snap_counts[].st_snaps | number | |
| snap_counts[].st_pct | number | |
| count | number | |
| note | string |
Related endpoints
Takes the player_id this one returns.
Weekly and season stat lines for one player: passing, rushing, receiving, defense, kicking, fantasy
Takes the game_id this one returns.
Full game detail with team stats, starting QBs, odds, weather, and officials
Takes the player_id this one returns.
Next Gen Stats tracking metrics and Pro Football Reference advanced stats
Returns the player_id this one takes.
Leaderboard for any stat, filtered by position, team, and season
Try it
500 credits free on signup — 100 calls to get_snap_counts — and no card.