🏒 Hockey (NHL)
The NHL API offers essential endpoints for retrieving hockey schedules, current standings, and live scores. These endpoints enable developers and fans to access up-to-date information about NHL games, team rankings, and ongoing match results, enhancing the experience of following hockey events and statistics.
General
General endpoints include essential features such as accessing the league schedule, current standings across teams, and live scores of ongoing games.
GET /v1/schedule
requires authentication
Get hockey schedule information.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/nhl/schedule'
params = {
'date': '2024-01-25',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/nhl/schedule';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'date' => '2024-01-25',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/nhl/schedule"
);
const params = {
"date": "2024-01-25",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/nhl/schedule?date=2024-01-25" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"nextStartDate": "2024-02-01",
"numberOfGames": 35,
"playoffEndDate": "2024-06-18",
"preSeasonStartDate": "2023-09-23",
"previousStartDate": "2024-01-18",
"regularSeasonEndDate": "2024-04-18",
"regularSeasonStartDate": "2023-10-10"
},
"body": [
{
"date": "2024-01-25",
"dayAbbrev": "THU",
"numberOfGames": 9,
"games": [
{
"id": 2023020747,
"season": 20232024,
"gameType": 2,
"venue": {
"default": "Little Caesars Arena"
},
"neutralSite": false,
"startTimeUTC": "2024-01-26T00:00:00Z",
"easternUTCOffset": "-05:00",
"venueUTCOffset": "-05:00",
"venueTimezone": "America/Detroit",
"gameState": "FUT",
"gameScheduleState": "OK",
"tvBroadcasts": [
{
"id": 287,
"market": "N",
"countryCode": "CA",
"network": "SNE",
"sequenceNumber": 26
},
{
"id": 288,
"market": "N",
"countryCode": "CA",
"network": "SNO",
"sequenceNumber": 27
},
{
"id": 290,
"market": "N",
"countryCode": "CA",
"network": "SNP",
"sequenceNumber": 29
},
{
"id": 322,
"market": "A",
"countryCode": "US",
"network": "NBCSP",
"sequenceNumber": 59
},
{
"id": 351,
"market": "H",
"countryCode": "US",
"network": "BSDET",
"sequenceNumber": 51
}
],
"awayTeam": {
"id": 4,
"placeName": {
"default": "Philadelphia",
"fr": "Philadelphie"
},
"abbrev": "PHI",
"logo": "https://assets.nhle.com/logos/nhl/svg/PHI_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/PHI_dark.svg",
"awaySplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/PHI/20232024/PHI-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "163.0000"
},
{
"providerId": 3,
"value": "4.1000"
},
{
"providerId": 9,
"value": "-105.0000"
},
{
"providerId": 7,
"value": "-102.0000"
},
{
"providerId": 6,
"value": "2.5400"
}
]
},
"homeTeam": {
"id": 17,
"placeName": {
"default": "Detroit"
},
"abbrev": "DET",
"logo": "https://assets.nhle.com/logos/nhl/svg/DET_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/DET_dark.svg",
"homeSplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/DET/20232024/DET-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "133.0000"
},
{
"providerId": 3,
"value": "4.1000"
},
{
"providerId": 9,
"value": "-115.0000"
},
{
"providerId": 7,
"value": "-118.0000"
},
{
"providerId": 6,
"value": "2.3200"
}
]
},
"periodDescriptor": {
"number": 1,
"periodType": "REG"
},
"ticketsLink": "https://www.ticketmaster.com/event/08005ED5C3A83C6F?brand=nhl&wt.mc_id=NHL_LEAGUE_DET_SCHED_PAGE_LINK_GM25&utm_source=nhl.com&utm_medium=client&utm_campaign=NHL_LEAGUE_DET&utm_content=SCHED_PAGE_LINK_GM25",
"gameCenterLink": "/gamecenter/phi-vs-det/2024/01/25/2023020747"
},
{
"id": 2023020748,
"season": 20232024,
"gameType": 2,
"venue": {
"default": "Centre Bell"
},
"neutralSite": false,
"startTimeUTC": "2024-01-26T00:00:00Z",
"easternUTCOffset": "-05:00",
"venueUTCOffset": "-05:00",
"venueTimezone": "America/Montreal",
"gameState": "FUT",
"gameScheduleState": "OK",
"tvBroadcasts": [
{
"id": 33,
"market": "H",
"countryCode": "CA",
"network": "RDS",
"sequenceNumber": 66
},
{
"id": 131,
"market": "H",
"countryCode": "CA",
"network": "TSN2",
"sequenceNumber": 50
},
{
"id": 409,
"market": "A",
"countryCode": "US",
"network": "MSGSN",
"sequenceNumber": 88
}
],
"awayTeam": {
"id": 2,
"placeName": {
"default": "Islanders"
},
"abbrev": "NYI",
"logo": "https://assets.nhle.com/logos/nhl/svg/NYI_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/NYI_dark.svg",
"awaySplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/NYI/20232024/NYI-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "107.0000"
},
{
"providerId": 3,
"value": "4.0100"
},
{
"providerId": 9,
"value": "-148.0000"
},
{
"providerId": 7,
"value": "-148.0000"
},
{
"providerId": 6,
"value": "2.0800"
}
]
},
"homeTeam": {
"id": 8,
"placeName": {
"default": "Montréal"
},
"abbrev": "MTL",
"logo": "https://assets.nhle.com/logos/nhl/svg/MTL_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/MTL_dark.svg",
"homeSplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/MTL/20232024/MTL-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "205.0000"
},
{
"providerId": 3,
"value": "4.0100"
},
{
"providerId": 9,
"value": "124.0000"
},
{
"providerId": 7,
"value": "125.0000"
},
{
"providerId": 6,
"value": "2.8800"
}
]
},
"periodDescriptor": {
"number": 1,
"periodType": "REG"
},
"ticketsLink": "https://www.ticketmaster.ca/event/31005EF47A7D0EDA?lang=en-ca&brand=nhl&wt.mc_id=NHL_LEAGUE_MTL_SCHED_PAGE_LINK_GM25&utm_source=nhl.com&utm_medium=client&utm_campaign=NHL_LEAGUE_MTL&utm_content=SCHED_PAGE_LINK_GM25",
"gameCenterLink": "/gamecenter/nyi-vs-mtl/2024/01/25/2023020748"
},
{
"id": 2023020749,
"season": 20232024,
"gameType": 2,
"venue": {
"default": "Canadian Tire Centre",
"fr": "Centre Canadian Tire"
},
"neutralSite": false,
"startTimeUTC": "2024-01-26T00:00:00Z",
"easternUTCOffset": "-05:00",
"venueUTCOffset": "-05:00",
"venueTimezone": "US/Eastern",
"gameState": "FUT",
"gameScheduleState": "OK",
"tvBroadcasts": [
{
"id": 31,
"market": "A",
"countryCode": "US",
"network": "NESN",
"sequenceNumber": 78
},
{
"id": 230,
"market": "H",
"countryCode": "CA",
"network": "RDS2",
"sequenceNumber": 71
},
{
"id": 294,
"market": "H",
"countryCode": "CA",
"network": "TSN5",
"sequenceNumber": 80
}
],
"awayTeam": {
"id": 6,
"placeName": {
"default": "Boston"
},
"abbrev": "BOS",
"logo": "https://assets.nhle.com/logos/nhl/svg/BOS_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/BOS_dark.svg",
"awaySplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/BOS/20232024/BOS-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "112.0000"
},
{
"providerId": 3,
"value": "4.2900"
},
{
"providerId": 9,
"value": "-135.0000"
},
{
"providerId": 7,
"value": "-137.0000"
},
{
"providerId": 6,
"value": "2.0200"
}
]
},
"homeTeam": {
"id": 9,
"placeName": {
"default": "Ottawa"
},
"abbrev": "OTT",
"logo": "https://assets.nhle.com/logos/nhl/svg/OTT_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/OTT_dark.svg",
"homeSplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/OTT/20232024/OTT-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "188.0000"
},
{
"providerId": 3,
"value": "4.2900"
},
{
"providerId": 9,
"value": "114.0000"
},
{
"providerId": 7,
"value": "116.0000"
},
{
"providerId": 6,
"value": "2.7800"
}
]
},
"periodDescriptor": {
"number": 1,
"periodType": "REG"
},
"ticketsLink": "https://www.nhl.com/senators/tickets/",
"gameCenterLink": "/gamecenter/bos-vs-ott/2024/01/25/2023020749"
},
{
"id": 2023020750,
"season": 20232024,
"gameType": 2,
"venue": {
"default": "Amalie Arena"
},
"neutralSite": false,
"startTimeUTC": "2024-01-26T00:00:00Z",
"easternUTCOffset": "-05:00",
"venueUTCOffset": "-05:00",
"venueTimezone": "US/Eastern",
"gameState": "FUT",
"gameScheduleState": "OK",
"tvBroadcasts": [
{
"id": 359,
"market": "H",
"countryCode": "US",
"network": "BSSUN",
"sequenceNumber": 86
},
{
"id": 521,
"market": "A",
"countryCode": "US",
"network": "SCRIPPS",
"sequenceNumber": 87
}
],
"awayTeam": {
"id": 53,
"placeName": {
"default": "Arizona"
},
"abbrev": "ARI",
"logo": "https://assets.nhle.com/logos/nhl/svg/ARI_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/ARI_dark.svg",
"awaySplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/ARI/20232024/ARI-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "300.0000"
},
{
"providerId": 3,
"value": "4.4700"
},
{
"providerId": 9,
"value": "180.0000"
},
{
"providerId": 7,
"value": "180.0000"
},
{
"providerId": 6,
"value": "3.7500"
}
]
},
"homeTeam": {
"id": 14,
"placeName": {
"default": "Tampa Bay"
},
"abbrev": "TBL",
"logo": "https://assets.nhle.com/logos/nhl/svg/TBL_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/TBL_dark.svg",
"homeSplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/TBL/20232024/TBL-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "-134.0000"
},
{
"providerId": 3,
"value": "4.4700"
},
{
"providerId": 9,
"value": "-218.0000"
},
{
"providerId": 7,
"value": "-221.0000"
},
{
"providerId": 6,
"value": "1.7200"
}
]
},
"periodDescriptor": {
"number": 1,
"periodType": "REG"
},
"ticketsLink": "https://www.nhl.com/lightning/tickets/",
"gameCenterLink": "/gamecenter/ari-vs-tbl/2024/01/25/2023020750"
},
{
"id": 2023020746,
"season": 20232024,
"gameType": 2,
"venue": {
"default": "PNC Arena"
},
"neutralSite": false,
"startTimeUTC": "2024-01-26T00:30:00Z",
"easternUTCOffset": "-05:00",
"venueUTCOffset": "-05:00",
"venueTimezone": "US/Eastern",
"gameState": "FUT",
"gameScheduleState": "OK",
"tvBroadcasts": [
{
"id": 375,
"market": "H",
"countryCode": "US",
"network": "BSSO",
"sequenceNumber": 70
},
{
"id": 410,
"market": "A",
"countryCode": "US",
"network": "MSGSN2",
"sequenceNumber": 79
}
],
"awayTeam": {
"id": 1,
"placeName": {
"default": "New Jersey"
},
"abbrev": "NJD",
"logo": "https://assets.nhle.com/logos/nhl/svg/NJD_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/NJD_dark.svg",
"awaySplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/NJD/20232024/NJD-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "205.0000"
},
{
"providerId": 3,
"value": "4.1900"
},
{
"providerId": 9,
"value": "136.0000"
},
{
"providerId": 7,
"value": "136.0000"
},
{
"providerId": 6,
"value": "3.1500"
}
]
},
"homeTeam": {
"id": 12,
"placeName": {
"default": "Carolina",
"fr": "Caroline"
},
"abbrev": "CAR",
"logo": "https://assets.nhle.com/logos/nhl/svg/CAR_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/CAR_dark.svg",
"homeSplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/CAR/20232024/CAR-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "102.0000"
},
{
"providerId": 3,
"value": "4.1900"
},
{
"providerId": 9,
"value": "-162.0000"
},
{
"providerId": 7,
"value": "-162.0000"
},
{
"providerId": 6,
"value": "1.9200"
}
]
},
"periodDescriptor": [],
"ticketsLink": "https://www.ticketmaster.com/event/2D005EF4A0023F98?brand=nhl&wt.mc_id=NHL_LEAGUE_CAR_SCHED_PAGE_LINK_GM23&utm_source=nhl.com&utm_medium=client&utm_campaign=NHL_LEAGUE_CAR&utm_content=SCHED_PAGE_LINK_GM23",
"gameCenterLink": "/gamecenter/njd-vs-car/2024/01/25/2023020746"
},
{
"id": 2023020751,
"season": 20232024,
"gameType": 2,
"venue": {
"default": "American Airlines Center"
},
"neutralSite": false,
"startTimeUTC": "2024-01-26T01:00:00Z",
"easternUTCOffset": "-05:00",
"venueUTCOffset": "-06:00",
"venueTimezone": "US/Central",
"gameState": "FUT",
"gameScheduleState": "OK",
"tvBroadcasts": [
{
"id": 341,
"market": "A",
"countryCode": "US",
"network": "BSSC",
"sequenceNumber": 84
},
{
"id": 349,
"market": "H",
"countryCode": "US",
"network": "BSSW",
"sequenceNumber": 61
},
{
"id": 365,
"market": "A",
"countryCode": "US",
"network": "BSSD",
"sequenceNumber": 81
}
],
"awayTeam": {
"id": 24,
"placeName": {
"default": "Anaheim"
},
"abbrev": "ANA",
"logo": "https://assets.nhle.com/logos/nhl/svg/ANA_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/ANA_dark.svg",
"awaySplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/ANA/20232024/ANA-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "390.0000"
},
{
"providerId": 3,
"value": "4.9100"
},
{
"providerId": 9,
"value": "275.0000"
},
{
"providerId": 7,
"value": "267.0000"
},
{
"providerId": 6,
"value": "5.0000"
}
]
},
"homeTeam": {
"id": 25,
"placeName": {
"default": "Dallas"
},
"abbrev": "DAL",
"logo": "https://assets.nhle.com/logos/nhl/svg/DAL_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/DAL_dark.svg",
"homeSplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/DAL/20232024/DAL-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "-190.0000"
},
{
"providerId": 3,
"value": "4.9100"
},
{
"providerId": 9,
"value": "-345.0000"
},
{
"providerId": 7,
"value": "-340.0000"
},
{
"providerId": 6,
"value": "1.4600"
}
]
},
"periodDescriptor": [],
"ticketsLink": "https://www.ticketmaster.com/event/0C005EDA97201D9D?brand=nhl&wt.mc_id=NHL_LEAGUE_DAL_SCHED_PAGE_LINK_GM25&utm_source=nhl.com&utm_medium=client&utm_campaign=NHL_LEAGUE_DAL&utm_content=SCHED_PAGE_LINK_GM25",
"gameCenterLink": "/gamecenter/ana-vs-dal/2024/01/25/2023020751"
},
{
"id": 2023020752,
"season": 20232024,
"gameType": 2,
"venue": {
"default": "Xcel Energy Center"
},
"neutralSite": false,
"startTimeUTC": "2024-01-26T01:00:00Z",
"easternUTCOffset": "-05:00",
"venueUTCOffset": "-06:00",
"venueTimezone": "US/Central",
"gameState": "FUT",
"gameScheduleState": "OK",
"tvBroadcasts": [
{
"id": 361,
"market": "H",
"countryCode": "US",
"network": "BSN",
"sequenceNumber": 77
},
{
"id": 363,
"market": "H",
"countryCode": "US",
"network": "BSWI",
"sequenceNumber": 90
},
{
"id": 375,
"market": "A",
"countryCode": "US",
"network": "BSSO",
"sequenceNumber": 70
}
],
"awayTeam": {
"id": 18,
"placeName": {
"default": "Nashville"
},
"abbrev": "NSH",
"logo": "https://assets.nhle.com/logos/nhl/svg/NSH_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/NSH_dark.svg",
"awaySplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/NSH/20232024/NSH-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "165.0000"
},
{
"providerId": 3,
"value": "4.0800"
},
{
"providerId": 9,
"value": "-102.0000"
},
{
"providerId": 7,
"value": "102.0000"
},
{
"providerId": 6,
"value": "2.6600"
}
]
},
"homeTeam": {
"id": 30,
"placeName": {
"default": "Minnesota"
},
"abbrev": "MIN",
"logo": "https://assets.nhle.com/logos/nhl/svg/MIN_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/MIN_dark.svg",
"homeSplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/MIN/20232024/MIN-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "132.0000"
},
{
"providerId": 3,
"value": "4.0800"
},
{
"providerId": 9,
"value": "-118.0000"
},
{
"providerId": 7,
"value": "-122.0000"
},
{
"providerId": 6,
"value": "2.1800"
}
]
},
"periodDescriptor": [],
"ticketsLink": "https://www.ticketmaster.com/event/06005EDB2597862F?brand=nhl&wt.mc_id=NHL_LEAGUE_MIN_SCHED_PAGE_LINK_GM25&utm_source=nhl.com&utm_medium=client&utm_campaign=NHL_LEAGUE_MIN&utm_content=SCHED_PAGE_LINK_GM25",
"gameCenterLink": "/gamecenter/nsh-vs-min/2024/01/25/2023020752"
},
{
"id": 2023020753,
"season": 20232024,
"gameType": 2,
"venue": {
"default": "Scotiabank Saddledome"
},
"neutralSite": false,
"startTimeUTC": "2024-01-26T02:00:00Z",
"easternUTCOffset": "-05:00",
"venueUTCOffset": "-07:00",
"venueTimezone": "US/Mountain",
"gameState": "FUT",
"gameScheduleState": "OK",
"tvBroadcasts": [
{
"id": 289,
"market": "H",
"countryCode": "CA",
"network": "SNW",
"sequenceNumber": 30
},
{
"id": 347,
"market": "A",
"countryCode": "US",
"network": "BSOH",
"sequenceNumber": 72
}
],
"awayTeam": {
"id": 29,
"placeName": {
"default": "Columbus"
},
"abbrev": "CBJ",
"logo": "https://assets.nhle.com/logos/nhl/svg/CBJ_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/CBJ_dark.svg",
"awaySplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/CBJ/20232024/CBJ-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "265.0000"
},
{
"providerId": 3,
"value": "4.2400"
},
{
"providerId": 9,
"value": "160.0000"
},
{
"providerId": 7,
"value": "160.0000"
},
{
"providerId": 6,
"value": "3.5000"
}
]
},
"homeTeam": {
"id": 20,
"placeName": {
"default": "Calgary"
},
"abbrev": "CGY",
"logo": "https://assets.nhle.com/logos/nhl/svg/CGY_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/CGY_dark.svg",
"homeSplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/CGY/20232024/CGY-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "-120.0000"
},
{
"providerId": 3,
"value": "4.2400"
},
{
"providerId": 9,
"value": "-192.0000"
},
{
"providerId": 7,
"value": "-194.0000"
},
{
"providerId": 6,
"value": "1.8000"
}
]
},
"periodDescriptor": [],
"ticketsLink": "https://www.ticketmaster.com/event/11005EF4C06131DB?brand=nhl&wt.mc_id=NHL_LEAGUE_CGY_SCHED_PAGE_LINK_GM23&utm_source=nhl.com&utm_medium=client&utm_campaign=NHL_LEAGUE_CGY&utm_content=SCHED_PAGE_LINK_GM23",
"gameCenterLink": "/gamecenter/cbj-vs-cgy/2024/01/25/2023020753"
},
{
"id": 2023020754,
"season": 20232024,
"gameType": 2,
"venue": {
"default": "Rogers Place"
},
"neutralSite": false,
"startTimeUTC": "2024-01-26T02:00:00Z",
"easternUTCOffset": "-05:00",
"venueUTCOffset": "-07:00",
"venueTimezone": "America/Edmonton",
"gameState": "FUT",
"gameScheduleState": "OK",
"tvBroadcasts": [
{
"id": 281,
"market": "N",
"countryCode": "CA",
"network": "TVAS",
"sequenceNumber": 31
},
{
"id": 284,
"market": "N",
"countryCode": "CA",
"network": "SN1",
"sequenceNumber": 22
},
{
"id": 318,
"market": "A",
"countryCode": "US",
"network": "NBCSCH",
"sequenceNumber": 54
}
],
"awayTeam": {
"id": 16,
"placeName": {
"default": "Chicago"
},
"abbrev": "CHI",
"logo": "https://assets.nhle.com/logos/nhl/svg/CHI_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/CHI_dark.svg",
"awaySplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/CHI/20232024/CHI-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "750.0000"
},
{
"providerId": 3,
"value": "6.3200"
},
{
"providerId": 9,
"value": "455.0000"
},
{
"providerId": 7,
"value": "458.0000"
},
{
"providerId": 6,
"value": "8.0000"
}
]
},
"homeTeam": {
"id": 22,
"placeName": {
"default": "Edmonton"
},
"abbrev": "EDM",
"logo": "https://assets.nhle.com/logos/nhl/svg/EDM_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/EDM_dark.svg",
"homeSplitSquad": false,
"radioLink": "https://d2igy0yla8zi0u.cloudfront.net/EDM/20232024/EDM-radio.m3u8",
"odds": [
{
"providerId": 2,
"value": "-335.0000"
},
{
"providerId": 3,
"value": "6.3200"
},
{
"providerId": 9,
"value": "-625.0000"
},
{
"providerId": 7,
"value": "-640.0000"
},
{
"providerId": 6,
"value": "1.2800"
}
]
},
"periodDescriptor": [],
"ticketsLink": "https://www.ticketmaster.com/event/11005F17C68D48D0?brand=nhl&wt.mc_id=NHL_LEAGUE_EDM_SCHED_PAGE_LINK_GM22&utm_source=nhl.com&utm_medium=client&utm_campaign=NHL_LEAGUE_EDM&utm_content=SCHED_PAGE_LINK_GM22",
"gameCenterLink": "/gamecenter/chi-vs-edm/2024/01/25/2023020754"
}
]
},
...
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (403, Unauthorized):
{
"message": "This action is unauthorized."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/standings
requires authentication
Get standings data for each team broken up by divisions.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/nhl/standings'
params = {
'date': '2024-01-25',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/nhl/standings';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'date' => '2024-01-25',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/nhl/standings"
);
const params = {
"date": "2024-01-25",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/nhl/standings?date=2024-01-25" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com"
},
"body": [
{
"conferenceAbbrev": "W",
"conferenceHomeSequence": 3,
"conferenceL10Sequence": 2,
"conferenceName": "Western",
"conferenceRoadSequence": 1,
"conferenceSequence": 1,
"date": "2024-01-25",
"divisionAbbrev": "P",
"divisionHomeSequence": 2,
"divisionL10Sequence": 2,
"divisionName": "Pacific",
"divisionRoadSequence": 1,
"divisionSequence": 1,
"gameTypeId": 2,
"gamesPlayed": 48,
"goalDifferential": 58,
"goalDifferentialPctg": 1.208333,
"goalAgainst": 123,
"goalFor": 181,
"goalsForPctg": 3.770833,
"homeGamesPlayed": 23,
"homeGoalDifferential": 37,
"homeGoalsAgainst": 52,
"homeGoalsFor": 89,
"homeLosses": 4,
"homeOtLosses": 2,
"homePoints": 36,
"homeRegulationPlusOtWins": 17,
"homeRegulationWins": 16,
"homeTies": 0,
"homeWins": 17,
"l10GamesPlayed": 10,
"l10GoalDifferential": 13,
"l10GoalsAgainst": 25,
"l10GoalsFor": 38,
"l10Losses": 0,
"l10OtLosses": 2,
"l10Points": 18,
"l10RegulationPlusOtWins": 8,
"l10RegulationWins": 7,
"l10Ties": 0,
"l10Wins": 8,
"leagueHomeSequence": 3,
"leagueL10Sequence": 2,
"leagueRoadSequence": 1,
"leagueSequence": 1,
"losses": 11,
"otLosses": 5,
"placeName": {
"default": "Vancouver"
},
"pointPctg": 0.71875,
"points": 69,
"regulationPlusOtWinPctg": 0.666667,
"regulationPlusOtWins": 32,
"regulationWinPctg": 0.625,
"regulationWins": 30,
"roadGamesPlayed": 25,
"roadGoalDifferential": 21,
"roadGoalsAgainst": 71,
"roadGoalsFor": 92,
"roadLosses": 7,
"roadOtLosses": 3,
"roadPoints": 33,
"roadRegulationPlusOtWins": 15,
"roadRegulationWins": 14,
"roadTies": 0,
"roadWins": 15,
"seasonId": 20232024,
"shootoutLosses": 2,
"shootoutWins": 0,
"streakCode": "OT",
"streakCount": 1,
"teamName": {
"default": "Vancouver Canucks",
"fr": "Canucks de Vancouver"
},
"teamCommonName": {
"default": "Canucks"
},
"teamAbbrev": {
"default": "VAN"
},
"teamLogo": "https://assets.nhle.com/logos/nhl/svg/VAN_light.svg",
"ties": 0,
"waiversSequence": 32,
"wildcardSequence": 0,
"winPctg": 0.666667,
"wins": 32
},
...
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (403, Unauthorized):
{
"message": "This action is unauthorized."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/scores
requires authentication
Get live game scores for all hockey games.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/nhl/scores'
params = {
'date': '2024-01-25',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/nhl/scores';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'date' => '2024-01-25',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/nhl/scores"
);
const params = {
"date": "2024-01-25",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/nhl/scores?date=2024-01-25" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com"
},
"body": {
"currentDate": "2024-01-25",
"gameWeek": [
{
"date": "2024-01-22",
"dayAbbrev": "MON",
"numberOfGames": 6
},
...
],
"oddsPartners": [
{
"partnerId": 2,
"country": "SE",
"name": "Unibet",
"imageUrl": "https://assets.nhle.com/betting_partner/unibet.svg",
"siteUrl": "https://www.unibet.se/betting/sports/filter/ice_hockey/nhl/all/matches",
"bgColor": "#14805E",
"textColor": "#FFFFFF",
"accentColor": "#3AAA35"
},
...
],
"games": [
{
"id": 2023020747,
"season": 20232024,
"gameType": 2,
"gameDate": "2024-01-25",
"venue": {
"default": "Little Caesars Arena"
},
"startTimeUTC": "2024-01-26T00:00:00Z",
"easternUTCOffset": "-05:00",
"venueUTCOffset": "-05:00",
"tvBroadcasts": [
{
"id": 287,
"market": "N",
"countryCode": "CA",
"network": "SNE",
"sequenceNumber": 26
},
{
"id": 288,
"market": "N",
"countryCode": "CA",
"network": "SNO",
"sequenceNumber": 27
},
{
"id": 290,
"market": "N",
"countryCode": "CA",
"network": "SNP",
"sequenceNumber": 29
},
{
"id": 322,
"market": "A",
"countryCode": "US",
"network": "NBCSP",
"sequenceNumber": 59
},
{
"id": 351,
"market": "H",
"countryCode": "US",
"network": "BSDET",
"sequenceNumber": 51
}
],
"gameState": "PRE",
"gameScheduleState": "OK",
"awayTeam": {
"id": 4,
"name": {
"default": "Flyers"
},
"abbrev": "PHI",
"record": "25-17-6",
"logo": "https://assets.nhle.com/logos/nhl/svg/PHI_light.svg",
"odds": [
{
"providerId": 2,
"value": "163.0000"
},
{
"providerId": 3,
"value": "4.1300"
},
{
"providerId": 9,
"value": "-105.0000"
},
{
"providerId": 7,
"value": "-103.0000"
},
{
"providerId": 6,
"value": "2.5400"
}
]
},
"homeTeam": {
"id": 17,
"name": {
"default": "Red Wings"
},
"abbrev": "DET",
"record": "24-18-5",
"logo": "https://assets.nhle.com/logos/nhl/svg/DET_light.svg",
"odds": [
{
"providerId": 2,
"value": "133.0000"
},
{
"providerId": 3,
"value": "4.1300"
},
{
"providerId": 9,
"value": "-115.0000"
},
{
"providerId": 7,
"value": "-117.0000"
},
{
"providerId": 6,
"value": "2.3200"
}
]
},
"gameCenterLink": "/gamecenter/phi-vs-det/2024/01/25/2023020747",
"neutralSite": false,
"venueTimezone": "America/Detroit",
"ticketsLink": "https://www.ticketmaster.com/event/08005ED5C3A83C6F?brand=nhl&wt.mc_id=NHL_LEAGUE_DET_SCORE_TAB_APP_GM25&utm_source=nhl.com&utm_medium=client&utm_campaign=NHL_LEAGUE_DET&utm_content=SCORE_TAB_APP_GM25",
"teamLeaders": [
{
"id": 8478439,
"name": {
"default": "T. Konecny"
},
"headshot": "https://assets.nhle.com/mugs/nhl/20232024/PHI/8478439.png",
"teamAbbrev": "PHI",
"category": "goals",
"value": 22
},
{
"id": 8477946,
"name": {
"default": "D. Larkin"
},
"headshot": "https://assets.nhle.com/mugs/nhl/20232024/DET/8477946.png",
"teamAbbrev": "DET",
"category": "goals",
"value": 19
},
{
"id": 8476906,
"name": {
"default": "S. Gostisbehere"
},
"headshot": "https://assets.nhle.com/mugs/nhl/20232024/DET/8476906.png",
"teamAbbrev": "DET",
"category": "assists",
"value": 25
},
{
"id": 8480797,
"name": {
"default": "J. Farabee"
},
"headshot": "https://assets.nhle.com/mugs/nhl/20232024/PHI/8480797.png",
"teamAbbrev": "PHI",
"category": "assists",
"value": 23
},
{
"id": 8479394,
"name": {
"default": "C. Hart"
},
"headshot": "https://assets.nhle.com/mugs/nhl/20232024/PHI/8479394.png",
"teamAbbrev": "PHI",
"category": "wins",
"value": 12
},
{
"id": 8479312,
"name": {
"default": "A. Lyon"
},
"headshot": "https://assets.nhle.com/mugs/nhl/20232024/DET/8479312.png",
"teamAbbrev": "DET",
"category": "wins",
"value": 11
}
]
},
...
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (403, Unauthorized):
{
"message": "This action is unauthorized."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Teams
Teams section of the Hockey (NHL) API includes endpoints for retrieving various team-related data. These endpoints allow developers to access detailed statistics, game schedules, and current rosters for NHL teams.
GET /v1/teams
requires authentication
Get hockey teams information including their id, venue details, division, conference and franchise information.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/nhl/teams'
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/nhl/teams';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/nhl/teams"
);
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/nhl/teams" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com"
},
"body": [
{
"id": 1,
"seasonId": 20232024,
"commonName": {
"default": "Devils"
},
"abbrev": "NJD",
"name": {
"default": "New Jersey Devils",
"fr": "Devils du New Jersey"
},
"placeName": {
"default": "New Jersey"
},
"logo": "https://assets.nhle.com/logos/nhl/svg/NJD_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/NJD_dark.svg",
"isNhl": true,
"french": false
},
{
"id": 2,
"seasonId": 20232024,
"commonName": {
"default": "Islanders"
},
"abbrev": "NYI",
"name": {
"default": "New York Islanders",
"fr": "Islanders de New York"
},
"placeName": {
"default": "NY Islanders"
},
"logo": "https://assets.nhle.com/logos/nhl/svg/NYI_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/NYI_dark.svg",
"isNhl": true,
"french": false
},
...
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (403, Unauthorized):
{
"message": "This action is unauthorized."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/roster
requires authentication
Get hockey teams information including their id, venue details, division, conference and franchise information.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/nhl/teams-roster'
params = {
'teamAbbrev': 'BOS',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/nhl/teams-roster';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'teamAbbrev' => 'BOS',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/nhl/teams-roster"
);
const params = {
"teamAbbrev": "BOS",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/nhl/teams-roster?teamAbbrev=BOS" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com"
},
"body": {
"forwards": [
{
"id": 8480003,
"headshot": "https://assets.nhle.com/mugs/nhl/20232024/BOS/8480003.png",
"firstName": {
"default": "Jesper"
},
"lastName": {
"default": "Boqvist"
},
"sweaterNumber": 70,
"positionCode": "C",
"shootsCatches": "L",
"heightInInches": 73,
"weightInPounds": 184,
"heightInCentimeters": 185,
"weightInKilograms": 83,
"birthDate": "1998-10-30",
"birthCity": {
"default": "Falun"
},
"birthCountry": "SWE"
},
...
],
"defensemen": [
{
"id": 8478443,
"headshot": "https://assets.nhle.com/mugs/nhl/20232024/BOS/8478443.png",
"firstName": {
"default": "Brandon"
},
"lastName": {
"default": "Carlo"
},
"sweaterNumber": 25,
"positionCode": "D",
"shootsCatches": "R",
"heightInInches": 77,
"weightInPounds": 217,
"heightInCentimeters": 196,
"weightInKilograms": 98,
"birthDate": "1996-11-26",
"birthCity": {
"default": "Colorado Springs"
},
"birthCountry": "USA",
"birthStateProvince": {
"default": "Colorado"
}
},
...
],
"goalies": [
{
"id": 8480280,
"headshot": "https://assets.nhle.com/mugs/nhl/20232024/BOS/8480280.png",
"firstName": {
"default": "Jeremy"
},
"lastName": {
"default": "Swayman"
},
"sweaterNumber": 1,
"positionCode": "G",
"shootsCatches": "L",
"heightInInches": 75,
"weightInPounds": 195,
"heightInCentimeters": 191,
"weightInKilograms": 88,
"birthDate": "1998-11-24",
"birthCity": {
"default": "Anchorage"
},
"birthCountry": "USA",
"birthStateProvince": {
"default": "Alaska",
"sk": "Aljaška"
}
},
...
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (403, Unauthorized):
{
"message": "This action is unauthorized."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/team-games
requires authentication
Get a team's previous and upcoming game information.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/nhl/teams-games'
params = {
'teamAbbrev': 'DAL',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/nhl/teams-games';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'teamAbbrev' => 'DAL',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/nhl/teams-games"
);
const params = {
"teamAbbrev": "DAL",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/nhl/teams-games?teamAbbrev=DAL" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com",
"previousMonth": "2023-12",
"currentMonth": "2024-01",
"nextMonth": "2024-02",
"clubTimezone": "US/Eastern",
"clubUTCOffset": "-05:00"
},
"body": [
{
"id": 2023020574,
"season": 20232024,
"gameType": 2,
"gameDate": "2024-01-02",
"venue": {
"default": "Nationwide Arena"
},
"neutralSite": false,
"startTimeUTC": "2024-01-03T00:00:00Z",
"easternUTCOffset": "-05:00",
"venueUTCOffset": "-05:00",
"venueTimezone": "US/Eastern",
"gameState": "OFF",
"gameScheduleState": "OK",
"tvBroadcasts": [
{
"id": 31,
"market": "A",
"countryCode": "US",
"network": "NESN",
"sequenceNumber": 78
},
{
"id": 347,
"market": "H",
"countryCode": "US",
"network": "BSOH",
"sequenceNumber": 72
}
],
"awayTeam": {
"id": 6,
"placeName": {
"default": "Boston"
},
"abbrev": "BOS",
"logo": "https://assets.nhle.com/logos/nhl/svg/BOS_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/BOS_dark.svg",
"awaySplitSquad": false,
"airlineLink": "https://www.jetblue.com/#/",
"airlineDesc": "FLY WITH JETBLUE",
"score": 4
},
"homeTeam": {
"id": 29,
"placeName": {
"default": "Columbus"
},
"abbrev": "CBJ",
"logo": "https://assets.nhle.com/logos/nhl/svg/CBJ_light.svg",
"darkLogo": "https://assets.nhle.com/logos/nhl/svg/CBJ_dark.svg",
"homeSplitSquad": false,
"hotelLink": "https://www.sonesta.com/sonesta-hotels-resorts/oh/columbus/sonesta-columbus-downtown?isGroupCode=false&promoCode=CBJ&checkin=2022-09-09&checkout=2022-09-56",
"hotelDesc": "BOOK SONESTA COLUMBUS",
"score": 1
},
"periodDescriptor": {
"number": 3,
"periodType": "REG"
},
"gameOutcome": {
"lastPeriodType": "REG"
},
"winningGoalie": {
"playerId": 8476999,
"firstInitial": {
"default": "L."
},
"lastName": {
"default": "Ullmark"
}
},
"winningGoalScorer": {
"playerId": 8474037,
"firstInitial": {
"default": "J."
},
"lastName": {
"default": "van Riemsdyk"
}
},
"gameCenterLink": "/gamecenter/bos-vs-cbj/2024/01/02/2023020574"
},
...
]
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (403, Unauthorized):
{
"message": "This action is unauthorized."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET /v1/team-stats
requires authentication
Get the hockey team's stats information.
Example request:
import requests
import json
url = 'https://api.steadyapi.com/v1/nhl/teams-stats'
params = {
'teamAbbrev': 'WPG',
}
headers = {
'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/nhl/teams-stats';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
],
'query' => [
'teamAbbrev' => 'WPG',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));const url = new URL(
"https://api.steadyapi.com/v1/nhl/teams-stats"
);
const params = {
"teamAbbrev": "WPG",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {YOUR_AUTH_KEY}",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());curl --request GET \
--get "https://api.steadyapi.com/v1/nhl/teams-stats?teamAbbrev=WPG" \
--header "Authorization: Bearer {YOUR_AUTH_KEY}"Example response (200, Success):
{
"meta": {
"version": "v1.0",
"status": 200,
"copywrite": "https://steadyapi.com"
},
"body": {
"season": "20232024",
"skaters": [
{
"playerId": 8473419,
"headshot": "https://assets.nhle.com/mugs/nhl/20232024/BOS/8473419.png",
"firstName": {
"default": "Brad"
},
"lastName": {
"default": "Marchand"
},
"positionCode": "L",
"gamesPlayed": 47,
"goals": 23,
"assists": 23,
"points": 46,
"plusMinus": 7,
"penaltyMinutes": 49,
"powerPlayGoals": 7,
"shorthandedGoals": 1,
"gameWinningGoals": 4,
"overtimeGoals": 1,
"shots": 128,
"shootingPctg": 0.179688,
"avgTimeOnIcePerGame": 1174.9574,
"avgShiftsPerGame": 24.4468,
"faceoffWinPctg": 0.439024
},
...
],
"goalies": [
{
"playerId": 8476999,
"headshot": "https://assets.nhle.com/mugs/nhl/20232024/BOS/8476999.png",
"firstName": {
"default": "Linus"
},
"lastName": {
"default": "Ullmark"
},
"gamesPlayed": 23,
"gamesStarted": 22,
"wins": 14,
"losses": 6,
"ties": 0,
"overtimeLosses": 2,
"goalsAgainstAverage": 2.817143,
"savePercentage": 0.912983,
"shotsAgainst": 724,
"saves": 661,
"goalsAgainst": 64,
"shutouts": 0,
"goals": 0,
"assists": 0,
"points": 0,
"penaltyMinutes": 0,
"timeOnIce": 81785
},
...
]
}
}
Example response (401, Unauthenticated):
{
"message": "Unauthenticated."
}
Example response (403, Unauthorized):
{
"message": "This action is unauthorized."
}
Example response (404, Not Found):
{
"success": false,
"message": "Resource Not Found"
}
Example response (422, Error Validations):
{
"message": "The ticker field is required.",
"errors": {
"ticker": [
"The ticker field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.