Skip to content

get_shot_map

10 creditsMulti-tablePOST /v1/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_map itself. Point any MCP client at https://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

json
{
  "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

Try it

500 free credits every month: 50 calls to get_shot_map, and no card.