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_statsitself. Point any MCP client athttps://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
{
"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
Takes the player_id this one returns.
Player bio and goalie stats (if goalie). For skaters, returns bio info and team context.
Takes the player_id this one returns.
A player's game-by-game stat lines for a season: date, opponent, home/away, and the box score for each game.
Returns the team this one takes.
All 32 active NHL teams with divisions, conferences, and arenas.
Returns the team this one takes.
Current standings with points, point pace, goal differential, and 5v5 possession: Corsi%, Fenwick% and expected goals.
Try it
500 free credits every month: 100 calls to get_goalie_stats, and no card.