NHL API v1.0.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Documenting the publicly accessible portions of the NHL API.
conferences
getConferences
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/conferences \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/conferences HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/conferences',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/conferences',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/conferences',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/conferences', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/conferences");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/conferences", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /conferences
Get all current NHL conferences.
This only retrieves active conferences. For inactive conferences, use /conferences/{id}
.
Example responses
{
"copyright": "string",
"teams": [
{
"id": 5,
"name": "Eastern",
"link": "/api/v1/conferences/5",
"abbreviation": "E",
"shortName": "East",
"active": true
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Conferences |
404 | Not Found | Error | Error |
getConference
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/conferences/{id} \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/conferences/{id} HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/conferences/{id}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/conferences/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/conferences/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/conferences/{id}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/conferences/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/conferences/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /conferences/{id}
Get an NHL conference.
You can use this to also retrieve inactive conferences. For example, the ID for the World Cup of Hockey is 7
.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | number | true | The ID of the conference. |
Example responses
{
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15",
"abbreviation": "P",
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"active": true
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Division |
404 | Not Found | Error | Error |
divisions
getDivisions
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/divisions \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/divisions HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/divisions',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/divisions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/divisions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/divisions', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/divisions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/divisions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /divisions
Get all current NHL divisions.
This only retrieves active divisions. For inactive divisions, use /divisions/{id}
.
Example responses
{
"copyright": "string",
"teams": [
{
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15",
"abbreviation": "P",
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"active": true
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Divisions |
404 | Not Found | Error | Error |
getDivision
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/divisions/{id} \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/divisions/{id} HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/divisions/{id}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/divisions/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/divisions/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/divisions/{id}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/divisions/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/divisions/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /divisions/{id}
Get an NHL division.
You can use this to also retrieve inactive divisions. For example, the ID for the old Patrick division is 13
.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | number | true | The ID of the division. |
Example responses
{
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15",
"abbreviation": "P",
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"active": true
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Division |
404 | Not Found | Error | Error |
draft
getDraft
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/draft \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/draft HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/draft',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/draft',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/draft',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/draft', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/draft");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/draft", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /draft
Get round-by-round data for current year's NHL Entry Draft.
Example responses
{
"copyright": "string",
"drafts": [
{
"draftYear": 2017,
"rounds": [
{
"roundNumber": 1,
"round": "1",
"picks": [
{
"year": 2017,
"round": "1",
"pickOverall": 1,
"pickInRound": 1,
"team": {
"id": 1,
"name": "New Jersey Devils",
"link": "/api/v1/teams/1"
},
"prospect": {
"id": 65242,
"fullName": "Nico Hischier",
"link": "/api/v1/draft/prospects/65242"
}
}
]
}
]
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Draft |
404 | Not Found | Error | Error |
getDraftByYear
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/draft/{year} \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/draft/{year} HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/draft/{year}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/draft/{year}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/draft/{year}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/draft/{year}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/draft/{year}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/draft/{year}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /draft/{year}
Get round-by-round data for a specific year's NHL Entry Draft.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
year | path | number | true | The draft year. |
Example responses
{
"copyright": "string",
"drafts": [
{
"draftYear": 2017,
"rounds": [
{
"roundNumber": 1,
"round": "1",
"picks": [
{
"year": 2017,
"round": "1",
"pickOverall": 1,
"pickInRound": 1,
"team": {
"id": 1,
"name": "New Jersey Devils",
"link": "/api/v1/teams/1"
},
"prospect": {
"id": 65242,
"fullName": "Nico Hischier",
"link": "/api/v1/draft/prospects/65242"
}
}
]
}
]
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Draft |
404 | Not Found | Error | Error |
getDraftProspects
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/draft/prospects \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/draft/prospects HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/draft/prospects',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/draft/prospects',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/draft/prospects',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/draft/prospects', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/draft/prospects");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/draft/prospects", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /draft/prospects
Get all NHL Entry Draft prospects.
Be forewarned that this endpoint returns a lot of data and there does not appear to be a way to paginate results.
Example responses
{
"copyright": "string",
"prospects": [
{
"id": 65242,
"fullName": "Nico Hischier",
"link": "/api/v1/draft/prospects/65242",
"firstName": "Nico",
"lastName": "Hischier",
"birthDate": "1999-01-04",
"birthCity": "Naters",
"birthCountry": "CHE",
"nationality": "CHE",
"height": "6' 2\"",
"weight": 179,
"shootsCatches": "L",
"primaryPosition": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
},
"prospectCategory": {
"id": 1,
"shortName": "NA Skater",
"name": "North American Skater"
},
"amateurTeam": {
"link": "/api/v1/teams/null"
},
"amateurLeague": {
"link": "/api/v1/league/null"
},
"ranks": {}
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | DraftProspects |
404 | Not Found | Error | Error |
getDraftProspect
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/draft/prospects/{id} \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/draft/prospects/{id} HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/draft/prospects/{id}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/draft/prospects/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/draft/prospects/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/draft/prospects/{id}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/draft/prospects/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/draft/prospects/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /draft/prospects/{id}
Get an NHL Entry Draft prospect.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | number | true | The prospect ID. |
Example responses
{
"copyright": "string",
"prospects": [
{
"id": 65242,
"fullName": "Nico Hischier",
"link": "/api/v1/draft/prospects/65242",
"firstName": "Nico",
"lastName": "Hischier",
"birthDate": "1999-01-04",
"birthCity": "Naters",
"birthCountry": "CHE",
"nationality": "CHE",
"height": "6' 2\"",
"weight": 179,
"shootsCatches": "L",
"primaryPosition": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
},
"prospectCategory": {
"id": 1,
"shortName": "NA Skater",
"name": "North American Skater"
},
"amateurTeam": {
"link": "/api/v1/teams/null"
},
"amateurLeague": {
"link": "/api/v1/league/null"
},
"ranks": {}
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | DraftProspects |
404 | Not Found | Error | Error |
games
getGameBoxscore
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/game/{id}/boxscore \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/game/{id}/boxscore HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/game/{id}/boxscore',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/game/{id}/boxscore',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/game/{id}/boxscore',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/game/{id}/boxscore', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/game/{id}/boxscore");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/game/{id}/boxscore", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /game/{id}/boxscore
Get the boxscore for an NHL game.
If you want detailed play information, you should use /game/{id}/feed/live
or /game/{id}/feed/live/diffPatch
.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | number | true | The ID of the game. The first 4 digits identify the season of the game (ie. 2017 for the 2017-2018 season). The next 2 digits give the type of game, where 01 = preseason, 02 = regular season, 03 = playoffs, 04 = all-star. The final 4 digits identify the specific game number. For regular season and preseason games, this ranges from 0001 to the number of games played. (1271 for seasons with 31 teams (2017 and onwards) and 1230 for seasons with 30 teams). For playoff games, the 2nd digit of the specific number gives the round of the playoffs, the 3rd digit specifies the matchup, and the 4th digit specifies the game (out of 7). |
Example responses
{
"copyright": "string",
"teams": {
"away": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"teamStats": {
"teamSkaterStats": {
"goals": 6,
"pim": 6,
"shots": 30,
"powerPlayPercentage": "0.0",
"powerPlayGoals": 0,
"powerPlayOpportunities": 1,
"faceOffWinPercentage": "59.3",
"blocked": 21,
"takeaways": 9,
"giveaways": 6,
"hits": 15
}
},
"players": {
"person": {
"id": 8471709,
"fullName": "Marc-Edouard Vlasic",
"link": "/api/v1/people/8471709",
"shootsCatches": "L",
"rosterStatus": "Y"
},
"jerseyNumber": "44",
"position": {
"code": "D",
"name": "Defenseman",
"type": "Defenseman",
"abbreviation": "D"
},
"stats": {
"skaterStats": {
"timeOnIce": "23:04",
"assists": 0,
"goals": 0,
"shots": 2,
"hits": 0,
"powerPlayGoals": 0,
"powerPlayAssists": 0,
"penaltyMinutes": 0,
"faceOffWins": 0,
"faceoffTaken": 0,
"takeaways": 0,
"giveaways": 1,
"shortHandedGoals": 0,
"shortHandedAssists": 0,
"blocked": 0,
"plusMinus": 1,
"evenTimeOnIce": "18:12",
"powerPlayTimeOnIce": "1:07",
"shortHandedTimeOnIce": "3:45"
}
}
},
"goalies": [
0
],
"skaters": [
0
],
"onIce": [
0
],
"onIcePlus": [
{
"playerId": 8477180,
"shiftDuration": 458,
"stamina": 33
}
],
"scratches": [
0
],
"penaltyBox": [
0
],
"coaches": [
{
"person": {
"fullName": "Peter DeBoer",
"link": "/api/v1/people/null"
},
"position": {
"code": "HC",
"name": "Head Coach",
"type": "Head Coach",
"abbreviation": "Head Coach"
}
}
]
},
"home": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"teamStats": {
"teamSkaterStats": {
"goals": 6,
"pim": 6,
"shots": 30,
"powerPlayPercentage": "0.0",
"powerPlayGoals": 0,
"powerPlayOpportunities": 1,
"faceOffWinPercentage": "59.3",
"blocked": 21,
"takeaways": 9,
"giveaways": 6,
"hits": 15
}
},
"players": {
"person": {
"id": 8471709,
"fullName": "Marc-Edouard Vlasic",
"link": "/api/v1/people/8471709",
"shootsCatches": "L",
"rosterStatus": "Y"
},
"jerseyNumber": "44",
"position": {
"code": "D",
"name": "Defenseman",
"type": "Defenseman",
"abbreviation": "D"
},
"stats": {
"skaterStats": {
"timeOnIce": "23:04",
"assists": 0,
"goals": 0,
"shots": 2,
"hits": 0,
"powerPlayGoals": 0,
"powerPlayAssists": 0,
"penaltyMinutes": 0,
"faceOffWins": 0,
"faceoffTaken": 0,
"takeaways": 0,
"giveaways": 1,
"shortHandedGoals": 0,
"shortHandedAssists": 0,
"blocked": 0,
"plusMinus": 1,
"evenTimeOnIce": "18:12",
"powerPlayTimeOnIce": "1:07",
"shortHandedTimeOnIce": "3:45"
}
}
},
"goalies": [
0
],
"skaters": [
0
],
"onIce": [
0
],
"onIcePlus": [
{
"playerId": 8477180,
"shiftDuration": 458,
"stamina": 33
}
],
"scratches": [
0
],
"penaltyBox": [
0
],
"coaches": [
{
"person": {
"fullName": "Peter DeBoer",
"link": "/api/v1/people/null"
},
"position": {
"code": "HC",
"name": "Head Coach",
"type": "Head Coach",
"abbreviation": "Head Coach"
}
}
]
}
},
"officials": [
{
"official": {
"id": 2071,
"fullName": "Tim Peel",
"link": "/api/v1/people/2071"
},
"officialType": "Linesman"
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | GameBoxscores |
404 | Not Found | Error | Error |
getGameContent
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/game/{id}/content \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/game/{id}/content HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/game/{id}/content',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/game/{id}/content',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/game/{id}/content',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/game/{id}/content', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/game/{id}/content");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/game/{id}/content", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /game/{id}/content
Get editorials, video replays and photo highlights for an NHL game.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | number | true | The ID of the game. The first 4 digits identify the season of the game (ie. 2017 for the 2017-2018 season). The next 2 digits give the type of game, where 01 = preseason, 02 = regular season, 03 = playoffs, 04 = all-star. The final 4 digits identify the specific game number. For regular season and preseason games, this ranges from 0001 to the number of games played. (1271 for seasons with 31 teams (2017 and onwards) and 1230 for seasons with 30 teams). For playoff games, the 2nd digit of the specific number gives the round of the playoffs, the 3rd digit specifies the matchup, and the 4th digit specifies the game (out of 7). |
Example responses
{
"copyright": "string",
"link": "/api/v1/game/2017020851/content",
"editorial": {
"preview": {
"title": "Preview",
"topicList": "string",
"items": [
{
"type": "article",
"state": "A",
"date": "2018-02-10T16:57:06-0500",
"id": "295823824",
"headline": "Oilers at Sharks preview",
"subhead": "Backups Montoya, Dell to start for Edmonton, San Jose",
"seoTitle": "Edmonton Oilers San Jose Sharks game preview",
"seoDescription": "Backup goaltender Aaron Dell will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.",
"seoKeywords": "Game preview, Edmonton Oilers, San Jose Sharks, Aaron Dell, Al Montoya, Feb 10",
"slug": "edmonton-oilers-san-jose-sharks-game-preview",
"commenting": true,
"tagline": "string",
"tokenData": {
"tokenGUID": "token-EBDA2F0039BF4445D2C91",
"type": "hyperLink",
"id": "8471709",
"teamId": "28",
"name": "Marc-Edouard Vlasic",
"seoName": "marc-edouard-vlasic",
"href": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018",
"hrefMobile": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018"
},
"contributor": {
"contributors": [
{
"name": "Eric Gilmore",
"twitter": "string"
}
],
"source": "NHL.com Correspondent"
},
"keywordsDisplay": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"keywordsAll": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"approval": "string",
"url": "/news/edmonton-oilers-san-jose-sharks-game-preview/c-295823824?game_pk=2017020851",
"dataURI": "/nhl/id/v1/295823824/details/web-v1.json",
"primaryKeyword": {
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
},
"media": {
"type": "photo",
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
}
},
"preview": "<p><b>OILERS (23-26-4) at SHARKS (28-18-8)</b></p><p><b>10 p.m. ET; NBCSCA, CITY, SN360, SN, NHL.TV</b></p><p> </p><h5><b>The Game</b></h5><p>Backup goaltender <span class=\"token token-playerCard\" id=\"token-B36CCB71E81996298E792\">Aaron Dell</span> will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.</p>"
}
]
},
"articles": {
"title": "Preview",
"topicList": "string",
"items": [
{
"type": "article",
"state": "A",
"date": "2018-02-10T16:57:06-0500",
"id": "295823824",
"headline": "Oilers at Sharks preview",
"subhead": "Backups Montoya, Dell to start for Edmonton, San Jose",
"seoTitle": "Edmonton Oilers San Jose Sharks game preview",
"seoDescription": "Backup goaltender Aaron Dell will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.",
"seoKeywords": "Game preview, Edmonton Oilers, San Jose Sharks, Aaron Dell, Al Montoya, Feb 10",
"slug": "edmonton-oilers-san-jose-sharks-game-preview",
"commenting": true,
"tagline": "string",
"tokenData": {
"tokenGUID": "token-EBDA2F0039BF4445D2C91",
"type": "hyperLink",
"id": "8471709",
"teamId": "28",
"name": "Marc-Edouard Vlasic",
"seoName": "marc-edouard-vlasic",
"href": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018",
"hrefMobile": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018"
},
"contributor": {
"contributors": [
{
"name": "Eric Gilmore",
"twitter": "string"
}
],
"source": "NHL.com Correspondent"
},
"keywordsDisplay": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"keywordsAll": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"approval": "string",
"url": "/news/edmonton-oilers-san-jose-sharks-game-preview/c-295823824?game_pk=2017020851",
"dataURI": "/nhl/id/v1/295823824/details/web-v1.json",
"primaryKeyword": {
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
},
"media": {
"type": "photo",
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
}
},
"preview": "<p><b>OILERS (23-26-4) at SHARKS (28-18-8)</b></p><p><b>10 p.m. ET; NBCSCA, CITY, SN360, SN, NHL.TV</b></p><p> </p><h5><b>The Game</b></h5><p>Backup goaltender <span class=\"token token-playerCard\" id=\"token-B36CCB71E81996298E792\">Aaron Dell</span> will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.</p>"
}
]
},
"recap": {
"title": "Preview",
"topicList": "string",
"items": [
{
"type": "article",
"state": "A",
"date": "2018-02-10T16:57:06-0500",
"id": "295823824",
"headline": "Oilers at Sharks preview",
"subhead": "Backups Montoya, Dell to start for Edmonton, San Jose",
"seoTitle": "Edmonton Oilers San Jose Sharks game preview",
"seoDescription": "Backup goaltender Aaron Dell will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.",
"seoKeywords": "Game preview, Edmonton Oilers, San Jose Sharks, Aaron Dell, Al Montoya, Feb 10",
"slug": "edmonton-oilers-san-jose-sharks-game-preview",
"commenting": true,
"tagline": "string",
"tokenData": {
"tokenGUID": "token-EBDA2F0039BF4445D2C91",
"type": "hyperLink",
"id": "8471709",
"teamId": "28",
"name": "Marc-Edouard Vlasic",
"seoName": "marc-edouard-vlasic",
"href": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018",
"hrefMobile": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018"
},
"contributor": {
"contributors": [
{
"name": "Eric Gilmore",
"twitter": "string"
}
],
"source": "NHL.com Correspondent"
},
"keywordsDisplay": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"keywordsAll": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"approval": "string",
"url": "/news/edmonton-oilers-san-jose-sharks-game-preview/c-295823824?game_pk=2017020851",
"dataURI": "/nhl/id/v1/295823824/details/web-v1.json",
"primaryKeyword": {
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
},
"media": {
"type": "photo",
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
}
},
"preview": "<p><b>OILERS (23-26-4) at SHARKS (28-18-8)</b></p><p><b>10 p.m. ET; NBCSCA, CITY, SN360, SN, NHL.TV</b></p><p> </p><h5><b>The Game</b></h5><p>Backup goaltender <span class=\"token token-playerCard\" id=\"token-B36CCB71E81996298E792\">Aaron Dell</span> will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.</p>"
}
]
}
},
"media": {
"epg": [
{
"title": "NHLTV",
"platform": "web",
"items": [
{
"guid": "dbb39fa8-6679-4b22-a8c5-71eb5e39b462",
"mediaState": "MEDIA_ARCHIVE",
"mediaPlaybackId": "57463703",
"mediaFeedType": "HOME",
"callLetters": "NBCS-CA",
"eventId": "221-1007449",
"language": "eng",
"freeGame": true,
"feedName": "string",
"gamePlus": true
}
]
}
],
"milestones": {
"title": "Milestones",
"streamStart": "2018-02-11T03:04:32+0000",
"items": [
{
"title": "Broadcast Start",
"description": "Broadcast Start",
"type": "BROADCAST_START",
"timeAbsolute": "2018-02-11T03:04:36+0000",
"timeOffset": "4",
"period": "1",
"statsEventId": "10",
"teamId": "28",
"playerId": "8477046",
"periodTime": "01:15",
"ordinalNum": "1st",
"highlight": {
"type": "video",
"id": "57602103",
"date": "2018-02-10T22:00:00-0500",
"title": "Goodrow buries Hansen's pass",
"blurb": "EDM@SJS: Goodrow snaps Hansen's pass by Montoya",
"description": "Barclay Goodrow takes a drop pass from Jannik Hansen and whips a quick wrist shot past Al Montoya to give the Sharks a 3-0 lead in the 2nd",
"duration": "00:51",
"authFlow": true,
"mediaPlaybackId": "57602103",
"mediaState": "MEDIA_ARCHIVE",
"keywords": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
},
"playbacks": [
{
"name": "FLASH_192K_320X180",
"width": "960",
"height": "540",
"url": "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4"
}
]
}
}
]
}
},
"highlights": {
"scoreboard": {
"scoreboard": {
"title": "Highlights",
"topicList": "293642378",
"items": [
{
"type": "video",
"id": "57602103",
"date": "2018-02-10T22:00:00-0500",
"title": "Goodrow buries Hansen's pass",
"blurb": "EDM@SJS: Goodrow snaps Hansen's pass by Montoya",
"description": "Barclay Goodrow takes a drop pass from Jannik Hansen and whips a quick wrist shot past Al Montoya to give the Sharks a 3-0 lead in the 2nd",
"duration": "00:51",
"authFlow": true,
"mediaPlaybackId": "57602103",
"mediaState": "MEDIA_ARCHIVE",
"keywords": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
},
"playbacks": [
{
"name": "FLASH_192K_320X180",
"width": "960",
"height": "540",
"url": "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4"
}
]
}
]
},
"gameCenter": {
"title": "Highlights",
"topicList": "293642378",
"items": [
{
"type": "video",
"id": "57602103",
"date": "2018-02-10T22:00:00-0500",
"title": "Goodrow buries Hansen's pass",
"blurb": "EDM@SJS: Goodrow snaps Hansen's pass by Montoya",
"description": "Barclay Goodrow takes a drop pass from Jannik Hansen and whips a quick wrist shot past Al Montoya to give the Sharks a 3-0 lead in the 2nd",
"duration": "00:51",
"authFlow": true,
"mediaPlaybackId": "57602103",
"mediaState": "MEDIA_ARCHIVE",
"keywords": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
},
"playbacks": [
{
"name": "FLASH_192K_320X180",
"width": "960",
"height": "540",
"url": "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4"
}
]
}
]
}
},
"gameCenter": {
"scoreboard": {
"title": "Highlights",
"topicList": "293642378",
"items": [
{
"type": "video",
"id": "57602103",
"date": "2018-02-10T22:00:00-0500",
"title": "Goodrow buries Hansen's pass",
"blurb": "EDM@SJS: Goodrow snaps Hansen's pass by Montoya",
"description": "Barclay Goodrow takes a drop pass from Jannik Hansen and whips a quick wrist shot past Al Montoya to give the Sharks a 3-0 lead in the 2nd",
"duration": "00:51",
"authFlow": true,
"mediaPlaybackId": "57602103",
"mediaState": "MEDIA_ARCHIVE",
"keywords": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
},
"playbacks": [
{
"name": "FLASH_192K_320X180",
"width": "960",
"height": "540",
"url": "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4"
}
]
}
]
},
"gameCenter": {
"title": "Highlights",
"topicList": "293642378",
"items": [
{
"type": "video",
"id": "57602103",
"date": "2018-02-10T22:00:00-0500",
"title": "Goodrow buries Hansen's pass",
"blurb": "EDM@SJS: Goodrow snaps Hansen's pass by Montoya",
"description": "Barclay Goodrow takes a drop pass from Jannik Hansen and whips a quick wrist shot past Al Montoya to give the Sharks a 3-0 lead in the 2nd",
"duration": "00:51",
"authFlow": true,
"mediaPlaybackId": "57602103",
"mediaState": "MEDIA_ARCHIVE",
"keywords": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
},
"playbacks": [
{
"name": "FLASH_192K_320X180",
"width": "960",
"height": "540",
"url": "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4"
}
]
}
]
}
}
}
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | GameContent |
404 | Not Found | Error | Error |
getGame
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /game/{id}/feed/live
Get all available data for an NHL game.
This contains all data related to a game, from the boxscore, to play data and even on-ice coordinates. Be forewarned that, depending on the game, this endpoint can return a lot of data.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | number | true | The ID of the game. The first 4 digits identify the season of the game (ie. 2017 for the 2017-2018 season). The next 2 digits give the type of game, where 01 = preseason, 02 = regular season, 03 = playoffs, 04 = all-star. The final 4 digits identify the specific game number. For regular season and preseason games, this ranges from 0001 to the number of games played. (1271 for seasons with 31 teams (2017 and onwards) and 1230 for seasons with 30 teams). For playoff games, the 2nd digit of the specific number gives the round of the playoffs, the 3rd digit specifies the matchup, and the 4th digit specifies the game (out of 7). |
Example responses
{
"copyright": "string",
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"metaData": {
"wait": 10,
"timeStamp": "20180211_054345"
},
"gameData": {
"game": {
"pk": 2017020851,
"season": "20172018",
"type": "R"
},
"datetime": {
"dateTime": "2018-02-11T03:00:00Z",
"endDateTime": "2018-02-11T05:30:42Z"
},
"status": {
"abstractGameState": "Final",
"codedGameState": "7",
"detailedState": "Final",
"statusCode": "7",
"startTimeTBD": true
},
"teams": {
"away": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null",
"city": "San Jose",
"timeZone": {
"id": "America/Los_Angeles",
"offset": -8,
"tz": "PST"
}
},
"abbreviation": "SJS",
"triCode": "SJS",
"teamName": "Sharks",
"locationName": "San Jose",
"firstYearOfPlay": 1990,
"division": {
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15"
},
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"franchise": {
"id": 29,
"name": "Sharks",
"link": "/api/v1/franchises/29"
},
"roster": {
"roster": [
{
"person": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138"
},
"jerseyNumber": 19,
"position": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
]
},
"nextGameSchedule": {
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"dates": [
{
"date": "2018-02-10",
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"games": [
{
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"gameType": "R",
"season": "20172018",
"gameDate": "2018-02-11T03:00:00Z",
"status": {
"abstractGameState": "Live",
"codedGameState": "3",
"detailedState": "In Progress",
"statusCode": "2",
"startTimeTBD": true
},
"teams": {
"away": {},
"home": {}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
},
"content": {
"link": "/api/v1/game/2017020851/content"
}
}
],
"events": [
{}
],
"matches": [
{}
]
}
]
},
"shortName": "San Jose",
"officialSiteUrl": "http://www.sjsharks.com",
"franchiseId": 29,
"active": true
},
"home": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null",
"city": "San Jose",
"timeZone": {
"id": "America/Los_Angeles",
"offset": -8,
"tz": "PST"
}
},
"abbreviation": "SJS",
"triCode": "SJS",
"teamName": "Sharks",
"locationName": "San Jose",
"firstYearOfPlay": 1990,
"division": {
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15"
},
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"franchise": {
"id": 29,
"name": "Sharks",
"link": "/api/v1/franchises/29"
},
"roster": {
"roster": [
{
"person": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138"
},
"jerseyNumber": 19,
"position": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
]
},
"nextGameSchedule": {
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"dates": [
{
"date": "2018-02-10",
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"games": [
{
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"gameType": "R",
"season": "20172018",
"gameDate": "2018-02-11T03:00:00Z",
"status": {
"abstractGameState": "Live",
"codedGameState": "3",
"detailedState": "In Progress",
"statusCode": "2",
"startTimeTBD": true
},
"teams": {
"away": {},
"home": {}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
},
"content": {
"link": "/api/v1/game/2017020851/content"
}
}
],
"events": [
{}
],
"matches": [
{}
]
}
]
},
"shortName": "San Jose",
"officialSiteUrl": "http://www.sjsharks.com",
"franchiseId": 29,
"active": true
}
},
"players": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138",
"firstName": "Joe",
"lastName": "Thornton",
"primaryNumber": "19",
"birthDate": "1979-07-02",
"currentAge": 38,
"birthCity": "London",
"birthStateProvince": "ON",
"birthCountry": "CAN",
"nationality": "CAN",
"height": "6' 4\"",
"weight": 220,
"active": true,
"alternateCaptain": true,
"captain": true,
"rookie": true,
"shootsCatches": "L",
"rosterStatus": "I",
"currentTeam": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
},
"primaryPosition": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
}
},
"liveData": {
"plays": {
"allPlays": [
{
"players": [
{
"player": {
"id": 8476881,
"fullName": "Tomas Hertl",
"link": "/api/v1/people/8476881"
},
"playerType": "Winner"
}
],
"result": {
"event": "Game End",
"eventCode": "SJS505",
"eventTypeId": "GAME_END",
"description": "Game End"
},
"about": {
"eventIdx": 315,
"eventId": 505,
"period": 3,
"periodType": "REGULAR",
"ordinalNum": "3rd",
"periodTime": "20:00",
"periodTimeRemaining": "00:00",
"dateTime": "2018-02-11T05:30:42Z",
"goals": {
"away": 4,
"home": 6
}
},
"coordinates": {
"x": 0,
"y": 0
},
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"triCode": "SJS"
}
}
],
"scoringPlays": [
0
],
"penaltyPlays": [
0
],
"playsByPeriod": [
{
"startIndex": 0,
"plays": [
0
],
"endIndex": 114
}
],
"currentPlay": {
"players": [
{
"player": {
"id": 8476881,
"fullName": "Tomas Hertl",
"link": "/api/v1/people/8476881"
},
"playerType": "Winner"
}
],
"result": {
"event": "Game End",
"eventCode": "SJS505",
"eventTypeId": "GAME_END",
"description": "Game End"
},
"about": {
"eventIdx": 315,
"eventId": 505,
"period": 3,
"periodType": "REGULAR",
"ordinalNum": "3rd",
"periodTime": "20:00",
"periodTimeRemaining": "00:00",
"dateTime": "2018-02-11T05:30:42Z",
"goals": {
"away": 4,
"home": 6
}
},
"coordinates": {
"x": 0,
"y": 0
},
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"triCode": "SJS"
}
}
},
"linescore": {
"currentPeriod": 3,
"currentPeriodOrdinal": "3rd",
"currentPeriodTimeRemaining": "Final",
"periods": [
{
"periodType": "REGULAR",
"startTime": "2018-02-11T03:09:50Z",
"endTime": "2018-02-11T03:44:47Z",
"num": 1,
"ordinalNum": "1st",
"home": {
"goals": 2,
"shotsOnGoal": 14,
"rinkSide": "left"
},
"away": {
"goals": 0,
"shotsOnGoal": 9,
"rinkSide": "right"
}
}
],
"shootoutInfo": {
"away": {
"scores": 0,
"attempts": 0
},
"home": {
"scores": 0,
"attempts": 0
}
},
"teams": {
"home": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
},
"away": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
}
},
"powerPlayStrength": "Even",
"hasShootout": true,
"intermissionInfo": {
"intermissionTimeRemaining": 0,
"intermissionTimeElapsed": 0,
"inIntermission": true
},
"powerPlayInfo": {
"situationTimeRemaining": 0,
"situationTimeElapsed": 72,
"inSituation": true
}
},
"boxscore": {
"teams": {
"away": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"teamStats": {
"teamSkaterStats": {
"goals": 6,
"pim": 6,
"shots": 30,
"powerPlayPercentage": "0.0",
"powerPlayGoals": 0,
"powerPlayOpportunities": 1,
"faceOffWinPercentage": "59.3",
"blocked": 21,
"takeaways": 9,
"giveaways": 6,
"hits": 15
}
},
"players": {
"person": {
"id": 8471709,
"fullName": "Marc-Edouard Vlasic",
"link": "/api/v1/people/8471709",
"shootsCatches": "L",
"rosterStatus": "Y"
},
"jerseyNumber": "44",
"position": {
"code": "D",
"name": "Defenseman",
"type": "Defenseman",
"abbreviation": "D"
},
"stats": {
"skaterStats": {
"timeOnIce": "23:04",
"assists": 0,
"goals": 0,
"shots": 2,
"hits": 0,
"powerPlayGoals": 0,
"powerPlayAssists": 0,
"penaltyMinutes": 0,
"faceOffWins": 0,
"faceoffTaken": 0,
"takeaways": 0,
"giveaways": 1,
"shortHandedGoals": 0,
"shortHandedAssists": 0,
"blocked": 0,
"plusMinus": 1,
"evenTimeOnIce": "18:12",
"powerPlayTimeOnIce": "1:07",
"shortHandedTimeOnIce": "3:45"
}
}
},
"goalies": [
0
],
"skaters": [
0
],
"onIce": [
0
],
"onIcePlus": [
{
"playerId": 8477180,
"shiftDuration": 458,
"stamina": 33
}
],
"scratches": [
0
],
"penaltyBox": [
0
],
"coaches": [
{
"person": {
"fullName": "Peter DeBoer",
"link": "/api/v1/people/null"
},
"position": {
"code": "HC",
"name": "Head Coach",
"type": "Head Coach",
"abbreviation": "Head Coach"
}
}
]
},
"home": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"teamStats": {
"teamSkaterStats": {
"goals": 6,
"pim": 6,
"shots": 30,
"powerPlayPercentage": "0.0",
"powerPlayGoals": 0,
"powerPlayOpportunities": 1,
"faceOffWinPercentage": "59.3",
"blocked": 21,
"takeaways": 9,
"giveaways": 6,
"hits": 15
}
},
"players": {
"person": {
"id": 8471709,
"fullName": "Marc-Edouard Vlasic",
"link": "/api/v1/people/8471709",
"shootsCatches": "L",
"rosterStatus": "Y"
},
"jerseyNumber": "44",
"position": {
"code": "D",
"name": "Defenseman",
"type": "Defenseman",
"abbreviation": "D"
},
"stats": {
"skaterStats": {
"timeOnIce": "23:04",
"assists": 0,
"goals": 0,
"shots": 2,
"hits": 0,
"powerPlayGoals": 0,
"powerPlayAssists": 0,
"penaltyMinutes": 0,
"faceOffWins": 0,
"faceoffTaken": 0,
"takeaways": 0,
"giveaways": 1,
"shortHandedGoals": 0,
"shortHandedAssists": 0,
"blocked": 0,
"plusMinus": 1,
"evenTimeOnIce": "18:12",
"powerPlayTimeOnIce": "1:07",
"shortHandedTimeOnIce": "3:45"
}
}
},
"goalies": [
0
],
"skaters": [
0
],
"onIce": [
0
],
"onIcePlus": [
{
"playerId": 8477180,
"shiftDuration": 458,
"stamina": 33
}
],
"scratches": [
0
],
"penaltyBox": [
0
],
"coaches": [
{
"person": {
"fullName": "Peter DeBoer",
"link": "/api/v1/people/null"
},
"position": {
"code": "HC",
"name": "Head Coach",
"type": "Head Coach",
"abbreviation": "Head Coach"
}
}
]
}
},
"officials": [
{
"official": {
"id": 2071,
"fullName": "Tim Peel",
"link": "/api/v1/people/2071"
},
"officialType": "Linesman"
}
]
},
"decisions": {
"winner": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
},
"loser": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
},
"firstStar": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
},
"secondStar": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
},
"thirdStar": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
}
}
}
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Game |
404 | Not Found | Error | Error |
getGameDiff
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live/diffPatch?startTimeCode=20180210_0900 \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live/diffPatch?startTimeCode=20180210_0900 HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live/diffPatch',
method: 'get',
data: '?startTimeCode=20180210_0900',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live/diffPatch?startTimeCode=20180210_0900',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live/diffPatch',
params: {
'startTimeCode' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live/diffPatch', params={
'startTimeCode': '20180210_0900'
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live/diffPatch?startTimeCode=20180210_0900");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/game/{id}/feed/live/diffPatch", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /game/{id}/feed/live/diffPatch
Get all available data for an NHL game after a specific time.
You can use this to return a small subset of data relating to game.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | number | true | The ID of the game. The first 4 digits identify the season of the game (ie. 2017 for the 2017-2018 season). The next 2 digits give the type of game, where 01 = preseason, 02 = regular season, 03 = playoffs, 04 = all-star. The final 4 digits identify the specific game number. For regular season and preseason games, this ranges from 0001 to the number of games played. (1271 for seasons with 31 teams (2017 and onwards) and 1230 for seasons with 30 teams). For playoff games, the 2nd digit of the specific number gives the round of the playoffs, the 3rd digit specifies the matchup, and the 4th digit specifies the game (out of 7). |
startTimeCode | query | string | true | The prospect ID. |
Example responses
{
"copyright": "string",
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"metaData": {
"wait": 10,
"timeStamp": "20180211_054345"
},
"gameData": {
"game": {
"pk": 2017020851,
"season": "20172018",
"type": "R"
},
"datetime": {
"dateTime": "2018-02-11T03:00:00Z",
"endDateTime": "2018-02-11T05:30:42Z"
},
"status": {
"abstractGameState": "Final",
"codedGameState": "7",
"detailedState": "Final",
"statusCode": "7",
"startTimeTBD": true
},
"teams": {
"away": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null",
"city": "San Jose",
"timeZone": {
"id": "America/Los_Angeles",
"offset": -8,
"tz": "PST"
}
},
"abbreviation": "SJS",
"triCode": "SJS",
"teamName": "Sharks",
"locationName": "San Jose",
"firstYearOfPlay": 1990,
"division": {
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15"
},
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"franchise": {
"id": 29,
"name": "Sharks",
"link": "/api/v1/franchises/29"
},
"roster": {
"roster": [
{
"person": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138"
},
"jerseyNumber": 19,
"position": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
]
},
"nextGameSchedule": {
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"dates": [
{
"date": "2018-02-10",
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"games": [
{
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"gameType": "R",
"season": "20172018",
"gameDate": "2018-02-11T03:00:00Z",
"status": {
"abstractGameState": "Live",
"codedGameState": "3",
"detailedState": "In Progress",
"statusCode": "2",
"startTimeTBD": true
},
"teams": {
"away": {},
"home": {}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
},
"content": {
"link": "/api/v1/game/2017020851/content"
}
}
],
"events": [
{}
],
"matches": [
{}
]
}
]
},
"shortName": "San Jose",
"officialSiteUrl": "http://www.sjsharks.com",
"franchiseId": 29,
"active": true
},
"home": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null",
"city": "San Jose",
"timeZone": {
"id": "America/Los_Angeles",
"offset": -8,
"tz": "PST"
}
},
"abbreviation": "SJS",
"triCode": "SJS",
"teamName": "Sharks",
"locationName": "San Jose",
"firstYearOfPlay": 1990,
"division": {
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15"
},
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"franchise": {
"id": 29,
"name": "Sharks",
"link": "/api/v1/franchises/29"
},
"roster": {
"roster": [
{
"person": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138"
},
"jerseyNumber": 19,
"position": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
]
},
"nextGameSchedule": {
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"dates": [
{
"date": "2018-02-10",
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"games": [
{
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"gameType": "R",
"season": "20172018",
"gameDate": "2018-02-11T03:00:00Z",
"status": {
"abstractGameState": "Live",
"codedGameState": "3",
"detailedState": "In Progress",
"statusCode": "2",
"startTimeTBD": true
},
"teams": {
"away": {},
"home": {}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
},
"content": {
"link": "/api/v1/game/2017020851/content"
}
}
],
"events": [
{}
],
"matches": [
{}
]
}
]
},
"shortName": "San Jose",
"officialSiteUrl": "http://www.sjsharks.com",
"franchiseId": 29,
"active": true
}
},
"players": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138",
"firstName": "Joe",
"lastName": "Thornton",
"primaryNumber": "19",
"birthDate": "1979-07-02",
"currentAge": 38,
"birthCity": "London",
"birthStateProvince": "ON",
"birthCountry": "CAN",
"nationality": "CAN",
"height": "6' 4\"",
"weight": 220,
"active": true,
"alternateCaptain": true,
"captain": true,
"rookie": true,
"shootsCatches": "L",
"rosterStatus": "I",
"currentTeam": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
},
"primaryPosition": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
}
},
"liveData": {
"plays": {
"allPlays": [
{
"players": [
{
"player": {
"id": 8476881,
"fullName": "Tomas Hertl",
"link": "/api/v1/people/8476881"
},
"playerType": "Winner"
}
],
"result": {
"event": "Game End",
"eventCode": "SJS505",
"eventTypeId": "GAME_END",
"description": "Game End"
},
"about": {
"eventIdx": 315,
"eventId": 505,
"period": 3,
"periodType": "REGULAR",
"ordinalNum": "3rd",
"periodTime": "20:00",
"periodTimeRemaining": "00:00",
"dateTime": "2018-02-11T05:30:42Z",
"goals": {
"away": 4,
"home": 6
}
},
"coordinates": {
"x": 0,
"y": 0
},
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"triCode": "SJS"
}
}
],
"scoringPlays": [
0
],
"penaltyPlays": [
0
],
"playsByPeriod": [
{
"startIndex": 0,
"plays": [
0
],
"endIndex": 114
}
],
"currentPlay": {
"players": [
{
"player": {
"id": 8476881,
"fullName": "Tomas Hertl",
"link": "/api/v1/people/8476881"
},
"playerType": "Winner"
}
],
"result": {
"event": "Game End",
"eventCode": "SJS505",
"eventTypeId": "GAME_END",
"description": "Game End"
},
"about": {
"eventIdx": 315,
"eventId": 505,
"period": 3,
"periodType": "REGULAR",
"ordinalNum": "3rd",
"periodTime": "20:00",
"periodTimeRemaining": "00:00",
"dateTime": "2018-02-11T05:30:42Z",
"goals": {
"away": 4,
"home": 6
}
},
"coordinates": {
"x": 0,
"y": 0
},
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"triCode": "SJS"
}
}
},
"linescore": {
"currentPeriod": 3,
"currentPeriodOrdinal": "3rd",
"currentPeriodTimeRemaining": "Final",
"periods": [
{
"periodType": "REGULAR",
"startTime": "2018-02-11T03:09:50Z",
"endTime": "2018-02-11T03:44:47Z",
"num": 1,
"ordinalNum": "1st",
"home": {
"goals": 2,
"shotsOnGoal": 14,
"rinkSide": "left"
},
"away": {
"goals": 0,
"shotsOnGoal": 9,
"rinkSide": "right"
}
}
],
"shootoutInfo": {
"away": {
"scores": 0,
"attempts": 0
},
"home": {
"scores": 0,
"attempts": 0
}
},
"teams": {
"home": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
},
"away": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
}
},
"powerPlayStrength": "Even",
"hasShootout": true,
"intermissionInfo": {
"intermissionTimeRemaining": 0,
"intermissionTimeElapsed": 0,
"inIntermission": true
},
"powerPlayInfo": {
"situationTimeRemaining": 0,
"situationTimeElapsed": 72,
"inSituation": true
}
},
"boxscore": {
"teams": {
"away": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"teamStats": {
"teamSkaterStats": {
"goals": 6,
"pim": 6,
"shots": 30,
"powerPlayPercentage": "0.0",
"powerPlayGoals": 0,
"powerPlayOpportunities": 1,
"faceOffWinPercentage": "59.3",
"blocked": 21,
"takeaways": 9,
"giveaways": 6,
"hits": 15
}
},
"players": {
"person": {
"id": 8471709,
"fullName": "Marc-Edouard Vlasic",
"link": "/api/v1/people/8471709",
"shootsCatches": "L",
"rosterStatus": "Y"
},
"jerseyNumber": "44",
"position": {
"code": "D",
"name": "Defenseman",
"type": "Defenseman",
"abbreviation": "D"
},
"stats": {
"skaterStats": {
"timeOnIce": "23:04",
"assists": 0,
"goals": 0,
"shots": 2,
"hits": 0,
"powerPlayGoals": 0,
"powerPlayAssists": 0,
"penaltyMinutes": 0,
"faceOffWins": 0,
"faceoffTaken": 0,
"takeaways": 0,
"giveaways": 1,
"shortHandedGoals": 0,
"shortHandedAssists": 0,
"blocked": 0,
"plusMinus": 1,
"evenTimeOnIce": "18:12",
"powerPlayTimeOnIce": "1:07",
"shortHandedTimeOnIce": "3:45"
}
}
},
"goalies": [
0
],
"skaters": [
0
],
"onIce": [
0
],
"onIcePlus": [
{
"playerId": 8477180,
"shiftDuration": 458,
"stamina": 33
}
],
"scratches": [
0
],
"penaltyBox": [
0
],
"coaches": [
{
"person": {
"fullName": "Peter DeBoer",
"link": "/api/v1/people/null"
},
"position": {
"code": "HC",
"name": "Head Coach",
"type": "Head Coach",
"abbreviation": "Head Coach"
}
}
]
},
"home": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"teamStats": {
"teamSkaterStats": {
"goals": 6,
"pim": 6,
"shots": 30,
"powerPlayPercentage": "0.0",
"powerPlayGoals": 0,
"powerPlayOpportunities": 1,
"faceOffWinPercentage": "59.3",
"blocked": 21,
"takeaways": 9,
"giveaways": 6,
"hits": 15
}
},
"players": {
"person": {
"id": 8471709,
"fullName": "Marc-Edouard Vlasic",
"link": "/api/v1/people/8471709",
"shootsCatches": "L",
"rosterStatus": "Y"
},
"jerseyNumber": "44",
"position": {
"code": "D",
"name": "Defenseman",
"type": "Defenseman",
"abbreviation": "D"
},
"stats": {
"skaterStats": {
"timeOnIce": "23:04",
"assists": 0,
"goals": 0,
"shots": 2,
"hits": 0,
"powerPlayGoals": 0,
"powerPlayAssists": 0,
"penaltyMinutes": 0,
"faceOffWins": 0,
"faceoffTaken": 0,
"takeaways": 0,
"giveaways": 1,
"shortHandedGoals": 0,
"shortHandedAssists": 0,
"blocked": 0,
"plusMinus": 1,
"evenTimeOnIce": "18:12",
"powerPlayTimeOnIce": "1:07",
"shortHandedTimeOnIce": "3:45"
}
}
},
"goalies": [
0
],
"skaters": [
0
],
"onIce": [
0
],
"onIcePlus": [
{
"playerId": 8477180,
"shiftDuration": 458,
"stamina": 33
}
],
"scratches": [
0
],
"penaltyBox": [
0
],
"coaches": [
{
"person": {
"fullName": "Peter DeBoer",
"link": "/api/v1/people/null"
},
"position": {
"code": "HC",
"name": "Head Coach",
"type": "Head Coach",
"abbreviation": "Head Coach"
}
}
]
}
},
"officials": [
{
"official": {
"id": 2071,
"fullName": "Tim Peel",
"link": "/api/v1/people/2071"
},
"officialType": "Linesman"
}
]
},
"decisions": {
"winner": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
},
"loser": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
},
"firstStar": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
},
"secondStar": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
},
"thirdStar": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
}
}
}
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Game |
404 | Not Found | Error | Error |
players
getPlayer
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/people/{id} \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/people/{id} HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/people/{id}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/people/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/people/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/people/{id}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/people/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/people/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /people/{id}
Get an NHL player.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | number | true | The ID of the player. |
Example responses
{
"copyright": "string",
"teams": [
{
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138",
"firstName": "Joe",
"lastName": "Thornton",
"primaryNumber": "19",
"birthDate": "1979-07-02",
"currentAge": 38,
"birthCity": "London",
"birthStateProvince": "ON",
"birthCountry": "CAN",
"nationality": "CAN",
"height": "6' 4\"",
"weight": 220,
"active": true,
"alternateCaptain": true,
"captain": true,
"rookie": true,
"shootsCatches": "L",
"rosterStatus": "I",
"currentTeam": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
},
"primaryPosition": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Players |
404 | Not Found | Error | Error |
getPlayerStats
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/people/{id}/stats?stats=homeAndAway \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/people/{id}/stats?stats=homeAndAway HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/people/{id}/stats',
method: 'get',
data: '?stats=homeAndAway',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/people/{id}/stats?stats=homeAndAway',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/people/{id}/stats',
params: {
'stats' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/people/{id}/stats', params={
'stats': 'homeAndAway'
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/people/{id}/stats?stats=homeAndAway");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/people/{id}/stats", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /people/{id}/stats
Get specific statistics for an NHL player.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | number | true | The ID of the player. |
stats | query | string | true | Stats explanations: |
season | query | number | false | Return a team's specific season. |
Detailed descriptions
stats: Stats explanations:
* homeAndAway
- Provides a split between home and away games.
* byMonth
- Monthly split of stats.
* byDayOfWeek
- Split done by day of the week.
* goalsByGameSituation
- Shows number on when goals for a player happened like how many in the shootout, how many in each period, etc.
* onPaceRegularSeason
- This only works with the current in-progress season and shows projected totals based on current onPaceRegularSeason.
* regularSeasonStatRankings
- Returns where someone stands vs the rest of the league for a specific regularSeasonStatRankings
* statsSingleSeason
- Obtains single season statistics for a player.
* vsConference
- Conference stats split.
* vsDivision
- Division stats split.
* vsTeam
- Conference stats split.
* winLoss
- Very similar to the previous modifier except it provides the W/L/OT split instead of Home and Away.
Enumerated Values
Parameter | Value |
---|---|
stats | homeAndAway |
stats | byDayOfWeek |
stats | byMonth |
stats | goalsByGameSituation |
stats | onPaceRegularSeason |
stats | regularSeasonStatRankings |
stats | statsSingleSeason |
stats | vsConference |
stats | vsDivision |
stats | vsTeam |
stats | winLoss |
Example responses
{
"copyright": "string",
"stats": [
{
"type": {
"displayName": "byDayOfWeek"
},
"splits": [
{
"season": "20172018",
"stat": {
"timeOnIce": "862:13",
"assists": 23,
"goals": 13,
"pim": 38,
"shots": 75,
"games": 47,
"hits": 32,
"powerPlayGoals": 7,
"powerPlayPoints": 18,
"powerPlayTimeOnIce": "168:28",
"evenTimeOnIce": "692:50",
"penaltyMinutes": "38",
"faceOffPct": 52.04,
"shotPct": 17.3,
"gameWinningGoals": 1,
"overTimeGoals": 0,
"shortHandedGoals": 0,
"shortHandedPoints": 0,
"shortHandedTimeOnIce": "00:55",
"blocked": 18,
"plusMinus": -9,
"points": 36,
"shifts": 1077,
"timeOnIcePerGame": "18:20",
"evenTimeOnIcePerGame": "14:44",
"shortHandedTimeOnIcePerGame": "00:01",
"powerPlayTimeOnIcePerGame": "03:35",
"rankPowerPlayGoals": "1st",
"rankBlockedShots": "405th",
"rankAssists": "51st",
"rankShotPct": "246th",
"rankGoals": "13th",
"rankHits": "19th",
"rankPenaltyMinutes": "111th",
"rankShortHandedGoals": "133rd",
"rankPlusMinus": "176th",
"rankShots": "2nd",
"rankPoints": "20th",
"rankOvertimeGoals": "9th",
"rankGamesPlayed": "1st",
"goalsInFirstPeriod": 6,
"goalsInSecondPeriod": 3,
"goalsInThirdPeriod": 4,
"goalsTrailingByOne": 2,
"goalsTrailingByTwo": 1,
"goalsTrailingByThreePlus": 1,
"goalsWhenTied": 4,
"goalsLeadingByOne": 2,
"goalsLeadingByTwo": 3
},
"isHome": true,
"isWin": true,
"isOT": true,
"month": 1,
"dayOfWeek": 1,
"opponent": {
"id": 1,
"name": "New Jersey Devils",
"link": "/api/v1/teams/1"
},
"opponentDivision": {
"id": 16,
"name": "Central",
"link": "/api/v1/divisions/16"
},
"opponentConference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
}
}
]
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | PlayerStats |
404 | Not Found | Error | Error |
schedule
getSchedule
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/schedule \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/schedule HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/schedule',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/schedule',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/schedule',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/schedule', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/schedule");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/schedule", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /schedule
Get the NHL game schedule.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
expand | query | string | false | Expand explanations: |
teamId | query | string | false | Limit results to a specific team. Team ids can be found through the teams endpoint |
startDate | query | string(date) | false | Start date for the search. |
endDate | query | string(date) | false | End date for the search. |
Detailed descriptions
expand: Expand explanations:
* schedule.brodcasts
- Shows the broadcasts of the game.
* schedule.linescore
- Linescore for completed games.
* schedule.ticket
- Provides the different places to buy tickets for the upcoming games.
* team.schedule.previous
- Same as above but for the last game played.
Enumerated Values
Parameter | Value |
---|---|
expand | schedule.brodcasts |
expand | schedule.linescore |
expand | schedule.ticket |
expand | team.schedule.previous |
Example responses
{
"copyright": "string",
"totalItems": 9,
"totalEvents": 0,
"totalGames": 9,
"totalMatches": 0,
"wait": 10,
"dates": [
{
"date": "2018-02-10",
"totalItems": 9,
"totalEvents": 0,
"totalGames": 9,
"totalMatches": 0,
"games": [
{
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"gameType": "R",
"season": "20172018",
"gameDate": "2018-02-11T03:00:00Z",
"status": {
"abstractGameState": "Final",
"codedGameState": "7",
"detailedState": "Final",
"statusCode": "7",
"startTimeTBD": true
},
"teams": {
"away": {
"leagueRecord": {
"wins": 23,
"losses": 27,
"ot": 4,
"type": "league"
},
"score": 4,
"team": {
"id": 22,
"name": "Edmonton Oilers",
"link": "/api/v1/teams/22"
}
},
"home": {
"leagueRecord": {
"wins": 29,
"losses": 18,
"ot": 8,
"type": "league"
},
"score": 6,
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
}
}
},
"linescore": {
"currentPeriod": 3,
"currentPeriodOrdinal": "3rd",
"currentPeriodTimeRemaining": "Final",
"periods": [
{
"periodType": "REGULAR",
"startTime": "2018-02-11T03:09:50Z",
"endTime": "2018-02-11T03:44:47Z",
"num": 1,
"ordinalNum": "1st",
"home": {
"goals": 2,
"shotsOnGoal": 14,
"rinkSide": "left"
},
"away": {
"goals": 0,
"shotsOnGoal": 9,
"rinkSide": "right"
}
}
],
"shootoutInfo": {
"away": {
"scores": 0,
"attempts": 0
},
"home": {
"scores": 0,
"attempts": 0
}
},
"teams": {
"home": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
},
"away": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
}
},
"powerPlayStrength": "Even",
"hasShootout": true,
"intermissionInfo": {
"intermissionTimeRemaining": 0,
"intermissionTimeElapsed": 0,
"inIntermission": true
},
"powerPlayInfo": {
"situationTimeRemaining": 0,
"situationTimeElapsed": 72,
"inSituation": true
}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
},
"tickets": [
{
"ticketType": "buysell",
"ticketLink": "http://www.ticketmaster.com/event/090052DD92E620B4?BRAND=ducks&extcmp=tm208344&utm_source=NHL.com&utm_medium=client&utm_campaign=NHL_LEAGUE_ANA&utm_content=SCHEDULE_PAGE&camefrom=CFC_DUCKS_1718_Web_DucksSchedule"
}
],
"content": {
"link": "/api/v1/game/2017020851/content"
}
}
],
"events": [
{}
],
"matches": [
{}
]
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Schedule |
404 | Not Found | Error | Error |
standings
getStandings
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/standings \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/standings HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/standings',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/standings',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/standings',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/standings', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/standings");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/standings", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /standings
Get NHL division standings.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
season | query | string(date) | false | Standings for a specified season. |
date | query | string(date) | false | Standings on a specified date. |
Example responses
{
"copyright": "string",
"records": [
{
"standingsType": "regularSeason",
"league": {
"id": 133,
"name": "National Hockey League",
"link": "/api/v1/league/133"
},
"division": {
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15"
},
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"teamRecords": [
{
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
},
"leagueRecord": {
"wins": 29,
"losses": 18,
"ot": 8,
"type": "league"
},
"goalsAgainst": 154,
"goalsScored": 162,
"points": 66,
"divisionRank": "2",
"conferenceRank": "7",
"leagueRank": "11",
"wildCardRank": "0",
"row": 26,
"gamesPlayed": 55,
"streak": {
"streakType": "wins",
"streakNumber": 1,
"streakCode": "W1"
},
"lastUpdated": "2018-02-11T00:57:18Z"
}
]
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Standings |
404 | Not Found | Error | Error |
getStandingsByType
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/standings/{type} \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/standings/{type} HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/standings/{type}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/standings/{type}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/standings/{type}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/standings/{type}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/standings/{type}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/standings/{type}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /standings/{type}
Get NHL standings for a specific standing type.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
type | path | string | true | Standing types: |
Detailed descriptions
type: Standing types:
* byConference
- Standings by Conference
* byDivision
- Standings by Division
* byLeague
- Standings by League
* divisionLeaders
- Division Leader standings
* postseason
- Postseason Standings
* preseason
- Preseason Standings
* regularSeason
- Regular Season Standings
* wildCard
- Wild card standings
* wildCardWithLeaders
- Wild card standings with Division Leaders
Enumerated Values
Parameter | Value |
---|---|
type | byConference |
type | byDivision |
type | byLeague |
type | divisionLeaders |
type | postseason |
type | preseason |
type | regularSeason |
type | wildCard |
type | wildCardWithLeaders |
Example responses
{
"copyright": "string",
"records": [
{
"standingsType": "regularSeason",
"league": {
"id": 133,
"name": "National Hockey League",
"link": "/api/v1/league/133"
},
"division": {
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15"
},
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"teamRecords": [
{
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
},
"leagueRecord": {
"wins": 29,
"losses": 18,
"ot": 8,
"type": "league"
},
"goalsAgainst": 154,
"goalsScored": 162,
"points": 66,
"divisionRank": "2",
"conferenceRank": "7",
"leagueRank": "11",
"wildCardRank": "0",
"row": 26,
"gamesPlayed": 55,
"streak": {
"streakType": "wins",
"streakNumber": 1,
"streakCode": "W1"
},
"lastUpdated": "2018-02-11T00:57:18Z"
}
]
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Standings |
404 | Not Found | Error | Error |
getStandingTypes
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/standingsTypes \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/standingsTypes HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/standingsTypes',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/standingsTypes',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/standingsTypes',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/standingsTypes', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/standingsTypes");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/standingsTypes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /standingsTypes
Get all available NHL standing types.
Example responses
[
{
"name": "regularSeason",
"description": "Regular Season Standings"
}
]
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | StandingTypes |
404 | Not Found | Error | Error |
stats
getStatTypes
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/statTypes \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/statTypes HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/statTypes',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/statTypes',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/statTypes',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/statTypes', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/statTypes");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/statTypes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /statTypes
Get all available NHL statistic types.
Example responses
[
{
"displayName": "byDayOfWeek"
}
]
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | StatTypes |
404 | Not Found | Error | Error |
teams
getTeams
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/teams \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/teams HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/teams',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/teams',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/teams',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/teams', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/teams");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/teams", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /teams
Get all NHL teams.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
expand | query | string | false | Expand your response for some additional data. |
season | query | number | false | Return a team's specific season. |
Enumerated Values
Parameter | Value |
---|---|
expand | team.roster |
expand | team.schedule.next |
expand | team.schedule.previous |
Example responses
{
"copyright": "string",
"teams": [
{
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null",
"city": "San Jose",
"timeZone": {
"id": "America/Los_Angeles",
"offset": -8,
"tz": "PST"
}
},
"abbreviation": "SJS",
"triCode": "SJS",
"teamName": "Sharks",
"locationName": "San Jose",
"firstYearOfPlay": 1990,
"division": {
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15"
},
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"franchise": {
"id": 29,
"name": "Sharks",
"link": "/api/v1/franchises/29"
},
"roster": {
"roster": [
{
"person": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138"
},
"jerseyNumber": 19,
"position": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
]
},
"nextGameSchedule": {
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"dates": [
{
"date": "2018-02-10",
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"games": [
{
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"gameType": "R",
"season": "20172018",
"gameDate": "2018-02-11T03:00:00Z",
"status": {
"abstractGameState": "Live",
"codedGameState": "3",
"detailedState": "In Progress",
"statusCode": "2",
"startTimeTBD": true
},
"teams": {
"away": {
"leagueRecord": {},
"score": 0,
"team": {}
},
"home": {
"leagueRecord": {},
"score": 2,
"team": {}
}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
},
"content": {
"link": "/api/v1/game/2017020851/content"
}
}
],
"events": [
{}
],
"matches": [
{}
]
}
]
},
"shortName": "San Jose",
"officialSiteUrl": "http://www.sjsharks.com",
"franchiseId": 29,
"active": true
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Teams |
404 | Not Found | Error | Error |
getTeam
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/teams/{id} \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/teams/{id} HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/teams/{id}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/teams/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/teams/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/teams/{id}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/teams/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/teams/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /teams/{id}
Get an NHL team.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | number | true | The ID of the team. |
expand | query | string | false | Expand your response for some additional data. |
season | query | number | false | Return a team's specific season. |
Enumerated Values
Parameter | Value |
---|---|
expand | team.roster |
expand | team.schedule.next |
expand | team.schedule.previous |
Example responses
{
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null",
"city": "San Jose",
"timeZone": {
"id": "America/Los_Angeles",
"offset": -8,
"tz": "PST"
}
},
"abbreviation": "SJS",
"triCode": "SJS",
"teamName": "Sharks",
"locationName": "San Jose",
"firstYearOfPlay": 1990,
"division": {
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15"
},
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"franchise": {
"id": 29,
"name": "Sharks",
"link": "/api/v1/franchises/29"
},
"roster": {
"roster": [
{
"person": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138"
},
"jerseyNumber": 19,
"position": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
]
},
"nextGameSchedule": {
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"dates": [
{
"date": "2018-02-10",
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"games": [
{
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"gameType": "R",
"season": "20172018",
"gameDate": "2018-02-11T03:00:00Z",
"status": {
"abstractGameState": "Live",
"codedGameState": "3",
"detailedState": "In Progress",
"statusCode": "2",
"startTimeTBD": true
},
"teams": {
"away": {
"leagueRecord": {
"wins": 23,
"losses": 26,
"ot": 4,
"type": "league"
},
"score": 0,
"team": {
"id": 22,
"name": "Edmonton Oilers",
"link": "/api/v1/teams/22"
}
},
"home": {
"leagueRecord": {
"wins": 28,
"losses": 18,
"ot": 8,
"type": "league"
},
"score": 2,
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
}
}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
},
"content": {
"link": "/api/v1/game/2017020851/content"
}
}
],
"events": [
{}
],
"matches": [
{}
]
}
]
},
"shortName": "San Jose",
"officialSiteUrl": "http://www.sjsharks.com",
"franchiseId": 29,
"active": true
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Team |
404 | Not Found | Error | Error |
getTeamRoster
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/teams/{id}/roster \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/teams/{id}/roster HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/teams/{id}/roster',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/teams/{id}/roster',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/teams/{id}/roster',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/teams/{id}/roster', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/teams/{id}/roster");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/teams/{id}/roster", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /teams/{id}/roster
Get an NHL team's roster.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | number | true | The ID of the team. |
season | query | number | false | Return a team's specific season. |
Example responses
{
"copyright": "string",
"teams": [
{
"person": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138"
},
"jerseyNumber": 19,
"position": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Rosters |
404 | Not Found | Error | Error |
getTeamStats
Code samples
# You can also use wget
curl -X GET https://statsapi.web.nhl.com/api/v1/teams/{id}/stats \
-H 'Accept: application/json'
GET https://statsapi.web.nhl.com/api/v1/teams/{id}/stats HTTP/1.1
Host: statsapi.web.nhl.com
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.ajax({
url: 'https://statsapi.web.nhl.com/api/v1/teams/{id}/stats',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const request = require('node-fetch');
const headers = {
'Accept':'application/json'
};
fetch('https://statsapi.web.nhl.com/api/v1/teams/{id}/stats',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://statsapi.web.nhl.com/api/v1/teams/{id}/stats',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://statsapi.web.nhl.com/api/v1/teams/{id}/stats', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://statsapi.web.nhl.com/api/v1/teams/{id}/stats");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://statsapi.web.nhl.com/api/v1/teams/{id}/stats", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /teams/{id}/stats
Get all statistics for an NHL team.
Parameters
Parameter | In | Type | Required | Description |
---|---|---|---|---|
id | path | number | true | The ID of the team. |
Example responses
{
"copyright": "string",
"stats": [
{
"type": {
"displayName": "statsSingleSeason"
},
"splits": [
{
"stat": {
"gamesPlayed": 55,
"wins": 29,
"losses": 18,
"ot": 8,
"pts": 66,
"ptPctg": "60.0",
"goalsPerGame": 2.891,
"goalsAgainstPerGame": 2.745,
"evGGARatio": 0.8532,
"powerPlayPercentage": "23.9",
"powerPlayGoals": 44,
"powerPlayGoalsAgainst": 26,
"powerPlayOpportunities": 184,
"penaltyKillPercentage": "84.6",
"shotsPerGame": 32.8,
"shotsAllowed": 30.2182,
"winScoreFirst": 0.679,
"winOppScoreFirst": 0.37,
"winLeadFirstPer": 0.85,
"winLeadSecondPer": 0.952,
"winOutshootOpp": 0.467,
"winOutshotByOpp": 0.6,
"faceOffsTaken": 3300,
"faceOffsWon": 1675,
"faceOffsLost": 1625,
"faceOffWinPercentage": "50.8",
"shootingPctg": 8.8,
"savePctg": 0.909
},
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
}
}
]
}
]
}
{
"messageNumber": 10,
"message": "Object not found"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | TeamStats |
404 | Not Found | Error | Error |
Schemas
Conference
{
"id": 5,
"name": "Eastern",
"link": "/api/v1/conferences/5",
"abbreviation": "E",
"shortName": "East",
"active": true
}
Properties
Name | Type | Required | Description |
---|---|---|---|
id | number | false | No description |
name | string | false | No description |
link | string(uri) | false | No description |
abbreviation | string | false | No description |
shortName | string | false | No description |
active | boolean | false | No description |
Enumerated Values
Property | Value |
---|---|
name | Eastern |
name | Western |
name | World Cup of Hockey |
abbreviation | E |
abbreviation | W |
abbreviation | WCH |
shortName | East |
shortName | West |
shortName | WCup |
Conferences
{
"copyright": "string",
"teams": [
{
"id": 5,
"name": "Eastern",
"link": "/api/v1/conferences/5",
"abbreviation": "E",
"shortName": "East",
"active": true
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
copyright | string | false | No description |
teams | [Conference] | false | No description |
Division
{
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15",
"abbreviation": "P",
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"active": true
}
Properties
Name | Type | Required | Description |
---|---|---|---|
id | number | false | No description |
name | string | false | No description |
link | string(uri) | false | No description |
abbreviation | string | false | No description |
conference | object | false | No description |
» id | number | false | No description |
» name | string | false | No description |
» link | string(uri) | false | No description |
active | boolean | false | No description |
Divisions
{
"copyright": "string",
"teams": [
{
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15",
"abbreviation": "P",
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"active": true
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
copyright | string | false | No description |
teams | [Division] | false | No description |
Draft
{
"copyright": "string",
"drafts": [
{
"draftYear": 2017,
"rounds": [
{
"roundNumber": 1,
"round": "1",
"picks": [
{
"year": 2017,
"round": "1",
"pickOverall": 1,
"pickInRound": 1,
"team": {
"id": 1,
"name": "New Jersey Devils",
"link": "/api/v1/teams/1"
},
"prospect": {
"id": 65242,
"fullName": "Nico Hischier",
"link": "/api/v1/draft/prospects/65242"
}
}
]
}
]
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
copyright | string | false | No description |
drafts | [object] | false | No description |
» draftYear | number | false | No description |
» rounds | [object] | false | No description |
»» roundNumber | number | false | No description |
»» round | number | false | No description |
»» picks | [object] | false | No description |
»»» year | number | false | No description |
»»» round | string | false | No description |
»»» pickOverall | number | false | No description |
»»» pickInRound | number | false | No description |
»»» team | object | false | No description |
»»»» id | number | false | No description |
»»»» name | string | false | No description |
»»»» link | string(uri) | false | No description |
»»» prospect | object | false | No description |
»»»» id | number | false | No description |
»»»» fullName | string | false | No description |
»»»» link | string(uri) | false | No description |
DraftProspect
{
"id": 65242,
"fullName": "Nico Hischier",
"link": "/api/v1/draft/prospects/65242",
"firstName": "Nico",
"lastName": "Hischier",
"birthDate": "1999-01-04",
"birthCity": "Naters",
"birthCountry": "CHE",
"nationality": "CHE",
"height": "6' 2\"",
"weight": 179,
"shootsCatches": "L",
"primaryPosition": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
},
"prospectCategory": {
"id": 1,
"shortName": "NA Skater",
"name": "North American Skater"
},
"amateurTeam": {
"link": "/api/v1/teams/null"
},
"amateurLeague": {
"link": "/api/v1/league/null"
},
"ranks": {}
}
Properties
Name | Type | Required | Description |
---|---|---|---|
id | number | false | No description |
fullName | string | false | No description |
link | string(uri) | false | No description |
firstName | string | false | No description |
lastName | string | false | No description |
birthDate | string(date) | false | No description |
birthCity | string | false | No description |
birthCountry | string | false | No description |
nationality | string | false | No description |
height | string | false | No description |
weight | number | false | No description |
shootsCatches | string | false | No description |
primaryPosition | object | false | No description |
» code | string | false | No description |
» name | string | false | No description |
» type | string | false | No description |
» abbreviation | string | false | No description |
prospectCategory | object | false | No description |
» id | number | false | No description |
» shortName | string | false | No description |
» name | string | false | No description |
amateurTeam | object | false | No description |
» link | string(uri) | false | No description |
amateurLeague | object | false | No description |
» link | string(uri) | false | No description |
ranks | object | false | No description |
DraftProspects
{
"copyright": "string",
"prospects": [
{
"id": 65242,
"fullName": "Nico Hischier",
"link": "/api/v1/draft/prospects/65242",
"firstName": "Nico",
"lastName": "Hischier",
"birthDate": "1999-01-04",
"birthCity": "Naters",
"birthCountry": "CHE",
"nationality": "CHE",
"height": "6' 2\"",
"weight": 179,
"shootsCatches": "L",
"primaryPosition": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
},
"prospectCategory": {
"id": 1,
"shortName": "NA Skater",
"name": "North American Skater"
},
"amateurTeam": {
"link": "/api/v1/teams/null"
},
"amateurLeague": {
"link": "/api/v1/league/null"
},
"ranks": {}
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
copyright | string | false | No description |
prospects | [DraftProspect] | false | No description |
Error
{
"messageNumber": 10,
"message": "Object not found"
}
Properties
Name | Type | Required | Description |
---|---|---|---|
messageNumber | number | false | No description |
message | string | false | No description |
Franchise
{
"id": 29,
"name": "Sharks",
"link": "/api/v1/franchises/29"
}
Properties
Name | Type | Required | Description |
---|---|---|---|
id | number | false | No description |
name | string | false | No description |
link | string(uri) | false | No description |
Game
{
"copyright": "string",
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"metaData": {
"wait": 10,
"timeStamp": "20180211_054345"
},
"gameData": {
"game": {
"pk": 2017020851,
"season": "20172018",
"type": "R"
},
"datetime": {
"dateTime": "2018-02-11T03:00:00Z",
"endDateTime": "2018-02-11T05:30:42Z"
},
"status": {
"abstractGameState": "Final",
"codedGameState": "7",
"detailedState": "Final",
"statusCode": "7",
"startTimeTBD": true
},
"teams": {
"away": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null",
"city": "San Jose",
"timeZone": {
"id": "America/Los_Angeles",
"offset": -8,
"tz": "PST"
}
},
"abbreviation": "SJS",
"triCode": "SJS",
"teamName": "Sharks",
"locationName": "San Jose",
"firstYearOfPlay": 1990,
"division": {
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15"
},
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"franchise": {
"id": 29,
"name": "Sharks",
"link": "/api/v1/franchises/29"
},
"roster": {
"roster": [
{
"person": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138"
},
"jerseyNumber": 19,
"position": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
]
},
"nextGameSchedule": {
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"dates": [
{
"date": "2018-02-10",
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"games": [
{
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"gameType": "R",
"season": "20172018",
"gameDate": "2018-02-11T03:00:00Z",
"status": {
"abstractGameState": "Live",
"codedGameState": "3",
"detailedState": "In Progress",
"statusCode": "2",
"startTimeTBD": true
},
"teams": {
"away": {},
"home": {}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
},
"content": {
"link": "/api/v1/game/2017020851/content"
}
}
],
"events": [
{}
],
"matches": [
{}
]
}
]
},
"shortName": "San Jose",
"officialSiteUrl": "http://www.sjsharks.com",
"franchiseId": 29,
"active": true
},
"home": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null",
"city": "San Jose",
"timeZone": {
"id": "America/Los_Angeles",
"offset": -8,
"tz": "PST"
}
},
"abbreviation": "SJS",
"triCode": "SJS",
"teamName": "Sharks",
"locationName": "San Jose",
"firstYearOfPlay": 1990,
"division": {
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15"
},
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"franchise": {
"id": 29,
"name": "Sharks",
"link": "/api/v1/franchises/29"
},
"roster": {
"roster": [
{
"person": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138"
},
"jerseyNumber": 19,
"position": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
]
},
"nextGameSchedule": {
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"dates": [
{
"date": "2018-02-10",
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"games": [
{
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"gameType": "R",
"season": "20172018",
"gameDate": "2018-02-11T03:00:00Z",
"status": {
"abstractGameState": "Live",
"codedGameState": "3",
"detailedState": "In Progress",
"statusCode": "2",
"startTimeTBD": true
},
"teams": {
"away": {},
"home": {}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
},
"content": {
"link": "/api/v1/game/2017020851/content"
}
}
],
"events": [
{}
],
"matches": [
{}
]
}
]
},
"shortName": "San Jose",
"officialSiteUrl": "http://www.sjsharks.com",
"franchiseId": 29,
"active": true
}
},
"players": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138",
"firstName": "Joe",
"lastName": "Thornton",
"primaryNumber": "19",
"birthDate": "1979-07-02",
"currentAge": 38,
"birthCity": "London",
"birthStateProvince": "ON",
"birthCountry": "CAN",
"nationality": "CAN",
"height": "6' 4\"",
"weight": 220,
"active": true,
"alternateCaptain": true,
"captain": true,
"rookie": true,
"shootsCatches": "L",
"rosterStatus": "I",
"currentTeam": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
},
"primaryPosition": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
}
},
"liveData": {
"plays": {
"allPlays": [
{
"players": [
{
"player": {
"id": 8476881,
"fullName": "Tomas Hertl",
"link": "/api/v1/people/8476881"
},
"playerType": "Winner"
}
],
"result": {
"event": "Game End",
"eventCode": "SJS505",
"eventTypeId": "GAME_END",
"description": "Game End"
},
"about": {
"eventIdx": 315,
"eventId": 505,
"period": 3,
"periodType": "REGULAR",
"ordinalNum": "3rd",
"periodTime": "20:00",
"periodTimeRemaining": "00:00",
"dateTime": "2018-02-11T05:30:42Z",
"goals": {
"away": 4,
"home": 6
}
},
"coordinates": {
"x": 0,
"y": 0
},
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"triCode": "SJS"
}
}
],
"scoringPlays": [
0
],
"penaltyPlays": [
0
],
"playsByPeriod": [
{
"startIndex": 0,
"plays": [
0
],
"endIndex": 114
}
],
"currentPlay": {
"players": [
{
"player": {
"id": 8476881,
"fullName": "Tomas Hertl",
"link": "/api/v1/people/8476881"
},
"playerType": "Winner"
}
],
"result": {
"event": "Game End",
"eventCode": "SJS505",
"eventTypeId": "GAME_END",
"description": "Game End"
},
"about": {
"eventIdx": 315,
"eventId": 505,
"period": 3,
"periodType": "REGULAR",
"ordinalNum": "3rd",
"periodTime": "20:00",
"periodTimeRemaining": "00:00",
"dateTime": "2018-02-11T05:30:42Z",
"goals": {
"away": 4,
"home": 6
}
},
"coordinates": {
"x": 0,
"y": 0
},
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"triCode": "SJS"
}
}
},
"linescore": {
"currentPeriod": 3,
"currentPeriodOrdinal": "3rd",
"currentPeriodTimeRemaining": "Final",
"periods": [
{
"periodType": "REGULAR",
"startTime": "2018-02-11T03:09:50Z",
"endTime": "2018-02-11T03:44:47Z",
"num": 1,
"ordinalNum": "1st",
"home": {
"goals": 2,
"shotsOnGoal": 14,
"rinkSide": "left"
},
"away": {
"goals": 0,
"shotsOnGoal": 9,
"rinkSide": "right"
}
}
],
"shootoutInfo": {
"away": {
"scores": 0,
"attempts": 0
},
"home": {
"scores": 0,
"attempts": 0
}
},
"teams": {
"home": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
},
"away": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
}
},
"powerPlayStrength": "Even",
"hasShootout": true,
"intermissionInfo": {
"intermissionTimeRemaining": 0,
"intermissionTimeElapsed": 0,
"inIntermission": true
},
"powerPlayInfo": {
"situationTimeRemaining": 0,
"situationTimeElapsed": 72,
"inSituation": true
}
},
"boxscore": {
"teams": {
"away": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"teamStats": {
"teamSkaterStats": {
"goals": 6,
"pim": 6,
"shots": 30,
"powerPlayPercentage": "0.0",
"powerPlayGoals": 0,
"powerPlayOpportunities": 1,
"faceOffWinPercentage": "59.3",
"blocked": 21,
"takeaways": 9,
"giveaways": 6,
"hits": 15
}
},
"players": {
"person": {
"id": 8471709,
"fullName": "Marc-Edouard Vlasic",
"link": "/api/v1/people/8471709",
"shootsCatches": "L",
"rosterStatus": "Y"
},
"jerseyNumber": "44",
"position": {
"code": "D",
"name": "Defenseman",
"type": "Defenseman",
"abbreviation": "D"
},
"stats": {
"skaterStats": {
"timeOnIce": "23:04",
"assists": 0,
"goals": 0,
"shots": 2,
"hits": 0,
"powerPlayGoals": 0,
"powerPlayAssists": 0,
"penaltyMinutes": 0,
"faceOffWins": 0,
"faceoffTaken": 0,
"takeaways": 0,
"giveaways": 1,
"shortHandedGoals": 0,
"shortHandedAssists": 0,
"blocked": 0,
"plusMinus": 1,
"evenTimeOnIce": "18:12",
"powerPlayTimeOnIce": "1:07",
"shortHandedTimeOnIce": "3:45"
}
}
},
"goalies": [
0
],
"skaters": [
0
],
"onIce": [
0
],
"onIcePlus": [
{
"playerId": 8477180,
"shiftDuration": 458,
"stamina": 33
}
],
"scratches": [
0
],
"penaltyBox": [
0
],
"coaches": [
{
"person": {
"fullName": "Peter DeBoer",
"link": "/api/v1/people/null"
},
"position": {
"code": "HC",
"name": "Head Coach",
"type": "Head Coach",
"abbreviation": "Head Coach"
}
}
]
},
"home": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"teamStats": {
"teamSkaterStats": {
"goals": 6,
"pim": 6,
"shots": 30,
"powerPlayPercentage": "0.0",
"powerPlayGoals": 0,
"powerPlayOpportunities": 1,
"faceOffWinPercentage": "59.3",
"blocked": 21,
"takeaways": 9,
"giveaways": 6,
"hits": 15
}
},
"players": {
"person": {
"id": 8471709,
"fullName": "Marc-Edouard Vlasic",
"link": "/api/v1/people/8471709",
"shootsCatches": "L",
"rosterStatus": "Y"
},
"jerseyNumber": "44",
"position": {
"code": "D",
"name": "Defenseman",
"type": "Defenseman",
"abbreviation": "D"
},
"stats": {
"skaterStats": {
"timeOnIce": "23:04",
"assists": 0,
"goals": 0,
"shots": 2,
"hits": 0,
"powerPlayGoals": 0,
"powerPlayAssists": 0,
"penaltyMinutes": 0,
"faceOffWins": 0,
"faceoffTaken": 0,
"takeaways": 0,
"giveaways": 1,
"shortHandedGoals": 0,
"shortHandedAssists": 0,
"blocked": 0,
"plusMinus": 1,
"evenTimeOnIce": "18:12",
"powerPlayTimeOnIce": "1:07",
"shortHandedTimeOnIce": "3:45"
}
}
},
"goalies": [
0
],
"skaters": [
0
],
"onIce": [
0
],
"onIcePlus": [
{
"playerId": 8477180,
"shiftDuration": 458,
"stamina": 33
}
],
"scratches": [
0
],
"penaltyBox": [
0
],
"coaches": [
{
"person": {
"fullName": "Peter DeBoer",
"link": "/api/v1/people/null"
},
"position": {
"code": "HC",
"name": "Head Coach",
"type": "Head Coach",
"abbreviation": "Head Coach"
}
}
]
}
},
"officials": [
{
"official": {
"id": 2071,
"fullName": "Tim Peel",
"link": "/api/v1/people/2071"
},
"officialType": "Linesman"
}
]
},
"decisions": {
"winner": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
},
"loser": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
},
"firstStar": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
},
"secondStar": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
},
"thirdStar": {
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
}
}
}
}
Properties
Name | Type | Required | Description |
---|---|---|---|
copyright | string | false | No description |
gamePk | number | false | No description |
link | string(uri) | false | No description |
metaData | object | false | No description |
» wait | number | false | No description |
» timeStamp | string | false | No description |
gameData | object | false | No description |
» game | object | false | No description |
»» pk | number | false | No description |
»» season | string | false | No description |
»» type | string | false | No description |
» datetime | object | false | No description |
»» dateTime | string(date-time) | false | No description |
»» endDateTime | string(date-time) | false | No description |
» status | object | false | No description |
»» abstractGameState | string | false | No description |
»» codedGameState | string | false | No description |
»» detailedState | string | false | No description |
»» statusCode | string | false | No description |
»» startTimeTBD | boolean | false | No description |
» teams | object | false | No description |
»» away | Team | false | No description |
»» home | Team | false | No description |
» players | Player | false | No description |
» venue | object | false | No description |
»» name | string | false | No description |
»» link | string(uri) | false | No description |
» liveData | object | false | No description |
»» plays | object | false | No description |
»»» allPlays | [GamePlay] | false | No description |
»»» scoringPlays | [number] | false | No description |
»»» penaltyPlays | [number] | false | No description |
»»» playsByPeriod | [object] | false | No description |
»»»» startIndex | number | false | No description |
»»»» plays | [number] | false | No description |
»»»» endIndex | number | false | No description |
»»» currentPlay | GamePlay | false | No description |
»» linescore | GameLinescore | false | No description |
»» boxscore | GameBoxscore | false | No description |
»» decisions | object | false | No description |
»»» winner | GameDecisionPlayer | false | No description |
»»» loser | GameDecisionPlayer | false | No description |
»»» firstStar | GameDecisionPlayer | false | No description |
»»» secondStar | GameDecisionPlayer | false | No description |
»»» thirdStar | GameDecisionPlayer | false | No description |
GameBoxscore
{
"teams": {
"away": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"teamStats": {
"teamSkaterStats": {
"goals": 6,
"pim": 6,
"shots": 30,
"powerPlayPercentage": "0.0",
"powerPlayGoals": 0,
"powerPlayOpportunities": 1,
"faceOffWinPercentage": "59.3",
"blocked": 21,
"takeaways": 9,
"giveaways": 6,
"hits": 15
}
},
"players": {
"person": {
"id": 8471709,
"fullName": "Marc-Edouard Vlasic",
"link": "/api/v1/people/8471709",
"shootsCatches": "L",
"rosterStatus": "Y"
},
"jerseyNumber": "44",
"position": {
"code": "D",
"name": "Defenseman",
"type": "Defenseman",
"abbreviation": "D"
},
"stats": {
"skaterStats": {
"timeOnIce": "23:04",
"assists": 0,
"goals": 0,
"shots": 2,
"hits": 0,
"powerPlayGoals": 0,
"powerPlayAssists": 0,
"penaltyMinutes": 0,
"faceOffWins": 0,
"faceoffTaken": 0,
"takeaways": 0,
"giveaways": 1,
"shortHandedGoals": 0,
"shortHandedAssists": 0,
"blocked": 0,
"plusMinus": 1,
"evenTimeOnIce": "18:12",
"powerPlayTimeOnIce": "1:07",
"shortHandedTimeOnIce": "3:45"
}
}
},
"goalies": [
0
],
"skaters": [
0
],
"onIce": [
0
],
"onIcePlus": [
{
"playerId": 8477180,
"shiftDuration": 458,
"stamina": 33
}
],
"scratches": [
0
],
"penaltyBox": [
0
],
"coaches": [
{
"person": {
"fullName": "Peter DeBoer",
"link": "/api/v1/people/null"
},
"position": {
"code": "HC",
"name": "Head Coach",
"type": "Head Coach",
"abbreviation": "Head Coach"
}
}
]
},
"home": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"teamStats": {
"teamSkaterStats": {
"goals": 6,
"pim": 6,
"shots": 30,
"powerPlayPercentage": "0.0",
"powerPlayGoals": 0,
"powerPlayOpportunities": 1,
"faceOffWinPercentage": "59.3",
"blocked": 21,
"takeaways": 9,
"giveaways": 6,
"hits": 15
}
},
"players": {
"person": {
"id": 8471709,
"fullName": "Marc-Edouard Vlasic",
"link": "/api/v1/people/8471709",
"shootsCatches": "L",
"rosterStatus": "Y"
},
"jerseyNumber": "44",
"position": {
"code": "D",
"name": "Defenseman",
"type": "Defenseman",
"abbreviation": "D"
},
"stats": {
"skaterStats": {
"timeOnIce": "23:04",
"assists": 0,
"goals": 0,
"shots": 2,
"hits": 0,
"powerPlayGoals": 0,
"powerPlayAssists": 0,
"penaltyMinutes": 0,
"faceOffWins": 0,
"faceoffTaken": 0,
"takeaways": 0,
"giveaways": 1,
"shortHandedGoals": 0,
"shortHandedAssists": 0,
"blocked": 0,
"plusMinus": 1,
"evenTimeOnIce": "18:12",
"powerPlayTimeOnIce": "1:07",
"shortHandedTimeOnIce": "3:45"
}
}
},
"goalies": [
0
],
"skaters": [
0
],
"onIce": [
0
],
"onIcePlus": [
{
"playerId": 8477180,
"shiftDuration": 458,
"stamina": 33
}
],
"scratches": [
0
],
"penaltyBox": [
0
],
"coaches": [
{
"person": {
"fullName": "Peter DeBoer",
"link": "/api/v1/people/null"
},
"position": {
"code": "HC",
"name": "Head Coach",
"type": "Head Coach",
"abbreviation": "Head Coach"
}
}
]
}
},
"officials": [
{
"official": {
"id": 2071,
"fullName": "Tim Peel",
"link": "/api/v1/people/2071"
},
"officialType": "Linesman"
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
teams | object | false | No description |
» away | GameBoxscoreTeam | false | No description |
» home | GameBoxscoreTeam | false | No description |
officials | [GameOfficial] | false | No description |
GameBoxscores
{
"copyright": "string",
"teams": {
"away": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"teamStats": {
"teamSkaterStats": {
"goals": 6,
"pim": 6,
"shots": 30,
"powerPlayPercentage": "0.0",
"powerPlayGoals": 0,
"powerPlayOpportunities": 1,
"faceOffWinPercentage": "59.3",
"blocked": 21,
"takeaways": 9,
"giveaways": 6,
"hits": 15
}
},
"players": {
"person": {
"id": 8471709,
"fullName": "Marc-Edouard Vlasic",
"link": "/api/v1/people/8471709",
"shootsCatches": "L",
"rosterStatus": "Y"
},
"jerseyNumber": "44",
"position": {
"code": "D",
"name": "Defenseman",
"type": "Defenseman",
"abbreviation": "D"
},
"stats": {
"skaterStats": {
"timeOnIce": "23:04",
"assists": 0,
"goals": 0,
"shots": 2,
"hits": 0,
"powerPlayGoals": 0,
"powerPlayAssists": 0,
"penaltyMinutes": 0,
"faceOffWins": 0,
"faceoffTaken": 0,
"takeaways": 0,
"giveaways": 1,
"shortHandedGoals": 0,
"shortHandedAssists": 0,
"blocked": 0,
"plusMinus": 1,
"evenTimeOnIce": "18:12",
"powerPlayTimeOnIce": "1:07",
"shortHandedTimeOnIce": "3:45"
}
}
},
"goalies": [
0
],
"skaters": [
0
],
"onIce": [
0
],
"onIcePlus": [
{
"playerId": 8477180,
"shiftDuration": 458,
"stamina": 33
}
],
"scratches": [
0
],
"penaltyBox": [
0
],
"coaches": [
{
"person": {
"fullName": "Peter DeBoer",
"link": "/api/v1/people/null"
},
"position": {
"code": "HC",
"name": "Head Coach",
"type": "Head Coach",
"abbreviation": "Head Coach"
}
}
]
},
"home": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"teamStats": {
"teamSkaterStats": {
"goals": 6,
"pim": 6,
"shots": 30,
"powerPlayPercentage": "0.0",
"powerPlayGoals": 0,
"powerPlayOpportunities": 1,
"faceOffWinPercentage": "59.3",
"blocked": 21,
"takeaways": 9,
"giveaways": 6,
"hits": 15
}
},
"players": {
"person": {
"id": 8471709,
"fullName": "Marc-Edouard Vlasic",
"link": "/api/v1/people/8471709",
"shootsCatches": "L",
"rosterStatus": "Y"
},
"jerseyNumber": "44",
"position": {
"code": "D",
"name": "Defenseman",
"type": "Defenseman",
"abbreviation": "D"
},
"stats": {
"skaterStats": {
"timeOnIce": "23:04",
"assists": 0,
"goals": 0,
"shots": 2,
"hits": 0,
"powerPlayGoals": 0,
"powerPlayAssists": 0,
"penaltyMinutes": 0,
"faceOffWins": 0,
"faceoffTaken": 0,
"takeaways": 0,
"giveaways": 1,
"shortHandedGoals": 0,
"shortHandedAssists": 0,
"blocked": 0,
"plusMinus": 1,
"evenTimeOnIce": "18:12",
"powerPlayTimeOnIce": "1:07",
"shortHandedTimeOnIce": "3:45"
}
}
},
"goalies": [
0
],
"skaters": [
0
],
"onIce": [
0
],
"onIcePlus": [
{
"playerId": 8477180,
"shiftDuration": 458,
"stamina": 33
}
],
"scratches": [
0
],
"penaltyBox": [
0
],
"coaches": [
{
"person": {
"fullName": "Peter DeBoer",
"link": "/api/v1/people/null"
},
"position": {
"code": "HC",
"name": "Head Coach",
"type": "Head Coach",
"abbreviation": "Head Coach"
}
}
]
}
},
"officials": [
{
"official": {
"id": 2071,
"fullName": "Tim Peel",
"link": "/api/v1/people/2071"
},
"officialType": "Linesman"
}
]
}
Properties
allOf
Name | Type | Required | Description |
---|---|---|---|
anonymous | object | false | No description |
» copyright | string | false | No description |
and
Name | Type | Required | Description |
---|---|---|---|
anonymous | GameBoxscore | false | No description |
GameBoxscoreTeam
{
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"teamStats": {
"teamSkaterStats": {
"goals": 6,
"pim": 6,
"shots": 30,
"powerPlayPercentage": "0.0",
"powerPlayGoals": 0,
"powerPlayOpportunities": 1,
"faceOffWinPercentage": "59.3",
"blocked": 21,
"takeaways": 9,
"giveaways": 6,
"hits": 15
}
},
"players": {
"person": {
"id": 8471709,
"fullName": "Marc-Edouard Vlasic",
"link": "/api/v1/people/8471709",
"shootsCatches": "L",
"rosterStatus": "Y"
},
"jerseyNumber": "44",
"position": {
"code": "D",
"name": "Defenseman",
"type": "Defenseman",
"abbreviation": "D"
},
"stats": {
"skaterStats": {
"timeOnIce": "23:04",
"assists": 0,
"goals": 0,
"shots": 2,
"hits": 0,
"powerPlayGoals": 0,
"powerPlayAssists": 0,
"penaltyMinutes": 0,
"faceOffWins": 0,
"faceoffTaken": 0,
"takeaways": 0,
"giveaways": 1,
"shortHandedGoals": 0,
"shortHandedAssists": 0,
"blocked": 0,
"plusMinus": 1,
"evenTimeOnIce": "18:12",
"powerPlayTimeOnIce": "1:07",
"shortHandedTimeOnIce": "3:45"
}
}
},
"goalies": [
0
],
"skaters": [
0
],
"onIce": [
0
],
"onIcePlus": [
{
"playerId": 8477180,
"shiftDuration": 458,
"stamina": 33
}
],
"scratches": [
0
],
"penaltyBox": [
0
],
"coaches": [
{
"person": {
"fullName": "Peter DeBoer",
"link": "/api/v1/people/null"
},
"position": {
"code": "HC",
"name": "Head Coach",
"type": "Head Coach",
"abbreviation": "Head Coach"
}
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
team | object | false | No description |
» id | number | false | No description |
» name | string | false | No description |
» link | string(uri) | false | No description |
» abbreviation | string | false | No description |
» triCode | string | false | No description |
teamStats | object | false | No description |
» teamSkaterStats | object | false | No description |
»» goals | number | false | No description |
»» pim | number | false | No description |
»» shots | number | false | No description |
»» powerPlayPercentage | string | false | No description |
»» powerPlayGoals | number | false | No description |
»» powerPlayOpportunities | number | false | No description |
»» faceOffWinPercentage | string | false | No description |
»» blocked | number | false | No description |
»» takeaways | number | false | No description |
»» giveaways | number | false | No description |
»» hits | number | false | No description |
» players | object | false | No description |
»» person | object | false | No description |
»»» id | number | false | No description |
»»» fullName | string | false | No description |
»»» link | string(uri) | false | No description |
»»» shootsCatches | string | false | No description |
»»» rosterStatus | string | false | No description |
»» jerseyNumber | string | false | No description |
»» position | object | false | No description |
»»» code | string | false | No description |
»»» name | string | false | No description |
»»» type | string | false | No description |
»»» abbreviation | string | false | No description |
»» stats | object | false | No description |
»»» skaterStats | object | false | No description |
»»»» timeOnIce | string | false | No description |
»»»» assists | number | false | No description |
»»»» goals | number | false | No description |
»»»» shots | number | false | No description |
»»»» hits | number | false | No description |
»»»» powerPlayGoals | number | false | No description |
»»»» powerPlayAssists | number | false | No description |
»»»» penaltyMinutes | number | false | No description |
»»»» faceOffWins | number | false | No description |
»»»» faceoffTaken | number | false | No description |
»»»» takeaways | number | false | No description |
»»»» giveaways | number | false | No description |
»»»» shortHandedGoals | number | false | No description |
»»»» shortHandedAssists | number | false | No description |
»»»» blocked | number | false | No description |
»»»» plusMinus | number | false | No description |
»»»» evenTimeOnIce | string | false | No description |
»»»» powerPlayTimeOnIce | string | false | No description |
»»»» shortHandedTimeOnIce | string | false | No description |
»»» goalies | [number] | false | No description |
»»» skaters | [number] | false | No description |
»»» onIce | [number] | false | No description |
»»» onIcePlus | [object] | false | No description |
»»»» playerId | number | false | No description |
»»»» shiftDuration | number | false | No description |
»»»» stamina | number | false | No description |
»»» scratches | [number] | false | No description |
»»» penaltyBox | [number] | false | No description |
»»» coaches | [object] | false | No description |
»»»» person | object | false | No description |
»»»»» fullName | string | false | No description |
»»»»» link | string(uri) | false | No description |
»»»» position | object | false | No description |
»»»»» code | string | false | No description |
»»»»» name | string | false | No description |
»»»»» type | string | false | No description |
»»»»» abbreviation | string | false | No description |
GameContent
{
"copyright": "string",
"link": "/api/v1/game/2017020851/content",
"editorial": {
"preview": {
"title": "Preview",
"topicList": "string",
"items": [
{
"type": "article",
"state": "A",
"date": "2018-02-10T16:57:06-0500",
"id": "295823824",
"headline": "Oilers at Sharks preview",
"subhead": "Backups Montoya, Dell to start for Edmonton, San Jose",
"seoTitle": "Edmonton Oilers San Jose Sharks game preview",
"seoDescription": "Backup goaltender Aaron Dell will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.",
"seoKeywords": "Game preview, Edmonton Oilers, San Jose Sharks, Aaron Dell, Al Montoya, Feb 10",
"slug": "edmonton-oilers-san-jose-sharks-game-preview",
"commenting": true,
"tagline": "string",
"tokenData": {
"tokenGUID": "token-EBDA2F0039BF4445D2C91",
"type": "hyperLink",
"id": "8471709",
"teamId": "28",
"name": "Marc-Edouard Vlasic",
"seoName": "marc-edouard-vlasic",
"href": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018",
"hrefMobile": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018"
},
"contributor": {
"contributors": [
{
"name": "Eric Gilmore",
"twitter": "string"
}
],
"source": "NHL.com Correspondent"
},
"keywordsDisplay": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"keywordsAll": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"approval": "string",
"url": "/news/edmonton-oilers-san-jose-sharks-game-preview/c-295823824?game_pk=2017020851",
"dataURI": "/nhl/id/v1/295823824/details/web-v1.json",
"primaryKeyword": {
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
},
"media": {
"type": "photo",
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
}
},
"preview": "<p><b>OILERS (23-26-4) at SHARKS (28-18-8)</b></p><p><b>10 p.m. ET; NBCSCA, CITY, SN360, SN, NHL.TV</b></p><p> </p><h5><b>The Game</b></h5><p>Backup goaltender <span class=\"token token-playerCard\" id=\"token-B36CCB71E81996298E792\">Aaron Dell</span> will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.</p>"
}
]
},
"articles": {
"title": "Preview",
"topicList": "string",
"items": [
{
"type": "article",
"state": "A",
"date": "2018-02-10T16:57:06-0500",
"id": "295823824",
"headline": "Oilers at Sharks preview",
"subhead": "Backups Montoya, Dell to start for Edmonton, San Jose",
"seoTitle": "Edmonton Oilers San Jose Sharks game preview",
"seoDescription": "Backup goaltender Aaron Dell will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.",
"seoKeywords": "Game preview, Edmonton Oilers, San Jose Sharks, Aaron Dell, Al Montoya, Feb 10",
"slug": "edmonton-oilers-san-jose-sharks-game-preview",
"commenting": true,
"tagline": "string",
"tokenData": {
"tokenGUID": "token-EBDA2F0039BF4445D2C91",
"type": "hyperLink",
"id": "8471709",
"teamId": "28",
"name": "Marc-Edouard Vlasic",
"seoName": "marc-edouard-vlasic",
"href": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018",
"hrefMobile": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018"
},
"contributor": {
"contributors": [
{
"name": "Eric Gilmore",
"twitter": "string"
}
],
"source": "NHL.com Correspondent"
},
"keywordsDisplay": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"keywordsAll": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"approval": "string",
"url": "/news/edmonton-oilers-san-jose-sharks-game-preview/c-295823824?game_pk=2017020851",
"dataURI": "/nhl/id/v1/295823824/details/web-v1.json",
"primaryKeyword": {
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
},
"media": {
"type": "photo",
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
}
},
"preview": "<p><b>OILERS (23-26-4) at SHARKS (28-18-8)</b></p><p><b>10 p.m. ET; NBCSCA, CITY, SN360, SN, NHL.TV</b></p><p> </p><h5><b>The Game</b></h5><p>Backup goaltender <span class=\"token token-playerCard\" id=\"token-B36CCB71E81996298E792\">Aaron Dell</span> will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.</p>"
}
]
},
"recap": {
"title": "Preview",
"topicList": "string",
"items": [
{
"type": "article",
"state": "A",
"date": "2018-02-10T16:57:06-0500",
"id": "295823824",
"headline": "Oilers at Sharks preview",
"subhead": "Backups Montoya, Dell to start for Edmonton, San Jose",
"seoTitle": "Edmonton Oilers San Jose Sharks game preview",
"seoDescription": "Backup goaltender Aaron Dell will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.",
"seoKeywords": "Game preview, Edmonton Oilers, San Jose Sharks, Aaron Dell, Al Montoya, Feb 10",
"slug": "edmonton-oilers-san-jose-sharks-game-preview",
"commenting": true,
"tagline": "string",
"tokenData": {
"tokenGUID": "token-EBDA2F0039BF4445D2C91",
"type": "hyperLink",
"id": "8471709",
"teamId": "28",
"name": "Marc-Edouard Vlasic",
"seoName": "marc-edouard-vlasic",
"href": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018",
"hrefMobile": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018"
},
"contributor": {
"contributors": [
{
"name": "Eric Gilmore",
"twitter": "string"
}
],
"source": "NHL.com Correspondent"
},
"keywordsDisplay": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"keywordsAll": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"approval": "string",
"url": "/news/edmonton-oilers-san-jose-sharks-game-preview/c-295823824?game_pk=2017020851",
"dataURI": "/nhl/id/v1/295823824/details/web-v1.json",
"primaryKeyword": {
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
},
"media": {
"type": "photo",
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
}
},
"preview": "<p><b>OILERS (23-26-4) at SHARKS (28-18-8)</b></p><p><b>10 p.m. ET; NBCSCA, CITY, SN360, SN, NHL.TV</b></p><p> </p><h5><b>The Game</b></h5><p>Backup goaltender <span class=\"token token-playerCard\" id=\"token-B36CCB71E81996298E792\">Aaron Dell</span> will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.</p>"
}
]
}
},
"media": {
"epg": [
{
"title": "NHLTV",
"platform": "web",
"items": [
{
"guid": "dbb39fa8-6679-4b22-a8c5-71eb5e39b462",
"mediaState": "MEDIA_ARCHIVE",
"mediaPlaybackId": "57463703",
"mediaFeedType": "HOME",
"callLetters": "NBCS-CA",
"eventId": "221-1007449",
"language": "eng",
"freeGame": true,
"feedName": "string",
"gamePlus": true
}
]
}
],
"milestones": {
"title": "Milestones",
"streamStart": "2018-02-11T03:04:32+0000",
"items": [
{
"title": "Broadcast Start",
"description": "Broadcast Start",
"type": "BROADCAST_START",
"timeAbsolute": "2018-02-11T03:04:36+0000",
"timeOffset": "4",
"period": "1",
"statsEventId": "10",
"teamId": "28",
"playerId": "8477046",
"periodTime": "01:15",
"ordinalNum": "1st",
"highlight": {
"type": "video",
"id": "57602103",
"date": "2018-02-10T22:00:00-0500",
"title": "Goodrow buries Hansen's pass",
"blurb": "EDM@SJS: Goodrow snaps Hansen's pass by Montoya",
"description": "Barclay Goodrow takes a drop pass from Jannik Hansen and whips a quick wrist shot past Al Montoya to give the Sharks a 3-0 lead in the 2nd",
"duration": "00:51",
"authFlow": true,
"mediaPlaybackId": "57602103",
"mediaState": "MEDIA_ARCHIVE",
"keywords": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
},
"playbacks": [
{
"name": "FLASH_192K_320X180",
"width": "960",
"height": "540",
"url": "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4"
}
]
}
}
]
}
},
"highlights": {
"scoreboard": {
"scoreboard": {
"title": "Highlights",
"topicList": "293642378",
"items": [
{
"type": "video",
"id": "57602103",
"date": "2018-02-10T22:00:00-0500",
"title": "Goodrow buries Hansen's pass",
"blurb": "EDM@SJS: Goodrow snaps Hansen's pass by Montoya",
"description": "Barclay Goodrow takes a drop pass from Jannik Hansen and whips a quick wrist shot past Al Montoya to give the Sharks a 3-0 lead in the 2nd",
"duration": "00:51",
"authFlow": true,
"mediaPlaybackId": "57602103",
"mediaState": "MEDIA_ARCHIVE",
"keywords": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
},
"playbacks": [
{
"name": "FLASH_192K_320X180",
"width": "960",
"height": "540",
"url": "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4"
}
]
}
]
},
"gameCenter": {
"title": "Highlights",
"topicList": "293642378",
"items": [
{
"type": "video",
"id": "57602103",
"date": "2018-02-10T22:00:00-0500",
"title": "Goodrow buries Hansen's pass",
"blurb": "EDM@SJS: Goodrow snaps Hansen's pass by Montoya",
"description": "Barclay Goodrow takes a drop pass from Jannik Hansen and whips a quick wrist shot past Al Montoya to give the Sharks a 3-0 lead in the 2nd",
"duration": "00:51",
"authFlow": true,
"mediaPlaybackId": "57602103",
"mediaState": "MEDIA_ARCHIVE",
"keywords": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
},
"playbacks": [
{
"name": "FLASH_192K_320X180",
"width": "960",
"height": "540",
"url": "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4"
}
]
}
]
}
},
"gameCenter": {
"scoreboard": {
"title": "Highlights",
"topicList": "293642378",
"items": [
{
"type": "video",
"id": "57602103",
"date": "2018-02-10T22:00:00-0500",
"title": "Goodrow buries Hansen's pass",
"blurb": "EDM@SJS: Goodrow snaps Hansen's pass by Montoya",
"description": "Barclay Goodrow takes a drop pass from Jannik Hansen and whips a quick wrist shot past Al Montoya to give the Sharks a 3-0 lead in the 2nd",
"duration": "00:51",
"authFlow": true,
"mediaPlaybackId": "57602103",
"mediaState": "MEDIA_ARCHIVE",
"keywords": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
},
"playbacks": [
{
"name": "FLASH_192K_320X180",
"width": "960",
"height": "540",
"url": "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4"
}
]
}
]
},
"gameCenter": {
"title": "Highlights",
"topicList": "293642378",
"items": [
{
"type": "video",
"id": "57602103",
"date": "2018-02-10T22:00:00-0500",
"title": "Goodrow buries Hansen's pass",
"blurb": "EDM@SJS: Goodrow snaps Hansen's pass by Montoya",
"description": "Barclay Goodrow takes a drop pass from Jannik Hansen and whips a quick wrist shot past Al Montoya to give the Sharks a 3-0 lead in the 2nd",
"duration": "00:51",
"authFlow": true,
"mediaPlaybackId": "57602103",
"mediaState": "MEDIA_ARCHIVE",
"keywords": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
},
"playbacks": [
{
"name": "FLASH_192K_320X180",
"width": "960",
"height": "540",
"url": "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4"
}
]
}
]
}
}
}
}
Properties
Name | Type | Required | Description |
---|---|---|---|
copyright | string | false | No description |
link | string(uri) | false | No description |
editorial | object | false | No description |
» preview | GameEditorials | false | No description |
» articles | GameEditorials | false | No description |
» recap | GameEditorials | false | No description |
media | object | false | No description |
» epg | [anyOf] | false | No description |
anyOf
Name | Type | Required | Description |
---|---|---|---|
»» anonymous | GameMediaNHLTV | false | No description |
or
Name | Type | Required | Description |
---|---|---|---|
»» anonymous | GameMediaAudio | false | No description |
or
Name | Type | Required | Description |
---|---|---|---|
»» anonymous | GameHighlightType | false | No description |
continued
Name | Type | Required | Description |
---|---|---|---|
» milestones | object | false | No description |
»» title | string | false | No description |
»» streamStart | string(date-time) | false | No description |
»» items | [object] | false | No description |
»»» title | string | false | No description |
»»» description | string | false | No description |
»»» type | string | false | No description |
»»» timeAbsolute | string(date-time) | false | No description |
»»» timeOffset | string | false | No description |
»»» period | string | false | No description |
»»» statsEventId | string | false | No description |
»»» teamId | string | false | No description |
»»» playerId | string | false | No description |
»»» periodTime | string | false | No description |
»»» ordinalNum | string | false | No description |
»»» highlight | GameHighlight | false | No description |
»» highlights | object | false | No description |
»»» scoreboard | GameHighlights | false | No description |
»»» gameCenter | GameHighlights | false | No description |
Enumerated Values
Property | Value |
---|---|
title | Milestones |
type | BROADCAST_START |
type | BROADCAST_END |
type | GOAL |
type | PERIOD_END |
type | PERIOD_START |
type | SHOT |
GameEditorial
{
"type": "article",
"state": "A",
"date": "2018-02-10T16:57:06-0500",
"id": "295823824",
"headline": "Oilers at Sharks preview",
"subhead": "Backups Montoya, Dell to start for Edmonton, San Jose",
"seoTitle": "Edmonton Oilers San Jose Sharks game preview",
"seoDescription": "Backup goaltender Aaron Dell will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.",
"seoKeywords": "Game preview, Edmonton Oilers, San Jose Sharks, Aaron Dell, Al Montoya, Feb 10",
"slug": "edmonton-oilers-san-jose-sharks-game-preview",
"commenting": true,
"tagline": "string",
"tokenData": {
"tokenGUID": "token-EBDA2F0039BF4445D2C91",
"type": "hyperLink",
"id": "8471709",
"teamId": "28",
"name": "Marc-Edouard Vlasic",
"seoName": "marc-edouard-vlasic",
"href": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018",
"hrefMobile": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018"
},
"contributor": {
"contributors": [
{
"name": "Eric Gilmore",
"twitter": "string"
}
],
"source": "NHL.com Correspondent"
},
"keywordsDisplay": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"keywordsAll": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"approval": "string",
"url": "/news/edmonton-oilers-san-jose-sharks-game-preview/c-295823824?game_pk=2017020851",
"dataURI": "/nhl/id/v1/295823824/details/web-v1.json",
"primaryKeyword": {
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
},
"media": {
"type": "photo",
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
}
},
"preview": "<p><b>OILERS (23-26-4) at SHARKS (28-18-8)</b></p><p><b>10 p.m. ET; NBCSCA, CITY, SN360, SN, NHL.TV</b></p><p> </p><h5><b>The Game</b></h5><p>Backup goaltender <span class=\"token token-playerCard\" id=\"token-B36CCB71E81996298E792\">Aaron Dell</span> will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.</p>"
}
Properties
Name | Type | Required | Description |
---|---|---|---|
type | string | false | No description |
state | string | false | No description |
date | string(date-time) | false | No description |
id | string | false | No description |
headline | string | false | No description |
subhead | string | false | No description |
seoTitle | string | false | No description |
seoDescription | string | false | No description |
seoKeywords | string | false | No description |
slug | string | false | No description |
commenting | boolean | false | No description |
tagline | string | false | No description |
tokenData | object | false | No description |
» tokenGUID | string | false | No description |
» type | string | false | No description |
» id | string | false | No description |
» teamId | string | false | No description |
» name | string | false | No description |
» seoName | string | false | No description |
» href | string | false | No description |
» hrefMobile | string | false | No description |
contributor | object | false | No description |
» contributors | [object] | false | No description |
»» name | string | false | No description |
string | false | No description | |
» source | string | false | No description |
keywordsDisplay | [GameEditorialKeyword] | false | No description |
keywordsAll | [GameEditorialKeyword] | false | No description |
approval | string | false | No description |
url | string | false | No description |
dataURI | string | false | No description |
primaryKeyword | GameEditorialKeyword | false | No description |
media | object | false | No description |
» type | string | false | No description |
» image | Photo | false | No description |
preview | string(html) | false | No description |
Enumerated Values
Property | Value |
---|---|
type | hyperLink |
type | playerCard |
GameEditorialKeyword
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
Properties
Name | Type | Required | Description |
---|---|---|---|
type | string | false | No description |
value | string | false | No description |
displayName | string | false | No description |
Enumerated Values
Property | Value |
---|---|
type | bodyParagraphCount |
type | bodyWordCount |
type | clob_autoTagSkip_playerCards |
type | content |
type | embeddable |
type | gameId |
type | language |
type | playerId |
type | previewParagraphCount |
type | primaryTag |
type | previewWordCount |
type | shareable |
type | statsEventId |
type | teamFileCode |
type | teamId |
GameEditorials
{
"title": "Preview",
"topicList": "string",
"items": [
{
"type": "article",
"state": "A",
"date": "2018-02-10T16:57:06-0500",
"id": "295823824",
"headline": "Oilers at Sharks preview",
"subhead": "Backups Montoya, Dell to start for Edmonton, San Jose",
"seoTitle": "Edmonton Oilers San Jose Sharks game preview",
"seoDescription": "Backup goaltender Aaron Dell will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.",
"seoKeywords": "Game preview, Edmonton Oilers, San Jose Sharks, Aaron Dell, Al Montoya, Feb 10",
"slug": "edmonton-oilers-san-jose-sharks-game-preview",
"commenting": true,
"tagline": "string",
"tokenData": {
"tokenGUID": "token-EBDA2F0039BF4445D2C91",
"type": "hyperLink",
"id": "8471709",
"teamId": "28",
"name": "Marc-Edouard Vlasic",
"seoName": "marc-edouard-vlasic",
"href": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018",
"hrefMobile": "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018"
},
"contributor": {
"contributors": [
{
"name": "Eric Gilmore",
"twitter": "string"
}
],
"source": "NHL.com Correspondent"
},
"keywordsDisplay": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"keywordsAll": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"approval": "string",
"url": "/news/edmonton-oilers-san-jose-sharks-game-preview/c-295823824?game_pk=2017020851",
"dataURI": "/nhl/id/v1/295823824/details/web-v1.json",
"primaryKeyword": {
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
},
"media": {
"type": "photo",
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
}
},
"preview": "<p><b>OILERS (23-26-4) at SHARKS (28-18-8)</b></p><p><b>10 p.m. ET; NBCSCA, CITY, SN360, SN, NHL.TV</b></p><p> </p><h5><b>The Game</b></h5><p>Backup goaltender <span class=\"token token-playerCard\" id=\"token-B36CCB71E81996298E792\">Aaron Dell</span> will make his 19th start of the season when the San Jose Sharks play the Edmonton Oilers at SAP Center on Saturday in the first of back-to-back games.</p>"
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
title | string | false | No description |
topicList | string | false | No description |
items | [GameEditorial] | false | No description |
GameHighlight
{
"type": "video",
"id": "57602103",
"date": "2018-02-10T22:00:00-0500",
"title": "Goodrow buries Hansen's pass",
"blurb": "EDM@SJS: Goodrow snaps Hansen's pass by Montoya",
"description": "Barclay Goodrow takes a drop pass from Jannik Hansen and whips a quick wrist shot past Al Montoya to give the Sharks a 3-0 lead in the 2nd",
"duration": "00:51",
"authFlow": true,
"mediaPlaybackId": "57602103",
"mediaState": "MEDIA_ARCHIVE",
"keywords": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
},
"playbacks": [
{
"name": "FLASH_192K_320X180",
"width": "960",
"height": "540",
"url": "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4"
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
type | string | false | No description |
id | string | false | No description |
date | string(date-time) | false | No description |
title | string | false | No description |
blurb | string | false | No description |
description | string | false | No description |
duration | string | false | No description |
authFlow | boolean | false | No description |
mediaPlaybackId | string | false | No description |
mediaState | string | false | No description |
keywords | [GameEditorialKeyword] | false | No description |
image | Photo | false | No description |
playbacks | [object] | false | No description |
» name | string | false | No description |
» width | string | false | No description |
» height | string | false | No description |
» url | string(video) | false | No description |
Enumerated Values
Property | Value |
---|---|
type | video |
name | FLASH_192K_320X180 |
name | FLASH_450K_400X224 |
name | FLASH_1200K_640X360 |
name | FLASH_1800K_960X540 |
name | HTTP_CLOUD_MOBILE |
name | HTTP_CLOUD_TABLET |
name | HTTP_CLOUD_TABLET_60 |
name | HTTP_CLOUD_WIRED |
name | HTTP_CLOUD_WIRED_60 |
name | HTTP_CLOUD_WIRED_WEB |
GameHighlights
{
"scoreboard": {
"title": "Highlights",
"topicList": "293642378",
"items": [
{
"type": "video",
"id": "57602103",
"date": "2018-02-10T22:00:00-0500",
"title": "Goodrow buries Hansen's pass",
"blurb": "EDM@SJS: Goodrow snaps Hansen's pass by Montoya",
"description": "Barclay Goodrow takes a drop pass from Jannik Hansen and whips a quick wrist shot past Al Montoya to give the Sharks a 3-0 lead in the 2nd",
"duration": "00:51",
"authFlow": true,
"mediaPlaybackId": "57602103",
"mediaState": "MEDIA_ARCHIVE",
"keywords": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
},
"playbacks": [
{
"name": "FLASH_192K_320X180",
"width": "960",
"height": "540",
"url": "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4"
}
]
}
]
},
"gameCenter": {
"title": "Highlights",
"topicList": "293642378",
"items": [
{
"type": "video",
"id": "57602103",
"date": "2018-02-10T22:00:00-0500",
"title": "Goodrow buries Hansen's pass",
"blurb": "EDM@SJS: Goodrow snaps Hansen's pass by Montoya",
"description": "Barclay Goodrow takes a drop pass from Jannik Hansen and whips a quick wrist shot past Al Montoya to give the Sharks a 3-0 lead in the 2nd",
"duration": "00:51",
"authFlow": true,
"mediaPlaybackId": "57602103",
"mediaState": "MEDIA_ARCHIVE",
"keywords": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
},
"playbacks": [
{
"name": "FLASH_192K_320X180",
"width": "960",
"height": "540",
"url": "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4"
}
]
}
]
}
}
Properties
Name | Type | Required | Description |
---|---|---|---|
scoreboard | GameHighlightType | false | No description |
gameCenter | GameHighlightType | false | No description |
GameHighlightType
{
"title": "Highlights",
"topicList": "293642378",
"items": [
{
"type": "video",
"id": "57602103",
"date": "2018-02-10T22:00:00-0500",
"title": "Goodrow buries Hansen's pass",
"blurb": "EDM@SJS: Goodrow snaps Hansen's pass by Montoya",
"description": "Barclay Goodrow takes a drop pass from Jannik Hansen and whips a quick wrist shot past Al Montoya to give the Sharks a 3-0 lead in the 2nd",
"duration": "00:51",
"authFlow": true,
"mediaPlaybackId": "57602103",
"mediaState": "MEDIA_ARCHIVE",
"keywords": [
{
"type": "bodyParagraphCount",
"value": "en",
"displayName": "English"
}
],
"image": {
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
},
"playbacks": [
{
"name": "FLASH_192K_320X180",
"width": "960",
"height": "540",
"url": "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4"
}
]
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
title | string | false | No description |
topicList | string | false | No description |
items | [GameHighlight] | false | No description |
GamePeriod
{
"periodType": "REGULAR",
"startTime": "2018-02-11T03:09:50Z",
"endTime": "2018-02-11T03:44:47Z",
"num": 1,
"ordinalNum": "1st",
"home": {
"goals": 2,
"shotsOnGoal": 14,
"rinkSide": "left"
},
"away": {
"goals": 0,
"shotsOnGoal": 9,
"rinkSide": "right"
}
}
Properties
Name | Type | Required | Description |
---|---|---|---|
periodType | string | false | No description |
startTime | string(date-time) | false | No description |
endTime | string(date-time) | false | No description |
num | number | false | No description |
ordinalNum | string | false | No description |
home | object | false | No description |
» goals | number | false | No description |
» shotsOnGoal | number | false | No description |
» rinkSide | string | false | No description |
away | object | false | No description |
» goals | number | false | No description |
» shotsOnGoal | number | false | No description |
» rinkSide | string | false | No description |
GameDecisionPlayer
{
"id": 8477180,
"fullName": "Aaron Dell",
"link": "/api/v1/people/8477180"
}
Properties
Name | Type | Required | Description |
---|---|---|---|
id | number | false | No description |
fullName | string | false | No description |
link | string(uri) | false | No description |
GameLinescore
{
"currentPeriod": 3,
"currentPeriodOrdinal": "3rd",
"currentPeriodTimeRemaining": "Final",
"periods": [
{
"periodType": "REGULAR",
"startTime": "2018-02-11T03:09:50Z",
"endTime": "2018-02-11T03:44:47Z",
"num": 1,
"ordinalNum": "1st",
"home": {
"goals": 2,
"shotsOnGoal": 14,
"rinkSide": "left"
},
"away": {
"goals": 0,
"shotsOnGoal": 9,
"rinkSide": "right"
}
}
],
"shootoutInfo": {
"away": {
"scores": 0,
"attempts": 0
},
"home": {
"scores": 0,
"attempts": 0
}
},
"teams": {
"home": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
},
"away": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
}
},
"powerPlayStrength": "Even",
"hasShootout": true,
"intermissionInfo": {
"intermissionTimeRemaining": 0,
"intermissionTimeElapsed": 0,
"inIntermission": true
},
"powerPlayInfo": {
"situationTimeRemaining": 0,
"situationTimeElapsed": 72,
"inSituation": true
}
}
Properties
Name | Type | Required | Description |
---|---|---|---|
currentPeriod | number | false | No description |
currentPeriodOrdinal | string | false | No description |
currentPeriodTimeRemaining | string | false | No description |
periods | [GamePeriod] | false | No description |
shootoutInfo | object | false | No description |
» away | object | false | No description |
»» scores | number | false | No description |
»» attempts | number | false | No description |
» home | object | false | No description |
»» scores | number | false | No description |
»» attempts | number | false | No description |
» teams | object | false | No description |
»» home | GameLinescoreTeam | false | No description |
»» away | GameLinescoreTeam | false | No description |
» powerPlayStrength | string | false | No description |
» hasShootout | boolean | false | No description |
» intermissionInfo | object | false | No description |
»» intermissionTimeRemaining | number | false | No description |
»» intermissionTimeElapsed | number | false | No description |
»» inIntermission | boolean | false | No description |
» powerPlayInfo | object | false | No description |
»» situationTimeRemaining | number | false | No description |
»» situationTimeElapsed | number | false | No description |
»» inSituation | boolean | false | No description |
GameLinescoreTeam
{
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
}
Properties
Name | Type | Required | Description |
---|---|---|---|
team | object | false | No description |
» id | number | false | No description |
» name | string | false | No description |
» link | string(uri) | false | No description |
» abbreviation | string | false | No description |
» triCode | string | false | No description |
goals | number | false | No description |
shotsOnGoal | number | false | No description |
goaliePulled | boolean | false | No description |
numSkaters | number | false | No description |
powerPlay | boolean | false | No description |
GameMediaAudio
{
"title": "Audio",
"items": [
{
"mediaState": "MEDIA_DONE",
"mediaPlaybackId": "57463903",
"mediaFeedType": "HOME",
"callLetters": "KFOX",
"eventId": "221-1007449",
"language": "eng",
"freeGame": true,
"feedName": "string",
"gamePlus": true
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
title | string | false | No description |
items | [object] | false | No description |
» mediaState | string | false | No description |
» mediaPlaybackId | string | false | No description |
» mediaFeedType | string | false | No description |
» callLetters | string | false | No description |
» eventId | string | false | No description |
» language | string | false | No description |
» freeGame | boolean | false | No description |
» feedName | string | false | No description |
» gamePlus | boolean | false | No description |
GameMediaNHLTV
{
"title": "NHLTV",
"platform": "web",
"items": [
{
"guid": "dbb39fa8-6679-4b22-a8c5-71eb5e39b462",
"mediaState": "MEDIA_ARCHIVE",
"mediaPlaybackId": "57463703",
"mediaFeedType": "HOME",
"callLetters": "NBCS-CA",
"eventId": "221-1007449",
"language": "eng",
"freeGame": true,
"feedName": "string",
"gamePlus": true
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
title | string | false | No description |
platform | string | false | No description |
items | [object] | false | No description |
» guid | string | false | No description |
» mediaState | string | false | No description |
» mediaPlaybackId | string | false | No description |
» mediaFeedType | string | false | No description |
» callLetters | string | false | No description |
» eventId | string | false | No description |
» language | string | false | No description |
» freeGame | boolean | false | No description |
» feedName | string | false | No description |
» gamePlus | boolean | false | No description |
GameOfficial
{
"official": {
"id": 2071,
"fullName": "Tim Peel",
"link": "/api/v1/people/2071"
},
"officialType": "Linesman"
}
Properties
Name | Type | Required | Description |
---|---|---|---|
official | object | false | No description |
» id | number | false | No description |
» fullName | string | false | No description |
» link | string(uri) | false | No description |
officialType | string | false | No description |
Enumerated Values
Property | Value |
---|---|
officialType | Linesman |
officialType | Referee |
GamePlay
{
"players": [
{
"player": {
"id": 8476881,
"fullName": "Tomas Hertl",
"link": "/api/v1/people/8476881"
},
"playerType": "Winner"
}
],
"result": {
"event": "Game End",
"eventCode": "SJS505",
"eventTypeId": "GAME_END",
"description": "Game End"
},
"about": {
"eventIdx": 315,
"eventId": 505,
"period": 3,
"periodType": "REGULAR",
"ordinalNum": "3rd",
"periodTime": "20:00",
"periodTimeRemaining": "00:00",
"dateTime": "2018-02-11T05:30:42Z",
"goals": {
"away": 4,
"home": 6
}
},
"coordinates": {
"x": 0,
"y": 0
},
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"triCode": "SJS"
}
}
Properties
Name | Type | Required | Description |
---|---|---|---|
players | [object] | false | No description |
» player | object | false | No description |
»» id | number | false | No description |
»» fullName | string | false | No description |
»» link | string(uri) | false | No description |
» playerType | string | false | No description |
result | object | false | No description |
» event | string | false | No description |
» eventCode | string | false | No description |
» eventTypeId | string | false | No description |
» description | string | false | No description |
about | object | false | No description |
» eventIdx | number | false | No description |
» eventId | number | false | No description |
» period | number | false | No description |
» periodType | string | false | No description |
» ordinalNum | string | false | No description |
» periodTime | string | false | No description |
» periodTimeRemaining | string | false | No description |
» dateTime | string(date-time) | false | No description |
» goals | object | false | No description |
»» away | number | false | No description |
»» home | number | false | No description |
» coordinates | object | false | No description |
»» x | number | false | No description |
»» y | number | false | No description |
» team | object | false | No description |
»» id | number | false | No description |
»» name | string | false | No description |
»» link | string(uri) | false | No description |
»» triCode | string | false | No description |
Photo
{
"title": "string",
"altText": "string",
"cuts": {
"aspectRatio": "16:9",
"width": 2568,
"height": 1444,
"src": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at2x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg",
"at3x": "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg"
}
}
Properties
Name | Type | Required | Description |
---|---|---|---|
title | string | false | No description |
altText | string | false | No description |
cuts | object | false | No description |
» aspectRatio | string | false | No description |
» width | number | false | No description |
» height | number | false | No description |
» src | string(url) | false | No description |
» at2x | string(url) | false | No description |
» at3x | string(url) | false | No description |
Player
{
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138",
"firstName": "Joe",
"lastName": "Thornton",
"primaryNumber": "19",
"birthDate": "1979-07-02",
"currentAge": 38,
"birthCity": "London",
"birthStateProvince": "ON",
"birthCountry": "CAN",
"nationality": "CAN",
"height": "6' 4\"",
"weight": 220,
"active": true,
"alternateCaptain": true,
"captain": true,
"rookie": true,
"shootsCatches": "L",
"rosterStatus": "I",
"currentTeam": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
},
"primaryPosition": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
Properties
Name | Type | Required | Description |
---|---|---|---|
id | number | false | No description |
fullName | string | false | No description |
link | string(uri) | false | No description |
firstName | string | false | No description |
lastName | string | false | No description |
primaryNumber | string | false | No description |
birthDate | string(date) | false | No description |
currentAge | number | false | No description |
birthCity | string | false | No description |
birthStateProvince | string | false | No description |
birthCountry | string | false | No description |
nationality | string | false | No description |
height | string | false | No description |
weight | number | false | No description |
active | boolean | false | No description |
alternateCaptain | boolean | false | No description |
captain | boolean | false | No description |
rookie | boolean | false | No description |
shootsCatches | string | false | No description |
rosterStatus | string | false | No description |
currentTeam | object | false | No description |
» id | number | false | No description |
» name | string | false | No description |
» link | string(uri) | false | No description |
primaryPosition | object | false | No description |
» code | string | false | No description |
» name | string | false | No description |
» type | string | false | No description |
» abbreviation | string | false | No description |
Enumerated Values
Property | Value |
---|---|
shootsCatches | L |
shootsCatches | R |
Players
{
"copyright": "string",
"teams": [
{
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138",
"firstName": "Joe",
"lastName": "Thornton",
"primaryNumber": "19",
"birthDate": "1979-07-02",
"currentAge": 38,
"birthCity": "London",
"birthStateProvince": "ON",
"birthCountry": "CAN",
"nationality": "CAN",
"height": "6' 4\"",
"weight": 220,
"active": true,
"alternateCaptain": true,
"captain": true,
"rookie": true,
"shootsCatches": "L",
"rosterStatus": "I",
"currentTeam": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
},
"primaryPosition": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
copyright | string | true | No description |
teams | [Player] | false | No description |
PlayerStats
{
"copyright": "string",
"stats": [
{
"type": {
"displayName": "byDayOfWeek"
},
"splits": [
{
"season": "20172018",
"stat": {
"timeOnIce": "862:13",
"assists": 23,
"goals": 13,
"pim": 38,
"shots": 75,
"games": 47,
"hits": 32,
"powerPlayGoals": 7,
"powerPlayPoints": 18,
"powerPlayTimeOnIce": "168:28",
"evenTimeOnIce": "692:50",
"penaltyMinutes": "38",
"faceOffPct": 52.04,
"shotPct": 17.3,
"gameWinningGoals": 1,
"overTimeGoals": 0,
"shortHandedGoals": 0,
"shortHandedPoints": 0,
"shortHandedTimeOnIce": "00:55",
"blocked": 18,
"plusMinus": -9,
"points": 36,
"shifts": 1077,
"timeOnIcePerGame": "18:20",
"evenTimeOnIcePerGame": "14:44",
"shortHandedTimeOnIcePerGame": "00:01",
"powerPlayTimeOnIcePerGame": "03:35",
"rankPowerPlayGoals": "1st",
"rankBlockedShots": "405th",
"rankAssists": "51st",
"rankShotPct": "246th",
"rankGoals": "13th",
"rankHits": "19th",
"rankPenaltyMinutes": "111th",
"rankShortHandedGoals": "133rd",
"rankPlusMinus": "176th",
"rankShots": "2nd",
"rankPoints": "20th",
"rankOvertimeGoals": "9th",
"rankGamesPlayed": "1st",
"goalsInFirstPeriod": 6,
"goalsInSecondPeriod": 3,
"goalsInThirdPeriod": 4,
"goalsTrailingByOne": 2,
"goalsTrailingByTwo": 1,
"goalsTrailingByThreePlus": 1,
"goalsWhenTied": 4,
"goalsLeadingByOne": 2,
"goalsLeadingByTwo": 3
},
"isHome": true,
"isWin": true,
"isOT": true,
"month": 1,
"dayOfWeek": 1,
"opponent": {
"id": 1,
"name": "New Jersey Devils",
"link": "/api/v1/teams/1"
},
"opponentDivision": {
"id": 16,
"name": "Central",
"link": "/api/v1/divisions/16"
},
"opponentConference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
}
}
]
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
copyright | string | false | No description |
stats | [object] | false | No description |
» type | object | false | No description |
»» displayName | string | false | No description |
» splits | [object] | false | No description |
»» season | string | false | No description |
»» stat | object | false | No description |
»»» timeOnIce | string | false | No description |
»»» assists | string | false | No description |
»»» goals | number | false | No description |
»»» pim | number | false | No description |
»»» shots | number | false | No description |
»»» games | number | false | No description |
»»» hits | number | false | No description |
»»» powerPlayGoals | number | false | No description |
»»» powerPlayPoints | number | false | No description |
»»» powerPlayTimeOnIce | number | false | No description |
»»» evenTimeOnIce | number | false | No description |
»»» penaltyMinutes | number | false | No description |
»»» faceOffPct | number(double) | false | No description |
»»» shotPct | number(float) | false | No description |
»»» gameWinningGoals | number | false | No description |
»»» overTimeGoals | number | false | No description |
»»» shortHandedGoals | number | false | No description |
»»» shortHandedPoints | number | false | No description |
»»» shortHandedTimeOnIce | string | false | No description |
»»» blocked | number | false | No description |
»»» plusMinus | number | false | No description |
»»» points | number | false | No description |
»»» shifts | number | false | No description |
»»» timeOnIcePerGame | string | false | No description |
»»» evenTimeOnIcePerGame | string | false | No description |
»»» shortHandedTimeOnIcePerGame | string | false | No description |
»»» powerPlayTimeOnIcePerGame | string | false | No description |
»»» rankPowerPlayGoals | string | false | No description |
»»» rankBlockedShots | string | false | No description |
»»» rankAssists | string | false | No description |
»»» rankShotPct | string | false | No description |
»»» rankGoals | string | false | No description |
»»» rankHits | string | false | No description |
»»» rankPenaltyMinutes | string | false | No description |
»»» rankShortHandedGoals | string | false | No description |
»»» rankPlusMinus | string | false | No description |
»»» rankShots | string | false | No description |
»»» rankPoints | string | false | No description |
»»» rankOvertimeGoals | string | false | No description |
»»» rankGamesPlayed | string | false | No description |
»»» goalsInFirstPeriod | number | false | No description |
»»» goalsInSecondPeriod | number | false | No description |
»»» goalsInThirdPeriod | number | false | No description |
»»» goalsTrailingByOne | number | false | No description |
»»» goalsTrailingByTwo | number | false | No description |
»»» goalsTrailingByThreePlus | number | false | No description |
»»» goalsWhenTied | number | false | No description |
»»» goalsLeadingByOne | number | false | No description |
»»» goalsLeadingByTwo | number | false | No description |
»» isHome | boolean | false | No description |
»» isWin | boolean | false | No description |
»» isOT | boolean | false | No description |
»» month | number | false | No description |
»» dayOfWeek | number | false | No description |
»» opponent | object | false | No description |
»»» id | number | false | No description |
»»» name | string | false | No description |
»»» link | string(uri) | false | No description |
»» opponentDivision | object | false | No description |
»»» id | number | false | No description |
»»» name | string | false | No description |
»»» link | string(uri) | false | No description |
»» opponentConference | object | false | No description |
»»» id | number | false | No description |
»»» name | string | false | No description |
»»» link | string(uri) | false | No description |
Enumerated Values
Property | Value |
---|---|
displayName | byDayOfWeek |
displayName | byMonth |
displayName | goalsByGameSituation |
displayName | homeAndAway |
displayName | onPaceRegularSeason |
displayName | regularSeasonStatRankings |
displayName | statsSingleSeason |
displayName | vsConference |
displayName | vsDivision |
displayName | vsTeam |
displayName | winLoss |
Roster
{
"person": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138"
},
"jerseyNumber": 19,
"position": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
Properties
Name | Type | Required | Description |
---|---|---|---|
person | object | false | No description |
» id | number | false | No description |
» fullName | string | false | No description |
» link | string(uri) | false | No description |
jerseyNumber | number | false | No description |
position | object | false | No description |
» code | string | false | No description |
» name | string | false | No description |
» type | string | false | No description |
» abbreviation | string | false | No description |
Rosters
{
"copyright": "string",
"teams": [
{
"person": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138"
},
"jerseyNumber": 19,
"position": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
copyright | string | false | No description |
teams | [Roster] | false | No description |
Schedule
{
"copyright": "string",
"totalItems": 9,
"totalEvents": 0,
"totalGames": 9,
"totalMatches": 0,
"wait": 10,
"dates": [
{
"date": "2018-02-10",
"totalItems": 9,
"totalEvents": 0,
"totalGames": 9,
"totalMatches": 0,
"games": [
{
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"gameType": "R",
"season": "20172018",
"gameDate": "2018-02-11T03:00:00Z",
"status": {
"abstractGameState": "Final",
"codedGameState": "7",
"detailedState": "Final",
"statusCode": "7",
"startTimeTBD": true
},
"teams": {
"away": {
"leagueRecord": {
"wins": 23,
"losses": 27,
"ot": 4,
"type": "league"
},
"score": 4,
"team": {
"id": 22,
"name": "Edmonton Oilers",
"link": "/api/v1/teams/22"
}
},
"home": {
"leagueRecord": {
"wins": 29,
"losses": 18,
"ot": 8,
"type": "league"
},
"score": 6,
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
}
}
},
"linescore": {
"currentPeriod": 3,
"currentPeriodOrdinal": "3rd",
"currentPeriodTimeRemaining": "Final",
"periods": [
{
"periodType": "REGULAR",
"startTime": "2018-02-11T03:09:50Z",
"endTime": "2018-02-11T03:44:47Z",
"num": 1,
"ordinalNum": "1st",
"home": {
"goals": 2,
"shotsOnGoal": 14,
"rinkSide": "left"
},
"away": {
"goals": 0,
"shotsOnGoal": 9,
"rinkSide": "right"
}
}
],
"shootoutInfo": {
"away": {
"scores": 0,
"attempts": 0
},
"home": {
"scores": 0,
"attempts": 0
}
},
"teams": {
"home": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
},
"away": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
}
},
"powerPlayStrength": "Even",
"hasShootout": true,
"intermissionInfo": {
"intermissionTimeRemaining": 0,
"intermissionTimeElapsed": 0,
"inIntermission": true
},
"powerPlayInfo": {
"situationTimeRemaining": 0,
"situationTimeElapsed": 72,
"inSituation": true
}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
},
"tickets": [
{
"ticketType": "buysell",
"ticketLink": "http://www.ticketmaster.com/event/090052DD92E620B4?BRAND=ducks&extcmp=tm208344&utm_source=NHL.com&utm_medium=client&utm_campaign=NHL_LEAGUE_ANA&utm_content=SCHEDULE_PAGE&camefrom=CFC_DUCKS_1718_Web_DucksSchedule"
}
],
"content": {
"link": "/api/v1/game/2017020851/content"
}
}
],
"events": [
{}
],
"matches": [
{}
]
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
copyright | string | false | No description |
totalItems | number | false | No description |
totalEvents | number | false | No description |
totalGames | number | false | No description |
totalMatches | number | false | No description |
wait | number | false | No description |
dates | [ScheduleDay] | false | No description |
ScheduleDay
{
"date": "2018-02-10",
"totalItems": 9,
"totalEvents": 0,
"totalGames": 9,
"totalMatches": 0,
"games": [
{
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"gameType": "R",
"season": "20172018",
"gameDate": "2018-02-11T03:00:00Z",
"status": {
"abstractGameState": "Final",
"codedGameState": "7",
"detailedState": "Final",
"statusCode": "7",
"startTimeTBD": true
},
"teams": {
"away": {
"leagueRecord": {
"wins": 23,
"losses": 27,
"ot": 4,
"type": "league"
},
"score": 4,
"team": {
"id": 22,
"name": "Edmonton Oilers",
"link": "/api/v1/teams/22"
}
},
"home": {
"leagueRecord": {
"wins": 29,
"losses": 18,
"ot": 8,
"type": "league"
},
"score": 6,
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
}
}
},
"linescore": {
"currentPeriod": 3,
"currentPeriodOrdinal": "3rd",
"currentPeriodTimeRemaining": "Final",
"periods": [
{
"periodType": "REGULAR",
"startTime": "2018-02-11T03:09:50Z",
"endTime": "2018-02-11T03:44:47Z",
"num": 1,
"ordinalNum": "1st",
"home": {
"goals": 2,
"shotsOnGoal": 14,
"rinkSide": "left"
},
"away": {
"goals": 0,
"shotsOnGoal": 9,
"rinkSide": "right"
}
}
],
"shootoutInfo": {
"away": {
"scores": 0,
"attempts": 0
},
"home": {
"scores": 0,
"attempts": 0
}
},
"teams": {
"home": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
},
"away": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
}
},
"powerPlayStrength": "Even",
"hasShootout": true,
"intermissionInfo": {
"intermissionTimeRemaining": 0,
"intermissionTimeElapsed": 0,
"inIntermission": true
},
"powerPlayInfo": {
"situationTimeRemaining": 0,
"situationTimeElapsed": 72,
"inSituation": true
}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
},
"tickets": [
{
"ticketType": "buysell",
"ticketLink": "http://www.ticketmaster.com/event/090052DD92E620B4?BRAND=ducks&extcmp=tm208344&utm_source=NHL.com&utm_medium=client&utm_campaign=NHL_LEAGUE_ANA&utm_content=SCHEDULE_PAGE&camefrom=CFC_DUCKS_1718_Web_DucksSchedule"
}
],
"content": {
"link": "/api/v1/game/2017020851/content"
}
}
],
"events": [
{}
],
"matches": [
{}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
date | string(date) | false | No description |
totalItems | number | false | No description |
totalEvents | number | false | No description |
totalGames | number | false | No description |
totalMatches | number | false | No description |
games | [ScheduleGame] | false | No description |
events | [object] | false | No description |
matches | [object] | false | No description |
ScheduleGame
{
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"gameType": "R",
"season": "20172018",
"gameDate": "2018-02-11T03:00:00Z",
"status": {
"abstractGameState": "Final",
"codedGameState": "7",
"detailedState": "Final",
"statusCode": "7",
"startTimeTBD": true
},
"teams": {
"away": {
"leagueRecord": {
"wins": 23,
"losses": 27,
"ot": 4,
"type": "league"
},
"score": 4,
"team": {
"id": 22,
"name": "Edmonton Oilers",
"link": "/api/v1/teams/22"
}
},
"home": {
"leagueRecord": {
"wins": 29,
"losses": 18,
"ot": 8,
"type": "league"
},
"score": 6,
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
}
}
},
"linescore": {
"currentPeriod": 3,
"currentPeriodOrdinal": "3rd",
"currentPeriodTimeRemaining": "Final",
"periods": [
{
"periodType": "REGULAR",
"startTime": "2018-02-11T03:09:50Z",
"endTime": "2018-02-11T03:44:47Z",
"num": 1,
"ordinalNum": "1st",
"home": {
"goals": 2,
"shotsOnGoal": 14,
"rinkSide": "left"
},
"away": {
"goals": 0,
"shotsOnGoal": 9,
"rinkSide": "right"
}
}
],
"shootoutInfo": {
"away": {
"scores": 0,
"attempts": 0
},
"home": {
"scores": 0,
"attempts": 0
}
},
"teams": {
"home": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
},
"away": {
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"abbreviation": "SJS",
"triCode": "SJS"
},
"goals": 6,
"shotsOnGoal": 30,
"goaliePulled": true,
"numSkaters": 5,
"powerPlay": true
}
},
"powerPlayStrength": "Even",
"hasShootout": true,
"intermissionInfo": {
"intermissionTimeRemaining": 0,
"intermissionTimeElapsed": 0,
"inIntermission": true
},
"powerPlayInfo": {
"situationTimeRemaining": 0,
"situationTimeElapsed": 72,
"inSituation": true
}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
},
"tickets": [
{
"ticketType": "buysell",
"ticketLink": "http://www.ticketmaster.com/event/090052DD92E620B4?BRAND=ducks&extcmp=tm208344&utm_source=NHL.com&utm_medium=client&utm_campaign=NHL_LEAGUE_ANA&utm_content=SCHEDULE_PAGE&camefrom=CFC_DUCKS_1718_Web_DucksSchedule"
}
],
"content": {
"link": "/api/v1/game/2017020851/content"
}
}
Properties
Name | Type | Required | Description |
---|---|---|---|
gamePk | number | false | No description |
link | string(uri) | false | No description |
gameType | string | false | No description |
season | string | false | No description |
gameDate | string(date-time) | false | No description |
status | object | false | No description |
» abstractGameState | string | false | No description |
» codedGameState | string | false | No description |
» detailedState | string | false | No description |
» statusCode | string | false | No description |
» startTimeTBD | boolean | false | No description |
teams | object | false | No description |
» away | object | false | No description |
»» leagueRecord | object | false | No description |
»»» wins | number | false | No description |
»»» losses | number | false | No description |
»»» ot | number | false | No description |
»»» type | string | false | No description |
»» score | number | false | No description |
»» team | object | false | No description |
»»» id | number | false | No description |
»»» name | string | false | No description |
»»» link | string | false | No description |
»» home | object | false | No description |
»»» leagueRecord | object | false | No description |
»»»» wins | number | false | No description |
»»»» losses | number | false | No description |
»»»» ot | number | false | No description |
»»»» type | string | false | No description |
»»» score | number | false | No description |
»»» team | object | false | No description |
»»»» id | number | false | No description |
»»»» name | string | false | No description |
»»»» link | string(uri) | false | No description |
»»» linescore | GameLinescore | false | No description |
»»» venue | object | false | No description |
»»»» name | string | false | No description |
»»»» link | string(uri) | false | No description |
»»» tickets | [object] | false | No description |
»»»» ticketType | string | false | No description |
»»»» ticketLink | string(url) | false | No description |
»»» content | object | false | No description |
»»»» link | string(uri) | false | No description |
Enumerated Values
Property | Value |
---|---|
ticketType | buysell |
ticketType | club buysell |
ticketType | club mobile |
ticketType | club mobile buysell |
ticketType | club ticket |
ticketType | mobile app ticket |
ticketType | mobile buysell |
ticketType | mobile ticket |
ticketType | tablet app ticket |
ticketType | ticket |
Standings
{
"copyright": "string",
"records": [
{
"standingsType": "regularSeason",
"league": {
"id": 133,
"name": "National Hockey League",
"link": "/api/v1/league/133"
},
"division": {
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15"
},
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"teamRecords": [
{
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
},
"leagueRecord": {
"wins": 29,
"losses": 18,
"ot": 8,
"type": "league"
},
"goalsAgainst": 154,
"goalsScored": 162,
"points": 66,
"divisionRank": "2",
"conferenceRank": "7",
"leagueRank": "11",
"wildCardRank": "0",
"row": 26,
"gamesPlayed": 55,
"streak": {
"streakType": "wins",
"streakNumber": 1,
"streakCode": "W1"
},
"lastUpdated": "2018-02-11T00:57:18Z"
}
]
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
copyright | string | false | No description |
records | [object] | false | No description |
» standingsType | string | false | No description |
» league | object | false | No description |
»» id | number | false | No description |
»» name | string | false | No description |
»» link | string(uri) | false | No description |
» division | object | false | No description |
»» id | number | false | No description |
»» name | string | false | No description |
»» link | string(uri) | false | No description |
» conference | object | false | No description |
»» id | number | false | No description |
»» name | string | false | No description |
»» link | string(uri) | false | No description |
» teamRecords | [object] | false | No description |
»» team | object | false | No description |
»»» id | number | false | No description |
»»» name | string | false | No description |
»»» link | string(uri) | false | No description |
»» leagueRecord | object | false | No description |
»»» wins | number | false | No description |
»»» losses | number | false | No description |
»»» ot | number | false | No description |
»»» type | string | false | No description |
»» goalsAgainst | number | false | No description |
»» goalsScored | number | false | No description |
»» points | number | false | No description |
»» divisionRank | string | false | No description |
»» conferenceRank | string | false | No description |
»» leagueRank | string | false | No description |
»» wildCardRank | string | false | No description |
»» row | number | false | No description |
»» gamesPlayed | number | false | No description |
»» streak | object | false | No description |
»»» streakType | string | false | No description |
»»» streakNumber | number | false | No description |
»»» streakCode | string | false | No description |
»» lastUpdated | string(date-time) | false | No description |
Enumerated Values
Property | Value |
---|---|
standingsType | regularSeason |
StandingTypes
[
{
"name": "regularSeason",
"description": "Regular Season Standings"
}
]
Properties
Name | Type | Required | Description |
---|---|---|---|
name | string | false | No description |
description | string | false | No description |
StatTypes
[
{
"displayName": "byDayOfWeek"
}
]
Properties
Name | Type | Required | Description |
---|---|---|---|
displayName | string | false | No description |
Enumerated Values
Property | Value |
---|---|
displayName | byDayOfWeek |
displayName | byDayOfWeekPlayoffs |
displayName | byMonth |
displayName | byMonthPlayoffs |
displayName | careerPlayoffs |
displayName | careerRegularSeason |
displayName | gameLog |
displayName | goalsByGameSituation |
displayName | goalsByGameSituationPlayoffs |
displayName | homeAndAway |
displayName | homeAndAwayPlayoffs |
displayName | onPaceRegularSeason |
displayName | playoffGameLog |
displayName | playoffStatRankings |
displayName | regularSeasonStatRankings |
displayName | statsSingleSeason |
displayName | statsSingleSeasonPlayoffs |
displayName | vsConference |
displayName | vsConferencePlayoffs |
displayName | vsDivision |
displayName | vsDivisionPlayoffs |
displayName | vsTeam |
displayName | vsTeamPlayoffs |
displayName | winLoss |
displayName | winLossPlayoffs |
displayName | yearByYear |
displayName | yearByYearPlayoffs |
displayName | yearByYearPlayoffsRank |
displayName | yearByYearRank |
Team
{
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null",
"city": "San Jose",
"timeZone": {
"id": "America/Los_Angeles",
"offset": -8,
"tz": "PST"
}
},
"abbreviation": "SJS",
"triCode": "SJS",
"teamName": "Sharks",
"locationName": "San Jose",
"firstYearOfPlay": 1990,
"division": {
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15"
},
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"franchise": {
"id": 29,
"name": "Sharks",
"link": "/api/v1/franchises/29"
},
"roster": {
"roster": [
{
"person": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138"
},
"jerseyNumber": 19,
"position": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
]
},
"nextGameSchedule": {
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"dates": [
{
"date": "2018-02-10",
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"games": [
{
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"gameType": "R",
"season": "20172018",
"gameDate": "2018-02-11T03:00:00Z",
"status": {
"abstractGameState": "Live",
"codedGameState": "3",
"detailedState": "In Progress",
"statusCode": "2",
"startTimeTBD": true
},
"teams": {
"away": {
"leagueRecord": {
"wins": 23,
"losses": 26,
"ot": 4,
"type": "league"
},
"score": 0,
"team": {
"id": 22,
"name": "Edmonton Oilers",
"link": "/api/v1/teams/22"
}
},
"home": {
"leagueRecord": {
"wins": 28,
"losses": 18,
"ot": 8,
"type": "league"
},
"score": 2,
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
}
}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
},
"content": {
"link": "/api/v1/game/2017020851/content"
}
}
],
"events": [
{}
],
"matches": [
{}
]
}
]
},
"shortName": "San Jose",
"officialSiteUrl": "http://www.sjsharks.com",
"franchiseId": 29,
"active": true
}
Properties
Name | Type | Required | Description |
---|---|---|---|
id | number | false | No description |
name | string | false | No description |
link | string(uri) | false | No description |
venue | Venue | false | No description |
abbreviation | string | false | No description |
triCode | string | false | No description |
teamName | string | false | No description |
locationName | string | false | No description |
firstYearOfPlay | number | false | No description |
division | object | false | No description |
» id | number | false | No description |
» name | string | false | No description |
» link | string(uri) | false | No description |
conference | object | false | No description |
» id | number | false | No description |
» name | string | false | No description |
» link | string(uri) | false | No description |
franchise | Franchise | false | No description |
roster | object | false | No description |
» roster | [Roster] | false | No description |
nextGameSchedule | object | false | No description |
» totalItems | number | false | No description |
» totalEvents | number | false | No description |
» totalGames | number | false | No description |
» totalMatches | number | false | No description |
» dates | [object] | false | No description |
»» date | string(date) | false | No description |
»» totalItems | number | false | No description |
»» totalEvents | number | false | No description |
»» totalGames | number | false | No description |
»» totalMatches | number | false | No description |
»» games | [object] | false | No description |
»»» gamePk | number | false | No description |
»»» link | string(uri) | false | No description |
»»» gameType | string | false | No description |
»»» season | string | false | No description |
»»» gameDate | string(date-time) | false | No description |
»»» status | object | false | No description |
»»»» abstractGameState | string | false | No description |
»»»» codedGameState | string | false | No description |
»»»» detailedState | string | false | No description |
»»»» statusCode | string | false | No description |
»»»» startTimeTBD | boolean | false | No description |
»»» teams | object | false | No description |
»»»» away | object | false | No description |
»»»»» leagueRecord | object | false | No description |
»»»»»» wins | number | false | No description |
»»»»»» losses | number | false | No description |
»»»»»» ot | number | false | No description |
»»»»»» type | string | false | No description |
»»»»» score | number | false | No description |
»»»»» team | object | false | No description |
»»»»»» id | number | false | No description |
»»»»»» name | string | false | No description |
»»»»»» link | string(uri) | false | No description |
»»»»» home | object | false | No description |
»»»»»» leagueRecord | object | false | No description |
»»»»»»» wins | number | false | No description |
»»»»»»» losses | number | false | No description |
»»»»»»» ot | number | false | No description |
»»»»»»» type | string | false | No description |
»»»»»» score | number | false | No description |
»»»»»» team | object | false | No description |
»»»»»»» id | number | false | No description |
»»»»»»» name | string | false | No description |
»»»»»»» link | string(uri) | false | No description |
»»»»»» venue | object | false | No description |
»»»»»»» name | string | false | No description |
»»»»»»» link | string(uri) | false | No description |
»»»»»» content | object | false | No description |
»»»»»»» link | string(uri) | false | No description |
»»»»»» events | [object] | false | No description |
»»»»»» matches | [object] | false | No description |
»»»»» shortName | string | false | No description |
»»»»» officialSiteUrl | string(url) | false | No description |
»»»»» franchiseId | number | false | No description |
»»»»» active | boolean | false | No description |
Enumerated Values
Property | Value |
---|---|
abstractGameState | Live |
abstractGameState | Preview |
codedGameState | 2 |
codedGameState | 3 |
detailedState | In Progress |
detailedState | Pre-Game |
statusCode | 2 |
statusCode | 3 |
Teams
{
"copyright": "string",
"teams": [
{
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28",
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null",
"city": "San Jose",
"timeZone": {
"id": "America/Los_Angeles",
"offset": -8,
"tz": "PST"
}
},
"abbreviation": "SJS",
"triCode": "SJS",
"teamName": "Sharks",
"locationName": "San Jose",
"firstYearOfPlay": 1990,
"division": {
"id": 15,
"name": "Pacific",
"link": "/api/v1/divisions/15"
},
"conference": {
"id": 5,
"name": "Western",
"link": "/api/v1/conferences/5"
},
"franchise": {
"id": 29,
"name": "Sharks",
"link": "/api/v1/franchises/29"
},
"roster": {
"roster": [
{
"person": {
"id": 8466138,
"fullName": "Joe Thornton",
"link": "/api/v1/people/8466138"
},
"jerseyNumber": 19,
"position": {
"code": "C",
"name": "Center",
"type": "Forward",
"abbreviation": "C"
}
}
]
},
"nextGameSchedule": {
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"dates": [
{
"date": "2018-02-10",
"totalItems": 1,
"totalEvents": 0,
"totalGames": 1,
"totalMatches": 0,
"games": [
{
"gamePk": 2017020851,
"link": "/api/v1/game/2017020851/feed/live",
"gameType": "R",
"season": "20172018",
"gameDate": "2018-02-11T03:00:00Z",
"status": {
"abstractGameState": "Live",
"codedGameState": "3",
"detailedState": "In Progress",
"statusCode": "2",
"startTimeTBD": true
},
"teams": {
"away": {
"leagueRecord": {},
"score": 0,
"team": {}
},
"home": {
"leagueRecord": {},
"score": 2,
"team": {}
}
},
"venue": {
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null"
},
"content": {
"link": "/api/v1/game/2017020851/content"
}
}
],
"events": [
{}
],
"matches": [
{}
]
}
]
},
"shortName": "San Jose",
"officialSiteUrl": "http://www.sjsharks.com",
"franchiseId": 29,
"active": true
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
copyright | string | false | No description |
teams | [Team] | false | No description |
TeamStats
{
"copyright": "string",
"stats": [
{
"type": {
"displayName": "statsSingleSeason"
},
"splits": [
{
"stat": {
"gamesPlayed": 55,
"wins": 29,
"losses": 18,
"ot": 8,
"pts": 66,
"ptPctg": "60.0",
"goalsPerGame": 2.891,
"goalsAgainstPerGame": 2.745,
"evGGARatio": 0.8532,
"powerPlayPercentage": "23.9",
"powerPlayGoals": 44,
"powerPlayGoalsAgainst": 26,
"powerPlayOpportunities": 184,
"penaltyKillPercentage": "84.6",
"shotsPerGame": 32.8,
"shotsAllowed": 30.2182,
"winScoreFirst": 0.679,
"winOppScoreFirst": 0.37,
"winLeadFirstPer": 0.85,
"winLeadSecondPer": 0.952,
"winOutshootOpp": 0.467,
"winOutshotByOpp": 0.6,
"faceOffsTaken": 3300,
"faceOffsWon": 1675,
"faceOffsLost": 1625,
"faceOffWinPercentage": "50.8",
"shootingPctg": 8.8,
"savePctg": 0.909
},
"team": {
"id": 28,
"name": "San Jose Sharks",
"link": "/api/v1/teams/28"
}
}
]
}
]
}
Properties
Name | Type | Required | Description |
---|---|---|---|
copyright | string | false | No description |
stats | [object] | false | No description |
» type | object | false | No description |
»» displayName | string | false | No description |
» splits | [object] | false | No description |
»» stat | object | false | No description |
»»» gamesPlayed | number | false | No description |
»»» wins | number | false | No description |
»»» losses | number | false | No description |
»»» ot | number | false | No description |
»»» pts | number | false | No description |
»»» ptPctg | string | false | No description |
»»» goalsPerGame | number(float) | false | No description |
»»» goalsAgainstPerGame | number(float) | false | No description |
»»» evGGARatio | number(float) | false | No description |
»»» powerPlayPercentage | string | false | No description |
»»» powerPlayGoals | number | false | No description |
»»» powerPlayGoalsAgainst | number | false | No description |
»»» powerPlayOpportunities | number | false | No description |
»»» penaltyKillPercentage | string | false | No description |
»»» shotsPerGame | number(float) | false | No description |
»»» shotsAllowed | number(float) | false | No description |
»»» winScoreFirst | number(float) | false | No description |
»»» winOppScoreFirst | number(float) | false | No description |
»»» winLeadFirstPer | number(float) | false | No description |
»»» winLeadSecondPer | number(float) | false | No description |
»»» winOutshootOpp | number(float) | false | No description |
»»» winOutshotByOpp | number(float) | false | No description |
»»» faceOffsTaken | number | false | No description |
»»» faceOffsWon | number | false | No description |
»»» faceOffsLost | number | false | No description |
»»» faceOffWinPercentage | string | false | No description |
»»» shootingPctg | number(float) | false | No description |
»»» savePctg | number(float) | false | No description |
»» team | object | false | No description |
»»» id | number | false | No description |
»»» name | string | false | No description |
»»» link | string(uri) | false | No description |
Venue
{
"name": "SAP Center at San Jose",
"link": "/api/v1/venues/null",
"city": "San Jose",
"timeZone": {
"id": "America/Los_Angeles",
"offset": -8,
"tz": "PST"
}
}
Properties
Name | Type | Required | Description |
---|---|---|---|
name | string | false | No description |
link | string(uri) | false | No description |
city | string | false | No description |
timeZone | object | false | No description |
» id | string | false | No description |
» offset | number | false | No description |
» tz | string | false | No description |