NHL schedule, scores, and rosters

Hockey API

Pull a week of NHL games from any start date, the scores and standings for a day, and each club's roster, monthly games, and season player stats. Dates use YYYY-MM-DD, and clubs use a three-letter abbreviation such as BOS.

Capabilities

What you can do with the Hockey API

Seven endpoints split into a league view (schedule, scores, standings) and a club view (teams, roster, games, stats). League calls take an optional date, and club calls take teamAbbrev.

The weekly schedule

One week of games starting on the date you pass, grouped by day, with the venue, start time, both teams, and game state. Meta adds the previous and next week's start dates and the season's key dates, so you can step through the calendar a week at a time. See examples

The standings

One row per team as of a date: conference and division with the team's place in each, games played, wins, losses, points, goal differential, and home, road, and last-10 splits. Pass a past date to show the table as it stood that day. See examples

The scores

The games on one date with their state and score, including games in progress. The response also counts the games on each day of that week, which helps when you build a date picker. See examples

The clubs

The teams call lists the clubs on the NHL's current schedule calendar, each with its team id, three-letter abbreviation, full and common names, and logo URLs. That abbreviation is the value the club endpoints expect. See examples

The roster

Forwards, defensemen, and goalies in separate lists. Each player has an id, headshot, sweater number, position, shoots or catches, height, weight, and birth details. The season is the one spanning last year and this year, for example 2025-26 for a request made in 2026. See examples

A club's games and stats

The team games call returns the club's games for the current month, played and upcoming, with TV broadcasts. The team stats call returns current-season numbers for its skaters, such as goals, assists, points, plus/minus, and ice time, and for its goalies. See examples

How a call is made

From a date to a club

Send your key as a bearer token in the Authorization header. Most integrations read the league by date first, then open a club by its abbreviation.

The date

GET /api/v1/nhl/schedule, /api/v1/nhl/scores, and /api/v1/nhl/standings accept an optional date in YYYY-MM-DD form, such as 2024-01-25. Leave it out and the call uses today. A date in another format is rejected with a validation error.

A week at a time

The schedule call returns one week from the date you send. To move forward or back, read nextStartDate or previousStartDate from meta and pass it as the next date.

The club

GET /api/v1/nhl/teams-roster, /api/v1/nhl/teams-games, and /api/v1/nhl/teams-stats require teamAbbrev, such as BOS or VAN. Take it from the abbrev field in the teams response or from a standings row.

Shortened examples

Sample responses

Trimmed responses for a club, a standings row, a scheduled game, a score row, a roster entry, and a skater's stats. They come from the 2023–24 season, and the score row shows a game that had not started yet, so no final score appears.

