diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..d76f98c --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,10 @@ +image: node:latest + +pages: + stage: deploy + script: + - npm install -g redoc-cli + - redoc-cli bundle public/index.html swagger/openapi.yaml + artifacts: + paths: + - public diff --git a/swagger/openapi.yaml b/swagger/openapi.yaml new file mode 100644 index 0000000..08803d5 --- /dev/null +++ b/swagger/openapi.yaml @@ -0,0 +1,3135 @@ +openapi: "3.0.0" +info: + title: NHL API + version: "1.0.0" + description: Documenting the publicly accessible portions of the NHL API. + contact: + name: NHL API documentation + url: https://github.com/erunion/sport-api-specifications +tags: + - name: conferences + - name: divisions + - name: draft + - name: games + - name: players + - name: schedule + - name: standings + - name: stats + - name: teams +servers: + - url: https://statsapi.web.nhl.com/api/v1 +paths: + /conferences: + get: + summary: Get all current NHL conferences. + description: This only retrieves active conferences. For inactive conferences, use `/conferences/{id}`. + operationId: getConferences + tags: + - conferences + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Conferences" + 404: + $ref: "#/components/responses/Error" + /conferences/{id}: + get: + summary: Get an NHL conference. + description: You can use this to also retrieve inactive conferences. For example, the ID for the World Cup of Hockey is `7`. + operationId: getConference + tags: + - conferences + parameters: + - name: id + in: path + required: true + description: The ID of the conference. + schema: + type: number + example: 5 + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Division" + 404: + $ref: "#/components/responses/Error" + /divisions: + get: + summary: Get all current NHL divisions. + description: This only retrieves active divisions. For inactive divisions, use `/divisions/{id}`. + operationId: getDivisions + tags: + - divisions + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Divisions" + 404: + $ref: "#/components/responses/Error" + /divisions/{id}: + get: + summary: Get an NHL division. + description: You can use this to also retrieve inactive divisions. For example, the ID for the old Patrick division is `13`. + operationId: getDivision + tags: + - divisions + parameters: + - name: id + in: path + required: true + description: The ID of the division. + schema: + type: number + example: 15 + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Division" + 404: + $ref: "#/components/responses/Error" + /draft: + get: + summary: Get round-by-round data for current year's NHL Entry Draft. + operationId: getDraft + tags: + - draft + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Draft" + 404: + $ref: "#/components/responses/Error" + /draft/{year}: + get: + summary: Get round-by-round data for a specific year's NHL Entry Draft. + operationId: getDraftByYear + tags: + - draft + parameters: + - name: year + in: path + required: true + description: The draft year. + schema: + type: number + pattern: ^\d{4}$ + example: 2018 + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Draft" + 404: + $ref: "#/components/responses/Error" + /draft/prospects: + get: + summary: Get all NHL Entry Draft prospects. + description: Be forewarned that this endpoint returns a **lot** of data and there does not appear to be a way to paginate results. + operationId: getDraftProspects + tags: + - draft + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/DraftProspects" + 404: + $ref: "#/components/responses/Error" + /draft/prospects/{id}: + get: + summary: Get an NHL Entry Draft prospect. + operationId: getDraftProspect + tags: + - draft + parameters: + - name: id + in: path + required: true + description: The prospect ID. + schema: + type: number + example: 65242 + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/DraftProspects" + 404: + $ref: "#/components/responses/Error" + /game/{id}/boxscore: + get: + summary: Get the boxscore for an NHL game. + description: If you want detailed play information, you should use `/game/{id}/feed/live` or `/game/{id}/feed/live/diffPatch`. + operationId: getGameBoxscore + tags: + - games + parameters: + - $ref: '#/components/parameters/gameId' + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GameBoxscores" + 404: + $ref: "#/components/responses/Error" + /game/{id}/content: + get: + summary: Get editorials, video replays and photo highlights for an NHL game. + operationId: getGameContent + tags: + - games + parameters: + - $ref: '#/components/parameters/gameId' + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/GameContent" + 404: + $ref: "#/components/responses/Error" + /game/{id}/feed/live: + get: + summary: Get all available data for an NHL game. + description: 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. + operationId: getGame + tags: + - games + parameters: + - $ref: '#/components/parameters/gameId' + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Game" + 404: + $ref: "#/components/responses/Error" + /game/{id}/feed/live/diffPatch: + get: + summary: Get all available data for an NHL game after a specific time. + description: You can use this to return a small subset of data relating to game. + operationId: getGameDiff + tags: + - games + parameters: + - $ref: '#/components/parameters/gameId' + - name: startTimeCode + in: query + required: true + description: The prospect ID. + schema: + type: string + pattern: ^(\d{8})_(\d{4})$ + example: "20180210_0900" + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Game" + 404: + $ref: "#/components/responses/Error" + /people/{id}: + get: + summary: Get an NHL player. + operationId: getPlayer + tags: + - players + parameters: + - $ref: "#/components/parameters/playerId" + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Players" + 404: + $ref: "#/components/responses/Error" + /people/{id}/stats: + get: + summary: Get specific statistics for an NHL player. + operationId: getPlayerStats + tags: + - players + parameters: + - $ref: "#/components/parameters/playerId" + - name: stats + in: query + required: true + schema: + type: string + enum: + - "homeAndAway" + - "byDayOfWeek" + - "byMonth" + - "goalsByGameSituation" + - "onPaceRegularSeason" + - "regularSeasonStatRankings" + - "statsSingleSeason" + - "vsConference" + - "vsDivision" + - "vsTeam" + - "winLoss" + description: > + 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. + - $ref: '#/components/parameters/season' + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/PlayerStats" + 404: + $ref: "#/components/responses/Error" + /schedule: + get: + summary: Get the NHL game schedule. + operationId: getSchedule + tags: + - schedule + parameters: + - name: expand + in: query + required: false + schema: + type: string + enum: + - "schedule.brodcasts" + - "schedule.linescore" + - "schedule.ticket" + - "team.schedule.previous" + description: > + 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. + - name: teamId + in: query + required: false + schema: + type: string + example: 28 + description: Limit results to a specific team. Team ids can be found through the teams endpoint + - name: startDate + in: query + required: false + schema: + type: string + format: date + example: "2018-02-11" + description: Start date for the search. + - name: endDate + in: query + required: false + schema: + type: string + format: date + example: "2018-02-18" + description: End date for the search. + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Schedule" + 404: + $ref: "#/components/responses/Error" + /standings: + get: + summary: Get NHL division standings. + operationId: getStandings + tags: + - standings + parameters: + - name: season + in: query + required: false + schema: + type: string + format: date + example: "20032004" + description: "Standings for a specified season." + - name: date + in: query + required: false + schema: + type: string + format: date + example: "2018-01-09" + description: "Standings on a specified date." + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Standings" + 404: + $ref: "#/components/responses/Error" + /standings/{type}: + get: + summary: Get NHL standings for a specific standing type. + operationId: getStandingsByType + tags: + - standings + parameters: + - name: type + in: path + required: true + schema: + type: string + enum: + - "byConference" + - "byDivision" + - "byLeague" + - "divisionLeaders" + - "postseason" + - "preseason" + - "regularSeason" + - "wildCard" + - "wildCardWithLeaders" + description: > + 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 + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Standings" + 404: + $ref: "#/components/responses/Error" + /standingsTypes: + get: + summary: Get all available NHL standing types. + operationId: getStandingTypes + tags: + - standings + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/StandingTypes" + 404: + $ref: "#/components/responses/Error" + /statTypes: + get: + summary: Get all available NHL statistic types. + operationId: getStatTypes + tags: + - stats + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/StatTypes" + 404: + $ref: "#/components/responses/Error" + /teams: + get: + summary: Get all NHL teams. + operationId: getTeams + tags: + - teams + parameters: + - $ref: '#/components/parameters/teamExpand' + - $ref: '#/components/parameters/season' + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Teams" + 404: + $ref: "#/components/responses/Error" + /teams/{id}: + get: + summary: Get an NHL team. + operationId: getTeam + tags: + - teams + parameters: + - name: id + in: path + required: true + description: The ID of the team. + schema: + type: number + example: 28 + - $ref: '#/components/parameters/teamExpand' + - $ref: '#/components/parameters/season' + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Team" + 404: + $ref: "#/components/responses/Error" + /teams/{id}/roster: + get: + summary: Get an NHL team's roster. + operationId: getTeamRoster + tags: + - teams + parameters: + - name: id + in: path + required: true + description: The ID of the team. + schema: + type: number + example: 28 + - $ref: '#/components/parameters/season' + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Rosters" + 404: + $ref: "#/components/responses/Error" + /teams/{id}/stats: + get: + summary: Get all statistics for an NHL team. + operationId: getTeamStats + tags: + - teams + parameters: + - name: id + in: path + required: true + description: The ID of the team. + schema: + type: number + example: 28 + responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/TeamStats" + 404: + $ref: "#/components/responses/Error" +components: + parameters: + gameId: + name: id + in: path + required: true + description: 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). + schema: + type: number + example: 2017020851 + playerId: + name: id + in: path + required: true + description: The ID of the player. + schema: + type: number + example: 8466138 + season: + name: season + in: query + description: Return a team's specific season. + required: false + schema: + type: number + pattern: ^\d{8}$ + example: 20172018 + teamExpand: + name: expand + in: query + description: Expand your response for some additional data. + required: false + schema: + type: string + enum: + - "team.roster" + - "team.schedule.next" + - "team.schedule.previous" + responses: + Error: + description: Error + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + schemas: + Conference: + properties: + id: + type: number + example: 5 + name: + type: string + enum: + - "Eastern" + - "Western" + - "World Cup of Hockey" + link: + type: string + format: uri + example: "/api/v1/conferences/5" + abbreviation: + type: string + enum: + - "E" + - "W" + - "WCH" + shortName: + type: string + enum: + - "East" + - "West" + - "WCup" + active: + type: boolean + Conferences: + properties: + copyright: + type: string + teams: + type: array + items: + $ref: "#/components/schemas/Conference" + Division: + properties: + id: + type: number + example: 15 + name: + type: string + example: "Pacific" + link: + type: string + format: uri + example: "/api/v1/divisions/15" + abbreviation: + type: string + example: "P" + conference: + type: object + properties: + id: + type: number + example: 5 + name: + type: string + example: "Western" + link: + type: string + format: uri + example: "/api/v1/conferences/5" + active: + type: boolean + Divisions: + properties: + copyright: + type: string + teams: + type: array + items: + $ref: "#/components/schemas/Division" + Draft: + properties: + copyright: + type: string + drafts: + type: array + items: + type: object + properties: + draftYear: + type: number + example: 2017 + rounds: + type: array + items: + type: object + properties: + roundNumber: + type: number + example: 1 + round: + type: number + example: "1" + picks: + type: array + items: + type: object + properties: + year: + type: number + example: 2017 + round: + type: string + example: "1" + pickOverall: + type: number + example: 1 + pickInRound: + type: number + example: 1 + team: + type: object + properties: + id: + type: number + example: 1 + name: + type: string + example: "New Jersey Devils" + link: + type: string + format: uri + example: "/api/v1/teams/1" + prospect: + type: object + properties: + id: + type: number + example: 65242 + fullName: + type: string + example: "Nico Hischier" + link: + type: string + format: uri + example: "/api/v1/draft/prospects/65242" + DraftProspect: + properties: + id: + type: number + example: 65242 + fullName: + type: string + example: "Nico Hischier" + link: + type: string + format: uri + example: "/api/v1/draft/prospects/65242" + firstName: + type: string + example: "Nico" + lastName: + type: string + example: "Hischier" + birthDate: + type: string + format: date + example: "1999-01-04" + birthCity: + type: string + example: "Naters" + birthCountry: + type: string + example: "CHE" + nationality: + type: string + example: "CHE" + height: + type: string + example: "6' 2\"" + weight: + type: number + example: 179 + shootsCatches: + type: string + example: "L" + primaryPosition: + type: object + properties: + code: + type: string + example: "C" + name: + type: string + example: "Center" + type: + type: string + example: "Forward" + abbreviation: + type: string + example: "C" + prospectCategory: + type: object + properties: + id: + type: number + example: 1 + shortName: + type: string + example: "NA Skater" + name: + type: string + example: "North American Skater" + amateurTeam: + type: object + properties: + link: + type: string + format: uri + example: "/api/v1/teams/null" + amateurLeague: + type: object + properties: + link: + type: string + format: uri + example: "/api/v1/league/null" + ranks: + type: object + DraftProspects: + properties: + copyright: + type: string + prospects: + type: array + items: + $ref: "#/components/schemas/DraftProspect" + Error: + properties: + messageNumber: + type: number + example: 10 + message: + type: string + example: "Object not found" + Franchise: + properties: + id: + type: number + example: 29 + name: + type: string + example: "Sharks" + link: + type: string + format: uri + example: "/api/v1/franchises/29" + Game: + properties: + copyright: + type: string + gamePk: + type: number + example: 2017020851 + link: + type: string + format: uri + example: "/api/v1/game/2017020851/feed/live" + metaData: + type: object + properties: + wait: + type: number + example: 10 + timeStamp: + type: string + example: "20180211_054345" + gameData: + type: object + properties: + game: + type: object + properties: + pk: + type: number + example: 2017020851 + season: + type: string + example: "20172018" + type: + type: string + example: "R" + datetime: + type: object + properties: + dateTime: + type: string + format: date-time + example: "2018-02-11T03:00:00Z" + endDateTime: + type: string + format: date-time + example: "2018-02-11T05:30:42Z" + status: + type: object + properties: + abstractGameState: + type: string + example: "Final" + codedGameState: + type: string + example: "7" + detailedState: + type: string + example: "Final" + statusCode: + type: string + example: "7" + startTimeTBD: + type: boolean + teams: + type: object + properties: + away: + $ref: "#/components/schemas/Team" + home: + $ref: "#/components/schemas/Team" + players: # this is actually an associative array with keys like `ID8471709` + $ref: "#/components/schemas/Player" + venue: + type: object + properties: + name: + type: string + example: "SAP Center at San Jose" + link: + type: string + format: uri + example: "/api/v1/venues/null" + liveData: + type: object + properties: + plays: + type: object + properties: + allPlays: + type: array + items: + $ref: "#/components/schemas/GamePlay" + scoringPlays: + type: array + items: + type: number + penaltyPlays: + type: array + items: + type: number + playsByPeriod: + type: array + items: + type: object + properties: + startIndex: + type: number + example: 0 + plays: + type: array + items: + type: number + endIndex: + type: number + example: 114 + currentPlay: + $ref: "#/components/schemas/GamePlay" + linescore: + $ref: "#/components/schemas/GameLinescore" + boxscore: + $ref: "#/components/schemas/GameBoxscore" + decisions: + type: object + properties: + winner: + $ref: "#/components/schemas/GameDecisionPlayer" + loser: + $ref: "#/components/schemas/GameDecisionPlayer" + firstStar: + $ref: "#/components/schemas/GameDecisionPlayer" + secondStar: + $ref: "#/components/schemas/GameDecisionPlayer" + thirdStar: + $ref: "#/components/schemas/GameDecisionPlayer" + GameBoxscore: + properties: + teams: + type: object + properties: + away: + $ref: "#/components/schemas/GameBoxscoreTeam" + home: + $ref: "#/components/schemas/GameBoxscoreTeam" + officials: + type: array + items: + $ref: "#/components/schemas/GameOfficial" + GameBoxscores: + allOf: + - type: object + properties: + copyright: + type: string + - $ref: "#/components/schemas/GameBoxscore" + GameBoxscoreTeam: + properties: + team: + type: object + properties: + id: + type: number + example: 28 + name: + type: string + example: "San Jose Sharks" + link: + type: string + format: uri + example: "/api/v1/teams/28" + abbreviation: + type: string + example: "SJS" + triCode: + type: string + example: "SJS" + teamStats: + type: object + properties: + teamSkaterStats: + type: object + properties: + goals: + type: number + example: 6 + pim: + type: number + example: 6 + shots: + type: number + example: 30 + powerPlayPercentage: + type: string + example: "0.0" + powerPlayGoals: + type: number + example: 0 + powerPlayOpportunities: + type: number + example: 1 + faceOffWinPercentage: + type: string + example: "59.3" + blocked: + type: number + example: 21 + takeaways: + type: number + example: 9 + giveaways: + type: number + example: 6 + hits: + type: number + example: 15 + players: + type: object + properties: + person: + type: object + properties: + id: + type: number + example: 8471709 + fullName: + type: string + example: "Marc-Edouard Vlasic" + link: + type: string + format: uri + example: "/api/v1/people/8471709" + shootsCatches: + type: string + example: "L" + rosterStatus: + type: string + example: "Y" + jerseyNumber: + type: string + example: "44" + position: + type: object + properties: + code: + type: string + example: "D" + name: + type: string + example: "Defenseman" + type: + type: string + example: "Defenseman" + abbreviation: + type: string + example: "D" + stats: + type: object + properties: + skaterStats: + type: object + properties: + timeOnIce: + type: string + example: "23:04" + assists: + type: number + example: 0 + goals: + type: number + example: 0 + shots: + type: number + example: 2 + hits: + type: number + example: 0 + powerPlayGoals: + type: number + example: 0 + powerPlayAssists: + type: number + example: 0 + penaltyMinutes: + type: number + example: 0 + faceOffWins: + type: number + example: 0 + faceoffTaken: + type: number + example: 0 + takeaways: + type: number + example: 0 + giveaways: + type: number + example: 1 + shortHandedGoals: + type: number + example: 0 + shortHandedAssists: + type: number + example: 0 + blocked: + type: number + example: 0 + plusMinus: + type: number + example: 1 + evenTimeOnIce: + type: string + example: "18:12" + powerPlayTimeOnIce: + type: string + example: "1:07" + shortHandedTimeOnIce: + type: string + example: "3:45" + goalies: + type: array + items: + type: number + skaters: + type: array + items: + type: number + onIce: + type: array + items: + type: number + onIcePlus: + type: array + items: + type: object + properties: + playerId: + type: number + example: 8477180 + shiftDuration: + type: number + example: 458 + stamina: + type: number + example: 33 + scratches: + type: array + items: + type: number + penaltyBox: + type: array + items: + type: number + coaches: + type: array + items: + type: object + properties: + person: + type: object + properties: + fullName: + type: string + example: "Peter DeBoer" + link: + type: string + format: uri + example: "/api/v1/people/null" + position: + type: object + properties: + code: + type: string + example: "HC" + name: + type: string + example: "Head Coach" + type: + type: string + example: "Head Coach" + abbreviation: + type: string + example: "Head Coach" + GameContent: + properties: + copyright: + type: string + link: + type: string + format: uri + example: "/api/v1/game/2017020851/content" + editorial: + type: object + properties: + preview: + $ref: "#/components/schemas/GameEditorials" + articles: + $ref: "#/components/schemas/GameEditorials" + recap: + $ref: "#/components/schemas/GameEditorials" + media: + type: object + properties: + epg: + type: array + items: + type: object + anyOf: + - $ref: "#/components/schemas/GameMediaNHLTV" + - $ref: "#/components/schemas/GameMediaAudio" + - $ref: "#/components/schemas/GameHighlightType" + milestones: + type: object + properties: + title: + type: string + enum: + - "Milestones" + streamStart: + type: string + format: date-time + example: "2018-02-11T03:04:32+0000" + items: + type: array + items: + type: object + properties: + title: + type: string + example: "Broadcast Start" + description: + type: string + example: "Broadcast Start" + type: + type: string + enum: + - "BROADCAST_START" + - "BROADCAST_END" + - "GOAL" + - "PERIOD_END" + - "PERIOD_START" + - "SHOT" + timeAbsolute: + type: string + format: date-time + example: "2018-02-11T03:04:36+0000" + timeOffset: + type: string + example: "4" + period: + type: string + example: "1" + statsEventId: + type: string + example: "10" + teamId: + type: string + example: "28" + playerId: + type: string + example: "8477046" + periodTime: + type: string + example: "01:15" + ordinalNum: + type: string + example: "1st" + highlight: + $ref: "#/components/schemas/GameHighlight" + highlights: + type: object + properties: + scoreboard: + $ref: "#/components/schemas/GameHighlights" + gameCenter: + $ref: "#/components/schemas/GameHighlights" + GameEditorial: + properties: + type: + type: string + example: "article" + state: + type: string + example: "A" + date: + type: string + format: date-time + example: "2018-02-10T16:57:06-0500" + id: + type: string + example: "295823824" + headline: + type: string + example: "Oilers at Sharks preview" + subhead: + type: string + example: "Backups Montoya, Dell to start for Edmonton, San Jose" + seoTitle: + type: string + example: "Edmonton Oilers San Jose Sharks game preview" + seoDescription: + type: string + example: "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: + type: string + example: "Game preview, Edmonton Oilers, San Jose Sharks, Aaron Dell, Al Montoya, Feb 10" + slug: + type: string + example: "edmonton-oilers-san-jose-sharks-game-preview" + commenting: + type: boolean + tagline: + type: string + tokenData: # this is actually an associative array with keys like `token-EBDA2F0039BF4445D2C91`. + type: object + properties: + tokenGUID: + type: string + example: "token-EBDA2F0039BF4445D2C91" + type: + type: string + enum: + - "hyperLink" + - "playerCard" + id: + type: string + example: "8471709" + teamId: + type: string + example: "28" + name: + type: string + example: "Marc-Edouard Vlasic" + seoName: + type: string + example: "marc-edouard-vlasic" + href: + type: string + example: "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018" + hrefMobile: + type: string + example: "https://www.nhl.com/player/keegan-lowe-8476397?season=20172018" + contributor: + type: object + properties: + contributors: + type: array + items: + type: object + properties: + name: + type: string + example: "Eric Gilmore" + twitter: + type: string + source: + type: string + example: "NHL.com Correspondent" + keywordsDisplay: + type: array + items: + $ref: "#/components/schemas/GameEditorialKeyword" + keywordsAll: + type: array + items: + $ref: "#/components/schemas/GameEditorialKeyword" + approval: + type: string + url: + type: string + example: "/news/edmonton-oilers-san-jose-sharks-game-preview/c-295823824?game_pk=2017020851" + dataURI: + type: string + example: "/nhl/id/v1/295823824/details/web-v1.json" + primaryKeyword: + $ref: "#/components/schemas/GameEditorialKeyword" + media: + type: object + properties: + type: + type: string + example: "photo" + image: + $ref: "#/components/schemas/Photo" + preview: + type: string + format: html + example: "
OILERS (23-26-4) at SHARKS (28-18-8)
10 p.m. ET; NBCSCA, CITY, SN360, SN, NHL.TV
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.
" + GameEditorialKeyword: + properties: + type: + type: string + enum: + - "bodyParagraphCount" + - "bodyWordCount" + - "clob_autoTagSkip_playerCards" + - "content" + - "embeddable" + - "gameId" + - "language" + - "playerId" + - "previewParagraphCount" + - "primaryTag" + - "previewWordCount" + - "shareable" + - "statsEventId" + - "teamFileCode" + - "teamId" + value: + type: string + example: "en" + displayName: + type: string + example: "English" + GameEditorials: + properties: + title: + type: string + example: "Preview" + topicList: + type: string + items: + type: array + items: + $ref: "#/components/schemas/GameEditorial" + GameHighlight: + properties: + type: + type: string + enum: + - "video" + id: + type: string + example: "57602103" + date: + type: string + format: date-time + example: "2018-02-10T22:00:00-0500" + title: + type: string + example: "Goodrow buries Hansen's pass" + blurb: + type: string + example: "EDM@SJS: Goodrow snaps Hansen's pass by Montoya" + description: + type: string + example: "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: + type: string + example: "00:51" + authFlow: + type: boolean + mediaPlaybackId: + type: string + example: "57602103" + mediaState: + type: string + example: "MEDIA_ARCHIVE" + keywords: + type: array + items: + $ref: "#/components/schemas/GameEditorialKeyword" + image: + $ref: "#/components/schemas/Photo" + playbacks: + type: array + items: + type: object + properties: + name: + type: string + enum: + - "FLASH_192K_320X180" + - "FLASH_450K_400X224" + - "FLASH_1200K_640X360" + - "FLASH_1800K_960X540" + - "HTTP_CLOUD_MOBILE" + - "HTTP_CLOUD_TABLET" + - "HTTP_CLOUD_TABLET_60" + - "HTTP_CLOUD_WIRED" + - "HTTP_CLOUD_WIRED_60" + - "HTTP_CLOUD_WIRED_WEB" + width: + type: string + example: "960" + height: + type: string + example: "540" + url: + type: string + format: video + example: "http://md-akc.med.nhl.com/mp4/nhl/2018/02/11/ddec1fcc-3772-4769-a547-314de76c6c11/1518322152840/asset_1800k.mp4" + GameHighlights: + properties: + scoreboard: + $ref: "#/components/schemas/GameHighlightType" + gameCenter: + $ref: "#/components/schemas/GameHighlightType" + GameHighlightType: + properties: + title: + type: string + example: "Highlights" + topicList: + type: string + example: "293642378" + items: + type: array + items: + $ref: "#/components/schemas/GameHighlight" + GamePeriod: + properties: + periodType: + type: string + example: "REGULAR" + startTime: + type: string + format: date-time + example: "2018-02-11T03:09:50Z" + endTime: + type: string + format: date-time + example: "2018-02-11T03:44:47Z" + num: + type: number + example: 1 + ordinalNum: + type: string + example: "1st" + home: + type: object + properties: + goals: + type: number + example: 2 + shotsOnGoal: + type: number + example: 14 + rinkSide: + type: string + example: "left" + away: + type: object + properties: + goals: + type: number + example: 0 + shotsOnGoal: + type: number + example: 9 + rinkSide: + type: string + example: "right" + GameDecisionPlayer: + properties: + id: + type: number + example: 8477180 + fullName: + type: string + example: "Aaron Dell" + link: + type: string + format: uri + example: "/api/v1/people/8477180" + GameLinescore: + properties: + currentPeriod: + type: number + example: 3 + currentPeriodOrdinal: + type: string + example: "3rd" + currentPeriodTimeRemaining: + type: string + example: "Final" + periods: + type: array + items: + $ref: "#/components/schemas/GamePeriod" + shootoutInfo: + type: object + properties: + away: + type: object + properties: + scores: + type: number + example: 0 + attempts: + type: number + example: 0 + home: + type: object + properties: + scores: + type: number + example: 0 + attempts: + type: number + example: 0 + teams: + type: object + properties: + home: + $ref: "#/components/schemas/GameLinescoreTeam" + away: + $ref: "#/components/schemas/GameLinescoreTeam" + powerPlayStrength: + type: string + example: "Even" + hasShootout: + type: boolean + intermissionInfo: + type: object + properties: + intermissionTimeRemaining: + type: number + example: 0 + intermissionTimeElapsed: + type: number + example: 0 + inIntermission: + type: boolean + powerPlayInfo: + type: object + properties: + situationTimeRemaining: + type: number + example: 0 + situationTimeElapsed: + type: number + example: 72 + inSituation: + type: boolean + GameLinescoreTeam: + properties: + team: + type: object + properties: + id: + type: number + example: 28 + name: + type: string + example: "San Jose Sharks" + link: + type: string + format: uri + example: "/api/v1/teams/28" + abbreviation: + type: string + example: "SJS" + triCode: + type: string + example: "SJS" + goals: + type: number + example: 6 + shotsOnGoal: + type: number + example: 30 + goaliePulled: + type: boolean + numSkaters: + type: number + example: 5 + powerPlay: + type: boolean + GameMediaAudio: + properties: + title: + type: string + example: "Audio" + items: + type: array + items: + type: object + properties: + mediaState: + type: string + example: "MEDIA_DONE" + mediaPlaybackId: + type: string + example: "57463903" + mediaFeedType: + type: string + example: "HOME" + callLetters: + type: string + example: "KFOX" + eventId: + type: string + example: "221-1007449" + language: + type: string + example: "eng" + freeGame: + type: boolean + feedName: + type: string + gamePlus: + type: boolean + GameMediaNHLTV: + properties: + title: + type: string + example: "NHLTV" + platform: + type: string + example: "web" + items: + type: array + items: + type: object + properties: + guid: + type: string + example: "dbb39fa8-6679-4b22-a8c5-71eb5e39b462" + mediaState: + type: string + example: "MEDIA_ARCHIVE" + mediaPlaybackId: + type: string + example: "57463703" + mediaFeedType: + type: string + example: "HOME" + callLetters: + type: string + example: "NBCS-CA" + eventId: + type: string + example: "221-1007449" + language: + type: string + example: "eng" + freeGame: + type: boolean + feedName: + type: string + gamePlus: + type: boolean + GameOfficial: + properties: + official: + type: object + properties: + id: + type: number + example: 2071 + fullName: + type: string + example: "Tim Peel" + link: + type: string + format: uri + example: "/api/v1/people/2071" + officialType: + type: string + enum: + - "Linesman" + - "Referee" + GamePlay: + properties: + players: + type: array + items: + type: object + properties: + player: + type: object + properties: + id: + type: number + example: 8476881 + fullName: + type: string + example: "Tomas Hertl" + link: + type: string + format: uri + example: "/api/v1/people/8476881" + playerType: + type: string + example: "Winner" + result: + type: object + properties: + event: + type: string + example: "Game End" + eventCode: + type: string + example: "SJS505" + eventTypeId: + type: string + example: "GAME_END" + description: + type: string + example: "Game End" + about: + type: object + properties: + eventIdx: + type: number + example: 315 + eventId: + type: number + example: 505 + period: + type: number + example: 3 + periodType: + type: string + example: "REGULAR" + ordinalNum: + type: string + example: "3rd" + periodTime: + type: string + example: "20:00" + periodTimeRemaining: + type: string + example: "00:00" + dateTime: + type: string + format: date-time + example: "2018-02-11T05:30:42Z" + goals: + type: object + properties: + away: + type: number + example: 4 + home: + type: number + example: 6 + coordinates: + type: object + properties: + x: + type: number + example: 0 + y: + type: number + example: 0 + team: + type: object + properties: + id: + type: number + example: 28 + name: + type: string + example: "San Jose Sharks" + link: + type: string + format: uri + example: "/api/v1/teams/28" + triCode: + type: string + example: "SJS" + Photo: + properties: + title: + type: string + altText: + type: string + cuts: # this is actually an associative array with keys like `2568x1444` + type: object + properties: + aspectRatio: + type: string + example: "16:9" + width: + type: number + example: 2568 + height: + type: number + example: 1444 + src: + type: string + format: url + example: "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg" + at2x: + type: string + format: url + example: "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg" + at3x: + type: string + format: url + example: "https://nhl.bamcontent.com/images/photos/295824704/2568x1444/cut.jpg" + Player: + properties: + id: + type: number + example: 8466138 + fullName: + type: string + example: "Joe Thornton" + link: + type: string + format: uri + example: "/api/v1/people/8466138" + firstName: + type: string + example: "Joe" + lastName: + type: string + example: "Thornton" + primaryNumber: + type: string + example: "19" + birthDate: + type: string + format: date + example: "1979-07-02" + currentAge: + type: number + example: 38 + birthCity: + type: string + example: "London" + birthStateProvince: + type: string + example: "ON" + birthCountry: + type: string + example: "CAN" + nationality: + type: string + example: "CAN" + height: + type: string + example: "6' 4\"" + weight: + type: number + example: 220 + active: + type: boolean + alternateCaptain: + type: boolean + captain: + type: boolean + rookie: + type: boolean + shootsCatches: + type: string + enum: + - "L" + - "R" + rosterStatus: + type: string + example: "I" + currentTeam: + type: object + properties: + id: + type: number + example: 28 + name: + type: string + example: "San Jose Sharks" + link: + type: string + format: uri + example: "/api/v1/teams/28" + primaryPosition: + type: object + properties: + code: + type: string + example: "C" + name: + type: string + example: "Center" + type: + type: string + example: "Forward" + abbreviation: + type: string + example: "C" + Players: + required: + - copyright + - people + properties: + copyright: + type: string + teams: + type: array + items: + $ref: "#/components/schemas/Player" + PlayerStats: + properties: + copyright: + type: string + stats: + type: array + items: + type: object + properties: + type: + type: object + properties: + displayName: + type: string + enum: + - "byDayOfWeek" + - "byMonth" + - "goalsByGameSituation" + - "homeAndAway" + - "onPaceRegularSeason" + - "regularSeasonStatRankings" + - "statsSingleSeason" + - "vsConference" + - "vsDivision" + - "vsTeam" + - "winLoss" + splits: + type: array + items: + type: object + properties: + season: + type: string + example: "20172018" + stat: + type: object + properties: + timeOnIce: + type: string + example: "862:13" + assists: + type: string + example: 23 + goals: + type: number + example: 13 + pim: + type: number + example: 38 + shots: + type: number + example: 75 + games: + type: number + example: 47 + hits: + type: number + example: 32 + powerPlayGoals: + type: number + example: 7 + powerPlayPoints: + type: number + example: 18 + powerPlayTimeOnIce: + type: number + example: "168:28" + evenTimeOnIce: + type: number + example: "692:50" + penaltyMinutes: + type: number + example: "38" + faceOffPct: + type: number + format: double + example: 52.04 + shotPct: + type: number + format: float + example: 17.3 + gameWinningGoals: + type: number + example: 1 + overTimeGoals: + type: number + example: 0 + shortHandedGoals: + type: number + example: 0 + shortHandedPoints: + type: number + example: 0 + shortHandedTimeOnIce: + type: string + example: "00:55" + blocked: + type: number + example: 18 + plusMinus: + type: number + example: -9 + points: + type: number + example: 36 + shifts: + type: number + example: 1077 + timeOnIcePerGame: + type: string + example: "18:20" + evenTimeOnIcePerGame: + type: string + example: "14:44" + shortHandedTimeOnIcePerGame: + type: string + example: "00:01" + powerPlayTimeOnIcePerGame: + type: string + example: "03:35" + rankPowerPlayGoals: + type: string + example: "1st" + rankBlockedShots: + type: string + example: "405th" + rankAssists: + type: string + example: "51st" + rankShotPct: + type: string + example: "246th" + rankGoals: + type: string + example: "13th" + rankHits: + type: string + example: "19th" + rankPenaltyMinutes: + type: string + example: "111th" + rankShortHandedGoals: + type: string + example: "133rd" + rankPlusMinus: + type: string + example: "176th" + rankShots: + type: string + example: "2nd" + rankPoints: + type: string + example: "20th" + rankOvertimeGoals: + type: string + example: "9th" + rankGamesPlayed: + type: string + example: "1st" + goalsInFirstPeriod: + type: number + example: 6 + goalsInSecondPeriod: + type: number + example: 3 + goalsInThirdPeriod: + type: number + example: 4 + goalsTrailingByOne: + type: number + example: 2 + goalsTrailingByTwo: + type: number + example: 1 + goalsTrailingByThreePlus: + type: number + example: 1 + goalsWhenTied: + type: number + example: 4 + goalsLeadingByOne: + type: number + example: 2 + goalsLeadingByTwo: + type: number + example: 3 + isHome: + type: boolean + isWin: + type: boolean + isOT: + type: boolean + month: + type: number + example: 1 + dayOfWeek: + type: number + example: 1 + opponent: + type: object + properties: + id: + type: number + example: 1 + name: + type: string + example: "New Jersey Devils" + link: + type: string + format: uri + example: "/api/v1/teams/1" + opponentDivision: + type: object + properties: + id: + type: number + example: 16 + name: + type: string + example: "Central" + link: + type: string + format: uri + example: "/api/v1/divisions/16" + opponentConference: + type: object + properties: + id: + type: number + example: 5 + name: + type: string + example: "Western" + link: + type: string + format: uri + example: "/api/v1/conferences/5" + Roster: + properties: + person: + type: object + properties: + id: + type: number + example: 8466138 + fullName: + type: string + example: "Joe Thornton" + link: + type: string + format: uri + example: "/api/v1/people/8466138" + jerseyNumber: + type: number + example: 19 + position: + type: object + properties: + code: + type: string + example: "C" + name: + type: string + example: "Center" + type: + type: string + example: "Forward" + abbreviation: + type: string + example: "C" + Rosters: + properties: + copyright: + type: string + teams: + type: array + items: + $ref: "#/components/schemas/Roster" + Schedule: + properties: + copyright: + type: string + totalItems: + type: number + example: 9 + totalEvents: + type: number + example: 0 + totalGames: + type: number + example: 9 + totalMatches: + type: number + example: 0 + wait: + type: number + example: 10 + dates: + type: array + items: + $ref: "#/components/schemas/ScheduleDay" + ScheduleDay: + properties: + date: + type: string + format: date + example: "2018-02-10" + totalItems: + type: number + example: 9 + totalEvents: + type: number + example: 0 + totalGames: + type: number + example: 9 + totalMatches: + type: number + example: 0 + games: + type: array + items: + $ref: "#/components/schemas/ScheduleGame" + events: + type: array + items: + type: object + matches: + type: array + items: + type: object + ScheduleGame: + properties: + gamePk: + type: number + example: 2017020851 + link: + type: string + format: uri + example: "/api/v1/game/2017020851/feed/live" + gameType: + type: string + example: "R" + season: + type: string + example: "20172018" + gameDate: + type: string + format: date-time + example: "2018-02-11T03:00:00Z" + status: + type: object + properties: + abstractGameState: + type: string + example: "Final" + codedGameState: + type: string + example: "7" + detailedState: + type: string + example: "Final" + statusCode: + type: string + example: "7" + startTimeTBD: + type: boolean + teams: + type: object + properties: + away: + type: object + properties: + leagueRecord: + type: object + properties: + wins: + type: number + example: 23 + losses: + type: number + example: 27 + ot: + type: number + example: 4 + type: + type: string + example: "league" + score: + type: number + example: 4 + team: + type: object + properties: + id: + type: number + example: 22 + name: + type: string + example: "Edmonton Oilers" + link: + type: string + example: "/api/v1/teams/22" + home: + type: object + properties: + leagueRecord: + type: object + properties: + wins: + type: number + example: 29 + losses: + type: number + example: 18 + ot: + type: number + example: 8 + type: + type: string + example: "league" + score: + type: number + example: 6 + team: + type: object + properties: + id: + type: number + example: 28 + name: + type: string + example: "San Jose Sharks" + link: + type: string + format: uri + example: "/api/v1/teams/28" + linescore: + $ref: "#/components/schemas/GameLinescore" + venue: + type: object + properties: + name: + type: string + example: "SAP Center at San Jose" + link: + type: string + format: uri + example: "/api/v1/venues/null" + tickets: + type: array + items: + type: object + properties: + ticketType: + type: string + enum: + - "buysell" + - "club buysell" + - "club mobile" + - "club mobile buysell" + - "club ticket" + - "mobile app ticket" + - "mobile buysell" + - "mobile ticket" + - "tablet app ticket" + - "ticket" + ticketLink: + type: string + format: url + example: "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: + type: object + properties: + link: + type: string + format: uri + example: "/api/v1/game/2017020851/content" + Standings: + properties: + copyright: + type: string + records: + type: array + items: + type: object + properties: + standingsType: + type: string + enum: + - "regularSeason" + league: + type: object + properties: + id: + type: number + example: 133 + name: + type: string + example: "National Hockey League" + link: + type: string + format: uri + example: "/api/v1/league/133" + division: + type: object + properties: + id: + type: number + example: 15 + name: + type: string + example: "Pacific" + link: + type: string + format: uri + example: "/api/v1/divisions/15" + conference: + type: object + properties: + id: + type: number + example: 5 + name: + type: string + example: "Western" + link: + type: string + format: uri + example: "/api/v1/conferences/5" + teamRecords: + type: array + items: + type: object + properties: + team: + type: object + properties: + id: + type: number + example: 28 + name: + type: string + example: "San Jose Sharks" + link: + type: string + format: uri + example: "/api/v1/teams/28" + leagueRecord: + type: object + properties: + wins: + type: number + example: 29 + losses: + type: number + example: 18 + ot: + type: number + example: 8 + type: + type: string + example: "league" + goalsAgainst: + type: number + example: 154 + goalsScored: + type: number + example: 162 + points: + type: number + example: 66 + divisionRank: + type: string + example: "2" + conferenceRank: + type: string + example: "7" + leagueRank: + type: string + example: "11" + wildCardRank: + type: string + example: "0" + row: + type: number + example: 26 + gamesPlayed: + type: number + example: 55 + streak: + type: object + properties: + streakType: + type: string + example: "wins" + streakNumber: + type: number + example: 1 + streakCode: + type: string + example: "W1" + lastUpdated: + type: string + format: date-time + example: "2018-02-11T00:57:18Z" + StandingTypes: + items: + type: object + properties: + name: + type: string + example: "regularSeason" + description: + type: string + example: "Regular Season Standings" + StatTypes: + items: + type: object + properties: + displayName: + type: string + enum: + - "byDayOfWeek" + - "byDayOfWeekPlayoffs" + - "byMonth" + - "byMonthPlayoffs" + - "careerPlayoffs" + - "careerRegularSeason" + - "gameLog" + - "goalsByGameSituation" + - "goalsByGameSituationPlayoffs" + - "homeAndAway" + - "homeAndAwayPlayoffs" + - "onPaceRegularSeason" + - "playoffGameLog" + - "playoffStatRankings" + - "regularSeasonStatRankings" + - "statsSingleSeason" + - "statsSingleSeasonPlayoffs" + - "vsConference" + - "vsConferencePlayoffs" + - "vsDivision" + - "vsDivisionPlayoffs" + - "vsTeam" + - "vsTeamPlayoffs" + - "winLoss" + - "winLossPlayoffs" + - "yearByYear" + - "yearByYearPlayoffs" + - "yearByYearPlayoffsRank" + - "yearByYearRank" + Team: + properties: + id: + type: number + example: 28 + name: + type: string + example: "San Jose Sharks" + link: + type: string + format: uri + example: "/api/v1/teams/28" + venue: + $ref: "#/components/schemas/Venue" + abbreviation: + type: string + example: "SJS" + triCode: + type: string + example: "SJS" + teamName: + type: string + example: "Sharks" + locationName: + type: string + example: "San Jose" + firstYearOfPlay: + type: number + example: 1990 + division: + type: object + properties: + id: + type: number + example: 15 + name: + type: string + example: "Pacific" + link: + type: string + format: uri + example: "/api/v1/divisions/15" + conference: + type: object + properties: + id: + type: number + example: 5 + name: + type: string + example: "Western" + link: + type: string + format: uri + example: "/api/v1/conferences/5" + franchise: + $ref: "#/components/schemas/Franchise" + roster: + type: object + properties: + roster: + type: array + items: + $ref: "#/components/schemas/Roster" + nextGameSchedule: + type: object + properties: + totalItems: + type: number + example: 1 + totalEvents: + type: number + example: 0 + totalGames: + type: number + example: 1 + totalMatches: + type: number + example: 0 + dates: + type: array + items: + type: object + properties: + date: + type: string + format: date + example: "2018-02-10" + totalItems: + type: number + example: 1 + totalEvents: + type: number + example: 0 + totalGames: + type: number + example: 1 + totalMatches: + type: number + example: 0 + games: + type: array + items: + type: object + properties: + gamePk: + type: number + example: 2017020851 + link: + type: string + format: uri + example: "/api/v1/game/2017020851/feed/live" + gameType: + type: string + example: "R" + season: + type: string + example: "20172018" + gameDate: + type: string + format: date-time + example: "2018-02-11T03:00:00Z" + status: + type: object + properties: + abstractGameState: + type: string + enum: + - "Live" + - "Preview" + codedGameState: + type: string + enum: + - "2" + - "3" + example: "3" + detailedState: + type: string + enum: + - "In Progress" + - "Pre-Game" + statusCode: + type: string + enum: + - "2" + - "3" + startTimeTBD: + type: boolean + teams: + type: object + properties: + away: + type: object + properties: + leagueRecord: + type: object + properties: + wins: + type: number + example: 23 + losses: + type: number + example: 26 + ot: + type: number + example: 4 + type: + type: string + example: "league" + score: + type: number + example: 0 + team: + type: object + properties: + id: + type: number + example: 22 + name: + type: string + example: "Edmonton Oilers" + link: + type: string + format: uri + example: "/api/v1/teams/22" + home: + type: object + properties: + leagueRecord: + type: object + properties: + wins: + type: number + example: 28 + losses: + type: number + example: 18 + ot: + type: number + example: 8 + type: + type: string + example: "league" + score: + type: number + example: 2 + team: + type: object + properties: + id: + type: number + example: 28 + name: + type: string + example: "San Jose Sharks" + link: + type: string + format: uri + example: "/api/v1/teams/28" + venue: + type: object + properties: + name: + type: string + example: "SAP Center at San Jose" + link: + type: string + format: uri + example: "/api/v1/venues/null" + content: + type: object + properties: + link: + type: string + format: uri + example: "/api/v1/game/2017020851/content" + events: + type: array + items: + type: object + matches: + type: array + items: + type: object + shortName: + type: string + example: "San Jose" + officialSiteUrl: + type: string + format: url + example: "http://www.sjsharks.com" + franchiseId: + type: number + example: 29 + active: + type: boolean + Teams: + properties: + copyright: + type: string + teams: + type: array + items: + $ref: "#/components/schemas/Team" + TeamStats: + properties: + copyright: + type: string + stats: + type: array + items: + type: object + properties: + type: + type: object + properties: + displayName: + type: string + example: "statsSingleSeason" + splits: + type: array + items: + type: object + properties: + stat: + type: object + properties: + gamesPlayed: + type: number + example: 55 + wins: + type: number + example: 29 + losses: + type: number + example: 18 + ot: + type: number + example: 8 + pts: + type: number + example: 66 + ptPctg: + type: string + example: "60.0" + goalsPerGame: + type: number + format: float + example: 2.891 + goalsAgainstPerGame: + type: number + format: float + example: 2.745 + evGGARatio: + type: number + format: float + example: 0.8532 + powerPlayPercentage: + type: string + example: "23.9" + powerPlayGoals: + type: number + example: 44 + powerPlayGoalsAgainst: + type: number + example: 26 + powerPlayOpportunities: + type: number + example: 184 + penaltyKillPercentage: + type: string + example: "84.6" + shotsPerGame: + type: number + format: float + example: 32.8 + shotsAllowed: + type: number + format: float + example: 30.2182 + winScoreFirst: + type: number + format: float + example: 0.679 + winOppScoreFirst: + type: number + format: float + example: 0.37 + winLeadFirstPer: + type: number + format: float + example: 0.85 + winLeadSecondPer: + type: number + format: float + example: 0.952 + winOutshootOpp: + type: number + format: float + example: 0.467 + winOutshotByOpp: + type: number + format: float + example: 0.6 + faceOffsTaken: + type: number + example: 3300 + faceOffsWon: + type: number + example: 1675 + faceOffsLost: + type: number + example: 1625 + faceOffWinPercentage: + type: string + example: "50.8" + shootingPctg: + type: number + format: float + example: 8.8 + savePctg: + type: number + format: float + example: 0.909 + team: + type: object + properties: + id: + type: number + example: 28 + name: + type: string + example: "San Jose Sharks" + link: + type: string + format: uri + example: "/api/v1/teams/28" + Venue: + properties: + name: + type: string + example: "SAP Center at San Jose" + link: + type: string + format: uri + example: "/api/v1/venues/null" + city: + type: string + example: "San Jose" + timeZone: + type: object + properties: + id: + type: string + example: "America/Los_Angeles" + offset: + type: number + example: -8 + tz: + type: string + example: "PST"