STAT-API

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

seasonsnfl.seasons
Each 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/seasons
Parameters
limitqueryintegeroptionaldefault 25
Page size. Defaults to 25; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(8 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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/context
Parameters
seasonqueryintegeroptional
Season start year (e.g. 2026). Without week, the current week of that season, else week 1.
weekqueryintegeroptional
Regular-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 ▸
FieldTypeReferencesDescription
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.
teamsnfl.teams
The 32 NFL franchises plus historical predecessors — teams that have since relocated, renamed, or merged into the current league.
GET/api/v1/nfl/teams
Parameters
activequerybooleanoptional
Filter by active status (defaults to true to show only currently-active rows; pass active=false to include inactive).
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(13 fields)show schema ▸
FieldTypeReferencesDescription
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
bigintPrimary 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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
bigintPrimary 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
gamesnfl.games
Every 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/games
Requires one of: season_id — requests satisfying none of these return 400.
Parameters
season_idquerybigintoptional
Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
weekqueryintegeroptional
Filter by week of the season. Range syntax: week__gte=, week__lte=, week__between=.
season_typequerystringoptional
Filter by season phase. Postseason round detail is in `playoff_round`. Values: postseason, preseason, regular_season.
home_team_idquerybigintoptional
Filter by home team.
away_team_idquerybigintoptional
Filter by away team.
statusquerystringoptional
Filter by row status.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(30 fields)show schema ▸
FieldTypeReferencesDescription
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
integerStadium 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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
integerStadium 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
playersnfl.players
Every 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/players
Requires one of: team_id or roster_status or gsis_id or primary_position — requests satisfying none of these return 400.
Parameters
team_idquerybigintoptional
Filter by team.
roster_statusquerystringoptional
Filter 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_idquerystringoptional
Filter by GSIS external player id.
primary_positionquerystringoptional
Filter 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 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(27 fields)show schema ▸
FieldTypeReferencesDescription
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
bigintnullableCurrent 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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
bigintnullableCurrent 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_drivesnfl.game_drives
Each offensive possession in an NFL game — how the drive started, how it ended (touchdown, field goal, punt, turnover), starting and ending field position, time of possession, and play count.
GET/api/v1/nfl/game_drives
Requires one of: game_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
possession_team_idquerybigintoptional
Filter by team in possession.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_drives?game_id=1'
Responses
200game_drives rows matching the declared filter set, wrapped in { game_drives, limit, next_from_id }. next_from_id is the last row's id on a full page — pass it back via ?from_id= to walk the full result; null marks the terminal page.application/jsonshow example ▸
400No declared filter set was satisfied — response body matches MissingRequiredFiltersError; pick one combo from the accepted-sets hint and resend.application/json
Response Schema(22 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
first_play_id
bigint—play_id of first play in drive
e.g. 40
game_id
bigint—
e.g. 222
last_play_id
bigint—play_id of last play in drive
e.g. 131
possession_team_id
bigintTeam with possession (FK to teams)
e.g. 13
drive_number
integer—Drive sequence number in game (1-indexed)
e.g. 2
end_transition
stringnullable—How possession ended (PUNT, TOUCHDOWN, TURNOVER, etc.)
Values:PUNTTOUCHDOWNFIELD_GOALINTERCEPTIONDOWNSFUMBLEEND_GAMEEND_HALFMISSED_FGSAFETYBLOCKED_PUNTBLOCKED_FGBLOCKED_PUNT,_DOWNSFUMBLE,_SAFETYBLOCKED_FG,_DOWNS
end_yard_line
stringnullable—Ending field position (e.g., "OPP 10")
e.g. 50
ended_with_score
boolean—Drive resulted in points
Values:falsetrue
first_downs
integernullable—First downs gained
e.g. 0
fixed_drive
integer—Corrected drive number 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}
Parameters
idpathbigintrequired
Primary key (id) of the game_drive row.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_drives/{pk_value}'
Responses
200Single game_drive row.application/jsonshow example ▸
404Row not found.
Response Schema(22 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
first_play_id
bigint—play_id of first play in drive
e.g. 40
game_id
bigint—
e.g. 222
last_play_id
bigint—play_id of last play in drive
e.g. 131
possession_team_id
bigintTeam with possession (FK to teams)
e.g. 13
drive_number
integer—Drive sequence number in game (1-indexed)
e.g. 2
end_transition
stringnullable—How possession ended (PUNT, TOUCHDOWN, TURNOVER, etc.)
Values:PUNTTOUCHDOWNFIELD_GOALINTERCEPTIONDOWNSFUMBLEEND_GAMEEND_HALFMISSED_FGSAFETYBLOCKED_PUNTBLOCKED_FGBLOCKED_PUNT,_DOWNSFUMBLE,_SAFETYBLOCKED_FG,_DOWNS
end_yard_line
stringnullable—Ending field position (e.g., "OPP 10")
e.g. 50
ended_with_score
boolean—Drive resulted in points
Values:falsetrue
first_downs
integernullable—First downs gained
e.g. 0
fixed_drive
integer—Corrected drive number 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_participationsnfl.play_participations
The 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_participations
Requires one of: play_id or game_id — requests satisfying none of these return 400.
Parameters
play_idquerystringoptional
Filter by play.
game_idquerybigintoptional
Filter to a single game.
possession_team_idquerybigintoptional
Filter by team in possession.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(20 fields)show schema ▸
FieldTypeReferencesDescription
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
bigintTeam 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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
bigintTeam 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_playsnfl.play_by_plays
Every individual play of every NFL game — what happened, where on the field, with what result. Includes pass and rush attempts, penalties, special teams, EPA, win probability, and the full game-clock and down-and-distance context.
GET/api/v1/nfl/play_by_plays
Requires one of: game_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game. Required — querying NFL play-by-play across all games is impractical (millions of rows).
possession_team_idquerybigintoptional
Filter by team in possession.
defensive_team_idquerybigintoptional
Filter by team on defense.
drive_idquerybigintoptional
Filter by drive.
limitqueryintegeroptionaldefault 100
Page size. Defaults to 100; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(372 fields)show schema ▸
FieldTypeReferencesDescription
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
bigintnullableFK to teams table for defensive team
e.g. 14
drive_id
bigintnullableFK 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
bigintFK 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
bigintnullableFK 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
bigintnullableFK 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
bigintnullableFK to players table
e.g. 438
receiver_player_id
stringnullable—Receiver GSIS ID
e.g. 00-0033908
rusher_id
bigintnullableFK 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
integernullableStadium 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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
bigintnullableFK to teams table for defensive team
e.g. 14
drive_id
bigintnullableFK 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
bigintFK 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
bigintnullableFK 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
bigintnullableFK 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
bigintnullableFK to players table
e.g. 438
receiver_player_id
stringnullable—Receiver GSIS ID
e.g. 00-0033908
rusher_id
bigintnullableFK 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
integernullableStadium 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_statsnfl.season_team_stats
Season 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_stats
Requires one of: season_id — requests satisfying none of these return 400.
Parameters
team_idquerybigintoptional
Filter by team.
season_idquerybigintoptional
Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
limitqueryintegeroptionaldefault 100
Page size. Defaults to 100; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(32 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_statsnfl.game_player_stats
Each 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_stats
Requires one of: game_id or player_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
player_idquerybigintoptional
Filter to a single player.
team_idquerybigintoptional
Filter by team.
opponent_team_idquerybigintoptional
Filter by opponent team.
positionquerystringoptional
Filter by player position. Values: DB, DEF, DL, K, LB, LS, OL, P, QB, RB, TE, WR.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(141 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_statsnfl.game_team_stats
Each 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_stats
Requires one of: game_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
team_idquerybigintoptional
Filter by team.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(131 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_snapsnfl.projected_player_snaps
Pre-kickoff projected and post-game realized offensive snaps, snap shares, touch rates, and volume opportunities for NFL players.
GET/api/v1/nfl/projected_player_snaps
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_idquerybigintoptional
Filter to a single game.
player_idquerybigintoptional
Filter to a single player.
team_idquerybigintoptional
Filter by team.
season_idquerybigintoptional
Filter to a season by year (e.g., 2025). Defaults to current season.
weekqueryintegeroptional
Filter by NFL week number.
positionquerystringoptional
Filter by position (QB, RB, WR, TE, DST).
modequerystringoptionaldefault pre
Time 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 100
Page size. Defaults to 100; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(35 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary key (id) of the projected_player_snap row.
modequerystringoptionaldefault pre
Time 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 ▸
FieldTypeReferencesDescription
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_snapsnfl.projected_team_snaps
Pre-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_snaps
Requires one of: game_id or season_id + week or season_id + team_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
team_idquerybigintoptional
Filter by team.
season_idquerybigintoptional
Filter to a season by year (e.g., 2025). Defaults to current season.
weekqueryintegeroptional
Filter by NFL week number.
modequerystringoptionaldefault pre
Time 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 50
Page size. Defaults to 50; max 1000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(33 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary key (id) of the projected_team_snap row.
modequerystringoptionaldefault pre
Time 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 ▸
FieldTypeReferencesDescription
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_statsnfl.season_player_stats
Season 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_stats
Requires one of: season_id or player_id — requests satisfying none of these return 400.
Parameters
player_idquerybigintoptional
Filter to a single player.
season_idquerybigintoptional
Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
limitqueryintegeroptionaldefault 100
Page size. Defaults to 100; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(89 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_tendenciesnfl.coach_scheme_tendencies
Analytical 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_tendencies
Requires one of: season_id or team_id or game_id — requests satisfying none of these return 400.
Parameters
season_idquerybigintoptional
Filter to a season by year (e.g., 2024 or 2025).
weekqueryintegeroptional
Filter by NFL regular season week number (1-18).
team_idquerybigintoptional
Filter by team.
game_idquerybigintoptional
Filter by game.
head_coachquerystringoptional
Filter by head coach name.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 1000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(58 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_statsnfl.game_player_firstdown_stats
Per-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_stats
Requires one of: game_id or player_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
player_idquerybigintoptional
Filter to a single player.
team_idquerybigintoptional
Filter by team.
opponent_team_idquerybigintoptional
Filter by opponent team.
positionquerystringoptional
Filter by player position. Values: DB, DEF, DL, LB, OL, QB, RB, TE, WR.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(54 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_passingsnfl.game_player_ngs_passings
NFL 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_passings
Requires one of: game_id or player_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
player_idquerybigintoptional
Filter to a single player.
team_idquerybigintoptional
Filter by team.
seasonqueryintegeroptional
Filter by season start year.
weekqueryintegeroptional
Filter by week of the season.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(26 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_receivingsnfl.game_player_ngs_receivings
NFL 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_receivings
Requires one of: game_id or player_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
player_idquerybigintoptional
Filter to a single player.
team_idquerybigintoptional
Filter by team.
seasonqueryintegeroptional
Filter by season start year.
weekqueryintegeroptional
Filter by week of the season.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(20 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_rushingsnfl.game_player_ngs_rushings
NFL 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_rushings
Requires one of: game_id or player_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
player_idquerybigintoptional
Filter to a single player.
team_idquerybigintoptional
Filter by team.
seasonqueryintegeroptional
Filter by season start year.
weekqueryintegeroptional
Filter by week of the season.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(19 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_advstatsnfl.game_player_pfr_advstats
Per-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_advstats
Requires one of: game_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
player_idquerybigintoptional
Filter to a single player.
team_idquerybigintoptional
Filter by team.
opponent_team_idquerybigintoptional
Filter by opponent team.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(46 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
game_id
bigint—
e.g. 57
opponent_team_id
bigintOpposing 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
game_id
bigint—
e.g. 57
opponent_team_id
bigintOpposing 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_statsnfl.game_player_redzone_stats
Per-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_stats
Requires one of: game_id or player_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
player_idquerybigintoptional
Filter to a single player.
team_idquerybigintoptional
Filter by team.
opponent_team_idquerybigintoptional
Filter by opponent team.
positionquerystringoptional
Filter by player position. Values: DB, DEF, DL, K, LB, OL, P, QB, RB, TE, WR.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(54 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_statsnfl.game_player_thirddown_stats
Per-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_stats
Requires one of: game_id or player_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
player_idquerybigintoptional
Filter to a single player.
team_idquerybigintoptional
Filter by team.
opponent_team_idquerybigintoptional
Filter by opponent team.
positionquerystringoptional
Filter by player position. Values: DB, DEF, DL, K, LB, OL, P, QB, RB, TE, WR.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(54 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_statsnfl.season_player_firstdown_stats
Season 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_stats
Requires one of: season_id — requests satisfying none of these return 400.
Parameters
player_idquerybigintoptional
Filter to a single player.
season_idquerybigintoptional
Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
limitqueryintegeroptionaldefault 100
Page size. Defaults to 100; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(52 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_statsnfl.season_player_redzone_stats
Season 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_stats
Requires one of: season_id — requests satisfying none of these return 400.
Parameters
player_idquerybigintoptional
Filter to a single player.
season_idquerybigintoptional
Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
limitqueryintegeroptionaldefault 100
Page size. Defaults to 100; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(52 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_statsnfl.season_player_thirddown_stats
Season 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_stats
Requires one of: season_id — requests satisfying none of these return 400.
Parameters
player_idquerybigintoptional
Filter to a single player.
season_idquerybigintoptional
Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(52 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_linesnfl.game_lines
NFL 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_lines
Requires one of: game_id or season_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
season_idquerybigintoptional
Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
operator_idquerybigintoptional
Filter by sportsbook / operator.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(18 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
game_id
bigint—
e.g. 43434
operator_id
bigintData source (ESPN, DraftKings, FanDuel, nflverse, etc.)
e.g. 6
season_id
bigintDenormalized 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
game_id
bigint—
e.g. 43434
operator_id
bigintData source (ESPN, DraftKings, FanDuel, nflverse, etc.)
e.g. 6
season_id
bigintDenormalized 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_propsnfl.game_player_props
NFL 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_props
Requires one of: game_id or player_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
player_idquerybigintoptional
Filter to a single player.
operator_idquerybigintoptional
Filter by sportsbook / operator.
categoryquerystringoptional
Filter by category.
market_keyquerystringoptional
Filter by raw market key (e.g., player_reception_yds).
is_openingquerybooleanoptional
Filter to opening lines only.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(18 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
game_id
bigint—
e.g. 43403
operator_id
bigintUsually consensus
e.g. 6
player_id
bigint—
e.g. 693
season_id
bigintDenormalized 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
game_id
bigint—
e.g. 43403
operator_id
bigintUsually consensus
e.g. 6
player_id
bigint—
e.g. 693
season_id
bigintDenormalized 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_tenuresnfl.coaching_staff_tenures
Every 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_tenures
Requires one of: team_id — requests satisfying none of these return 400.
Parameters
team_idquerybigintoptional
Filter by team.
season_idquerybigintoptional
Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
positionquerystringoptional
Filter by player position. Values: DC, HC, OC.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(11 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
season_id
bigintReference to the season
e.g. 2024
team_id
bigintReference 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
season_id
bigintReference to the season
e.g. 2024
team_id
bigintReference 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_staffsnfl.coaching_staffs
The 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_staffs
Requires one of: season_id — requests satisfying none of these return 400.
Parameters
team_idquerybigintoptional
Filter by team.
season_idquerybigintoptional
Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
positionquerystringoptional
Filter by player position.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(8 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_chartsnfl.depth_charts
One 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_charts
Requires one of: game_id or team_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
team_idquerybigintoptional
Filter by team.
season_idquerybigintoptional
Filter to a single season.
weekqueryintegeroptional
Filter by week of the season.
player_idquerybigintoptional
Filter to a single player.
positionquerystringoptional
Filter 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 100
Page size. Defaults to 100; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(15 fields)show schema ▸
FieldTypeReferencesDescription
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
bigintFK to nfl.games — the game this depth chart is associated with.
e.g. 120
player_id
bigintFK to nfl.players — the player occupying this depth-chart slot.
e.g. 19
season_id
bigintFK to nfl.seasons — the season containing this game.
e.g. 2024
team_id
bigintFK 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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
bigintFK to nfl.games — the game this depth chart is associated with.
e.g. 120
player_id
bigintFK to nfl.players — the player occupying this depth-chart slot.
e.g. 19
season_id
bigintFK to nfl.seasons — the season containing this game.
e.g. 2024
team_id
bigintFK 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_rostersnfl.game_team_rosters
The 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_rosters
Requires one of: game_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
team_idquerybigintoptional
Filter by team.
player_idquerybigintoptional
Filter to a single player.
positionquerystringoptional
Filter 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.
statusquerystringoptional
Filter 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_orderqueryintegeroptional
Filter by depth-chart rank (e.g., 1 for starters). Range syntax: depth_order__lte=.
formationquerystringoptional
Filter by unit/formation. Values: offense, defense, special_teams.
injury_statusquerystringoptional
Filter by injury status designation. Values: Active, Doubtful, Injured Reserve, Note, Out, Questionable, Unknown.
modequerystringoptionaldefault pre
Time 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 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(12 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary key (id) of the game_team_roster row.
modequerystringoptionaldefault pre
Time 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 ▸
FieldTypeReferencesDescription
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_staffsnfl.game_team_staffs
The coaching staff on the sideline for each NFL game — head coach, offensive coordinator, defensive coordinator, for both teams.
GET/api/v1/nfl/game_team_staffs
Requires one of: game_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
team_idquerybigintoptional
Filter by team.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(6 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
game_id
bigintReference to the game
e.g. 49
team_id
bigintReference 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
game_id
bigintReference to the game
e.g. 49
team_id
bigintReference 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_rostersnfl.team_player_rosters
Each 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_rosters
Requires one of: team_id + season_id — requests satisfying none of these return 400.
Parameters
team_idquerybigintoptional
Filter by team.
player_idquerybigintoptional
Filter to a single player.
season_idquerybigintoptional
Filter 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.
positionquerystringoptional
Filter 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 pre
Time 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 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(17 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
game_id
bigintThe 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}
Parameters
idpathbigintrequired
Primary key (id) of the team_player_roster row.
modequerystringoptionaldefault pre
Time 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 ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
game_id
bigintThe 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

stadiumsnfl.stadiums
Venues 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/stadiums
Parameters
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(20 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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
refereesnfl.referees
NFL 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/referees
Parameters
activequerybooleanoptional
Filter by active status (defaults to true to show only currently-active rows; pass active=false to include inactive).
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(8 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_lookupsnfl.operator_team_lookups
How 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_lookups
Requires one of: operator_id — requests satisfying none of these return 400.
Parameters
operator_idquerybigintoptional
Filter by sportsbook / operator.
team_idquerybigintoptional
Filter by team.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(6 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
operator_id
bigintReference to main.operator entity
e.g. 4
operator_team_id
string—External team ID from operator
e.g. 28
team_id
bigintInternal 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
operator_id
bigintReference to main.operator entity
e.g. 4
operator_team_id
string—External team ID from operator
e.g. 28
team_id
bigintInternal 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
playoffsnfl.playoffs
The 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/playoffs
Requires one of: season_id or home_team_id or away_team_id or status — requests satisfying none of these return 400.
Parameters
season_idquerybigintoptional
Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
home_team_idquerybigintoptional
Filter by home team.
away_team_idquerybigintoptional
Filter by away team.
statusquerystringoptional
Filter by row status.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(11 fields)show schema ▸
FieldTypeReferencesDescription
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
bigintnullableWinning 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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
bigintnullableWinning 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_resultsnfl.combine_results
NFL 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_results
Requires one of: player_id or season + position — requests satisfying none of these return 400.
Parameters
player_idquerybigintoptional
Filter to a single player.
seasonqueryintegeroptional
Filter by season start year.
positionquerystringoptional
Filter 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 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(16 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_picksnfl.draft_picks
Every 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_picks
Requires one of: season — requests satisfying none of these return 400.
Parameters
seasonqueryintegeroptional
Filter by season start year.
roundqueryintegeroptional
Filter by draft round.
team_idquerybigintoptional
Filter by team.
player_idquerybigintoptional
Filter to a single player.
positionquerystringoptional
Filter 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 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(38 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_refereesnfl.game_referees
The officiating crew working each NFL game — who refereed, who umpired, who judged each part of the field.
GET/api/v1/nfl/game_referees
Requires one of: game_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
referee_idquerybigintoptional
Filter by referee.
positionquerystringoptional
Filter by crew position (e.g., `Referee`, `Umpire`).
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(4 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_weathersnfl.game_weathers
On-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_weathers
Requires one of: game_id — requests satisfying none of these return 400.
Parameters
game_idquerybigintoptional
Filter to a single game.
stadium_idquerybigintoptional
Filter by stadium.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/game_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/json
Response Schema(23 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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
injuriesnfl.injuries
The 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/injuries
Requires one of: player_id or season_id — requests satisfying none of these return 400.
Parameters
player_idquerybigintoptional
Filter to a single player.
game_idquerybigintoptional
Filter to a single game.
team_idquerybigintoptional
Filter by team.
season_idquerybigintoptional
Filter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
weekqueryintegeroptional
Filter by week of the season.
modequerystringoptionaldefault pre
Time 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 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(15 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary key (id) of the injury row.
modequerystringoptionaldefault pre
Time 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 ▸
FieldTypeReferencesDescription
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_lookupsnfl.operator_player_lookups
How 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_lookups
Requires one of: operator_id — requests satisfying none of these return 400.
Parameters
operator_idquerybigintoptional
Filter by sportsbook / operator.
player_idquerybigintoptional
Filter to a single player.
positionquerystringoptional
Filter 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 100
Page size. Defaults to 100; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(9 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
operator_id
bigintReference to main.operator entity
e.g. 5
operator_player_id
string—External player ID from operator
e.g. 6012
player_id
bigintnullableInternal 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
operator_id
bigintReference to main.operator entity
e.g. 5
operator_player_id
string—External player ID from operator
e.g. 6012
player_id
bigintnullableInternal 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_contractsnfl.player_contracts
NFL 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_contracts
Requires one of: player_id — requests satisfying none of these return 400.
Parameters
player_idquerybigintoptional
Filter to a single player.
team_idquerybigintoptional
Filter by team.
positionquerystringoptional
Filter by player position. Values: C, CB, ED, FB, IDL, K, LB, LG, LS, LT, P, QB, RB, RG, RT, S, TE, WR.
limitqueryintegeroptionaldefault 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(21 fields)show schema ▸
FieldTypeReferencesDescription
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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
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_newsnfl.player_news
News about NFL players — transactions, injuries, lineup announcements, suspensions, and general beat-reporter updates.
GET/api/v1/nfl/player_news
Requires one of: player_id or team_id — requests satisfying none of these return 400.
Parameters
player_idquerybigintoptional
Filter to a single player.
team_idquerybigintoptional
Filter by team.
categoryquerystringoptional
Filter by category. Values: general, injury, lineup, transaction.
status_enumquerystringoptional
Filter 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.
urgencyquerystringoptional
Filter by news urgency. Values: BREAKING_GAME_TIME, HIGH, MEDIUM, ROUTINE.
sourcequerystringoptional
Filter by source provider. Values: cbs_sports, espn, sportsdata.
news_timequerytimestamptzoptional
Filter 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 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(22 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
external_id
stringnullable—Unique identifier from the news provider.
e.g. sportsdata-214469
game_id
bigintnullableAssociated game ID when this news item relates to a specific game.
e.g. 22360
opponent_team_id
bigintnullableOpponent team ID when this news item relates to an upcoming or active game matchup.
e.g. 19
player_id
bigintnullablePlayer ID associated with the news report.
e.g. 925
team_id
bigintnullableTeam 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
external_id
stringnullable—Unique identifier from the news provider.
e.g. sportsdata-214469
game_id
bigintnullableAssociated game ID when this news item relates to a specific game.
e.g. 22360
opponent_team_id
bigintnullableOpponent team ID when this news item relates to an upcoming or active game matchup.
e.g. 19
player_id
bigintnullablePlayer ID associated with the news report.
e.g. 925
team_id
bigintnullableTeam 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_newsnfl.team_news
News and updates about NFL teams — game previews, coaching changes, front-office moves, and beat reports.
GET/api/v1/nfl/team_news
Requires one of: team_id — requests satisfying none of these return 400.
Parameters
team_idquerybigintoptional
Filter by team.
categoryquerystringoptional
Filter by category (game_preview, coaching, transaction, general, draft, depth_chart). Values: game_preview, coaching, transaction, general, draft, depth_chart.
urgencyquerystringoptional
Filter by news urgency. Values: BREAKING_GAME_TIME, HIGH, MEDIUM, ROUTINE.
news_timequerytimestamptzoptional
Filter 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 50
Page size. Defaults to 50; max 5000.
from_idquerybigintoptional
Return rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.stat-api.com/api/v1/nfl/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/json
Response Schema(12 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
external_id
stringnullable—Canonical external identifier for deduplication.
e.g. espn-nfl-49825684
game_id
bigintnullableAssociated game ID when news relates to a specific game.
e.g. 43413
opponent_team_id
bigintnullableOpponent team ID when news relates to an upcoming or completed game matchup.
e.g. 18
team_id
bigintTeam 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}
Parameters
idpathbigintrequired
Primary 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 ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
external_id
stringnullable—Canonical external identifier for deduplication.
e.g. espn-nfl-49825684
game_id
bigintnullableAssociated game ID when news relates to a specific game.
e.g. 43413
opponent_team_id
bigintnullableOpponent team ID when news relates to an upcoming or completed game matchup.
e.g. 18
team_id
bigintTeam 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