Skip to content

Guides

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

More guides

Start with 500 free credits every month

No card. REST or MCP.