NFLPlayByPlays
Every individual play of every NFL game — what happened, where on the field, with what result. Includes pass and rush attempts, penalties, special teams, EPA, win probability, and the full game-clock and down-and-distance context.
Properties
| Name | Type | Description |
|---|---|---|
| aborted_play | boolean | Play was aborted |
| air_epa | numbernull | EPA from air yards |
| air_wpa | numbernull | WPA from air yards |
| air_yds | integernull | Yards in air (perpendicular to LOS) |
| assist_tackle | boolean | Assist tackle on play |
| assist_tackle_1_player_id | stringnull | Assist tackler 1 GSIS ID |
| assist_tackle_1_player_name | stringnull | Assist tackler 1 name |
| assist_tackle_1_team | stringnull | Assist tackler 1 team |
| assist_tackle_2_player_id | stringnull | Assist tackler 2 GSIS ID |
| assist_tackle_2_player_name | stringnull | Assist tackler 2 name |
| assist_tackle_2_team | stringnull | Assist tackler 2 team |
| assist_tackle_3_player_id | stringnull | Assist tackler 3 GSIS ID |
| assist_tackle_3_player_name | stringnull | Assist tackler 3 name |
| assist_tackle_3_team | stringnull | Assist tackler 3 team |
| assist_tackle_4_player_id | stringnull | Assist tackler 4 GSIS ID |
| assist_tackle_4_player_name | stringnull | Assist tackler 4 name |
| assist_tackle_4_team | stringnull | Assist tackler 4 team |
| away_coach | stringnull | Away team head coach |
| away_score | integernull | Total away points |
| away_team | stringnull | Away team abbreviation |
| away_timeouts_remaining | integernull | Away timeouts remaining |
| away_wp | numbernull | Away team win probability |
| away_wp_post | numbernull | Away WP after play |
| blocked_player_id | stringnull | Blocked kick player GSIS ID |
| blocked_player_name | stringnull | Blocked kick player name |
| comp_air_epa | numbernull | Completion air EPA |
| comp_air_wpa | numbernull | Completion air WPA |
| comp_yac_epa | numbernull | Completion YAC EPA |
| comp_yac_wpa | numbernull | Completion YAC WPA |
| complete_pass | boolean | Pass completed |
| cp | numbernull | Completion probability |
| cpoe | numbernull | Completion percentage over expected |
| def_wp | numbernull | Win probability for defense |
| defensive_extra_point_attempt | boolean | Defense extra point attempt |
| defensive_extra_point_conv | boolean | Defense extra point success |
| defensive_team_id | integernull | FK to teams table for defensive team |
| defensive_two_point_attempt | boolean | Defense two-point attempt |
| defensive_two_point_conv | boolean | Defense two-point conversion success |
| defteam | stringnull | Defensive team abbreviation |
| defteam_score | integernull | Defense team score at start |
| defteam_score_post | integernull | Defense team score at end |
| defteam_timeouts_remaining | integernull | Defensive team timeouts |
| desc | stringnull | Full play description text |
| div_game | boolean | Division game |
| down | integernull | Down (1-4) |
| drive | integernull | Drive number in game |
| drive_end_transition | stringnull | How drive ended |
| drive_end_yard_line | stringnull | Yard line at drive end |
| drive_ended_with_score | boolean | Drive resulted in score |
| drive_first_downs | integernull | First downs gained in drive |
| drive_game_clock_end | stringnull | Game clock at drive end |
| drive_game_clock_start | stringnull | Game clock at drive start |
| drive_id | integernull | FK to game_drives table |
| drive_inside20 | boolean | Drive reached red zone |
| drive_play_count | integernull | Number of plays in drive |
| drive_play_id_ended | stringnull | Last play_id of drive |
| drive_play_id_started | stringnull | First play_id of drive |
| drive_quarter_end | integernull | Quarter when drive ended |
| drive_quarter_start | integernull | Quarter when drive started |
| drive_real_start_time | stringnull | Drive start time (real clock) |
| drive_start_transition | stringnull | How possession was obtained |
| drive_start_yard_line | stringnull | Yard line at drive start |
| drive_time_of_possession | stringnull | Drive time of possession (mm:ss) |
| drive_yds_penalized | integernull | Penalty yards during drive |
| end_clock_time | stringnull | Game clock at play end |
| end_yard_line | stringnull | Yard line at play end |
| ep | numbernull | Expected points before play |
| epa | numbernull | Expected points added |
| extra_point_attempt | boolean | Extra point attempt |
| extra_point_prob | numbernull | Extra point probability |
| extra_point_result | stringnull | good, failed, blocked, safety, aborted |
| fantasy | stringnull | Fantasy designation |
| fantasy_id | stringnull | Fantasy identifier |
| fantasy_player_id | stringnull | Fantasy designation player ID |
| fantasy_player_name | stringnull | Fantasy designation player name |
| fg_prob | numbernull | FG probability |
| field_goal_attempt | boolean | Field goal attempt |
| field_goal_result | stringnull | made, missed, or blocked |
| first_down | boolean | First down achieved |
| first_down_pass | boolean | Passing first down |
| first_down_penalty | boolean | First down via penalty |
| first_down_rush | boolean | Rushing first down |
| fixed_drive | integernull | Manual drive number correction |
| fixed_drive_result | stringnull | Manual drive result correction |
| forced_fumble_player_1_player_id | stringnull | Forced fumble player 1 GSIS ID |
| forced_fumble_player_1_player_name | stringnull | Forced fumble player 1 name |
| forced_fumble_player_1_team | stringnull | Forced fumble team 1 |
| forced_fumble_player_2_player_id | stringnull | Forced fumble player 2 GSIS ID |
| forced_fumble_player_2_player_name | stringnull | Forced fumble player 2 name |
| forced_fumble_player_2_team | stringnull | Forced fumble team 2 |
| fourth_down_converted | boolean | Fourth down conversion |
| fourth_down_failed | boolean | Fourth down failure |
| fumble | boolean | Fumble occurred |
| fumble_forced | boolean | Fumble was forced |
| fumble_lost | boolean | Fumble was lost |
| fumble_not_forced | boolean | Fumble was not forced |
| fumble_out_of_bounds | boolean | Fumble went OOB |
| fumble_recovery_1_player_id | stringnull | Recovery player 1 GSIS ID |
| fumble_recovery_1_player_name | stringnull | Recovery player 1 name |
| fumble_recovery_1_team | stringnull | Recovery team 1 |
| fumble_recovery_1_yds | integernull | Recovery yards 1 |
| fumble_recovery_2_player_id | stringnull | Recovery player 2 GSIS ID |
| fumble_recovery_2_player_name | stringnull | Recovery player 2 name |
| fumble_recovery_2_team | stringnull | Recovery team 2 |
| fumble_recovery_2_yds | integernull | Recovery yards 2 |
| fumbled_1_player_id | stringnull | First fumbler GSIS ID |
| fumbled_1_player_name | stringnull | First fumbler name |
| fumbled_1_team | stringnull | First fumbler team |
| fumbled_2_player_id | stringnull | Second fumbler GSIS ID |
| fumbled_2_player_name | stringnull | Second fumbler name |
| fumbled_2_team | stringnull | Second fumbler team |
| game_half | stringnull | Half1, Half2, or Overtime |
| game_id | integer | FK to games table |
| game_seconds_remaining | integer | Seconds remaining in game |
| game_stadium | stringnull | Game stadium name |
| goal_to_go | boolean | Goal-to-go situation |
| half_sack_1_player_id | stringnull | Half-sack player 1 GSIS ID |
| half_sack_1_player_name | stringnull | Half-sack player 1 name |
| half_sack_2_player_id | stringnull | Half-sack player 2 GSIS ID |
| half_sack_2_player_name | stringnull | Half-sack player 2 name |
| half_seconds_remaining | integer | Seconds remaining in half |
| home_coach | stringnull | Home team head coach |
| home_opening_kickoff | boolean | Home team had opening kickoff |
| home_score | integernull | Total home points |
| home_team | stringnull | Home team abbreviation |
| home_timeouts_remaining | integernull | Home timeouts remaining |
| home_wp | numbernull | Home team win probability |
| home_wp_post | numbernull | Home WP after play |
| id | integer | Primary Key |
| incomplete_pass | boolean | Pass incomplete |
| interception | boolean | Interception indicator |
| interception_player_id | stringnull | Interceptor GSIS ID |
| interception_player_name | stringnull | Interceptor name |
| jersey_number | integernull | Primary player jersey |
| kick_distance | integernull | Kick distance in yards |
| kicker_player_id | stringnull | Kicker GSIS ID |
| kicker_player_name | stringnull | Kicker name |
| kickoff_attempt | boolean | Kickoff attempt |
| kickoff_downed | boolean | Kickoff downed |
| kickoff_fair_catch | boolean | Kickoff fair catch |
| kickoff_in_endzone | boolean | Kickoff in endzone |
| kickoff_inside_twenty | boolean | Kickoff inside 20 |
| kickoff_out_of_bounds | boolean | Kickoff OOB |
| kickoff_returner_player_id | stringnull | Kickoff returner GSIS ID |
| kickoff_returner_player_name | stringnull | Kickoff returner name |
| lateral_interception_player_id | stringnull | Lateral after INT GSIS ID |
| lateral_interception_player_name | stringnull | Lateral after INT name |
| lateral_kickoff_returner_player_id | stringnull | Lateral kickoff returner GSIS ID |
| lateral_kickoff_returner_player_name | stringnull | Lateral kickoff returner name |
| lateral_punt_returner_player_id | stringnull | Lateral punt returner GSIS ID |
| lateral_punt_returner_player_name | stringnull | Lateral punt returner name |
| lateral_receiver_player_id | stringnull | Lateral receiver GSIS ID (pass) |
| lateral_receiver_player_name | stringnull | Lateral receiver name (pass) |
| lateral_receiving_yds | integernull | Yards after lateral (pass) |
| lateral_reception | boolean | Lateral on pass play |
| lateral_return | boolean | Lateral on return |
| lateral_rush | boolean | Lateral on rush play |
| lateral_rusher_player_id | stringnull | Lateral receiver GSIS ID (rush) |
| lateral_rusher_player_name | stringnull | Lateral receiver name (rush) |
| lateral_rushing_yds | integernull | Yards after lateral (rush) |
| lateral_sack_player_id | stringnull | Lateral after sack GSIS ID |
| lateral_sack_player_name | stringnull | Lateral after sack name |
| location | stringnull | Home or Neutral |
| name | stringnull | Primary player name (passer or rusher) |
| nfl_api_id | stringnull | UUID from NFL API |
| no_huddle | boolean | No-huddle offense |
| no_score_prob | numbernull | Probability of no score |
| old_game_id | stringnull | Legacy NFL game ID format |
| opp_fg_prob | numbernull | Opponent FG probability |
| opp_safety_prob | numbernull | Opponent safety probability |
| opp_td_prob | numbernull | Opponent TD probability |
| order_sequence | numbernull | NFL play-ordering column |
| out_of_bounds | boolean | Ran/pushed/sacked out of bounds |
| own_kickoff_recovery | boolean | Own kickoff recovery |
| own_kickoff_recovery_player_id | stringnull | Own kickoff recovery player GSIS ID |
| own_kickoff_recovery_player_name | stringnull | Own kickoff recovery player name |
| own_kickoff_recovery_td | boolean | Own kickoff recovery TD |
| pass | boolean | Pass play indicator |
| pass_attempt | boolean | Pass attempt (includes sacks) |
| pass_defense_1_player_id | stringnull | Pass defense player 1 GSIS ID |
| pass_defense_1_player_name | stringnull | Pass defense player 1 name |
| pass_defense_2_player_id | stringnull | Pass defense player 2 GSIS ID |
| pass_defense_2_player_name | stringnull | Pass defense player 2 name |
| pass_length | stringnull | short or deep |
| pass_location | stringnull | left, middle, or right |
| pass_oe | numbernull | Dropback percent over expected |
| pass_touchdown | boolean | Passing touchdown |
| passer | stringnull | Dropback player name (includes scrambles) |
| passer_id | integernull | FK to players table |
| passer_jersey_number | integernull | Passer jersey number |
| passer_player_id | stringnull | Passer GSIS ID |
| passer_player_name | stringnull | Passer name |
| passing_yds | integernull | Official passing yards |
| penalty | boolean | Penalty on play |
| penalty_player_id | stringnull | Penalized player GSIS ID |
| penalty_player_name | stringnull | Penalized player name |
| penalty_team | stringnull | Penalized team |
| penalty_type | stringnull | Type of penalty |
| penalty_yds | integernull | Penalty yards |
| play | boolean | Regular play (1) vs special event (0) |
| play_clock | integernull | Play clock at snap |
| play_deleted | boolean | Play was deleted |
| play_id | string | Numeric play identifier unique to game |
| play_type | stringnull | pass, run, punt, field_goal, kickoff, extra_point, qb_kneel, qb_spike, no_play |
| play_type_nfl | stringnull | NFL source play type |
| possession_team_id | integernull | FK to teams table for possession team |
| posteam | stringnull | Possession team abbreviation |
| posteam_score | integernull | Possession team score at start |
| posteam_score_post | integernull | Possession team score at end |
| posteam_timeouts_remaining | integernull | Possession team timeouts |
| posteam_type | stringnull | home or away |
| primary_player_gsis_id | stringnull | Primary player GSIS ID |
| punt_attempt | boolean | Punt attempt |
| punt_blocked | boolean | Punt blocked |
| punt_downed | boolean | Punt downed |
| punt_fair_catch | boolean | Punt fair catch |
| punt_in_endzone | boolean | Punt in endzone |
| punt_inside_twenty | boolean | Punt inside 20 |
| punt_out_of_bounds | boolean | Punt OOB |
| punt_returner_player_id | stringnull | Punt returner GSIS ID |
| punt_returner_player_name | stringnull | Punt returner name |
| punter_player_id | stringnull | Punter GSIS ID |
| punter_player_name | stringnull | Punter name |
| qb_dropback | boolean | QB dropback (pass or scramble) |
| qb_epa | numbernull | QB EPA credit |
| qb_hit | boolean | QB was hit |
| qb_hit_1_player_id | stringnull | QB hitter GSIS ID |
| qb_hit_1_player_name | stringnull | QB hitter name |
| qb_hit_2_player_id | stringnull | Second QB hitter GSIS ID |
| qb_hit_2_player_name | stringnull | Second QB hitter name |
| qb_kneel | boolean | QB kneel |
| qb_scramble | boolean | QB scramble |
| qb_spike | boolean | QB spike |
| quarter | integer | Quarter (1-4, 5=OT) |
| quarter_end | boolean | Binary quarter-end marker |
| quarter_seconds_remaining | integer | Seconds remaining in quarter |
| receiver | stringnull | Targeted receiver name |
| receiver_id | integernull | FK to players table |
| receiver_jersey_number | integernull | Receiver jersey number |
| receiver_player_id | stringnull | Receiver GSIS ID |
| receiver_player_name | stringnull | Receiver name |
| receiving_yds | integernull | Official receiving yards |
| replay_or_challenge | boolean | Replay/challenge occurred |
| replay_or_challenge_result | stringnull | Replay result |
| result | integernull | Home score - Away score |
| return_team | stringnull | Returning team |
| return_touchdown | boolean | Return touchdown |
| return_yds | integernull | Return yards |
| roof | stringnull | dome, outdoors, closed, open |
| run_gap | stringnull | end, guard, or tackle |
| run_location | stringnull | left, middle, or right |
| rush | boolean | Rush play (no scrambles) |
| rush_attempt | boolean | Rushing play indicator |
| rush_touchdown | boolean | Rushing touchdown |
| rusher_id | integernull | FK to players table |
| rusher_jersey_number | integernull | Rusher jersey number |
| rusher_player_id | stringnull | Rusher GSIS ID |
| rusher_player_name | stringnull | Rusher name |
| rushing_yds | integernull | Official rushing yards |
| sack | boolean | Sack indicator |
| sack_player_id | stringnull | Sacker GSIS ID |
| sack_player_name | stringnull | Sacker name |
| safety | boolean | Safety scored |
| safety_player_id | stringnull | Safety scorer GSIS ID |
| safety_player_name | stringnull | Safety scorer name |
| safety_prob | numbernull | Safety probability |
| score_differential | integernull | Score gap at play start |
| score_differential_post | integernull | Score gap at play end |
| series | integernull | Series counter within game |
| series_result | stringnull | First down, Touchdown, Punt, etc. |
| series_success | boolean | Series resulted in first down or TD |
| shotgun | boolean | Shotgun formation |
| side_of_field | stringnull | Team abbreviation whose side of field |
| solo_tackle | boolean | Solo tackle on play |
| solo_tackle_1_player_id | stringnull | Solo tackler 1 GSIS ID |
| solo_tackle_1_player_name | stringnull | Solo tackler 1 name |
| solo_tackle_1_team | stringnull | Solo tackler 1 team |
| solo_tackle_2_player_id | stringnull | Solo tackler 2 GSIS ID |
| solo_tackle_2_player_name | stringnull | Solo tackler 2 name |
| solo_tackle_2_team | stringnull | Solo tackler 2 team |
| sp | boolean | Scoring play indicator |
| special | boolean | Special teams indicator |
| special_teams_play | boolean | Special teams play indicator |
| spread_line | numbernull | Vegas spread line |
| st_play_type | stringnull | Type of special teams play |
| stadium | stringnull | Stadium name |
| stadium_id | integernull | Stadium ID |
| start_time | stringnull | Kickoff time (eastern) |
| success | booleannull | Play success (based on down/distance) |
| surface | stringnull | Playing surface type |
| tackle_for_loss_1_player_id | stringnull | TFL player 1 GSIS ID |
| tackle_for_loss_1_player_name | stringnull | TFL player 1 name |
| tackle_for_loss_2_player_id | stringnull | TFL player 2 GSIS ID |
| tackle_for_loss_2_player_name | stringnull | TFL player 2 name |
| tackle_with_assist | boolean | Tackle with assistance |
| tackle_with_assist_1_player_id | stringnull | Tackle-assist player 1 GSIS ID |
| tackle_with_assist_1_player_name | stringnull | Tackle-assist player 1 name |
| tackle_with_assist_1_team | stringnull | Tackle-assist player 1 team |
| tackle_with_assist_2_player_id | stringnull | Tackle-assist player 2 GSIS ID |
| tackle_with_assist_2_player_name | stringnull | Tackle-assist player 2 name |
| tackle_with_assist_2_team | stringnull | Tackle-assist player 2 team |
| tackled_for_loss | boolean | Tackle for loss |
| td_player_id | stringnull | TD scorer GSIS ID |
| td_player_name | stringnull | TD scorer name |
| td_prob | numbernull | TD probability |
| td_team | stringnull | Team scoring TD |
| temp | integernull | Temperature |
| third_down_converted | boolean | Third down conversion |
| third_down_failed | boolean | Third down failure |
| time | stringnull | Game clock at play start (mm:ss) |
| time_of_day | stringnull | Play time in UTC |
| timeout | boolean | Timeout called |
| timeout_team | stringnull | Team calling timeout |
| total | integernull | Home score + Away score |
| total_away_comp_air_epa | numbernull | Cumulative away completion air EPA |
| total_away_comp_air_wpa | numbernull | Cumulative away completion air WPA |
| total_away_comp_yac_epa | numbernull | Cumulative away completion YAC EPA |
| total_away_comp_yac_wpa | numbernull | Cumulative away completion YAC WPA |
| total_away_epa | numbernull | Cumulative away EPA |
| total_away_pass_epa | numbernull | Cumulative away passing EPA |
| total_away_pass_wpa | numbernull | Cumulative away passing WPA |
| total_away_raw_air_epa | numbernull | Cumulative away raw air EPA |
| total_away_raw_air_wpa | numbernull | Cumulative away raw air WPA |
| total_away_raw_yac_epa | numbernull | Cumulative away raw YAC EPA |
| total_away_raw_yac_wpa | numbernull | Cumulative away raw YAC WPA |
| total_away_rush_epa | numbernull | Cumulative away rushing EPA |
| total_away_rush_wpa | numbernull | Cumulative away rushing WPA |
| total_away_score | integernull | Away score at play start |
| total_home_comp_air_epa | numbernull | Cumulative home completion air EPA |
| total_home_comp_air_wpa | numbernull | Cumulative home completion air WPA |
| total_home_comp_yac_epa | numbernull | Cumulative home completion YAC EPA |
| total_home_comp_yac_wpa | numbernull | Cumulative home completion YAC WPA |
| total_home_epa | numbernull | Cumulative home EPA |
| total_home_pass_epa | numbernull | Cumulative home passing EPA |
| total_home_pass_wpa | numbernull | Cumulative home passing WPA |
| total_home_raw_air_epa | numbernull | Cumulative home raw air EPA |
| total_home_raw_air_wpa | numbernull | Cumulative home raw air WPA |
| total_home_raw_yac_epa | numbernull | Cumulative home raw YAC EPA |
| total_home_raw_yac_wpa | numbernull | Cumulative home raw YAC WPA |
| total_home_rush_epa | numbernull | Cumulative home rushing EPA |
| total_home_rush_wpa | numbernull | Cumulative home rushing WPA |
| total_home_score | integernull | Home score at play start |
| total_line | numbernull | Vegas total line |
| touchback | boolean | Touchback |
| touchdown | boolean | Touchdown scored |
| two_point_attempt | boolean | Two-point conversion attempt |
| two_point_conv_result | stringnull | success, failure, safety, return |
| two_point_conversion_prob | numbernull | Two-point conversion probability |
| vegas_home_wp | numbernull | Vegas home win probability |
| vegas_home_wpa | numbernull | Vegas home WPA |
| vegas_wp | numbernull | Vegas win probability |
| vegas_wpa | numbernull | Vegas-adjusted WPA |
| weather | stringnull | Weather conditions description |
| wind | integernull | Wind speed (mph) |
| wp | numbernull | Win probability for possession team |
| wpa | numbernull | Win probability added |
| xpass | numbernull | Dropback probability |
| xyac_epa | numbernull | Expected EPA after catch |
| xyac_fd | numbernull | First down probability (xYAC) |
| xyac_mean_yardage | numbernull | Average expected YAC |
| xyac_median_yardage | numbernull | Median expected YAC |
| xyac_success | numbernull | Positive EPA probability |
| yac_epa | numbernull | EPA from yards after catch |
| yac_wpa | numbernull | WPA from yards after catch |
| yard_line | integernull | Yard line number (0-50) |
| yardline_100 | integernull | Yards from opponent endzone (0-100) |
| yds_after_catch | integernull | YAC yards |
| yds_gained | integernull | Yards gained on play |
| ydsnet | integernull | Total net yards on drive |
| ydstogo | integernull | Yards to first down/goal |
| yrdln | stringnull | Yard line string (e.g., "KC 25") |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/stat-api-com/json-schema/stat-api-com-nflplay-by-plays-schema.json",
"title": "NFLPlayByPlays",
"description": "Every individual play of every NFL game — what happened, where on the field, with what result. Includes pass and rush attempts, penalties, special teams, EPA, win probability, and the full game-clock and down-and-distance context.",
"x-generated": "2026-10-31",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/stat-api-com-openapi.json#/components/schemas/NFLPlayByPlays",
"properties": {
"aborted_play": {
"description": "Play was aborted",
"type": "boolean"
},
"air_epa": {
"description": "EPA from air yards",
"format": "double",
"type": [
"number",
"null"
]
},
"air_wpa": {
"description": "WPA from air yards",
"format": "double",
"type": [
"number",
"null"
]
},
"air_yds": {
"description": "Yards in air (perpendicular to LOS)",
"type": [
"integer",
"null"
]
},
"assist_tackle": {
"description": "Assist tackle on play",
"type": "boolean"
},
"assist_tackle_1_player_id": {
"description": "Assist tackler 1 GSIS ID",
"type": [
"string",
"null"
]
},
"assist_tackle_1_player_name": {
"description": "Assist tackler 1 name",
"type": [
"string",
"null"
]
},
"assist_tackle_1_team": {
"description": "Assist tackler 1 team",
"type": [
"string",
"null"
]
},
"assist_tackle_2_player_id": {
"description": "Assist tackler 2 GSIS ID",
"type": [
"string",
"null"
]
},
"assist_tackle_2_player_name": {
"description": "Assist tackler 2 name",
"type": [
"string",
"null"
]
},
"assist_tackle_2_team": {
"description": "Assist tackler 2 team",
"type": [
"string",
"null"
]
},
"assist_tackle_3_player_id": {
"description": "Assist tackler 3 GSIS ID",
"type": [
"string",
"null"
]
},
"assist_tackle_3_player_name": {
"description": "Assist tackler 3 name",
"type": [
"string",
"null"
]
},
"assist_tackle_3_team": {
"description": "Assist tackler 3 team",
"type": [
"string",
"null"
]
},
"assist_tackle_4_player_id": {
"description": "Assist tackler 4 GSIS ID",
"type": [
"string",
"null"
]
},
"assist_tackle_4_player_name": {
"description": "Assist tackler 4 name",
"type": [
"string",
"null"
]
},
"assist_tackle_4_team": {
"description": "Assist tackler 4 team",
"type": [
"string",
"null"
]
},
"away_coach": {
"description": "Away team head coach",
"type": [
"string",
"null"
]
},
"away_score": {
"description": "Total away points",
"type": [
"integer",
"null"
]
},
"away_team": {
"description": "Away team abbreviation",
"type": [
"string",
"null"
]
},
"away_timeouts_remaining": {
"description": "Away timeouts remaining",
"type": [
"integer",
"null"
]
},
"away_wp": {
"description": "Away team win probability",
"format": "double",
"type": [
"number",
"null"
]
},
"away_wp_post": {
"description": "Away WP after play",
"format": "double",
"type": [
"number",
"null"
]
},
"blocked_player_id": {
"description": "Blocked kick player GSIS ID",
"type": [
"string",
"null"
]
},
"blocked_player_name": {
"description": "Blocked kick player name",
"type": [
"string",
"null"
]
},
"comp_air_epa": {
"description": "Completion air EPA",
"format": "double",
"type": [
"number",
"null"
]
},
"comp_air_wpa": {
"description": "Completion air WPA",
"format": "double",
"type": [
"number",
"null"
]
},
"comp_yac_epa": {
"description": "Completion YAC EPA",
"format": "double",
"type": [
"number",
"null"
]
},
"comp_yac_wpa": {
"description": "Completion YAC WPA",
"format": "double",
"type": [
"number",
"null"
]
},
"complete_pass": {
"description": "Pass completed",
"type": "boolean"
},
"cp": {
"description": "Completion probability",
"format": "double",
"type": [
"number",
"null"
]
},
"cpoe": {
"description": "Completion percentage over expected",
"format": "double",
"type": [
"number",
"null"
]
},
"def_wp": {
"description": "Win probability for defense",
"format": "double",
"type": [
"number",
"null"
]
},
"defensive_extra_point_attempt": {
"description": "Defense extra point attempt",
"type": "boolean"
},
"defensive_extra_point_conv": {
"description": "Defense extra point success",
"type": "boolean"
},
"defensive_team_id": {
"description": "FK to teams table for defensive team",
"format": "int64",
"type": [
"integer",
"null"
]
},
"defensive_two_point_attempt": {
"description": "Defense two-point attempt",
"type": "boolean"
},
"defensive_two_point_conv": {
"description": "Defense two-point conversion success",
"type": "boolean"
},
"defteam": {
"description": "Defensive team abbreviation",
"type": [
"string",
"null"
]
},
"defteam_score": {
"description": "Defense team score at start",
"type": [
"integer",
"null"
]
},
"defteam_score_post": {
"description": "Defense team score at end",
"type": [
"integer",
"null"
]
},
"defteam_timeouts_remaining": {
"description": "Defensive team timeouts",
"type": [
"integer",
"null"
]
},
"desc": {
"description": "Full play description text",
"type": [
"string",
"null"
]
},
"div_game": {
"description": "Division game",
"type": "boolean"
},
"down": {
"description": "Down (1-4)",
"type": [
"integer",
"null"
]
},
"drive": {
"description": "Drive number in game",
"type": [
"integer",
"null"
]
},
"drive_end_transition": {
"description": "How drive ended",
"type": [
"string",
"null"
]
},
"drive_end_yard_line": {
"description": "Yard line at drive end",
"type": [
"string",
"null"
]
},
"drive_ended_with_score": {
"description": "Drive resulted in score",
"type": "boolean"
},
"drive_first_downs": {
"description": "First downs gained in drive",
"type": [
"integer",
"null"
]
},
"drive_game_clock_end": {
"description": "Game clock at drive end",
"type": [
"string",
"null"
]
},
"drive_game_clock_start": {
"description": "Game clock at drive start",
"type": [
"string",
"null"
]
},
"drive_id": {
"description": "FK to game_drives table",
"format": "int64",
"type": [
"integer",
"null"
]
},
"drive_inside20": {
"description": "Drive reached red zone",
"type": "boolean"
},
"drive_play_count": {
"description": "Number of plays in drive",
"type": [
"integer",
"null"
]
},
"drive_play_id_ended": {
"description": "Last play_id of drive",
"type": [
"string",
"null"
]
},
"drive_play_id_started": {
"description": "First play_id of drive",
"type": [
"string",
"null"
]
},
"drive_quarter_end": {
"description": "Quarter when drive ended",
"type": [
"integer",
"null"
]
},
"drive_quarter_start": {
"description": "Quarter when drive started",
"type": [
"integer",
"null"
]
},
"drive_real_start_time": {
"description": "Drive start time (real clock)",
"type": [
"string",
"null"
]
},
"drive_start_transition": {
"description": "How possession was obtained",
"type": [
"string",
"null"
]
},
"drive_start_yard_line": {
"description": "Yard line at drive start",
"type": [
"string",
"null"
]
},
"drive_time_of_possession": {
"description": "Drive time of possession (mm:ss)",
"type": [
"string",
"null"
]
},
"drive_yds_penalized": {
"description": "Penalty yards during drive",
"type": [
"integer",
"null"
]
},
"end_clock_time": {
"description": "Game clock at play end",
"type": [
"string",
"null"
]
},
"end_yard_line": {
"description": "Yard line at play end",
"type": [
"string",
"null"
]
},
"ep": {
"description": "Expected points before play",
"format": "double",
"type": [
"number",
"null"
]
},
"epa": {
"description": "Expected points added",
"format": "double",
"type": [
"number",
"null"
]
},
"extra_point_attempt": {
"description": "Extra point attempt",
"type": "boolean"
},
"extra_point_prob": {
"description": "Extra point probability",
"format": "double",
"type": [
"number",
"null"
]
},
"extra_point_result": {
"description": "good, failed, blocked, safety, aborted",
"type": [
"string",
"null"
]
},
"fantasy": {
"description": "Fantasy designation",
"type": [
"string",
"null"
]
},
"fantasy_id": {
"description": "Fantasy identifier",
"type": [
"string",
"null"
]
},
"fantasy_player_id": {
"description": "Fantasy designation player ID",
"type": [
"string",
"null"
]
},
"fantasy_player_name": {
"description": "Fantasy designation player name",
"type": [
"string",
"null"
]
},
"fg_prob": {
"description": "FG probability",
"format": "double",
"type": [
"number",
"null"
]
},
"field_goal_attempt": {
"description": "Field goal attempt",
"type": "boolean"
},
"field_goal_result": {
"description": "made, missed, or blocked",
"type": [
"string",
"null"
]
},
"first_down": {
"description": "First down achieved",
"type": "boolean"
},
"first_down_pass": {
"description": "Passing first down",
"type": "boolean"
},
"first_down_penalty": {
"description": "First down via penalty",
"type": "boolean"
},
"first_down_rush": {
"description": "Rushing first down",
"type": "boolean"
},
"fixed_drive": {
"description": "Manual drive number correction",
"type": [
"integer",
"null"
]
},
"fixed_drive_result": {
"description": "Manual drive result correction",
"type": [
"string",
"null"
]
},
"forced_fumble_player_1_player_id": {
"description": "Forced fumble player 1 GSIS ID",
"type": [
"string",
"null"
]
},
"forced_fumble_player_1_player_name": {
"description": "Forced fumble player 1 name",
"type": [
"string",
"null"
]
},
"forced_fumble_player_1_team": {
"description": "Forced fumble team 1",
"type": [
"string",
"null"
]
},
"forced_fumble_player_2_player_id": {
"description": "Forced fumble player 2 GSIS ID",
"type": [
"string",
"null"
]
},
"forced_fumble_player_2_player_name": {
"description": "Forced fumble player 2 name",
"type": [
"string",
"null"
]
},
"forced_fumble_player_2_team": {
"description": "Forced fumble team 2",
"type": [
"string",
"null"
]
},
"fourth_down_converted": {
"description": "Fourth down conversion",
"type": "boolean"
},
"fourth_down_failed": {
"description": "Fourth down failure",
"type": "boolean"
},
"fumble": {
"description": "Fumble occurred",
"type": "boolean"
},
"fumble_forced": {
"description": "Fumble was forced",
"type": "boolean"
},
"fumble_lost": {
"description": "Fumble was lost",
"type": "boolean"
},
"fumble_not_forced": {
"description": "Fumble was not forced",
"type": "boolean"
},
"fumble_out_of_bounds": {
"description": "Fumble went OOB",
"type": "boolean"
},
"fumble_recovery_1_player_id": {
"description": "Recovery player 1 GSIS ID",
"type": [
"string",
"null"
]
},
"fumble_recovery_1_player_name": {
"description": "Recovery player 1 name",
"type": [
"string",
"null"
]
},
"fumble_recovery_1_team": {
"description": "Recovery team 1",
"type": [
"string",
"null"
]
},
"fumble_recovery_1_yds": {
"description": "Recovery yards 1",
"type": [
"integer",
"null"
]
},
"fumble_recovery_2_player_id": {
"description": "Recovery player 2 GSIS ID",
"type": [
"string",
"null"
]
},
"fumble_recovery_2_player_name": {
"description": "Recovery player 2 name",
"type": [
"string",
"null"
]
},
"fumble_recovery_2_team": {
"description": "Recovery team 2",
"type": [
"string",
"null"
]
},
"fumble_recovery_2_yds": {
"description": "Recovery yards 2",
"type": [
"integer",
"null"
]
},
"fumbled_1_player_id": {
"description": "First fumbler GSIS ID",
"type": [
"string",
"null"
]
},
"fumbled_1_player_name": {
"description": "First fumbler name",
"type": [
"string",
"null"
]
},
"fumbled_1_team": {
"description": "First fumbler team",
"type": [
"string",
"null"
]
},
"fumbled_2_player_id": {
"description": "Second fumbler GSIS ID",
"type": [
"string",
"null"
]
},
"fumbled_2_player_name": {
"description": "Second fumbler name",
"type": [
"string",
"null"
]
},
"fumbled_2_team": {
"description": "Second fumbler team",
"type": [
"string",
"null"
]
},
"game_half": {
"description": "Half1, Half2, or Overtime",
"type": [
"string",
"null"
]
},
"game_id": {
"description": "FK to games table",
"format": "int64",
"type": "integer"
},
"game_seconds_remaining": {
"description": "Seconds remaining in game",
"type": "integer"
},
"game_stadium": {
"description": "Game stadium name",
"type": [
"string",
"null"
]
},
"goal_to_go": {
"description": "Goal-to-go situation",
"type": "boolean"
},
"half_sack_1_player_id": {
"description": "Half-sack player 1 GSIS ID",
"type": [
"string",
"null"
]
},
"half_sack_1_player_name": {
"description": "Half-sack player 1 name",
"type": [
"string",
"null"
]
},
"half_sack_2_player_id": {
"description": "Half-sack player 2 GSIS ID",
"type": [
"string",
"null"
]
},
"half_sack_2_player_name": {
"description": "Half-sack player 2 name",
"type": [
"string",
"null"
]
},
"half_seconds_remaining": {
"description": "Seconds remaining in half",
"type": "integer"
},
"home_coach": {
"description": "Home team head coach",
"type": [
"string",
"null"
]
},
"home_opening_kickoff": {
"description": "Home team had opening kickoff",
"type": "boolean"
},
"home_score": {
"description": "Total home points",
"type": [
"integer",
"null"
]
},
"home_team": {
"description": "Home team abbreviation",
"type": [
"string",
"null"
]
},
"home_timeouts_remaining": {
"description": "Home timeouts remaining",
"type": [
"integer",
"null"
]
},
"home_wp": {
"description": "Home team win probability",
"format": "double",
"type": [
"number",
"null"
]
},
"home_wp_post": {
"description": "Home WP after play",
"format": "double",
"type": [
"number",
"null"
]
},
"id": {
"description": "Primary Key",
"format": "int64",
"type": "integer"
},
"incomplete_pass": {
"description": "Pass incomplete",
"type": "boolean"
},
"interception": {
"description": "Interception indicator",
"type": "boolean"
},
"interception_player_id": {
"description": "Interceptor GSIS ID",
"type": [
"string",
"null"
]
},
"interception_player_name": {
"description": "Interceptor name",
"type": [
"string",
"null"
]
},
"jersey_number": {
"description": "Primary player jersey",
"type": [
"integer",
"null"
]
},
"kick_distance": {
"description": "Kick distance in yards",
"type": [
"integer",
"null"
]
},
"kicker_player_id": {
"description": "Kicker GSIS ID",
"type": [
"string",
"null"
]
},
"kicker_player_name": {
"description": "Kicker name",
"type": [
"string",
"null"
]
},
"kickoff_attempt": {
"description": "Kickoff attempt",
"type": "boolean"
},
"kickoff_downed": {
"description": "Kickoff downed",
"type": "boolean"
},
"kickoff_fair_catch": {
"description": "Kickoff fair catch",
"type": "boolean"
},
"kickoff_in_endzone": {
"description": "Kickoff in endzone",
"type": "boolean"
},
"kickoff_inside_twenty": {
"description": "Kickoff inside 20",
"type": "boolean"
},
"kickoff_out_of_bounds": {
"description": "Kickoff OOB",
"type": "boolean"
},
"kickoff_returner_player_id": {
"description": "Kickoff returner GSIS ID",
"type": [
"string",
"null"
]
},
"kickoff_returner_player_name": {
"description": "Kickoff returner name",
"type": [
"string",
"null"
]
},
"lateral_interception_player_id": {
"description": "Lateral after INT GSIS ID",
"type": [
"string",
"null"
]
},
"lateral_interception_player_name": {
"description": "Lateral after INT name",
"type": [
"string",
"null"
]
},
"lateral_kickoff_returner_player_id": {
"description": "Lateral kickoff returner GSIS ID",
"type": [
"string",
"null"
]
},
"lateral_kickoff_returner_player_name": {
"description": "Lateral kickoff returner name",
"type": [
"string",
"null"
]
},
"lateral_punt_returner_player_id": {
"description": "Lateral punt returner GSIS ID",
"type": [
"string",
"null"
]
},
"lateral_punt_returner_player_name": {
"description": "Lateral punt returner name",
"type": [
"string",
"null"
]
},
"lateral_receiver_player_id": {
"description": "Lateral receiver GSIS ID (pass)",
"type": [
"string",
"null"
]
},
"lateral_receiver_player_name": {
"description": "Lateral receiver name (pass)",
"type": [
"string",
"null"
]
},
"lateral_receiving_yds": {
"description": "Yards after lateral (pass)",
"type": [
"integer",
"null"
]
},
"lateral_reception": {
"description": "Lateral on pass play",
"type": "boolean"
},
"lateral_return": {
"description": "Lateral on return",
"type": "boolean"
},
"lateral_rush": {
"description": "Lateral on rush play",
"type": "boolean"
},
"lateral_rusher_player_id": {
"description": "Lateral receiver GSIS ID (rush)",
"type": [
"string",
"null"
]
},
"lateral_rusher_player_name": {
"description": "Lateral receiver name (rush)",
"type": [
"string",
"null"
]
},
"lateral_rushing_yds": {
"description": "Yards after lateral (rush)",
"type": [
"integer",
"null"
]
},
"lateral_sack_player_id": {
"description": "Lateral after sack GSIS ID",
"type": [
"string",
"null"
]
},
"lateral_sack_player_name": {
"description": "Lateral after sack name",
"type": [
"string",
"null"
]
},
"location": {
"description": "Home or Neutral",
"type": [
"string",
"null"
]
},
"name": {
"description": "Primary player name (passer or rusher)",
"type": [
"string",
"null"
]
},
"nfl_api_id": {
"description": "UUID from NFL API",
"type": [
"string",
"null"
]
},
"no_huddle": {
"description": "No-huddle offense",
"type": "boolean"
},
"no_score_prob": {
"description": "Probability of no score",
"format": "double",
"type": [
"number",
"null"
]
},
"old_game_id": {
"description": "Legacy NFL game ID format",
"type": [
"string",
"null"
]
},
"opp_fg_prob": {
"description": "Opponent FG probability",
"format": "double",
"type": [
"number",
"null"
]
},
"opp_safety_prob": {
"description": "Opponent safety probability",
"format": "double",
"type": [
"number",
"null"
]
},
"opp_td_prob": {
"description": "Opponent TD probability",
"format": "double",
"type": [
"number",
"null"
]
},
"order_sequence": {
"description": "NFL play-ordering column",
"format": "double",
"type": [
"number",
"null"
]
},
"out_of_bounds": {
"description": "Ran/pushed/sacked out of bounds",
"type": "boolean"
},
"own_kickoff_recovery": {
"description": "Own kickoff recovery",
"type": "boolean"
},
"own_kickoff_recovery_player_id": {
"description": "Own kickoff recovery player GSIS ID",
"type": [
"string",
"null"
]
},
"own_kickoff_recovery_player_name": {
"description": "Own kickoff recovery player name",
"type": [
"string",
"null"
]
},
"own_kickoff_recovery_td": {
"description": "Own kickoff recovery TD",
"type": "boolean"
},
"pass": {
"description": "Pass play indicator",
"type": "boolean"
},
"pass_attempt": {
"description": "Pass attempt (includes sacks)",
"type": "boolean"
},
"pass_defense_1_player_id": {
"description": "Pass defense player 1 GSIS ID",
"type": [
"string",
"null"
]
},
"pass_defense_1_player_name": {
"description": "Pass defense player 1 name",
"type": [
"string",
"null"
]
},
"pass_defense_2_player_id": {
"description": "Pass defense player 2 GSIS ID",
"type": [
"string",
"null"
]
},
"pass_defense_2_player_name": {
"description": "Pass defense player 2 name",
"type": [
"string",
"null"
]
},
"pass_length": {
"description": "short or deep",
"type": [
"string",
"null"
]
},
"pass_location": {
"description": "left, middle, or right",
"type": [
"string",
"null"
]
},
"pass_oe": {
"description": "Dropback percent over expected",
"format": "double",
"type": [
"number",
"null"
]
},
"pass_touchdown": {
"description": "Passing touchdown",
"type": "boolean"
},
"passer": {
"description": "Dropback player name (includes scrambles)",
"type": [
"string",
"null"
]
},
"passer_id": {
"description": "FK to players table",
"format": "int64",
"type": [
"integer",
"null"
]
},
"passer_jersey_number": {
"description": "Passer jersey number",
"type": [
"integer",
"null"
]
},
"passer_player_id": {
"description": "Passer GSIS ID",
"type": [
"string",
"null"
]
},
"passer_player_name": {
"description": "Passer name",
"type": [
"string",
"null"
]
},
"passing_yds": {
"description": "Official passing yards",
"type": [
"integer",
"null"
]
},
"penalty": {
"description": "Penalty on play",
"type": "boolean"
},
"penalty_player_id": {
"description": "Penalized player GSIS ID",
"type": [
"string",
"null"
]
},
"penalty_player_name": {
"description": "Penalized player name",
"type": [
"string",
"null"
]
},
"penalty_team": {
"description": "Penalized team",
"type": [
"string",
"null"
]
},
"penalty_type": {
"description": "Type of penalty",
"type": [
"string",
"null"
]
},
"penalty_yds": {
"description": "Penalty yards",
"type": [
"integer",
"null"
]
},
"play": {
"description": "Regular play (1) vs special event (0)",
"type": "boolean"
},
"play_clock": {
"description": "Play clock at snap",
"type": [
"integer",
"null"
]
},
"play_deleted": {
"description": "Play was deleted",
"type": "boolean"
},
"play_id": {
"description": "Numeric play identifier unique to game",
"type": "string"
},
"play_type": {
"description": "pass, run, punt, field_goal, kickoff, extra_point, qb_kneel, qb_spike, no_play",
"type": [
"string",
"null"
]
},
"play_type_nfl": {
"description": "NFL source play type",
"type": [
"string",
"null"
]
},
"possession_team_id": {
"description": "FK to teams table for possession team",
"format": "int64",
"type": [
"integer",
"null"
]
},
"posteam": {
"description": "Possession team abbreviation",
"type": [
"string",
"null"
]
},
"posteam_score": {
"description": "Possession team score at start",
"type": [
"integer",
"null"
]
},
"posteam_score_post": {
"description": "Possession team score at end",
"type": [
"integer",
"null"
]
},
"posteam_timeouts_remaining": {
"description": "Possession team timeouts",
"type": [
"integer",
"null"
]
},
"posteam_type": {
"description": "home or away",
"type": [
"string",
"null"
]
},
"primary_player_gsis_id": {
"description": "Primary player GSIS ID",
"type": [
"string",
"null"
]
},
"punt_attempt": {
"description": "Punt attempt",
"type": "boolean"
},
"punt_blocked": {
"description": "Punt blocked",
"type": "boolean"
},
"punt_downed": {
"description": "Punt downed",
"type": "boolean"
},
"punt_fair_catch": {
"description": "Punt fair catch",
"type": "boolean"
},
"punt_in_endzone": {
"description": "Punt in endzone",
"type": "boolean"
},
"punt_inside_twenty": {
"description": "Punt inside 20",
"type": "boolean"
},
"punt_out_of_bounds": {
"description": "Punt OOB",
"type": "boolean"
},
"punt_returner_player_id": {
"description": "Punt returner GSIS ID",
"type": [
"string",
"null"
]
},
"punt_returner_player_name": {
"description": "Punt returner name",
"type": [
"string",
"null"
]
},
"punter_player_id": {
"description": "Punter GSIS ID",
"type": [
"string",
"null"
]
},
"punter_player_name": {
"description": "Punter name",
"type": [
"string",
"null"
]
},
"qb_dropback": {
"description": "QB dropback (pass or scramble)",
"type": "boolean"
},
"qb_epa": {
"description": "QB EPA credit",
"format": "double",
"type": [
"number",
"null"
]
},
"qb_hit": {
"description": "QB was hit",
"type": "boolean"
},
"qb_hit_1_player_id": {
"description": "QB hitter GSIS ID",
"type": [
"string",
"null"
]
},
"qb_hit_1_player_name": {
"description": "QB hitter name",
"type": [
"string",
"null"
]
},
"qb_hit_2_player_id": {
"description": "Second QB hitter GSIS ID",
"type": [
"string",
"null"
]
},
"qb_hit_2_player_name": {
"description": "Second QB hitter name",
"type": [
"string",
"null"
]
},
"qb_kneel": {
"description": "QB kneel",
"type": "boolean"
},
"qb_scramble": {
"description": "QB scramble",
"type": "boolean"
},
"qb_spike": {
"description": "QB spike",
"type": "boolean"
},
"quarter": {
"description": "Quarter (1-4, 5=OT)",
"type": "integer"
},
"quarter_end": {
"description": "Binary quarter-end marker",
"type": "boolean"
},
"quarter_seconds_remaining": {
"description": "Seconds remaining in quarter",
"type": "integer"
},
"receiver": {
"description": "Targeted receiver name",
"type": [
"string",
"null"
]
},
"receiver_id": {
"description": "FK to players table",
"format": "int64",
"type": [
"integer",
"null"
]
},
"receiver_jersey_number": {
"description": "Receiver jersey number",
"type": [
"integer",
"null"
]
},
"receiver_player_id": {
"description": "Receiver GSIS ID",
"type": [
"string",
"null"
]
},
"receiver_player_name": {
"description": "Receiver name",
"type": [
"string",
"null"
]
},
"receiving_yds": {
"description": "Official receiving yards",
"type": [
"integer",
"null"
]
},
"replay_or_challenge": {
"description": "Replay/challenge occurred",
"type": "boolean"
},
# --- truncated at 32 KB (51 KB total) ---
# Full source: https://artifacts.apis.io/stat-api-com/json-schema/stat-api-com-nflplay-by-plays-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/stat-api-com-nflplay-by-plays"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.