NFL API Reference
Every scheduled and played NFL game — preseason exhibitions, the 18-week regular season, and the playoffs from Wild Card weekend through the Super Bowl — plus the players, teams, coaching staffs, depth charts, injuries, betting markets, and play-by-play behind them.
Main
seasons
nfl.seasonsEach NFL league year, from the opening of training camp through the Super Bowl. The 2025 season refers to the 2025-26 league year, kicking off in early August and ending in February.
GET/api/v1/nfl/seasonsList seasons for NFL
Parameters
limitqueryintegeroptionaldefault 25Page size. Defaults to 25; 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/seasons?limit=3'Responses
200seasons rows matching the declared filter set, wrapped in { seasons, 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(8 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
end_date | timestamptznullable | — | Last day of the season (Super Bowl date or shortly after). e.g. 2020-02-02T05:00:00.000Z |
post_season_start_date | timestamptznullable | — | First day of the postseason (Wild Card weekend). e.g. 2020-01-04T05:00:00.000Z |
regular_season_start_date | timestamptznullable | — | First day of regular-season play (typically the Thursday after Labor Day). e.g. 2019-09-05T04:00:00.000Z |
regular_season_weeks | integer | — | Number of regular-season weeks (18 since 2021; 17 in 2020 and earlier). e.g. 18 |
start_date | timestamptz | — | First day of the season (typically the start of preseason in early August). e.g. 2019-09-05T04:00:00.000Z |
start_year | integer | — | Calendar year in which the season starts (e.g., 2025 = the 2025-26 season). e.g. 2019 |
super_bowl_date | timestamptznullable | — | Date of the Super Bowl for this season. e.g. 2020-02-02T05:00:00.000Z |
GET/api/v1/nfl/seasons/{id}Get a single season by id
Parameters
idpathbigintrequiredPrimary key (id) of the season 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/seasons/{pk_value}'Responses
200Single season row.application/jsonshow example ▸
404Row not found.
Response Schema(8 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
end_date | timestamptznullable | — | Last day of the season (Super Bowl date or shortly after). e.g. 2020-02-02T05:00:00.000Z |
post_season_start_date | timestamptznullable | — | First day of the postseason (Wild Card weekend). e.g. 2020-01-04T05:00:00.000Z |
regular_season_start_date | timestamptznullable | — | First day of regular-season play (typically the Thursday after Labor Day). e.g. 2019-09-05T04:00:00.000Z |
regular_season_weeks | integer | — | Number of regular-season weeks (18 since 2021; 17 in 2020 and earlier). e.g. 18 |
start_date | timestamptz | — | First day of the season (typically the start of preseason in early August). e.g. 2019-09-05T04:00:00.000Z |
start_year | integer | — | Calendar year in which the season starts (e.g., 2025 = the 2025-26 season). e.g. 2019 |
super_bowl_date | timestamptznullable | — | Date of the Super Bowl for this season. e.g. 2020-02-02T05:00:00.000Z |
GET/api/v1/nfl/contextCurrent NFL week and its DFS slates
Parameters
seasonqueryintegeroptionalSeason start year (e.g. 2026). Without week, the current week of that season, else week 1.
weekqueryintegeroptionalRegular-season week, 1-18. Without season, the current season.
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/context?season=1&week=1'Responses
200Current NFL week and its DFS slatesapplication/jsonshow example ▸
Response Schema(19 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
today | string | — | Today in US Eastern time (YYYY-MM-DD). |
as_of | string | — | Server time of the answer (ISO 8601, UTC). |
phase | string | — | preseason (before week 1), regular_season (inside a week window), postseason (after the last week until the last postseason game), or offseason. |
current_season | integernullable | — | Season of the current week. |
current_week | integernullable | — | Current regular-season week. Before week 1 it is week 1; after the last week it is the last week. |
season | integernullable | — | Season of the described week (the current one unless season or week was passed). |
week | integernullable | — | The described week. |
start_date | stringnullable | — | First day of the week window (YYYY-MM-DD, US Eastern). |
end_date | stringnullable | — | Last day of the week window, the week's last game day (YYYY-MM-DD, US Eastern). |
games | bigint | — | Regular-season games in the week. |
games_final | bigint | — | Games with status Final. |
games_live | bigint | — | Games that have kicked off and are not Final. |
games_upcoming | bigint | — | Games that have not kicked off. |
first_kickoff | stringnullable | — | First kickoff of the week (ISO 8601, UTC). |
next_kickoff | stringnullable | — | Next kickoff after now in the week (ISO 8601, UTC); null once every game has started. |
last_kickoff | stringnullable | — | Last kickoff of the week (ISO 8601, UTC). |
slates | list | — | The week's DFS slates, largest total prize money first. |
↳slate_id slates[].slate_id | bigint | — | dfs.slates id. |
↳operator slates[].operator | string | — | DraftKings or FanDuel. |
↳name slates[].name | stringnullable | — | Slate name. |
↳game_type slates[].game_type | stringnullable | — | classic, showdown, single_game or tiers (from the slate setting). |
↳main slates[].main | boolean | — | The operator's featured slate for the day. |
↳start_time slates[].start_time | stringnullable | — | Lock time (ISO 8601, UTC). |
↳status slates[].status | stringnullable | — | Upcoming, Live or Completed. |
↳contest_count slates[].contest_count | bigint | — | Contests on the slate (not cancelled). |
↳prize_pool_total slates[].prize_pool_total | bigint | — | Sum of the contests' prize pools, in cents. |
↳largest_contest_id slates[].largest_contest_id | bigintnullable | — | dfs.contests id of the largest contest (prize pool, then entries). |
↳largest_contest_name slates[].largest_contest_name | stringnullable | — | Name of the largest contest. |
↳largest_contest_prize_pool slates[].largest_contest_prize_pool | bigintnullable | — | Prize pool of the largest contest, in cents. |
flagships | object | — | The described week's flagship contest per operator (custom/dfs/flagship.rs): DraftKings' main-slate Millionaire with the most entries, FanDuel's main-slate Sunday Million with the most entries (satellites never count). Null until the contest has a lineup capsule; never a substitute. |
↳draftkings flagships.draftkings | objectnullable | — | DraftKings: the week's flagship, or null until it has a lineup capsule. |
↳operator flagships.draftkings.operator | string | — | draftkings or fanduel. |
↳season flagships.draftkings.season | integer | — | Season start year of the week. |
↳week flagships.draftkings.week | integer | — | Regular-season week. |
↳sunday flagships.draftkings.sunday | string | — | The week's game Sunday in US Eastern time (YYYY-MM-DD): the main slate's date. |
↳slate_id flagships.draftkings.slate_id | bigint | — | The operator's main NFL slate that Sunday. |
↳slate_name flagships.draftkings.slate_name | stringnullable | — | That slate's name. |
↳contest_id flagships.draftkings.contest_id | bigint | — | The flagship contest (open it in /api/v1/dfs/contests/{contest_id}/standings). |
↳name flagships.draftkings.name | string | — | The contest's name. |
↳entries flagships.draftkings.entries | bigint | — | The contest's entries. |
↳entry_fee_cents flagships.draftkings.entry_fee_cents | bigint | — | Entry fee in cents. |
↳prize_pool_cents flagships.draftkings.prize_pool_cents | bigint | — | Prize pool in cents. |
↳free flagships.draftkings.free | boolean | — | True when anyone may read the contest in full without a key (season 2026 and later, FREE_FLAGSHIP_FROM_SEASON). False in the 2021-2025 archive, the Pro product. |
↳fanduel flagships.fanduel | objectnullable | — | FanDuel: the week's flagship, or null until it has a lineup capsule. |
↳operator flagships.fanduel.operator | string | — | draftkings or fanduel. |
↳season flagships.fanduel.season | integer | — | Season start year of the week. |
↳week flagships.fanduel.week | integer | — | Regular-season week. |
↳sunday flagships.fanduel.sunday | string | — | The week's game Sunday in US Eastern time (YYYY-MM-DD): the main slate's date. |
↳slate_id flagships.fanduel.slate_id | bigint | — | The operator's main NFL slate that Sunday. |
↳slate_name flagships.fanduel.slate_name | stringnullable | — | That slate's name. |
↳contest_id flagships.fanduel.contest_id | bigint | — | The flagship contest (open it in /api/v1/dfs/contests/{contest_id}/standings). |
↳name flagships.fanduel.name | string | — | The contest's name. |
↳entries flagships.fanduel.entries | bigint | — | The contest's entries. |
↳entry_fee_cents flagships.fanduel.entry_fee_cents | bigint | — | Entry fee in cents. |
↳prize_pool_cents flagships.fanduel.prize_pool_cents | bigint | — | Prize pool in cents. |
↳free flagships.fanduel.free | boolean | — | True when anyone may read the contest in full without a key (season 2026 and later, FREE_FLAGSHIP_FROM_SEASON). False in the 2021-2025 archive, the Pro product. |
flagships_latest | object | — | Per operator, the most recent week (game Sunday on or before today) whose flagship has a lineup capsule and is free: the contest the Contest Analysis tool opens for a visitor with no key. |
↳draftkings flagships_latest.draftkings | objectnullable | — | DraftKings: the latest free flagship with a capsule, or null. |
↳operator flagships_latest.draftkings.operator | string | — | draftkings or fanduel. |
↳season flagships_latest.draftkings.season | integer | — | Season start year of the week. |
↳week flagships_latest.draftkings.week | integer | — | Regular-season week. |
↳sunday flagships_latest.draftkings.sunday | string | — | The week's game Sunday in US Eastern time (YYYY-MM-DD): the main slate's date. |
↳slate_id flagships_latest.draftkings.slate_id | bigint | — | The operator's main NFL slate that Sunday. |
↳slate_name flagships_latest.draftkings.slate_name | stringnullable | — | That slate's name. |
↳contest_id flagships_latest.draftkings.contest_id | bigint | — | The flagship contest (open it in /api/v1/dfs/contests/{contest_id}/standings). |
↳name flagships_latest.draftkings.name | string | — | The contest's name. |
↳entries flagships_latest.draftkings.entries | bigint | — | The contest's entries. |
↳entry_fee_cents flagships_latest.draftkings.entry_fee_cents | bigint | — | Entry fee in cents. |
↳prize_pool_cents flagships_latest.draftkings.prize_pool_cents | bigint | — | Prize pool in cents. |
↳free flagships_latest.draftkings.free | boolean | — | True when anyone may read the contest in full without a key (season 2026 and later, FREE_FLAGSHIP_FROM_SEASON). False in the 2021-2025 archive, the Pro product. |
↳fanduel flagships_latest.fanduel | objectnullable | — | FanDuel: the latest free flagship with a capsule, or null. |
↳operator flagships_latest.fanduel.operator | string | — | draftkings or fanduel. |
↳season flagships_latest.fanduel.season | integer | — | Season start year of the week. |
↳week flagships_latest.fanduel.week | integer | — | Regular-season week. |
↳sunday flagships_latest.fanduel.sunday | string | — | The week's game Sunday in US Eastern time (YYYY-MM-DD): the main slate's date. |
↳slate_id flagships_latest.fanduel.slate_id | bigint | — | The operator's main NFL slate that Sunday. |
↳slate_name flagships_latest.fanduel.slate_name | stringnullable | — | That slate's name. |
↳contest_id flagships_latest.fanduel.contest_id | bigint | — | The flagship contest (open it in /api/v1/dfs/contests/{contest_id}/standings). |
↳name flagships_latest.fanduel.name | string | — | The contest's name. |
↳entries flagships_latest.fanduel.entries | bigint | — | The contest's entries. |
↳entry_fee_cents flagships_latest.fanduel.entry_fee_cents | bigint | — | Entry fee in cents. |
↳prize_pool_cents flagships_latest.fanduel.prize_pool_cents | bigint | — | Prize pool in cents. |
↳free flagships_latest.fanduel.free | boolean | — | True when anyone may read the contest in full without a key (season 2026 and later, FREE_FLAGSHIP_FROM_SEASON). False in the 2021-2025 archive, the Pro product. |
teams
nfl.teamsThe 32 NFL franchises plus historical predecessors — teams that have since relocated, renamed, or merged into the current league.
GET/api/v1/nfl/teamsList teams for NFL
Parameters
activequerybooleanoptionalFilter by active status (defaults to true to show only currently-active rows; pass active=false to include inactive).
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/teams?limit=3'Responses
200teams rows matching the declared filter set, wrapped in { teams, 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(13 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
league_team_id | string | — | Official NFL team UUID from api.nfl.com e.g. 10403800-517c-7b8c-65a3-c61b95d86123 |
stadium_id | bigint | Primary home stadium (FK to `stadiums`); null if unknown or shared. e.g. 16 | |
abbreviation | string | — | Three-letter team code (e.g., KC, NE, GB). e.g. ARI |
active | boolean | — | True for currently-active franchises; false for relocated or defunct teams retained for historical references. e.g. true |
city | string | — | — e.g. Los Angeles |
conference | string | — | Conference assignment (AFC or NFC). Values:NFCAFC |
division | string | — | Division within the conference (e.g., AFC East, NFC West). Values:WestSouthNorthEast |
full_name | string | — | — e.g. Arizona Cardinals |
logo_url | stringnullable | — | URL to team logo image e.g. https://a.espncdn.com/i/teamlogos/nfl/500/ari.png |
name | string | — | — e.g. Cardinals |
primary_color | stringnullable | — | Hex color code for the team's primary uniform color (e.g., `#A71930`). e.g. #002244 |
secondary_color | stringnullable | — | Hex color code for the team's secondary uniform color. Values:#000000#FFB612#A5ACAF#C60C30#B0B7BC#A71930#9E7C0C#E64100#311D00#FB4F14#FFC20E#FFD100#F58220#FFC62F#B3995D#69BE28#322F2B#D50A0A |
GET/api/v1/nfl/teams/{id}Get a single team by id
Parameters
idpathbigintrequiredPrimary key (id) of the team 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/teams/{pk_value}'Responses
200Single team row.application/jsonshow example ▸
404Row not found.
Response Schema(13 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
league_team_id | string | — | Official NFL team UUID from api.nfl.com e.g. 10403800-517c-7b8c-65a3-c61b95d86123 |
stadium_id | bigint | Primary home stadium (FK to `stadiums`); null if unknown or shared. e.g. 16 | |
abbreviation | string | — | Three-letter team code (e.g., KC, NE, GB). e.g. ARI |
active | boolean | — | True for currently-active franchises; false for relocated or defunct teams retained for historical references. e.g. true |
city | string | — | — e.g. Los Angeles |
conference | string | — | Conference assignment (AFC or NFC). Values:NFCAFC |
division | string | — | Division within the conference (e.g., AFC East, NFC West). Values:WestSouthNorthEast |
full_name | string | — | — e.g. Arizona Cardinals |
logo_url | stringnullable | — | URL to team logo image e.g. https://a.espncdn.com/i/teamlogos/nfl/500/ari.png |
name | string | — | — e.g. Cardinals |
primary_color | stringnullable | — | Hex color code for the team's primary uniform color (e.g., `#A71930`). e.g. #002244 |
secondary_color | stringnullable | — | Hex color code for the team's secondary uniform color. Values:#000000#FFB612#A5ACAF#C60C30#B0B7BC#A71930#9E7C0C#E64100#311D00#FB4F14#FFC20E#FFD100#F58220#FFC62F#B3995D#69BE28#322F2B#D50A0A |
games
nfl.gamesEvery scheduled and played NFL game — preseason exhibitions, the 18-week regular season, the playoffs from Wild Card weekend through the Super Bowl.
GET/api/v1/nfl/gamesList games for NFL
Requires one of:
season_id — requests satisfying none of these return 400.Parameters
season_idquerybigintoptionalFilter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
weekqueryintegeroptionalFilter by week of the season. Range syntax: week__gte=, week__lte=, week__between=.
season_typequerystringoptionalFilter by season phase. Postseason round detail is in `playoff_round`. Values: postseason, preseason, regular_season.
home_team_idquerybigintoptionalFilter by home team.
away_team_idquerybigintoptionalFilter by away team.
statusquerystringoptionalFilter by row status.
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/games?season_id=2026'Responses
200games rows matching the declared filter set, wrapped in { games, 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(30 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
away_team_id | bigint | — e.g. 19 | |
home_team_id | bigint | — e.g. 16 | |
league_game_id | string | — | Official NFL game ID from league source e.g. c7ce9df0-2459-11ef-afd1-646009f18b2e |
season_id | bigint | — e.g. 2024 | |
stadium_id | integer | Stadium hosting the game (FK to `stadiums`). e.g. 16 | |
attendance | integernullable | — | Reported attendance count; null when not published. e.g. 64628 |
away_rotation_number | integernullable | — | Sportsbook rotation number for the away team (3-4 digit cross-book reference). e.g. — (all-null in sample) |
away_team | string | — | Denormalized team abbreviation for the away side at game time (snapshot copy of `teams.abbreviation`). e.g. LAR |
away_team_score | integer | — | Final away-team score; 0 (not null) until the game completes. e.g. 0 |
channel | stringnullable | — | Primary broadcast network/channel (e.g., `CBS`, `FOX`, `Prime Video`). e.g. — (all-null in sample) |
day | integer | — | Calendar day as a YYYYMMDD integer (e.g. 20240915), US Eastern. e.g. 20210103 |
end_time | timestamptznullable | — | Actual game end timestamp; null until the game completes. e.g. — (all-null in sample) |
game_label | stringnullable | — | Display label for special games (e.g., `Thanksgiving Day`, `Monday Night Football`). Values:AFC Wild CardNFC Wild CardAFC DivisionalNFC DivisionalNFC ChampionshipAFC ChampionshipSuper Bowl |
game_sub_label | stringnullable | — | Secondary label or sub-category for the game. e.g. — (all-null in sample) |
game_time | timestamptznullable | — | Scheduled kickoff time (timezone-aware); null when the league published no time. e.g. 2027-01-10T18:00:00.000Z |
home_rotation_number | integernullable | — | Sportsbook rotation number for the home team (3-4 digit cross-book reference). e.g. — (all-null in sample) |
home_team | string | — | Denormalized team abbreviation for the home side at game time (snapshot copy of `teams.abbreviation`). e.g. KC |
home_team_score | integer | — | Final home-team score; 0 (not null) until the game completes. e.g. 0 |
neutral_venue | boolean | — | True if the game is played at a neutral site (Super Bowl, international games, etc.). Values:falsetrue |
overtime | boolean | — | True if the game went to overtime. Values:falsetrue |
overtime_periods | integernullable | — | Number of overtime periods played (1+ when `overtime` is true). e.g. — (all-null in sample) |
playoff_round | stringnullable | — | Postseason round (`WildCard`, `Divisional`, `Conference Championship`, `Super Bowl`); null outside the postseason. Values:Wild CardDivisionalConference ChampionshipSuper Bowl |
playoff_seed_away | integernullable | — | Away-team playoff seed (1-7); null outside the postseason. e.g. 5 |
playoff_seed_home | integernullable | — | Home-team playoff seed (1-7); null outside the postseason. e.g. 2 |
postponed_status | stringnullable | — | Reason for postponement (e.g., `Weather`, `COVID`); null for games played as scheduled. e.g. — (all-null in sample) |
season_type | string | — | Canonical season phase. Postseason round detail (Wild Card / Divisional / Conference Championship / Super Bowl) lives in `playoff_round`. Values:regular_seasonpreseasonpostseason |
status | string | — | Game status. Currently always `Scheduled` (status reconciliation is pending) — detect completed games via populated scores, not this field. Values:FinalScheduledCanceled |
type | string | — | Game classification (`Regular`, `Playoff`, `Super Bowl`, `Preseason`). Values:RegularPreseasonPlayoff |
week | integer | — | Week number within the season stage — 1-18 for regular season, restarting at 1 in the postseason (1 Wild Card, 2 Divisional, 3 Conference Championship, 4 Super Bowl). Note nfl.injuries.week uses the continuous 19-22 convention instead. e.g. 1 |
GET/api/v1/nfl/games/{id}Get a single game by id
Parameters
idpathbigintrequiredPrimary key (id) of the game 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/games/{pk_value}'Responses
200Single game row.application/jsonshow example ▸
404Row not found.
Response Schema(30 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
away_team_id | bigint | — e.g. 19 | |
home_team_id | bigint | — e.g. 16 | |
league_game_id | string | — | Official NFL game ID from league source e.g. c7ce9df0-2459-11ef-afd1-646009f18b2e |
season_id | bigint | — e.g. 2024 | |
stadium_id | integer | Stadium hosting the game (FK to `stadiums`). e.g. 16 | |
attendance | integernullable | — | Reported attendance count; null when not published. e.g. 64628 |
away_rotation_number | integernullable | — | Sportsbook rotation number for the away team (3-4 digit cross-book reference). e.g. — (all-null in sample) |
away_team | string | — | Denormalized team abbreviation for the away side at game time (snapshot copy of `teams.abbreviation`). e.g. LAR |
away_team_score | integer | — | Final away-team score; 0 (not null) until the game completes. e.g. 0 |
channel | stringnullable | — | Primary broadcast network/channel (e.g., `CBS`, `FOX`, `Prime Video`). e.g. — (all-null in sample) |
day | integer | — | Calendar day as a YYYYMMDD integer (e.g. 20240915), US Eastern. e.g. 20210103 |
end_time | timestamptznullable | — | Actual game end timestamp; null until the game completes. e.g. — (all-null in sample) |
game_label | stringnullable | — | Display label for special games (e.g., `Thanksgiving Day`, `Monday Night Football`). Values:AFC Wild CardNFC Wild CardAFC DivisionalNFC DivisionalNFC ChampionshipAFC ChampionshipSuper Bowl |
game_sub_label | stringnullable | — | Secondary label or sub-category for the game. e.g. — (all-null in sample) |
game_time | timestamptznullable | — | Scheduled kickoff time (timezone-aware); null when the league published no time. e.g. 2027-01-10T18:00:00.000Z |
home_rotation_number | integernullable | — | Sportsbook rotation number for the home team (3-4 digit cross-book reference). e.g. — (all-null in sample) |
home_team | string | — | Denormalized team abbreviation for the home side at game time (snapshot copy of `teams.abbreviation`). e.g. KC |
home_team_score | integer | — | Final home-team score; 0 (not null) until the game completes. e.g. 0 |
neutral_venue | boolean | — | True if the game is played at a neutral site (Super Bowl, international games, etc.). Values:falsetrue |
overtime | boolean | — | True if the game went to overtime. Values:falsetrue |
overtime_periods | integernullable | — | Number of overtime periods played (1+ when `overtime` is true). e.g. — (all-null in sample) |
playoff_round | stringnullable | — | Postseason round (`WildCard`, `Divisional`, `Conference Championship`, `Super Bowl`); null outside the postseason. Values:Wild CardDivisionalConference ChampionshipSuper Bowl |
playoff_seed_away | integernullable | — | Away-team playoff seed (1-7); null outside the postseason. e.g. 5 |
playoff_seed_home | integernullable | — | Home-team playoff seed (1-7); null outside the postseason. e.g. 2 |
postponed_status | stringnullable | — | Reason for postponement (e.g., `Weather`, `COVID`); null for games played as scheduled. e.g. — (all-null in sample) |
season_type | string | — | Canonical season phase. Postseason round detail (Wild Card / Divisional / Conference Championship / Super Bowl) lives in `playoff_round`. Values:regular_seasonpreseasonpostseason |
status | string | — | Game status. Currently always `Scheduled` (status reconciliation is pending) — detect completed games via populated scores, not this field. Values:FinalScheduledCanceled |
type | string | — | Game classification (`Regular`, `Playoff`, `Super Bowl`, `Preseason`). Values:RegularPreseasonPlayoff |
week | integer | — | Week number within the season stage — 1-18 for regular season, restarting at 1 in the postseason (1 Wild Card, 2 Divisional, 3 Conference Championship, 4 Super Bowl). Note nfl.injuries.week uses the continuous 19-22 convention instead. e.g. 1 |
players
nfl.playersEvery individual who has played in the NFL — current rosters, free agents, retired veterans — plus team-defense entries used for fantasy and DST scoring.
GET/api/v1/nfl/playersList players for NFL
Requires one of:
team_id or roster_status or gsis_id or primary_position — requests satisfying none of these return 400.Parameters
team_idquerybigintoptionalFilter by team.
roster_statusquerystringoptionalFilter by canonical roster status (shared cross-league vocabulary). The "on a team now" set is {active, injured_reserve, practice_squad, reserve, suspended}. Values: active, injured_reserve, practice_squad, reserve, suspended, free_agent, waived, retired, inactive.
gsis_idquerystringoptionalFilter by GSIS external player id.
primary_positionquerystringoptionalFilter by player primary position (e.g. QB, WR, RB). Values: C, CB, DB, DE, DL, DST, DT, FB, FS, G, ILB, K, LB, LS, MLB, NT, OL, OLB, OT, P, QB, RB, S, SAF, TE, WR.
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/players?team_id=1'Responses
200players rows matching the declared filter set, wrapped in { players, 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(27 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
gsis_id | string | — | Game Statistics and Information System ID (e.g. 00-0028830) e.g. 00-0022531 |
league_player_id | stringnullable | — | Official NFL player ID (UUID) from nfl.com e.g. 3200524f-4433-9293-a3cf-ad7758d03003 |
team_id | bigintnullable | Current NFL team (FK to `teams`); null for free agents and retired players. e.g. 1 | |
birth_city | stringnullable | — | — e.g. Houston |
birth_country | stringnullable | — | — e.g. — (all-null in sample) |
birth_date | datenullable | — | — e.g. 1997-02-14 |
birth_state | stringnullable | — | — e.g. TX |
college | stringnullable | — | College or last football affiliation before turning pro. e.g. Alabama |
draft_number | stringnullable | — | Pick number within the round; null or `UDFA` if undrafted. e.g. 1 |
draft_round | stringnullable | — | Draft round (1-7); null or `UDFA` if undrafted. e.g. 1 |
draft_year | stringnullable | — | Calendar year the player was drafted; null or `UDFA` if undrafted. e.g. 2023 |
experience | integernullable | — | Years of NFL experience (rookies = 0). e.g. 1 |
first_name | string | — | — e.g. Michael |
full_name | string | — | — e.g. Aaron Brewer |
full_position_list | stringnullable | — | All positions the player is eligible at (semicolon-joined when multiple, e.g., `RB;WR`). e.g. — (all-null in sample) |
height | integernullable | — | Height in inches. e.g. 75 |
is_team | boolean | — | True for synthetic team-level entities (DST, team defense). Used to distinguish team defense 'players' from individual players. Values:falsetrue |
jersey | stringnullable | — | Jersey number with the player's current team (string to preserve leading zeros and special codes). e.g. null |
last_name | string | — | — e.g. Jones |
nfl_slug | stringnullable | — | URL slug used on nfl.com (e.g., `patrick-mahomes`). e.g. — (all-null in sample) |
overall_pick | integernullable | — | Overall pick number across all rounds (1-262); null if undrafted. e.g. 217 |
position_group | stringnullable | — | Broad position group classification used by nflverse (e.g., `OFFENSE`, `DEFENSE`, `ST`). Values:OffenseDefenseSpecial Teams |
primary_position | string | — | Primary roster position (e.g., QB, WR, RB, CB). e.g. WR |
profile_pic_url | stringnullable | — | URL to player profile picture image e.g. https://static.www.nfl.com/image/upload/f_auto,q_auto/leagu… |
roster_status | stringnullable | — | Canonical roster status, shared across leagues. NFL has the richest source vocabulary. The "on a team now" set is {active, injured_reserve, practice_squad, reserve, suspended}; free_agent/waived/retired/inactive are off-roster. Values:activepractice_squadwaivedreservefree_agentinjured_reserveinactiveretiredsuspended |
weight | integernullable | — | Weight in pounds. e.g. 200 |
GET/api/v1/nfl/players/{id}Get a single player by id
Parameters
idpathbigintrequiredPrimary key (id) of the player 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/players/{pk_value}'Responses
200Single player row.application/jsonshow example ▸
404Row not found.
Response Schema(27 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
gsis_id | string | — | Game Statistics and Information System ID (e.g. 00-0028830) e.g. 00-0022531 |
league_player_id | stringnullable | — | Official NFL player ID (UUID) from nfl.com e.g. 3200524f-4433-9293-a3cf-ad7758d03003 |
team_id | bigintnullable | Current NFL team (FK to `teams`); null for free agents and retired players. e.g. 1 | |
birth_city | stringnullable | — | — e.g. Houston |
birth_country | stringnullable | — | — e.g. — (all-null in sample) |
birth_date | datenullable | — | — e.g. 1997-02-14 |
birth_state | stringnullable | — | — e.g. TX |
college | stringnullable | — | College or last football affiliation before turning pro. e.g. Alabama |
draft_number | stringnullable | — | Pick number within the round; null or `UDFA` if undrafted. e.g. 1 |
draft_round | stringnullable | — | Draft round (1-7); null or `UDFA` if undrafted. e.g. 1 |
draft_year | stringnullable | — | Calendar year the player was drafted; null or `UDFA` if undrafted. e.g. 2023 |
experience | integernullable | — | Years of NFL experience (rookies = 0). e.g. 1 |
first_name | string | — | — e.g. Michael |
full_name | string | — | — e.g. Aaron Brewer |
full_position_list | stringnullable | — | All positions the player is eligible at (semicolon-joined when multiple, e.g., `RB;WR`). e.g. — (all-null in sample) |
height | integernullable | — | Height in inches. e.g. 75 |
is_team | boolean | — | True for synthetic team-level entities (DST, team defense). Used to distinguish team defense 'players' from individual players. Values:falsetrue |
jersey | stringnullable | — | Jersey number with the player's current team (string to preserve leading zeros and special codes). e.g. null |
last_name | string | — | — e.g. Jones |
nfl_slug | stringnullable | — | URL slug used on nfl.com (e.g., `patrick-mahomes`). e.g. — (all-null in sample) |
overall_pick | integernullable | — | Overall pick number across all rounds (1-262); null if undrafted. e.g. 217 |
position_group | stringnullable | — | Broad position group classification used by nflverse (e.g., `OFFENSE`, `DEFENSE`, `ST`). Values:OffenseDefenseSpecial Teams |
primary_position | string | — | Primary roster position (e.g., QB, WR, RB, CB). e.g. WR |
profile_pic_url | stringnullable | — | URL to player profile picture image e.g. https://static.www.nfl.com/image/upload/f_auto,q_auto/leagu… |
roster_status | stringnullable | — | Canonical roster status, shared across leagues. NFL has the richest source vocabulary. The "on a team now" set is {active, injured_reserve, practice_squad, reserve, suspended}; free_agent/waived/retired/inactive are off-roster. Values:activepractice_squadwaivedreservefree_agentinjured_reserveinactiveretiredsuspended |
weight | integernullable | — | Weight in pounds. e.g. 200 |
Plays
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 from nflverse 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 from nflverse 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 |
play_participations
nfl.play_participationsThe personnel and pre-snap setup on every NFL play (one row per play, not per player) — offensive formation, personnel grouping, defensive look, coverage scheme, and the on-field player ids as comma-joined text columns. 2024 season coverage.
GET/api/v1/nfl/play_participationsList play_participations for NFL
Requires one of:
play_id or game_id — requests satisfying none of these return 400.Parameters
play_idquerystringoptionalFilter by play.
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/play_participations?play_id=example'Responses
200play_participations rows matching the declared filter set, wrapped in { play_participations, 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(20 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 61 | |
play_id | string | — | Play identifier matching `play_by_plays.play_id` for the same game. e.g. 40 |
possession_team_id | bigint | Team in possession on this play (FK to `teams`). e.g. 26 | |
defenders_in_box | integernullable | — | Number of defenders within ~8 yards of the line of scrimmage at the snap. e.g. 6 |
defense_coverage_type | stringnullable | — | Specific coverage scheme (e.g., `COVER_1`, `COVER_2_MAN`, `COVER_3`, `COVER_4`). Values:COVER_1COVER_2COVER_32_MANCOVER_4COVER_0COVER_6COMBOCOVER_9BLOWN |
defense_man_zone_type | stringnullable | — | Man- vs. zone-coverage classification (`MAN`, `ZONE`). Values:MAN_COVERAGEZONE_COVERAGE |
defense_personnel | stringnullable | — | Defensive personnel grouping (e.g., `4 DL, 2 LB, 5 DB`). e.g. 3 CB, 2 DE, 2 DT, 1 FS, 2 ILB, 1 SS |
defense_players_gsis_ids | stringnullable | — | GSIS IDs of defensive players on the field for this play. e.g. 00-0033393,00-0039156,00-0038407,00-0034359,00-0036479,00-0… |
n_defense | integernullable | — | Count of defensive players on the field (typically 11). e.g. 11 |
n_offense | integernullable | — | Count of offensive players on the field (typically 11). e.g. 11 |
ngs_air_yds | decimalnullable | — | Air yards traveled by the pass from the line of scrimmage to where the receiver caught/dropped it (Next Gen Stats). e.g. — (all-null in sample) |
number_of_pass_rushers | integernullable | — | Number of defenders who rushed the passer on this play (Next Gen Stats). e.g. 0 |
offense_formation | stringnullable | — | Offensive formation alignment (e.g., `SHOTGUN`, `SINGLEBACK`, `I_FORM`, `PISTOL`). Values:SHOTGUNUNDER CENTERPISTOL |
offense_personnel | stringnullable | — | Offensive personnel grouping in `RB-TE-WR` shorthand (e.g., `1 RB, 2 TE, 2 WR` → `12 personnel`). e.g. 1 C, 2 G, 1 QB, 1 RB, 2 T, 1 TE, 3 WR |
offense_players_gsis_ids | stringnullable | — | GSIS IDs of offensive players on the field for this play. e.g. 00-0036325,00-0036417,00-0036968,00-0037297,00-0039150,00-0… |
players_on_play_gsis_ids | stringnullable | — | GSIS IDs of every player on the field for this play (comma-separated or JSON-encoded depending on source vintage). e.g. 00-0037758,00-0039000,00-0039821,00-0036552,00-0036325,00-0… |
route | stringnullable | — | Route the targeted receiver ran (e.g., `GO`, `SLANT`, `OUT`, `POST`). Values:QUICK OUTHITCH/CURLSCREENIN/DIGGODEEP OUTSHALLOW CROSS/DRAGSLANTCORNERSWINGPOSTTEXAS/ANGLEWHEEL |
time_to_throw | decimalnullable | — | Time from snap to pass release in seconds (Next Gen Stats). e.g. 2.3000 |
was_pressure | booleannullable | — | True if the quarterback faced pass-rush pressure on this play. Values:falsetrue |
GET/api/v1/nfl/play_participations/{id}Get a single play_participation by id
Parameters
idpathbigintrequiredPrimary key (id) of the play_participation 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/play_participations/{pk_value}'Responses
200Single play_participation row.application/jsonshow example ▸
404Row not found.
Response Schema(20 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 61 | |
play_id | string | — | Play identifier matching `play_by_plays.play_id` for the same game. e.g. 40 |
possession_team_id | bigint | Team in possession on this play (FK to `teams`). e.g. 26 | |
defenders_in_box | integernullable | — | Number of defenders within ~8 yards of the line of scrimmage at the snap. e.g. 6 |
defense_coverage_type | stringnullable | — | Specific coverage scheme (e.g., `COVER_1`, `COVER_2_MAN`, `COVER_3`, `COVER_4`). Values:COVER_1COVER_2COVER_32_MANCOVER_4COVER_0COVER_6COMBOCOVER_9BLOWN |
defense_man_zone_type | stringnullable | — | Man- vs. zone-coverage classification (`MAN`, `ZONE`). Values:MAN_COVERAGEZONE_COVERAGE |
defense_personnel | stringnullable | — | Defensive personnel grouping (e.g., `4 DL, 2 LB, 5 DB`). e.g. 3 CB, 2 DE, 2 DT, 1 FS, 2 ILB, 1 SS |
defense_players_gsis_ids | stringnullable | — | GSIS IDs of defensive players on the field for this play. e.g. 00-0033393,00-0039156,00-0038407,00-0034359,00-0036479,00-0… |
n_defense | integernullable | — | Count of defensive players on the field (typically 11). e.g. 11 |
n_offense | integernullable | — | Count of offensive players on the field (typically 11). e.g. 11 |
ngs_air_yds | decimalnullable | — | Air yards traveled by the pass from the line of scrimmage to where the receiver caught/dropped it (Next Gen Stats). e.g. — (all-null in sample) |
number_of_pass_rushers | integernullable | — | Number of defenders who rushed the passer on this play (Next Gen Stats). e.g. 0 |
offense_formation | stringnullable | — | Offensive formation alignment (e.g., `SHOTGUN`, `SINGLEBACK`, `I_FORM`, `PISTOL`). Values:SHOTGUNUNDER CENTERPISTOL |
offense_personnel | stringnullable | — | Offensive personnel grouping in `RB-TE-WR` shorthand (e.g., `1 RB, 2 TE, 2 WR` → `12 personnel`). e.g. 1 C, 2 G, 1 QB, 1 RB, 2 T, 1 TE, 3 WR |
offense_players_gsis_ids | stringnullable | — | GSIS IDs of offensive players on the field for this play. e.g. 00-0036325,00-0036417,00-0036968,00-0037297,00-0039150,00-0… |
players_on_play_gsis_ids | stringnullable | — | GSIS IDs of every player on the field for this play (comma-separated or JSON-encoded depending on source vintage). e.g. 00-0037758,00-0039000,00-0039821,00-0036552,00-0036325,00-0… |
route | stringnullable | — | Route the targeted receiver ran (e.g., `GO`, `SLANT`, `OUT`, `POST`). Values:QUICK OUTHITCH/CURLSCREENIN/DIGGODEEP OUTSHALLOW CROSS/DRAGSLANTCORNERSWINGPOSTTEXAS/ANGLEWHEEL |
time_to_throw | decimalnullable | — | Time from snap to pass release in seconds (Next Gen Stats). e.g. 2.3000 |
was_pressure | booleannullable | — | True if the quarterback faced pass-rush pressure on this play. Values:falsetrue |
play_by_plays
nfl.play_by_playsEvery 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.
GET/api/v1/nfl/play_by_playsList play_by_plays for NFL
Requires one of:
game_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game. Required — querying NFL play-by-play across all games is impractical (millions of rows).
possession_team_idquerybigintoptionalFilter by team in possession.
defensive_team_idquerybigintoptionalFilter by team on defense.
drive_idquerybigintoptionalFilter by drive.
limitqueryintegeroptionaldefault 100Page size. Defaults to 100; 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/play_by_plays?game_id=1'Responses
200play_by_plays rows matching the declared filter set, wrapped in { play_by_plays, 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(372 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
assist_tackle_1_player_id | stringnullable | — | Assist tackler 1 GSIS ID e.g. 00-0037616 |
assist_tackle_2_player_id | stringnullable | — | Assist tackler 2 GSIS ID e.g. 00-0036294 |
assist_tackle_3_player_id | stringnullable | — | Assist tackler 3 GSIS ID e.g. — (all-null in sample) |
assist_tackle_4_player_id | stringnullable | — | Assist tackler 4 GSIS ID e.g. — (all-null in sample) |
blocked_player_id | stringnullable | — | Blocked kick player GSIS ID Values:00-003752700-003784300-003698200-0037156 |
defensive_team_id | bigintnullable | FK to teams table for defensive team e.g. 14 | |
drive_id | bigintnullable | FK to game_drives table e.g. 41 | |
fantasy_id | stringnullable | — | Fantasy identifier e.g. 00-0035700 |
fantasy_player_id | stringnullable | — | Fantasy designation player ID e.g. 00-0034844 |
forced_fumble_player_1_player_id | stringnullable | — | Forced fumble player 1 GSIS ID e.g. 00-0033868 |
forced_fumble_player_2_player_id | stringnullable | — | Forced fumble player 2 GSIS ID e.g. — (all-null in sample) |
fumble_recovery_1_player_id | stringnullable | — | Recovery player 1 GSIS ID e.g. 00-0037666 |
fumble_recovery_2_player_id | stringnullable | — | Recovery player 2 GSIS ID e.g. — (all-null in sample) |
fumbled_1_player_id | stringnullable | — | First fumbler GSIS ID e.g. 00-0036442 |
fumbled_2_player_id | stringnullable | — | Second fumbler GSIS ID e.g. — (all-null in sample) |
game_id | bigint | FK to games table e.g. 50 | |
half_sack_1_player_id | stringnullable | — | Half-sack player 1 GSIS ID Values:00-003914800-003850400-003237800-003695400-003267100-003241500-003910800-003589000-003760300-003694000-0035402 |
half_sack_2_player_id | stringnullable | — | Half-sack player 2 GSIS ID Values:00-003613000-003648000-003434400-003104000-003438500-003158300-003156500-003637800-003853500-003257400-003632100-0034251 |
interception_player_id | stringnullable | — | Interceptor GSIS ID e.g. 00-0036388 |
kicker_player_id | stringnullable | — | Kicker GSIS ID e.g. 00-0038905 |
kickoff_returner_player_id | stringnullable | — | Kickoff returner GSIS ID e.g. 00-0037429 |
lateral_interception_player_id | stringnullable | — | Lateral after INT GSIS ID e.g. — (all-null in sample) |
lateral_kickoff_returner_player_id | stringnullable | — | Lateral kickoff returner GSIS ID e.g. — (all-null in sample) |
lateral_punt_returner_player_id | stringnullable | — | Lateral punt returner GSIS ID e.g. — (all-null in sample) |
lateral_receiver_player_id | stringnullable | — | Lateral receiver GSIS ID (pass) e.g. 00-0038976 |
lateral_rusher_player_id | stringnullable | — | Lateral receiver GSIS ID (rush) e.g. 00-0034975 |
lateral_sack_player_id | stringnullable | — | Lateral after sack GSIS ID e.g. — (all-null in sample) |
nfl_api_id | stringnullable | — | UUID from NFL API e.g. 7d4019ca-1312-11ef-afd1-646009f18b2e |
nflverse_game_id | stringnullable | — | Ten digit identifier for NFL game (nflverse format) e.g. — (all-null in sample) |
old_game_id | stringnullable | — | Legacy NFL game ID format e.g. 2024090600 |
own_kickoff_recovery_player_id | stringnullable | — | Own kickoff recovery player GSIS ID e.g. — (all-null in sample) |
pass_defense_1_player_id | stringnullable | — | Pass defense player 1 GSIS ID e.g. 00-0034856 |
pass_defense_2_player_id | stringnullable | — | Pass defense player 2 GSIS ID Values:00-003155400-003724600-003423400-003982900-003502000-003725000-0034720 |
passer_id | bigintnullable | FK to players table e.g. 358 | |
passer_player_id | stringnullable | — | Passer GSIS ID e.g. 00-0033537 |
penalty_player_id | stringnullable | — | Penalized player GSIS ID e.g. 00-0036874 |
play_id | string | — | Numeric play identifier unique to game e.g. 1 |
possession_team_id | bigintnullable | FK to teams table for possession team e.g. 8 | |
primary_player_gsis_id | stringnullable | — | Primary player GSIS ID e.g. — (all-null in sample) |
punt_returner_player_id | stringnullable | — | Punt returner GSIS ID e.g. 00-0039392 |
punter_player_id | stringnullable | — | Punter GSIS ID e.g. 00-0032943 |
qb_hit_1_player_id | stringnullable | — | QB hitter GSIS ID e.g. 00-0036932 |
qb_hit_2_player_id | stringnullable | — | Second QB hitter GSIS ID Values:00-003613000-003648000-003434400-003104000-003438500-003158300-003156500-003257400-003632100-0034251 |
receiver_id | bigintnullable | FK to players table e.g. 438 | |
receiver_player_id | stringnullable | — | Receiver GSIS ID e.g. 00-0033908 |
rusher_id | bigintnullable | FK to players table e.g. 943 | |
rusher_player_id | stringnullable | — | Rusher GSIS ID e.g. 00-0035700 |
sack_player_id | stringnullable | — | Sacker GSIS ID e.g. 00-0036914 |
safety_player_id | stringnullable | — | Safety scorer GSIS ID Values:00-003524800-0037251 |
solo_tackle_1_player_id | stringnullable | — | Solo tackler 1 GSIS ID e.g. 00-0034987 |
solo_tackle_2_player_id | stringnullable | — | Solo tackler 2 GSIS ID Values:00-003975300-0039032 |
stadium_id | integernullable | Stadium ID e.g. — (all-null in sample) | |
tackle_for_loss_1_player_id | stringnullable | — | TFL player 1 GSIS ID e.g. 00-0034973 |
tackle_for_loss_2_player_id | stringnullable | — | TFL player 2 GSIS ID e.g. — (all-null in sample) |
tackle_with_assist_1_player_id | stringnullable | — | Tackle-assist player 1 GSIS ID e.g. 00-0031898 |
tackle_with_assist_2_player_id | stringnullable | — | Tackle-assist player 2 GSIS ID e.g. — (all-null in sample) |
td_player_id | stringnullable | — | TD scorer GSIS ID e.g. 00-0033906 |
aborted_play | boolean | — | Play was aborted Values:falsetrue |
air_epa | decimalnullable | — | EPA from air yards e.g. -0.1479 |
air_wpa | decimalnullable | — | WPA from air yards e.g. 0.0000 |
air_yds | integernullable | — | Yards in air (perpendicular to LOS) e.g. 5 |
assist_tackle | boolean | — | Assist tackle on play Values:falsetrue |
assist_tackle_1_player_name | stringnullable | — | Assist tackler 1 name e.g. J.Jones |
assist_tackle_1_team | stringnullable | — | Assist tackler 1 team e.g. IND |
assist_tackle_2_player_name | stringnullable | — | Assist tackler 2 name e.g. L.Wilson |
assist_tackle_2_team | stringnullable | — | Assist tackler 2 team e.g. LA |
assist_tackle_3_player_name | stringnullable | — | Assist tackler 3 name e.g. — (all-null in sample) |
assist_tackle_3_team | stringnullable | — | Assist tackler 3 team e.g. — (all-null in sample) |
assist_tackle_4_player_name | stringnullable | — | Assist tackler 4 name e.g. — (all-null in sample) |
assist_tackle_4_team | stringnullable | — | Assist tackler 4 team e.g. — (all-null in sample) |
away_coach | stringnullable | — | Away team head coach e.g. Antonio Pierce |
away_score | integernullable | — | Total away points e.g. 20 |
away_team | stringnullable | — | Away team abbreviation e.g. LV |
away_timeouts_remaining | integernullable | — | Away timeouts remaining e.g. 3 |
away_wp | decimalnullable | — | Away team win probability e.g. 0.0001 |
away_wp_post | decimalnullable | — | Away WP after play e.g. 0.0001 |
blocked_player_name | stringnullable | — | Blocked kick player name Values:S.OlubiD.HardyC.GolstonI.Charles |
comp_air_epa | decimalnullable | — | Completion air EPA e.g. 0.0000 |
comp_air_wpa | decimalnullable | — | Completion air WPA e.g. 0.0000 |
comp_yac_epa | decimalnullable | — | Completion YAC EPA e.g. 0.0000 |
comp_yac_wpa | decimalnullable | — | Completion YAC WPA e.g. 0.0000 |
complete_pass | boolean | — | Pass completed Values:falsetrue |
cp | decimalnullable | — | Completion probability e.g. 0.8676 |
cpoe | decimalnullable | — | Completion percentage over expected e.g. 13.2417 |
def_wp | decimalnullable | — | Win probability for defense e.g. 0.4537 |
defensive_extra_point_attempt | boolean | — | Defense extra point attempt e.g. false |
defensive_extra_point_conv | boolean | — | Defense extra point success e.g. false |
defensive_two_point_attempt | boolean | — | Defense two-point attempt e.g. false |
defensive_two_point_conv | boolean | — | Defense two-point conversion success e.g. false |
defteam | stringnullable | — | Defensive team abbreviation e.g. IND |
defteam_score | integernullable | — | Defense team score at start e.g. 0 |
defteam_score_post | integernullable | — | Defense team score at end e.g. 0 |
defteam_timeouts_remaining | integernullable | — | Defensive team timeouts e.g. 3 |
desc | stringnullable | — | Full play description text e.g. GAME |
div_game | boolean | — | Division game Values:falsetrue |
down | integernullable | — | Down (1-4) e.g. 1 |
drive | integernullable | — | Drive number in game e.g. 6 |
drive_end_transition | stringnullable | — | How drive ended Values:FIELD_GOALPUNTTOUCHDOWNDOWNSINTERCEPTIONEND_GAMEFUMBLEMISSED_FGEND_HALFBLOCKED_PUNTSAFETY |
drive_end_yard_line | stringnullable | — | Yard line at drive end e.g. 50 |
drive_ended_with_score | boolean | — | Drive resulted in score Values:truefalse |
drive_first_downs | integernullable | — | First downs gained in drive e.g. 0 |
drive_game_clock_end | stringnullable | — | Game clock at drive end e.g. 00:00 |
drive_game_clock_start | stringnullable | — | Game clock at drive start e.g. 15:00 |
drive_inside20 | boolean | — | Drive reached red zone Values:falsetrue |
drive_play_count | integernullable | — | Number of plays in drive e.g. 3 |
drive_play_id_ended | stringnullable | — | Last play_id of drive e.g. 4175 |
drive_play_id_started | stringnullable | — | First play_id of drive e.g. 40 |
drive_quarter_end | integernullable | — | Quarter when drive ended e.g. 2 |
drive_quarter_start | integernullable | — | Quarter when drive started e.g. 3 |
drive_real_start_time | stringnullable | — | Drive start time (real clock) e.g. 2024-09-07T03:15:55.057Z |
drive_start_transition | stringnullable | — | How possession was obtained Values:KICKOFFPUNTINTERCEPTIONDOWNSFUMBLEMISSED_FGMUFFED_PUNTBLOCKED_PUNTMUFFED_KICKOFF |
drive_start_yard_line | stringnullable | — | Yard line at drive start e.g. PHI 30 |
drive_time_of_possession | stringnullable | — | Drive time of possession (mm:ss) e.g. 2:28 |
drive_yds_penalized | integernullable | — | Penalty yards during drive e.g. 0 |
end_clock_time | stringnullable | — | Game clock at play end e.g. 2024-09-15T17:30:53.207Z |
end_yard_line | stringnullable | — | Yard line at play end e.g. — (all-null in sample) |
ep | decimalnullable | — | Expected points before play e.g. 0.9324 |
epa | decimalnullable | — | Expected points added e.g. 0.0000 |
extra_point_attempt | boolean | — | Extra point attempt Values:falsetrue |
extra_point_prob | decimalnullable | — | Extra point probability e.g. 0.0000 |
extra_point_result | stringnullable | — | good, failed, blocked, safety, aborted Values:goodfailedblocked |
fantasy | stringnullable | — | Fantasy designation e.g. B.Robinson |
fantasy_player_name | stringnullable | — | Fantasy designation player name e.g. B.Robinson |
fg_prob | decimalnullable | — | FG probability e.g. 0.0000 |
field_goal_attempt | boolean | — | Field goal attempt Values:falsetrue |
field_goal_result | stringnullable | — | made, missed, or blocked Values:mademissed |
first_down | boolean | — | First down achieved Values:falsetrue |
first_down_pass | boolean | — | Passing first down Values:falsetrue |
first_down_penalty | boolean | — | First down via penalty Values:falsetrue |
first_down_rush | boolean | — | Rushing first down Values:falsetrue |
fixed_drive | integernullable | — | Manual drive number correction e.g. 1 |
fixed_drive_result | stringnullable | — | Manual drive result correction Values:Field goalPuntTouchdownTurnoverTurnover on downsEnd of halfMissed field goalOpp touchdownSafety |
forced_fumble_player_1_player_name | stringnullable | — | Forced fumble player 1 name e.g. M.Garrett |
forced_fumble_player_1_team | stringnullable | — | Forced fumble team 1 e.g. KC |
forced_fumble_player_2_player_name | stringnullable | — | Forced fumble player 2 name e.g. — (all-null in sample) |
forced_fumble_player_2_team | stringnullable | — | Forced fumble team 2 e.g. — (all-null in sample) |
fourth_down_converted | boolean | — | Fourth down conversion Values:falsetrue |
fourth_down_failed | boolean | — | Fourth down failure Values:falsetrue |
fumble | boolean | — | Fumble occurred Values:falsetrue |
fumble_forced | boolean | — | Fumble was forced Values:falsetrue |
fumble_lost | boolean | — | Fumble was lost Values:falsetrue |
fumble_not_forced | boolean | — | Fumble was not forced Values:falsetrue |
fumble_out_of_bounds | boolean | — | Fumble went OOB Values:falsetrue |
fumble_recovery_1_player_name | stringnullable | — | Recovery player 1 name e.g. J.Tolbert |
fumble_recovery_1_team | stringnullable | — | Recovery team 1 e.g. CHI |
fumble_recovery_1_yds | integernullable | — | Recovery yards 1 e.g. 0 |
fumble_recovery_2_player_name | stringnullable | — | Recovery player 2 name e.g. — (all-null in sample) |
fumble_recovery_2_team | stringnullable | — | Recovery team 2 e.g. — (all-null in sample) |
fumble_recovery_2_yds | integernullable | — | Recovery yards 2 e.g. — (all-null in sample) |
fumbled_1_player_name | stringnullable | — | First fumbler name e.g. J.Burrow |
fumbled_1_team | stringnullable | — | First fumbler team e.g. CIN |
fumbled_2_player_name | stringnullable | — | Second fumbler name e.g. — (all-null in sample) |
fumbled_2_team | stringnullable | — | Second fumbler team e.g. — (all-null in sample) |
game_half | stringnullable | — | Half1, Half2, or Overtime Values:Half1Half2Overtime |
game_seconds_remaining | integer | — | Seconds remaining in game e.g. 1800 |
game_stadium | stringnullable | — | Game stadium name e.g. GEHA Field at Arrowhead Stadium |
goal_to_go | boolean | — | Goal-to-go situation Values:falsetrue |
half_sack_1_player_name | stringnullable | — | Half-sack player 1 name Values:K.WhiteT.SimpsonD.BucknerL.OnwuzurikeM.FoxM.JudonW.AndersonT.WhartonJ.PeevyO.OwehC.Granderson |
half_sack_2_player_name | stringnullable | — | Half-sack player 2 name Values:J.MadubuikeD.OdeyingboM.DavenportK.MackJ.BentleyG.JarrettD.HunterM.DannaDj.JohnsonM.PierceC.YoungD.Ekuale |
half_seconds_remaining | integer | — | Seconds remaining in half e.g. 1800 |
home_coach | stringnullable | — | Home team head coach e.g. Nick Sirianni |
home_opening_kickoff | boolean | — | Home team had opening kickoff Values:truefalse |
home_score | integernullable | — | Total home points e.g. 26 |
home_team | stringnullable | — | Home team abbreviation e.g. PHI |
home_timeouts_remaining | integernullable | — | Home timeouts remaining e.g. 3 |
home_wp | decimalnullable | — | Home team win probability e.g. 0.9999 |
home_wp_post | decimalnullable | — | Home WP after play e.g. 0.9999 |
incomplete_pass | boolean | — | Pass incomplete Values:falsetrue |
interception | boolean | — | Interception indicator Values:falsetrue |
interception_player_name | stringnullable | — | Interceptor name e.g. X.McKinney |
jersey_number | integernullable | — | Primary player jersey e.g. 8 |
kick_distance | integernullable | — | Kick distance in yards e.g. 65 |
kicker_player_name | stringnullable | — | Kicker name e.g. B.Grupe |
kickoff_attempt | boolean | — | Kickoff attempt Values:falsetrue |
kickoff_downed | boolean | — | Kickoff downed e.g. false |
kickoff_fair_catch | boolean | — | Kickoff fair catch Values:falsetrue |
kickoff_in_endzone | boolean | — | Kickoff in endzone Values:falsetrue |
kickoff_inside_twenty | boolean | — | Kickoff inside 20 Values:falsetrue |
kickoff_out_of_bounds | boolean | — | Kickoff OOB Values:falsetrue |
kickoff_returner_player_name | stringnullable | — | Kickoff returner name e.g. R.Blackshear |
lateral_interception_player_name | stringnullable | — | Lateral after INT name e.g. — (all-null in sample) |
lateral_kickoff_returner_player_name | stringnullable | — | Lateral kickoff returner name e.g. — (all-null in sample) |
lateral_punt_returner_player_name | stringnullable | — | Lateral punt returner name e.g. — (all-null in sample) |
lateral_receiver_player_name | stringnullable | — | Lateral receiver name (pass) e.g. M.Mims |
lateral_receiving_yds | integernullable | — | Yards after lateral (pass) e.g. 2 |
lateral_reception | boolean | — | Lateral on pass play Values:falsetrue |
lateral_return | boolean | — | Lateral on return e.g. false |
lateral_rush | boolean | — | Lateral on rush play Values:falsetrue |
lateral_rusher_player_name | stringnullable | — | Lateral receiver name (rush) e.g. J.Hill |
lateral_rushing_yds | integernullable | — | Yards after lateral (rush) e.g. 5 |
lateral_sack_player_name | stringnullable | — | Lateral after sack name e.g. — (all-null in sample) |
location | stringnullable | — | Home or Neutral Values:HomeNeutral |
name | stringnullable | — | Primary player name (passer or rusher) e.g. L.Jackson |
no_huddle | boolean | — | No-huddle offense Values:falsetrue |
no_score_prob | decimalnullable | — | Probability of no score e.g. 0.0000 |
opp_fg_prob | decimalnullable | — | Opponent FG probability e.g. 0.0000 |
opp_safety_prob | decimalnullable | — | Opponent safety probability e.g. 0.0000 |
opp_td_prob | decimalnullable | — | Opponent TD probability e.g. 0.0000 |
order_sequence | decimalnullable | — | NFL play-ordering column e.g. 1.0000 |
out_of_bounds | boolean | — | Ran/pushed/sacked out of bounds Values:falsetrue |
own_kickoff_recovery | boolean | — | Own kickoff recovery e.g. false |
own_kickoff_recovery_player_name | stringnullable | — | Own kickoff recovery player name e.g. — (all-null in sample) |
own_kickoff_recovery_td | boolean | — | Own kickoff recovery TD e.g. false |
pass | boolean | — | Pass play indicator Values:falsetrue |
pass_attempt | boolean | — | Pass attempt (includes sacks) Values:falsetrue |
pass_defense_1_player_name | stringnullable | — | Pass defense player 1 name e.g. D.Ward |
pass_defense_2_player_name | stringnullable | — | Pass defense player 2 name Values:E.KendricksJ.PitreP.FordD.MuasauD.Flannigan-FowlesM.EmersonR.Spillane |
pass_length | stringnullable | — | short or deep Values:shortdeep |
pass_location | stringnullable | — | left, middle, or right Values:rightleftmiddle |
pass_oe | decimalnullable | — | Dropback percent over expected e.g. 37.7849 |
pass_touchdown | boolean | — | Passing touchdown Values:falsetrue |
passer | stringnullable | — | Dropback player name (includes scrambles) e.g. D.Watson |
passer_jersey_number | integernullable | — | Passer jersey number e.g. 8 |
passer_player_name | stringnullable | — | Passer name e.g. D.Watson |
passing_yds | integernullable | — | Official passing yards e.g. 5 |
penalty | boolean | — | Penalty on play Values:falsetrue |
penalty_player_name | stringnullable | — | Penalized player name e.g. P.Surtain |
penalty_team | stringnullable | — | Penalized team e.g. CLE |
penalty_type | stringnullable | — | Type of penalty e.g. Offensive Holding |
penalty_yds | integernullable | — | Penalty yards e.g. 5 |
play | boolean | — | Regular play (1) vs special event (0) Values:truefalse |
play_clock | integernullable | — | Play clock at snap e.g. 0 |
play_deleted | boolean | — | Play was deleted e.g. false |
play_type | stringnullable | — | pass, run, punt, field_goal, kickoff, extra_point, qb_kneel, qb_spike, no_play Values:passrunno_playkickoffpuntfield_goalextra_pointqb_kneelqb_spike |
play_type_nfl | stringnullable | — | NFL source play type Values:PASSRUSHKICK_OFFPENALTYTIMEOUTPUNTSACKFIELD_GOALXP_KICKEND_QUARTERINTERCEPTIONGAME_STARTEND_GAMEPAT2UNSPECIFIED |
posteam | stringnullable | — | Possession team abbreviation e.g. CLE |
posteam_score | integernullable | — | Possession team score at start e.g. 0 |
posteam_score_post | integernullable | — | Possession team score at end e.g. 0 |
posteam_timeouts_remaining | integernullable | — | Possession team timeouts e.g. 3 |
posteam_type | stringnullable | — | home or away Values:homeaway |
punt_attempt | boolean | — | Punt attempt Values:falsetrue |
punt_blocked | boolean | — | Punt blocked Values:falsetrue |
punt_downed | boolean | — | Punt downed Values:falsetrue |
punt_fair_catch | boolean | — | Punt fair catch Values:falsetrue |
punt_in_endzone | boolean | — | Punt in endzone e.g. false |
punt_inside_twenty | boolean | — | Punt inside 20 Values:falsetrue |
punt_out_of_bounds | boolean | — | Punt OOB Values:falsetrue |
punt_returner_player_name | stringnullable | — | Punt returner name e.g. J.Jackson |
punter_player_name | stringnullable | — | Punter name e.g. R.Dixon |
qb_dropback | boolean | — | QB dropback (pass or scramble) Values:falsetrue |
qb_epa | decimalnullable | — | QB EPA credit e.g. 0.0000 |
qb_hit | boolean | — | QB was hit Values:falsetrue |
qb_hit_1_player_name | stringnullable | — | QB hitter name e.g. K.White |
qb_hit_2_player_name | stringnullable | — | Second QB hitter name Values:J.MadubuikeD.OdeyingboM.DavenportK.MackJ.BentleyG.JarrettD.HunterM.PierceC.YoungD.Ekuale |
qb_kneel | boolean | — | QB kneel Values:falsetrue |
qb_scramble | boolean | — | QB scramble Values:falsetrue |
qb_spike | boolean | — | QB spike Values:falsetrue |
quarter | integer | — | Quarter (1-4, 5=OT) e.g. 2 |
quarter_end | boolean | — | Binary quarter-end marker Values:falsetrue |
quarter_seconds_remaining | integer | — | Seconds remaining in quarter e.g. 900 |
receiver | stringnullable | — | Targeted receiver name e.g. C.Kupp |
receiver_jersey_number | integernullable | — | Receiver jersey number e.g. 1 |
receiver_player_name | stringnullable | — | Receiver name e.g. C.Kupp |
receiving_yds | integernullable | — | Official receiving yards e.g. 5 |
replay_or_challenge | boolean | — | Replay/challenge occurred Values:falsetrue |
replay_or_challenge_result | stringnullable | — | Replay result Values:reversedupheld |
result | integernullable | — | Home score - Away score e.g. 6 |
return_team | stringnullable | — | Returning team e.g. DEN |
return_touchdown | boolean | — | Return touchdown Values:falsetrue |
return_yds | integernullable | — | Return yards e.g. 0 |
roof | stringnullable | — | dome, outdoors, closed, open Values:outdoorscloseddome |
run_gap | stringnullable | — | end, guard, or tackle Values:endguardtackle |
run_location | stringnullable | — | left, middle, or right Values:leftrightmiddle |
rush | boolean | — | Rush play (no scrambles) Values:falsetrue |
rush_attempt | boolean | — | Rushing play indicator Values:falsetrue |
rush_touchdown | boolean | — | Rushing touchdown Values:falsetrue |
rusher_jersey_number | integernullable | — | Rusher jersey number e.g. 4 |
rusher_player_name | stringnullable | — | Rusher name e.g. B.Robinson |
rushing_yds | integernullable | — | Official rushing yards e.g. 2 |
sack | boolean | — | Sack indicator Values:falsetrue |
sack_player_name | stringnullable | — | Sacker name e.g. G.Rousseau |
safety | boolean | — | Safety scored Values:falsetrue |
safety_player_name | stringnullable | — | Safety scorer name Values:Z.AllenA.Wright |
safety_prob | decimalnullable | — | Safety probability e.g. 0.0000 |
score_differential | integernullable | — | Score gap at play start e.g. 0 |
score_differential_post | integernullable | — | Score gap at play end e.g. 0 |
series | integernullable | — | Series counter within game e.g. 1 |
series_result | stringnullable | — | First down, Touchdown, Punt, etc. Values:First downPuntField goalTouchdownTurnover on downsTurnoverQB kneelEnd of halfMissed field goalOpp touchdownSafety |
series_success | boolean | — | Series resulted in first down or TD Values:truefalse |
shotgun | boolean | — | Shotgun formation Values:truefalse |
side_of_field | stringnullable | — | Team abbreviation whose side of field e.g. CAR |
solo_tackle | boolean | — | Solo tackle on play Values:falsetrue |
solo_tackle_1_player_name | stringnullable | — | Solo tackler 1 name e.g. J.Jones |
solo_tackle_1_team | stringnullable | — | Solo tackler 1 team e.g. ATL |
solo_tackle_2_player_name | stringnullable | — | Solo tackler 2 name Values:B.LimmerT.Spears |
solo_tackle_2_team | stringnullable | — | Solo tackler 2 team Values:LATEN |
sp | boolean | — | Scoring play indicator Values:falsetrue |
special | boolean | — | Special teams indicator Values:falsetrue |
special_teams_play | boolean | — | Special teams play indicator Values:falsetrue |
spread_line | decimalnullable | — | Vegas spread line e.g. 6.5000 |
st_play_type | stringnullable | — | Type of special teams play e.g. — (all-null in sample) |
stadium | stringnullable | — | Stadium name e.g. GEHA Field at Arrowhead Stadium |
start_time | stringnullable | — | Kickoff time (eastern) e.g. 9/8/24, 13:03:08 |
success | booleannullable | — | Play success (based on down/distance) Values:falsetrue |
surface | stringnullable | — | Playing surface type Values:grassfieldturfmatrixturfastroturfsportturfa_turf |
tackle_for_loss_1_player_name | stringnullable | — | TFL player 1 name e.g. M.Crosby |
tackle_for_loss_2_player_name | stringnullable | — | TFL player 2 name e.g. — (all-null in sample) |
tackle_with_assist | boolean | — | Tackle with assistance Values:falsetrue |
tackle_with_assist_1_player_name | stringnullable | — | Tackle-assist player 1 name e.g. A.Singleton |
tackle_with_assist_1_team | stringnullable | — | Tackle-assist player 1 team e.g. IND |
tackle_with_assist_2_player_name | stringnullable | — | Tackle-assist player 2 name e.g. — (all-null in sample) |
tackle_with_assist_2_team | stringnullable | — | Tackle-assist player 2 team e.g. — (all-null in sample) |
tackled_for_loss | boolean | — | Tackle for loss Values:falsetrue |
td_player_name | stringnullable | — | TD scorer name e.g. A.Kamara |
td_prob | decimalnullable | — | TD probability e.g. 0.0000 |
td_team | stringnullable | — | Team scoring TD e.g. NO |
temp | integernullable | — | Temperature e.g. 67 |
third_down_converted | boolean | — | Third down conversion Values:falsetrue |
third_down_failed | boolean | — | Third down failure Values:falsetrue |
time | stringnullable | — | Game clock at play start (mm:ss) e.g. 15:00 |
time_of_day | stringnullable | — | Play time in UTC e.g. 2024-09-08T19:40:41Z |
timeout | boolean | — | Timeout called Values:falsetrue |
timeout_team | stringnullable | — | Team calling timeout e.g. BAL |
total | integernullable | — | Home score + Away score e.g. 41 |
total_away_comp_air_epa | decimalnullable | — | Cumulative away completion air EPA e.g. 0.0000 |
total_away_comp_air_wpa | decimalnullable | — | Cumulative away completion air WPA e.g. 0.0000 |
total_away_comp_yac_epa | decimalnullable | — | Cumulative away completion YAC EPA e.g. 0.0000 |
total_away_comp_yac_wpa | decimalnullable | — | Cumulative away completion YAC WPA e.g. 0.0000 |
total_away_epa | decimalnullable | — | Cumulative away EPA e.g. 0.0000 |
total_away_pass_epa | decimalnullable | — | Cumulative away passing EPA e.g. 0.0000 |
total_away_pass_wpa | decimalnullable | — | Cumulative away passing WPA e.g. 0.0000 |
total_away_raw_air_epa | decimalnullable | — | Cumulative away raw air EPA e.g. 0.0000 |
total_away_raw_air_wpa | decimalnullable | — | Cumulative away raw air WPA e.g. 0.0000 |
total_away_raw_yac_epa | decimalnullable | — | Cumulative away raw YAC EPA e.g. 0.0000 |
total_away_raw_yac_wpa | decimalnullable | — | Cumulative away raw YAC WPA e.g. 0.0000 |
total_away_rush_epa | decimalnullable | — | Cumulative away rushing EPA e.g. 0.0000 |
total_away_rush_wpa | decimalnullable | — | Cumulative away rushing WPA e.g. 0.0000 |
total_away_score | integernullable | — | Away score at play start e.g. 0 |
total_home_comp_air_epa | decimalnullable | — | Cumulative home completion air EPA e.g. 0.0000 |
total_home_comp_air_wpa | decimalnullable | — | Cumulative home completion air WPA e.g. 0.0000 |
total_home_comp_yac_epa | decimalnullable | — | Cumulative home completion YAC EPA e.g. 0.0000 |
total_home_comp_yac_wpa | decimalnullable | — | Cumulative home completion YAC WPA e.g. 0.0000 |
total_home_epa | decimalnullable | — | Cumulative home EPA e.g. 0.0000 |
total_home_pass_epa | decimalnullable | — | Cumulative home passing EPA e.g. 0.0000 |
total_home_pass_wpa | decimalnullable | — | Cumulative home passing WPA e.g. 0.0000 |
total_home_raw_air_epa | decimalnullable | — | Cumulative home raw air EPA e.g. 0.0000 |
total_home_raw_air_wpa | decimalnullable | — | Cumulative home raw air WPA e.g. 0.0000 |
total_home_raw_yac_epa | decimalnullable | — | Cumulative home raw YAC EPA e.g. 0.0000 |
total_home_raw_yac_wpa | decimalnullable | — | Cumulative home raw YAC WPA e.g. 0.0000 |
total_home_rush_epa | decimalnullable | — | Cumulative home rushing EPA e.g. 0.0000 |
total_home_rush_wpa | decimalnullable | — | Cumulative home rushing WPA e.g. 0.0000 |
total_home_score | integernullable | — | Home score at play start e.g. 0 |
total_line | decimalnullable | — | Vegas total line e.g. 41.5000 |
touchback | boolean | — | Touchback Values:falsetrue |
touchdown | boolean | — | Touchdown scored Values:falsetrue |
two_point_attempt | boolean | — | Two-point conversion attempt Values:falsetrue |
two_point_conv_result | stringnullable | — | success, failure, safety, return Values:failuresuccess |
two_point_conversion_prob | decimalnullable | — | Two-point conversion probability e.g. 0.0000 |
vegas_home_wp | decimalnullable | — | Vegas home win probability e.g. 1.0000 |
vegas_home_wpa | decimalnullable | — | Vegas home WPA e.g. 0.0000 |
vegas_wp | decimalnullable | — | Vegas win probability e.g. 0.9999 |
vegas_wpa | decimalnullable | — | Vegas-adjusted WPA e.g. 0.0000 |
weather | stringnullable | — | Weather conditions description e.g. Temp: 63° F, Humidity: 87%, Wind: SE 4 mph |
wind | integernullable | — | Wind speed (mph) e.g. 10 |
wp | decimalnullable | — | Win probability for possession team e.g. 0.5463 |
wpa | decimalnullable | — | Win probability added e.g. 0.0000 |
xpass | decimalnullable | — | Dropback probability e.g. 0.9759 |
xyac_epa | decimalnullable | — | Expected EPA after catch e.g. 0.2981 |
xyac_fd | decimalnullable | — | First down probability (xYAC) e.g. 1.0000 |
xyac_mean_yardage | decimalnullable | — | Average expected YAC e.g. 3.9685 |
xyac_median_yardage | decimalnullable | — | Median expected YAC e.g. 2.0000 |
xyac_success | decimalnullable | — | Positive EPA probability e.g. 1.0000 |
yac_epa | decimalnullable | — | EPA from yards after catch e.g. 0.0000 |
yac_wpa | decimalnullable | — | WPA from yards after catch e.g. 0.0000 |
yard_line | integernullable | — | Yard line number (0-50) e.g. — (all-null in sample) |
yardline_100 | integernullable | — | Yards from opponent endzone (0-100) e.g. 35 |
yds_after_catch | integernullable | — | YAC yards e.g. 0 |
yds_gained | integernullable | — | Yards gained on play e.g. 0 |
ydsnet | integernullable | — | Total net yards on drive e.g. 70 |
ydstogo | integernullable | — | Yards to first down/goal e.g. 10 |
yrdln | stringnullable | — | Yard line string (e.g., "KC 25") e.g. MID 50 |
GET/api/v1/nfl/play_by_plays/{id}Get a single play_by_play by id
Parameters
idpathbigintrequiredPrimary key (id) of the play_by_play 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/play_by_plays/{pk_value}'Responses
200Single play_by_play row.application/jsonshow example ▸
404Row not found.
Response Schema(372 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
assist_tackle_1_player_id | stringnullable | — | Assist tackler 1 GSIS ID e.g. 00-0037616 |
assist_tackle_2_player_id | stringnullable | — | Assist tackler 2 GSIS ID e.g. 00-0036294 |
assist_tackle_3_player_id | stringnullable | — | Assist tackler 3 GSIS ID e.g. — (all-null in sample) |
assist_tackle_4_player_id | stringnullable | — | Assist tackler 4 GSIS ID e.g. — (all-null in sample) |
blocked_player_id | stringnullable | — | Blocked kick player GSIS ID Values:00-003752700-003784300-003698200-0037156 |
defensive_team_id | bigintnullable | FK to teams table for defensive team e.g. 14 | |
drive_id | bigintnullable | FK to game_drives table e.g. 41 | |
fantasy_id | stringnullable | — | Fantasy identifier e.g. 00-0035700 |
fantasy_player_id | stringnullable | — | Fantasy designation player ID e.g. 00-0034844 |
forced_fumble_player_1_player_id | stringnullable | — | Forced fumble player 1 GSIS ID e.g. 00-0033868 |
forced_fumble_player_2_player_id | stringnullable | — | Forced fumble player 2 GSIS ID e.g. — (all-null in sample) |
fumble_recovery_1_player_id | stringnullable | — | Recovery player 1 GSIS ID e.g. 00-0037666 |
fumble_recovery_2_player_id | stringnullable | — | Recovery player 2 GSIS ID e.g. — (all-null in sample) |
fumbled_1_player_id | stringnullable | — | First fumbler GSIS ID e.g. 00-0036442 |
fumbled_2_player_id | stringnullable | — | Second fumbler GSIS ID e.g. — (all-null in sample) |
game_id | bigint | FK to games table e.g. 50 | |
half_sack_1_player_id | stringnullable | — | Half-sack player 1 GSIS ID Values:00-003914800-003850400-003237800-003695400-003267100-003241500-003910800-003589000-003760300-003694000-0035402 |
half_sack_2_player_id | stringnullable | — | Half-sack player 2 GSIS ID Values:00-003613000-003648000-003434400-003104000-003438500-003158300-003156500-003637800-003853500-003257400-003632100-0034251 |
interception_player_id | stringnullable | — | Interceptor GSIS ID e.g. 00-0036388 |
kicker_player_id | stringnullable | — | Kicker GSIS ID e.g. 00-0038905 |
kickoff_returner_player_id | stringnullable | — | Kickoff returner GSIS ID e.g. 00-0037429 |
lateral_interception_player_id | stringnullable | — | Lateral after INT GSIS ID e.g. — (all-null in sample) |
lateral_kickoff_returner_player_id | stringnullable | — | Lateral kickoff returner GSIS ID e.g. — (all-null in sample) |
lateral_punt_returner_player_id | stringnullable | — | Lateral punt returner GSIS ID e.g. — (all-null in sample) |
lateral_receiver_player_id | stringnullable | — | Lateral receiver GSIS ID (pass) e.g. 00-0038976 |
lateral_rusher_player_id | stringnullable | — | Lateral receiver GSIS ID (rush) e.g. 00-0034975 |
lateral_sack_player_id | stringnullable | — | Lateral after sack GSIS ID e.g. — (all-null in sample) |
nfl_api_id | stringnullable | — | UUID from NFL API e.g. 7d4019ca-1312-11ef-afd1-646009f18b2e |
nflverse_game_id | stringnullable | — | Ten digit identifier for NFL game (nflverse format) e.g. — (all-null in sample) |
old_game_id | stringnullable | — | Legacy NFL game ID format e.g. 2024090600 |
own_kickoff_recovery_player_id | stringnullable | — | Own kickoff recovery player GSIS ID e.g. — (all-null in sample) |
pass_defense_1_player_id | stringnullable | — | Pass defense player 1 GSIS ID e.g. 00-0034856 |
pass_defense_2_player_id | stringnullable | — | Pass defense player 2 GSIS ID Values:00-003155400-003724600-003423400-003982900-003502000-003725000-0034720 |
passer_id | bigintnullable | FK to players table e.g. 358 | |
passer_player_id | stringnullable | — | Passer GSIS ID e.g. 00-0033537 |
penalty_player_id | stringnullable | — | Penalized player GSIS ID e.g. 00-0036874 |
play_id | string | — | Numeric play identifier unique to game e.g. 1 |
possession_team_id | bigintnullable | FK to teams table for possession team e.g. 8 | |
primary_player_gsis_id | stringnullable | — | Primary player GSIS ID e.g. — (all-null in sample) |
punt_returner_player_id | stringnullable | — | Punt returner GSIS ID e.g. 00-0039392 |
punter_player_id | stringnullable | — | Punter GSIS ID e.g. 00-0032943 |
qb_hit_1_player_id | stringnullable | — | QB hitter GSIS ID e.g. 00-0036932 |
qb_hit_2_player_id | stringnullable | — | Second QB hitter GSIS ID Values:00-003613000-003648000-003434400-003104000-003438500-003158300-003156500-003257400-003632100-0034251 |
receiver_id | bigintnullable | FK to players table e.g. 438 | |
receiver_player_id | stringnullable | — | Receiver GSIS ID e.g. 00-0033908 |
rusher_id | bigintnullable | FK to players table e.g. 943 | |
rusher_player_id | stringnullable | — | Rusher GSIS ID e.g. 00-0035700 |
sack_player_id | stringnullable | — | Sacker GSIS ID e.g. 00-0036914 |
safety_player_id | stringnullable | — | Safety scorer GSIS ID Values:00-003524800-0037251 |
solo_tackle_1_player_id | stringnullable | — | Solo tackler 1 GSIS ID e.g. 00-0034987 |
solo_tackle_2_player_id | stringnullable | — | Solo tackler 2 GSIS ID Values:00-003975300-0039032 |
stadium_id | integernullable | Stadium ID e.g. — (all-null in sample) | |
tackle_for_loss_1_player_id | stringnullable | — | TFL player 1 GSIS ID e.g. 00-0034973 |
tackle_for_loss_2_player_id | stringnullable | — | TFL player 2 GSIS ID e.g. — (all-null in sample) |
tackle_with_assist_1_player_id | stringnullable | — | Tackle-assist player 1 GSIS ID e.g. 00-0031898 |
tackle_with_assist_2_player_id | stringnullable | — | Tackle-assist player 2 GSIS ID e.g. — (all-null in sample) |
td_player_id | stringnullable | — | TD scorer GSIS ID e.g. 00-0033906 |
aborted_play | boolean | — | Play was aborted Values:falsetrue |
air_epa | decimalnullable | — | EPA from air yards e.g. -0.1479 |
air_wpa | decimalnullable | — | WPA from air yards e.g. 0.0000 |
air_yds | integernullable | — | Yards in air (perpendicular to LOS) e.g. 5 |
assist_tackle | boolean | — | Assist tackle on play Values:falsetrue |
assist_tackle_1_player_name | stringnullable | — | Assist tackler 1 name e.g. J.Jones |
assist_tackle_1_team | stringnullable | — | Assist tackler 1 team e.g. IND |
assist_tackle_2_player_name | stringnullable | — | Assist tackler 2 name e.g. L.Wilson |
assist_tackle_2_team | stringnullable | — | Assist tackler 2 team e.g. LA |
assist_tackle_3_player_name | stringnullable | — | Assist tackler 3 name e.g. — (all-null in sample) |
assist_tackle_3_team | stringnullable | — | Assist tackler 3 team e.g. — (all-null in sample) |
assist_tackle_4_player_name | stringnullable | — | Assist tackler 4 name e.g. — (all-null in sample) |
assist_tackle_4_team | stringnullable | — | Assist tackler 4 team e.g. — (all-null in sample) |
away_coach | stringnullable | — | Away team head coach e.g. Antonio Pierce |
away_score | integernullable | — | Total away points e.g. 20 |
away_team | stringnullable | — | Away team abbreviation e.g. LV |
away_timeouts_remaining | integernullable | — | Away timeouts remaining e.g. 3 |
away_wp | decimalnullable | — | Away team win probability e.g. 0.0001 |
away_wp_post | decimalnullable | — | Away WP after play e.g. 0.0001 |
blocked_player_name | stringnullable | — | Blocked kick player name Values:S.OlubiD.HardyC.GolstonI.Charles |
comp_air_epa | decimalnullable | — | Completion air EPA e.g. 0.0000 |
comp_air_wpa | decimalnullable | — | Completion air WPA e.g. 0.0000 |
comp_yac_epa | decimalnullable | — | Completion YAC EPA e.g. 0.0000 |
comp_yac_wpa | decimalnullable | — | Completion YAC WPA e.g. 0.0000 |
complete_pass | boolean | — | Pass completed Values:falsetrue |
cp | decimalnullable | — | Completion probability e.g. 0.8676 |
cpoe | decimalnullable | — | Completion percentage over expected e.g. 13.2417 |
def_wp | decimalnullable | — | Win probability for defense e.g. 0.4537 |
defensive_extra_point_attempt | boolean | — | Defense extra point attempt e.g. false |
defensive_extra_point_conv | boolean | — | Defense extra point success e.g. false |
defensive_two_point_attempt | boolean | — | Defense two-point attempt e.g. false |
defensive_two_point_conv | boolean | — | Defense two-point conversion success e.g. false |
defteam | stringnullable | — | Defensive team abbreviation e.g. IND |
defteam_score | integernullable | — | Defense team score at start e.g. 0 |
defteam_score_post | integernullable | — | Defense team score at end e.g. 0 |
defteam_timeouts_remaining | integernullable | — | Defensive team timeouts e.g. 3 |
desc | stringnullable | — | Full play description text e.g. GAME |
div_game | boolean | — | Division game Values:falsetrue |
down | integernullable | — | Down (1-4) e.g. 1 |
drive | integernullable | — | Drive number in game e.g. 6 |
drive_end_transition | stringnullable | — | How drive ended Values:FIELD_GOALPUNTTOUCHDOWNDOWNSINTERCEPTIONEND_GAMEFUMBLEMISSED_FGEND_HALFBLOCKED_PUNTSAFETY |
drive_end_yard_line | stringnullable | — | Yard line at drive end e.g. 50 |
drive_ended_with_score | boolean | — | Drive resulted in score Values:truefalse |
drive_first_downs | integernullable | — | First downs gained in drive e.g. 0 |
drive_game_clock_end | stringnullable | — | Game clock at drive end e.g. 00:00 |
drive_game_clock_start | stringnullable | — | Game clock at drive start e.g. 15:00 |
drive_inside20 | boolean | — | Drive reached red zone Values:falsetrue |
drive_play_count | integernullable | — | Number of plays in drive e.g. 3 |
drive_play_id_ended | stringnullable | — | Last play_id of drive e.g. 4175 |
drive_play_id_started | stringnullable | — | First play_id of drive e.g. 40 |
drive_quarter_end | integernullable | — | Quarter when drive ended e.g. 2 |
drive_quarter_start | integernullable | — | Quarter when drive started e.g. 3 |
drive_real_start_time | stringnullable | — | Drive start time (real clock) e.g. 2024-09-07T03:15:55.057Z |
drive_start_transition | stringnullable | — | How possession was obtained Values:KICKOFFPUNTINTERCEPTIONDOWNSFUMBLEMISSED_FGMUFFED_PUNTBLOCKED_PUNTMUFFED_KICKOFF |
drive_start_yard_line | stringnullable | — | Yard line at drive start e.g. PHI 30 |
drive_time_of_possession | stringnullable | — | Drive time of possession (mm:ss) e.g. 2:28 |
drive_yds_penalized | integernullable | — | Penalty yards during drive e.g. 0 |
end_clock_time | stringnullable | — | Game clock at play end e.g. 2024-09-15T17:30:53.207Z |
end_yard_line | stringnullable | — | Yard line at play end e.g. — (all-null in sample) |
ep | decimalnullable | — | Expected points before play e.g. 0.9324 |
epa | decimalnullable | — | Expected points added e.g. 0.0000 |
extra_point_attempt | boolean | — | Extra point attempt Values:falsetrue |
extra_point_prob | decimalnullable | — | Extra point probability e.g. 0.0000 |
extra_point_result | stringnullable | — | good, failed, blocked, safety, aborted Values:goodfailedblocked |
fantasy | stringnullable | — | Fantasy designation e.g. B.Robinson |
fantasy_player_name | stringnullable | — | Fantasy designation player name e.g. B.Robinson |
fg_prob | decimalnullable | — | FG probability e.g. 0.0000 |
field_goal_attempt | boolean | — | Field goal attempt Values:falsetrue |
field_goal_result | stringnullable | — | made, missed, or blocked Values:mademissed |
first_down | boolean | — | First down achieved Values:falsetrue |
first_down_pass | boolean | — | Passing first down Values:falsetrue |
first_down_penalty | boolean | — | First down via penalty Values:falsetrue |
first_down_rush | boolean | — | Rushing first down Values:falsetrue |
fixed_drive | integernullable | — | Manual drive number correction e.g. 1 |
fixed_drive_result | stringnullable | — | Manual drive result correction Values:Field goalPuntTouchdownTurnoverTurnover on downsEnd of halfMissed field goalOpp touchdownSafety |
forced_fumble_player_1_player_name | stringnullable | — | Forced fumble player 1 name e.g. M.Garrett |
forced_fumble_player_1_team | stringnullable | — | Forced fumble team 1 e.g. KC |
forced_fumble_player_2_player_name | stringnullable | — | Forced fumble player 2 name e.g. — (all-null in sample) |
forced_fumble_player_2_team | stringnullable | — | Forced fumble team 2 e.g. — (all-null in sample) |
fourth_down_converted | boolean | — | Fourth down conversion Values:falsetrue |
fourth_down_failed | boolean | — | Fourth down failure Values:falsetrue |
fumble | boolean | — | Fumble occurred Values:falsetrue |
fumble_forced | boolean | — | Fumble was forced Values:falsetrue |
fumble_lost | boolean | — | Fumble was lost Values:falsetrue |
fumble_not_forced | boolean | — | Fumble was not forced Values:falsetrue |
fumble_out_of_bounds | boolean | — | Fumble went OOB Values:falsetrue |
fumble_recovery_1_player_name | stringnullable | — | Recovery player 1 name e.g. J.Tolbert |
fumble_recovery_1_team | stringnullable | — | Recovery team 1 e.g. CHI |
fumble_recovery_1_yds | integernullable | — | Recovery yards 1 e.g. 0 |
fumble_recovery_2_player_name | stringnullable | — | Recovery player 2 name e.g. — (all-null in sample) |
fumble_recovery_2_team | stringnullable | — | Recovery team 2 e.g. — (all-null in sample) |
fumble_recovery_2_yds | integernullable | — | Recovery yards 2 e.g. — (all-null in sample) |
fumbled_1_player_name | stringnullable | — | First fumbler name e.g. J.Burrow |
fumbled_1_team | stringnullable | — | First fumbler team e.g. CIN |
fumbled_2_player_name | stringnullable | — | Second fumbler name e.g. — (all-null in sample) |
fumbled_2_team | stringnullable | — | Second fumbler team e.g. — (all-null in sample) |
game_half | stringnullable | — | Half1, Half2, or Overtime Values:Half1Half2Overtime |
game_seconds_remaining | integer | — | Seconds remaining in game e.g. 1800 |
game_stadium | stringnullable | — | Game stadium name e.g. GEHA Field at Arrowhead Stadium |
goal_to_go | boolean | — | Goal-to-go situation Values:falsetrue |
half_sack_1_player_name | stringnullable | — | Half-sack player 1 name Values:K.WhiteT.SimpsonD.BucknerL.OnwuzurikeM.FoxM.JudonW.AndersonT.WhartonJ.PeevyO.OwehC.Granderson |
half_sack_2_player_name | stringnullable | — | Half-sack player 2 name Values:J.MadubuikeD.OdeyingboM.DavenportK.MackJ.BentleyG.JarrettD.HunterM.DannaDj.JohnsonM.PierceC.YoungD.Ekuale |
half_seconds_remaining | integer | — | Seconds remaining in half e.g. 1800 |
home_coach | stringnullable | — | Home team head coach e.g. Nick Sirianni |
home_opening_kickoff | boolean | — | Home team had opening kickoff Values:truefalse |
home_score | integernullable | — | Total home points e.g. 26 |
home_team | stringnullable | — | Home team abbreviation e.g. PHI |
home_timeouts_remaining | integernullable | — | Home timeouts remaining e.g. 3 |
home_wp | decimalnullable | — | Home team win probability e.g. 0.9999 |
home_wp_post | decimalnullable | — | Home WP after play e.g. 0.9999 |
incomplete_pass | boolean | — | Pass incomplete Values:falsetrue |
interception | boolean | — | Interception indicator Values:falsetrue |
interception_player_name | stringnullable | — | Interceptor name e.g. X.McKinney |
jersey_number | integernullable | — | Primary player jersey e.g. 8 |
kick_distance | integernullable | — | Kick distance in yards e.g. 65 |
kicker_player_name | stringnullable | — | Kicker name e.g. B.Grupe |
kickoff_attempt | boolean | — | Kickoff attempt Values:falsetrue |
kickoff_downed | boolean | — | Kickoff downed e.g. false |
kickoff_fair_catch | boolean | — | Kickoff fair catch Values:falsetrue |
kickoff_in_endzone | boolean | — | Kickoff in endzone Values:falsetrue |
kickoff_inside_twenty | boolean | — | Kickoff inside 20 Values:falsetrue |
kickoff_out_of_bounds | boolean | — | Kickoff OOB Values:falsetrue |
kickoff_returner_player_name | stringnullable | — | Kickoff returner name e.g. R.Blackshear |
lateral_interception_player_name | stringnullable | — | Lateral after INT name e.g. — (all-null in sample) |
lateral_kickoff_returner_player_name | stringnullable | — | Lateral kickoff returner name e.g. — (all-null in sample) |
lateral_punt_returner_player_name | stringnullable | — | Lateral punt returner name e.g. — (all-null in sample) |
lateral_receiver_player_name | stringnullable | — | Lateral receiver name (pass) e.g. M.Mims |
lateral_receiving_yds | integernullable | — | Yards after lateral (pass) e.g. 2 |
lateral_reception | boolean | — | Lateral on pass play Values:falsetrue |
lateral_return | boolean | — | Lateral on return e.g. false |
lateral_rush | boolean | — | Lateral on rush play Values:falsetrue |
lateral_rusher_player_name | stringnullable | — | Lateral receiver name (rush) e.g. J.Hill |
lateral_rushing_yds | integernullable | — | Yards after lateral (rush) e.g. 5 |
lateral_sack_player_name | stringnullable | — | Lateral after sack name e.g. — (all-null in sample) |
location | stringnullable | — | Home or Neutral Values:HomeNeutral |
name | stringnullable | — | Primary player name (passer or rusher) e.g. L.Jackson |
no_huddle | boolean | — | No-huddle offense Values:falsetrue |
no_score_prob | decimalnullable | — | Probability of no score e.g. 0.0000 |
opp_fg_prob | decimalnullable | — | Opponent FG probability e.g. 0.0000 |
opp_safety_prob | decimalnullable | — | Opponent safety probability e.g. 0.0000 |
opp_td_prob | decimalnullable | — | Opponent TD probability e.g. 0.0000 |
order_sequence | decimalnullable | — | NFL play-ordering column e.g. 1.0000 |
out_of_bounds | boolean | — | Ran/pushed/sacked out of bounds Values:falsetrue |
own_kickoff_recovery | boolean | — | Own kickoff recovery e.g. false |
own_kickoff_recovery_player_name | stringnullable | — | Own kickoff recovery player name e.g. — (all-null in sample) |
own_kickoff_recovery_td | boolean | — | Own kickoff recovery TD e.g. false |
pass | boolean | — | Pass play indicator Values:falsetrue |
pass_attempt | boolean | — | Pass attempt (includes sacks) Values:falsetrue |
pass_defense_1_player_name | stringnullable | — | Pass defense player 1 name e.g. D.Ward |
pass_defense_2_player_name | stringnullable | — | Pass defense player 2 name Values:E.KendricksJ.PitreP.FordD.MuasauD.Flannigan-FowlesM.EmersonR.Spillane |
pass_length | stringnullable | — | short or deep Values:shortdeep |
pass_location | stringnullable | — | left, middle, or right Values:rightleftmiddle |
pass_oe | decimalnullable | — | Dropback percent over expected e.g. 37.7849 |
pass_touchdown | boolean | — | Passing touchdown Values:falsetrue |
passer | stringnullable | — | Dropback player name (includes scrambles) e.g. D.Watson |
passer_jersey_number | integernullable | — | Passer jersey number e.g. 8 |
passer_player_name | stringnullable | — | Passer name e.g. D.Watson |
passing_yds | integernullable | — | Official passing yards e.g. 5 |
penalty | boolean | — | Penalty on play Values:falsetrue |
penalty_player_name | stringnullable | — | Penalized player name e.g. P.Surtain |
penalty_team | stringnullable | — | Penalized team e.g. CLE |
penalty_type | stringnullable | — | Type of penalty e.g. Offensive Holding |
penalty_yds | integernullable | — | Penalty yards e.g. 5 |
play | boolean | — | Regular play (1) vs special event (0) Values:truefalse |
play_clock | integernullable | — | Play clock at snap e.g. 0 |
play_deleted | boolean | — | Play was deleted e.g. false |
play_type | stringnullable | — | pass, run, punt, field_goal, kickoff, extra_point, qb_kneel, qb_spike, no_play Values:passrunno_playkickoffpuntfield_goalextra_pointqb_kneelqb_spike |
play_type_nfl | stringnullable | — | NFL source play type Values:PASSRUSHKICK_OFFPENALTYTIMEOUTPUNTSACKFIELD_GOALXP_KICKEND_QUARTERINTERCEPTIONGAME_STARTEND_GAMEPAT2UNSPECIFIED |
posteam | stringnullable | — | Possession team abbreviation e.g. CLE |
posteam_score | integernullable | — | Possession team score at start e.g. 0 |
posteam_score_post | integernullable | — | Possession team score at end e.g. 0 |
posteam_timeouts_remaining | integernullable | — | Possession team timeouts e.g. 3 |
posteam_type | stringnullable | — | home or away Values:homeaway |
punt_attempt | boolean | — | Punt attempt Values:falsetrue |
punt_blocked | boolean | — | Punt blocked Values:falsetrue |
punt_downed | boolean | — | Punt downed Values:falsetrue |
punt_fair_catch | boolean | — | Punt fair catch Values:falsetrue |
punt_in_endzone | boolean | — | Punt in endzone e.g. false |
punt_inside_twenty | boolean | — | Punt inside 20 Values:falsetrue |
punt_out_of_bounds | boolean | — | Punt OOB Values:falsetrue |
punt_returner_player_name | stringnullable | — | Punt returner name e.g. J.Jackson |
punter_player_name | stringnullable | — | Punter name e.g. R.Dixon |
qb_dropback | boolean | — | QB dropback (pass or scramble) Values:falsetrue |
qb_epa | decimalnullable | — | QB EPA credit e.g. 0.0000 |
qb_hit | boolean | — | QB was hit Values:falsetrue |
qb_hit_1_player_name | stringnullable | — | QB hitter name e.g. K.White |
qb_hit_2_player_name | stringnullable | — | Second QB hitter name Values:J.MadubuikeD.OdeyingboM.DavenportK.MackJ.BentleyG.JarrettD.HunterM.PierceC.YoungD.Ekuale |
qb_kneel | boolean | — | QB kneel Values:falsetrue |
qb_scramble | boolean | — | QB scramble Values:falsetrue |
qb_spike | boolean | — | QB spike Values:falsetrue |
quarter | integer | — | Quarter (1-4, 5=OT) e.g. 2 |
quarter_end | boolean | — | Binary quarter-end marker Values:falsetrue |
quarter_seconds_remaining | integer | — | Seconds remaining in quarter e.g. 900 |
receiver | stringnullable | — | Targeted receiver name e.g. C.Kupp |
receiver_jersey_number | integernullable | — | Receiver jersey number e.g. 1 |
receiver_player_name | stringnullable | — | Receiver name e.g. C.Kupp |
receiving_yds | integernullable | — | Official receiving yards e.g. 5 |
replay_or_challenge | boolean | — | Replay/challenge occurred Values:falsetrue |
replay_or_challenge_result | stringnullable | — | Replay result Values:reversedupheld |
result | integernullable | — | Home score - Away score e.g. 6 |
return_team | stringnullable | — | Returning team e.g. DEN |
return_touchdown | boolean | — | Return touchdown Values:falsetrue |
return_yds | integernullable | — | Return yards e.g. 0 |
roof | stringnullable | — | dome, outdoors, closed, open Values:outdoorscloseddome |
run_gap | stringnullable | — | end, guard, or tackle Values:endguardtackle |
run_location | stringnullable | — | left, middle, or right Values:leftrightmiddle |
rush | boolean | — | Rush play (no scrambles) Values:falsetrue |
rush_attempt | boolean | — | Rushing play indicator Values:falsetrue |
rush_touchdown | boolean | — | Rushing touchdown Values:falsetrue |
rusher_jersey_number | integernullable | — | Rusher jersey number e.g. 4 |
rusher_player_name | stringnullable | — | Rusher name e.g. B.Robinson |
rushing_yds | integernullable | — | Official rushing yards e.g. 2 |
sack | boolean | — | Sack indicator Values:falsetrue |
sack_player_name | stringnullable | — | Sacker name e.g. G.Rousseau |
safety | boolean | — | Safety scored Values:falsetrue |
safety_player_name | stringnullable | — | Safety scorer name Values:Z.AllenA.Wright |
safety_prob | decimalnullable | — | Safety probability e.g. 0.0000 |
score_differential | integernullable | — | Score gap at play start e.g. 0 |
score_differential_post | integernullable | — | Score gap at play end e.g. 0 |
series | integernullable | — | Series counter within game e.g. 1 |
series_result | stringnullable | — | First down, Touchdown, Punt, etc. Values:First downPuntField goalTouchdownTurnover on downsTurnoverQB kneelEnd of halfMissed field goalOpp touchdownSafety |
series_success | boolean | — | Series resulted in first down or TD Values:truefalse |
shotgun | boolean | — | Shotgun formation Values:truefalse |
side_of_field | stringnullable | — | Team abbreviation whose side of field e.g. CAR |
solo_tackle | boolean | — | Solo tackle on play Values:falsetrue |
solo_tackle_1_player_name | stringnullable | — | Solo tackler 1 name e.g. J.Jones |
solo_tackle_1_team | stringnullable | — | Solo tackler 1 team e.g. ATL |
solo_tackle_2_player_name | stringnullable | — | Solo tackler 2 name Values:B.LimmerT.Spears |
solo_tackle_2_team | stringnullable | — | Solo tackler 2 team Values:LATEN |
sp | boolean | — | Scoring play indicator Values:falsetrue |
special | boolean | — | Special teams indicator Values:falsetrue |
special_teams_play | boolean | — | Special teams play indicator Values:falsetrue |
spread_line | decimalnullable | — | Vegas spread line e.g. 6.5000 |
st_play_type | stringnullable | — | Type of special teams play e.g. — (all-null in sample) |
stadium | stringnullable | — | Stadium name e.g. GEHA Field at Arrowhead Stadium |
start_time | stringnullable | — | Kickoff time (eastern) e.g. 9/8/24, 13:03:08 |
success | booleannullable | — | Play success (based on down/distance) Values:falsetrue |
surface | stringnullable | — | Playing surface type Values:grassfieldturfmatrixturfastroturfsportturfa_turf |
tackle_for_loss_1_player_name | stringnullable | — | TFL player 1 name e.g. M.Crosby |
tackle_for_loss_2_player_name | stringnullable | — | TFL player 2 name e.g. — (all-null in sample) |
tackle_with_assist | boolean | — | Tackle with assistance Values:falsetrue |
tackle_with_assist_1_player_name | stringnullable | — | Tackle-assist player 1 name e.g. A.Singleton |
tackle_with_assist_1_team | stringnullable | — | Tackle-assist player 1 team e.g. IND |
tackle_with_assist_2_player_name | stringnullable | — | Tackle-assist player 2 name e.g. — (all-null in sample) |
tackle_with_assist_2_team | stringnullable | — | Tackle-assist player 2 team e.g. — (all-null in sample) |
tackled_for_loss | boolean | — | Tackle for loss Values:falsetrue |
td_player_name | stringnullable | — | TD scorer name e.g. A.Kamara |
td_prob | decimalnullable | — | TD probability e.g. 0.0000 |
td_team | stringnullable | — | Team scoring TD e.g. NO |
temp | integernullable | — | Temperature e.g. 67 |
third_down_converted | boolean | — | Third down conversion Values:falsetrue |
third_down_failed | boolean | — | Third down failure Values:falsetrue |
time | stringnullable | — | Game clock at play start (mm:ss) e.g. 15:00 |
time_of_day | stringnullable | — | Play time in UTC e.g. 2024-09-08T19:40:41Z |
timeout | boolean | — | Timeout called Values:falsetrue |
timeout_team | stringnullable | — | Team calling timeout e.g. BAL |
total | integernullable | — | Home score + Away score e.g. 41 |
total_away_comp_air_epa | decimalnullable | — | Cumulative away completion air EPA e.g. 0.0000 |
total_away_comp_air_wpa | decimalnullable | — | Cumulative away completion air WPA e.g. 0.0000 |
total_away_comp_yac_epa | decimalnullable | — | Cumulative away completion YAC EPA e.g. 0.0000 |
total_away_comp_yac_wpa | decimalnullable | — | Cumulative away completion YAC WPA e.g. 0.0000 |
total_away_epa | decimalnullable | — | Cumulative away EPA e.g. 0.0000 |
total_away_pass_epa | decimalnullable | — | Cumulative away passing EPA e.g. 0.0000 |
total_away_pass_wpa | decimalnullable | — | Cumulative away passing WPA e.g. 0.0000 |
total_away_raw_air_epa | decimalnullable | — | Cumulative away raw air EPA e.g. 0.0000 |
total_away_raw_air_wpa | decimalnullable | — | Cumulative away raw air WPA e.g. 0.0000 |
total_away_raw_yac_epa | decimalnullable | — | Cumulative away raw YAC EPA e.g. 0.0000 |
total_away_raw_yac_wpa | decimalnullable | — | Cumulative away raw YAC WPA e.g. 0.0000 |
total_away_rush_epa | decimalnullable | — | Cumulative away rushing EPA e.g. 0.0000 |
total_away_rush_wpa | decimalnullable | — | Cumulative away rushing WPA e.g. 0.0000 |
total_away_score | integernullable | — | Away score at play start e.g. 0 |
total_home_comp_air_epa | decimalnullable | — | Cumulative home completion air EPA e.g. 0.0000 |
total_home_comp_air_wpa | decimalnullable | — | Cumulative home completion air WPA e.g. 0.0000 |
total_home_comp_yac_epa | decimalnullable | — | Cumulative home completion YAC EPA e.g. 0.0000 |
total_home_comp_yac_wpa | decimalnullable | — | Cumulative home completion YAC WPA e.g. 0.0000 |
total_home_epa | decimalnullable | — | Cumulative home EPA e.g. 0.0000 |
total_home_pass_epa | decimalnullable | — | Cumulative home passing EPA e.g. 0.0000 |
total_home_pass_wpa | decimalnullable | — | Cumulative home passing WPA e.g. 0.0000 |
total_home_raw_air_epa | decimalnullable | — | Cumulative home raw air EPA e.g. 0.0000 |
total_home_raw_air_wpa | decimalnullable | — | Cumulative home raw air WPA e.g. 0.0000 |
total_home_raw_yac_epa | decimalnullable | — | Cumulative home raw YAC EPA e.g. 0.0000 |
total_home_raw_yac_wpa | decimalnullable | — | Cumulative home raw YAC WPA e.g. 0.0000 |
total_home_rush_epa | decimalnullable | — | Cumulative home rushing EPA e.g. 0.0000 |
total_home_rush_wpa | decimalnullable | — | Cumulative home rushing WPA e.g. 0.0000 |
total_home_score | integernullable | — | Home score at play start e.g. 0 |
total_line | decimalnullable | — | Vegas total line e.g. 41.5000 |
touchback | boolean | — | Touchback Values:falsetrue |
touchdown | boolean | — | Touchdown scored Values:falsetrue |
two_point_attempt | boolean | — | Two-point conversion attempt Values:falsetrue |
two_point_conv_result | stringnullable | — | success, failure, safety, return Values:failuresuccess |
two_point_conversion_prob | decimalnullable | — | Two-point conversion probability e.g. 0.0000 |
vegas_home_wp | decimalnullable | — | Vegas home win probability e.g. 1.0000 |
vegas_home_wpa | decimalnullable | — | Vegas home WPA e.g. 0.0000 |
vegas_wp | decimalnullable | — | Vegas win probability e.g. 0.9999 |
vegas_wpa | decimalnullable | — | Vegas-adjusted WPA e.g. 0.0000 |
weather | stringnullable | — | Weather conditions description e.g. Temp: 63° F, Humidity: 87%, Wind: SE 4 mph |
wind | integernullable | — | Wind speed (mph) e.g. 10 |
wp | decimalnullable | — | Win probability for possession team e.g. 0.5463 |
wpa | decimalnullable | — | Win probability added e.g. 0.0000 |
xpass | decimalnullable | — | Dropback probability e.g. 0.9759 |
xyac_epa | decimalnullable | — | Expected EPA after catch e.g. 0.2981 |
xyac_fd | decimalnullable | — | First down probability (xYAC) e.g. 1.0000 |
xyac_mean_yardage | decimalnullable | — | Average expected YAC e.g. 3.9685 |
xyac_median_yardage | decimalnullable | — | Median expected YAC e.g. 2.0000 |
xyac_success | decimalnullable | — | Positive EPA probability e.g. 1.0000 |
yac_epa | decimalnullable | — | EPA from yards after catch e.g. 0.0000 |
yac_wpa | decimalnullable | — | WPA from yards after catch e.g. 0.0000 |
yard_line | integernullable | — | Yard line number (0-50) e.g. — (all-null in sample) |
yardline_100 | integernullable | — | Yards from opponent endzone (0-100) e.g. 35 |
yds_after_catch | integernullable | — | YAC yards e.g. 0 |
yds_gained | integernullable | — | Yards gained on play e.g. 0 |
ydsnet | integernullable | — | Total net yards on drive e.g. 70 |
ydstogo | integernullable | — | Yards to first down/goal e.g. 10 |
yrdln | stringnullable | — | Yard line string (e.g., "KC 25") e.g. MID 50 |
Stats
season_team_stats
nfl.season_team_statsSeason totals for each NFL team — wins and losses, points scored and allowed, yards on offense and defense, turnovers, red-zone and down-conversion efficiency, kicking accuracy. Regular-season games only.
GET/api/v1/nfl/season_team_statsList season_team_stats for NFL
Requires one of:
season_id — requests satisfying none of these return 400.Parameters
team_idquerybigintoptionalFilter by team.
season_idquerybigintoptionalFilter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
limitqueryintegeroptionaldefault 100Page size. Defaults to 100; 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/season_team_stats?season_id=2026'Responses
200season_team_stats rows matching the declared filter set, wrapped in { season_team_stats, 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(32 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
season_id | bigint | — e.g. 2025 | |
team_id | bigint | — e.g. 1 | |
completions | integer | — | — e.g. 0 |
defensive_interceptions | integer | — | — e.g. 11 |
defensive_sacks | decimal | — | Sacks recorded by this team's defense (half-sacks supported as decimals). e.g. 49.0000 |
defensive_tds | integer | — | Touchdowns scored by the defense (interception return + fumble recovery TD); excludes special-teams returns. e.g. 0 |
extra_pts_attempted | integer | — | — e.g. 35 |
extra_pts_made | integer | — | — e.g. 33 |
field_goals_attempted | integer | — | — e.g. 30 |
field_goals_made | integer | — | — e.g. 30 |
first_downs | integer | — | — e.g. 301 |
fourth_down_attempts | integer | — | Total fourth-down plays attempted (excludes punts and field-goal attempts). e.g. 21 |
fourth_down_conversions | integer | — | Fourth-down attempts converted to a first down or touchdown. e.g. 13 |
fumbles_recovered | integer | — | — e.g. 9 |
games_played | integer | — | — e.g. 17 |
losses | integer | — | — e.g. 8 |
pass_attempts | integer | — | — e.g. 0 |
passing_tds | integer | — | — e.g. 0 |
passing_yds | integer | — | — e.g. 3703 |
pts_allowed | integer | — | — e.g. 407 |
pts_scored | integer | — | — e.g. 364 |
red_zone_attempts | integer | — | Possessions reaching the red zone (inside the opponent's 20-yard line). e.g. 0 |
red_zone_conversions | integer | — | Red-zone trips that ended in a touchdown. e.g. 0 |
rushing_tds | integer | — | — e.g. 0 |
rushing_yds | integer | — | — e.g. 2662 |
third_down_attempts | integer | — | Total third-down plays attempted. e.g. 224 |
third_down_conversions | integer | — | Third-down attempts converted to a first down or touchdown. e.g. 82 |
ties | integer | — | — e.g. 0 |
total_yds | integer | — | — e.g. 6299 |
turnovers | integer | — | Possessions lost via interception or fumble. e.g. 24 |
wins | integer | — | — e.g. 8 |
GET/api/v1/nfl/season_team_stats/{id}Get a single season_team_stat by id
Parameters
idpathbigintrequiredPrimary key (id) of the season_team_stat 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/season_team_stats/{pk_value}'Responses
200Single season_team_stat row.application/jsonshow example ▸
404Row not found.
Response Schema(32 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
season_id | bigint | — e.g. 2025 | |
team_id | bigint | — e.g. 1 | |
completions | integer | — | — e.g. 0 |
defensive_interceptions | integer | — | — e.g. 11 |
defensive_sacks | decimal | — | Sacks recorded by this team's defense (half-sacks supported as decimals). e.g. 49.0000 |
defensive_tds | integer | — | Touchdowns scored by the defense (interception return + fumble recovery TD); excludes special-teams returns. e.g. 0 |
extra_pts_attempted | integer | — | — e.g. 35 |
extra_pts_made | integer | — | — e.g. 33 |
field_goals_attempted | integer | — | — e.g. 30 |
field_goals_made | integer | — | — e.g. 30 |
first_downs | integer | — | — e.g. 301 |
fourth_down_attempts | integer | — | Total fourth-down plays attempted (excludes punts and field-goal attempts). e.g. 21 |
fourth_down_conversions | integer | — | Fourth-down attempts converted to a first down or touchdown. e.g. 13 |
fumbles_recovered | integer | — | — e.g. 9 |
games_played | integer | — | — e.g. 17 |
losses | integer | — | — e.g. 8 |
pass_attempts | integer | — | — e.g. 0 |
passing_tds | integer | — | — e.g. 0 |
passing_yds | integer | — | — e.g. 3703 |
pts_allowed | integer | — | — e.g. 407 |
pts_scored | integer | — | — e.g. 364 |
red_zone_attempts | integer | — | Possessions reaching the red zone (inside the opponent's 20-yard line). e.g. 0 |
red_zone_conversions | integer | — | Red-zone trips that ended in a touchdown. e.g. 0 |
rushing_tds | integer | — | — e.g. 0 |
rushing_yds | integer | — | — e.g. 2662 |
third_down_attempts | integer | — | Total third-down plays attempted. e.g. 224 |
third_down_conversions | integer | — | Third-down attempts converted to a first down or touchdown. e.g. 82 |
ties | integer | — | — e.g. 0 |
total_yds | integer | — | — e.g. 6299 |
turnovers | integer | — | Possessions lost via interception or fumble. e.g. 24 |
wins | integer | — | — e.g. 8 |
game_player_stats
nfl.game_player_statsEach NFL player's stat line for each game — every passing, rushing, receiving, defensive, special-teams, and scoring statistic recorded that day.
GET/api/v1/nfl/game_player_statsList game_player_stats for NFL
Requires one of:
game_id or player_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
player_idquerybigintoptionalFilter to a single player.
team_idquerybigintoptionalFilter by team.
opponent_team_idquerybigintoptionalFilter by opponent team.
positionquerystringoptionalFilter by player position. Values: DB, DEF, DL, K, LB, LS, OL, P, QB, RB, TE, WR.
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_player_stats?game_id=1'Responses
200game_player_stats rows matching the declared filter set, wrapped in { game_player_stats, 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(141 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 90 | |
opponent_team_id | bigint | — e.g. 15 | |
player_id | bigint | — e.g. 298 | |
team_id | bigint | — e.g. 10 | |
air_yds_share | decimal | — | Percentage of team air yards e.g. 0.0000 |
assisted_tackles | integernullable | — | Assisted tackles e.g. 1 |
blocked_kick_return_tds | integernullable | — | Blocked kick return touchdowns e.g. 0 |
blocked_kick_return_yds | integernullable | — | Blocked kick return yards e.g. 0 |
blocked_kicks | integernullable | — | Blocked kicks (FG, XP, punts) e.g. 0 |
completions | integer | — | — e.g. 0 |
dakota | decimalnullable | — | DAKOTA: adjusted completion % + EPA metric e.g. 0.1798 |
defensive_interceptions | integernullable | — | Defensive interceptions e.g. 0 |
defensive_sack_yds | integernullable | — | Yards lost on defensive sacks e.g. 0 |
defensive_sacks | decimalnullable | — | Defensive sacks (can be half sacks) e.g. 0.0000 |
defensive_snaps | integernullable | — | Defensive snaps played e.g. 0 |
defensive_tds | integernullable | — | Total defensive touchdowns (INT + fumble return TDs) e.g. 0 |
defensive_team_snaps | integernullable | — | Total team defensive snaps (for calculating snap %) e.g. 1 |
depth_order | integernullable | — | Depth order within position (1=starter, 2=backup, etc.) - joined from depth charts e.g. 1 |
depth_position | stringnullable | — | Depth chart position (QB1, RB2, etc.) - joined from depth charts e.g. WR |
extra_pts_attempted | integernullable | — | Extra points attempted e.g. 0 |
extra_pts_had_blocked | integernullable | — | Extra points blocked by opponent e.g. 0 |
extra_pts_made | integernullable | — | Extra points made e.g. 0 |
fantasy_pts | decimal | — | Standard fantasy points (nflverse calculation) e.g. 0.0000 |
fantasy_pts_ppr | decimal | — | PPR fantasy points (nflverse calculation) e.g. 0.0000 |
field_goal_percentage | decimalnullable | — | Field goal percentage e.g. — (all-null in sample) |
field_goal_return_tds | integernullable | — | Field goal return touchdowns e.g. — (all-null in sample) |
field_goal_return_yds | integernullable | — | Field goal return yards (missed FG returns) e.g. — (all-null in sample) |
field_goals_attempted | integernullable | — | Field goals attempted e.g. 0 |
field_goals_had_blocked | integernullable | — | Field goals blocked by opponent e.g. 0 |
field_goals_longest | integernullable | — | Longest field goal made (yards) e.g. — (all-null in sample) |
field_goals_made | integernullable | — | Field goals made e.g. 0 |
field_goals_made_0_19 | integernullable | — | Field goals made 0-19 yards e.g. 0 |
field_goals_made_20_29 | integernullable | — | Field goals made 20-29 yards e.g. 0 |
field_goals_made_30_39 | integernullable | — | Field goals made 30-39 yards e.g. 0 |
field_goals_made_40_49 | integernullable | — | Field goals made 40-49 yards e.g. 0 |
field_goals_made_50_plus | integernullable | — | Field goals made 50+ yards e.g. 0 |
forced_fumbles | integernullable | — | Forced fumbles e.g. 1 |
fumble_return_tds | integernullable | — | Fumble return touchdowns e.g. 0 |
fumble_return_yds | integernullable | — | Fumble return yards e.g. 0 |
fumbles_out_of_bounds | integernullable | — | Fumbles out of bounds e.g. 1 |
fumbles_own_recoveries | integernullable | — | Own fumbles recovered e.g. 1 |
fumbles_recovered | integernullable | — | Fumbles recovered e.g. 1 |
humidity | integernullable | — | Humidity percentage e.g. — (all-null in sample) |
interception_return_tds | integernullable | — | Interception return touchdowns e.g. 0 |
interception_return_yds | integernullable | — | Interception return yards e.g. 0 |
interceptions_thrown | integer | — | — e.g. 0 |
is_home | boolean | — | True if player's team is the home team Values:falsetrue |
kick_return_avg | floatnullable | — | Kick return average (yards per return) e.g. 260 |
kick_return_fair_catches | integernullable | — | Fair catches on kick returns e.g. 0 |
kick_return_fumbles | integernullable | — | Fumbles on kick returns e.g. 0 |
kick_return_fumbles_lost | integernullable | — | Fumbles lost on kick returns e.g. 0 |
kick_return_long | integernullable | — | Longest kick return (yards) e.g. 31 |
kick_return_tds | integernullable | — | Kick return touchdowns e.g. 0 |
kick_return_yds | integernullable | — | Total kick return yards e.g. 0 |
kick_returns | integernullable | — | Number of kick returns e.g. 1 |
misc_assisted_tackles | integernullable | — | Miscellaneous assisted tackles e.g. — (all-null in sample) |
misc_fumbles_forced | integernullable | — | Miscellaneous fumbles forced e.g. — (all-null in sample) |
misc_fumbles_recovered | integernullable | — | Miscellaneous fumbles recovered e.g. — (all-null in sample) |
misc_solo_tackles | integernullable | — | Miscellaneous solo tackles e.g. — (all-null in sample) |
offensive_snaps | integernullable | — | Offensive snaps played e.g. 14 |
offensive_team_snaps | integernullable | — | Total team offensive snaps (for calculating snap %) e.g. 64 |
pacr | decimalnullable | — | Passer air conversion ratio e.g. 2.0000 |
pass_attempts | integer | — | — e.g. 0 |
passes_defended | integernullable | — | Passes defended e.g. 1 |
passing_2pt_conversions | integer | — | — e.g. 0 |
passing_air_yds | integer | — | — e.g. 0 |
passing_completion_percentage | decimalnullable | — | Completion percentage e.g. 10.0000 |
passing_epa | decimal | — | Expected points added from passing e.g. 0.0000 |
passing_first_downs | integer | — | — e.g. 0 |
passing_long | integernullable | — | Longest pass completion (yards) e.g. 25 |
passing_rating | decimalnullable | — | Passer rating e.g. 39.5833 |
passing_tds | integer | — | — e.g. 0 |
passing_yds | integer | — | — e.g. 0 |
passing_yds_after_catch | integer | — | — e.g. 0 |
playing_surface | stringnullable | — | Playing surface type (grass, turf, etc.) e.g. — (all-null in sample) |
position | string | — | Player position at time of game Values:DEFWRTEDBRBOL |
position_group | string | — | Position group (QB, RB, WR, TE, etc.) Values:DEFWRTERBOLSPEC |
punt_average | decimalnullable | — | Punt average (yards) e.g. 510.0000 |
punt_inside_20 | integernullable | — | Punts inside 20 yard line e.g. 1 |
punt_long | integernullable | — | Longest punt (yards) e.g. 60 |
punt_net_average | floatnullable | — | Net punt average (gross - return yards) e.g. — (all-null in sample) |
punt_net_yds | integernullable | — | Net punt yards (gross - return yards) e.g. — (all-null in sample) |
punt_return_avg | floatnullable | — | Punt return average (yards per return) e.g. 100 |
punt_return_fair_catches | integernullable | — | Fair catches on punt returns e.g. 0 |
punt_return_fumbles | integernullable | — | Fumbles on punt returns (includes muffs) e.g. 0 |
punt_return_fumbles_lost | integernullable | — | Fumbles lost on punt returns e.g. 0 |
punt_return_long | integernullable | — | Longest punt return (yards) e.g. 8 |
punt_return_tds | integernullable | — | Punt return touchdowns e.g. 0 |
punt_return_yds | integernullable | — | Total punt return yards e.g. 0 |
punt_returns | integernullable | — | Number of punt returns e.g. 1 |
punt_touchbacks | integernullable | — | Punt touchbacks e.g. 0 |
punt_yds | integernullable | — | Total punt yards e.g. 0 |
punts | integernullable | — | Number of punts e.g. 2 |
punts_had_blocked | integernullable | — | Punts blocked by opponent e.g. 0 |
quarterback_hits | integernullable | — | Quarterback hits e.g. 0 |
racr | decimalnullable | — | Receiver air conversion ratio e.g. 0.0000 |
receiving_2pt_conversions | integer | — | — e.g. 0 |
receiving_air_yds | integer | — | — e.g. 0 |
receiving_epa | decimal | — | Expected points added from receiving e.g. 0.0000 |
receiving_first_downs | integer | — | — e.g. 0 |
receiving_fumbles | integer | — | — e.g. 0 |
receiving_fumbles_lost | integer | — | — e.g. 0 |
receiving_long | integernullable | — | Longest reception (yards) e.g. 9 |
receiving_tds | integer | — | — e.g. 0 |
receiving_yds | integer | — | — e.g. 0 |
receiving_yds_after_catch | integer | — | — e.g. 0 |
receiving_yds_per_reception | decimalnullable | — | Yards per reception e.g. 50.0000 |
reception_percentage | decimalnullable | — | Reception percentage (receptions/targets) e.g. 10.0000 |
receptions | integer | — | — e.g. 0 |
rushing_2pt_conversions | integer | — | — e.g. 0 |
rushing_attempts | integer | — | — e.g. 0 |
rushing_epa | decimal | — | Expected points added from rushing e.g. 0.0000 |
rushing_first_downs | integer | — | — e.g. 0 |
rushing_fumbles | integer | — | — e.g. 0 |
rushing_fumbles_lost | integer | — | — e.g. 0 |
rushing_long | integernullable | — | Longest rush (yards) e.g. 9 |
rushing_tds | integer | — | — e.g. 0 |
rushing_yds | integer | — | — e.g. 0 |
rushing_yds_per_attempt | decimalnullable | — | Rushing yards per attempt e.g. 20.0000 |
sack_fumbles | integer | — | — e.g. 0 |
sack_fumbles_lost | integer | — | — e.g. 0 |
sack_yds | integer | — | — e.g. 0 |
sacks_allowed | integer | — | — e.g. 0 |
safeties | integernullable | — | Safeties e.g. 0 |
solo_tackles | integernullable | — | Solo tackles e.g. 1 |
special_teams_assisted_tackles | integernullable | — | Assisted tackles on special teams e.g. 1 |
special_teams_fumbles_forced | integernullable | — | Fumbles forced on special teams e.g. 0 |
special_teams_fumbles_recovered | integernullable | — | Fumbles recovered on special teams e.g. 0 |
special_teams_snaps | integernullable | — | Special teams snaps played e.g. 0 |
special_teams_solo_tackles | integernullable | — | Solo tackles on special teams e.g. 1 |
special_teams_tds | integer | — | — e.g. 0 |
special_teams_team_snaps | integernullable | — | Total team special teams snaps (for calculating snap %) e.g. 13 |
stadium | stringnullable | — | Stadium name e.g. — (all-null in sample) |
tackles_for_loss | integernullable | — | Tackles for loss e.g. 0 |
target_share | decimal | — | Percentage of team targets e.g. 0.0000 |
targets | integer | — | — e.g. 0 |
temperature | integernullable | — | Game temperature (Fahrenheit) e.g. — (all-null in sample) |
two_pt_returns | integernullable | — | Two-point conversion returns (defensive) e.g. — (all-null in sample) |
wind_speed | integernullable | — | Wind speed (mph) e.g. — (all-null in sample) |
wopr | decimalnullable | — | Weighted opportunity rating e.g. 0.0000 |
GET/api/v1/nfl/game_player_stats/{id}Get a single game_player_stat by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_player_stat 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_player_stats/{pk_value}'Responses
200Single game_player_stat row.application/jsonshow example ▸
404Row not found.
Response Schema(141 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 90 | |
opponent_team_id | bigint | — e.g. 15 | |
player_id | bigint | — e.g. 298 | |
team_id | bigint | — e.g. 10 | |
air_yds_share | decimal | — | Percentage of team air yards e.g. 0.0000 |
assisted_tackles | integernullable | — | Assisted tackles e.g. 1 |
blocked_kick_return_tds | integernullable | — | Blocked kick return touchdowns e.g. 0 |
blocked_kick_return_yds | integernullable | — | Blocked kick return yards e.g. 0 |
blocked_kicks | integernullable | — | Blocked kicks (FG, XP, punts) e.g. 0 |
completions | integer | — | — e.g. 0 |
dakota | decimalnullable | — | DAKOTA: adjusted completion % + EPA metric e.g. 0.1798 |
defensive_interceptions | integernullable | — | Defensive interceptions e.g. 0 |
defensive_sack_yds | integernullable | — | Yards lost on defensive sacks e.g. 0 |
defensive_sacks | decimalnullable | — | Defensive sacks (can be half sacks) e.g. 0.0000 |
defensive_snaps | integernullable | — | Defensive snaps played e.g. 0 |
defensive_tds | integernullable | — | Total defensive touchdowns (INT + fumble return TDs) e.g. 0 |
defensive_team_snaps | integernullable | — | Total team defensive snaps (for calculating snap %) e.g. 1 |
depth_order | integernullable | — | Depth order within position (1=starter, 2=backup, etc.) - joined from depth charts e.g. 1 |
depth_position | stringnullable | — | Depth chart position (QB1, RB2, etc.) - joined from depth charts e.g. WR |
extra_pts_attempted | integernullable | — | Extra points attempted e.g. 0 |
extra_pts_had_blocked | integernullable | — | Extra points blocked by opponent e.g. 0 |
extra_pts_made | integernullable | — | Extra points made e.g. 0 |
fantasy_pts | decimal | — | Standard fantasy points (nflverse calculation) e.g. 0.0000 |
fantasy_pts_ppr | decimal | — | PPR fantasy points (nflverse calculation) e.g. 0.0000 |
field_goal_percentage | decimalnullable | — | Field goal percentage e.g. — (all-null in sample) |
field_goal_return_tds | integernullable | — | Field goal return touchdowns e.g. — (all-null in sample) |
field_goal_return_yds | integernullable | — | Field goal return yards (missed FG returns) e.g. — (all-null in sample) |
field_goals_attempted | integernullable | — | Field goals attempted e.g. 0 |
field_goals_had_blocked | integernullable | — | Field goals blocked by opponent e.g. 0 |
field_goals_longest | integernullable | — | Longest field goal made (yards) e.g. — (all-null in sample) |
field_goals_made | integernullable | — | Field goals made e.g. 0 |
field_goals_made_0_19 | integernullable | — | Field goals made 0-19 yards e.g. 0 |
field_goals_made_20_29 | integernullable | — | Field goals made 20-29 yards e.g. 0 |
field_goals_made_30_39 | integernullable | — | Field goals made 30-39 yards e.g. 0 |
field_goals_made_40_49 | integernullable | — | Field goals made 40-49 yards e.g. 0 |
field_goals_made_50_plus | integernullable | — | Field goals made 50+ yards e.g. 0 |
forced_fumbles | integernullable | — | Forced fumbles e.g. 1 |
fumble_return_tds | integernullable | — | Fumble return touchdowns e.g. 0 |
fumble_return_yds | integernullable | — | Fumble return yards e.g. 0 |
fumbles_out_of_bounds | integernullable | — | Fumbles out of bounds e.g. 1 |
fumbles_own_recoveries | integernullable | — | Own fumbles recovered e.g. 1 |
fumbles_recovered | integernullable | — | Fumbles recovered e.g. 1 |
humidity | integernullable | — | Humidity percentage e.g. — (all-null in sample) |
interception_return_tds | integernullable | — | Interception return touchdowns e.g. 0 |
interception_return_yds | integernullable | — | Interception return yards e.g. 0 |
interceptions_thrown | integer | — | — e.g. 0 |
is_home | boolean | — | True if player's team is the home team Values:falsetrue |
kick_return_avg | floatnullable | — | Kick return average (yards per return) e.g. 260 |
kick_return_fair_catches | integernullable | — | Fair catches on kick returns e.g. 0 |
kick_return_fumbles | integernullable | — | Fumbles on kick returns e.g. 0 |
kick_return_fumbles_lost | integernullable | — | Fumbles lost on kick returns e.g. 0 |
kick_return_long | integernullable | — | Longest kick return (yards) e.g. 31 |
kick_return_tds | integernullable | — | Kick return touchdowns e.g. 0 |
kick_return_yds | integernullable | — | Total kick return yards e.g. 0 |
kick_returns | integernullable | — | Number of kick returns e.g. 1 |
misc_assisted_tackles | integernullable | — | Miscellaneous assisted tackles e.g. — (all-null in sample) |
misc_fumbles_forced | integernullable | — | Miscellaneous fumbles forced e.g. — (all-null in sample) |
misc_fumbles_recovered | integernullable | — | Miscellaneous fumbles recovered e.g. — (all-null in sample) |
misc_solo_tackles | integernullable | — | Miscellaneous solo tackles e.g. — (all-null in sample) |
offensive_snaps | integernullable | — | Offensive snaps played e.g. 14 |
offensive_team_snaps | integernullable | — | Total team offensive snaps (for calculating snap %) e.g. 64 |
pacr | decimalnullable | — | Passer air conversion ratio e.g. 2.0000 |
pass_attempts | integer | — | — e.g. 0 |
passes_defended | integernullable | — | Passes defended e.g. 1 |
passing_2pt_conversions | integer | — | — e.g. 0 |
passing_air_yds | integer | — | — e.g. 0 |
passing_completion_percentage | decimalnullable | — | Completion percentage e.g. 10.0000 |
passing_epa | decimal | — | Expected points added from passing e.g. 0.0000 |
passing_first_downs | integer | — | — e.g. 0 |
passing_long | integernullable | — | Longest pass completion (yards) e.g. 25 |
passing_rating | decimalnullable | — | Passer rating e.g. 39.5833 |
passing_tds | integer | — | — e.g. 0 |
passing_yds | integer | — | — e.g. 0 |
passing_yds_after_catch | integer | — | — e.g. 0 |
playing_surface | stringnullable | — | Playing surface type (grass, turf, etc.) e.g. — (all-null in sample) |
position | string | — | Player position at time of game Values:DEFWRTEDBRBOL |
position_group | string | — | Position group (QB, RB, WR, TE, etc.) Values:DEFWRTERBOLSPEC |
punt_average | decimalnullable | — | Punt average (yards) e.g. 510.0000 |
punt_inside_20 | integernullable | — | Punts inside 20 yard line e.g. 1 |
punt_long | integernullable | — | Longest punt (yards) e.g. 60 |
punt_net_average | floatnullable | — | Net punt average (gross - return yards) e.g. — (all-null in sample) |
punt_net_yds | integernullable | — | Net punt yards (gross - return yards) e.g. — (all-null in sample) |
punt_return_avg | floatnullable | — | Punt return average (yards per return) e.g. 100 |
punt_return_fair_catches | integernullable | — | Fair catches on punt returns e.g. 0 |
punt_return_fumbles | integernullable | — | Fumbles on punt returns (includes muffs) e.g. 0 |
punt_return_fumbles_lost | integernullable | — | Fumbles lost on punt returns e.g. 0 |
punt_return_long | integernullable | — | Longest punt return (yards) e.g. 8 |
punt_return_tds | integernullable | — | Punt return touchdowns e.g. 0 |
punt_return_yds | integernullable | — | Total punt return yards e.g. 0 |
punt_returns | integernullable | — | Number of punt returns e.g. 1 |
punt_touchbacks | integernullable | — | Punt touchbacks e.g. 0 |
punt_yds | integernullable | — | Total punt yards e.g. 0 |
punts | integernullable | — | Number of punts e.g. 2 |
punts_had_blocked | integernullable | — | Punts blocked by opponent e.g. 0 |
quarterback_hits | integernullable | — | Quarterback hits e.g. 0 |
racr | decimalnullable | — | Receiver air conversion ratio e.g. 0.0000 |
receiving_2pt_conversions | integer | — | — e.g. 0 |
receiving_air_yds | integer | — | — e.g. 0 |
receiving_epa | decimal | — | Expected points added from receiving e.g. 0.0000 |
receiving_first_downs | integer | — | — e.g. 0 |
receiving_fumbles | integer | — | — e.g. 0 |
receiving_fumbles_lost | integer | — | — e.g. 0 |
receiving_long | integernullable | — | Longest reception (yards) e.g. 9 |
receiving_tds | integer | — | — e.g. 0 |
receiving_yds | integer | — | — e.g. 0 |
receiving_yds_after_catch | integer | — | — e.g. 0 |
receiving_yds_per_reception | decimalnullable | — | Yards per reception e.g. 50.0000 |
reception_percentage | decimalnullable | — | Reception percentage (receptions/targets) e.g. 10.0000 |
receptions | integer | — | — e.g. 0 |
rushing_2pt_conversions | integer | — | — e.g. 0 |
rushing_attempts | integer | — | — e.g. 0 |
rushing_epa | decimal | — | Expected points added from rushing e.g. 0.0000 |
rushing_first_downs | integer | — | — e.g. 0 |
rushing_fumbles | integer | — | — e.g. 0 |
rushing_fumbles_lost | integer | — | — e.g. 0 |
rushing_long | integernullable | — | Longest rush (yards) e.g. 9 |
rushing_tds | integer | — | — e.g. 0 |
rushing_yds | integer | — | — e.g. 0 |
rushing_yds_per_attempt | decimalnullable | — | Rushing yards per attempt e.g. 20.0000 |
sack_fumbles | integer | — | — e.g. 0 |
sack_fumbles_lost | integer | — | — e.g. 0 |
sack_yds | integer | — | — e.g. 0 |
sacks_allowed | integer | — | — e.g. 0 |
safeties | integernullable | — | Safeties e.g. 0 |
solo_tackles | integernullable | — | Solo tackles e.g. 1 |
special_teams_assisted_tackles | integernullable | — | Assisted tackles on special teams e.g. 1 |
special_teams_fumbles_forced | integernullable | — | Fumbles forced on special teams e.g. 0 |
special_teams_fumbles_recovered | integernullable | — | Fumbles recovered on special teams e.g. 0 |
special_teams_snaps | integernullable | — | Special teams snaps played e.g. 0 |
special_teams_solo_tackles | integernullable | — | Solo tackles on special teams e.g. 1 |
special_teams_tds | integer | — | — e.g. 0 |
special_teams_team_snaps | integernullable | — | Total team special teams snaps (for calculating snap %) e.g. 13 |
stadium | stringnullable | — | Stadium name e.g. — (all-null in sample) |
tackles_for_loss | integernullable | — | Tackles for loss e.g. 0 |
target_share | decimal | — | Percentage of team targets e.g. 0.0000 |
targets | integer | — | — e.g. 0 |
temperature | integernullable | — | Game temperature (Fahrenheit) e.g. — (all-null in sample) |
two_pt_returns | integernullable | — | Two-point conversion returns (defensive) e.g. — (all-null in sample) |
wind_speed | integernullable | — | Wind speed (mph) e.g. — (all-null in sample) |
wopr | decimalnullable | — | Weighted opportunity rating e.g. 0.0000 |
game_team_stats
nfl.game_team_statsEach NFL team's stat line for each game — the same offensive, defensive, scoring, and situational counters as the season aggregate, broken out per game with home/away context.
GET/api/v1/nfl/game_team_statsList game_team_stats for NFL
Requires one of:
game_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
team_idquerybigintoptionalFilter by team.
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_team_stats?game_id=1'Responses
200game_team_stats rows matching the declared filter set, wrapped in { game_team_stats, 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(131 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 4718 | |
team_id | bigint | — e.g. 16 | |
blocked_extra_pts | integer | — | — e.g. 0 |
blocked_field_goals | integer | — | — e.g. 0 |
blocked_kick_return_tds | integer | — | Blocked kick return touchdowns e.g. 0 |
blocked_kick_return_yds | integer | — | Blocked kick return yards e.g. 0 |
blocked_kicks | integer | — | Total blocked kicks (FGs + XPs + punts) for DST fantasy scoring e.g. 0 |
blocked_punts | integer | — | — e.g. 0 |
completion_percentage | decimal | — | — e.g. 66.6667 |
completions | integer | — | — e.g. 22 |
defensive_interceptions | integer | — | — e.g. 0 |
defensive_sacks | integer | — | — e.g. 2 |
defensive_tds | integer | — | — e.g. 0 |
defensive_team_snaps | integer | — | Total defensive snaps by team in game e.g. 715 |
extra_pt_percentage | decimal | — | Extra point conversion percentage e.g. 100.0000 |
extra_pts_attempted | integer | — | — e.g. 2 |
extra_pts_blocked | integer | — | Extra points that were blocked e.g. 0 |
extra_pts_made | integer | — | — e.g. 2 |
field_goal_percentage | decimal | — | — e.g. 100.0000 |
field_goal_return_tds | integer | — | Field goal return touchdowns e.g. 0 |
field_goal_return_yds | integer | — | Field goal return yards (missed FGs) e.g. 0 |
field_goals_attempted | integer | — | — e.g. 2 |
field_goals_blocked | integer | — | Field goals that were blocked e.g. 0 |
field_goals_made | integer | — | — e.g. 1 |
first_downs | integer | — | — e.g. 22 |
first_downs_passing | integer | — | — e.g. 11 |
first_downs_penalty | integer | — | — e.g. 1 |
first_downs_rushing | integer | — | — e.g. 5 |
forced_fumbles | integer | — | — e.g. 0 |
fourth_down_attempts | integer | — | — e.g. 1 |
fourth_down_conversions | integer | — | — e.g. 0 |
fourth_down_percentage | decimal | — | — e.g. 0.0000 |
fumble_return_tds | integer | — | Fumble return touchdowns e.g. 0 |
fumble_return_yds | integer | — | Fumble return yards e.g. 0 |
fumbles_lost | integer | — | — e.g. 0 |
fumbles_recovered | integer | — | — e.g. 0 |
interception_percentage | decimal | — | Percentage of passes intercepted e.g. 0.0000 |
interception_return_tds | integer | — | Interception return touchdowns e.g. 0 |
interception_return_yds | integer | — | Interception return yards e.g. 0 |
interception_returns | integer | — | Number of interception returns e.g. 0 |
interceptions_thrown | integer | — | — e.g. 0 |
is_home | boolean | — | True if team is the home team Values:truefalse |
kick_return_avg | decimal | — | Average yards per kick return e.g. 0.0000 |
kick_return_long | integer | — | Longest kick return e.g. 0 |
kick_return_tds | integer | — | — e.g. 0 |
kick_return_yds | integer | — | — e.g. 0 |
kick_return_yds_differential | integer | — | Kick return yards minus opponent kick return yards e.g. 0 |
kick_returns | integer | — | Number of kick returns e.g. 0 |
kickoff_touchbacks | integer | — | Kickoffs resulting in touchbacks e.g. 0 |
kickoffs | integer | — | Number of kickoffs e.g. 0 |
kickoffs_in_endzone | integer | — | Kickoffs that reached the end zone e.g. 0 |
loss | integer | — | — e.g. 0 |
offensive_plays | integer | — | Total offensive plays run e.g. 64 |
offensive_team_snaps | integer | — | Total offensive snaps by team in game e.g. 748 |
offensive_yds | integer | — | Total offensive yards gained e.g. 367 |
pass_attempts | integer | — | — e.g. 30 |
passer_rating | decimal | — | — e.g. 97.9167 |
passes_defended | integer | — | — e.g. 3 |
passing_dropbacks | integer | — | Number of passing dropbacks e.g. 30 |
passing_tds | integer | — | — e.g. 1 |
passing_yds | integer | — | — e.g. 215 |
penalties | integer | — | — e.g. 5 |
penalty_yds | integer | — | — e.g. 30 |
penalty_yds_differential | integer | — | Opponent penalty yards minus own penalty yards e.g. 0 |
point_differential | integer | — | Points scored minus points allowed e.g. 3 |
pts | integer | — | — e.g. 20 |
pts_allowed_def | integer | — | Points allowed for DEF scoring (FanDuel). Excludes return TDs against - only offensive points allowed. e.g. 20 |
pts_allowed_dst | integer | — | Points allowed for DST scoring (DraftKings/Yahoo). Includes return TDs against - real scoreboard points. e.g. 20 |
punt_average | decimal | — | — e.g. 45.0000 |
punt_net_average | decimal | — | Net punt average yards e.g. 45.0000 |
punt_net_yds | integer | — | Total net punt yards e.g. 0 |
punt_return_avg | decimal | — | Average yards per punt return e.g. 0.0000 |
punt_return_long | integer | — | Longest punt return e.g. 0 |
punt_return_tds | integer | — | — e.g. 0 |
punt_return_yds | integer | — | — e.g. 0 |
punt_return_yds_differential | integer | — | Punt return yards minus opponent punt return yards e.g. 0 |
punt_returns | integer | — | Number of punt returns e.g. 0 |
punt_yds | integer | — | — e.g. 0 |
punts | integer | — | — e.g. 4 |
punts_blocked | integer | — | Number of punts blocked e.g. 0 |
qb_hits_differential | integer | — | QB hits made minus QB hits allowed e.g. 0 |
qb_hits_percentage | decimal | — | Percentage of dropbacks resulting in QB hit e.g. 0.0000 |
quarterback_hits | integer | — | — e.g. 5 |
receiving_tds | integer | — | — e.g. 1 |
receiving_yds | integer | — | — e.g. 215 |
receptions | integer | — | — e.g. 22 |
red_zone_attempts | integer | — | — e.g. 4 |
red_zone_conversions | integer | — | — e.g. 3 |
red_zone_percentage | decimal | — | — e.g. 100.0000 |
rushing_attempts | integer | — | — e.g. 25 |
rushing_tds | integer | — | — e.g. 0 |
rushing_yds | integer | — | — e.g. 96 |
rushing_yds_per_attempt | decimal | — | Rushing yards per attempt e.g. 4.0000 |
sack_yds | integer | — | — e.g. 0 |
sacked_percentage | decimal | — | Percentage of dropbacks resulting in sack e.g. 0.0000 |
sacks_allowed | integer | — | — e.g. 2 |
sacks_differential | integer | — | Sacks made minus sacks allowed e.g. 0 |
safeties | integer | — | — e.g. 0 |
score_ot | integer | — | Points scored in overtime e.g. 0 |
score_q1 | integer | — | Points scored in Q1 e.g. 0 |
score_q2 | integer | — | Points scored in Q2 e.g. 0 |
score_q3 | integer | — | Points scored in Q3 e.g. 0 |
score_q4 | integer | — | Points scored in Q4 e.g. 0 |
special_teams_team_snaps | integer | — | Total special teams snaps by team in game e.g. 275 |
tackles | integer | — | — e.g. 51 |
tackles_for_loss | integer | — | — e.g. 2 |
tfl_differential | integer | — | Tackles for loss made minus allowed e.g. 0 |
tfl_percentage | decimal | — | Percentage of plays resulting in TFL e.g. 0.0000 |
third_down_attempts | integer | — | — e.g. 13 |
third_down_conversions | integer | — | — e.g. 5 |
third_down_percentage | decimal | — | — e.g. 50.0000 |
tie | integer | — | — e.g. 0 |
time_of_possession | integer | — | — e.g. 1696 |
total_return_yds | integer | — | Total punt and kick return yards e.g. 0 |
total_yds | integer | — | — e.g. 367 |
touchdowns | integer | — | Total touchdowns scored e.g. 2 |
turnover_differential | integer | — | — e.g. 0 |
turnovers | integer | — | — e.g. 1 |
two_point_conversion_attempts | integer | — | — e.g. 0 |
two_point_conversions | integer | — | — e.g. 0 |
two_pt_conversion_returns | integer | — | Defensive two-point conversion returns e.g. 0 |
two_pt_pass_attempts | integer | — | Two-point conversion pass attempts e.g. 0 |
two_pt_pass_conversions | integer | — | Two-point conversion pass conversions e.g. 0 |
two_pt_rush_attempts | integer | — | Two-point conversion rush attempts e.g. 0 |
two_pt_rush_conversions | integer | — | Two-point conversion rush conversions e.g. 0 |
win | integer | — | — e.g. 0 |
yds_per_carry | decimal | — | — e.g. 4.0000 |
yds_per_completion | decimal | — | Passing yards per completion e.g. 11.0000 |
yds_per_pass_attempt | decimal | — | — e.g. 6.0000 |
yds_per_play | decimal | — | Average yards per offensive play e.g. 5.0000 |
GET/api/v1/nfl/game_team_stats/{id}Get a single game_team_stat by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_team_stat 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_team_stats/{pk_value}'Responses
200Single game_team_stat row.application/jsonshow example ▸
404Row not found.
Response Schema(131 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 4718 | |
team_id | bigint | — e.g. 16 | |
blocked_extra_pts | integer | — | — e.g. 0 |
blocked_field_goals | integer | — | — e.g. 0 |
blocked_kick_return_tds | integer | — | Blocked kick return touchdowns e.g. 0 |
blocked_kick_return_yds | integer | — | Blocked kick return yards e.g. 0 |
blocked_kicks | integer | — | Total blocked kicks (FGs + XPs + punts) for DST fantasy scoring e.g. 0 |
blocked_punts | integer | — | — e.g. 0 |
completion_percentage | decimal | — | — e.g. 66.6667 |
completions | integer | — | — e.g. 22 |
defensive_interceptions | integer | — | — e.g. 0 |
defensive_sacks | integer | — | — e.g. 2 |
defensive_tds | integer | — | — e.g. 0 |
defensive_team_snaps | integer | — | Total defensive snaps by team in game e.g. 715 |
extra_pt_percentage | decimal | — | Extra point conversion percentage e.g. 100.0000 |
extra_pts_attempted | integer | — | — e.g. 2 |
extra_pts_blocked | integer | — | Extra points that were blocked e.g. 0 |
extra_pts_made | integer | — | — e.g. 2 |
field_goal_percentage | decimal | — | — e.g. 100.0000 |
field_goal_return_tds | integer | — | Field goal return touchdowns e.g. 0 |
field_goal_return_yds | integer | — | Field goal return yards (missed FGs) e.g. 0 |
field_goals_attempted | integer | — | — e.g. 2 |
field_goals_blocked | integer | — | Field goals that were blocked e.g. 0 |
field_goals_made | integer | — | — e.g. 1 |
first_downs | integer | — | — e.g. 22 |
first_downs_passing | integer | — | — e.g. 11 |
first_downs_penalty | integer | — | — e.g. 1 |
first_downs_rushing | integer | — | — e.g. 5 |
forced_fumbles | integer | — | — e.g. 0 |
fourth_down_attempts | integer | — | — e.g. 1 |
fourth_down_conversions | integer | — | — e.g. 0 |
fourth_down_percentage | decimal | — | — e.g. 0.0000 |
fumble_return_tds | integer | — | Fumble return touchdowns e.g. 0 |
fumble_return_yds | integer | — | Fumble return yards e.g. 0 |
fumbles_lost | integer | — | — e.g. 0 |
fumbles_recovered | integer | — | — e.g. 0 |
interception_percentage | decimal | — | Percentage of passes intercepted e.g. 0.0000 |
interception_return_tds | integer | — | Interception return touchdowns e.g. 0 |
interception_return_yds | integer | — | Interception return yards e.g. 0 |
interception_returns | integer | — | Number of interception returns e.g. 0 |
interceptions_thrown | integer | — | — e.g. 0 |
is_home | boolean | — | True if team is the home team Values:truefalse |
kick_return_avg | decimal | — | Average yards per kick return e.g. 0.0000 |
kick_return_long | integer | — | Longest kick return e.g. 0 |
kick_return_tds | integer | — | — e.g. 0 |
kick_return_yds | integer | — | — e.g. 0 |
kick_return_yds_differential | integer | — | Kick return yards minus opponent kick return yards e.g. 0 |
kick_returns | integer | — | Number of kick returns e.g. 0 |
kickoff_touchbacks | integer | — | Kickoffs resulting in touchbacks e.g. 0 |
kickoffs | integer | — | Number of kickoffs e.g. 0 |
kickoffs_in_endzone | integer | — | Kickoffs that reached the end zone e.g. 0 |
loss | integer | — | — e.g. 0 |
offensive_plays | integer | — | Total offensive plays run e.g. 64 |
offensive_team_snaps | integer | — | Total offensive snaps by team in game e.g. 748 |
offensive_yds | integer | — | Total offensive yards gained e.g. 367 |
pass_attempts | integer | — | — e.g. 30 |
passer_rating | decimal | — | — e.g. 97.9167 |
passes_defended | integer | — | — e.g. 3 |
passing_dropbacks | integer | — | Number of passing dropbacks e.g. 30 |
passing_tds | integer | — | — e.g. 1 |
passing_yds | integer | — | — e.g. 215 |
penalties | integer | — | — e.g. 5 |
penalty_yds | integer | — | — e.g. 30 |
penalty_yds_differential | integer | — | Opponent penalty yards minus own penalty yards e.g. 0 |
point_differential | integer | — | Points scored minus points allowed e.g. 3 |
pts | integer | — | — e.g. 20 |
pts_allowed_def | integer | — | Points allowed for DEF scoring (FanDuel). Excludes return TDs against - only offensive points allowed. e.g. 20 |
pts_allowed_dst | integer | — | Points allowed for DST scoring (DraftKings/Yahoo). Includes return TDs against - real scoreboard points. e.g. 20 |
punt_average | decimal | — | — e.g. 45.0000 |
punt_net_average | decimal | — | Net punt average yards e.g. 45.0000 |
punt_net_yds | integer | — | Total net punt yards e.g. 0 |
punt_return_avg | decimal | — | Average yards per punt return e.g. 0.0000 |
punt_return_long | integer | — | Longest punt return e.g. 0 |
punt_return_tds | integer | — | — e.g. 0 |
punt_return_yds | integer | — | — e.g. 0 |
punt_return_yds_differential | integer | — | Punt return yards minus opponent punt return yards e.g. 0 |
punt_returns | integer | — | Number of punt returns e.g. 0 |
punt_yds | integer | — | — e.g. 0 |
punts | integer | — | — e.g. 4 |
punts_blocked | integer | — | Number of punts blocked e.g. 0 |
qb_hits_differential | integer | — | QB hits made minus QB hits allowed e.g. 0 |
qb_hits_percentage | decimal | — | Percentage of dropbacks resulting in QB hit e.g. 0.0000 |
quarterback_hits | integer | — | — e.g. 5 |
receiving_tds | integer | — | — e.g. 1 |
receiving_yds | integer | — | — e.g. 215 |
receptions | integer | — | — e.g. 22 |
red_zone_attempts | integer | — | — e.g. 4 |
red_zone_conversions | integer | — | — e.g. 3 |
red_zone_percentage | decimal | — | — e.g. 100.0000 |
rushing_attempts | integer | — | — e.g. 25 |
rushing_tds | integer | — | — e.g. 0 |
rushing_yds | integer | — | — e.g. 96 |
rushing_yds_per_attempt | decimal | — | Rushing yards per attempt e.g. 4.0000 |
sack_yds | integer | — | — e.g. 0 |
sacked_percentage | decimal | — | Percentage of dropbacks resulting in sack e.g. 0.0000 |
sacks_allowed | integer | — | — e.g. 2 |
sacks_differential | integer | — | Sacks made minus sacks allowed e.g. 0 |
safeties | integer | — | — e.g. 0 |
score_ot | integer | — | Points scored in overtime e.g. 0 |
score_q1 | integer | — | Points scored in Q1 e.g. 0 |
score_q2 | integer | — | Points scored in Q2 e.g. 0 |
score_q3 | integer | — | Points scored in Q3 e.g. 0 |
score_q4 | integer | — | Points scored in Q4 e.g. 0 |
special_teams_team_snaps | integer | — | Total special teams snaps by team in game e.g. 275 |
tackles | integer | — | — e.g. 51 |
tackles_for_loss | integer | — | — e.g. 2 |
tfl_differential | integer | — | Tackles for loss made minus allowed e.g. 0 |
tfl_percentage | decimal | — | Percentage of plays resulting in TFL e.g. 0.0000 |
third_down_attempts | integer | — | — e.g. 13 |
third_down_conversions | integer | — | — e.g. 5 |
third_down_percentage | decimal | — | — e.g. 50.0000 |
tie | integer | — | — e.g. 0 |
time_of_possession | integer | — | — e.g. 1696 |
total_return_yds | integer | — | Total punt and kick return yards e.g. 0 |
total_yds | integer | — | — e.g. 367 |
touchdowns | integer | — | Total touchdowns scored e.g. 2 |
turnover_differential | integer | — | — e.g. 0 |
turnovers | integer | — | — e.g. 1 |
two_point_conversion_attempts | integer | — | — e.g. 0 |
two_point_conversions | integer | — | — e.g. 0 |
two_pt_conversion_returns | integer | — | Defensive two-point conversion returns e.g. 0 |
two_pt_pass_attempts | integer | — | Two-point conversion pass attempts e.g. 0 |
two_pt_pass_conversions | integer | — | Two-point conversion pass conversions e.g. 0 |
two_pt_rush_attempts | integer | — | Two-point conversion rush attempts e.g. 0 |
two_pt_rush_conversions | integer | — | Two-point conversion rush conversions e.g. 0 |
win | integer | — | — e.g. 0 |
yds_per_carry | decimal | — | — e.g. 4.0000 |
yds_per_completion | decimal | — | Passing yards per completion e.g. 11.0000 |
yds_per_pass_attempt | decimal | — | — e.g. 6.0000 |
yds_per_play | decimal | — | Average yards per offensive play e.g. 5.0000 |
projected_player_snaps
nfl.projected_player_snapsPre-kickoff projected and post-game realized offensive snaps, snap shares, touch rates, and volume opportunities for NFL players.
GET/api/v1/nfl/projected_player_snapsList projected_player_snaps for NFL
Requires one of:
game_id or player_id or season_id + week or season_id + team_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
player_idquerybigintoptionalFilter to a single player.
team_idquerybigintoptionalFilter by team.
season_idquerybigintoptionalFilter to a season by year (e.g., 2025). Defaults to current season.
weekqueryintegeroptionalFilter by NFL week number.
positionquerystringoptionalFilter by position (QB, RB, WR, TE, DST).
modequerystringoptionaldefault preTime wall. `pre` (default): each value as it stood at its game's kickoff; post-game fields are null. `full`: the latest value before week end (the first Tuesday 04:00 ET after the game), post-game fields included. See the Data timing guide. Values: pre, full.
limitqueryintegeroptionaldefault 100Page size. Defaults to 100; 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/projected_player_snaps?game_id=1'Responses
200projected_player_snaps rows matching the declared filter set, wrapped in { projected_player_snaps, 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(35 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 56 | |
player_id | bigint | — e.g. 1505 | |
season_id | bigint | — e.g. 2024 | |
team_id | bigint | — e.g. 3 | |
actual_pass_attempts | integernullable | — | Realized post-game actual pass attempts. e.g. 0 |
actual_pass_completions | integernullable | — | Realized post-game actual pass completions. e.g. 0 |
actual_receptions | integernullable | — | Realized post-game actual pass receptions. e.g. 0 |
actual_rush_attempts | integernullable | — | Realized post-game actual rushing attempts. e.g. 0 |
actual_snap_share | decimalnullable | — | Realized post-game actual snap share percentage. e.g. 0.0000 |
actual_snaps | integernullable | — | Realized post-game actual offensive snaps played. e.g. 0 |
actual_targets | integernullable | — | Realized post-game actual receiving targets. e.g. 0 |
actual_team_snaps | integernullable | — | Realized post-game actual total team offensive snaps. e.g. 56 |
as_of | timestamptz | — | Point in time the projection reflects (UTC). Set when the projection is published; a backfilled row is never later than its write time. e.g. 2026-09-19T21:45:25.265Z |
depth_order | integernullable | — | Official pre-game depth chart order (1 = starter, 2 = primary backup). e.g. 1 |
is_inactive | boolean | — | True if player was declared inactive prior to kickoff. Values:falsetrue |
is_starter | boolean | — | True if player is designated as the starter at kickoff. Values:truefalse |
position | string | — | Player position for this matchup (QB, RB, WR, TE, FB, DST). Values:WRRBTEQBDSTFB |
projected_pass_attempts | decimalnullable | — | Pre-kickoff projected pass attempts (QB only). e.g. 0.00 |
projected_pass_completions | decimalnullable | — | Pre-kickoff projected pass completions (QB only). e.g. 0.00 |
projected_receptions | decimalnullable | — | Pre-kickoff projected pass receptions. e.g. 0.00 |
projected_rush_attempts | decimalnullable | — | Pre-kickoff projected rushing attempts. e.g. 0.00 |
projected_rush_share | decimalnullable | — | Pre-kickoff projected percentage of team rushing attempts. e.g. 0.0101 |
projected_snap_share | decimal | — | Pre-kickoff projected percentage of team offensive snaps (0.0000 - 1.0000). e.g. 0.0000 |
projected_snaps | decimal | — | Pre-kickoff projected offensive snaps. e.g. 0.00 |
projected_target_share | decimalnullable | — | Pre-kickoff projected percentage of team targets. e.g. 0.1200 |
projected_targets | decimalnullable | — | Pre-kickoff projected receiving targets. e.g. 0.00 |
projected_team_snaps | decimal | — | Pre-kickoff projected total offensive snaps for the player's team. e.g. 62.00 |
rush_attempts_error | decimalnullable | — | Calibration error: actual_rush_attempts minus projected_rush_attempts. e.g. 0.00 |
snap_error | decimalnullable | — | Calibration error: actual_snaps minus projected_snaps. e.g. 0.00 |
snap_share_error | decimalnullable | — | Calibration error: actual_snap_share minus projected_snap_share. e.g. 0.0000 |
source | string | — | SOTA model source version (e.g. STAT_API_SOTA). e.g. STAT_API_SOTA |
targets_error | decimalnullable | — | Calibration error: actual_targets minus projected_targets. e.g. 0.00 |
touch_rate_per_snap | decimalnullable | — | Pre-kickoff projected touches (rushes + receptions) per offensive snap. e.g. 0.2800 |
week | integer | — | NFL regular season week number. e.g. 1 |
GET/api/v1/nfl/projected_player_snaps/{id}Get a single projected_player_snap by id
Parameters
idpathbigintrequiredPrimary key (id) of the projected_player_snap row.
modequerystringoptionaldefault preTime wall. `pre` (default): each value as it stood at its game's kickoff; post-game fields are null. `full`: the latest value before week end (the first Tuesday 04:00 ET after the game), post-game fields included. See the Data timing guide. Values: pre, full.
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/projected_player_snaps/{pk_value}'Responses
200Single projected_player_snap row.application/jsonshow example ▸
404Row not found.
Response Schema(35 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 56 | |
player_id | bigint | — e.g. 1505 | |
season_id | bigint | — e.g. 2024 | |
team_id | bigint | — e.g. 3 | |
actual_pass_attempts | integernullable | — | Realized post-game actual pass attempts. e.g. 0 |
actual_pass_completions | integernullable | — | Realized post-game actual pass completions. e.g. 0 |
actual_receptions | integernullable | — | Realized post-game actual pass receptions. e.g. 0 |
actual_rush_attempts | integernullable | — | Realized post-game actual rushing attempts. e.g. 0 |
actual_snap_share | decimalnullable | — | Realized post-game actual snap share percentage. e.g. 0.0000 |
actual_snaps | integernullable | — | Realized post-game actual offensive snaps played. e.g. 0 |
actual_targets | integernullable | — | Realized post-game actual receiving targets. e.g. 0 |
actual_team_snaps | integernullable | — | Realized post-game actual total team offensive snaps. e.g. 56 |
as_of | timestamptz | — | Point in time the projection reflects (UTC). Set when the projection is published; a backfilled row is never later than its write time. e.g. 2026-09-19T21:45:25.265Z |
depth_order | integernullable | — | Official pre-game depth chart order (1 = starter, 2 = primary backup). e.g. 1 |
is_inactive | boolean | — | True if player was declared inactive prior to kickoff. Values:falsetrue |
is_starter | boolean | — | True if player is designated as the starter at kickoff. Values:truefalse |
position | string | — | Player position for this matchup (QB, RB, WR, TE, FB, DST). Values:WRRBTEQBDSTFB |
projected_pass_attempts | decimalnullable | — | Pre-kickoff projected pass attempts (QB only). e.g. 0.00 |
projected_pass_completions | decimalnullable | — | Pre-kickoff projected pass completions (QB only). e.g. 0.00 |
projected_receptions | decimalnullable | — | Pre-kickoff projected pass receptions. e.g. 0.00 |
projected_rush_attempts | decimalnullable | — | Pre-kickoff projected rushing attempts. e.g. 0.00 |
projected_rush_share | decimalnullable | — | Pre-kickoff projected percentage of team rushing attempts. e.g. 0.0101 |
projected_snap_share | decimal | — | Pre-kickoff projected percentage of team offensive snaps (0.0000 - 1.0000). e.g. 0.0000 |
projected_snaps | decimal | — | Pre-kickoff projected offensive snaps. e.g. 0.00 |
projected_target_share | decimalnullable | — | Pre-kickoff projected percentage of team targets. e.g. 0.1200 |
projected_targets | decimalnullable | — | Pre-kickoff projected receiving targets. e.g. 0.00 |
projected_team_snaps | decimal | — | Pre-kickoff projected total offensive snaps for the player's team. e.g. 62.00 |
rush_attempts_error | decimalnullable | — | Calibration error: actual_rush_attempts minus projected_rush_attempts. e.g. 0.00 |
snap_error | decimalnullable | — | Calibration error: actual_snaps minus projected_snaps. e.g. 0.00 |
snap_share_error | decimalnullable | — | Calibration error: actual_snap_share minus projected_snap_share. e.g. 0.0000 |
source | string | — | SOTA model source version (e.g. STAT_API_SOTA). e.g. STAT_API_SOTA |
targets_error | decimalnullable | — | Calibration error: actual_targets minus projected_targets. e.g. 0.00 |
touch_rate_per_snap | decimalnullable | — | Pre-kickoff projected touches (rushes + receptions) per offensive snap. e.g. 0.2800 |
week | integer | — | NFL regular season week number. e.g. 1 |
projected_team_snaps
nfl.projected_team_snapsPre-kickoff projected and post-game realized pace, offensive plays, pass/run playcalling mix, and personnel rates for NFL teams.
GET/api/v1/nfl/projected_team_snapsList projected_team_snaps for NFL
Requires one of:
game_id or season_id + week or season_id + team_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
team_idquerybigintoptionalFilter by team.
season_idquerybigintoptionalFilter to a season by year (e.g., 2025). Defaults to current season.
weekqueryintegeroptionalFilter by NFL week number.
modequerystringoptionaldefault preTime wall. `pre` (default): each value as it stood at its game's kickoff; post-game fields are null. `full`: the latest value before week end (the first Tuesday 04:00 ET after the game), post-game fields included. See the Data timing guide. Values: pre, full.
limitqueryintegeroptionaldefault 50Page size. Defaults to 50; max 1000.
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/projected_team_snaps?game_id=1'Responses
200projected_team_snaps rows matching the declared filter set, wrapped in { projected_team_snaps, 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(33 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 141 | |
opponent_team_id | bigint | — e.g. 10 | |
season_id | bigint | — e.g. 2024 | |
team_id | bigint | — e.g. 23 | |
actual_defensive_snaps | integernullable | — | Realized post-game actual defensive plays faced. e.g. 61 |
actual_offensive_snaps | integernullable | — | Realized post-game actual offensive plays executed. e.g. 61 |
actual_pass_attempts | integernullable | — | Realized post-game actual pass attempts. e.g. 30 |
actual_pass_rate | decimalnullable | — | Realized post-game actual pass playcalling rate. e.g. 0.5000 |
actual_rush_attempts | integernullable | — | Realized post-game actual rushing attempts. e.g. 25 |
actual_rush_rate | decimalnullable | — | Realized post-game actual rush playcalling rate. e.g. 0.5000 |
as_of | timestamptz | — | Point in time the projection reflects (UTC). Set when the projection is published; a backfilled row is never later than its write time. e.g. 2026-09-19T21:45:25.265Z |
implied_team_total | decimalnullable | — | Pre-kickoff implied team points based on Vegas spread and total. e.g. 20.50 |
is_home | boolean | — | True if playing at home, false if away. Values:truefalse |
no_huddle_rate | decimalnullable | — | Pre-kickoff projected no-huddle rate percentage. e.g. 0.1000 |
pass_attempts_error | decimalnullable | — | Calibration error: actual_pass_attempts minus projected_pass_attempts. e.g. -3.63 |
pass_oe | decimalnullable | — | Pre-kickoff pass rate over expectation (PROE). e.g. 0.0000 |
projected_defensive_snaps | decimalnullable | — | Pre-kickoff projected team defensive snaps (opponent offensive snaps). e.g. 64.00 |
projected_offensive_snaps | decimal | — | Pre-kickoff projected team offensive plays/snaps. e.g. 63.40 |
projected_pass_attempts | decimal | — | Pre-kickoff projected team pass attempts. e.g. 33.32 |
projected_pass_rate | decimal | — | Pre-kickoff projected pass playcalling percentage (0.0000 - 1.0000). e.g. 0.5825 |
projected_personnel_11_rate | decimalnullable | — | Pre-kickoff projected 11-personnel grouping rate (1 RB, 1 TE, 3 WR). e.g. 0.6500 |
projected_personnel_12_rate | decimalnullable | — | Pre-kickoff projected 12-personnel grouping rate (1 RB, 2 TE, 2 WR). e.g. 0.2200 |
projected_personnel_21_rate | decimalnullable | — | Pre-kickoff projected 21-personnel grouping rate (2 RB, 1 TE, 2 WR). e.g. 0.0800 |
projected_rush_attempts | decimal | — | Pre-kickoff projected team rushing attempts. e.g. 26.26 |
projected_rush_rate | decimal | — | Pre-kickoff projected rush playcalling percentage (0.0000 - 1.0000). e.g. 0.4175 |
rush_attempts_error | decimalnullable | — | Calibration error: actual_rush_attempts minus projected_rush_attempts. e.g. -4.54 |
seconds_per_play | decimalnullable | — | Pre-kickoff projected pace in neutral-game seconds per offensive play. e.g. 27.5 |
snap_error | decimalnullable | — | Calibration error: actual_offensive_snaps minus projected_offensive_snaps. e.g. -3.62 |
source | string | — | SOTA model source version (e.g. STAT_API_SOTA). e.g. STAT_API_SOTA |
vegas_spread | decimalnullable | — | Pre-kickoff consensus closing spread from this team's perspective. e.g. 3.00 |
vegas_total | decimalnullable | — | Pre-kickoff consensus closing over/under game total. e.g. 44.50 |
week | integer | — | NFL regular season week number. e.g. 1 |
GET/api/v1/nfl/projected_team_snaps/{id}Get a single projected_team_snap by id
Parameters
idpathbigintrequiredPrimary key (id) of the projected_team_snap row.
modequerystringoptionaldefault preTime wall. `pre` (default): each value as it stood at its game's kickoff; post-game fields are null. `full`: the latest value before week end (the first Tuesday 04:00 ET after the game), post-game fields included. See the Data timing guide. Values: pre, full.
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/projected_team_snaps/{pk_value}'Responses
200Single projected_team_snap row.application/jsonshow example ▸
404Row not found.
Response Schema(33 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 141 | |
opponent_team_id | bigint | — e.g. 10 | |
season_id | bigint | — e.g. 2024 | |
team_id | bigint | — e.g. 23 | |
actual_defensive_snaps | integernullable | — | Realized post-game actual defensive plays faced. e.g. 61 |
actual_offensive_snaps | integernullable | — | Realized post-game actual offensive plays executed. e.g. 61 |
actual_pass_attempts | integernullable | — | Realized post-game actual pass attempts. e.g. 30 |
actual_pass_rate | decimalnullable | — | Realized post-game actual pass playcalling rate. e.g. 0.5000 |
actual_rush_attempts | integernullable | — | Realized post-game actual rushing attempts. e.g. 25 |
actual_rush_rate | decimalnullable | — | Realized post-game actual rush playcalling rate. e.g. 0.5000 |
as_of | timestamptz | — | Point in time the projection reflects (UTC). Set when the projection is published; a backfilled row is never later than its write time. e.g. 2026-09-19T21:45:25.265Z |
implied_team_total | decimalnullable | — | Pre-kickoff implied team points based on Vegas spread and total. e.g. 20.50 |
is_home | boolean | — | True if playing at home, false if away. Values:truefalse |
no_huddle_rate | decimalnullable | — | Pre-kickoff projected no-huddle rate percentage. e.g. 0.1000 |
pass_attempts_error | decimalnullable | — | Calibration error: actual_pass_attempts minus projected_pass_attempts. e.g. -3.63 |
pass_oe | decimalnullable | — | Pre-kickoff pass rate over expectation (PROE). e.g. 0.0000 |
projected_defensive_snaps | decimalnullable | — | Pre-kickoff projected team defensive snaps (opponent offensive snaps). e.g. 64.00 |
projected_offensive_snaps | decimal | — | Pre-kickoff projected team offensive plays/snaps. e.g. 63.40 |
projected_pass_attempts | decimal | — | Pre-kickoff projected team pass attempts. e.g. 33.32 |
projected_pass_rate | decimal | — | Pre-kickoff projected pass playcalling percentage (0.0000 - 1.0000). e.g. 0.5825 |
projected_personnel_11_rate | decimalnullable | — | Pre-kickoff projected 11-personnel grouping rate (1 RB, 1 TE, 3 WR). e.g. 0.6500 |
projected_personnel_12_rate | decimalnullable | — | Pre-kickoff projected 12-personnel grouping rate (1 RB, 2 TE, 2 WR). e.g. 0.2200 |
projected_personnel_21_rate | decimalnullable | — | Pre-kickoff projected 21-personnel grouping rate (2 RB, 1 TE, 2 WR). e.g. 0.0800 |
projected_rush_attempts | decimal | — | Pre-kickoff projected team rushing attempts. e.g. 26.26 |
projected_rush_rate | decimal | — | Pre-kickoff projected rush playcalling percentage (0.0000 - 1.0000). e.g. 0.4175 |
rush_attempts_error | decimalnullable | — | Calibration error: actual_rush_attempts minus projected_rush_attempts. e.g. -4.54 |
seconds_per_play | decimalnullable | — | Pre-kickoff projected pace in neutral-game seconds per offensive play. e.g. 27.5 |
snap_error | decimalnullable | — | Calibration error: actual_offensive_snaps minus projected_offensive_snaps. e.g. -3.62 |
source | string | — | SOTA model source version (e.g. STAT_API_SOTA). e.g. STAT_API_SOTA |
vegas_spread | decimalnullable | — | Pre-kickoff consensus closing spread from this team's perspective. e.g. 3.00 |
vegas_total | decimalnullable | — | Pre-kickoff consensus closing over/under game total. e.g. 44.50 |
week | integer | — | NFL regular season week number. e.g. 1 |
season_player_stats
nfl.season_player_statsSeason totals for each NFL player — passing, rushing, receiving, defensive, special-teams, and scoring stats accumulated across the year. Regular-season games only; playoff totals are not included.
GET/api/v1/nfl/season_player_statsList season_player_stats for NFL
Requires one of:
season_id or player_id — requests satisfying none of these return 400.Parameters
player_idquerybigintoptionalFilter to a single player.
season_idquerybigintoptionalFilter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
limitqueryintegeroptionaldefault 100Page size. Defaults to 100; 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/season_player_stats?season_id=2026'Responses
200season_player_stats rows matching the declared filter set, wrapped in { season_player_stats, 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(89 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
player_id | bigint | — e.g. 2 | |
season_id | bigint | — e.g. 2025 | |
completion_percentage | decimal | — | — e.g. 0.0000 |
completions | integer | — | — e.g. 0 |
defensive_tds | integer | — | — e.g. 0 |
extra_pts_attempted | integer | — | — e.g. 0 |
extra_pts_made | integer | — | — e.g. 0 |
fair_catches | integer | — | — e.g. 0 |
field_goal_percentage | decimal | — | — e.g. 0.0000 |
field_goals_attempted | integer | — | — e.g. 0 |
field_goals_made | integer | — | — e.g. 0 |
field_goals_made_0_19 | integer | — | — e.g. 0 |
field_goals_made_20_29 | integer | — | — e.g. 0 |
field_goals_made_30_39 | integer | — | — e.g. 0 |
field_goals_made_40_49 | integer | — | — e.g. 0 |
field_goals_made_50_plus | integer | — | — e.g. 0 |
forced_fumbles | integer | — | — e.g. 0 |
fumble_return_yds | integer | — | — e.g. 0 |
fumble_tds | integer | — | — e.g. 0 |
fumbles | integer | — | — e.g. 0 |
fumbles_lost | integer | — | — e.g. 0 |
fumbles_receiving | integer | — | — e.g. 0 |
fumbles_recovered | integer | — | — e.g. 0 |
fumbles_rushing | integer | — | — e.g. 0 |
games_played | integer | — | — e.g. 1 |
games_started | integer | — | — e.g. 0 |
interception_return_yds | integer | — | — e.g. 0 |
interception_tds | integer | — | — e.g. 0 |
interceptions_defense | integer | — | — e.g. 0 |
interceptions_thrown | integer | — | — e.g. 0 |
kick_return_average | decimal | — | — e.g. 0.0000 |
kick_return_tds | integer | — | — e.g. 0 |
kick_return_yds | integer | — | — e.g. 0 |
kick_returns | integer | — | — e.g. 0 |
longest_field_goal | integer | — | — e.g. 0 |
longest_kick_return | integer | — | — e.g. 0 |
longest_punt | integer | — | — e.g. 0 |
longest_punt_return | integer | — | — e.g. 0 |
longest_reception | integer | — | — e.g. 0 |
longest_rush | integer | — | — e.g. 0 |
pass_attempts | integer | — | — e.g. 0 |
passer_rating | decimal | — | — e.g. 0.0000 |
passes_defended | integer | — | — e.g. 0 |
passing_air_yds | integer | — | Total passing air yards e.g. 0 |
passing_first_downs | integer | — | Total passing first downs e.g. 0 |
passing_long | integer | — | Longest pass (season max) e.g. 0 |
passing_tds | integer | — | — e.g. 0 |
passing_yds | integer | — | — e.g. 0 |
passing_yds_after_catch | integer | — | Total YAC from passes e.g. 0 |
punt_average | decimal | — | — e.g. 0.0000 |
punt_net_average | decimal | — | — e.g. 0.0000 |
punt_return_average | decimal | — | — e.g. 0.0000 |
punt_return_tds | integer | — | — e.g. 0 |
punt_return_yds | integer | — | — e.g. 0 |
punt_returns | integer | — | — e.g. 0 |
punt_touchbacks | integer | — | — e.g. 0 |
punt_yds | integer | — | — e.g. 0 |
punts | integer | — | — e.g. 0 |
punts_blocked | integer | — | — e.g. 0 |
punts_inside_20 | integer | — | — e.g. 0 |
quarterback_hits | integer | — | — e.g. 0 |
receiving_air_yds | integer | — | Total receiving air yards e.g. 0 |
receiving_first_downs | integer | — | Total receiving first downs e.g. 0 |
receiving_fumbles_lost | integer | — | Total receiving fumbles lost e.g. 0 |
receiving_tds | integer | — | — e.g. 0 |
receiving_yds | integer | — | — e.g. 0 |
receiving_yds_after_catch | integer | — | Total receiving YAC e.g. 0 |
receptions | integer | — | — e.g. 0 |
rushing_attempts | integer | — | — e.g. 0 |
rushing_first_downs | integer | — | Total rushing first downs e.g. 0 |
rushing_fumbles_lost | integer | — | Total rushing fumbles lost e.g. 0 |
rushing_tds | integer | — | — e.g. 0 |
rushing_yds | integer | — | — e.g. 0 |
sack_fumbles | integer | — | Total fumbles on sacks e.g. 0 |
sack_fumbles_lost | integer | — | Total sack fumbles lost e.g. 0 |
sack_yds_lost | integer | — | — e.g. 0 |
sacks | decimal | — | — e.g. 0.0000 |
sacks_taken | integer | — | — e.g. 0 |
safeties | integer | — | — e.g. 0 |
special_teams_tds | integer | — | Total special teams touchdowns e.g. 0 |
tackles_assisted | integer | — | — e.g. 0 |
tackles_for_loss | integer | — | — e.g. 0 |
tackles_solo | integer | — | — e.g. 0 |
targets | integer | — | — e.g. 0 |
total_tackles | integer | — | — e.g. 0 |
yds_per_attempt | decimal | — | — e.g. 0.0000 |
yds_per_carry | decimal | — | — e.g. 0.0000 |
yds_per_reception | decimal | — | — e.g. 0.0000 |
GET/api/v1/nfl/season_player_stats/{id}Get a single season_player_stat by id
Parameters
idpathbigintrequiredPrimary key (id) of the season_player_stat 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/season_player_stats/{pk_value}'Responses
200Single season_player_stat row.application/jsonshow example ▸
404Row not found.
Response Schema(89 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
player_id | bigint | — e.g. 2 | |
season_id | bigint | — e.g. 2025 | |
completion_percentage | decimal | — | — e.g. 0.0000 |
completions | integer | — | — e.g. 0 |
defensive_tds | integer | — | — e.g. 0 |
extra_pts_attempted | integer | — | — e.g. 0 |
extra_pts_made | integer | — | — e.g. 0 |
fair_catches | integer | — | — e.g. 0 |
field_goal_percentage | decimal | — | — e.g. 0.0000 |
field_goals_attempted | integer | — | — e.g. 0 |
field_goals_made | integer | — | — e.g. 0 |
field_goals_made_0_19 | integer | — | — e.g. 0 |
field_goals_made_20_29 | integer | — | — e.g. 0 |
field_goals_made_30_39 | integer | — | — e.g. 0 |
field_goals_made_40_49 | integer | — | — e.g. 0 |
field_goals_made_50_plus | integer | — | — e.g. 0 |
forced_fumbles | integer | — | — e.g. 0 |
fumble_return_yds | integer | — | — e.g. 0 |
fumble_tds | integer | — | — e.g. 0 |
fumbles | integer | — | — e.g. 0 |
fumbles_lost | integer | — | — e.g. 0 |
fumbles_receiving | integer | — | — e.g. 0 |
fumbles_recovered | integer | — | — e.g. 0 |
fumbles_rushing | integer | — | — e.g. 0 |
games_played | integer | — | — e.g. 1 |
games_started | integer | — | — e.g. 0 |
interception_return_yds | integer | — | — e.g. 0 |
interception_tds | integer | — | — e.g. 0 |
interceptions_defense | integer | — | — e.g. 0 |
interceptions_thrown | integer | — | — e.g. 0 |
kick_return_average | decimal | — | — e.g. 0.0000 |
kick_return_tds | integer | — | — e.g. 0 |
kick_return_yds | integer | — | — e.g. 0 |
kick_returns | integer | — | — e.g. 0 |
longest_field_goal | integer | — | — e.g. 0 |
longest_kick_return | integer | — | — e.g. 0 |
longest_punt | integer | — | — e.g. 0 |
longest_punt_return | integer | — | — e.g. 0 |
longest_reception | integer | — | — e.g. 0 |
longest_rush | integer | — | — e.g. 0 |
pass_attempts | integer | — | — e.g. 0 |
passer_rating | decimal | — | — e.g. 0.0000 |
passes_defended | integer | — | — e.g. 0 |
passing_air_yds | integer | — | Total passing air yards e.g. 0 |
passing_first_downs | integer | — | Total passing first downs e.g. 0 |
passing_long | integer | — | Longest pass (season max) e.g. 0 |
passing_tds | integer | — | — e.g. 0 |
passing_yds | integer | — | — e.g. 0 |
passing_yds_after_catch | integer | — | Total YAC from passes e.g. 0 |
punt_average | decimal | — | — e.g. 0.0000 |
punt_net_average | decimal | — | — e.g. 0.0000 |
punt_return_average | decimal | — | — e.g. 0.0000 |
punt_return_tds | integer | — | — e.g. 0 |
punt_return_yds | integer | — | — e.g. 0 |
punt_returns | integer | — | — e.g. 0 |
punt_touchbacks | integer | — | — e.g. 0 |
punt_yds | integer | — | — e.g. 0 |
punts | integer | — | — e.g. 0 |
punts_blocked | integer | — | — e.g. 0 |
punts_inside_20 | integer | — | — e.g. 0 |
quarterback_hits | integer | — | — e.g. 0 |
receiving_air_yds | integer | — | Total receiving air yards e.g. 0 |
receiving_first_downs | integer | — | Total receiving first downs e.g. 0 |
receiving_fumbles_lost | integer | — | Total receiving fumbles lost e.g. 0 |
receiving_tds | integer | — | — e.g. 0 |
receiving_yds | integer | — | — e.g. 0 |
receiving_yds_after_catch | integer | — | Total receiving YAC e.g. 0 |
receptions | integer | — | — e.g. 0 |
rushing_attempts | integer | — | — e.g. 0 |
rushing_first_downs | integer | — | Total rushing first downs e.g. 0 |
rushing_fumbles_lost | integer | — | Total rushing fumbles lost e.g. 0 |
rushing_tds | integer | — | — e.g. 0 |
rushing_yds | integer | — | — e.g. 0 |
sack_fumbles | integer | — | Total fumbles on sacks e.g. 0 |
sack_fumbles_lost | integer | — | Total sack fumbles lost e.g. 0 |
sack_yds_lost | integer | — | — e.g. 0 |
sacks | decimal | — | — e.g. 0.0000 |
sacks_taken | integer | — | — e.g. 0 |
safeties | integer | — | — e.g. 0 |
special_teams_tds | integer | — | Total special teams touchdowns e.g. 0 |
tackles_assisted | integer | — | — e.g. 0 |
tackles_for_loss | integer | — | — e.g. 0 |
tackles_solo | integer | — | — e.g. 0 |
targets | integer | — | — e.g. 0 |
total_tackles | integer | — | — e.g. 0 |
yds_per_attempt | decimal | — | — e.g. 0.0000 |
yds_per_carry | decimal | — | — e.g. 0.0000 |
yds_per_reception | decimal | — | — e.g. 0.0000 |
Advanced Stats
coach_scheme_tendencies
nfl.coach_scheme_tendenciesAnalytical coaching scheme tendencies, tempo, neutral PROE, personnel grouping distributions (11/12/21/13), opportunity concentration, and situational playcalling tendencies computed with strict pre-kickoff timewalls.
GET/api/v1/nfl/coach_scheme_tendenciesList coach_scheme_tendencies for NFL
Requires one of:
season_id or team_id or game_id — requests satisfying none of these return 400.Parameters
season_idquerybigintoptionalFilter to a season by year (e.g., 2024 or 2025).
weekqueryintegeroptionalFilter by NFL regular season week number (1-18).
team_idquerybigintoptionalFilter by team.
game_idquerybigintoptionalFilter by game.
head_coachquerystringoptionalFilter by head coach name.
limitqueryintegeroptionaldefault 50Page size. Defaults to 50; max 1000.
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/coach_scheme_tendencies?season_id=2026'Responses
200coach_scheme_tendencies rows matching the declared filter set, wrapped in { coach_scheme_tendencies, 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(58 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigintnullable | — e.g. 52 | |
opponent_team_id | bigintnullable | — e.g. 4 | |
season_id | bigint | — e.g. 2024 | |
team_id | bigint | — e.g. 1 | |
as_of | timestamptz | — | Temporal timewall timestamp when metrics were computed. e.g. 2024-09-15T17:00:00.000Z |
avg_rb_capacity | decimalnullable | — | Average running backs on the field per offensive snap. e.g. 1.10 |
avg_te_capacity | decimalnullable | — | Average tight ends on the field per offensive snap. e.g. 1.25 |
avg_wr_capacity | decimalnullable | — | Average wide receivers on the field per offensive snap. e.g. 2.50 |
def_blitz_rate | decimalnullable | — | Rate of opponent dropbacks where 5 or more pass rushers were sent. e.g. 0.2500 |
def_cover_1_rate | decimalnullable | — | Rate of defensive snaps with Cover 1 (Man-Free) coverage shell. e.g. 0.2200 |
def_cover_2_rate | decimalnullable | — | Rate of defensive snaps with Cover 2 coverage shell. e.g. 0.1400 |
def_cover_3_rate | decimalnullable | — | Rate of defensive snaps with Cover 3 coverage shell. e.g. 0.3500 |
def_cover_4_rate | decimalnullable | — | Rate of defensive snaps with Cover 4 (Quarters) coverage shell. e.g. 0.0000 |
def_early_down_pass_rate_allowed | decimalnullable | — | Opponent pass play rate allowed on 1st and 2nd down. e.g. 0.5000 |
def_man_coverage_rate | decimalnullable | — | Rate of defensive pass coverage snaps played in Man coverage. e.g. 0.3500 |
def_neutral_pass_oe_allowed | decimalnullable | — | Opponent neutral pass rate over expected allowed in neutral game scripts (-6 to +6 score margin). e.g. -0.2311 |
def_pressure_rate | decimalnullable | — | Rate of opponent dropbacks where defensive pressure was generated. e.g. 0.3000 |
def_rb_target_rate_allowed | decimalnullable | — | Opponent target share allowed to Running Backs. e.g. 0.1667 |
def_rz_rush_rate_allowed | decimalnullable | — | Opponent designed rush rate allowed inside the 20-yard line (red zone). e.g. 0.5000 |
def_slot_target_rate_allowed | decimalnullable | — | Opponent middle/slot target share allowed. e.g. 0.2000 |
def_te_target_rate_allowed | decimalnullable | — | Opponent target share allowed to Tight Ends. e.g. 0.2222 |
def_two_high_shell_rate | decimalnullable | — | Rate of defensive snaps with Two-High safety shells (Cover 2, Cover 4, Cover 6, 2-Man). e.g. 0.4200 |
def_zone_coverage_rate | decimalnullable | — | Rate of defensive pass coverage snaps played in Zone coverage. e.g. 0.6500 |
defensive_coordinator | stringnullable | — | Team defensive coordinator. e.g. Nick Rallis |
early_down_pass_rate | decimalnullable | — | Pass play frequency on 1st and 2nd down. e.g. 0.5000 |
fourth_down_go_rate | decimalnullable | — | Fourth down aggressiveness rate of going for 4th down conversions in eligible situations. e.g. 0.0000 |
gl_rush_rate | decimalnullable | — | Designed rush play rate inside opponent 5-yard line (goal-to-go). e.g. 0.5000 |
head_coach | string | — | Team head coach. e.g. Jonathan Gannon |
leading_pass_oe | decimalnullable | — | Pass rate over expected when leading by 7+ points. e.g. -12.3105 |
leading_tempo_delta | decimalnullable | — | Seconds per play delta when leading by 7+ points vs neutral. e.g. 2.50 |
neutral_pass_oe | decimalnullable | — | Pass rate over expected in neutral game scripts (-6 to +6 score margin) in percentage points. e.g. -11.8521 |
no_huddle_rate | decimalnullable | — | Fraction of offensive plays run with no-huddle / hurry-up tempo. e.g. 0.0000 |
offensive_coordinator | stringnullable | — | Team offensive coordinator. e.g. Drew Petzing |
offensive_plays_per_game | decimalnullable | — | Average offensive snaps per game. e.g. 79.00 |
overall_pass_oe | decimalnullable | — | Pass rate over expected across all game situations in percentage points. e.g. -14.8083 |
primary_playcaller | stringnullable | — | Active primary offensive playcaller. e.g. Drew Petzing |
rate_11_personnel | decimalnullable | — | Fraction of offensive snaps in 11-personnel (1 RB, 1 TE, 3 WR). e.g. 0.6500 |
rate_12_personnel | decimalnullable | — | Fraction of offensive snaps in 12-personnel (1 RB, 2 TE, 2 WR). e.g. 0.2000 |
rate_13_personnel | decimalnullable | — | Fraction of offensive snaps in 13-personnel (1 RB, 3 TE, 1 WR). e.g. 0.0200 |
rate_21_personnel | decimalnullable | — | Fraction of offensive snaps in 21-personnel (2 RB, 1 TE, 2 WR). e.g. 0.0800 |
rb_bellcow_index | decimalnullable | — | Bellcow concentration index (0.0 to 1.0) measuring lead back monopoly over carries and snaps. e.g. 0.5675 |
rb1_carry_share | decimalnullable | — | Lead running back share of total team designed rush attempts. e.g. 0.5000 |
rb1_snap_share | decimalnullable | — | Lead running back share of total offensive snaps. e.g. 0.6500 |
rz_pass_rate | decimalnullable | — | Pass play rate inside opponent 20-yard line (red zone). e.g. 0.5000 |
rz_rush_rate | decimalnullable | — | Designed rush play rate inside opponent 20-yard line (red zone). e.g. 0.5000 |
sample_games | integer | — | Number of recent games in sample window. e.g. 2 |
seconds_per_play | decimalnullable | — | Average seconds between offensive plays across all game scripts. e.g. 27.50 |
seconds_per_play_neutral | decimalnullable | — | Seconds per play in neutral game scripts (score margin between -6 and +6). e.g. 28.00 |
slot_target_rate | decimalnullable | — | Fraction of team targets directed to slot-aligned receivers. e.g. 0.3200 |
te_archetype | stringnullable | — | Primary tight end deployment archetype (11_HEAVY, 12_HEAVY, 13_HEAVY, BALANCED). Values:HEAVY_12_PERSONNELSOLO_INLINE_MANDATESPREAD_MINIMAL |
third_down_pass_rate_long | decimalnullable | — | Pass frequency on 3rd down with > 3 yards to go. e.g. 1.0000 |
third_down_pass_rate_short | decimalnullable | — | Pass frequency on 3rd down with <= 3 yards to go. e.g. 0.5000 |
trailing_pass_oe | decimalnullable | — | Pass rate over expected when trailing by 7+ points. e.g. 5.3599 |
trailing_tempo_delta | decimalnullable | — | Seconds per play delta when trailing by 7+ points vs neutral. e.g. -2.50 |
week | integer | — | NFL regular season week number (1-18). e.g. 1 |
wr_triad_concentration | decimalnullable | — | Combined target share captured by top 3 wide receivers. e.g. 0.8800 |
wr1_target_share | decimalnullable | — | WR1 target share of team passing targets. e.g. 0.5000 |
GET/api/v1/nfl/coach_scheme_tendencies/{id}Get a single coach_scheme_tendency by id
Parameters
idpathbigintrequiredPrimary key (id) of the coach_scheme_tendency 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/coach_scheme_tendencies/{pk_value}'Responses
200Single coach_scheme_tendency row.application/jsonshow example ▸
404Row not found.
Response Schema(58 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigintnullable | — e.g. 52 | |
opponent_team_id | bigintnullable | — e.g. 4 | |
season_id | bigint | — e.g. 2024 | |
team_id | bigint | — e.g. 1 | |
as_of | timestamptz | — | Temporal timewall timestamp when metrics were computed. e.g. 2024-09-15T17:00:00.000Z |
avg_rb_capacity | decimalnullable | — | Average running backs on the field per offensive snap. e.g. 1.10 |
avg_te_capacity | decimalnullable | — | Average tight ends on the field per offensive snap. e.g. 1.25 |
avg_wr_capacity | decimalnullable | — | Average wide receivers on the field per offensive snap. e.g. 2.50 |
def_blitz_rate | decimalnullable | — | Rate of opponent dropbacks where 5 or more pass rushers were sent. e.g. 0.2500 |
def_cover_1_rate | decimalnullable | — | Rate of defensive snaps with Cover 1 (Man-Free) coverage shell. e.g. 0.2200 |
def_cover_2_rate | decimalnullable | — | Rate of defensive snaps with Cover 2 coverage shell. e.g. 0.1400 |
def_cover_3_rate | decimalnullable | — | Rate of defensive snaps with Cover 3 coverage shell. e.g. 0.3500 |
def_cover_4_rate | decimalnullable | — | Rate of defensive snaps with Cover 4 (Quarters) coverage shell. e.g. 0.0000 |
def_early_down_pass_rate_allowed | decimalnullable | — | Opponent pass play rate allowed on 1st and 2nd down. e.g. 0.5000 |
def_man_coverage_rate | decimalnullable | — | Rate of defensive pass coverage snaps played in Man coverage. e.g. 0.3500 |
def_neutral_pass_oe_allowed | decimalnullable | — | Opponent neutral pass rate over expected allowed in neutral game scripts (-6 to +6 score margin). e.g. -0.2311 |
def_pressure_rate | decimalnullable | — | Rate of opponent dropbacks where defensive pressure was generated. e.g. 0.3000 |
def_rb_target_rate_allowed | decimalnullable | — | Opponent target share allowed to Running Backs. e.g. 0.1667 |
def_rz_rush_rate_allowed | decimalnullable | — | Opponent designed rush rate allowed inside the 20-yard line (red zone). e.g. 0.5000 |
def_slot_target_rate_allowed | decimalnullable | — | Opponent middle/slot target share allowed. e.g. 0.2000 |
def_te_target_rate_allowed | decimalnullable | — | Opponent target share allowed to Tight Ends. e.g. 0.2222 |
def_two_high_shell_rate | decimalnullable | — | Rate of defensive snaps with Two-High safety shells (Cover 2, Cover 4, Cover 6, 2-Man). e.g. 0.4200 |
def_zone_coverage_rate | decimalnullable | — | Rate of defensive pass coverage snaps played in Zone coverage. e.g. 0.6500 |
defensive_coordinator | stringnullable | — | Team defensive coordinator. e.g. Nick Rallis |
early_down_pass_rate | decimalnullable | — | Pass play frequency on 1st and 2nd down. e.g. 0.5000 |
fourth_down_go_rate | decimalnullable | — | Fourth down aggressiveness rate of going for 4th down conversions in eligible situations. e.g. 0.0000 |
gl_rush_rate | decimalnullable | — | Designed rush play rate inside opponent 5-yard line (goal-to-go). e.g. 0.5000 |
head_coach | string | — | Team head coach. e.g. Jonathan Gannon |
leading_pass_oe | decimalnullable | — | Pass rate over expected when leading by 7+ points. e.g. -12.3105 |
leading_tempo_delta | decimalnullable | — | Seconds per play delta when leading by 7+ points vs neutral. e.g. 2.50 |
neutral_pass_oe | decimalnullable | — | Pass rate over expected in neutral game scripts (-6 to +6 score margin) in percentage points. e.g. -11.8521 |
no_huddle_rate | decimalnullable | — | Fraction of offensive plays run with no-huddle / hurry-up tempo. e.g. 0.0000 |
offensive_coordinator | stringnullable | — | Team offensive coordinator. e.g. Drew Petzing |
offensive_plays_per_game | decimalnullable | — | Average offensive snaps per game. e.g. 79.00 |
overall_pass_oe | decimalnullable | — | Pass rate over expected across all game situations in percentage points. e.g. -14.8083 |
primary_playcaller | stringnullable | — | Active primary offensive playcaller. e.g. Drew Petzing |
rate_11_personnel | decimalnullable | — | Fraction of offensive snaps in 11-personnel (1 RB, 1 TE, 3 WR). e.g. 0.6500 |
rate_12_personnel | decimalnullable | — | Fraction of offensive snaps in 12-personnel (1 RB, 2 TE, 2 WR). e.g. 0.2000 |
rate_13_personnel | decimalnullable | — | Fraction of offensive snaps in 13-personnel (1 RB, 3 TE, 1 WR). e.g. 0.0200 |
rate_21_personnel | decimalnullable | — | Fraction of offensive snaps in 21-personnel (2 RB, 1 TE, 2 WR). e.g. 0.0800 |
rb_bellcow_index | decimalnullable | — | Bellcow concentration index (0.0 to 1.0) measuring lead back monopoly over carries and snaps. e.g. 0.5675 |
rb1_carry_share | decimalnullable | — | Lead running back share of total team designed rush attempts. e.g. 0.5000 |
rb1_snap_share | decimalnullable | — | Lead running back share of total offensive snaps. e.g. 0.6500 |
rz_pass_rate | decimalnullable | — | Pass play rate inside opponent 20-yard line (red zone). e.g. 0.5000 |
rz_rush_rate | decimalnullable | — | Designed rush play rate inside opponent 20-yard line (red zone). e.g. 0.5000 |
sample_games | integer | — | Number of recent games in sample window. e.g. 2 |
seconds_per_play | decimalnullable | — | Average seconds between offensive plays across all game scripts. e.g. 27.50 |
seconds_per_play_neutral | decimalnullable | — | Seconds per play in neutral game scripts (score margin between -6 and +6). e.g. 28.00 |
slot_target_rate | decimalnullable | — | Fraction of team targets directed to slot-aligned receivers. e.g. 0.3200 |
te_archetype | stringnullable | — | Primary tight end deployment archetype (11_HEAVY, 12_HEAVY, 13_HEAVY, BALANCED). Values:HEAVY_12_PERSONNELSOLO_INLINE_MANDATESPREAD_MINIMAL |
third_down_pass_rate_long | decimalnullable | — | Pass frequency on 3rd down with > 3 yards to go. e.g. 1.0000 |
third_down_pass_rate_short | decimalnullable | — | Pass frequency on 3rd down with <= 3 yards to go. e.g. 0.5000 |
trailing_pass_oe | decimalnullable | — | Pass rate over expected when trailing by 7+ points. e.g. 5.3599 |
trailing_tempo_delta | decimalnullable | — | Seconds per play delta when trailing by 7+ points vs neutral. e.g. -2.50 |
week | integer | — | NFL regular season week number (1-18). e.g. 1 |
wr_triad_concentration | decimalnullable | — | Combined target share captured by top 3 wide receivers. e.g. 0.8800 |
wr1_target_share | decimalnullable | — | WR1 target share of team passing targets. e.g. 0.5000 |
game_player_firstdown_stats
nfl.game_player_firstdown_statsPer-game player stats restricted to first-down plays — the same first-down production breakouts as the season aggregate, for each individual game.
GET/api/v1/nfl/game_player_firstdown_statsList game_player_firstdown_stats for NFL
Requires one of:
game_id or player_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
player_idquerybigintoptionalFilter to a single player.
team_idquerybigintoptionalFilter by team.
opponent_team_idquerybigintoptionalFilter by opponent team.
positionquerystringoptionalFilter by player position. Values: DB, DEF, DL, LB, OL, QB, RB, TE, WR.
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_player_firstdown_stats?game_id=1'Responses
200game_player_firstdown_stats rows matching the declared filter set, wrapped in { game_player_firstdown_stats, 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(54 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 61 | |
opponent_team_id | bigint | — e.g. 10 | |
player_id | bigint | — e.g. 657 | |
team_id | bigint | — e.g. 9 | |
assisted_tackles | integer | — | Assisted tackles on first down e.g. 0 |
defensive_tds | integer | — | Total defensive touchdowns on first down e.g. 0 |
forced_fumbles | integer | — | Forced fumbles on first down e.g. 0 |
fumble_recovery_tds | integer | — | Fumble recovery touchdowns on first down e.g. 0 |
fumble_recovery_yds | integer | — | Fumble recovery yards on first down e.g. 0 |
fumbles | integer | — | Fumbles on first down e.g. 0 |
fumbles_lost | integer | — | Fumbles lost on first down e.g. 0 |
fumbles_recovered | integer | — | Fumbles recovered on first down e.g. 0 |
interception_tds | integer | — | Interception return touchdowns on first down e.g. 0 |
interception_yds | integer | — | Interception return yards on first down e.g. 0 |
interceptions | integer | — | Interceptions on first down e.g. 0 |
is_home | boolean | — | True if player's team is the home team Values:truefalse |
offensive_snaps | integer | — | Offensive snaps played on first down e.g. 0 |
offensive_tds | integer | — | Total offensive touchdowns on first down e.g. 0 |
passes_defended | integer | — | Passes defended on first down e.g. 0 |
passing_attempts | integer | — | Passing attempts on first down e.g. 0 |
passing_completion_percentage | decimal | — | Completion percentage on first down e.g. 0.0000 |
passing_completions | integer | — | Completed passes on first down e.g. 0 |
passing_interceptions | integer | — | Interceptions thrown on first down e.g. 0 |
passing_long | integer | — | Longest pass completion on first down e.g. 0 |
passing_rating | decimal | — | Passer rating on first down e.g. 0.0000 |
passing_sack_yds | integer | — | Yards lost to sacks on first down e.g. 0 |
passing_sacks | integer | — | Times sacked on first down e.g. 0 |
passing_tds | integer | — | Passing touchdowns on first down e.g. 0 |
passing_yds | integer | — | Passing yards on first down e.g. 0 |
passing_yds_per_attempt | decimal | — | Passing yards per attempt on first down e.g. 0.0000 |
passing_yds_per_completion | decimal | — | Passing yards per completion on first down e.g. 0.0000 |
position | string | — | Player position at time of game Values:WRRBTEQBDBDLLBDEFOL |
quarterback_hits | integer | — | QB hits on first down e.g. 0 |
receiving_long | integer | — | Longest reception on first down e.g. 0 |
receiving_tds | integer | — | Receiving touchdowns on first down e.g. 0 |
receiving_yds | integer | — | Receiving yards on first down e.g. 0 |
receiving_yds_per_reception | decimal | — | Yards per reception on first down e.g. 0.0000 |
receiving_yds_per_target | decimal | — | Receiving yards per target on first down e.g. 0.0000 |
reception_percentage | decimal | — | Reception percentage (receptions/targets) on first down e.g. 0.0000 |
receptions | integer | — | Receptions on first down e.g. 0 |
rushing_attempts | integer | — | Rushing attempts on first down e.g. 0 |
rushing_long | integer | — | Longest rush on first down e.g. 0 |
rushing_tds | integer | — | Rushing touchdowns on first down e.g. 0 |
rushing_yds | integer | — | Rushing yards on first down e.g. 0 |
rushing_yds_per_attempt | decimal | — | Rushing yards per attempt on first down e.g. 0.0000 |
sacks | decimal | — | Sacks on first down (0.5 for half sacks) e.g. 0.0000 |
solo_tackles | integer | — | Solo tackles on first down e.g. 0 |
tackles_for_loss | integer | — | Tackles for loss on first down e.g. 0 |
targets | integer | — | Times targeted on first down e.g. 0 |
total_tds | integer | — | Total touchdowns scored on first down e.g. 0 |
two_pt_pass_conversions | integer | — | — e.g. 0 |
two_pt_reception_conversions | integer | — | — e.g. 0 |
two_pt_rush_conversions | integer | — | — e.g. 0 |
GET/api/v1/nfl/game_player_firstdown_stats/{id}Get a single game_player_firstdown_stat by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_player_firstdown_stat 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_player_firstdown_stats/{pk_value}'Responses
200Single game_player_firstdown_stat row.application/jsonshow example ▸
404Row not found.
Response Schema(54 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 61 | |
opponent_team_id | bigint | — e.g. 10 | |
player_id | bigint | — e.g. 657 | |
team_id | bigint | — e.g. 9 | |
assisted_tackles | integer | — | Assisted tackles on first down e.g. 0 |
defensive_tds | integer | — | Total defensive touchdowns on first down e.g. 0 |
forced_fumbles | integer | — | Forced fumbles on first down e.g. 0 |
fumble_recovery_tds | integer | — | Fumble recovery touchdowns on first down e.g. 0 |
fumble_recovery_yds | integer | — | Fumble recovery yards on first down e.g. 0 |
fumbles | integer | — | Fumbles on first down e.g. 0 |
fumbles_lost | integer | — | Fumbles lost on first down e.g. 0 |
fumbles_recovered | integer | — | Fumbles recovered on first down e.g. 0 |
interception_tds | integer | — | Interception return touchdowns on first down e.g. 0 |
interception_yds | integer | — | Interception return yards on first down e.g. 0 |
interceptions | integer | — | Interceptions on first down e.g. 0 |
is_home | boolean | — | True if player's team is the home team Values:truefalse |
offensive_snaps | integer | — | Offensive snaps played on first down e.g. 0 |
offensive_tds | integer | — | Total offensive touchdowns on first down e.g. 0 |
passes_defended | integer | — | Passes defended on first down e.g. 0 |
passing_attempts | integer | — | Passing attempts on first down e.g. 0 |
passing_completion_percentage | decimal | — | Completion percentage on first down e.g. 0.0000 |
passing_completions | integer | — | Completed passes on first down e.g. 0 |
passing_interceptions | integer | — | Interceptions thrown on first down e.g. 0 |
passing_long | integer | — | Longest pass completion on first down e.g. 0 |
passing_rating | decimal | — | Passer rating on first down e.g. 0.0000 |
passing_sack_yds | integer | — | Yards lost to sacks on first down e.g. 0 |
passing_sacks | integer | — | Times sacked on first down e.g. 0 |
passing_tds | integer | — | Passing touchdowns on first down e.g. 0 |
passing_yds | integer | — | Passing yards on first down e.g. 0 |
passing_yds_per_attempt | decimal | — | Passing yards per attempt on first down e.g. 0.0000 |
passing_yds_per_completion | decimal | — | Passing yards per completion on first down e.g. 0.0000 |
position | string | — | Player position at time of game Values:WRRBTEQBDBDLLBDEFOL |
quarterback_hits | integer | — | QB hits on first down e.g. 0 |
receiving_long | integer | — | Longest reception on first down e.g. 0 |
receiving_tds | integer | — | Receiving touchdowns on first down e.g. 0 |
receiving_yds | integer | — | Receiving yards on first down e.g. 0 |
receiving_yds_per_reception | decimal | — | Yards per reception on first down e.g. 0.0000 |
receiving_yds_per_target | decimal | — | Receiving yards per target on first down e.g. 0.0000 |
reception_percentage | decimal | — | Reception percentage (receptions/targets) on first down e.g. 0.0000 |
receptions | integer | — | Receptions on first down e.g. 0 |
rushing_attempts | integer | — | Rushing attempts on first down e.g. 0 |
rushing_long | integer | — | Longest rush on first down e.g. 0 |
rushing_tds | integer | — | Rushing touchdowns on first down e.g. 0 |
rushing_yds | integer | — | Rushing yards on first down e.g. 0 |
rushing_yds_per_attempt | decimal | — | Rushing yards per attempt on first down e.g. 0.0000 |
sacks | decimal | — | Sacks on first down (0.5 for half sacks) e.g. 0.0000 |
solo_tackles | integer | — | Solo tackles on first down e.g. 0 |
tackles_for_loss | integer | — | Tackles for loss on first down e.g. 0 |
targets | integer | — | Times targeted on first down e.g. 0 |
total_tds | integer | — | Total touchdowns scored on first down e.g. 0 |
two_pt_pass_conversions | integer | — | — e.g. 0 |
two_pt_reception_conversions | integer | — | — e.g. 0 |
two_pt_rush_conversions | integer | — | — e.g. 0 |
game_player_ngs_passings
nfl.game_player_ngs_passingsNFL Next Gen Stats for quarterbacks per game — RFID-tracked passing metrics like time to throw, average depth of target, completed air yards, on-target throw rate, and aggressiveness against tight coverage.
GET/api/v1/nfl/game_player_ngs_passingsList game_player_ngs_passings for NFL
Requires one of:
game_id or player_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
player_idquerybigintoptionalFilter to a single player.
team_idquerybigintoptionalFilter by team.
seasonqueryintegeroptionalFilter by season start year.
weekqueryintegeroptionalFilter by week of the season.
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_player_ngs_passings?game_id=1'Responses
200game_player_ngs_passings rows matching the declared filter set, wrapped in { game_player_ngs_passings, 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(26 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 121 | |
player_gsis_id | string | — | GSIS ID for cross-reference e.g. 00-0034857 |
player_id | bigint | — e.g. 689 | |
team_id | bigint | — e.g. 28 | |
aggressiveness | decimalnullable | — | Percentage of throws into tight windows (defender within 1 yard) e.g. 16.6667 |
attempts | integernullable | — | — e.g. 30 |
avg_air_distance | decimalnullable | — | Average ball travel distance on all attempts e.g. 20.1294 |
avg_air_yds_differential | decimalnullable | — | Difference between intended and completed air yards e.g. -0.8631 |
avg_air_yds_to_sticks | decimalnullable | — | Average air yards relative to first down marker e.g. -3.6553 |
avg_completed_air_yds | decimalnullable | — | Average air yards on completed passes e.g. 7.1294 |
avg_intended_air_yds | decimalnullable | — | Average air yards on all pass attempts e.g. 7.2488 |
avg_time_to_throw | decimalnullable | — | Average time from snap to throw (seconds) e.g. 2.8413 |
completion_percentage | decimalnullable | — | — e.g. 66.6667 |
completion_percentage_above_expectation | decimalnullable | — | CPOE - Actual completion % minus expected (positive = better than expected) e.g. 12.5840 |
completions | integernullable | — | — e.g. 22 |
expected_completion_percentage | decimalnullable | — | Model-predicted completion percentage based on throw difficulty e.g. 67.4160 |
interceptions | integernullable | — | — e.g. 0 |
max_air_distance | decimalnullable | — | Maximum ball travel distance e.g. 42.0642 |
max_completed_air_distance | decimalnullable | — | Longest completed pass distance (ball travel) e.g. 38.0455 |
pass_tds | integernullable | — | — e.g. 1 |
pass_yds | integernullable | — | — e.g. 235 |
passer_rating | decimalnullable | — | — e.g. 158.3333 |
season | integer | — | — e.g. 2024 |
season_type | string | — | Canonical season phase. e.g. regular_season |
week | integer | — | — e.g. 1 |
GET/api/v1/nfl/game_player_ngs_passings/{id}Get a single game_player_ngs_passing by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_player_ngs_passing 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_player_ngs_passings/{pk_value}'Responses
200Single game_player_ngs_passing row.application/jsonshow example ▸
404Row not found.
Response Schema(26 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 121 | |
player_gsis_id | string | — | GSIS ID for cross-reference e.g. 00-0034857 |
player_id | bigint | — e.g. 689 | |
team_id | bigint | — e.g. 28 | |
aggressiveness | decimalnullable | — | Percentage of throws into tight windows (defender within 1 yard) e.g. 16.6667 |
attempts | integernullable | — | — e.g. 30 |
avg_air_distance | decimalnullable | — | Average ball travel distance on all attempts e.g. 20.1294 |
avg_air_yds_differential | decimalnullable | — | Difference between intended and completed air yards e.g. -0.8631 |
avg_air_yds_to_sticks | decimalnullable | — | Average air yards relative to first down marker e.g. -3.6553 |
avg_completed_air_yds | decimalnullable | — | Average air yards on completed passes e.g. 7.1294 |
avg_intended_air_yds | decimalnullable | — | Average air yards on all pass attempts e.g. 7.2488 |
avg_time_to_throw | decimalnullable | — | Average time from snap to throw (seconds) e.g. 2.8413 |
completion_percentage | decimalnullable | — | — e.g. 66.6667 |
completion_percentage_above_expectation | decimalnullable | — | CPOE - Actual completion % minus expected (positive = better than expected) e.g. 12.5840 |
completions | integernullable | — | — e.g. 22 |
expected_completion_percentage | decimalnullable | — | Model-predicted completion percentage based on throw difficulty e.g. 67.4160 |
interceptions | integernullable | — | — e.g. 0 |
max_air_distance | decimalnullable | — | Maximum ball travel distance e.g. 42.0642 |
max_completed_air_distance | decimalnullable | — | Longest completed pass distance (ball travel) e.g. 38.0455 |
pass_tds | integernullable | — | — e.g. 1 |
pass_yds | integernullable | — | — e.g. 235 |
passer_rating | decimalnullable | — | — e.g. 158.3333 |
season | integer | — | — e.g. 2024 |
season_type | string | — | Canonical season phase. e.g. regular_season |
week | integer | — | — e.g. 1 |
game_player_ngs_receivings
nfl.game_player_ngs_receivingsNFL Next Gen Stats for receivers per game — RFID-tracked receiving metrics like separation at the throw, cushion at the snap, target separation, and yards over expected.
GET/api/v1/nfl/game_player_ngs_receivingsList game_player_ngs_receivings for NFL
Requires one of:
game_id or player_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
player_idquerybigintoptionalFilter to a single player.
team_idquerybigintoptionalFilter by team.
seasonqueryintegeroptionalFilter by season start year.
weekqueryintegeroptionalFilter by week of the season.
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_player_ngs_receivings?game_id=1'Responses
200game_player_ngs_receivings rows matching the declared filter set, wrapped in { game_player_ngs_receivings, 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(20 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 42034 | |
player_gsis_id | string | — | GSIS ID for cross-reference e.g. 00-0036322 |
player_id | bigint | — e.g. 1156 | |
team_id | bigint | — e.g. 9 | |
avg_cushion | decimalnullable | — | Average distance from nearest defender at snap (yards) e.g. 6.3400 |
avg_expected_yac | decimalnullable | — | Model-predicted YAC based on catch location/defenders e.g. 0.0000 |
avg_intended_air_yds | decimalnullable | — | Average depth of targets e.g. 13.6800 |
avg_separation | decimalnullable | — | Average distance from nearest defender at catch point (yards) e.g. 2.2577 |
avg_yac | decimalnullable | — | Average yards after catch e.g. 0.0000 |
avg_yac_above_expectation | decimalnullable | — | Actual YAC minus expected (positive = creates extra yards) e.g. 0.0000 |
catch_percentage | decimalnullable | — | — e.g. 66.6667 |
percent_share_of_intended_air_yds | decimalnullable | — | Percentage of team total intended air yards (deep target share) e.g. 24.4521 |
rec_tds | integernullable | — | — e.g. 0 |
receptions | integernullable | — | — e.g. 4 |
season | integer | — | — e.g. 2020 |
season_type | string | — | Canonical season phase. e.g. regular_season |
targets | integernullable | — | — e.g. 5 |
week | integer | — | — e.g. 1 |
yards | integernullable | — | — e.g. 41 |
GET/api/v1/nfl/game_player_ngs_receivings/{id}Get a single game_player_ngs_receiving by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_player_ngs_receiving 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_player_ngs_receivings/{pk_value}'Responses
200Single game_player_ngs_receiving row.application/jsonshow example ▸
404Row not found.
Response Schema(20 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 42034 | |
player_gsis_id | string | — | GSIS ID for cross-reference e.g. 00-0036322 |
player_id | bigint | — e.g. 1156 | |
team_id | bigint | — e.g. 9 | |
avg_cushion | decimalnullable | — | Average distance from nearest defender at snap (yards) e.g. 6.3400 |
avg_expected_yac | decimalnullable | — | Model-predicted YAC based on catch location/defenders e.g. 0.0000 |
avg_intended_air_yds | decimalnullable | — | Average depth of targets e.g. 13.6800 |
avg_separation | decimalnullable | — | Average distance from nearest defender at catch point (yards) e.g. 2.2577 |
avg_yac | decimalnullable | — | Average yards after catch e.g. 0.0000 |
avg_yac_above_expectation | decimalnullable | — | Actual YAC minus expected (positive = creates extra yards) e.g. 0.0000 |
catch_percentage | decimalnullable | — | — e.g. 66.6667 |
percent_share_of_intended_air_yds | decimalnullable | — | Percentage of team total intended air yards (deep target share) e.g. 24.4521 |
rec_tds | integernullable | — | — e.g. 0 |
receptions | integernullable | — | — e.g. 4 |
season | integer | — | — e.g. 2020 |
season_type | string | — | Canonical season phase. e.g. regular_season |
targets | integernullable | — | — e.g. 5 |
week | integer | — | — e.g. 1 |
yards | integernullable | — | — e.g. 41 |
game_player_ngs_rushings
nfl.game_player_ngs_rushingsNFL Next Gen Stats for ball carriers per game — RFID-tracked rushing metrics like efficiency, expected rushing yards, rushing yards over expected, and time behind the line of scrimmage.
GET/api/v1/nfl/game_player_ngs_rushingsList game_player_ngs_rushings for NFL
Requires one of:
game_id or player_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
player_idquerybigintoptionalFilter to a single player.
team_idquerybigintoptionalFilter by team.
seasonqueryintegeroptionalFilter by season start year.
weekqueryintegeroptionalFilter by week of the season.
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_player_ngs_rushings?game_id=1'Responses
200game_player_ngs_rushings rows matching the declared filter set, wrapped in { game_player_ngs_rushings, 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(19 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 4904 | |
player_gsis_id | string | — | GSIS ID for cross-reference e.g. 00-0032764 |
player_id | bigint | — e.g. 252 | |
team_id | bigint | — e.g. 11 | |
avg_rush_yds | decimalnullable | — | — e.g. 4.0000 |
avg_time_to_los | decimalnullable | — | Average time to reach line of scrimmage (seconds) e.g. 2.6169 |
efficiency | decimalnullable | — | Distance traveled per rushing yard gained (lower = more efficient) e.g. 3.5208 |
expected_rush_yds | decimalnullable | — | Model-predicted rushing yards based on blocking/defense e.g. 46.0428 |
percent_attempts_gte_eight_defenders | decimalnullable | — | Percentage of rushes facing 8+ defenders in box e.g. 0.0000 |
rush_attempts | integernullable | — | — e.g. 10 |
rush_pct_over_expected | decimalnullable | — | RYOE as percentage over expected e.g. 0.5000 |
rush_tds | integernullable | — | — e.g. 0 |
rush_yds | integernullable | — | — e.g. 45 |
rush_yds_over_expected | decimalnullable | — | RYOE - Actual yards minus expected (positive = better) e.g. 37.9572 |
rush_yds_over_expected_per_att | decimalnullable | — | RYOE per attempt e.g. -0.6101 |
season | integer | — | — e.g. 2025 |
season_type | string | — | Canonical season phase. e.g. regular_season |
week | integer | — | — e.g. 1 |
GET/api/v1/nfl/game_player_ngs_rushings/{id}Get a single game_player_ngs_rushing by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_player_ngs_rushing 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_player_ngs_rushings/{pk_value}'Responses
200Single game_player_ngs_rushing row.application/jsonshow example ▸
404Row not found.
Response Schema(19 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 4904 | |
player_gsis_id | string | — | GSIS ID for cross-reference e.g. 00-0032764 |
player_id | bigint | — e.g. 252 | |
team_id | bigint | — e.g. 11 | |
avg_rush_yds | decimalnullable | — | — e.g. 4.0000 |
avg_time_to_los | decimalnullable | — | Average time to reach line of scrimmage (seconds) e.g. 2.6169 |
efficiency | decimalnullable | — | Distance traveled per rushing yard gained (lower = more efficient) e.g. 3.5208 |
expected_rush_yds | decimalnullable | — | Model-predicted rushing yards based on blocking/defense e.g. 46.0428 |
percent_attempts_gte_eight_defenders | decimalnullable | — | Percentage of rushes facing 8+ defenders in box e.g. 0.0000 |
rush_attempts | integernullable | — | — e.g. 10 |
rush_pct_over_expected | decimalnullable | — | RYOE as percentage over expected e.g. 0.5000 |
rush_tds | integernullable | — | — e.g. 0 |
rush_yds | integernullable | — | — e.g. 45 |
rush_yds_over_expected | decimalnullable | — | RYOE - Actual yards minus expected (positive = better) e.g. 37.9572 |
rush_yds_over_expected_per_att | decimalnullable | — | RYOE per attempt e.g. -0.6101 |
season | integer | — | — e.g. 2025 |
season_type | string | — | Canonical season phase. e.g. regular_season |
week | integer | — | — e.g. 1 |
game_player_pfr_advstats
nfl.game_player_pfr_advstatsPer-game advanced player stats in the Pro Football Reference tradition — drop rates, time under pressure, yards before and after contact, broken tackles, passer rating allowed in coverage.
GET/api/v1/nfl/game_player_pfr_advstatsList game_player_pfr_advstats for NFL
Requires one of:
game_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
player_idquerybigintoptionalFilter to a single player.
team_idquerybigintoptionalFilter by team.
opponent_team_idquerybigintoptionalFilter by opponent team.
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_player_pfr_advstats?game_id=1'Responses
200game_player_pfr_advstats rows matching the declared filter set, wrapped in { game_player_pfr_advstats, 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(46 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 57 | |
opponent_team_id | bigint | Opposing team in this matchup (FK to `teams`). e.g. 10 | |
player_id | bigint | — e.g. 657 | |
team_id | bigint | — e.g. 10 | |
carries | integernullable | — | Rushing attempts. e.g. 0 |
def_adot | decimalnullable | — | Average depth of target (yards) when this defender was in coverage. e.g. 0.0000 |
def_air_yds_completed | integernullable | — | Air yards completed on receptions allowed. e.g. 0 |
def_completion_pct | decimalnullable | — | Completion percentage allowed (0.0-100.0). e.g. 0.0000 |
def_completions_allowed | integernullable | — | Receptions allowed in coverage. e.g. 0 |
def_ints | integernullable | — | Interceptions made by this defender in coverage. e.g. 0 |
def_missed_tackle_pct | decimalnullable | — | Missed-tackle rate on tackle opportunities (0.0-100.0). e.g. 0.0000 |
def_missed_tackles | integernullable | — | Tackle attempts missed by this defender. e.g. 0 |
def_passer_rating_allowed | decimalnullable | — | Passer rating allowed when targeted (0-158.3). e.g. 0.0000 |
def_pressures | integernullable | — | Total pressures generated (hurries + hits + sacks). e.g. 0 |
def_receiving_td_allowed | integernullable | — | Receiving touchdowns allowed in coverage. e.g. 0 |
def_sacks | decimalnullable | — | Sacks recorded (half-sacks supported as decimals). e.g. 0.0000 |
def_tackles_combined | integernullable | — | Combined tackles (solo + assisted). e.g. 0 |
def_targets | integernullable | — | Pass targets thrown at this defender's coverage assignment. e.g. 0 |
def_times_blitzed | integernullable | — | Pass-rushing snaps as a blitzer. e.g. 0 |
def_times_hitqb | integernullable | — | QB hits generated as a pass rusher. e.g. 0 |
def_times_hurried | integernullable | — | Hurries generated as a pass rusher. e.g. 0 |
def_yds_after_catch | integernullable | — | Yards-after-catch allowed in coverage. e.g. 0 |
def_yds_allowed | integernullable | — | Receiving yards allowed in coverage. e.g. 0 |
def_yds_allowed_per_cmp | decimalnullable | — | Yards allowed per reception. e.g. 0.0000 |
def_yds_allowed_per_tgt | decimalnullable | — | Yards allowed per target. e.g. 0.0000 |
passing_bad_throw_pct | decimalnullable | — | Bad-throw rate on pass attempts (0.0-100.0). e.g. 0.0000 |
passing_bad_throws | integernullable | — | Pass attempts charged as bad throws by PFR scoring. e.g. 0 |
passing_drop_pct | decimalnullable | — | Drop rate on catchable passes (0.0-100.0). e.g. 0.0000 |
passing_drops | integernullable | — | Pass attempts dropped by the receiver (charged to the QB's catchable-target count). e.g. 0 |
receiving_broken_tackles | integernullable | — | Tackles the receiver broke on receiving plays. e.g. 0 |
receiving_drop | integernullable | — | Drops charged to this receiver. e.g. 0 |
receiving_drop_pct | decimalnullable | — | Receiver drop rate on catchable targets (0.0-100.0). e.g. 0.0000 |
receiving_int | integernullable | — | Interceptions thrown when this player was the target. e.g. 0 |
receiving_rat | decimalnullable | — | Passer rating generated when targeted (0-158.3). e.g. 0.0000 |
rushing_broken_tackles | integernullable | — | Tackles the runner broke on rushing plays. e.g. 0 |
rushing_yds_after_contact | integernullable | — | Total rushing yards gained after first contact. e.g. 0 |
rushing_yds_after_contact_avg | decimalnullable | — | Yards after contact averaged per rush. e.g. 0.0000 |
rushing_yds_before_contact | integernullable | — | Total rushing yards gained before first contact. e.g. 0 |
rushing_yds_before_contact_avg | decimalnullable | — | Yards before contact averaged per rush. e.g. 0.0000 |
times_blitzed | integernullable | — | Dropbacks the QB faced a blitz. e.g. 0 |
times_hit | integernullable | — | QB hits (defender contacted the QB on the throw). e.g. 0 |
times_hurried | integernullable | — | Dropbacks the QB was hurried but not pressured. e.g. 0 |
times_pressured | integernullable | — | Total pressures faced (sum of hurries/hits/sacks-allowed indicators). e.g. 0 |
times_pressured_pct | decimalnullable | — | Pressure rate per dropback (0.0-100.0). e.g. 0.0000 |
times_sacked | integernullable | — | Sacks taken by this QB. e.g. 0 |
GET/api/v1/nfl/game_player_pfr_advstats/{id}Get a single game_player_pfr_advstat by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_player_pfr_advstat 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_player_pfr_advstats/{pk_value}'Responses
200Single game_player_pfr_advstat row.application/jsonshow example ▸
404Row not found.
Response Schema(46 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 57 | |
opponent_team_id | bigint | Opposing team in this matchup (FK to `teams`). e.g. 10 | |
player_id | bigint | — e.g. 657 | |
team_id | bigint | — e.g. 10 | |
carries | integernullable | — | Rushing attempts. e.g. 0 |
def_adot | decimalnullable | — | Average depth of target (yards) when this defender was in coverage. e.g. 0.0000 |
def_air_yds_completed | integernullable | — | Air yards completed on receptions allowed. e.g. 0 |
def_completion_pct | decimalnullable | — | Completion percentage allowed (0.0-100.0). e.g. 0.0000 |
def_completions_allowed | integernullable | — | Receptions allowed in coverage. e.g. 0 |
def_ints | integernullable | — | Interceptions made by this defender in coverage. e.g. 0 |
def_missed_tackle_pct | decimalnullable | — | Missed-tackle rate on tackle opportunities (0.0-100.0). e.g. 0.0000 |
def_missed_tackles | integernullable | — | Tackle attempts missed by this defender. e.g. 0 |
def_passer_rating_allowed | decimalnullable | — | Passer rating allowed when targeted (0-158.3). e.g. 0.0000 |
def_pressures | integernullable | — | Total pressures generated (hurries + hits + sacks). e.g. 0 |
def_receiving_td_allowed | integernullable | — | Receiving touchdowns allowed in coverage. e.g. 0 |
def_sacks | decimalnullable | — | Sacks recorded (half-sacks supported as decimals). e.g. 0.0000 |
def_tackles_combined | integernullable | — | Combined tackles (solo + assisted). e.g. 0 |
def_targets | integernullable | — | Pass targets thrown at this defender's coverage assignment. e.g. 0 |
def_times_blitzed | integernullable | — | Pass-rushing snaps as a blitzer. e.g. 0 |
def_times_hitqb | integernullable | — | QB hits generated as a pass rusher. e.g. 0 |
def_times_hurried | integernullable | — | Hurries generated as a pass rusher. e.g. 0 |
def_yds_after_catch | integernullable | — | Yards-after-catch allowed in coverage. e.g. 0 |
def_yds_allowed | integernullable | — | Receiving yards allowed in coverage. e.g. 0 |
def_yds_allowed_per_cmp | decimalnullable | — | Yards allowed per reception. e.g. 0.0000 |
def_yds_allowed_per_tgt | decimalnullable | — | Yards allowed per target. e.g. 0.0000 |
passing_bad_throw_pct | decimalnullable | — | Bad-throw rate on pass attempts (0.0-100.0). e.g. 0.0000 |
passing_bad_throws | integernullable | — | Pass attempts charged as bad throws by PFR scoring. e.g. 0 |
passing_drop_pct | decimalnullable | — | Drop rate on catchable passes (0.0-100.0). e.g. 0.0000 |
passing_drops | integernullable | — | Pass attempts dropped by the receiver (charged to the QB's catchable-target count). e.g. 0 |
receiving_broken_tackles | integernullable | — | Tackles the receiver broke on receiving plays. e.g. 0 |
receiving_drop | integernullable | — | Drops charged to this receiver. e.g. 0 |
receiving_drop_pct | decimalnullable | — | Receiver drop rate on catchable targets (0.0-100.0). e.g. 0.0000 |
receiving_int | integernullable | — | Interceptions thrown when this player was the target. e.g. 0 |
receiving_rat | decimalnullable | — | Passer rating generated when targeted (0-158.3). e.g. 0.0000 |
rushing_broken_tackles | integernullable | — | Tackles the runner broke on rushing plays. e.g. 0 |
rushing_yds_after_contact | integernullable | — | Total rushing yards gained after first contact. e.g. 0 |
rushing_yds_after_contact_avg | decimalnullable | — | Yards after contact averaged per rush. e.g. 0.0000 |
rushing_yds_before_contact | integernullable | — | Total rushing yards gained before first contact. e.g. 0 |
rushing_yds_before_contact_avg | decimalnullable | — | Yards before contact averaged per rush. e.g. 0.0000 |
times_blitzed | integernullable | — | Dropbacks the QB faced a blitz. e.g. 0 |
times_hit | integernullable | — | QB hits (defender contacted the QB on the throw). e.g. 0 |
times_hurried | integernullable | — | Dropbacks the QB was hurried but not pressured. e.g. 0 |
times_pressured | integernullable | — | Total pressures faced (sum of hurries/hits/sacks-allowed indicators). e.g. 0 |
times_pressured_pct | decimalnullable | — | Pressure rate per dropback (0.0-100.0). e.g. 0.0000 |
times_sacked | integernullable | — | Sacks taken by this QB. e.g. 0 |
game_player_redzone_stats
nfl.game_player_redzone_statsPer-game player stats restricted to red-zone plays — the same red-zone breakouts as the season aggregate, for each individual game.
GET/api/v1/nfl/game_player_redzone_statsList game_player_redzone_stats for NFL
Requires one of:
game_id or player_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
player_idquerybigintoptionalFilter to a single player.
team_idquerybigintoptionalFilter by team.
opponent_team_idquerybigintoptionalFilter by opponent team.
positionquerystringoptionalFilter by player position. Values: DB, DEF, DL, K, LB, OL, P, QB, RB, TE, WR.
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_player_redzone_stats?game_id=1'Responses
200game_player_redzone_stats rows matching the declared filter set, wrapped in { game_player_redzone_stats, 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(54 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 95 | |
opponent_team_id | bigint | — e.g. 16 | |
player_id | bigint | — e.g. 657 | |
team_id | bigint | — e.g. 16 | |
assisted_tackles | integer | — | Assisted tackles in red zone e.g. 0 |
defensive_tds | integer | — | Total defensive touchdowns in red zone e.g. 0 |
forced_fumbles | integer | — | Forced fumbles in red zone e.g. 0 |
fumble_recovery_tds | integer | — | Fumble recovery touchdowns in red zone e.g. 0 |
fumble_recovery_yds | integer | — | Fumble recovery yards in red zone e.g. 0 |
fumbles | integer | — | Fumbles in the red zone e.g. 0 |
fumbles_lost | integer | — | Fumbles lost in the red zone e.g. 0 |
fumbles_recovered | integer | — | Fumbles recovered in red zone e.g. 0 |
interception_tds | integer | — | Interception return touchdowns in red zone e.g. 0 |
interception_yds | integer | — | Interception return yards in red zone e.g. 0 |
interceptions | integer | — | Interceptions in red zone e.g. 0 |
is_home | boolean | — | True if player's team is the home team Values:falsetrue |
offensive_snaps | integer | — | Offensive snaps played in red zone situations e.g. 0 |
offensive_tds | integer | — | Total offensive touchdowns in the red zone e.g. 0 |
passes_defended | integer | — | Passes defended in red zone e.g. 0 |
passing_attempts | integer | — | Passing attempts in the red zone e.g. 0 |
passing_completion_percentage | decimal | — | Completion percentage in the red zone e.g. 0.0000 |
passing_completions | integer | — | Completed passes in the red zone e.g. 0 |
passing_interceptions | integer | — | Interceptions thrown in the red zone e.g. 0 |
passing_long | integer | — | Longest pass completion in the red zone e.g. 0 |
passing_rating | decimal | — | Passer rating in the red zone e.g. 0.0000 |
passing_sack_yds | integer | — | Yards lost to sacks in the red zone e.g. 0 |
passing_sacks | integer | — | Times sacked in the red zone e.g. 0 |
passing_tds | integer | — | Passing touchdowns in the red zone e.g. 0 |
passing_yds | integer | — | Passing yards in the red zone e.g. 0 |
passing_yds_per_attempt | decimal | — | Passing yards per attempt in the red zone e.g. 0.0000 |
passing_yds_per_completion | decimal | — | Passing yards per completion in the red zone e.g. 0.0000 |
position | string | — | Player position at time of game Values:WRRBDBLBDLQBTEDEFOLP |
quarterback_hits | integer | — | QB hits in red zone e.g. 0 |
receiving_long | integer | — | Longest reception in the red zone e.g. 0 |
receiving_tds | integer | — | Receiving touchdowns in the red zone e.g. 0 |
receiving_yds | integer | — | Receiving yards in the red zone e.g. 0 |
receiving_yds_per_reception | decimal | — | Yards per reception in the red zone e.g. 0.0000 |
receiving_yds_per_target | decimal | — | Receiving yards per target in the red zone e.g. 0.0000 |
reception_percentage | decimal | — | Reception percentage (receptions/targets) in the red zone e.g. 0.0000 |
receptions | integer | — | Receptions in the red zone e.g. 0 |
rushing_attempts | integer | — | Rushing attempts in the red zone e.g. 0 |
rushing_long | integer | — | Longest rush in the red zone e.g. 0 |
rushing_tds | integer | — | Rushing touchdowns in the red zone e.g. 0 |
rushing_yds | integer | — | Rushing yards in the red zone e.g. 0 |
rushing_yds_per_attempt | decimal | — | Rushing yards per attempt in the red zone e.g. 0.0000 |
sacks | decimal | — | Sacks in red zone (0.5 for half sacks) e.g. 0.0000 |
solo_tackles | integer | — | Solo tackles in red zone e.g. 0 |
tackles_for_loss | integer | — | Tackles for loss in red zone e.g. 0 |
targets | integer | — | Times targeted in the red zone e.g. 0 |
total_tds | integer | — | Total touchdowns scored in the red zone e.g. 0 |
two_pt_pass_conversions | integer | — | Successful two-point conversion passes in the red zone e.g. 0 |
two_pt_reception_conversions | integer | — | Successful two-point conversion receptions in the red zone e.g. 0 |
two_pt_rush_conversions | integer | — | Successful two-point conversion runs in the red zone e.g. 0 |
GET/api/v1/nfl/game_player_redzone_stats/{id}Get a single game_player_redzone_stat by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_player_redzone_stat 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_player_redzone_stats/{pk_value}'Responses
200Single game_player_redzone_stat row.application/jsonshow example ▸
404Row not found.
Response Schema(54 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 95 | |
opponent_team_id | bigint | — e.g. 16 | |
player_id | bigint | — e.g. 657 | |
team_id | bigint | — e.g. 16 | |
assisted_tackles | integer | — | Assisted tackles in red zone e.g. 0 |
defensive_tds | integer | — | Total defensive touchdowns in red zone e.g. 0 |
forced_fumbles | integer | — | Forced fumbles in red zone e.g. 0 |
fumble_recovery_tds | integer | — | Fumble recovery touchdowns in red zone e.g. 0 |
fumble_recovery_yds | integer | — | Fumble recovery yards in red zone e.g. 0 |
fumbles | integer | — | Fumbles in the red zone e.g. 0 |
fumbles_lost | integer | — | Fumbles lost in the red zone e.g. 0 |
fumbles_recovered | integer | — | Fumbles recovered in red zone e.g. 0 |
interception_tds | integer | — | Interception return touchdowns in red zone e.g. 0 |
interception_yds | integer | — | Interception return yards in red zone e.g. 0 |
interceptions | integer | — | Interceptions in red zone e.g. 0 |
is_home | boolean | — | True if player's team is the home team Values:falsetrue |
offensive_snaps | integer | — | Offensive snaps played in red zone situations e.g. 0 |
offensive_tds | integer | — | Total offensive touchdowns in the red zone e.g. 0 |
passes_defended | integer | — | Passes defended in red zone e.g. 0 |
passing_attempts | integer | — | Passing attempts in the red zone e.g. 0 |
passing_completion_percentage | decimal | — | Completion percentage in the red zone e.g. 0.0000 |
passing_completions | integer | — | Completed passes in the red zone e.g. 0 |
passing_interceptions | integer | — | Interceptions thrown in the red zone e.g. 0 |
passing_long | integer | — | Longest pass completion in the red zone e.g. 0 |
passing_rating | decimal | — | Passer rating in the red zone e.g. 0.0000 |
passing_sack_yds | integer | — | Yards lost to sacks in the red zone e.g. 0 |
passing_sacks | integer | — | Times sacked in the red zone e.g. 0 |
passing_tds | integer | — | Passing touchdowns in the red zone e.g. 0 |
passing_yds | integer | — | Passing yards in the red zone e.g. 0 |
passing_yds_per_attempt | decimal | — | Passing yards per attempt in the red zone e.g. 0.0000 |
passing_yds_per_completion | decimal | — | Passing yards per completion in the red zone e.g. 0.0000 |
position | string | — | Player position at time of game Values:WRRBDBLBDLQBTEDEFOLP |
quarterback_hits | integer | — | QB hits in red zone e.g. 0 |
receiving_long | integer | — | Longest reception in the red zone e.g. 0 |
receiving_tds | integer | — | Receiving touchdowns in the red zone e.g. 0 |
receiving_yds | integer | — | Receiving yards in the red zone e.g. 0 |
receiving_yds_per_reception | decimal | — | Yards per reception in the red zone e.g. 0.0000 |
receiving_yds_per_target | decimal | — | Receiving yards per target in the red zone e.g. 0.0000 |
reception_percentage | decimal | — | Reception percentage (receptions/targets) in the red zone e.g. 0.0000 |
receptions | integer | — | Receptions in the red zone e.g. 0 |
rushing_attempts | integer | — | Rushing attempts in the red zone e.g. 0 |
rushing_long | integer | — | Longest rush in the red zone e.g. 0 |
rushing_tds | integer | — | Rushing touchdowns in the red zone e.g. 0 |
rushing_yds | integer | — | Rushing yards in the red zone e.g. 0 |
rushing_yds_per_attempt | decimal | — | Rushing yards per attempt in the red zone e.g. 0.0000 |
sacks | decimal | — | Sacks in red zone (0.5 for half sacks) e.g. 0.0000 |
solo_tackles | integer | — | Solo tackles in red zone e.g. 0 |
tackles_for_loss | integer | — | Tackles for loss in red zone e.g. 0 |
targets | integer | — | Times targeted in the red zone e.g. 0 |
total_tds | integer | — | Total touchdowns scored in the red zone e.g. 0 |
two_pt_pass_conversions | integer | — | Successful two-point conversion passes in the red zone e.g. 0 |
two_pt_reception_conversions | integer | — | Successful two-point conversion receptions in the red zone e.g. 0 |
two_pt_rush_conversions | integer | — | Successful two-point conversion runs in the red zone e.g. 0 |
game_player_thirddown_stats
nfl.game_player_thirddown_statsPer-game player stats restricted to third-down plays — the same third-down breakouts as the season aggregate, for each individual game.
GET/api/v1/nfl/game_player_thirddown_statsList game_player_thirddown_stats for NFL
Requires one of:
game_id or player_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
player_idquerybigintoptionalFilter to a single player.
team_idquerybigintoptionalFilter by team.
opponent_team_idquerybigintoptionalFilter by opponent team.
positionquerystringoptionalFilter by player position. Values: DB, DEF, DL, K, LB, OL, P, QB, RB, TE, WR.
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_player_thirddown_stats?game_id=1'Responses
200game_player_thirddown_stats rows matching the declared filter set, wrapped in { game_player_thirddown_stats, 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(54 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 60 | |
opponent_team_id | bigint | — e.g. 8 | |
player_id | bigint | — e.g. 657 | |
team_id | bigint | — e.g. 10 | |
assisted_tackles | integer | — | Assisted tackles on third down e.g. 0 |
defensive_tds | integer | — | Total defensive touchdowns on third down e.g. 0 |
forced_fumbles | integer | — | Forced fumbles on third down e.g. 0 |
fumble_recovery_tds | integer | — | Fumble recovery touchdowns on third down e.g. 0 |
fumble_recovery_yds | integer | — | Fumble recovery yards on third down e.g. 0 |
fumbles | integer | — | Fumbles on third down e.g. 0 |
fumbles_lost | integer | — | Fumbles lost on third down e.g. 0 |
fumbles_recovered | integer | — | Fumbles recovered on third down e.g. 0 |
interception_tds | integer | — | Interception return touchdowns on third down e.g. 0 |
interception_yds | integer | — | Interception return yards on third down e.g. 0 |
interceptions | integer | — | Interceptions on third down e.g. 0 |
is_home | boolean | — | True if player's team is the home team Values:falsetrue |
offensive_snaps | integer | — | Offensive snaps played on third down e.g. 0 |
offensive_tds | integer | — | Total offensive touchdowns on third down e.g. 0 |
passes_defended | integer | — | Passes defended on third down e.g. 0 |
passing_attempts | integer | — | Passing attempts on third down e.g. 0 |
passing_completion_percentage | decimal | — | Completion percentage on third down e.g. 0.0000 |
passing_completions | integer | — | Completed passes on third down e.g. 0 |
passing_interceptions | integer | — | Interceptions thrown on third down e.g. 0 |
passing_long | integer | — | Longest pass completion on third down e.g. 0 |
passing_rating | decimal | — | Passer rating on third down e.g. 0.0000 |
passing_sack_yds | integer | — | Yards lost to sacks on third down e.g. 0 |
passing_sacks | integer | — | Times sacked on third down e.g. 0 |
passing_tds | integer | — | Passing touchdowns on third down e.g. 0 |
passing_yds | integer | — | Passing yards on third down e.g. 0 |
passing_yds_per_attempt | decimal | — | Passing yards per attempt on third down e.g. 0.0000 |
passing_yds_per_completion | decimal | — | Passing yards per completion on third down e.g. 0.0000 |
position | string | — | Player position at time of game Values:WRRBDBQBTELBDLDEFOL |
quarterback_hits | integer | — | QB hits on third down e.g. 0 |
receiving_long | integer | — | Longest reception on third down e.g. 0 |
receiving_tds | integer | — | Receiving touchdowns on third down e.g. 0 |
receiving_yds | integer | — | Receiving yards on third down e.g. 0 |
receiving_yds_per_reception | decimal | — | Yards per reception on third down e.g. 0.0000 |
receiving_yds_per_target | decimal | — | Receiving yards per target on third down e.g. 0.0000 |
reception_percentage | decimal | — | Reception percentage (receptions/targets) on third down e.g. 0.0000 |
receptions | integer | — | Receptions on third down e.g. 0 |
rushing_attempts | integer | — | Rushing attempts on third down e.g. 0 |
rushing_long | integer | — | Longest rush on third down e.g. 0 |
rushing_tds | integer | — | Rushing touchdowns on third down e.g. 0 |
rushing_yds | integer | — | Rushing yards on third down e.g. 0 |
rushing_yds_per_attempt | decimal | — | Rushing yards per attempt on third down e.g. 0.0000 |
sacks | decimal | — | Sacks on third down (0.5 for half sacks) e.g. 0.0000 |
solo_tackles | integer | — | Solo tackles on third down e.g. 0 |
tackles_for_loss | integer | — | Tackles for loss on third down e.g. 0 |
targets | integer | — | Times targeted on third down e.g. 0 |
total_tds | integer | — | Total touchdowns scored on third down e.g. 0 |
two_pt_pass_conversions | integer | — | — e.g. 0 |
two_pt_reception_conversions | integer | — | — e.g. 0 |
two_pt_rush_conversions | integer | — | — e.g. 0 |
GET/api/v1/nfl/game_player_thirddown_stats/{id}Get a single game_player_thirddown_stat by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_player_thirddown_stat 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_player_thirddown_stats/{pk_value}'Responses
200Single game_player_thirddown_stat row.application/jsonshow example ▸
404Row not found.
Response Schema(54 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 60 | |
opponent_team_id | bigint | — e.g. 8 | |
player_id | bigint | — e.g. 657 | |
team_id | bigint | — e.g. 10 | |
assisted_tackles | integer | — | Assisted tackles on third down e.g. 0 |
defensive_tds | integer | — | Total defensive touchdowns on third down e.g. 0 |
forced_fumbles | integer | — | Forced fumbles on third down e.g. 0 |
fumble_recovery_tds | integer | — | Fumble recovery touchdowns on third down e.g. 0 |
fumble_recovery_yds | integer | — | Fumble recovery yards on third down e.g. 0 |
fumbles | integer | — | Fumbles on third down e.g. 0 |
fumbles_lost | integer | — | Fumbles lost on third down e.g. 0 |
fumbles_recovered | integer | — | Fumbles recovered on third down e.g. 0 |
interception_tds | integer | — | Interception return touchdowns on third down e.g. 0 |
interception_yds | integer | — | Interception return yards on third down e.g. 0 |
interceptions | integer | — | Interceptions on third down e.g. 0 |
is_home | boolean | — | True if player's team is the home team Values:falsetrue |
offensive_snaps | integer | — | Offensive snaps played on third down e.g. 0 |
offensive_tds | integer | — | Total offensive touchdowns on third down e.g. 0 |
passes_defended | integer | — | Passes defended on third down e.g. 0 |
passing_attempts | integer | — | Passing attempts on third down e.g. 0 |
passing_completion_percentage | decimal | — | Completion percentage on third down e.g. 0.0000 |
passing_completions | integer | — | Completed passes on third down e.g. 0 |
passing_interceptions | integer | — | Interceptions thrown on third down e.g. 0 |
passing_long | integer | — | Longest pass completion on third down e.g. 0 |
passing_rating | decimal | — | Passer rating on third down e.g. 0.0000 |
passing_sack_yds | integer | — | Yards lost to sacks on third down e.g. 0 |
passing_sacks | integer | — | Times sacked on third down e.g. 0 |
passing_tds | integer | — | Passing touchdowns on third down e.g. 0 |
passing_yds | integer | — | Passing yards on third down e.g. 0 |
passing_yds_per_attempt | decimal | — | Passing yards per attempt on third down e.g. 0.0000 |
passing_yds_per_completion | decimal | — | Passing yards per completion on third down e.g. 0.0000 |
position | string | — | Player position at time of game Values:WRRBDBQBTELBDLDEFOL |
quarterback_hits | integer | — | QB hits on third down e.g. 0 |
receiving_long | integer | — | Longest reception on third down e.g. 0 |
receiving_tds | integer | — | Receiving touchdowns on third down e.g. 0 |
receiving_yds | integer | — | Receiving yards on third down e.g. 0 |
receiving_yds_per_reception | decimal | — | Yards per reception on third down e.g. 0.0000 |
receiving_yds_per_target | decimal | — | Receiving yards per target on third down e.g. 0.0000 |
reception_percentage | decimal | — | Reception percentage (receptions/targets) on third down e.g. 0.0000 |
receptions | integer | — | Receptions on third down e.g. 0 |
rushing_attempts | integer | — | Rushing attempts on third down e.g. 0 |
rushing_long | integer | — | Longest rush on third down e.g. 0 |
rushing_tds | integer | — | Rushing touchdowns on third down e.g. 0 |
rushing_yds | integer | — | Rushing yards on third down e.g. 0 |
rushing_yds_per_attempt | decimal | — | Rushing yards per attempt on third down e.g. 0.0000 |
sacks | decimal | — | Sacks on third down (0.5 for half sacks) e.g. 0.0000 |
solo_tackles | integer | — | Solo tackles on third down e.g. 0 |
tackles_for_loss | integer | — | Tackles for loss on third down e.g. 0 |
targets | integer | — | Times targeted on third down e.g. 0 |
total_tds | integer | — | Total touchdowns scored on third down e.g. 0 |
two_pt_pass_conversions | integer | — | — e.g. 0 |
two_pt_reception_conversions | integer | — | — e.g. 0 |
two_pt_rush_conversions | integer | — | — e.g. 0 |
season_player_firstdown_stats
nfl.season_player_firstdown_statsSeason player stats restricted to first-down plays — passing, rushing, and receiving production filtered to first-down attempts, useful for early-down efficiency analysis.
GET/api/v1/nfl/season_player_firstdown_statsList season_player_firstdown_stats for NFL
Requires one of:
season_id — requests satisfying none of these return 400.Parameters
player_idquerybigintoptionalFilter to a single player.
season_idquerybigintoptionalFilter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
limitqueryintegeroptionaldefault 100Page size. Defaults to 100; 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/season_player_firstdown_stats?season_id=2026'Responses
200season_player_firstdown_stats rows matching the declared filter set, wrapped in { season_player_firstdown_stats, 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(52 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
player_id | bigint | — e.g. 2 | |
season_id | bigint | — e.g. 2020 | |
assisted_tackles | integer | — | Assisted tackles on first down e.g. 0 |
defensive_tds | integer | — | Total defensive touchdowns on first down e.g. 0 |
forced_fumbles | integer | — | Forced fumbles on first down e.g. 0 |
fumble_recovery_tds | integer | — | Fumble recovery touchdowns on first down e.g. 0 |
fumble_recovery_yds | integer | — | Fumble recovery yards on first down e.g. 0 |
fumbles | integer | — | Fumbles on first down e.g. 0 |
fumbles_lost | integer | — | Fumbles lost on first down e.g. 0 |
fumbles_recovered | integer | — | Fumbles recovered on first down e.g. 0 |
games_played | integer | — | Number of games with first down involvement e.g. 1 |
games_started | integer | — | Number of games started e.g. 0 |
interception_tds | integer | — | Interception return touchdowns on first down e.g. 0 |
interception_yds | integer | — | Interception return yards on first down e.g. 0 |
interceptions | integer | — | Interceptions on first down e.g. 0 |
offensive_snaps | integer | — | Offensive snaps played on first down e.g. 0 |
offensive_tds | integer | — | Total offensive touchdowns on first down e.g. 0 |
passes_defended | integer | — | Passes defended on first down e.g. 0 |
passing_attempts | integer | — | Passing attempts on first down e.g. 0 |
passing_completion_percentage | decimal | — | Completion percentage on first down e.g. 0.0000 |
passing_completions | integer | — | Completed passes on first down e.g. 0 |
passing_interceptions | integer | — | Interceptions thrown on first down e.g. 0 |
passing_long | integer | — | Longest pass completion on first down e.g. 0 |
passing_rating | decimal | — | Passer rating on first down e.g. 0.0000 |
passing_sack_yds | integer | — | Yards lost to sacks on first down e.g. 0 |
passing_sacks | integer | — | Times sacked on first down e.g. 0 |
passing_tds | integer | — | Passing touchdowns on first down e.g. 0 |
passing_yds | integer | — | Passing yards on first down e.g. 0 |
passing_yds_per_attempt | decimal | — | Passing yards per attempt on first down e.g. 0.0000 |
passing_yds_per_completion | decimal | — | Passing yards per completion on first down e.g. 0.0000 |
quarterback_hits | integer | — | QB hits on first down e.g. 0 |
receiving_long | integer | — | Longest reception on first down e.g. 0 |
receiving_tds | integer | — | Receiving touchdowns on first down e.g. 0 |
receiving_yds | integer | — | Receiving yards on first down e.g. 0 |
receiving_yds_per_reception | decimal | — | Yards per reception on first down e.g. 0.0000 |
receiving_yds_per_target | decimal | — | Receiving yards per target on first down e.g. 0.0000 |
reception_percentage | decimal | — | Reception percentage (receptions/targets) on first down e.g. 0.0000 |
receptions | integer | — | Receptions on first down e.g. 0 |
rushing_attempts | integer | — | Rushing attempts on first down e.g. 0 |
rushing_long | integer | — | Longest rush on first down e.g. 0 |
rushing_tds | integer | — | Rushing touchdowns on first down e.g. 0 |
rushing_yds | integer | — | Rushing yards on first down e.g. 0 |
rushing_yds_per_attempt | decimal | — | Rushing yards per attempt on first down e.g. 0.0000 |
sacks | decimal | — | Sacks on first down (0.5 for half sacks) e.g. 0.0000 |
solo_tackles | integer | — | Solo tackles on first down e.g. 0 |
tackles_for_loss | integer | — | Tackles for loss on first down e.g. 0 |
targets | integer | — | Times targeted on first down e.g. 0 |
total_tds | integer | — | Total touchdowns scored on first down e.g. 0 |
two_pt_pass_conversions | integer | — | — e.g. 0 |
two_pt_reception_conversions | integer | — | — e.g. 0 |
two_pt_rush_conversions | integer | — | — e.g. 0 |
GET/api/v1/nfl/season_player_firstdown_stats/{id}Get a single season_player_firstdown_stat by id
Parameters
idpathbigintrequiredPrimary key (id) of the season_player_firstdown_stat 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/season_player_firstdown_stats/{pk_value}'Responses
200Single season_player_firstdown_stat row.application/jsonshow example ▸
404Row not found.
Response Schema(52 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
player_id | bigint | — e.g. 2 | |
season_id | bigint | — e.g. 2020 | |
assisted_tackles | integer | — | Assisted tackles on first down e.g. 0 |
defensive_tds | integer | — | Total defensive touchdowns on first down e.g. 0 |
forced_fumbles | integer | — | Forced fumbles on first down e.g. 0 |
fumble_recovery_tds | integer | — | Fumble recovery touchdowns on first down e.g. 0 |
fumble_recovery_yds | integer | — | Fumble recovery yards on first down e.g. 0 |
fumbles | integer | — | Fumbles on first down e.g. 0 |
fumbles_lost | integer | — | Fumbles lost on first down e.g. 0 |
fumbles_recovered | integer | — | Fumbles recovered on first down e.g. 0 |
games_played | integer | — | Number of games with first down involvement e.g. 1 |
games_started | integer | — | Number of games started e.g. 0 |
interception_tds | integer | — | Interception return touchdowns on first down e.g. 0 |
interception_yds | integer | — | Interception return yards on first down e.g. 0 |
interceptions | integer | — | Interceptions on first down e.g. 0 |
offensive_snaps | integer | — | Offensive snaps played on first down e.g. 0 |
offensive_tds | integer | — | Total offensive touchdowns on first down e.g. 0 |
passes_defended | integer | — | Passes defended on first down e.g. 0 |
passing_attempts | integer | — | Passing attempts on first down e.g. 0 |
passing_completion_percentage | decimal | — | Completion percentage on first down e.g. 0.0000 |
passing_completions | integer | — | Completed passes on first down e.g. 0 |
passing_interceptions | integer | — | Interceptions thrown on first down e.g. 0 |
passing_long | integer | — | Longest pass completion on first down e.g. 0 |
passing_rating | decimal | — | Passer rating on first down e.g. 0.0000 |
passing_sack_yds | integer | — | Yards lost to sacks on first down e.g. 0 |
passing_sacks | integer | — | Times sacked on first down e.g. 0 |
passing_tds | integer | — | Passing touchdowns on first down e.g. 0 |
passing_yds | integer | — | Passing yards on first down e.g. 0 |
passing_yds_per_attempt | decimal | — | Passing yards per attempt on first down e.g. 0.0000 |
passing_yds_per_completion | decimal | — | Passing yards per completion on first down e.g. 0.0000 |
quarterback_hits | integer | — | QB hits on first down e.g. 0 |
receiving_long | integer | — | Longest reception on first down e.g. 0 |
receiving_tds | integer | — | Receiving touchdowns on first down e.g. 0 |
receiving_yds | integer | — | Receiving yards on first down e.g. 0 |
receiving_yds_per_reception | decimal | — | Yards per reception on first down e.g. 0.0000 |
receiving_yds_per_target | decimal | — | Receiving yards per target on first down e.g. 0.0000 |
reception_percentage | decimal | — | Reception percentage (receptions/targets) on first down e.g. 0.0000 |
receptions | integer | — | Receptions on first down e.g. 0 |
rushing_attempts | integer | — | Rushing attempts on first down e.g. 0 |
rushing_long | integer | — | Longest rush on first down e.g. 0 |
rushing_tds | integer | — | Rushing touchdowns on first down e.g. 0 |
rushing_yds | integer | — | Rushing yards on first down e.g. 0 |
rushing_yds_per_attempt | decimal | — | Rushing yards per attempt on first down e.g. 0.0000 |
sacks | decimal | — | Sacks on first down (0.5 for half sacks) e.g. 0.0000 |
solo_tackles | integer | — | Solo tackles on first down e.g. 0 |
tackles_for_loss | integer | — | Tackles for loss on first down e.g. 0 |
targets | integer | — | Times targeted on first down e.g. 0 |
total_tds | integer | — | Total touchdowns scored on first down e.g. 0 |
two_pt_pass_conversions | integer | — | — e.g. 0 |
two_pt_reception_conversions | integer | — | — e.g. 0 |
two_pt_rush_conversions | integer | — | — e.g. 0 |
season_player_redzone_stats
nfl.season_player_redzone_statsSeason player stats restricted to red-zone plays (inside the opponent's 20) — scoring efficiency, touchdown rate, and yardage production in the most-valuable area of the field.
GET/api/v1/nfl/season_player_redzone_statsList season_player_redzone_stats for NFL
Requires one of:
season_id — requests satisfying none of these return 400.Parameters
player_idquerybigintoptionalFilter to a single player.
season_idquerybigintoptionalFilter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
limitqueryintegeroptionaldefault 100Page size. Defaults to 100; 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/season_player_redzone_stats?season_id=2026'Responses
200season_player_redzone_stats rows matching the declared filter set, wrapped in { season_player_redzone_stats, 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(52 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
player_id | bigint | — e.g. 2 | |
season_id | bigint | — e.g. 2025 | |
assisted_tackles | integer | — | Assisted tackles in red zone e.g. 0 |
defensive_tds | integer | — | Total defensive touchdowns in red zone e.g. 0 |
forced_fumbles | integer | — | Forced fumbles in red zone e.g. 0 |
fumble_recovery_tds | integer | — | Fumble recovery touchdowns in red zone e.g. 0 |
fumble_recovery_yds | integer | — | Fumble recovery yards in red zone e.g. 0 |
fumbles | integer | — | Fumbles in the red zone e.g. 0 |
fumbles_lost | integer | — | Fumbles lost in the red zone e.g. 0 |
fumbles_recovered | integer | — | Fumbles recovered in red zone e.g. 0 |
games_played | integer | — | Number of games with red zone involvement e.g. 1 |
games_started | integer | — | Number of games started e.g. 0 |
interception_tds | integer | — | Interception return touchdowns in red zone e.g. 0 |
interception_yds | integer | — | Interception return yards in red zone e.g. 0 |
interceptions | integer | — | Interceptions in red zone e.g. 0 |
offensive_snaps | integer | — | Offensive snaps played in red zone situations e.g. 0 |
offensive_tds | integer | — | Total offensive touchdowns in the red zone e.g. 0 |
passes_defended | integer | — | Passes defended in red zone e.g. 0 |
passing_attempts | integer | — | Passing attempts in the red zone e.g. 0 |
passing_completion_percentage | decimal | — | Completion percentage in the red zone e.g. 0.0000 |
passing_completions | integer | — | Completed passes in the red zone e.g. 0 |
passing_interceptions | integer | — | Interceptions thrown in the red zone e.g. 0 |
passing_long | integer | — | Longest pass completion in the red zone e.g. 0 |
passing_rating | decimal | — | Passer rating in the red zone e.g. 0.0000 |
passing_sack_yds | integer | — | Yards lost to sacks in the red zone e.g. 0 |
passing_sacks | integer | — | Times sacked in the red zone e.g. 0 |
passing_tds | integer | — | Passing touchdowns in the red zone e.g. 0 |
passing_yds | integer | — | Passing yards in the red zone e.g. 0 |
passing_yds_per_attempt | decimal | — | Passing yards per attempt in the red zone e.g. 0.0000 |
passing_yds_per_completion | decimal | — | Passing yards per completion in the red zone e.g. 0.0000 |
quarterback_hits | integer | — | QB hits in red zone e.g. 0 |
receiving_long | integer | — | Longest reception in the red zone e.g. 0 |
receiving_tds | integer | — | Receiving touchdowns in the red zone e.g. 0 |
receiving_yds | integer | — | Receiving yards in the red zone e.g. 0 |
receiving_yds_per_reception | decimal | — | Yards per reception in the red zone e.g. 0.0000 |
receiving_yds_per_target | decimal | — | Receiving yards per target in the red zone e.g. 0.0000 |
reception_percentage | decimal | — | Reception percentage (receptions/targets) in the red zone e.g. 0.0000 |
receptions | integer | — | Receptions in the red zone e.g. 0 |
rushing_attempts | integer | — | Rushing attempts in the red zone e.g. 0 |
rushing_long | integer | — | Longest rush in the red zone e.g. 0 |
rushing_tds | integer | — | Rushing touchdowns in the red zone e.g. 0 |
rushing_yds | integer | — | Rushing yards in the red zone e.g. 0 |
rushing_yds_per_attempt | decimal | — | Rushing yards per attempt in the red zone e.g. 0.0000 |
sacks | decimal | — | Sacks in red zone (0.5 for half sacks) e.g. 0.0000 |
solo_tackles | integer | — | Solo tackles in red zone e.g. 0 |
tackles_for_loss | integer | — | Tackles for loss in red zone e.g. 0 |
targets | integer | — | Times targeted in the red zone e.g. 0 |
total_tds | integer | — | Total touchdowns scored in the red zone e.g. 0 |
two_pt_pass_conversions | integer | — | Successful two-point conversion passes in the red zone e.g. 0 |
two_pt_reception_conversions | integer | — | Successful two-point conversion receptions in the red zone e.g. 0 |
two_pt_rush_conversions | integer | — | Successful two-point conversion runs in the red zone e.g. 0 |
GET/api/v1/nfl/season_player_redzone_stats/{id}Get a single season_player_redzone_stat by id
Parameters
idpathbigintrequiredPrimary key (id) of the season_player_redzone_stat 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/season_player_redzone_stats/{pk_value}'Responses
200Single season_player_redzone_stat row.application/jsonshow example ▸
404Row not found.
Response Schema(52 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
player_id | bigint | — e.g. 2 | |
season_id | bigint | — e.g. 2025 | |
assisted_tackles | integer | — | Assisted tackles in red zone e.g. 0 |
defensive_tds | integer | — | Total defensive touchdowns in red zone e.g. 0 |
forced_fumbles | integer | — | Forced fumbles in red zone e.g. 0 |
fumble_recovery_tds | integer | — | Fumble recovery touchdowns in red zone e.g. 0 |
fumble_recovery_yds | integer | — | Fumble recovery yards in red zone e.g. 0 |
fumbles | integer | — | Fumbles in the red zone e.g. 0 |
fumbles_lost | integer | — | Fumbles lost in the red zone e.g. 0 |
fumbles_recovered | integer | — | Fumbles recovered in red zone e.g. 0 |
games_played | integer | — | Number of games with red zone involvement e.g. 1 |
games_started | integer | — | Number of games started e.g. 0 |
interception_tds | integer | — | Interception return touchdowns in red zone e.g. 0 |
interception_yds | integer | — | Interception return yards in red zone e.g. 0 |
interceptions | integer | — | Interceptions in red zone e.g. 0 |
offensive_snaps | integer | — | Offensive snaps played in red zone situations e.g. 0 |
offensive_tds | integer | — | Total offensive touchdowns in the red zone e.g. 0 |
passes_defended | integer | — | Passes defended in red zone e.g. 0 |
passing_attempts | integer | — | Passing attempts in the red zone e.g. 0 |
passing_completion_percentage | decimal | — | Completion percentage in the red zone e.g. 0.0000 |
passing_completions | integer | — | Completed passes in the red zone e.g. 0 |
passing_interceptions | integer | — | Interceptions thrown in the red zone e.g. 0 |
passing_long | integer | — | Longest pass completion in the red zone e.g. 0 |
passing_rating | decimal | — | Passer rating in the red zone e.g. 0.0000 |
passing_sack_yds | integer | — | Yards lost to sacks in the red zone e.g. 0 |
passing_sacks | integer | — | Times sacked in the red zone e.g. 0 |
passing_tds | integer | — | Passing touchdowns in the red zone e.g. 0 |
passing_yds | integer | — | Passing yards in the red zone e.g. 0 |
passing_yds_per_attempt | decimal | — | Passing yards per attempt in the red zone e.g. 0.0000 |
passing_yds_per_completion | decimal | — | Passing yards per completion in the red zone e.g. 0.0000 |
quarterback_hits | integer | — | QB hits in red zone e.g. 0 |
receiving_long | integer | — | Longest reception in the red zone e.g. 0 |
receiving_tds | integer | — | Receiving touchdowns in the red zone e.g. 0 |
receiving_yds | integer | — | Receiving yards in the red zone e.g. 0 |
receiving_yds_per_reception | decimal | — | Yards per reception in the red zone e.g. 0.0000 |
receiving_yds_per_target | decimal | — | Receiving yards per target in the red zone e.g. 0.0000 |
reception_percentage | decimal | — | Reception percentage (receptions/targets) in the red zone e.g. 0.0000 |
receptions | integer | — | Receptions in the red zone e.g. 0 |
rushing_attempts | integer | — | Rushing attempts in the red zone e.g. 0 |
rushing_long | integer | — | Longest rush in the red zone e.g. 0 |
rushing_tds | integer | — | Rushing touchdowns in the red zone e.g. 0 |
rushing_yds | integer | — | Rushing yards in the red zone e.g. 0 |
rushing_yds_per_attempt | decimal | — | Rushing yards per attempt in the red zone e.g. 0.0000 |
sacks | decimal | — | Sacks in red zone (0.5 for half sacks) e.g. 0.0000 |
solo_tackles | integer | — | Solo tackles in red zone e.g. 0 |
tackles_for_loss | integer | — | Tackles for loss in red zone e.g. 0 |
targets | integer | — | Times targeted in the red zone e.g. 0 |
total_tds | integer | — | Total touchdowns scored in the red zone e.g. 0 |
two_pt_pass_conversions | integer | — | Successful two-point conversion passes in the red zone e.g. 0 |
two_pt_reception_conversions | integer | — | Successful two-point conversion receptions in the red zone e.g. 0 |
two_pt_rush_conversions | integer | — | Successful two-point conversion runs in the red zone e.g. 0 |
season_player_thirddown_stats
nfl.season_player_thirddown_statsSeason player stats restricted to third-down plays — conversion rates and production on the down that most often decides whether a drive lives or dies.
GET/api/v1/nfl/season_player_thirddown_statsList season_player_thirddown_stats for NFL
Requires one of:
season_id — requests satisfying none of these return 400.Parameters
player_idquerybigintoptionalFilter to a single player.
season_idquerybigintoptionalFilter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
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/season_player_thirddown_stats?season_id=2026'Responses
200season_player_thirddown_stats rows matching the declared filter set, wrapped in { season_player_thirddown_stats, 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(52 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
player_id | bigint | — e.g. 9 | |
season_id | bigint | — e.g. 2021 | |
assisted_tackles | integer | — | Assisted tackles on third down e.g. 0 |
defensive_tds | integer | — | Total defensive touchdowns on third down e.g. 0 |
forced_fumbles | integer | — | Forced fumbles on third down e.g. 0 |
fumble_recovery_tds | integer | — | Fumble recovery touchdowns on third down e.g. 0 |
fumble_recovery_yds | integer | — | Fumble recovery yards on third down e.g. 0 |
fumbles | integer | — | Fumbles on third down e.g. 0 |
fumbles_lost | integer | — | Fumbles lost on third down e.g. 0 |
fumbles_recovered | integer | — | Fumbles recovered on third down e.g. 0 |
games_played | integer | — | Number of games with third down involvement e.g. 0 |
games_started | integer | — | Number of games started e.g. 0 |
interception_tds | integer | — | Interception return touchdowns on third down e.g. 0 |
interception_yds | integer | — | Interception return yards on third down e.g. 0 |
interceptions | integer | — | Interceptions on third down e.g. 0 |
offensive_snaps | integer | — | Offensive snaps played on third down e.g. 0 |
offensive_tds | integer | — | Total offensive touchdowns on third down e.g. 0 |
passes_defended | integer | — | Passes defended on third down e.g. 0 |
passing_attempts | integer | — | Passing attempts on third down e.g. 0 |
passing_completion_percentage | decimal | — | Completion percentage on third down e.g. 0.0000 |
passing_completions | integer | — | Completed passes on third down e.g. 0 |
passing_interceptions | integer | — | Interceptions thrown on third down e.g. 0 |
passing_long | integer | — | Longest pass completion on third down e.g. 0 |
passing_rating | decimal | — | Passer rating on third down e.g. 0.0000 |
passing_sack_yds | integer | — | Yards lost to sacks on third down e.g. 0 |
passing_sacks | integer | — | Times sacked on third down e.g. 0 |
passing_tds | integer | — | Passing touchdowns on third down e.g. 0 |
passing_yds | integer | — | Passing yards on third down e.g. 0 |
passing_yds_per_attempt | decimal | — | Passing yards per attempt on third down e.g. 0.0000 |
passing_yds_per_completion | decimal | — | Passing yards per completion on third down e.g. 0.0000 |
quarterback_hits | integer | — | QB hits on third down e.g. 0 |
receiving_long | integer | — | Longest reception on third down e.g. 0 |
receiving_tds | integer | — | Receiving touchdowns on third down e.g. 0 |
receiving_yds | integer | — | Receiving yards on third down e.g. 0 |
receiving_yds_per_reception | decimal | — | Yards per reception on third down e.g. 0.0000 |
receiving_yds_per_target | decimal | — | Receiving yards per target on third down e.g. 0.0000 |
reception_percentage | decimal | — | Reception percentage (receptions/targets) on third down e.g. 0.0000 |
receptions | integer | — | Receptions on third down e.g. 0 |
rushing_attempts | integer | — | Rushing attempts on third down e.g. 0 |
rushing_long | integer | — | Longest rush on third down e.g. 0 |
rushing_tds | integer | — | Rushing touchdowns on third down e.g. 0 |
rushing_yds | integer | — | Rushing yards on third down e.g. 0 |
rushing_yds_per_attempt | decimal | — | Rushing yards per attempt on third down e.g. 0.0000 |
sacks | decimal | — | Sacks on third down (0.5 for half sacks) e.g. 0.0000 |
solo_tackles | integer | — | Solo tackles on third down e.g. 0 |
tackles_for_loss | integer | — | Tackles for loss on third down e.g. 0 |
targets | integer | — | Times targeted on third down e.g. 0 |
total_tds | integer | — | Total touchdowns scored on third down e.g. 0 |
two_pt_pass_conversions | integer | — | — e.g. 0 |
two_pt_reception_conversions | integer | — | — e.g. 0 |
two_pt_rush_conversions | integer | — | — e.g. 0 |
GET/api/v1/nfl/season_player_thirddown_stats/{id}Get a single season_player_thirddown_stat by id
Parameters
idpathbigintrequiredPrimary key (id) of the season_player_thirddown_stat 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/season_player_thirddown_stats/{pk_value}'Responses
200Single season_player_thirddown_stat row.application/jsonshow example ▸
404Row not found.
Response Schema(52 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
player_id | bigint | — e.g. 9 | |
season_id | bigint | — e.g. 2021 | |
assisted_tackles | integer | — | Assisted tackles on third down e.g. 0 |
defensive_tds | integer | — | Total defensive touchdowns on third down e.g. 0 |
forced_fumbles | integer | — | Forced fumbles on third down e.g. 0 |
fumble_recovery_tds | integer | — | Fumble recovery touchdowns on third down e.g. 0 |
fumble_recovery_yds | integer | — | Fumble recovery yards on third down e.g. 0 |
fumbles | integer | — | Fumbles on third down e.g. 0 |
fumbles_lost | integer | — | Fumbles lost on third down e.g. 0 |
fumbles_recovered | integer | — | Fumbles recovered on third down e.g. 0 |
games_played | integer | — | Number of games with third down involvement e.g. 0 |
games_started | integer | — | Number of games started e.g. 0 |
interception_tds | integer | — | Interception return touchdowns on third down e.g. 0 |
interception_yds | integer | — | Interception return yards on third down e.g. 0 |
interceptions | integer | — | Interceptions on third down e.g. 0 |
offensive_snaps | integer | — | Offensive snaps played on third down e.g. 0 |
offensive_tds | integer | — | Total offensive touchdowns on third down e.g. 0 |
passes_defended | integer | — | Passes defended on third down e.g. 0 |
passing_attempts | integer | — | Passing attempts on third down e.g. 0 |
passing_completion_percentage | decimal | — | Completion percentage on third down e.g. 0.0000 |
passing_completions | integer | — | Completed passes on third down e.g. 0 |
passing_interceptions | integer | — | Interceptions thrown on third down e.g. 0 |
passing_long | integer | — | Longest pass completion on third down e.g. 0 |
passing_rating | decimal | — | Passer rating on third down e.g. 0.0000 |
passing_sack_yds | integer | — | Yards lost to sacks on third down e.g. 0 |
passing_sacks | integer | — | Times sacked on third down e.g. 0 |
passing_tds | integer | — | Passing touchdowns on third down e.g. 0 |
passing_yds | integer | — | Passing yards on third down e.g. 0 |
passing_yds_per_attempt | decimal | — | Passing yards per attempt on third down e.g. 0.0000 |
passing_yds_per_completion | decimal | — | Passing yards per completion on third down e.g. 0.0000 |
quarterback_hits | integer | — | QB hits on third down e.g. 0 |
receiving_long | integer | — | Longest reception on third down e.g. 0 |
receiving_tds | integer | — | Receiving touchdowns on third down e.g. 0 |
receiving_yds | integer | — | Receiving yards on third down e.g. 0 |
receiving_yds_per_reception | decimal | — | Yards per reception on third down e.g. 0.0000 |
receiving_yds_per_target | decimal | — | Receiving yards per target on third down e.g. 0.0000 |
reception_percentage | decimal | — | Reception percentage (receptions/targets) on third down e.g. 0.0000 |
receptions | integer | — | Receptions on third down e.g. 0 |
rushing_attempts | integer | — | Rushing attempts on third down e.g. 0 |
rushing_long | integer | — | Longest rush on third down e.g. 0 |
rushing_tds | integer | — | Rushing touchdowns on third down e.g. 0 |
rushing_yds | integer | — | Rushing yards on third down e.g. 0 |
rushing_yds_per_attempt | decimal | — | Rushing yards per attempt on third down e.g. 0.0000 |
sacks | decimal | — | Sacks on third down (0.5 for half sacks) e.g. 0.0000 |
solo_tackles | integer | — | Solo tackles on third down e.g. 0 |
tackles_for_loss | integer | — | Tackles for loss on third down e.g. 0 |
targets | integer | — | Times targeted on third down e.g. 0 |
total_tds | integer | — | Total touchdowns scored on third down e.g. 0 |
two_pt_pass_conversions | integer | — | — e.g. 0 |
two_pt_reception_conversions | integer | — | — e.g. 0 |
two_pt_rush_conversions | integer | — | — e.g. 0 |
Odds
game_lines
nfl.game_linesNFL game betting lines — point spreads, moneylines, and over/under totals, one row per capture. `source` says where a row came from - `espn` rows are live captures before kickoff (2026 on); `nflverse` rows are one closing line per Final game with `captured_at` equal to kickoff (2020-2025, and a post-game fallback). Regular-season games only.
GET/api/v1/nfl/game_linesList game_lines for NFL
Requires one of:
game_id or season_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
season_idquerybigintoptionalFilter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
operator_idquerybigintoptionalFilter by sportsbook / operator.
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_lines?game_id=1'Responses
200game_lines rows matching the declared filter set, wrapped in { game_lines, 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(18 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 43434 | |
operator_id | bigint | Data source (ESPN, DraftKings, FanDuel, nflverse, etc.) e.g. 6 | |
season_id | bigint | Denormalized for efficient season-level queries e.g. 2024 | |
captured_at | timestamptz | — | When this snapshot was captured e.g. 2024-09-15T17:00:00.000Z |
implied_away_score | decimalnullable | — | Calculated from spread + total e.g. 21.5000 |
implied_away_win_pct | decimalnullable | — | From moneyline, 0-1 e.g. 0.4464 |
implied_home_score | decimalnullable | — | Calculated from spread + total e.g. 23.0000 |
implied_home_win_pct | decimalnullable | — | From moneyline, 0-1 e.g. 0.5968 |
is_opening | boolean | — | True if this is the opening line Values:falsetrue |
moneyline_away | integernullable | — | American odds for away team win e.g. 124 |
moneyline_home | integernullable | — | American odds for home team win e.g. -148 |
over_odds | integernullable | — | American odds for over e.g. -110 |
spread | decimalnullable | — | Home team spread (e.g., -3.5 means home favored by 3.5) e.g. 3.0000 |
spread_away_odds | integernullable | — | American odds for away spread e.g. -110 |
spread_home_odds | integernullable | — | American odds for home spread (e.g., -110) e.g. -110 |
total | decimalnullable | — | Combined score total line (e.g., 47.5) e.g. 44.5000 |
under_odds | integernullable | — | American odds for under e.g. -110 |
GET/api/v1/nfl/game_lines/{id}Get a single game_line by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_line 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_lines/{pk_value}'Responses
200Single game_line row.application/jsonshow example ▸
404Row not found.
Response Schema(18 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 43434 | |
operator_id | bigint | Data source (ESPN, DraftKings, FanDuel, nflverse, etc.) e.g. 6 | |
season_id | bigint | Denormalized for efficient season-level queries e.g. 2024 | |
captured_at | timestamptz | — | When this snapshot was captured e.g. 2024-09-15T17:00:00.000Z |
implied_away_score | decimalnullable | — | Calculated from spread + total e.g. 21.5000 |
implied_away_win_pct | decimalnullable | — | From moneyline, 0-1 e.g. 0.4464 |
implied_home_score | decimalnullable | — | Calculated from spread + total e.g. 23.0000 |
implied_home_win_pct | decimalnullable | — | From moneyline, 0-1 e.g. 0.5968 |
is_opening | boolean | — | True if this is the opening line Values:falsetrue |
moneyline_away | integernullable | — | American odds for away team win e.g. 124 |
moneyline_home | integernullable | — | American odds for home team win e.g. -148 |
over_odds | integernullable | — | American odds for over e.g. -110 |
spread | decimalnullable | — | Home team spread (e.g., -3.5 means home favored by 3.5) e.g. 3.0000 |
spread_away_odds | integernullable | — | American odds for away spread e.g. -110 |
spread_home_odds | integernullable | — | American odds for home spread (e.g., -110) e.g. -110 |
total | decimalnullable | — | Combined score total line (e.g., 47.5) e.g. 44.5000 |
under_odds | integernullable | — | American odds for under e.g. -110 |
game_player_props
nfl.game_player_propsNFL player prop bets for each game — passing yards, rushing touchdowns, receptions, and other player-statistic markets offered by sportsbooks.
GET/api/v1/nfl/game_player_propsList game_player_props for NFL
Requires one of:
game_id or player_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
player_idquerybigintoptionalFilter to a single player.
operator_idquerybigintoptionalFilter by sportsbook / operator.
categoryquerystringoptionalFilter by category.
market_keyquerystringoptionalFilter by raw market key (e.g., player_reception_yds).
is_openingquerybooleanoptionalFilter to opening lines only.
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_player_props?game_id=1'Responses
200game_player_props rows matching the declared filter set, wrapped in { game_player_props, 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(18 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 43403 | |
operator_id | bigint | Usually consensus e.g. 6 | |
player_id | bigint | — e.g. 693 | |
season_id | bigint | Denormalized for efficient season-level queries e.g. 2026 | |
book_count | integer | — | Number of curated books contributing to this consensus value e.g. 2 |
captured_at | timestamptz | — | — e.g. 2026-09-07T11:18:42.386Z |
category | string | — | Canonical prop category. Common values:
- passing_yds, passing_tds, passing_attempts, completions, interceptions
- rushing_yds, rushing_tds, rushing_attempts
- receiving_yds, receiving_tds, receptions, targets
- longest_reception, longest_rush, longest_pass
- sacks, tackles, interceptions_def
- anytime_td, first_td
Values:anytime_tdreceiving_ydsreceptionslast_tdfirst_tdrushing_ydspassing_tdscompletionsrushing_attemptsinterceptionspassing_ydspassing_attempts |
is_opening | boolean | — | True for the first capture of a (game, player, market, line) Values:truefalse |
line | decimalnullable | — | Prop line for over/under markets (275.5 yards, 1.5 TDs). NULL for yes/no markets. e.g. 1.5000 |
market_key | string | — | Raw market key from source API (e.g., player_reception_yds) Values:player_anytime_tdplayer_reception_ydsplayer_receptionsplayer_last_tdplayer_1st_tdplayer_rush_ydsplayer_pass_tdsplayer_pass_completionsplayer_rush_attemptsplayer_pass_interceptio…player_pass_ydsplayer_pass_attempts |
no_odds | integernullable | — | American odds for no (anytime_td, first_td) e.g. — (all-null in sample) |
outcome_type | string | — | ou | yes_no Values:ouyes_no |
over_odds | integernullable | — | American odds for over e.g. -114 |
period_code | stringnullable | — | Optional period code (1Q, 1H). NULL = full game. e.g. — (all-null in sample) |
subcategory | stringnullable | — | Optional subtype (alternate, boosted, etc.) e.g. — (all-null in sample) |
under_odds | integernullable | — | American odds for under e.g. -114 |
yes_odds | integernullable | — | American odds for yes (anytime_td, first_td) e.g. 4000 |
GET/api/v1/nfl/game_player_props/{id}Get a single game_player_prop by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_player_prop 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_player_props/{pk_value}'Responses
200Single game_player_prop row.application/jsonshow example ▸
404Row not found.
Response Schema(18 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 43403 | |
operator_id | bigint | Usually consensus e.g. 6 | |
player_id | bigint | — e.g. 693 | |
season_id | bigint | Denormalized for efficient season-level queries e.g. 2026 | |
book_count | integer | — | Number of curated books contributing to this consensus value e.g. 2 |
captured_at | timestamptz | — | — e.g. 2026-09-07T11:18:42.386Z |
category | string | — | Canonical prop category. Common values:
- passing_yds, passing_tds, passing_attempts, completions, interceptions
- rushing_yds, rushing_tds, rushing_attempts
- receiving_yds, receiving_tds, receptions, targets
- longest_reception, longest_rush, longest_pass
- sacks, tackles, interceptions_def
- anytime_td, first_td
Values:anytime_tdreceiving_ydsreceptionslast_tdfirst_tdrushing_ydspassing_tdscompletionsrushing_attemptsinterceptionspassing_ydspassing_attempts |
is_opening | boolean | — | True for the first capture of a (game, player, market, line) Values:truefalse |
line | decimalnullable | — | Prop line for over/under markets (275.5 yards, 1.5 TDs). NULL for yes/no markets. e.g. 1.5000 |
market_key | string | — | Raw market key from source API (e.g., player_reception_yds) Values:player_anytime_tdplayer_reception_ydsplayer_receptionsplayer_last_tdplayer_1st_tdplayer_rush_ydsplayer_pass_tdsplayer_pass_completionsplayer_rush_attemptsplayer_pass_interceptio…player_pass_ydsplayer_pass_attempts |
no_odds | integernullable | — | American odds for no (anytime_td, first_td) e.g. — (all-null in sample) |
outcome_type | string | — | ou | yes_no Values:ouyes_no |
over_odds | integernullable | — | American odds for over e.g. -114 |
period_code | stringnullable | — | Optional period code (1Q, 1H). NULL = full game. e.g. — (all-null in sample) |
subcategory | stringnullable | — | Optional subtype (alternate, boosted, etc.) e.g. — (all-null in sample) |
under_odds | integernullable | — | American odds for under e.g. -114 |
yes_odds | integernullable | — | American odds for yes (anytime_td, first_td) e.g. 4000 |
Lineups & Roster
coaching_staff_tenures
nfl.coaching_staff_tenuresEvery coaching change across NFL history with dates — when each head coach, offensive coordinator, and defensive coordinator started, when they left, and why (fired, resigned, promoted, retired).
GET/api/v1/nfl/coaching_staff_tenuresList coaching_staff_tenures for NFL
Requires one of:
team_id — requests satisfying none of these return 400.Parameters
team_idquerybigintoptionalFilter by team.
season_idquerybigintoptionalFilter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
positionquerystringoptionalFilter by player position. Values: DC, HC, OC.
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/coaching_staff_tenures?team_id=1'Responses
200coaching_staff_tenures rows matching the declared filter set, wrapped in { coaching_staff_tenures, 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(11 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
season_id | bigint | Reference to the season e.g. 2024 | |
team_id | bigint | Reference to the team e.g. 6 | |
effective_date | date | — | Date this coach started in this role e.g. 2023-01-01 |
end_date | datenullable | — | Date this coach ended (null if current) e.g. 2024-11-29 |
first_name | stringnullable | — | — e.g. Mike |
full_name | string | — | Coach full name e.g. Kyle Shanahan |
is_interim | boolean | — | — Values:falsetrue |
last_name | stringnullable | — | — e.g. Harbaugh |
position | string | — | Coaching position (HC, OC, DC) Values:HCOCDC |
reason | stringnullable | — | Reason for change (fired, resigned, hired, promoted) e.g. fired |
GET/api/v1/nfl/coaching_staff_tenures/{id}Get a single coaching_staff_tenure by id
Parameters
idpathbigintrequiredPrimary key (id) of the coaching_staff_tenure 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/coaching_staff_tenures/{pk_value}'Responses
200Single coaching_staff_tenure row.application/jsonshow example ▸
404Row not found.
Response Schema(11 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
season_id | bigint | Reference to the season e.g. 2024 | |
team_id | bigint | Reference to the team e.g. 6 | |
effective_date | date | — | Date this coach started in this role e.g. 2023-01-01 |
end_date | datenullable | — | Date this coach ended (null if current) e.g. 2024-11-29 |
first_name | stringnullable | — | — e.g. Mike |
full_name | string | — | Coach full name e.g. Kyle Shanahan |
is_interim | boolean | — | — Values:falsetrue |
last_name | stringnullable | — | — e.g. Harbaugh |
position | string | — | Coaching position (HC, OC, DC) Values:HCOCDC |
reason | stringnullable | — | Reason for change (fired, resigned, hired, promoted) e.g. fired |
coaching_staffs
nfl.coaching_staffsThe coaching staff for each NFL team at a given season — head coach, offensive coordinator, defensive coordinator, special teams coordinator, and position coaches.
GET/api/v1/nfl/coaching_staffsList coaching_staffs for NFL
Requires one of:
season_id — requests satisfying none of these return 400.Parameters
team_idquerybigintoptionalFilter by team.
season_idquerybigintoptionalFilter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
positionquerystringoptionalFilter by player position.
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/coaching_staffs?season_id=2026'Responses
200coaching_staffs rows matching the declared filter set, wrapped in { coaching_staffs, 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(8 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
season_id | bigint | — e.g. 2024 | |
team_id | bigint | — e.g. 1 | |
experience | integernullable | — | — e.g. — (all-null in sample) |
first_name | string | — | — e.g. Mike |
full_name | string | — | — e.g. Thomas Brown |
last_name | string | — | — e.g. Harbaugh |
position | string | — | — Values:DCHCOC |
GET/api/v1/nfl/coaching_staffs/{id}Get a single coaching_staff by id
Parameters
idpathbigintrequiredPrimary key (id) of the coaching_staff 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/coaching_staffs/{pk_value}'Responses
200Single coaching_staff row.application/jsonshow example ▸
404Row not found.
Response Schema(8 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
season_id | bigint | — e.g. 2024 | |
team_id | bigint | — e.g. 1 | |
experience | integernullable | — | — e.g. — (all-null in sample) |
first_name | string | — | — e.g. Mike |
full_name | string | — | — e.g. Thomas Brown |
last_name | string | — | — e.g. Harbaugh |
position | string | — | — Values:DCHCOC |
depth_charts
nfl.depth_chartsOne player's depth-chart slot for a given team in a given NFL game — position, depth order (starter, backup, …), roster status, and game context. Exactly one active depth chart per game.
GET/api/v1/nfl/depth_chartsList depth_charts for NFL
Requires one of:
game_id or team_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
team_idquerybigintoptionalFilter by team.
season_idquerybigintoptionalFilter to a single season.
weekqueryintegeroptionalFilter by week of the season.
player_idquerybigintoptionalFilter to a single player.
positionquerystringoptionalFilter by player position. Values: C, CB, DB, DE, DL, DT, FB, FS, G, ILB, K, LB, LS, MLB, NT, OLB, P, QB, RB, S, SAF, SS, T, TE, WR.
limitqueryintegeroptionaldefault 100Page size. Defaults to 100; 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/depth_charts?game_id=1'Responses
200depth_charts rows matching the declared filter set, wrapped in { depth_charts, 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(15 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
elias_id | stringnullable | — | Elias Sports Bureau player identifier (nullable — populated only when the source feed includes Elias IDs). e.g. — (all-null in sample) |
game_id | bigint | FK to nfl.games — the game this depth chart is associated with. e.g. 120 | |
player_id | bigint | FK to nfl.players — the player occupying this depth-chart slot. e.g. 19 | |
season_id | bigint | FK to nfl.seasons — the season containing this game. e.g. 2024 | |
team_id | bigint | FK to nfl.teams — the team whose depth chart this row belongs to. e.g. 32 | |
depth_order | integernullable | — | Depth-chart rank at this position — 1 for the starter, 2 for the primary backup, etc. NFL depth charts typically run 1–5 deep at each position. e.g. 1 |
depth_position | string | — | Position slot on the depth chart, which can differ from the player's primary position when they're listed at a secondary position (e.g., a player whose primary position is T may also appear on the depth chart at G). Values:DTWRDETQBLSGTECBILBKOLBCFSPSSNTRBFBMLB |
depth_team | stringnullable | — | Sub-team designation within the depth chart when present (e.g., a formation-specific team grouping). Sparse — typically NULL. e.g. — (all-null in sample) |
formation | stringnullable | — | Formation unit this slot belongs to (e.g., OFF, DEF, ST). Sparse — typically NULL. Values:offensedefensespecial_teams |
game_type | string | — | Phase of the season: REG (regular season), WC (Wild Card), DIV (Divisional), CON (Conference Championship), SB (Super Bowl). Values:REGDIVWCCONSB |
jersey_number | integernullable | — | Player's jersey number on the team for this game (nullable — populated when the depth chart includes uniform numbers). e.g. — (all-null in sample) |
position | string | — | Player's listed position abbreviation (e.g., QB, RB, WR, T, DT, CB, MLB, K, P). e.g. WR |
status | stringnullable | — | NFL roster status code at the time of the chart: ACT (active), DEV (practice squad / developmental), INA (inactive), RES (reserve / IR), EXE (exempt), CUT (released), TRC (traded — pending), TRD (traded), RET (retired), E01 (other transactional status). Values:ActiveReservePracticeSquadInactiveRetiredCutExempt |
week | integer | — | NFL week number within the season (1-18 regular season; postseason weeks use higher numbers per league convention). e.g. 15 |
GET/api/v1/nfl/depth_charts/{id}Get a single depth_chart by id
Parameters
idpathbigintrequiredPrimary key (id) of the depth_chart 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/depth_charts/{pk_value}'Responses
200Single depth_chart row.application/jsonshow example ▸
404Row not found.
Response Schema(15 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
elias_id | stringnullable | — | Elias Sports Bureau player identifier (nullable — populated only when the source feed includes Elias IDs). e.g. — (all-null in sample) |
game_id | bigint | FK to nfl.games — the game this depth chart is associated with. e.g. 120 | |
player_id | bigint | FK to nfl.players — the player occupying this depth-chart slot. e.g. 19 | |
season_id | bigint | FK to nfl.seasons — the season containing this game. e.g. 2024 | |
team_id | bigint | FK to nfl.teams — the team whose depth chart this row belongs to. e.g. 32 | |
depth_order | integernullable | — | Depth-chart rank at this position — 1 for the starter, 2 for the primary backup, etc. NFL depth charts typically run 1–5 deep at each position. e.g. 1 |
depth_position | string | — | Position slot on the depth chart, which can differ from the player's primary position when they're listed at a secondary position (e.g., a player whose primary position is T may also appear on the depth chart at G). Values:DTWRDETQBLSGTECBILBKOLBCFSPSSNTRBFBMLB |
depth_team | stringnullable | — | Sub-team designation within the depth chart when present (e.g., a formation-specific team grouping). Sparse — typically NULL. e.g. — (all-null in sample) |
formation | stringnullable | — | Formation unit this slot belongs to (e.g., OFF, DEF, ST). Sparse — typically NULL. Values:offensedefensespecial_teams |
game_type | string | — | Phase of the season: REG (regular season), WC (Wild Card), DIV (Divisional), CON (Conference Championship), SB (Super Bowl). Values:REGDIVWCCONSB |
jersey_number | integernullable | — | Player's jersey number on the team for this game (nullable — populated when the depth chart includes uniform numbers). e.g. — (all-null in sample) |
position | string | — | Player's listed position abbreviation (e.g., QB, RB, WR, T, DT, CB, MLB, K, P). e.g. WR |
status | stringnullable | — | NFL roster status code at the time of the chart: ACT (active), DEV (practice squad / developmental), INA (inactive), RES (reserve / IR), EXE (exempt), CUT (released), TRC (traded — pending), TRD (traded), RET (retired), E01 (other transactional status). Values:ActiveReservePracticeSquadInactiveRetiredCutExempt |
week | integer | — | NFL week number within the season (1-18 regular season; postseason weeks use higher numbers per league convention). e.g. 15 |
game_team_rosters
nfl.game_team_rostersThe gameday roster for each NFL game — every player who suited up that day, who started, who was inactive, and at what position.
GET/api/v1/nfl/game_team_rostersList game_team_rosters for NFL
Requires one of:
game_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
team_idquerybigintoptionalFilter by team.
player_idquerybigintoptionalFilter to a single player.
positionquerystringoptionalFilter by player position. Values: C, CB, DB, DE, DL, DT, FB, FS, G, H, ILB, K, LB, LILB, LOLB, LOT, LS, MLB, NT, OL, OLB, OT, P, PK, PR, QB, RB, RILB, ROT, S, SAF, T, TE, WR.
statusquerystringoptionalFilter by game-roster status (readable single-word vocabulary; PracticeSquadReleased covers the nflverse TRC/TRD codes). Values: Active, Cut, Exempt, ExemptInternational, Inactive, NonFootballInjury, PhysicallyUnableToPerform, PracticeSquad, PracticeSquadReleased, ReleasedFromInjuredReserve, Reserve, RestrictedFreeAgent, Retired, Suspended, UnrestrictedFreeAgent, Waived.
depth_orderqueryintegeroptionalFilter by depth-chart rank (e.g., 1 for starters). Range syntax: depth_order__lte=.
formationquerystringoptionalFilter by unit/formation. Values: offense, defense, special_teams.
injury_statusquerystringoptionalFilter by injury status designation. Values: Active, Doubtful, Injured Reserve, Note, Out, Questionable, Unknown.
modequerystringoptionaldefault preTime wall. `pre` (default): each value as it stood at its game's kickoff; post-game fields are null. `full`: the latest value before week end (the first Tuesday 04:00 ET after the game), post-game fields included. See the Data timing guide. Values: pre, full.
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_team_rosters?game_id=1'Responses
200game_team_rosters rows matching the declared filter set, wrapped in { game_team_rosters, 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(12 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 120 | |
player_id | bigint | — e.g. 19 | |
team_id | bigint | — e.g. 32 | |
comment | stringnullable | — | Optional note from the gameday roster report (e.g., reason for inactive). e.g. Knee |
depth_order | integernullable | — | Depth-chart rank at this position for this game (1 = starter, 2 = backup, etc.). e.g. 1 |
depth_position | stringnullable | — | Position slot on the depth chart for this game (e.g. QB, RB, WR, LT, CB). e.g. WR |
formation | stringnullable | — | Formation unit this slot belongs to (offense, defense, special_teams). Values:offensedefensespecial_teams |
injury_status | stringnullable | — | Final game injury report designation as of kickoff lock (e.g. Questionable, Doubtful, Out, or NULL if uninjured). Values:QuestionableOutDoubtfulNote |
position | stringnullable | — | Position the player suited up at for this game. Values:DLOLDBWRLBQBLSTEKPRB |
starter | boolean | — | True if the player started this game. Values:truefalse |
status | stringnullable | — | Roster status for the game, readable single-word vocabulary (`Active`, `Inactive`, `PracticeSquad`, `Reserve`, `Cut`, `Retired`, `Exempt`, `PracticeSquadReleased`). Values:ActiveReservePracticeSquadInactiveRetiredCutExempt |
GET/api/v1/nfl/game_team_rosters/{id}Get a single game_team_roster by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_team_roster row.
modequerystringoptionaldefault preTime wall. `pre` (default): each value as it stood at its game's kickoff; post-game fields are null. `full`: the latest value before week end (the first Tuesday 04:00 ET after the game), post-game fields included. See the Data timing guide. Values: pre, full.
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_team_rosters/{pk_value}'Responses
200Single game_team_roster row.application/jsonshow example ▸
404Row not found.
Response Schema(12 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 120 | |
player_id | bigint | — e.g. 19 | |
team_id | bigint | — e.g. 32 | |
comment | stringnullable | — | Optional note from the gameday roster report (e.g., reason for inactive). e.g. Knee |
depth_order | integernullable | — | Depth-chart rank at this position for this game (1 = starter, 2 = backup, etc.). e.g. 1 |
depth_position | stringnullable | — | Position slot on the depth chart for this game (e.g. QB, RB, WR, LT, CB). e.g. WR |
formation | stringnullable | — | Formation unit this slot belongs to (offense, defense, special_teams). Values:offensedefensespecial_teams |
injury_status | stringnullable | — | Final game injury report designation as of kickoff lock (e.g. Questionable, Doubtful, Out, or NULL if uninjured). Values:QuestionableOutDoubtfulNote |
position | stringnullable | — | Position the player suited up at for this game. Values:DLOLDBWRLBQBLSTEKPRB |
starter | boolean | — | True if the player started this game. Values:truefalse |
status | stringnullable | — | Roster status for the game, readable single-word vocabulary (`Active`, `Inactive`, `PracticeSquad`, `Reserve`, `Cut`, `Retired`, `Exempt`, `PracticeSquadReleased`). Values:ActiveReservePracticeSquadInactiveRetiredCutExempt |
game_team_staffs
nfl.game_team_staffsThe coaching staff on the sideline for each NFL game — head coach, offensive coordinator, defensive coordinator, for both teams.
GET/api/v1/nfl/game_team_staffsList game_team_staffs for NFL
Requires one of:
game_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
team_idquerybigintoptionalFilter by team.
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_team_staffs?game_id=1'Responses
200game_team_staffs rows matching the declared filter set, wrapped in { game_team_staffs, 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(6 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | Reference to the game e.g. 49 | |
team_id | bigint | Reference to the team e.g. 16 | |
defensive_coordinator | stringnullable | — | Defensive coordinator name e.g. Aaron Glenn |
head_coach | stringnullable | — | Head coach name (from nflverse) e.g. Andy Reid |
offensive_coordinator | stringnullable | — | Offensive coordinator name e.g. Ben Johnson |
GET/api/v1/nfl/game_team_staffs/{id}Get a single game_team_staff by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_team_staff 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_team_staffs/{pk_value}'Responses
200Single game_team_staff row.application/jsonshow example ▸
404Row not found.
Response Schema(6 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | Reference to the game e.g. 49 | |
team_id | bigint | Reference to the team e.g. 16 | |
defensive_coordinator | stringnullable | — | Defensive coordinator name e.g. Aaron Glenn |
head_coach | stringnullable | — | Head coach name (from nflverse) e.g. Andy Reid |
offensive_coordinator | stringnullable | — | Offensive coordinator name e.g. Ben Johnson |
team_player_rosters
nfl.team_player_rostersEach NFL club's roster today — the players on the club's current game roster (its next game not yet kicked off, else its latest game), one row per player, with the game's status and injury report. Between seasons, until 21 days before a club's next game, it shows the club's last game roster as it stood at that kickoff. For past weeks, use the game rosters (game_team_rosters).
GET/api/v1/nfl/team_player_rostersList team_player_rosters for NFL
Requires one of:
team_id + season_id — requests satisfying none of these return 400.Parameters
team_idquerybigintoptionalFilter by team.
player_idquerybigintoptionalFilter to a single player.
season_idquerybigintoptionalFilter to a season by year (e.g., 2026 for the 2026-27 season). Defaults to the current season. The roster is today's, so a past season returns no rows.
positionquerystringoptionalFilter by player position. Values: C, CB, DB, DE, DL, DT, FB, FS, G, ILB, K, LB, LS, MLB, NT, OL, OLB, OT, P, QB, RB, S, SAF, TE, WR.
modequerystringoptionaldefault preTime wall. `pre` (default): each value as it stood at its game's kickoff; post-game fields are null. `full`: the latest value before week end (the first Tuesday 04:00 ET after the game), post-game fields included. See the Data timing guide. Values: pre, full.
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/team_player_rosters?team_id=1&season_id=2026'Responses
200team_player_rosters rows matching the declared filter set, wrapped in { team_player_rosters, 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(17 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | The club's current game — its next game not yet kicked off, else its latest game. | |
player_id | bigint | — e.g. 765 | |
season_id | bigint | — e.g. 2024 | |
team_id | bigint | — e.g. 32 | |
day | integer | — | The first game day of the current game's week (YYYYMMDD, Eastern), usually its Thursday; the same value for every club that week. e.g. 20240905 |
depth_order | integernullable | — | Depth-chart order at this position for the current game (1 = starter); empty when not on the chart or not active. e.g. 1 |
game_time | timestamptznullable | — | Kickoff time of the current game. |
injury_status | stringnullable | — | Injury designation on the current game roster (e.g. Questionable, Doubtful, Out; empty when healthy). |
position | stringnullable | — | The player's position on the club (a position from the filter list when the game roster has one, else his primary position). Values:DBOLDLLBWRRBTEQBKPLS |
position_group | stringnullable | — | Position group (`Offense`, `Defense`, `Special Teams`). Values:OffenseDefenseSpecial Teams |
practice_status | stringnullable | — | The injury report's practice participation for the current game, as the report words it (`DNP`, `LP`, `FP`, or the long form such as `Did Not Participate In Practice`); empty when the player is not on the practice report. |
report_primary_injury | stringnullable | — | The injury report's primary injury for the current game. |
report_status | stringnullable | — | The official injury report's game status for the current game, as the report words it (e.g. `Out`, `Doubtful`, `Questionable`, `Active`, `Injured Reserve`), from the injury report of that same game only; empty when the player is not on it. |
season_type | stringnullable | — | Season type of the current game (regular_season, postseason, preseason). |
status | stringnullable | — | Roster status for the current game (`Active`, `Inactive`, `PracticeSquad`, `Reserve`, `Exempt`, `PhysicallyUnableToPerform`, `NonFootballInjury`, `Suspended`, ...); only players on the club appear. |
week | integernullable | — | Week of the current game within its season type. |
GET/api/v1/nfl/team_player_rosters/{id}Get a single team_player_roster by id
Parameters
idpathbigintrequiredPrimary key (id) of the team_player_roster row.
modequerystringoptionaldefault preTime wall. `pre` (default): each value as it stood at its game's kickoff; post-game fields are null. `full`: the latest value before week end (the first Tuesday 04:00 ET after the game), post-game fields included. See the Data timing guide. Values: pre, full.
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/team_player_rosters/{pk_value}'Responses
200Single team_player_roster row.application/jsonshow example ▸
404Row not found.
Response Schema(17 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | The club's current game — its next game not yet kicked off, else its latest game. | |
player_id | bigint | — e.g. 765 | |
season_id | bigint | — e.g. 2024 | |
team_id | bigint | — e.g. 32 | |
day | integer | — | The first game day of the current game's week (YYYYMMDD, Eastern), usually its Thursday; the same value for every club that week. e.g. 20240905 |
depth_order | integernullable | — | Depth-chart order at this position for the current game (1 = starter); empty when not on the chart or not active. e.g. 1 |
game_time | timestamptznullable | — | Kickoff time of the current game. |
injury_status | stringnullable | — | Injury designation on the current game roster (e.g. Questionable, Doubtful, Out; empty when healthy). |
position | stringnullable | — | The player's position on the club (a position from the filter list when the game roster has one, else his primary position). Values:DBOLDLLBWRRBTEQBKPLS |
position_group | stringnullable | — | Position group (`Offense`, `Defense`, `Special Teams`). Values:OffenseDefenseSpecial Teams |
practice_status | stringnullable | — | The injury report's practice participation for the current game, as the report words it (`DNP`, `LP`, `FP`, or the long form such as `Did Not Participate In Practice`); empty when the player is not on the practice report. |
report_primary_injury | stringnullable | — | The injury report's primary injury for the current game. |
report_status | stringnullable | — | The official injury report's game status for the current game, as the report words it (e.g. `Out`, `Doubtful`, `Questionable`, `Active`, `Injured Reserve`), from the injury report of that same game only; empty when the player is not on it. |
season_type | stringnullable | — | Season type of the current game (regular_season, postseason, preseason). |
status | stringnullable | — | Roster status for the current game (`Active`, `Inactive`, `PracticeSquad`, `Reserve`, `Exempt`, `PhysicallyUnableToPerform`, `NonFootballInjury`, `Suspended`, ...); only players on the club appear. |
week | integernullable | — | Week of the current game within its season type. |
Misc
stadiums
nfl.stadiumsVenues that have hosted NFL games — current home stadiums, neutral-site locations like international and Super Bowl venues, and historical fields no longer in use.
GET/api/v1/nfl/stadiumsList stadiums for NFL
Parameters
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/stadiums?limit=3'Responses
200stadiums rows matching the declared filter set, wrapped in { stadiums, 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(20 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
league_stadium_id | stringnullable | — | Official NFL stadium ID from API e.g. 00081065-961a-76b2-de6a-b6da2602a129 |
address | stringnullable | — | Street address of the stadium. e.g. 1 Patriot Pl, Foxborough, MA 02035 |
capacity | integernullable | — | Approximate seating capacity for football configuration. e.g. 65000 |
city | string | — | — e.g. Santa Clara |
closed_date | timestamptznullable | — | Date the stadium closed (null if currently in use). e.g. — (all-null in sample) |
country | stringnullable | — | — Values:USADEUGBRMEXBRAESPIRLAUSFRA |
description | stringnullable | — | — e.g. — (all-null in sample) |
elevation | floatnullable | — | Elevation in feet above sea level e.g. 256 |
image_url | stringnullable | — | URL to aerial/overview image of stadium e.g. https://upload.wikimedia.org/wikipedia/commons/thumb/7/70/G… |
latitude | floatnullable | — | Latitude of the stadium centroid (decimal degrees, WGS84). e.g. 37.4033 |
longitude | floatnullable | — | Longitude of the stadium centroid (decimal degrees, WGS84). e.g. -121.9694 |
name | string | — | — e.g. Gillette Stadium |
opened_date | timestamptznullable | — | Date the stadium opened for play. e.g. 2002-01-01T00:00:00.000Z |
orientation | floatnullable | — | Field orientation in degrees (0-360). Direction end zones face, measured from south end zone. 0/360=North, 90=East, 180=South, 270=West e.g. 0 |
roof_type | stringnullable | — | Roof type (e.g., `open`, `dome`, `retractable`). Values:OpenRetractableDome |
state | stringnullable | — | — e.g. FL |
surface | stringnullable | — | Playing surface type (e.g., `grass`, `FieldTurf`, `Astroturf`). Values:GrassFieldTurfHybrid GrassA-Turf TitanBermuda GrassUBU Sports Speed Series… |
team_name | stringnullable | — | Team commonly associated with this stadium at the time (display string, not a foreign key). e.g. NE |
timezone | stringnullable | — | IANA timezone (e.g., America/New_York) Values:America/New_YorkAmerica/ChicagoAmerica/Los_AngelesEurope/BerlinEurope/LondonAmerica/Mexico_CityAmerica/Sao_PauloEurope/MadridAmerica/Indiana/Indiana…America/DenverAmerica/DetroitAmerica/PhoenixEurope/DublinAustralia/SydneyEurope/Paris |
GET/api/v1/nfl/stadiums/{id}Get a single stadium by id
Parameters
idpathbigintrequiredPrimary key (id) of the stadium 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/stadiums/{pk_value}'Responses
200Single stadium row.application/jsonshow example ▸
404Row not found.
Response Schema(20 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
league_stadium_id | stringnullable | — | Official NFL stadium ID from API e.g. 00081065-961a-76b2-de6a-b6da2602a129 |
address | stringnullable | — | Street address of the stadium. e.g. 1 Patriot Pl, Foxborough, MA 02035 |
capacity | integernullable | — | Approximate seating capacity for football configuration. e.g. 65000 |
city | string | — | — e.g. Santa Clara |
closed_date | timestamptznullable | — | Date the stadium closed (null if currently in use). e.g. — (all-null in sample) |
country | stringnullable | — | — Values:USADEUGBRMEXBRAESPIRLAUSFRA |
description | stringnullable | — | — e.g. — (all-null in sample) |
elevation | floatnullable | — | Elevation in feet above sea level e.g. 256 |
image_url | stringnullable | — | URL to aerial/overview image of stadium e.g. https://upload.wikimedia.org/wikipedia/commons/thumb/7/70/G… |
latitude | floatnullable | — | Latitude of the stadium centroid (decimal degrees, WGS84). e.g. 37.4033 |
longitude | floatnullable | — | Longitude of the stadium centroid (decimal degrees, WGS84). e.g. -121.9694 |
name | string | — | — e.g. Gillette Stadium |
opened_date | timestamptznullable | — | Date the stadium opened for play. e.g. 2002-01-01T00:00:00.000Z |
orientation | floatnullable | — | Field orientation in degrees (0-360). Direction end zones face, measured from south end zone. 0/360=North, 90=East, 180=South, 270=West e.g. 0 |
roof_type | stringnullable | — | Roof type (e.g., `open`, `dome`, `retractable`). Values:OpenRetractableDome |
state | stringnullable | — | — e.g. FL |
surface | stringnullable | — | Playing surface type (e.g., `grass`, `FieldTurf`, `Astroturf`). Values:GrassFieldTurfHybrid GrassA-Turf TitanBermuda GrassUBU Sports Speed Series… |
team_name | stringnullable | — | Team commonly associated with this stadium at the time (display string, not a foreign key). e.g. NE |
timezone | stringnullable | — | IANA timezone (e.g., America/New_York) Values:America/New_YorkAmerica/ChicagoAmerica/Los_AngelesEurope/BerlinEurope/LondonAmerica/Mexico_CityAmerica/Sao_PauloEurope/MadridAmerica/Indiana/Indiana…America/DenverAmerica/DetroitAmerica/PhoenixEurope/DublinAustralia/SydneyEurope/Paris |
referees
nfl.refereesNFL on-field officials — the seven-person crew of referees, umpires, head linesmen, line judges, field judges, side judges, and back judges who work each game.
GET/api/v1/nfl/refereesList referees for NFL
Parameters
activequerybooleanoptionalFilter by active status (defaults to true to show only currently-active rows; pass active=false to include inactive).
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/referees?limit=3'Responses
200referees rows matching the declared filter set, wrapped in { referees, 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(8 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
nfl_referee_id | integer | — | Official NFL identifier for the referee. e.g. 83 |
active | boolean | — | True for currently-active officials; false for retired. e.g. true |
experience | integernullable | — | Years of NFL officiating experience. e.g. — (all-null in sample) |
first_name | string | — | — e.g. Mark |
full_name | string | — | — e.g. Scott Helverson |
last_name | string | — | — e.g. Hill |
position | string | — | On-field crew position (e.g., `Referee`, `Umpire`, `Head Linesman`, `Side Judge`). e.g. Line Judge |
GET/api/v1/nfl/referees/{id}Get a single referee by id
Parameters
idpathbigintrequiredPrimary key (id) of the referee 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/referees/{pk_value}'Responses
200Single referee row.application/jsonshow example ▸
404Row not found.
Response Schema(8 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
nfl_referee_id | integer | — | Official NFL identifier for the referee. e.g. 83 |
active | boolean | — | True for currently-active officials; false for retired. e.g. true |
experience | integernullable | — | Years of NFL officiating experience. e.g. — (all-null in sample) |
first_name | string | — | — e.g. Mark |
full_name | string | — | — e.g. Scott Helverson |
last_name | string | — | — e.g. Hill |
position | string | — | On-field crew position (e.g., `Referee`, `Umpire`, `Head Linesman`, `Side Judge`). e.g. Line Judge |
operator_team_lookups
nfl.operator_team_lookupsHow each sportsbook and fantasy operator names every NFL team — the mapping from each operator's team code or abbreviation to the unified franchise record.
GET/api/v1/nfl/operator_team_lookupsList operator_team_lookups for NFL
Requires one of:
operator_id — requests satisfying none of these return 400.Parameters
operator_idquerybigintoptionalFilter by sportsbook / operator.
team_idquerybigintoptionalFilter by team.
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/operator_team_lookups?operator_id=1'Responses
200operator_team_lookups rows matching the declared filter set, wrapped in { operator_team_lookups, 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(6 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
operator_id | bigint | Reference to main.operator entity e.g. 4 | |
operator_team_id | string | — | External team ID from operator e.g. 28 |
team_id | bigint | Internal nfl.teams.id reference e.g. 32 | |
abbreviation | stringnullable | — | Team abbreviation for reconciliation e.g. — (all-null in sample) |
team_name | stringnullable | — | Team name for reconciliation e.g. Washington Commanders |
GET/api/v1/nfl/operator_team_lookups/{id}Get a single operator_team_lookup by id
Parameters
idpathbigintrequiredPrimary key (id) of the operator_team_lookup 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/operator_team_lookups/{pk_value}'Responses
200Single operator_team_lookup row.application/jsonshow example ▸
404Row not found.
Response Schema(6 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
operator_id | bigint | Reference to main.operator entity e.g. 4 | |
operator_team_id | string | — | External team ID from operator e.g. 28 |
team_id | bigint | Internal nfl.teams.id reference e.g. 32 | |
abbreviation | stringnullable | — | Team abbreviation for reconciliation e.g. — (all-null in sample) |
team_name | stringnullable | — | Team name for reconciliation e.g. Washington Commanders |
playoffs
nfl.playoffsThe NFL postseason bracket — Wild Card weekend, the Divisional Round, the Conference Championships, and the Super Bowl, with seeds, scores, and outcomes.
GET/api/v1/nfl/playoffsList playoffs for NFL
Requires one of:
season_id or home_team_id or away_team_id or status — requests satisfying none of these return 400.Parameters
season_idquerybigintoptionalFilter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
home_team_idquerybigintoptionalFilter by home team.
away_team_idquerybigintoptionalFilter by away team.
statusquerystringoptionalFilter by row status.
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/playoffs?season_id=2026'Responses
200playoffs rows matching the declared filter set, wrapped in { playoffs, 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(11 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
away_team_id | bigint | — e.g. 19 | |
home_team_id | bigint | — e.g. 16 | |
season_id | bigint | — e.g. 2024 | |
winner_team_id | bigintnullable | Winning team (FK to `teams`); null until the game completes. e.g. 16 | |
away_team_seed | integer | — | Playoff seed (1-7) of the away team for this matchup. e.g. 0 |
conference | stringnullable | — | Conference the matchup is contested within (`AFC`, `NFC`); null for the Super Bowl (inter-conference). Values:AFCNFC |
game_number | integer | — | Sequence number within the round (used to order multiple games in the same round). e.g. 1 |
home_team_seed | integer | — | Playoff seed (1-7) of the home team for this matchup. e.g. 0 |
playoff_round | string | — | Postseason round (`WildCard`, `Divisional`, `Conference Championship`, `Super Bowl`). Values:Wild CardDivisionalConference ChampionshipSuper Bowl |
status | string | — | Matchup status (`Scheduled`, `InProgress`, `Final`). e.g. Final |
GET/api/v1/nfl/playoffs/{id}Get a single playoff by id
Parameters
idpathbigintrequiredPrimary key (id) of the playoff 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/playoffs/{pk_value}'Responses
200Single playoff row.application/jsonshow example ▸
404Row not found.
Response Schema(11 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
away_team_id | bigint | — e.g. 19 | |
home_team_id | bigint | — e.g. 16 | |
season_id | bigint | — e.g. 2024 | |
winner_team_id | bigintnullable | Winning team (FK to `teams`); null until the game completes. e.g. 16 | |
away_team_seed | integer | — | Playoff seed (1-7) of the away team for this matchup. e.g. 0 |
conference | stringnullable | — | Conference the matchup is contested within (`AFC`, `NFC`); null for the Super Bowl (inter-conference). Values:AFCNFC |
game_number | integer | — | Sequence number within the round (used to order multiple games in the same round). e.g. 1 |
home_team_seed | integer | — | Playoff seed (1-7) of the home team for this matchup. e.g. 0 |
playoff_round | string | — | Postseason round (`WildCard`, `Divisional`, `Conference Championship`, `Super Bowl`). Values:Wild CardDivisionalConference ChampionshipSuper Bowl |
status | string | — | Matchup status (`Scheduled`, `InProgress`, `Final`). e.g. Final |
combine_results
nfl.combine_resultsNFL Scouting Combine results — every prospect's measurables and drill times from the annual Indianapolis combine (height, weight, 40-yard dash, vertical jump, bench press, broad jump, three-cone, shuttle).
GET/api/v1/nfl/combine_resultsList combine_results for NFL
Requires one of:
player_id or season + position — requests satisfying none of these return 400.Parameters
player_idquerybigintoptionalFilter to a single player.
seasonqueryintegeroptionalFilter by season start year.
positionquerystringoptionalFilter by player position. Values: C, CB, CB/WR, DB, DE, DL, DT, EDGE, FB, G, K, LB, LS, OG, OL, OLB, OT, P, QB, RB, S, SAF, TE, WR.
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/combine_results?player_id=1'Responses
200combine_results rows matching the declared filter set, wrapped in { combine_results, 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(16 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
cfb_id | stringnullable | — | College Football Reference player ID (external lookup). e.g. kaytron-allen-1 |
pfr_id | stringnullable | — | Pro Football Reference player ID (external lookup). e.g. AlleKa01 |
player_id | bigint | — e.g. 2707 | |
team_id | bigintnullable | — e.g. — (all-null in sample) | |
bench | integernullable | — | Bench press repetitions at 225 lbs. e.g. 21 |
broad_jump | integernullable | — | Broad jump distance in inches. e.g. 124 |
cone | decimalnullable | — | 3-cone drill time in seconds. e.g. 7.0000 |
forty | decimalnullable | — | 40-yard dash time in seconds. e.g. 4.4800 |
ht | stringnullable | — | Height as reported by the Combine (e.g., `6-2` for 6 feet 2 inches). Values:6-46-26-36-16-06-55-116-65-105-95-86-76-85-76-95-65-5 |
position | string | — | Position the player was measured as (e.g., QB, WR, RB, CB). e.g. WR |
school | stringnullable | — | College or last-affiliation school name. e.g. Georgia |
season | integer | — | Calendar year of the Combine (e.g., 2024 for the February 2024 combine). e.g. 2021 |
shuttle | decimalnullable | — | 20-yard shuttle time in seconds. e.g. 4.4000 |
vertical | decimalnullable | — | Vertical jump in inches. e.g. 34.5000 |
wt | integernullable | — | Weight in pounds. e.g. 205 |
GET/api/v1/nfl/combine_results/{id}Get a single combine_result by id
Parameters
idpathbigintrequiredPrimary key (id) of the combine_result 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/combine_results/{pk_value}'Responses
200Single combine_result row.application/jsonshow example ▸
404Row not found.
Response Schema(16 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
cfb_id | stringnullable | — | College Football Reference player ID (external lookup). e.g. kaytron-allen-1 |
pfr_id | stringnullable | — | Pro Football Reference player ID (external lookup). e.g. AlleKa01 |
player_id | bigint | — e.g. 2707 | |
team_id | bigintnullable | — e.g. — (all-null in sample) | |
bench | integernullable | — | Bench press repetitions at 225 lbs. e.g. 21 |
broad_jump | integernullable | — | Broad jump distance in inches. e.g. 124 |
cone | decimalnullable | — | 3-cone drill time in seconds. e.g. 7.0000 |
forty | decimalnullable | — | 40-yard dash time in seconds. e.g. 4.4800 |
ht | stringnullable | — | Height as reported by the Combine (e.g., `6-2` for 6 feet 2 inches). Values:6-46-26-36-16-06-55-116-65-105-95-86-76-85-76-95-65-5 |
position | string | — | Position the player was measured as (e.g., QB, WR, RB, CB). e.g. WR |
school | stringnullable | — | College or last-affiliation school name. e.g. Georgia |
season | integer | — | Calendar year of the Combine (e.g., 2024 for the February 2024 combine). e.g. 2021 |
shuttle | decimalnullable | — | 20-yard shuttle time in seconds. e.g. 4.4000 |
vertical | decimalnullable | — | Vertical jump in inches. e.g. 34.5000 |
wt | integernullable | — | Weight in pounds. e.g. 205 |
draft_picks
nfl.draft_picksEvery NFL Draft selection from the modern draft era — round, pick number, drafting team, college, and the career stats that followed (Pro Bowls, All-Pros, Hall of Fame, total games played, career statistics by position).
GET/api/v1/nfl/draft_picksList draft_picks for NFL
Requires one of:
season — requests satisfying none of these return 400.Parameters
seasonqueryintegeroptionalFilter by season start year.
roundqueryintegeroptionalFilter by draft round.
team_idquerybigintoptionalFilter by team.
player_idquerybigintoptionalFilter to a single player.
positionquerystringoptionalFilter by player position. Values: C, CB, DB, DE, DL, DT, FB, FS, G, K, LB, LS, NT, OG, OL, OLB, OT, P, QB, RB, S, SAF, T, TE, WR.
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/draft_picks?season=1'Responses
200draft_picks rows matching the declared filter set, wrapped in { draft_picks, 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(38 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
cfb_player_id | stringnullable | — | College Football Reference player ID. e.g. caleb-williams-3 |
gsis_id | string | — | Game Statistics and Information System ID (NFL official cross-system join key). e.g. |
pfr_player_id | string | — | Pro Football Reference player ID. e.g. WillCa03 |
player_id | bigint | — e.g. 3180 | |
team_id | bigint | — e.g. 15 | |
age | integernullable | — | Player age at the time of the draft. e.g. 23 |
allpro_count | integer | — | Career All-Pro selections. e.g. 0 |
car_av | integernullable | — | Career Approximate Value (Pro Football Reference, unweighted sum across seasons). e.g. — (all-null in sample) |
career_to_year | integernullable | — | Most recent NFL season the player appeared in (calendar year). e.g. 2025 |
category | string | — | Position category (e.g., `OFF`, `DEF`, `ST`). Values:DBDLOLWRLBRBTEQBPKLSFSOG |
college | string | — | College the player was drafted out of. e.g. Georgia |
def_ints | integer | — | Career defensive interceptions. e.g. 0 |
def_sacks | decimal | — | Career sacks (defensive; half-sacks supported as decimals). e.g. 0.0000 |
def_solo_tackles | integer | — | Career solo defensive tackles. e.g. 0 |
dr_av | integernullable | — | Approximate Value accumulated while with the drafting team. e.g. 0 |
games_played | integer | — | Total career regular-season games played. e.g. 0 |
is_hof | boolean | — | True if the player is enshrined in the Pro Football Hall of Fame. e.g. false |
pass_attempts | integer | — | Career pass attempts. e.g. 0 |
pass_completions | integer | — | Career pass completions. e.g. 0 |
pass_ints | integer | — | Career interceptions thrown. e.g. 0 |
pass_tds | integer | — | Career passing touchdowns. e.g. 0 |
pass_yds | integer | — | Career passing yards. e.g. 0 |
pfr_player_name | stringnullable | — | Player name as recorded on Pro Football Reference. e.g. Tyler Davis |
pick | integer | — | Pick number within the round. e.g. 1 |
position | string | — | Position the player was drafted at (e.g., QB, WR, DE). e.g. WR |
probowl_count | integer | — | Career Pro Bowl selections. e.g. 0 |
rec_tds | integer | — | Career receiving touchdowns. e.g. 0 |
rec_yds | integer | — | Career receiving yards. e.g. 0 |
receptions | integer | — | Career receptions. e.g. 0 |
round | integer | — | Draft round (1-7). e.g. 6 |
rush_atts | integer | — | Career rushing attempts. e.g. 0 |
rush_tds | integer | — | Career rushing touchdowns. e.g. 0 |
rush_yds | integer | — | Career rushing yards. e.g. 0 |
season | integer | — | Calendar year of the draft. e.g. 2022 |
seasons_started | integer | — | Number of NFL seasons in which the player was a primary starter. e.g. 0 |
side | string | — | Side of the ball (`OFF` or `DEF`). Values:ODS |
w_av | integernullable | — | Weighted Approximate Value (Pro Football Reference career composite metric). e.g. 0 |
GET/api/v1/nfl/draft_picks/{id}Get a single draft_pick by id
Parameters
idpathbigintrequiredPrimary key (id) of the draft_pick 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/draft_picks/{pk_value}'Responses
200Single draft_pick row.application/jsonshow example ▸
404Row not found.
Response Schema(38 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
cfb_player_id | stringnullable | — | College Football Reference player ID. e.g. caleb-williams-3 |
gsis_id | string | — | Game Statistics and Information System ID (NFL official cross-system join key). e.g. |
pfr_player_id | string | — | Pro Football Reference player ID. e.g. WillCa03 |
player_id | bigint | — e.g. 3180 | |
team_id | bigint | — e.g. 15 | |
age | integernullable | — | Player age at the time of the draft. e.g. 23 |
allpro_count | integer | — | Career All-Pro selections. e.g. 0 |
car_av | integernullable | — | Career Approximate Value (Pro Football Reference, unweighted sum across seasons). e.g. — (all-null in sample) |
career_to_year | integernullable | — | Most recent NFL season the player appeared in (calendar year). e.g. 2025 |
category | string | — | Position category (e.g., `OFF`, `DEF`, `ST`). Values:DBDLOLWRLBRBTEQBPKLSFSOG |
college | string | — | College the player was drafted out of. e.g. Georgia |
def_ints | integer | — | Career defensive interceptions. e.g. 0 |
def_sacks | decimal | — | Career sacks (defensive; half-sacks supported as decimals). e.g. 0.0000 |
def_solo_tackles | integer | — | Career solo defensive tackles. e.g. 0 |
dr_av | integernullable | — | Approximate Value accumulated while with the drafting team. e.g. 0 |
games_played | integer | — | Total career regular-season games played. e.g. 0 |
is_hof | boolean | — | True if the player is enshrined in the Pro Football Hall of Fame. e.g. false |
pass_attempts | integer | — | Career pass attempts. e.g. 0 |
pass_completions | integer | — | Career pass completions. e.g. 0 |
pass_ints | integer | — | Career interceptions thrown. e.g. 0 |
pass_tds | integer | — | Career passing touchdowns. e.g. 0 |
pass_yds | integer | — | Career passing yards. e.g. 0 |
pfr_player_name | stringnullable | — | Player name as recorded on Pro Football Reference. e.g. Tyler Davis |
pick | integer | — | Pick number within the round. e.g. 1 |
position | string | — | Position the player was drafted at (e.g., QB, WR, DE). e.g. WR |
probowl_count | integer | — | Career Pro Bowl selections. e.g. 0 |
rec_tds | integer | — | Career receiving touchdowns. e.g. 0 |
rec_yds | integer | — | Career receiving yards. e.g. 0 |
receptions | integer | — | Career receptions. e.g. 0 |
round | integer | — | Draft round (1-7). e.g. 6 |
rush_atts | integer | — | Career rushing attempts. e.g. 0 |
rush_tds | integer | — | Career rushing touchdowns. e.g. 0 |
rush_yds | integer | — | Career rushing yards. e.g. 0 |
season | integer | — | Calendar year of the draft. e.g. 2022 |
seasons_started | integer | — | Number of NFL seasons in which the player was a primary starter. e.g. 0 |
side | string | — | Side of the ball (`OFF` or `DEF`). Values:ODS |
w_av | integernullable | — | Weighted Approximate Value (Pro Football Reference career composite metric). e.g. 0 |
game_referees
nfl.game_refereesThe officiating crew working each NFL game — who refereed, who umpired, who judged each part of the field.
GET/api/v1/nfl/game_refereesList game_referees for NFL
Requires one of:
game_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
referee_idquerybigintoptionalFilter by referee.
positionquerystringoptionalFilter by crew position (e.g., `Referee`, `Umpire`).
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_referees?game_id=1'Responses
200game_referees rows matching the declared filter set, wrapped in { game_referees, 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(4 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 42276 | |
referee_id | bigint | — e.g. 30 | |
position | string | — | — Values:Back JudgeRefereeDown JudgeLine JudgeField JudgeSide JudgeUmpireAlternate 1Alternate 2Alternate 4Alternate 3Alternate 5AlternateAlternate 7Alternate 6Replay OfficialAlternate 8 |
GET/api/v1/nfl/game_referees/{id}Get a single game_referee by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_referee 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_referees/{pk_value}'Responses
200Single game_referee row.application/jsonshow example ▸
404Row not found.
Response Schema(4 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 42276 | |
referee_id | bigint | — e.g. 30 | |
position | string | — | — Values:Back JudgeRefereeDown JudgeLine JudgeField JudgeSide JudgeUmpireAlternate 1Alternate 2Alternate 4Alternate 3Alternate 5AlternateAlternate 7Alternate 6Replay OfficialAlternate 8 |
game_weathers
nfl.game_weathersOn-field weather throughout each NFL game — temperature, wind, humidity, and precipitation captured at fixed intervals from kickoff. Useful for outdoor-game performance analysis.
GET/api/v1/nfl/game_weathersList game_weathers for NFL
Requires one of:
game_id — requests satisfying none of these return 400.Parameters
game_idquerybigintoptionalFilter to a single game.
stadium_idquerybigintoptionalFilter by stadium.
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_weathers?game_id=1'Responses
200game_weathers rows matching the declared filter set, wrapped in { game_weathers, 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(23 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 4992 | |
stadium_id | bigint | — e.g. 16 | |
dew_point | floatnullable | — | Dew point (°F) at this interval. e.g. 52 |
feels_like_temperature | integernullable | — | — e.g. 72 |
field_condition | stringnullable | — | — e.g. — (all-null in sample) |
humidity | floatnullable | — | — e.g. 50 |
is_dome | boolean | — | — Values:falsetrue |
minutes_from_start | integer | — | Minutes from game start (0, 30, 60, 90, 120, 150) e.g. 0 |
precipitation | floatnullable | — | — e.g. 0 |
precipitation_probability | floatnullable | — | — e.g. 0 |
rain_accum | floatnullable | — | Cumulative liquid rain (inches) from 3 hours before kickoff through this interval. e.g. 0 |
recorded_at | timestamptz | — | — e.g. 2024-09-15T17:00:00.000Z |
roof_status | stringnullable | — | — Values:OpenDomeRetractable |
snow_accum | floatnullable | — | Cumulative snowfall (inches) from 3 hours before kickoff through this interval. e.g. 0 |
snow_depth | floatnullable | — | Snow depth on the ground (inches) at this interval. e.g. 0 |
snowfall | floatnullable | — | Snowfall rate (inches/hour) at this interval. e.g. 0 |
temperature | integernullable | — | — e.g. 72 |
weather_condition | stringnullable | — | — Values:INDOOROVERCASTCLEARDRIZZLEMAINLY_CLEARPARTLY_CLOUDYSNOWRAIN |
weather_description | stringnullable | — | — Values:Indoor stadium - contro…OvercastClear skyMainly clearLight drizzlePartly cloudyModerate drizzleSlight snowSlight rainModerate rainModerate snowDense drizzleHeavy rainHeavy snow |
wind_direction | floatnullable | — | — e.g. 0 |
wind_gust | floatnullable | — | — e.g. 0 |
wind_speed | floatnullable | — | — e.g. 0 |
GET/api/v1/nfl/game_weathers/{id}Get a single game_weather by id
Parameters
idpathbigintrequiredPrimary key (id) of the game_weather 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_weathers/{pk_value}'Responses
200Single game_weather row.application/jsonshow example ▸
404Row not found.
Response Schema(23 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 4992 | |
stadium_id | bigint | — e.g. 16 | |
dew_point | floatnullable | — | Dew point (°F) at this interval. e.g. 52 |
feels_like_temperature | integernullable | — | — e.g. 72 |
field_condition | stringnullable | — | — e.g. — (all-null in sample) |
humidity | floatnullable | — | — e.g. 50 |
is_dome | boolean | — | — Values:falsetrue |
minutes_from_start | integer | — | Minutes from game start (0, 30, 60, 90, 120, 150) e.g. 0 |
precipitation | floatnullable | — | — e.g. 0 |
precipitation_probability | floatnullable | — | — e.g. 0 |
rain_accum | floatnullable | — | Cumulative liquid rain (inches) from 3 hours before kickoff through this interval. e.g. 0 |
recorded_at | timestamptz | — | — e.g. 2024-09-15T17:00:00.000Z |
roof_status | stringnullable | — | — Values:OpenDomeRetractable |
snow_accum | floatnullable | — | Cumulative snowfall (inches) from 3 hours before kickoff through this interval. e.g. 0 |
snow_depth | floatnullable | — | Snow depth on the ground (inches) at this interval. e.g. 0 |
snowfall | floatnullable | — | Snowfall rate (inches/hour) at this interval. e.g. 0 |
temperature | integernullable | — | — e.g. 72 |
weather_condition | stringnullable | — | — Values:INDOOROVERCASTCLEARDRIZZLEMAINLY_CLEARPARTLY_CLOUDYSNOWRAIN |
weather_description | stringnullable | — | — Values:Indoor stadium - contro…OvercastClear skyMainly clearLight drizzlePartly cloudyModerate drizzleSlight snowSlight rainModerate rainModerate snowDense drizzleHeavy rainHeavy snow |
wind_direction | floatnullable | — | — e.g. 0 |
wind_gust | floatnullable | — | — e.g. 0 |
wind_speed | floatnullable | — | — e.g. 0 |
injuries
nfl.injuriesThe weekly NFL injury report — every player listed each game week with their practice participation, game-status designation (Out, Doubtful, Questionable, Probable), and the body part affected.
GET/api/v1/nfl/injuriesList injuries for NFL
Requires one of:
player_id or season_id — requests satisfying none of these return 400.Parameters
player_idquerybigintoptionalFilter to a single player.
game_idquerybigintoptionalFilter to a single game.
team_idquerybigintoptionalFilter by team.
season_idquerybigintoptionalFilter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
weekqueryintegeroptionalFilter by week of the season.
modequerystringoptionaldefault preTime wall. `pre` (default): each value as it stood at its game's kickoff; post-game fields are null. `full`: the latest value before week end (the first Tuesday 04:00 ET after the game), post-game fields included. See the Data timing guide. Values: pre, full.
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/injuries?player_id=1'Responses
200injuries rows matching the declared filter set, wrapped in { injuries, 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(15 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 151 | |
player_id | bigint | — e.g. 936 | |
season_id | bigint | — e.g. 2024 | |
team_id | bigint | — e.g. 4 | |
date_modified | timestamptznullable | — | Timestamp of the most recent NFL feed update for this report. e.g. 2024-11-08T19:11:50.000Z |
game_type | string | — | Game classification for the upcoming game (`REG`, `WC`, `DIV`, `CON`, `SB`). Values:REGDIVCONWCSB |
position | string | — | Position the player was listed at on the report. Values:LBWRCBTDTSDETERBGQBCKFBPLSUNKDBDL |
practice_primary_injury | stringnullable | — | Primary injury reported on the practice participation report. e.g. Knee |
practice_secondary_injury | stringnullable | — | Secondary injury reported on the practice participation report. e.g. Knee |
practice_status | stringnullable | — | Practice participation as long-form strings — `Did Not Participate In Practice`, `Limited Participation in Practice`, `Full Participation in Practice` (occasionally `Note` or blank). Values:Full Participation in P…Did Not Participate In …Limited Participation i…
Note |
report_primary_injury | stringnullable | — | Primary injury body part listed on the official Wednesday/Thursday report (e.g., `Hamstring`, `Knee`). e.g. Knee |
report_secondary_injury | stringnullable | — | Secondary injury listed on the official injury report. e.g. Knee |
report_status | stringnullable | — | Game-status designation (`Out`, `Doubtful`, `Questionable`; occasionally `Note` or blank when no designation was issued). Values:QuestionableOutDoubtfulNote |
week | integer | — | NFL week the report covers — 1-18 regular season, continuing 19 Wild Card, 20 Divisional, 21 Conference Championship, 22 Super Bowl. Note nfl.games.week restarts at 1 in the postseason instead. e.g. 9 |
GET/api/v1/nfl/injuries/{id}Get a single injury by id
Parameters
idpathbigintrequiredPrimary key (id) of the injury row.
modequerystringoptionaldefault preTime wall. `pre` (default): each value as it stood at its game's kickoff; post-game fields are null. `full`: the latest value before week end (the first Tuesday 04:00 ET after the game), post-game fields included. See the Data timing guide. Values: pre, full.
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/injuries/{pk_value}'Responses
200Single injury row.application/jsonshow example ▸
404Row not found.
Response Schema(15 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | — e.g. 151 | |
player_id | bigint | — e.g. 936 | |
season_id | bigint | — e.g. 2024 | |
team_id | bigint | — e.g. 4 | |
date_modified | timestamptznullable | — | Timestamp of the most recent NFL feed update for this report. e.g. 2024-11-08T19:11:50.000Z |
game_type | string | — | Game classification for the upcoming game (`REG`, `WC`, `DIV`, `CON`, `SB`). Values:REGDIVCONWCSB |
position | string | — | Position the player was listed at on the report. Values:LBWRCBTDTSDETERBGQBCKFBPLSUNKDBDL |
practice_primary_injury | stringnullable | — | Primary injury reported on the practice participation report. e.g. Knee |
practice_secondary_injury | stringnullable | — | Secondary injury reported on the practice participation report. e.g. Knee |
practice_status | stringnullable | — | Practice participation as long-form strings — `Did Not Participate In Practice`, `Limited Participation in Practice`, `Full Participation in Practice` (occasionally `Note` or blank). Values:Full Participation in P…Did Not Participate In …Limited Participation i…
Note |
report_primary_injury | stringnullable | — | Primary injury body part listed on the official Wednesday/Thursday report (e.g., `Hamstring`, `Knee`). e.g. Knee |
report_secondary_injury | stringnullable | — | Secondary injury listed on the official injury report. e.g. Knee |
report_status | stringnullable | — | Game-status designation (`Out`, `Doubtful`, `Questionable`; occasionally `Note` or blank when no designation was issued). Values:QuestionableOutDoubtfulNote |
week | integer | — | NFL week the report covers — 1-18 regular season, continuing 19 Wild Card, 20 Divisional, 21 Conference Championship, 22 Super Bowl. Note nfl.games.week restarts at 1 in the postseason instead. e.g. 9 |
operator_player_lookups
nfl.operator_player_lookupsHow each sportsbook and fantasy operator names every NFL player — the mapping from each operator's own player identifier to a unified player record.
GET/api/v1/nfl/operator_player_lookupsList operator_player_lookups for NFL
Requires one of:
operator_id — requests satisfying none of these return 400.Parameters
operator_idquerybigintoptionalFilter by sportsbook / operator.
player_idquerybigintoptionalFilter to a single player.
positionquerystringoptionalFilter by player position. Values: C, CB, D, DB, DE, DEF, DL, DST, DT, FB, G, ILB, K, LB, LS, NT, OL, OLB, OT, P, QB, RB, S, TE, WR.
limitqueryintegeroptionaldefault 100Page size. Defaults to 100; 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/operator_player_lookups?operator_id=1'Responses
200operator_player_lookups rows matching the declared filter set, wrapped in { operator_player_lookups, 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(9 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
operator_id | bigint | Reference to main.operator entity e.g. 5 | |
operator_player_id | string | — | External player ID from operator e.g. 6012 |
player_id | bigintnullable | Internal nfl.players.id reference e.g. 2 | |
decided_at | timestamptznullable | — | When the pin or block was decided. e.g. — (all-null in sample) |
decided_reason | stringnullable | — | Evidence behind a pinned or blocked decision. e.g. — (all-null in sample) |
decision | stringnullable | — | How this mapping was decided: 'derived' (finder answer, overwritable), 'pinned' (decided on evidence, trigger-protected), 'blocked' (no player we hold is this id; player_id NULL, never retried). DB default 'derived'; a BEFORE UPDATE trigger preserves non-derived rows. e.g. derived |
player_name | stringnullable | — | Player name as provided by operator e.g. Lamar Jackson |
position | stringnullable | — | Position as provided by operator Values:DBDLLBWRRBTEQBOLPKLS |
GET/api/v1/nfl/operator_player_lookups/{id}Get a single operator_player_lookup by id
Parameters
idpathbigintrequiredPrimary key (id) of the operator_player_lookup 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/operator_player_lookups/{pk_value}'Responses
200Single operator_player_lookup row.application/jsonshow example ▸
404Row not found.
Response Schema(9 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
operator_id | bigint | Reference to main.operator entity e.g. 5 | |
operator_player_id | string | — | External player ID from operator e.g. 6012 |
player_id | bigintnullable | Internal nfl.players.id reference e.g. 2 | |
decided_at | timestamptznullable | — | When the pin or block was decided. e.g. — (all-null in sample) |
decided_reason | stringnullable | — | Evidence behind a pinned or blocked decision. e.g. — (all-null in sample) |
decision | stringnullable | — | How this mapping was decided: 'derived' (finder answer, overwritable), 'pinned' (decided on evidence, trigger-protected), 'blocked' (no player we hold is this id; player_id NULL, never retried). DB default 'derived'; a BEFORE UPDATE trigger preserves non-derived rows. e.g. derived |
player_name | stringnullable | — | Player name as provided by operator e.g. Lamar Jackson |
position | stringnullable | — | Position as provided by operator Values:DBDLLBWRRBTEQBOLPKLS |
player_contracts
nfl.player_contractsNFL player contracts — total value, average annual pay, guaranteed money, and salary cap impact for every signed deal, with cap-inflated comparisons across eras.
GET/api/v1/nfl/player_contractsList player_contracts for NFL
Requires one of:
player_id — requests satisfying none of these return 400.Parameters
player_idquerybigintoptionalFilter to a single player.
team_idquerybigintoptionalFilter by team.
positionquerystringoptionalFilter by player position. Values: C, CB, ED, FB, IDL, K, LB, LG, LS, LT, P, QB, RB, RG, RT, S, TE, WR.
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/player_contracts?player_id=1'Responses
200player_contracts rows matching the declared filter set, wrapped in { player_contracts, 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(21 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
otc_id | string | — | OverTheCap unique contract identifier (external). e.g. 9466 |
player_id | bigint | — e.g. 1546 | |
team_id | bigint | — e.g. 25 | |
apy | bigint | — | Average annual value (APY) in U.S. dollars — total `value` divided by `years`. e.g. 895000 |
apy_cap_pct | decimal | — | APY as a percentage of the league salary cap in the signing year (0.0-100.0). e.g. 0.0040 |
college | stringnullable | — | — e.g. Florida State |
date_of_birth | datenullable | — | — e.g. — (all-null in sample) |
guaranteed | bigint | — | Total guaranteed money over the life of the contract, in U.S. dollars. e.g. 0 |
height | stringnullable | — | Height as reported by OverTheCap (e.g., `6-2`). Values:6'3"6'4"6'2"6'5"6'0"6'1"5'11"6'6"5'9"6'7"5'10"5'8"6'8"6'0'" |
inflated_apy | bigint | — | `apy` adjusted to the most recent salary cap. e.g. 895000 |
inflated_guaranteed | bigint | — | `guaranteed` adjusted to the most recent salary cap. e.g. 0 |
inflated_value | bigint | — | `value` adjusted to the most recent salary cap, in U.S. dollars. e.g. 895000 |
is_active | boolean | — | True for the player's currently-active contract; false for historical contracts. e.g. true |
player_page_url | stringnullable | — | Direct URL to the player's page on overthecap.com. e.g. https://overthecap.com/player/zach-wilson/9466/ |
position | string | — | Player position at the time the contract was signed. Values:WRCBEDSIDLLBTERBRTLTLGQBCRGKPFBLS |
season_history_json | stringnullable | — | JSON-encoded year-by-year cap-hit breakdown for the life of the contract (stored as a string). e.g. — (all-null in sample) |
value | bigint | — | Total contract value in U.S. dollars as reported by OverTheCap. e.g. 895000 |
weight | integernullable | — | Weight in pounds. e.g. 205 |
year_signed | integer | — | Calendar year the contract was signed. e.g. 2022 |
years | integer | — | Total contract length in years. e.g. 4 |
GET/api/v1/nfl/player_contracts/{id}Get a single player_contract by id
Parameters
idpathbigintrequiredPrimary key (id) of the player_contract 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/player_contracts/{pk_value}'Responses
200Single player_contract row.application/jsonshow example ▸
404Row not found.
Response Schema(21 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
otc_id | string | — | OverTheCap unique contract identifier (external). e.g. 9466 |
player_id | bigint | — e.g. 1546 | |
team_id | bigint | — e.g. 25 | |
apy | bigint | — | Average annual value (APY) in U.S. dollars — total `value` divided by `years`. e.g. 895000 |
apy_cap_pct | decimal | — | APY as a percentage of the league salary cap in the signing year (0.0-100.0). e.g. 0.0040 |
college | stringnullable | — | — e.g. Florida State |
date_of_birth | datenullable | — | — e.g. — (all-null in sample) |
guaranteed | bigint | — | Total guaranteed money over the life of the contract, in U.S. dollars. e.g. 0 |
height | stringnullable | — | Height as reported by OverTheCap (e.g., `6-2`). Values:6'3"6'4"6'2"6'5"6'0"6'1"5'11"6'6"5'9"6'7"5'10"5'8"6'8"6'0'" |
inflated_apy | bigint | — | `apy` adjusted to the most recent salary cap. e.g. 895000 |
inflated_guaranteed | bigint | — | `guaranteed` adjusted to the most recent salary cap. e.g. 0 |
inflated_value | bigint | — | `value` adjusted to the most recent salary cap, in U.S. dollars. e.g. 895000 |
is_active | boolean | — | True for the player's currently-active contract; false for historical contracts. e.g. true |
player_page_url | stringnullable | — | Direct URL to the player's page on overthecap.com. e.g. https://overthecap.com/player/zach-wilson/9466/ |
position | string | — | Player position at the time the contract was signed. Values:WRCBEDSIDLLBTERBRTLTLGQBCRGKPFBLS |
season_history_json | stringnullable | — | JSON-encoded year-by-year cap-hit breakdown for the life of the contract (stored as a string). e.g. — (all-null in sample) |
value | bigint | — | Total contract value in U.S. dollars as reported by OverTheCap. e.g. 895000 |
weight | integernullable | — | Weight in pounds. e.g. 205 |
year_signed | integer | — | Calendar year the contract was signed. e.g. 2022 |
years | integer | — | Total contract length in years. e.g. 4 |
player_news
nfl.player_newsNews about NFL players — transactions, injuries, lineup announcements, suspensions, and general beat-reporter updates.
GET/api/v1/nfl/player_newsList player_news for NFL
Requires one of:
player_id or team_id — requests satisfying none of these return 400.Parameters
player_idquerybigintoptionalFilter to a single player.
team_idquerybigintoptionalFilter by team.
categoryquerystringoptionalFilter by category. Values: general, injury, lineup, transaction.
status_enumquerystringoptionalFilter by player status designation. Values: RULED_OUT, DOUBTFUL, QUESTIONABLE, PROBABLE, CLEARED, MINUTES_LIMIT, MINUTES_LIFTED, STARTING, BENCHED, INACTIVE, ACTIVE, IR_PLACED, IR_ACTIVATED, OUT_SEASON, TRADED, RELEASED, SIGNED, ROUTINE, UNSIGNED.
urgencyquerystringoptionalFilter by news urgency. Values: BREAKING_GAME_TIME, HIGH, MEDIUM, ROUTINE.
sourcequerystringoptionalFilter by source provider. Values: cbs_sports, espn, sportsdata.
news_timequerytimestamptzoptionalFilter by publication time (ISO 8601). Use news_time__gte to poll for items since your last check. Range syntax: news_time__gte=, news_time__lte=, news_time__between=.
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/player_news?player_id=1'Responses
200player_news rows matching the declared filter set, wrapped in { player_news, 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 |
external_id | stringnullable | — | Unique identifier from the news provider. e.g. sportsdata-214469 |
game_id | bigintnullable | Associated game ID when this news item relates to a specific game. e.g. 22360 | |
opponent_team_id | bigintnullable | Opponent team ID when this news item relates to an upcoming or active game matchup. e.g. 19 | |
player_id | bigintnullable | Player ID associated with the news report. e.g. 925 | |
team_id | bigintnullable | Team ID of the player at the time of publication. e.g. 28 | |
ai_processed | boolean | — | Whether this story was generated or enriched via LLM summarization. Values:falsetrue |
analysis | stringnullable | — | Fantasy and tactical analysis of the news. e.g. — (all-null in sample) |
author | stringnullable | — | Reporter or author of the article. e.g. Staff |
category | stringnullable | — | injury, transaction, lineup, general Values:injurytransactiongeneralcontractdepth_chartlineupsuspensiongeneral</category>
<par… |
content | stringnullable | — | Full text content of the news report. e.g. The Kansas City Chiefs signed former Arizona Cardinals runn… |
description | stringnullable | — | Brief synopsis or summary of the news event. e.g. Sam Darnold and the Seahawks prepare to face the Rams in th… |
first_reported_at | timestamptznullable | — | Timestamp when this story was first reported before multi-source compaction. e.g. 2026-09-07T01:22:45.000Z |
link | stringnullable | — | URL link to the original article or source video. e.g. https://www.espn.com/video/clip?id=47726158 |
news_time | timestamptz | — | Publication timestamp of the news story. e.g. 2026-08-31T04:00:00.000Z |
priority | integer | — | Display priority score (1-10). e.g. 5 |
situational_impact | jsonbnullable | — | Structured situational impact assessment and fantasy implications for the player. e.g. {"affected_players":[]} |
↳type situational_impact.type | stringnullable | — | Impact direction: positive, negative, or neutral. |
↳impact_enum situational_impact.impact_enum | stringnullable | — | Standardized impact state (ACTIVE, CLEARED, QUESTIONABLE, etc.). |
↳reason situational_impact.reason | stringnullable | — | Narrative explaining the fantasy and playing-time impact. |
↳ripple_effect situational_impact.ripple_effect | stringnullable | — | Downstream tactical or fantasy consequences. |
↳affected_players situational_impact.affected_players | listnullable | — | Teammates whose opportunity or role is impacted. |
↳affected_player_ids situational_impact.affected_player_ids | listnullable | — | IDs of impacted teammates. |
source | stringnullable | — | Primary news source or publication. Values:cbs_sportssportsdataespnrotoql_sportsdatarotoworld |
sources | jsonbnullable | — | Source citations with source name, URL, author, and published timestamp. e.g. [{"published_at":"2026-05-04T04:00:00.000Z","source":"cbs_s… |
↳url sources.url | stringnullable | — | Source article or media link. |
↳source sources.source | stringnullable | — | Publisher or feed identifier. |
↳author sources.author | stringnullable | — | Reporting journalist or source author. |
↳published_at sources.published_at | timestamptznullable | — | Source publication timestamp. |
status_enum | stringnullable | — | Standardized player status designation (RULED_OUT, DOUBTFUL, QUESTIONABLE, PROBABLE, CLEARED, MINUTES_LIMIT, MINUTES_LIFTED, STARTING, BENCHED, INACTIVE, ACTIVE, IR_PLACED, IR_ACTIVATED, TRADED, RELEASED, SIGNED, ROUTINE). Values:QUESTIONABLEACTIVESIGNEDRELEASEDINACTIVECLEAREDIR_PLACEDBENCHEDSTARTINGROUTINERULED_OUTPROBABLETRADEDIR_ACTIVATEDMINUTES_LIMITDOUBTFULUNSIGNED |
title | string | — | Headline of the news report. e.g. Dayo Odeyingbo (Achilles) questionable for Week 1 vs. Panth… |
urgency | stringnullable | — | Urgency level of the news event (BREAKING_GAME_TIME, HIGH, MEDIUM, ROUTINE). Values:ROUTINEHIGHMEDIUMBREAKING_GAME_TIME |
GET/api/v1/nfl/player_news/{id}Get a single player_new by id
Parameters
idpathbigintrequiredPrimary key (id) of the player_new 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/player_news/{pk_value}'Responses
200Single player_new row.application/jsonshow example ▸
404Row not found.
Response Schema(22 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
external_id | stringnullable | — | Unique identifier from the news provider. e.g. sportsdata-214469 |
game_id | bigintnullable | Associated game ID when this news item relates to a specific game. e.g. 22360 | |
opponent_team_id | bigintnullable | Opponent team ID when this news item relates to an upcoming or active game matchup. e.g. 19 | |
player_id | bigintnullable | Player ID associated with the news report. e.g. 925 | |
team_id | bigintnullable | Team ID of the player at the time of publication. e.g. 28 | |
ai_processed | boolean | — | Whether this story was generated or enriched via LLM summarization. Values:falsetrue |
analysis | stringnullable | — | Fantasy and tactical analysis of the news. e.g. — (all-null in sample) |
author | stringnullable | — | Reporter or author of the article. e.g. Staff |
category | stringnullable | — | injury, transaction, lineup, general Values:injurytransactiongeneralcontractdepth_chartlineupsuspensiongeneral</category>
<par… |
content | stringnullable | — | Full text content of the news report. e.g. The Kansas City Chiefs signed former Arizona Cardinals runn… |
description | stringnullable | — | Brief synopsis or summary of the news event. e.g. Sam Darnold and the Seahawks prepare to face the Rams in th… |
first_reported_at | timestamptznullable | — | Timestamp when this story was first reported before multi-source compaction. e.g. 2026-09-07T01:22:45.000Z |
link | stringnullable | — | URL link to the original article or source video. e.g. https://www.espn.com/video/clip?id=47726158 |
news_time | timestamptz | — | Publication timestamp of the news story. e.g. 2026-08-31T04:00:00.000Z |
priority | integer | — | Display priority score (1-10). e.g. 5 |
situational_impact | jsonbnullable | — | Structured situational impact assessment and fantasy implications for the player. e.g. {"affected_players":[]} |
↳type situational_impact.type | stringnullable | — | Impact direction: positive, negative, or neutral. |
↳impact_enum situational_impact.impact_enum | stringnullable | — | Standardized impact state (ACTIVE, CLEARED, QUESTIONABLE, etc.). |
↳reason situational_impact.reason | stringnullable | — | Narrative explaining the fantasy and playing-time impact. |
↳ripple_effect situational_impact.ripple_effect | stringnullable | — | Downstream tactical or fantasy consequences. |
↳affected_players situational_impact.affected_players | listnullable | — | Teammates whose opportunity or role is impacted. |
↳affected_player_ids situational_impact.affected_player_ids | listnullable | — | IDs of impacted teammates. |
source | stringnullable | — | Primary news source or publication. Values:cbs_sportssportsdataespnrotoql_sportsdatarotoworld |
sources | jsonbnullable | — | Source citations with source name, URL, author, and published timestamp. e.g. [{"published_at":"2026-05-04T04:00:00.000Z","source":"cbs_s… |
↳url sources.url | stringnullable | — | Source article or media link. |
↳source sources.source | stringnullable | — | Publisher or feed identifier. |
↳author sources.author | stringnullable | — | Reporting journalist or source author. |
↳published_at sources.published_at | timestamptznullable | — | Source publication timestamp. |
status_enum | stringnullable | — | Standardized player status designation (RULED_OUT, DOUBTFUL, QUESTIONABLE, PROBABLE, CLEARED, MINUTES_LIMIT, MINUTES_LIFTED, STARTING, BENCHED, INACTIVE, ACTIVE, IR_PLACED, IR_ACTIVATED, TRADED, RELEASED, SIGNED, ROUTINE). Values:QUESTIONABLEACTIVESIGNEDRELEASEDINACTIVECLEAREDIR_PLACEDBENCHEDSTARTINGROUTINERULED_OUTPROBABLETRADEDIR_ACTIVATEDMINUTES_LIMITDOUBTFULUNSIGNED |
title | string | — | Headline of the news report. e.g. Dayo Odeyingbo (Achilles) questionable for Week 1 vs. Panth… |
urgency | stringnullable | — | Urgency level of the news event (BREAKING_GAME_TIME, HIGH, MEDIUM, ROUTINE). Values:ROUTINEHIGHMEDIUMBREAKING_GAME_TIME |
team_news
nfl.team_newsNews and updates about NFL teams — game previews, coaching changes, front-office moves, and beat reports.
GET/api/v1/nfl/team_newsList team_news for NFL
Requires one of:
team_id — requests satisfying none of these return 400.Parameters
team_idquerybigintoptionalFilter by team.
categoryquerystringoptionalFilter by category (game_preview, coaching, transaction, general, draft, depth_chart). Values: game_preview, coaching, transaction, general, draft, depth_chart.
urgencyquerystringoptionalFilter by news urgency. Values: BREAKING_GAME_TIME, HIGH, MEDIUM, ROUTINE.
news_timequerytimestamptzoptionalFilter by publication time (ISO 8601). Use news_time__gte to poll for items since your last check. Range syntax: news_time__gte=, news_time__lte=, news_time__between=.
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/team_news?team_id=1'Responses
200team_news rows matching the declared filter set, wrapped in { team_news, 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(12 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
external_id | stringnullable | — | Canonical external identifier for deduplication. e.g. espn-nfl-49825684 |
game_id | bigintnullable | Associated game ID when news relates to a specific game. e.g. 43413 | |
opponent_team_id | bigintnullable | Opponent team ID when news relates to an upcoming or completed game matchup. e.g. 18 | |
team_id | bigint | Team ID that this news event pertains to. e.g. 20 | |
ai_processed | booleannullable | — | Whether this story was generated or enriched via LLM summarization. e.g. true |
category | stringnullable | — | game_preview, coaching, transaction, general Values:transactiongeneraldepth_chartgame_previewcoachingdraft |
news_time | timestamptz | — | Publication timestamp of the team story. e.g. 2026-05-08T04:00:00.000Z |
sources | jsonbnullable | — | Source citations with publisher name, URL, author, and published timestamp. e.g. [{"published_at":"2026-08-24T00:00:00.000Z","source":"cbs_s… |
↳url sources.url | stringnullable | — | Source article or media link. |
↳source sources.source | stringnullable | — | Publisher or feed identifier. |
↳author sources.author | stringnullable | — | Reporting journalist or source author. |
↳published_at sources.published_at | timestamptznullable | — | Source publication timestamp. |
summary | string | — | Concise journalistic summary of the team news event. e.g. ESPN releases comprehensive preview coverage for the 2026 N… |
title | string | — | Headline of the team news story. e.g. Kendrick Law Out with ACL Knee Injury |
urgency | stringnullable | — | ROUTINE, MEDIUM, HIGH, BREAKING_GAME_TIME Values:ROUTINEMEDIUMHIGHBREAKING_GAME_TIME |
GET/api/v1/nfl/team_news/{id}Get a single team_new by id
Parameters
idpathbigintrequiredPrimary key (id) of the team_new 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/team_news/{pk_value}'Responses
200Single team_new row.application/jsonshow example ▸
404Row not found.
Response Schema(12 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
external_id | stringnullable | — | Canonical external identifier for deduplication. e.g. espn-nfl-49825684 |
game_id | bigintnullable | Associated game ID when news relates to a specific game. e.g. 43413 | |
opponent_team_id | bigintnullable | Opponent team ID when news relates to an upcoming or completed game matchup. e.g. 18 | |
team_id | bigint | Team ID that this news event pertains to. e.g. 20 | |
ai_processed | booleannullable | — | Whether this story was generated or enriched via LLM summarization. e.g. true |
category | stringnullable | — | game_preview, coaching, transaction, general Values:transactiongeneraldepth_chartgame_previewcoachingdraft |
news_time | timestamptz | — | Publication timestamp of the team story. e.g. 2026-05-08T04:00:00.000Z |
sources | jsonbnullable | — | Source citations with publisher name, URL, author, and published timestamp. e.g. [{"published_at":"2026-08-24T00:00:00.000Z","source":"cbs_s… |
↳url sources.url | stringnullable | — | Source article or media link. |
↳source sources.source | stringnullable | — | Publisher or feed identifier. |
↳author sources.author | stringnullable | — | Reporting journalist or source author. |
↳published_at sources.published_at | timestamptznullable | — | Source publication timestamp. |
summary | string | — | Concise journalistic summary of the team news event. e.g. ESPN releases comprehensive preview coverage for the 2026 N… |
title | string | — | Headline of the team news story. e.g. Kendrick Law Out with ACL Knee Injury |
urgency | stringnullable | — | ROUTINE, MEDIUM, HIGH, BREAKING_GAME_TIME Values:ROUTINEMEDIUMHIGHBREAKING_GAME_TIME |