NFL game_drives API
game_drives
nfl.game_drivesEach 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_drivesList game_drives for NFL
Requires one of:
game_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
possession_team_idquerybigintoptionalFilter by team in possession.
limitqueryintegeroptionaldefault 50Page size. Defaults to 50; max 5000.
from_idquerybigintoptionalReturn 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/jsonResponse Schema(22 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
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 | bigint | Team 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}Get a single game_drive by id
Parameters
idpathbigintrequiredPrimary 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 ▸
| Field | Type | References | Description |
|---|---|---|---|
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 | bigint | Team 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 |