get_standings
Current standings with points, point pace, goal differential, and 5v5 possession: Corsi%, Fenwick% and expected goals.
When to use it
You want to see how teams rank in the league right now -- points, win percentage, goal differential, goals for and against per game, and 5v5 possession. Corsi% and Fenwick% are shares of shot attempts; expected goals are summed from a shot-quality model and calibrated within the season. All four are 5v5 only, which is the convention for team possession.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| conference | string | no | "Eastern" or "Western" |
| division | string | no | Division name (e.g. "Atlantic") |
| season | string | no | Season (e.g. "20252026", default current) |
Request
curl -X POST https://mcp.puckapi.com/v1/get_standings \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"conference": "Eastern",
"division": "Atlantic"
}'Over MCP, ask for it in plain English and the client calls get_standings itself. Point any MCP client at https://mcp.puckapi.com/mcp?key=YOUR_API_KEY.
Response
{
"standings": [
{
"rank": 1,
"teamAbbrev": "COL",
"teamName": "Colorado Avalanche",
"points": 121,
"gamesPlayed": 82,
"wins": 55,
"losses": 16,
"otLosses": 11,
"pointPct": 0.738,
"goalDiff": 99,
"goalsForPerGame": 3.68,
"goalsAgainstPerGame": 2.48,
"corsiPct": 56.7,
"fenwickPct": 55.9,
"expectedGoalsFor": 201.2,
"expectedGoalsAgainst": 153.9
},
{
"rank": 2,
"teamAbbrev": "CAR",
"teamName": "Carolina Hurricanes",
"points": 113,
"gamesPlayed": 82,
"wins": 52,
"losses": 22,
"otLosses": 8,
"pointPct": 0.689,
"goalDiff": 62,
"goalsForPerGame": 3.32,
"goalsAgainstPerGame": 2.56,
"corsiPct": 59.8,
"fenwickPct": 58.9,
"expectedGoalsFor": 203.5,
"expectedGoalsAgainst": 161.4
}
]
}Response fields
| Field | Type | Description |
|---|---|---|
| standings[].rank | integer | League or division rank |
| standings[].teamAbbrev | string | Team abbreviation |
| standings[].teamName | string | Full team name |
| standings[].points | integer | Total points |
| standings[].gamesPlayed | integer | Games played |
| standings[].wins | integer | Wins |
| standings[].losses | integer | Losses |
| standings[].otLosses | integer | Overtime losses |
| standings[].pointPct | number | Points percentage |
| standings[].goalDiff | integer | Goal differential |
| standings[].goalsForPerGame | number | Goals for per game |
| standings[].goalsAgainstPerGame | number | Goals against per game |
| standings[].corsiPct | number | Corsi percentage, 5v5 shot attempts |
| standings[].fenwickPct | number | Fenwick percentage, 5v5 unblocked attempts |
| standings[].expectedGoalsFor | number | Expected goals for |
| standings[].expectedGoalsAgainst | number | Expected goals against |
Related endpoints
Takes the team this one returns.
One team's record, league rank, and 5v5 possession: Corsi%, Fenwick% and expected goals for and against.
Takes the team this one returns.
Upcoming games for the next N days. Defaults to 7 days.
Filters by the same conference and division.
All 32 active NHL teams with divisions, conferences, and arenas.
Filters by the same season.
Matchup history between two teams with win/loss records.
Try it
500 credits free on signup — 250 calls to get_standings — and no card.