Skip to content
Multi-table10 credits

get_plays

Play-by-play with EPA, win probability, situation filters, and optional FTN charting

When to use it

You are doing play-level analysis: EPA, WPA, success rate, and situation filters (down, red zone, win-probability band) with pagination. Set include_charting for FTN's manual charting from 2022 on, or filter straight on it with is_play_action, is_motion, is_rpo, is_screen_pass, is_no_huddle, is_trick_play, is_qb_out_of_pocket, is_drop, and min_blitzers.

Parameters

NameTypeRequiredDescription
game_idstringnoGame id, e.g. 2025_01_KC_BUF
seasonstring | numbernoSeason year (required when game_id is not set)
weekintegernoWeek
posteamstringnoOffense team code
defteamstringnoDefense team code
play_typeenum: pass | run | punt | kickoff | field_goal | extra_point | qb_kneel | qb_spike | no_playnoPlay type
downintegernoDown
quarterintegernoQuarter (5+ = overtime)
passer_idstringnoGSIS id of the passer
rusher_idstringnoGSIS id of the rusher
receiver_idstringnoGSIS id of the receiver
min_wpnumbernoMinimum pre-play win probability for the offense
max_wpnumbernoMaximum pre-play win probability
red_zonebooleannoOnly plays inside the 20
third_downbooleannoOnly third downs
include_chartingbooleannoAttach FTN manual charting to each play (2022+): alignment, motion, play action, screens, RPO, blitzers, drops
is_play_actionbooleannoCharting filter: play action (2022+)
is_motionbooleannoCharting filter: pre-snap motion (2022+)
is_rpobooleannoCharting filter: run-pass option (2022+)
is_screen_passbooleannoCharting filter: screen pass (2022+)
is_no_huddlebooleannoCharting filter: no huddle (2022+)
is_trick_playbooleannoCharting filter: trick play (2022+)
is_qb_out_of_pocketbooleannoCharting filter: quarterback out of the pocket (2022+)
is_dropbooleannoCharting filter: charted drop (2022+)
min_blitzersintegernoCharting filter: at least this many blitzers (2022+). FTN counts rushers beyond the base rush, so this is typically 0-3; 5+ is almost never charted.
limitintegernoMax plays (default 200)
offsetintegernoPagination offset

Request

bash
curl -X POST https://football-mcp-production.up.railway.app/v1/get_plays \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
  "season": 2025,
  "posteam": "KC",
  "is_play_action": true,
  "include_charting": true,
  "limit": 5
}'

Over MCP, ask for it in plain English and the client calls get_plays itself. Point any MCP client at https://football-mcp-production.up.railway.app/mcp?key=YOUR_API_KEY.

Response

