STAT-API

NFL team_player_rosters API

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.
e.g. 43495
player_id
bigint—
e.g. 1020591
season_id
bigint—
e.g. 2026
team_id
bigint—
e.g. 28
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. 20261015
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.
e.g. 2026-10-18T17:00:00.000Z
injury_status
stringnullable—Injury designation on the current game roster (e.g. Questionable, Doubtful, Out; empty when healthy).
Values:OutQuestionableDoubtful
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).
e.g. LB
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.
e.g. — (all-null in sample)
report_primary_injury
stringnullable—The injury report's primary injury for the current game.
e.g. Ankle
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.
Values:ActiveQuestionableOutInjured ReserveDoubtfulUnknown
season_type
stringnullable—Season type of the current game (regular_season, postseason, preseason).
e.g. regular_season
status
stringnullable—Roster status for the current game (`Active`, `Inactive`, `PracticeSquad`, `Reserve`, `Exempt`, `PhysicallyUnableToPerform`, `NonFootballInjury`, `Suspended`, ...); only players on the club appear.
Values:ActivePracticeSquadInactive
week
integernullable—Week of the current game within its season type.
e.g. 6
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.
e.g. 43495
player_id
bigint—
e.g. 1020591
season_id
bigint—
e.g. 2026
team_id
bigint—
e.g. 28
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. 20261015
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.
e.g. 2026-10-18T17:00:00.000Z
injury_status
stringnullable—Injury designation on the current game roster (e.g. Questionable, Doubtful, Out; empty when healthy).
Values:OutQuestionableDoubtful
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).
e.g. LB
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.
e.g. — (all-null in sample)
report_primary_injury
stringnullable—The injury report's primary injury for the current game.
e.g. Ankle
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.
Values:ActiveQuestionableOutInjured ReserveDoubtfulUnknown
season_type
stringnullable—Season type of the current game (regular_season, postseason, preseason).
e.g. regular_season
status
stringnullable—Roster status for the current game (`Active`, `Inactive`, `PracticeSquad`, `Reserve`, `Exempt`, `PhysicallyUnableToPerform`, `NonFootballInjury`, `Suspended`, ...); only players on the club appear.
Values:ActivePracticeSquadInactive
week
integernullable—Week of the current game within its season type.
e.g. 6