get_shot_map
Every shot attempt with rink coordinates, shot type, shooter and goalie.
Use it when you want to plot or model shot locations rather than read a list of events: a shooter's season heat map, a team's attempts by zone, or the input to an expected-goals model. Filter by game, by player, or by season plus team.
Parameters
game_idstringoptional- NHL game ID
seasonstringoptional- Season ID, 8-digit; use with team
teamstringoptional- Team abbreviation; use with season
player_idnumberoptional- NHL player ID of the shooter
strengthstringoptional- Strength filter, e.g. 5v5
game_typestringoptional- regular, playoff, preseason, or all. Defaults to regular for a season and all for one game. Shootout attempts are never included
leagueenum: nhl | pwhl | ohl | qmjhl | echl | ahloptional- League. Defaults to nhl. One of: nhl, pwhl, ohl, qmjhl, echl, ahl.
Notes
- Over MCP, ask for it in plain English and the client calls
get_shot_mapitself. Point any MCP client athttps://mcp.puckapi.com/mcp?key=YOUR_API_KEY. - Each call costs 10 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_shot_map \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"game_id": "2024020601"
}'Response
{
"shots": [
{
"type": "shot-on-goal",
"x_coord": 62,
"y_coord": -9,
"shot_type": "wrist",
"strength": "5v5",
"team": "PIT",
"shooter": 8471675,
"goalie": 8480045,
"game_id": "2024020601",
"period": 1,
"seconds_elapsed": 143
}
],
"summary": {
"returned": 114,
"capped_at": 2000,
"by_type": {
"shot-on-goal": 55,
"missed-shot": 29,
"blocked-shot": 20,
"goal": 10
}
},
"count": 114
}Response fields
shots[].x_coordnumber- Rink x, -100..100
shots[].y_coordnumber- Rink y, -42..42
shots[].typestring- goal, shot-on-goal, missed-shot or blocked-shot
shots[].shot_typestring- wrist, snap, slap, tip-in, backhand, deflected, wrap-around
shots[].shooternumber- Shooter's NHL player ID
shots[].goalienumber- Goalie in net at the time
summary.capped_atnumber- Hard cap of 2,000 shots per call
Related endpoints
Returns the team this one takes.
All 32 active NHL teams with divisions, conferences, and arenas.
Returns the game_id this one takes.
Upcoming games for the next N days. Defaults to 7 days.
Returns the game_id this one takes.
How one player's prop line moved before a game, every capture by sportsbook.
Returns the player_id this one takes.
Player prop lines by sportsbook, the closing line and the opening line where held: points, goals, assists, shots on goal, blocked shots, goalie saves and anytime goal scorer.
Try it
500 free credits every month: 50 calls to get_shot_map, and no card.