NHL schedule and rosters

Hockey API

The night's games, the standings, and a club's roster. Pass a date, or an abbreviation such as VAN. No betting lines.

Capabilities

Schedule, standings, and roster

For a nightly scoreboard or a club page. Pass a date, or an abbreviation such as VAN. No betting lines.

The schedule

Games for a stretch of dates, with the rink and the start time. The date is YYYY-MM-DD, and you can leave it off. See examples

The standings

Points, wins, and the conference and division, for the season the feed is on. See examples

The scores

The result, separate from the schedule row that announced the game.

The clubs

A club comes back with its name, abbreviation, and logo. The abbreviation is what the roster and the stats expect.

The roster

The roster is a call on the club. Forwards, defensemen, and goalies come back in separate lists.

A club's games and stats

Games and stats for one club are two further calls, once you have the abbreviation.

How a call is made

The path

The key goes in the Authorization header as a bearer token. Start with the night, then the club.

The night

GET /api/v1/nhl/schedule and /api/v1/nhl/standings take an optional date as YYYY-MM-DD. Leave it off for the current day.

The score

GET /api/v1/nhl/scores uses the same optional date. It is the result, separate from the schedule row that listed the game.

The club

Roster, games, and stats need teamAbbrev, such as NJD or VAN. The teams call is where that abbreviation comes from.

Shortened examples

Sample responses

Shortened examples of a club, a standings row, a scheduled game, a score row, a roster line, and a skater. The standings row is from the 2023–24 season in the sample. The score row is a game that had not started yet.

{
    "id": 1,
    "abbrev": "NJD",
    "name": {
        "default": "New Jersey Devils"
    },
    "placeName": {
        "default": "New Jersey"
    },
    "seasonId": 20232024
}
{
    "id": 2023020747,
    "season": 20232024,
    "gameDate": "2024-01-25",
    "startTimeUTC": "2024-01-26T00:00:00Z",
    "gameState": "FUT",
    "venue": {
        "default": "Little Caesars Arena"
    },
    "awayTeam": {
        "abbrev": "PHI",
        "name": {
            "default": "Flyers"
        }
    },
    "homeTeam": {
        "abbrev": "DET",
        "name": {
            "default": "Red Wings"
        }
    }
}
{
    "id": 8480003,
    "firstName": {
        "default": "Jesper"
    },
    "lastName": {
        "default": "Boqvist"
    },
    "sweaterNumber": 70,
    "positionCode": "C",
    "shootsCatches": "L",
    "birthDate": "1998-10-30",
    "birthCountry": "SWE"
}
{
    "teamAbbrev": {
        "default": "VAN"
    },
    "teamName": {
        "default": "Vancouver Canucks"
    },
    "conferenceName": "Western",
    "divisionName": "Pacific",
    "gamesPlayed": 48,
    "wins": 32,
    "losses": 11,
    "otLosses": 5,
    "points": 69,
    "date": "2024-01-25",
    "seasonId": 20232024
}
{
    "id": 2023020747,
    "gameDate": "2024-01-25",
    "gameState": "PRE",
    "venue": {
        "default": "Little Caesars Arena"
    },
    "awayTeam": {
        "abbrev": "PHI",
        "record": "25-17-6"
    },
    "homeTeam": {
        "abbrev": "DET",
        "record": "24-18-5"
    }
}
{
    "playerId": 8473419,
    "firstName": {
        "default": "Brad"
    },
    "lastName": {
        "default": "Marchand"
    },
    "positionCode": "L",
    "gamesPlayed": 47,
    "goals": 23,
    "assists": 23,
    "points": 46,
    "plusMinus": 7
}

Before you integrate

Common questions

Short answers before you wire a schedule or a standings table.

JSON for the schedule, the standings, the scores, the clubs, or one club's roster, games, or stats. They are separate calls.

Take the abbreviation from the teams call, such as VAN, and pass it as teamAbbrev to /api/v1/nhl/teams-roster.

No. The standings row is an example from the 2023–24 season, kept so you can see the fields.

Call /api/v1/nhl/schedule. Pass date as YYYY-MM-DD, or leave it off for the current day.

No. This API is the schedule, the table, the scores, and the club. It is not a sportsbook.

Documentation

Schedule, standings, and roster calls are in the hockey docs, in four languages.

Code samples

A sample for each endpoint, in Shell, JavaScript, PHP, and Python.

View documentation

Related APIs

Also in the catalog

