STAT-API

NHL players API

playersnhl.players
Every individual who has played in the NHL — current rosters, AHL call-ups, free agents, and retired players, with their shooting hand, position, and home country.
⚠️ This endpoint is documented but not yet live. Calls return 503 until data is wired in.
GET/api/v1/nhl/players
Requires one of: team_id or roster_status — requests satisfying none of these return 400.
Parameters
team_idquerybigintoptional
Filter to players whose current team_id matches. Null team_id rows (free agents, retired) are excluded when this filter is applied.
roster_statusquerystringoptional
Filter by canonical roster status. NHL source granularity is coarse: "active" (on a current team roster), "free_agent" (no team), "inactive" (not currently rostered); injured_reserve appears where derivable. The "on a team now" set is {active, injured_reserve}. Values: active, injured_reserve, inactive, free_agent.
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/nhl/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
503Coming soon — handler returns 503 until data is wired in.
Response Schema(35 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
draft_team_id
bigintnullable—
e.g. — (all-null in sample)
league_id
stringnullable—Official NHL player identifier
e.g. — (all-null in sample)
league_player_id
integer—Official NHL player ID (issued by the league)
e.g. — (all-null in sample)
team_id
bigintnullable—
e.g. — (all-null in sample)
birth_city
stringnullable——
e.g. — (all-null in sample)
birth_country
stringnullable——
e.g. — (all-null in sample)
birth_date
datenullable——
e.g. — (all-null in sample)
birth_state
stringnullable——
e.g. — (all-null in sample)
catches
stringnullable——
e.g. — (all-null in sample)
college
stringnullable——
e.g. — (all-null in sample)
draft_overall_pick
integernullable——
e.g. — (all-null in sample)
draft_pick
integernullable——
e.g. — (all-null in sample)
draft_round
integernullable——
e.g. — (all-null in sample)
draft_year
integernullable——
e.g. — (all-null in sample)
experience
integernullable—Years of NHL experience
e.g. — (all-null in sample)
first_name
string——
e.g. — (all-null in sample)
full_name
string——
e.g. — (all-null in sample)
height
integernullable—Height in inches
e.g. — (all-null in sample)
injury_body_part
stringnullable——
e.g. — (all-null in sample)
injury_notes
stringnullable——
e.g. — (all-null in sample)
injury_start_date
timestamptznullable——
e.g. — (all-null in sample)
injury_status
stringnullable——
e.g. — (all-null in sample)
jersey
stringnullable——
e.g. — (all-null in sample)
last_name
string——
e.g. — (all-null in sample)
nationality
stringnullable——
e.g. — (all-null in sample)
photo_url
stringnullable—URL to player headshot image
e.g. — (all-null in sample)
position_category
stringnullable——
e.g. — (all-null in sample)
primary_position
string——
e.g. — (all-null in sample)
rookie_year
integernullable——
e.g. — (all-null in sample)
roster_status
stringnullable—Canonical roster status, shared across leagues. NHL source granularity is coarse: "active" (on a current api-web team roster), "free_agent" (no team), "inactive" (not currently rostered); injured_reserve where derivable. The "on a team now" set is {active, injured_reserve}.
shoots
stringnullable——
e.g. — (all-null in sample)
weight
integernullable—Weight in pounds
e.g. — (all-null in sample)
youth_league
stringnullable——
e.g. — (all-null in sample)
youth_team
stringnullable——
e.g. — (all-null in sample)
GET/api/v1/nhl/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/nhl/players/{pk_value}'
Responses
200Single player row.application/jsonshow example ▸
404Row not found.
503Coming soon — handler returns 503 until data is wired in.
Response Schema(35 fields)show schema ▸
FieldTypeReferencesDescription
idkey
bigint—Primary Key
draft_team_id
bigintnullable—
e.g. — (all-null in sample)
league_id
stringnullable—Official NHL player identifier
e.g. — (all-null in sample)
league_player_id
integer—Official NHL player ID (issued by the league)
e.g. — (all-null in sample)
team_id
bigintnullable—
e.g. — (all-null in sample)
birth_city
stringnullable——
e.g. — (all-null in sample)
birth_country
stringnullable——
e.g. — (all-null in sample)
birth_date
datenullable——
e.g. — (all-null in sample)
birth_state
stringnullable——
e.g. — (all-null in sample)
catches
stringnullable——
e.g. — (all-null in sample)
college
stringnullable——
e.g. — (all-null in sample)
draft_overall_pick
integernullable——
e.g. — (all-null in sample)
draft_pick
integernullable——
e.g. — (all-null in sample)
draft_round
integernullable——
e.g. — (all-null in sample)
draft_year
integernullable——
e.g. — (all-null in sample)
experience
integernullable—Years of NHL experience
e.g. — (all-null in sample)
first_name
string——
e.g. — (all-null in sample)
full_name
string——
e.g. — (all-null in sample)
height
integernullable—Height in inches
e.g. — (all-null in sample)
injury_body_part
stringnullable——
e.g. — (all-null in sample)
injury_notes
stringnullable——
e.g. — (all-null in sample)
injury_start_date
timestamptznullable——
e.g. — (all-null in sample)
injury_status
stringnullable——
e.g. — (all-null in sample)
jersey
stringnullable——
e.g. — (all-null in sample)
last_name
string——
e.g. — (all-null in sample)
nationality
stringnullable——
e.g. — (all-null in sample)
photo_url
stringnullable—URL to player headshot image
e.g. — (all-null in sample)
position_category
stringnullable——
e.g. — (all-null in sample)
primary_position
string——
e.g. — (all-null in sample)
rookie_year
integernullable——
e.g. — (all-null in sample)
roster_status
stringnullable—Canonical roster status, shared across leagues. NHL source granularity is coarse: "active" (on a current api-web team roster), "free_agent" (no team), "inactive" (not currently rostered); injured_reserve where derivable. The "on a team now" set is {active, injured_reserve}.
shoots
stringnullable——
e.g. — (all-null in sample)
weight
integernullable—Weight in pounds
e.g. — (all-null in sample)
youth_league
stringnullable——
e.g. — (all-null in sample)
youth_team
stringnullable——
e.g. — (all-null in sample)