image

The roster is the player list for one NHL club. You pass the team abbreviation from standings, such as BOS. Players are split into forwards, defensemen, and goalies. Names are objects, not plain strings.

👉 To access this endpoint, you must obtain an API key: https://steadyapi.com/register


Authentication

Every call uses a Bearer token from your SteadyAPI dashboard.

Documentation:
https://docs.steadyapi.com/#authenticating-requests

headers = {
  'Authorization': 'Bearer YOUR_API_KEY'
}

Where this fits

Read teamAbbrev.default from GET /v1/nhl/standings and pass that string here. The same abbreviation is what GET /v1/nhl/teams-games and GET /v1/nhl/teams-stats expect. A city name is not the parameter.


Get an NHL roster

Endpoint: GET /v1/nhl/teams-roster

Documentation:
https://docs.steadyapi.com/#hockey-nhl-GETapi-v1-nhl-teams-roster

Parameters

  • teamAbbrev — required team abbreviation (example: BOS)

There is no date and no season parameter. One abbreviation returns the roster grouped by position. The group key is not the player’s position code. Read positionCode on the player. C in the sample is center, and that player still lives under forwards.

Python

import requests

url = "https://api.steadyapi.com/v1/nhl/teams-roster"
headers = {"Authorization": "Bearer YOUR_API_KEY"}

response = requests.get(url, headers=headers, params={"teamAbbrev": "BOS"})
response.raise_for_status()
body = response.json().get("body") or {}

for player in body.get("forwards") or []:
    first = (player.get("firstName") or {}).get("default")
    last = (player.get("lastName") or {}).get("default")
    print(player.get("id"), first, last, player.get("sweaterNumber"))

Annotated sample

{
  "forwards": [
    {
      "id": 8480003,
      "firstName": { "default": "Jesper" },
      "lastName": { "default": "Boqvist" },
      "sweaterNumber": 70,
      "positionCode": "C",
      "shootsCatches": "L",
      "heightInInches": 73,
      "weightInPounds": 184,
      "birthDate": "1998-10-30"
    }
  ]
}

Store id. Display firstName.default and lastName.default. sweaterNumber is the jersey number. The same player fields appear under defensemen and goalies. headshot is a URL when it is present. Birth city is also an object with default. Birth country in the sample is the code SWE.


Practical use

Do not concatenate firstName as if it were a string. You will print the object. Use the default field, the same way standings uses teamAbbrev.default.

A full roster is three lists. If you only loop forwards, you drop the defense and the goalies. Count all three when you report roster size.

The abbreviation is the one from standings, three letters such as BOS, DAL, or WPG. The team’s city is not accepted in place of it.

👉 Get your API key and load a roster: https://steadyapi.com/register

How to Search Rental Listings Using SteadyAPI Oct 14, 2026

How to Search Rental Listings Using SteadyAPI

Search rental listings by location. Show price.display, and move to the next page with offset.

How to Read a Tweet Using SteadyAPI Oct 13, 2026

How to Read a Tweet Using SteadyAPI

Read one tweet by id. The text and counts are on legacy. meta.reply_count is how many replies were included.

How to Get an NHL Roster Using SteadyAPI Oct 12, 2026

How to Get an NHL Roster Using SteadyAPI

Load forwards, defensemen, and goalies for one NHL abbreviation. Player names are objects with a default field.

How to Find Vehicles for Sale Using SteadyAPI Oct 11, 2026

How to Find Vehicles for Sale Using SteadyAPI

Search vehicle listings by make, model, and ZIP. Price and mileage on each row are numbers.