json
{
  "plays": [
    {
      "game_id": "2025_01_KC_LAC",
      "play_id": 476,
      "season": 2025,
      "week": 1,
      "posteam": "KC",
      "defteam": "LAC",
      "qtr": 1,
      "time": "07:57",
      "down": 2,
      "ydstogo": 9,
      "yardline_100": 53,
      "yrdln": "KC 47",
      "play_type": "pass",
      "desc": "(7:57) (Shotgun) 15-P.Mahomes pass short left to 87-T.Kelce to LAC 43 for 10 yards (32-A.Gilman).",
      "yards_gained": 10,
      "epa": 1.121511,
      "wpa": 0.019656122,
      "wp": 0.25632313,
      "vegas_wp": 0.4229564,
      "success": 1,
      "first_down": 1,
      "touchdown": 0,
      "interception": 0,
      "fumble_lost": 0,
      "sack": 0,
      "penalty": 0,
      "penalty_type": null,
      "shotgun": 1,
      "no_huddle": 0,
      "pass_length": "short",
      "pass_location": "left",
      "air_yards": 10,
      "yards_after_catch": 0,
      "run_location": null,
      "run_gap": null,
      "cpoe": 33.012028,
      "xpass": 0.70471954,
      "passer_player_id": "00-0033873",
      "passer_player_name": "P.Mahomes",
      "rusher_player_id": null,
      "rusher_player_name": null,
      "receiver_player_id": "00-0030506",
      "receiver_player_name": "T.Kelce",
      "posteam_score": 0,
      "defteam_score": 7,
      "score_differential": -7,
      "drive": 3,
      "drive_result": "Punt",
      "series_result": "First down",
      "charting": {
        "starting_hash": "M",
        "qb_location": "S",
        "n_offense_backfield": 1,
        "n_defense_box": 6,
        "n_blitzers": 0,
        "n_pass_rushers": 4,
        "is_no_huddle": false,
        "is_motion": true,
        "is_play_action": true,
        "is_screen_pass": false,
        "is_rpo": false,
        "is_trick_play": false,
        "is_qb_out_of_pocket": false,
        "is_qb_sneak": false,
        "is_qb_fault_sack": false,
        "is_interception_worthy": false,
        "is_throw_away": false,
        "is_catchable_ball": true,
        "is_contested_ball": false,
        "is_created_reception": false,
        "is_drop": false,
        "read_thrown": "1"
      }
    },
    {
      "game_id": "2025_01_KC_LAC",
      "play_id": 726,
      "season": 2025,
      "week": 1,
      "posteam": "KC",
      "defteam": "LAC",
      "qtr": 1,
      "time": "04:28",
      "down": 1,
      "ydstogo": 10,
      "yardline_100": 58,
      "yrdln": "KC 42",
      "play_type": "pass",
      "desc": "(4:28) (Shotgun) 15-P.Mahomes pass incomplete short left to 5-M.Brown.",
      "yards_gained": 0,
      "epa": -0.53228486,
      "wpa": -0.015009612,
      "wp": 0.26707566,
      "vegas_wp": 0.4783187,
      "success": 0,
      "first_down": 0,
      "touchdown": 0,
      "interception": 0,
      "fumble_lost": 0,
      "sack": 0,
      "penalty": 0,
      "penalty_type": null,
      "shotgun": 1,
      "no_huddle": 0,
      "pass_length": "short",
      "pass_location": "left",
      "air_yards": 11,
      "yards_after_catch": null,
      "run_location": null,
      "run_gap": null,
      "cpoe": -67.34852,
      "xpass": 0.5162144,
      "passer_player_id": "00-0033873",
      "passer_player_name": "P.Mahomes",
      "rusher_player_id": null,
      "rusher_player_name": null,
      "receiver_player_id": "00-0035662",
      "receiver_player_name": "M.Brown",
      "posteam_score": 0,
      "defteam_score": 7,
      "score_differential": -7,
      "drive": 5,
      "drive_result": "Punt",
      "series_result": "Punt",
      "charting": {
        "starting_hash": "L",
        "qb_location": "S",
        "n_offense_backfield": 2,
        "n_defense_box": 5,
        "n_blitzers": 2,
        "n_pass_rushers": 6,
        "is_no_huddle": false,
        "is_motion": false,
        "is_play_action": true,
        "is_screen_pass": false,
        "is_rpo": false,
        "is_trick_play": false,
        "is_qb_out_of_pocket": false,
        "is_qb_sneak": false,
        "is_qb_fault_sack": false,
        "is_interception_worthy": true,
        "is_throw_away": false,
        "is_catchable_ball": false,
        "is_contested_ball": false,
        "is_created_reception": false,
        "is_drop": false,
        "read_thrown": "1"
      }
    },
    {
      "game_id": "2025_01_KC_LAC",
      "play_id": 1342,
      "season": 2025,
      "week": 1,
      "posteam": "KC",
      "defteam": "LAC",
      "qtr": 2,
      "time": "10:13",
      "down": 1,
      "ydstogo": 10,
      "yardline_100": 41,
      "yrdln": "LAC 41",
      "play_type": "run",
      "desc": "(10:13) 15-P.Mahomes scrambles left end ran ob at LAC 37 for 4 yards (3-D.James).",
      "yards_gained": 4,
      "epa": -0.19704096,
      "wpa": 0.005089611,
      "wp": 0.20828883,
      "vegas_wp": 0.34518102,
      "success": 0,
      "first_down": 0,
      "touchdown": 0,
      "interception": 0,
      "fumble_lost": 0,
      "sack": 0,
      "penalty": 0,
      "penalty_type": null,
      "shotgun": 0,
      "no_huddle": 0,
      "pass_length": null,
      "pass_location": null,
      "air_yards": null,
      "yards_after_catch": null,
      "run_location": "left",
      "run_gap": "end",
      "cpoe": null,
      "xpass": 0.50771487,
      "passer_player_id": null,
      "passer_player_name": null,
      "rusher_player_id": "00-0033873",
      "rusher_player_name": "P.Mahomes",
      "receiver_player_id": null,
      "receiver_player_name": null,
      "posteam_score": 0,
      "defteam_score": 10,
      "score_differential": -10,
      "drive": 7,
      "drive_result": "Field goal",
      "series_result": "First down",
      "charting": {
        "starting_hash": "R",
        "qb_location": "U",
        "n_offense_backfield": 2,
        "n_defense_box": 7,
        "n_blitzers": 0,
        "n_pass_rushers": 4,
        "is_no_huddle": false,
        "is_motion": true,
        "is_play_action": true,
        "is_screen_pass": false,
        "is_rpo": false,
        "is_trick_play": false,
        "is_qb_out_of_pocket": true,
        "is_qb_sneak": false,
        "is_qb_fault_sack": false,
        "is_interception_worthy": false,
        "is_throw_away": false,
        "is_catchable_ball": false,
        "is_contested_ball": false,
        "is_created_reception": false,
        "is_drop": false,
        "read_thrown": "SD"
      }
    }
  ],
  "summary": {
    "plays": 5,
    "epa_total": 0.36,
    "epa_per_play": 0.072,
    "success_rate": 0.4
  },
  "count": 5,
  "charted_plays": 5,
  "next_offset": 5
}

Response fields

FieldTypeDescription
plays[]arrayList of objects
plays[].game_idstring
plays[].play_idnumber
plays[].seasonnumber
plays[].weeknumber
plays[].posteamstring
plays[].defteamstring
plays[].qtrnumber
plays[].timestring
plays[].downnumber
plays[].ydstogonumber
plays[].yardline_100number
plays[].yrdlnstring
plays[].play_typestring
plays[].descstring
plays[].yards_gainednumber
plays[].epanumber
plays[].wpanumber
plays[].wpnumber
plays[].vegas_wpnumber
plays[].successnumber
plays[].first_downnumber
plays[].touchdownnumber
plays[].interceptionnumber
plays[].fumble_lostnumber
plays[].sacknumber
plays[].penaltynumber
plays[].penalty_typenull
plays[].shotgunnumber
plays[].no_huddlenumber
plays[].pass_lengthstring
plays[].pass_locationstring
plays[].air_yardsnumber
plays[].yards_after_catchnumber
plays[].run_locationnull
plays[].run_gapnull
plays[].cpoenumber
plays[].xpassnumber
plays[].passer_player_idstring
plays[].passer_player_namestring

Related endpoints

Try it

500 credits free on signup — 50 calls to get_plays — and no card.