nfl_search_plays

Free tier

Play finder

PREFERRED for finding specific plays. Search by player, team, season, week, play type, situation, touchdowns, turnovers, or minimum yards. Returns plays sorted by impact (EPA). Set group_by to rank players (passer/rusher/receiver/scorer) by play, touchdown, and yard counts instead of listing individual plays. Use this instead of nfl_query whenever looking for plays.

Minimum tier
Free
Data coverage
Varies by query

Parameters

NameTypeRequiredDescription
teamstringOptionalOffensive team abbreviation (e.g. KC, PHI, BUF)
opponentstringOptionalDefensive team abbreviation
playerstringOptionalPlayer name — full ('Justin Jefferson') or short ('J.Jefferson') both accepted.
seasonintegerOptionalExact season year (2013–2025). Use season_from/season_to for ranges.
season_fromintegerOptionalStart of season range (inclusive), e.g. 2020 for 'since 2020'
season_tointegerOptionalEnd of season range (inclusive)
weekintegerOptionalWeek number (1–22)
season_typestringOptionalFilter by season type: REG (regular season) or POST (playoffs)Options: REG, POST
play_typestringOptionalType of playOptions: pass, run, field_goal, punt, kickoff
situationstringOptionalGame situation filterOptions: red_zone, third_down, fourth_down, two_minute
is_touchdownbooleanOptionalOnly touchdown plays
is_turnoverbooleanOptionalOnly turnover plays (INT or fumble lost)
min_yardsintegerOptionalMinimum yards gained
max_rowsintegerOptionalMax results (default 50, max 500)Default: 50
group_bystringOptionalAggregate the filtered plays per player instead of returning individual plays: play count, touchdowns, yards, and average EPA, ranked by play count. 'scorer' groups by the touchdown scorer.Options: passer, rusher, receiver, scorer

Example request

A Model Context Protocol tools/call over Streamable HTTP. Replace YOUR_API_KEY with a key from your dashboard.

curl -X POST https://mcp.nflmcp.com/mcp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "nfl_search_plays",
    "arguments": {
      "player": "Justin Jefferson",
      "season": 2024,
      "is_touchdown": true,
      "max_rows": 5
    }
  }
}'

Example response

Excerpt · lists trimmed
{
  "rows": [
    {
      "season": 2024,
      "week": 2,
      "posteam": "MIN",
      "defteam": "SF",
      "down": 2,
      "ydstogo": 9,
      "play_type": "pass",
      "yards_gained": 97,
      "epa": 7.665,
      "desc": "(9:51) 14-S.Darnold pass deep middle to 18-J.Jefferson for 97 yards, TOUCHDOWN.",
      "passer_player_name": "S.Darnold",
      "rusher_player_name": null,
      "receiver_player_name": "J.Jefferson",
      "touchdown": 1,
      "interception": 0
    },
    {
      "season": 2024,
      "week": 14,
      "posteam": "MIN",
      "defteam": "ATL",
      "down": 3,
      "ydstogo": 8,
      "play_type": "pass",
      "yards_gained": 52,
      "epa": 5.64,
      "desc": "(3:36) (Shotgun) 14-S.Darnold pass deep right to 18-J.Jefferson for 52 yards, TOUCHDOWN.",
      "passer_player_name": "S.Darnold",
      "rusher_player_name": null,
      "receiver_player_name": "J.Jefferson",
      "touchdown": 1,
      "interception": 0
    },
    {
      "season": 2024,
      "week": 1,
      "posteam": "MIN",
      "defteam": "NYG",
      "down": 4,
      "ydstogo": 2,
      "play_type": "pass",
      "yards_gained": 3,
      "epa": 3.913,
      "desc": "(6:58) (Shotgun) 14-S.Darnold pass short left to 18-J.Jefferson for 3 yards, TOUCHDOWN.",
      "passer_player_name": "S.Darnold",
      "rusher_player_name": null,
      "receiver_player_name": "J.Jefferson",
      "touchdown": 1,
      "interception": 0
    }
  ],
  "row_count": 5
}