{
    "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

Answers to the questions developers ask before building an NHL scoreboard or club page.

Each endpoint returns one JSON view: the week's schedule, a day's scores, the standings, the club list, or one club's roster, monthly games, or season stats. Every response has a meta object and a body that holds the data.

From the abbrev field in /api/v1/nhl/teams, or from the team abbreviation on a standings row. Pass the three letters, such as VAN, to the roster, team games, or team stats endpoint.

No. They are trimmed responses from the 2023–24 season, kept to show the field names. A live call returns current data for the date or club you request.

Call /api/v1/nhl/scores with no date for today's games and their current state, or /api/v1/nhl/schedule for the week starting today. For another day, pass date as YYYY-MM-DD.

Schedule and score rows can carry the odds values that the NHL's own feed attaches to each team, keyed by provider id, and the scores response lists the NHL's odds partners. The API passes those values through as published. It does not calculate odds or take bets.

Documentation

The hockey docs list the parameters for the schedule, scores, standings, teams, roster, team games, and team stats endpoints, explain the date and teamAbbrev rules, and show a full sample response for each.

Code samples

Every endpoint in the documentation includes a sample request in Shell, JavaScript, PHP, and Python.

ShellShellJavaScriptJavaScriptPHPPHPPythonPython

View documentation

Related APIs

Other sports and data APIs

Your SteadyAPI key also works on these APIs.

Baseball

MLB seasons, clubs, rosters, and the schedule for a date, then one game's box score and play-by-play by its gamePk. Baseball API

Football

Soccer matches by date, live and upcoming lists, lineups, match events, and club and player profiles. Its dates are written as YYYYMMDD. Football API

Markets

Stock quotes, price history, option chains, and earnings and dividend calendars, for projects that also follow the markets. Stock and Options API

Pricing

One plan covers every API

Your plan's monthly requests work on this API and every other SteadyAPI API. Plan details, overage rates, and the Free plan's daily cap are on the pricing page. Need more volume than the largest plan? Email [email protected].

Free
$0.00
$9.99
per month
Starter
$14.99
$19.99
per month
Developer
$39.99
$59.99
per month
Business Popular
$89.99
$99.99
per month
Enterprise
$299.99
$499.99
per month
SubscribeSubscribeSubscribeSubscribeSubscribe
Requests per month50010,00050,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$1.05 per 1,000 requests$0.09 per 1,000 requests
Overage capup to 50,000 extraup to 250,000 extraup to 12,500,000 extra
Free
$0.00
$94.99
per year
Starter
$11.96
$14.35
per month$143.52 billed yearly
Developer
$32.50
$40.00
per month$389.99 billed yearly
Business Popular
$72.50
$90.00
per month$869.99 billed yearly
Enterprise
$320.83
$400.00
per month$3,849.99 billed yearly
SubscribeSubscribeSubscribeSubscribeSubscribe
Requests per month50010,00050,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$1.05 per 1,000 requests$0.09 per 1,000 requests
Overage capup to 50,000 extraup to 250,000 extraup to 12,500,000 extra

* Overage is optional and stays off until you turn it on in Billing. It is available on paid plans billed by card through Stripe, and not during a trial. Usage is counted in monthly periods that start on your billing day, yearly plans included. Requests past the included limit are charged at the plan's rate for each started block of 1,000, up to the overage cap, on one invoice after the period ends. Amounts under $0.50 carry over to the next invoice. If you change plans during a period, the limit and overage rate of the plan you are on when the period ends apply to the whole period.

The Free plan is also capped at 20 requests per day (New York time). Requests count by endpoint weight, and only responses with HTTP status 200 count.

Commercial use is included only on the plans that list it. If you are not sure whether your project counts as commercial use, email [email protected] before you launch.

Why this API

How the hockey calls fit together

League and club data come from separate calls, so a scoreboard stays light and a club page requests only what it shows.

Scores for the day, schedule for the week

Use the scores call when a page shows one day's results and games in progress. Use the schedule call when you need the coming week with venues and start times.

Standings on request

The table is its own call and is not attached to schedule rows. Request it when a page actually shows the standings, for today or for a past date.

One abbreviation per club

The roster, monthly games, and season stats endpoints share the same three-letter key, so a single value from the teams list is enough to build a club page.

Your monthly plan

Calls are counted against your plan's monthly requests by endpoint weight. Six hockey endpoints weigh 1, and the teams list weighs 5, so it is worth caching that list instead of calling it on each page view.

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 Search Hotels Using SteadyAPISep 25, 2026

How to Search Hotels Using SteadyAPI

Learn how to find hotels by destination using SteadyAPI. Resolve a place name to coordinates, then pull property names, ratings, and prices with the Booking.com hotel search endpoints.

READ MORE
Predicting Property Value Trends: How to Use Real Estate Valuation APIsJul 19, 2026

Predicting Property Value Trends: How to Use Real Estate Valuation APIs

Learn how to build a predictive real estate valuation pipeline using SteadyAPI. This guide shows developers how to combine historical property values, multi-provider forecasts, neighborhood market trends, housing market indicators, and comparable sales data to power automated valuation models (AVMs), investment analytics, and property intelligence platforms with structured real-time API data.

READ MORE
How to Fetch Local School Ratings and Neighborhood Amenities via APIJul 19, 2026

How to Fetch Local School Ratings and Neighborhood Amenities via API

Neighborhood insights are just as important as the property itself. This guide shows developers how to use the SteadyAPI Neighborhood Amenities API to fetch school ratings, walkability and transit scores, and nearby amenities through a single endpoint. You'll learn how to authenticate requests, retrieve structured neighborhood data, filter schools and local businesses, and combine these metrics into a custom neighborhood quality score. Whether you're building a real estate marketplace, property valuation model, or location intelligence dashboard, this tutorial helps you enrich listings with valuable contextual data while reducing the complexity of managing multiple third-party integrations.

READ MORE
The Developer’s Guide to Integrating Real-Time MLS Property DataJul 19, 2026

The Developer’s Guide to Integrating Real-Time MLS Property Data

This guide walks developers through building a modern real estate data pipeline with SteadyAPI. You'll learn how to search MLS property listings, retrieve tax and transaction histories, analyze local housing market trends, and enrich property data with neighborhood and environmental insights. Instead of maintaining fragile web scrapers or navigating complex MLS integrations, SteadyAPI provides structured JSON APIs that simplify property data ingestion and help you build faster, more reliable real estate applications. Whether you're creating an investment platform, property valuation engine, market research tool, or analytics dashboard, this tutorial covers the essential endpoints and architecture needed to get started.

READ MORE