Other feeds on the same key. Open one if this page isn't quite what you needed.

Baseball

Clubs, the day's schedule, and the box score for a single game. It's the published record of the game. Baseball API

Football

Live matches, clubs, and lineups. One call returns the prices already attached to a match, if you need the number. You can't place a bet from here. Football API

Markets

Quotes, price history, option chains, and the earnings and dividend calendars. The right feed when the job is prices. Stock and Options API

Pricing

Same plans, whole catalog

Plans cover the whole SteadyAPI catalog, not only this API. The monthly allowance is on the table. For a larger volume, email [email protected].

Starter
$14.95
$19.95
per month
Developer Popular
$39.95
$59.95
per month
Business
$89.95
$99.95
per month
Enterprise
$299.95
$499.95
per month
Start 7-Day TrialStart 7-Day TrialStart 7-Day TrialStart 7-Day Trial
Requests per month10,000250,0002,500,000
Stock Market API
Options Data API
Crypto Data API
AliExpress API
Reddit API
Booking.com API
Real Estate API
Baseball (MLB) API
Hockey API
Football API
Amazon API
eBay API
Walmart API
Instagram API
Twitter / X API
TikTok API
YouTube API
AutoHub API
ScrapeFlow
Commercial Use
Optional overage rate*$1.50 per 1,000 requests$0.50 per 1,000 requests$0.09 per 1,000 requests
Overage capup to 50,000 extraup to 1,250,000 extraup to 12,500,000 extra
Starter
$11.96
$14.35
per month$143.52 billed yearly
Developer Popular
$31.96
$40.00
per month$383.52 billed yearly
Business
$71.96
$90.00
per month$863.52 billed yearly
Enterprise
$320.83
$400.00
per month$3,849.95 billed yearly
Start 7-Day TrialStart 7-Day TrialStart 7-Day TrialStart 7-Day Trial
Requests per month10,000250,0002,500,000
Stock Market API
Options Data API
Crypto Data API
AliExpress API
Reddit API
Booking.com API
Real Estate API
Baseball (MLB) API
Hockey API
Football API
Amazon API
eBay API
Walmart API
Instagram API
Twitter / X API
TikTok API
YouTube API
AutoHub API
ScrapeFlow
Commercial Use
Optional overage rate*$1.50 per 1,000 requests$0.50 per 1,000 requests$0.09 per 1,000 requests
Overage capup to 50,000 extraup to 1,250,000 extraup to 12,500,000 extra

* Overage stays off until you turn it on in Billing, and only for Stripe card subscriptions. Usage is counted in monthly periods that start on your billing day, yearly plans included. Requests past the included limit are billed after the period ends, up to the cap. If you switch plans during a period, the limit and overage rate of the plan you are on when that period ends apply to the whole period.

Why SteadyAPI

The night, then the club

The schedule, the standings, and the roster are three calls. The club abbreviation comes from the teams list.

Date, then score

Use the schedule to find the game. Use the scores call when you want the result without the rest of the night.

The table is its own call

Standings are not attached to every schedule row. Ask for them when the table is what you are showing.

Club, then roster

The abbreviation comes from the teams call. The roster, the games, and the stats expect it.

Your monthly plan

Each call counts against the monthly allowance on your plan. The schedule and the roster count separately.

Also on the blog

From the blog

These posts come from across SteadyAPI, so the one at the top may be about a different API. The reference for this page is the documentation above.

How to Read TikTok Video Comments Using SteadyAPIOct 05, 2026

How to Read TikTok Video Comments Using SteadyAPI

Read TikTok comments 20 at a time. Video 7106594312292453675 has 1269 comments. The next cursor is the string 20.

READ MORE
How to Look Up a Crypto Profile Using SteadyAPIOct 09, 2026

How to Look Up a Crypto Profile Using SteadyAPI

Look up one coin by slug. Store the symbol, status, and website list. Quotes are a later call and use data, not body.

READ MORE
How to Read Stock Financials Using SteadyAPIOct 09, 2026

How to Read Stock Financials Using SteadyAPI

Annual income, balance sheet, and cash flow for one ticker. Amounts come back as formatted strings in three tables.

READ MORE
How to Check Vehicle Recalls Using SteadyAPIOct 08, 2026

How to Check Vehicle Recalls Using SteadyAPI

Learn how to check vehicle recalls with SteadyAPI. Read component, summary, and remedy for a vehicle id.

READ MORE