NFL team_player_rosters API
team_player_rosters
nfl.team_player_rostersEach NFL club's roster today — the players on the club's current game roster (its next game not yet kicked off, else its latest game), one row per player, with the game's status and injury report. Between seasons, until 21 days before a club's next game, it shows the club's last game roster as it stood at that kickoff. For past weeks, use the game rosters (game_team_rosters).
GET/api/v1/nfl/team_player_rostersList team_player_rosters for NFL
Requires one of:
team_id + season_id — requests satisfying none of these return 400.Parameters
team_idquerybigintoptionalFilter by team.
player_idquerybigintoptionalFilter to a single player.
season_idquerybigintoptionalFilter to a season by year (e.g., 2026 for the 2026-27 season). Defaults to the current season. The roster is today's, so a past season returns no rows.
positionquerystringoptionalFilter by player position. Values: C, CB, DB, DE, DL, DT, FB, FS, G, ILB, K, LB, LS, MLB, NT, OL, OLB, OT, P, QB, RB, S, SAF, TE, WR.
modequerystringoptionaldefault preTime wall. `pre` (default): each value as it stood at its game's kickoff; post-game fields are null. `full`: the latest value before week end (the first Tuesday 04:00 ET after the game), post-game fields included. See the Data timing guide. Values: pre, full.
limitqueryintegeroptionaldefault 50Page size. Defaults to 50; max 5000.
from_idquerybigintoptionalReturn rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
-H 'Authorization: Bearer YOUR_API_KEY' \
'https://api.stat-api.com/api/v1/nfl/team_player_rosters?team_id=1&season_id=2026'Responses
200team_player_rosters rows matching the declared filter set, wrapped in { team_player_rosters, limit, next_from_id }. next_from_id is the last row's id on a full page — pass it back via ?from_id= to walk the full result; null marks the terminal page.application/jsonshow example ▸
400No declared filter set was satisfied — response body matches MissingRequiredFiltersError; pick one combo from the accepted-sets hint and resend.
application/jsonResponse Schema(17 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | The club's current game — its next game not yet kicked off, else its latest game. 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}Get a single team_player_roster by id
Parameters
idpathbigintrequiredPrimary key (id) of the team_player_roster row.
modequerystringoptionaldefault preTime wall. `pre` (default): each value as it stood at its game's kickoff; post-game fields are null. `full`: the latest value before week end (the first Tuesday 04:00 ET after the game), post-game fields included. See the Data timing guide. Values: pre, full.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
-H 'Authorization: Bearer YOUR_API_KEY' \
'https://api.stat-api.com/api/v1/nfl/team_player_rosters/{pk_value}'Responses
200Single team_player_roster row.application/jsonshow example ▸
404Row not found.
Response Schema(17 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
game_id | bigint | The club's current game — its next game not yet kicked off, else its latest game. 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 |