NFL players API
players
nfl.playersEvery individual who has played in the NFL — current rosters, free agents, retired veterans — plus team-defense entries used for fantasy and DST scoring.
GET/api/v1/nfl/playersList players for NFL
Requires one of:
team_id or roster_status or gsis_id or primary_position — requests satisfying none of these return 400.Parameters
team_idquerybigintoptionalFilter by team.
roster_statusquerystringoptionalFilter by canonical roster status (shared cross-league vocabulary). The "on a team now" set is {active, injured_reserve, practice_squad, reserve, suspended}. Values: active, injured_reserve, practice_squad, reserve, suspended, free_agent, waived, retired, inactive.
gsis_idquerystringoptionalFilter by GSIS external player id.
primary_positionquerystringoptionalFilter by player primary position (e.g. QB, WR, RB). Values: C, CB, DB, DE, DL, DST, DT, FB, FS, G, ILB, K, LB, LS, MLB, NT, OL, OLB, OT, P, QB, RB, S, SAF, TE, WR.
limitqueryintegeroptionaldefault 50Page size. Defaults to 50; max 5000.
from_idquerybigintoptionalReturn rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
-H 'Authorization: Bearer YOUR_API_KEY' \
'https://api.stat-api.com/api/v1/nfl/players?team_id=1'Responses
200players rows matching the declared filter set, wrapped in { players, limit, next_from_id }. next_from_id is the last row's id on a full page — pass it back via ?from_id= to walk the full result; null marks the terminal page.application/jsonshow example ▸
400No declared filter set was satisfied — response body matches MissingRequiredFiltersError; pick one combo from the accepted-sets hint and resend.
application/jsonResponse Schema(27 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
gsis_id | string | — | Game Statistics and Information System ID (e.g. 00-0028830) e.g. 00-0022531 |
league_player_id | stringnullable | — | Official NFL player ID (UUID) from nfl.com e.g. 3200524f-4433-9293-a3cf-ad7758d03003 |
team_id | bigintnullable | Current NFL team (FK to `teams`); null for free agents and retired players. e.g. 5 | |
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 (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:activewaivedpractice_squadreservefree_agentinactiveinjured_reserveretiredsuspended |
weight | integernullable | — | Weight in pounds. e.g. 200 |
GET/api/v1/nfl/players/{id}Get a single player by id
Parameters
idpathbigintrequiredPrimary key (id) of the player row.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
-H 'Authorization: Bearer YOUR_API_KEY' \
'https://api.stat-api.com/api/v1/nfl/players/{pk_value}'Responses
200Single player row.application/jsonshow example ▸
404Row not found.
Response Schema(27 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
gsis_id | string | — | Game Statistics and Information System ID (e.g. 00-0028830) e.g. 00-0022531 |
league_player_id | stringnullable | — | Official NFL player ID (UUID) from nfl.com e.g. 3200524f-4433-9293-a3cf-ad7758d03003 |
team_id | bigintnullable | Current NFL team (FK to `teams`); null for free agents and retired players. e.g. 5 | |
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 (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:activewaivedpractice_squadreservefree_agentinactiveinjured_reserveretiredsuspended |
weight | integernullable | — | Weight in pounds. e.g. 200 |