Skip to content
Multi-table10 credits

get_shot_map

Every shot attempt with rink coordinates, shot type, shooter and goalie.

When to use it

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

NameTypeRequiredDescription
game_idstringnoNHL game ID
seasonstringnoSeason ID, 8-digit; use with team
teamstringnoTeam abbreviation; use with season
player_idnumbernoNHL player ID of the shooter
strengthstringnoStrength filter, e.g. 5v5

Request

bash
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"
}'

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.

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

FieldTypeDescription
shots[].x_coordnumberRink x, -100..100
shots[].y_coordnumberRink y, -42..42
shots[].typestringgoal, shot-on-goal, missed-shot or blocked-shot
shots[].shot_typestringwrist, snap, slap, tip-in, backhand, deflected, wrap-around
shots[].shooternumberShooter's NHL player ID
shots[].goalienumberGoalie in net at the time
summary.capped_atnumberHard cap of 2,000 shots per call

Related endpoints

Try it

500 credits free on signup — 50 calls to get_shot_map — and no card.