How do I get NHL player stats and top scorers in Python?
The top 15 NHL skaters of 2025-26 by points, with goals, assists, shooting percentage and ice time. Connor McDavid led with 138 points in 82 games.
Code verified October 12, 2026. One call to get_skater_season_stats, 5 credits.
The call
season defaults to the most recent one with stats. sort_by also takes goals, assists, plus_minus or shots. Add team for one club. min_games keeps part-season players off the board.
import requests
import pandas as pd
API_KEY = "YOUR_API_KEY"
resp = requests.post(
"https://mcp.puckapi.com/v1/get_skater_season_stats",
headers={"x-api-key": API_KEY},
json={
"season": "20252026",
"min_games": 40,
"sort_by": "points",
"limit": 15,
},
timeout=60,
)
resp.raise_for_status()
data = resp.json()["data"]
skaters = pd.DataFrame(data["skaters"])
skaters["pointsPerGame"] = skaters["points"] / skaters["gamesPlayed"]
cols = ["playerName", "team", "position", "gamesPlayed", "goals", "assists", "points", "pointsPerGame", "shootingPct"]
print(skaters[cols].round(2).to_string(index=False))
Replace YOUR_API_KEY with a key from your dashboard. Python needs requests and pandas (pip install requests pandas). JavaScript runs on Node 18 or newer, or in the browser.
What comes back
The data object of the response, trimmed to the first rows. Every field is real output from the run above.
{
"skaters": [
{
"playerId": 8478402,
"playerName": "Connor McDavid",
"team": "EDM",
"teamName": "Edmonton Oilers",
"position": "C",
"gamesPlayed": 82,
"goals": 48,
"assists": 90,
"points": 138,
"plusMinus": 17,
"pim": 44,
"powerPlayGoals": 13,
"powerPlayPoints": 54,
"shorthandedGoals": 1,
"shorthandedPoints": 2,
"gameWinningGoals": 4,
"otGoals": 1,
"shots": 306,
"shootingPct": 0.15686275,
"faceoffPct": 0.495125,
"avgToiPerGame": 1379,
"snapshotDate": "2026-04-15"
},
{
"playerId": 8476453,
"playerName": "Nikita Kucherov",
"team": "TBL",
"teamName": "Tampa Bay Lightning",
"position": "RW",
"gamesPlayed": 76,
"goals": 44,
"assists": 86,
"points": 130,
"plusMinus": 43,
"pim": 50,
"powerPlayGoals": 8,
"powerPlayPoints": 37,
"shorthandedGoals": 1,
"shorthandedPoints": 1,
"gameWinningGoals": 8,
"otGoals": 2,
"shots": 231,
"shootingPct": 0.1904762,
"faceoffPct": 0,
"avgToiPerGame": 1220,
"snapshotDate": "2026-04-15"
},
"...13 more"
],
"count": 15,
"filters": {
"season": "20252026",
"min_games": 40,
"sort_by": "points"
}
}What to do next
- get_player_game_log (5 credits). One player's game log for the season.
- search_players (2 credits). Find a player_id by name.
More guides
Start with 500 free credits every month
No card. REST or MCP.