STAT-API

NFL game_drives API

game_drivesnfl.game_drives
Each offensive possession in an NFL game — how the drive started, how it ended (touchdown, field goal, punt, turnover), starting and ending field position, time of possession, and play count.
GET/api/v1/nfl/game_drives
Requires one of: game_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
possession_team_idquerybigintoptional
Filter by team in possession.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_drives?game_id=1'
Responses
200game_drives rows matching the declared filter set, wrapped in { game_drives, limit, next_from_id }. next_from_id is the last row's id on a full page — pass it back via ?from_id= to walk the full result; null marks the terminal page.application/jsonshow example ▸
400No declared filter set was satisfied — response body matches MissingRequiredFiltersError; pick one combo from the accepted-sets hint and resend.application/json
Response Schema(22 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
first_play_id
bigint—play_id of first play in drive
e.g. 40
game_id
bigint—
e.g. 222
last_play_id
bigint—play_id of last play in drive
e.g. 131
possession_team_id
bigintTeam with possession (FK to teams)
e.g. 13
drive_number
integer—Drive sequence number in game (1-indexed)
e.g. 2
end_transition
stringnullable—How possession ended (PUNT, TOUCHDOWN, TURNOVER, etc.)
Values:PUNTTOUCHDOWNFIELD_GOALINTERCEPTIONDOWNSFUMBLEEND_GAMEEND_HALFMISSED_FGSAFETYBLOCKED_PUNTBLOCKED_FGBLOCKED_PUNT,_DOWNSFUMBLE,_SAFETYBLOCKED_FG,_DOWNS
end_yard_line
stringnullable—Ending field position (e.g., "OPP 10")
e.g. 50
ended_with_score
boolean—Drive resulted in points
Values:falsetrue
first_downs
integernullable—First downs gained
e.g. 0
fixed_drive
integer—Corrected drive number
e.g. 2
game_clock_end
stringnullable—Game clock at drive end (mm:ss)
e.g. 00:00
game_clock_start
stringnullable—Game clock at drive start (mm:ss)
e.g. 15:00
inside_20
boolean—Drive reached red zone
Values:falsetrue
play_count
integernullable—Number of plays in drive
e.g. 3
quarter_end
integernullable—Quarter when drive ended
e.g. 2
quarter_start
integernullable—Quarter when drive started
e.g. 2
result
stringnullable—Drive outcome (Touchdown, Field goal, Punt, Turnover, etc.)
Values:PuntTouchdownField goalTurnoverEnd of halfTurnover on downsMissed field goalOpp touchdownSafety
start_transition
stringnullable—How possession was gained (KICKOFF, PUNT, TURNOVER, etc.)
Values:KICKOFFPUNTINTERCEPTIONDOWNSFUMBLEMISSED_FGMUFFED_PUNTBLOCKED_PUNTONSIDE_KICKBLOCKED_PUNT,_DOWNSBLOCKED_FG,_DOWNSBLOCKED_FGMUFFED_KICKOFF
start_yard_line
stringnullable—Starting field position (e.g., "KC 25")
e.g. LV 30
time_of_possession
stringnullable—Drive duration (mm:ss format)
e.g. 1:30
yds_penalized
integernullable—Penalty yards on drive
e.g. 0
GET/api/v1/nfl/game_drives/{id}
Parameters
idpathbigintrequired
Primary key (id) of the game_drive row.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_drives/{pk_value}'
Responses
200Single game_drive row.application/jsonshow example ▸
404Row not found.
Response Schema(22 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
first_play_id
bigint—play_id of first play in drive
e.g. 40
game_id
bigint—
e.g. 222
last_play_id
bigint—play_id of last play in drive
e.g. 131
possession_team_id
bigintTeam with possession (FK to teams)
e.g. 13
drive_number
integer—Drive sequence number in game (1-indexed)
e.g. 2
end_transition
stringnullable—How possession ended (PUNT, TOUCHDOWN, TURNOVER, etc.)
Values:PUNTTOUCHDOWNFIELD_GOALINTERCEPTIONDOWNSFUMBLEEND_GAMEEND_HALFMISSED_FGSAFETYBLOCKED_PUNTBLOCKED_FGBLOCKED_PUNT,_DOWNSFUMBLE,_SAFETYBLOCKED_FG,_DOWNS
end_yard_line
stringnullable—Ending field position (e.g., "OPP 10")
e.g. 50
ended_with_score
boolean—Drive resulted in points
Values:falsetrue
first_downs
integernullable—First downs gained
e.g. 0
fixed_drive
integer—Corrected drive number
e.g. 2
game_clock_end
stringnullable—Game clock at drive end (mm:ss)
e.g. 00:00
game_clock_start
stringnullable—Game clock at drive start (mm:ss)
e.g. 15:00
inside_20
boolean—Drive reached red zone
Values:falsetrue
play_count
integernullable—Number of plays in drive
e.g. 3
quarter_end
integernullable—Quarter when drive ended
e.g. 2
quarter_start
integernullable—Quarter when drive started
e.g. 2
result
stringnullable—Drive outcome (Touchdown, Field goal, Punt, Turnover, etc.)
Values:PuntTouchdownField goalTurnoverEnd of halfTurnover on downsMissed field goalOpp touchdownSafety
start_transition
stringnullable—How possession was gained (KICKOFF, PUNT, TURNOVER, etc.)
Values:KICKOFFPUNTINTERCEPTIONDOWNSFUMBLEMISSED_FGMUFFED_PUNTBLOCKED_PUNTONSIDE_KICKBLOCKED_PUNT,_DOWNSBLOCKED_FG,_DOWNSBLOCKED_FGMUFFED_KICKOFF
start_yard_line
stringnullable—Starting field position (e.g., "KC 25")
e.g. LV 30
time_of_possession
stringnullable—Drive duration (mm:ss format)
e.g. 1:30
yds_penalized
integernullable—Penalty yards on drive
e.g. 0