{"ok":true,"site":"nhl","host":"nhl.com","about":"NHL stats (nhl.com/stats) via the NHL public JSON APIs (api.nhle.com/stats/rest and api-web.nhle.com). Covers league leaders, skater, goalie and team stat reports, player search, profiles and game logs, game details, standings, scores and schedules.","commands":[{"command":"get-skater-leaders","summary":"Top-10 skater leaders for points, goals or assists in a season (optionally rookies or defensemen only)","params":[{"name":"stat","type":"string","required":true,"description":"Leader category","oneOf":["points","goals","assists"]},{"name":"cayenneExp","type":"string","description":"Cayenne filter expression. Season is an 8-digit id like 20262027; gameType 2=regular season, 3=playoffs. You can append \"and isRookie = 'Y'\" or \"and player.positionCode = 'D'\".","default":"season=20262027 and gameType=2"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-skater-leaders?cayenneExp=season%3D20262027+and+gameType%3D2+and+isRookie+%3D+%27Y%27"},{"command":"get-goalie-leaders","summary":"Top-10 goalie leaders by goals-against average, save percentage or shutouts in a season","params":[{"name":"stat","type":"string","required":true,"description":"Leader category","oneOf":["gaa","savePctg","shutouts"]},{"name":"cayenneExp","type":"string","description":"Cayenne filter expression, e.g. season=20262027 and gameType=2 and gamesPlayed >= 2","default":"season=20262027 and gameType=2 and gamesPlayed >= 2"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-goalie-leaders"},{"command":"list-skater-stats","summary":"Skater summary stats report (GP, G, A, PTS, +/-, PPG, TOI and more), with filters, sorting and paging","params":[{"name":"cayenneExp","type":"string","description":"Cayenne filter. Season range: gameTypeId=2 and seasonId<=20262027 and seasonId>=20262027. Prefix 'franchiseId=5 and ' to filter by franchise (ids from list-franchises). Add 'and skaterFullName likeIgn","default":"gameTypeId=2 and seasonId<=20262027 and seasonId>=20262027"},{"name":"sort","type":"string","description":"JSON array of sort keys, e.g. [{\"property\":\"goals\",\"direction\":\"DESC\"},{\"property\":\"playerId\",\"direction\":\"ASC\"}]. Common properties: points, goals, assists, gamesPlayed, plusMinus, shots, timeOnIcePe","default":"[{\"property\":\"points\",\"direction\":\"DESC\"},{\"property\":\"gamesPlayed\",\"direction\":\"ASC\"},{\"property\":\"playerId\",\"direction\":\"ASC\"}]"},{"name":"isAggregate","type":"boolean","description":"true sums multiple seasons or games into one row per player (all-time or date-range totals)","default":false},{"name":"isGame","type":"boolean","description":"true returns game-level rows filtered by gameDate","default":false},{"name":"start","type":"number","description":"Row offset (0, 50, 100, ...)","default":0},{"name":"api_limit","type":"number","description":"Rows per page (sent to the site as \"limit\"; clify's own --limit only shapes the output)","default":50}],"exampleUrl":"https://clify-dev.netlify.app/nhl/list-skater-stats?cayenneExp=gameTypeId%3D2+and+seasonId%3C%3D20262027+and+seasonId%3E%3D20262027"},{"command":"list-skater-time-on-ice","summary":"Skater time-on-ice report (total, EV, PP, SH, OT TOI and shifts), with filters, sorting and paging","params":[{"name":"cayenneExp","type":"string","description":"Cayenne filter, e.g. franchiseId=5 and gameTypeId=2 and seasonId<=20252026 and seasonId>=20252026","default":"gameTypeId=2 and seasonId<=20262027 and seasonId>=20262027"},{"name":"sort","type":"string","description":"JSON sort array. Properties include timeOnIce, timeOnIcePerGame, ppTimeOnIce, shTimeOnIce, shifts.","default":"[{\"property\":\"timeOnIce\",\"direction\":\"DESC\"},{\"property\":\"playerId\",\"direction\":\"ASC\"}]"},{"name":"isAggregate","type":"boolean","description":"Aggregate across seasons or games","default":false},{"name":"isGame","type":"boolean","description":"Game-level rows (filter by gameDate)","default":false},{"name":"start","type":"number","description":"Row offset","default":0},{"name":"api_limit","type":"number","description":"Rows per page (sent to the site as \"limit\"; clify's own --limit only shapes the output)","default":50}],"exampleUrl":"https://clify-dev.netlify.app/nhl/list-skater-time-on-ice?cayenneExp=franchiseId%3D5+and+gameTypeId%3D2+and+seasonId%3C%3D20252026+and+seasonId%3E%3D20252026"},{"command":"list-goalie-stats","summary":"Goalie summary stats report (W, L, GAA, SV%, SO), with filters, sorting and paging","params":[{"name":"cayenneExp","type":"string","description":"Cayenne filter, e.g. gameTypeId=2 and seasonId<=20262027 and seasonId>=20262027 (prefix franchiseId=N and ... to filter by franchise)","default":"gameTypeId=2 and seasonId<=20262027 and seasonId>=20262027"},{"name":"sort","type":"string","description":"JSON sort array. Properties include wins, savePct, goalsAgainstAverage, shutouts, gamesPlayed.","default":"[{\"property\":\"wins\",\"direction\":\"DESC\"},{\"property\":\"savePct\",\"direction\":\"DESC\"},{\"property\":\"playerId\",\"direction\":\"ASC\"}]"},{"name":"isAggregate","type":"boolean","description":"Aggregate across seasons","default":false},{"name":"isGame","type":"boolean","description":"Game-level rows","default":false},{"name":"start","type":"number","description":"Row offset","default":0},{"name":"api_limit","type":"number","description":"Rows per page (sent to the site as \"limit\"; clify's own --limit only shapes the output)","default":50}],"exampleUrl":"https://clify-dev.netlify.app/nhl/list-goalie-stats?cayenneExp=gameTypeId%3D2+and+seasonId%3C%3D20262027+and+seasonId%3E%3D20262027"},{"command":"list-team-stats","summary":"Team summary stats (W, L, OTL, PTS, GF, GA, PP%, PK%) by season, or all-time totals with isAggregate=true","params":[{"name":"cayenneExp","type":"string","description":"Cayenne filter. One season: gameTypeId=2 and seasonId<=20262027 and seasonId>=20262027. All-time: seasonId>=19171918 with isAggregate=true.","default":"gameTypeId=2 and seasonId<=20262027 and seasonId>=20262027"},{"name":"sort","type":"string","description":"JSON sort array. Use franchiseId instead of teamId as the tiebreaker when isAggregate=true.","default":"[{\"property\":\"points\",\"direction\":\"DESC\"},{\"property\":\"wins\",\"direction\":\"DESC\"},{\"property\":\"teamId\",\"direction\":\"ASC\"}]"},{"name":"isAggregate","type":"boolean","description":"true gives one row per franchise summed over the season range","default":false},{"name":"isGame","type":"boolean","description":"Game-level rows","default":false},{"name":"start","type":"number","description":"Row offset","default":0},{"name":"api_limit","type":"number","description":"Rows per page (sent to the site as \"limit\"; clify's own --limit only shapes the output)","default":50}],"exampleUrl":"https://clify-dev.netlify.app/nhl/list-team-stats?cayenneExp=gameTypeId%3D2+and+seasonId%3C%3D20262027+and+seasonId%3E%3D20262027"},{"command":"search-players","summary":"Find players by (partial) name to get their player id","params":[{"name":"name","type":"string","required":true,"description":"Name or part of a name (case-insensitive substring match)"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/search-players"},{"command":"get-player","summary":"Player profile header: name, team, position, number, age, height, weight and headshot","params":[{"name":"playerId","type":"string","required":true,"description":"NHL player id (from search-players or stats rows)"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-player"},{"command":"get-player-stats","summary":"Player stat lines: current season, career and per-season totals with team ranks","params":[{"name":"playerId","type":"string","required":true,"description":"NHL player id"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-player-stats"},{"command":"get-player-bio","summary":"Player biography: birth date and place, draft details, shoots/catches","params":[{"name":"playerId","type":"string","required":true,"description":"NHL player id"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-player-bio"},{"command":"get-player-game-log","summary":"Player game-by-game log for a season and game type (regular season or playoffs)","params":[{"name":"playerId","type":"string","required":true,"description":"NHL player id"},{"name":"season","type":"string","required":true,"description":"8-digit season id, e.g. 20262027 (playerStatsSeasons in the response lists the valid seasons)"},{"name":"gameType","type":"string","description":"2=regular season, 3=playoffs","oneOf":["2","3"],"default":"2"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-player-game-log"},{"command":"get-game","summary":"Game overview: teams, score, venue, scoring summary by period, three stars","params":[{"name":"gameId","type":"string","required":true,"description":"10-digit game id, e.g. 2026020119 (from scores, schedule or a game log)"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-game"},{"command":"get-game-boxscore","summary":"Game box score: per-player stats (G, A, +/-, TOI, SOG, hits) for forwards, defense and goalies","params":[{"name":"gameId","type":"string","required":true,"description":"10-digit game id"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-game-boxscore"},{"command":"get-game-play-by-play","summary":"Full play-by-play event list for a game (shots, goals, penalties, faceoffs, with coordinates)","params":[{"name":"gameId","type":"string","required":true,"description":"10-digit game id"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-game-play-by-play"},{"command":"get-game-details","summary":"Game side info: season series, officials, coaches, scratches, linescore by period, video ids","params":[{"name":"gameId","type":"string","required":true,"description":"10-digit game id"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-game-details"},{"command":"get-game-recap-stories","summary":"NHL.com recap articles for a game (headline, summary, slug)","params":[{"name":"gameId","type":"string","required":true,"description":"10-digit game id"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-game-recap-stories"},{"command":"get-standings","summary":"League standings as of a date (division, conference and wild-card ordering, records, points)","params":[{"name":"date","type":"string","required":true,"description":"Date as YYYY-MM-DD, or 'now'"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-standings"},{"command":"list-standings-seasons","summary":"Seasons that have standings, with their date ranges and rules (ties, wild card, etc.)","params":[],"exampleUrl":"https://clify-dev.netlify.app/nhl/list-standings-seasons"},{"command":"get-scores","summary":"All games and scores for a date (state, teams, score, goals)","params":[{"name":"date","type":"string","required":true,"description":"Date as YYYY-MM-DD, or 'now'"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-scores"},{"command":"get-schedule","summary":"League schedule for the week starting on a date (games per day, teams, start times, broadcasts)","params":[{"name":"date","type":"string","required":true,"description":"Start date as YYYY-MM-DD, or 'now'"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-schedule"},{"command":"get-schedule-calendar","summary":"Schedule calendar window for a date: start/end dates, previous/next week, and the list of teams","params":[{"name":"date","type":"string","required":true,"description":"Date as YYYY-MM-DD, or 'now'"}],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-schedule-calendar"},{"command":"list-seasons","summary":"All NHL seasons, newest first, with ids, dates, number of games and rules","params":[],"exampleUrl":"https://clify-dev.netlify.app/nhl/list-seasons"},{"command":"get-current-season","summary":"The season and game type the stats site currently defaults to","params":[],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-current-season"},{"command":"list-franchises","summary":"All NHL franchises with ids (for franchiseId filters) and first/last seasons","params":[],"exampleUrl":"https://clify-dev.netlify.app/nhl/list-franchises"},{"command":"list-countries","summary":"Countries (and their states/provinces) usable as player nationality or birthplace filters","params":[],"exampleUrl":"https://clify-dev.netlify.app/nhl/list-countries"},{"command":"list-drafts","summary":"NHL entry draft years and number of rounds","params":[],"exampleUrl":"https://clify-dev.netlify.app/nhl/list-drafts"},{"command":"get-glossary","summary":"Stats glossary: abbreviation, full name and definition of every stat","params":[],"exampleUrl":"https://clify-dev.netlify.app/nhl/get-glossary"}]}