Skip to content

get_goalie_stats

5 creditsStats + aggregationPOST /v1/get_goalie_stats

Data refreshed · changelog

Goalie leaderboard sorted by save%, GAA, GSAX or wins, with high-danger save%, recent form and rest days.

Use it when you want to rank goalies across the league or within a team. GSAX (goals saved above expected) is the advanced metric that tells you who's actually good versus who plays behind a strong defense.

Parameters

teamstringoptional
Filter by team abbreviation
seasonstringoptional
Season (e.g. "20252026")
min_gamesintegeroptional
Minimum games played (default 10)
sort_bystringoptional
save_pct, gaa, gsax, or wins
limitintegeroptional
Max results (1-50, default 20)
leagueenum: nhl | pwhl | ohl | whl | qmjhl | echl | ahl | ushloptional
League. Defaults to nhl. One of: nhl, pwhl, ohl, whl, qmjhl, echl, ahl, ushl.

Notes

  • Over MCP, ask for it in plain English and the client calls get_goalie_stats itself. Point any MCP client at https://mcp.puckapi.com/mcp?key=YOUR_API_KEY.
  • Each call costs 5 credits, taken before it runs and refunded if the server errors.
  • Not the call you need? Find the right call by what you are trying to answer.

Request

curl -X POST https://mcp.puckapi.com/v1/get_goalie_stats \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
  "sort_by": "gsax",
  "limit": 3
}'

Response

json
{
  "goalies": [
    {
      "playerId": 8480313,
      "playerName": "Logan Thompson",
      "team": "WSH",
      "gamesPlayed": 58,
      "wins": 35,
      "losses": 16,
      "savePct": 0.913,
      "gaa": 2.45,
      "gsax": 34.5,
      "shutouts": 4,
      "expectedGoalsAgainst": 175.1,
      "highDangerSavePct": 0.883,
      "rollingSavePct": 0.905,
      "rollingGsax": 2.1,
      "trend": "down",
      "restDays": 1
    },
    {
      "playerId": 8478009,
      "playerName": "Ilya Sorokin",
      "team": "NYI",
      "gamesPlayed": 55,
      "wins": 29,
      "losses": 24,
      "savePct": 0.906,
      "gaa": 2.68,
      "gsax": 28.5,
      "shutouts": 7,
      "expectedGoalsAgainst": 172.5,
      "highDangerSavePct": 0.894,
      "rollingSavePct": 0.922,
      "rollingGsax": -3.6,
      "trend": "down",
      "restDays": 1
    },
    {
      "playerId": 8480280,
      "playerName": "Jeremy Swayman",
      "team": "BOS",
      "gamesPlayed": 55,
      "wins": 31,
      "losses": 18,
      "savePct": 0.908,
      "gaa": 2.71,
      "gsax": 25,
      "shutouts": 2,
      "expectedGoalsAgainst": 171,
      "highDangerSavePct": 0.895,
      "rollingSavePct": 0.945,
      "rollingGsax": 7,
      "trend": "stable",
      "restDays": 3
    }
  ]
}

Response fields

goalies[].playerIdinteger
Player ID
goalies[].playerNamestring
Goalie name
goalies[].teamstring
Team abbreviation
goalies[].teamNamestring
Full team name
goalies[].gamesPlayedinteger
Games played
goalies[].winsinteger
Wins
goalies[].lossesinteger
Losses
goalies[].otLossesinteger
Overtime losses
goalies[].savePctnumber
Save percentage
goalies[].gaanumber
Goals against average
goalies[].gsaxnumber
Goals saved above expected
goalies[].shutoutsinteger
Shutouts
goalies[].highDangerSavePctnumber
Save percentage on shots inside the slot, about a quarter of all shots
goalies[].rollingSavePctnumber
Save percentage over the last 10 appearances
goalies[].trendstring
Recent form against the season: up, down or stable
goalies[].restDaysinteger
Days since last start

Related endpoints

Try it

500 free credits every month: 100 calls to get_goalie_stats, and no card.