STAT-API

NFL players API

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. 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}
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. 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