Skip to content

get_shot_map

10 creditsMulti-tablePOST /v1/get_shot_map

Shot map for a club, player or defence: every located shot with outcome and xG, plus zone totals

Use it when you want where a club or player shoots from (or a club concedes from), by zone with xG and conversion, and every shot's x/y.

Parameters

teamstringoptional
Club id, abbreviation or name.
playerstringoptional
Player id (search_players).
againstbooleanoptional
With team: the shots it conceded.
seasonnumber | stringoptional
Season by the year it starts (default: the latest).
game_idstringoptional
One match instead of a season.
include_shotsbooleanoptional
false = totals and zones only.

Notes

  • Over MCP, ask for it in plain English and the client calls get_shot_map itself. Point any MCP client at https://mcp.strikerapi.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.strikerapi.com/v1/get_shot_map \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
  "game_id": "740916"
}'

Response

json
{
  "season": null,
  "zones": [
    {
      "zone": "six_yard_box",
      "shots": 4,
      "goals": 1,
      "on_target": 1,
      "headers": 1,
      "xg": 0.63,
      "conversion": 0.25,
      "share": 0.19
    },
    {
      "zone": "penalty_area",
      "shots": 14,
      "goals": 2,
      "on_target": 5,
      "headers": 3,
      "xg": 2.37,
      "conversion": 0.143,
      "share": 0.667
    },
    {
      "zone": "outside_box",
      "shots": 3,
      "goals": 0,
      "on_target": 0,
      "headers": 0,
      "xg": 0.17,
      "conversion": 0,
      "share": 0.143
    }
  ],
  "shots_total": 21,
  "totals": {
    "shots": 21,
    "located": 21,
    "goals": 3,
    "on_target": 6,
    "xg": 3.17,
    "xg_per_shot": 0.151
  },
  "shots": [
    {
      "game_id": "740916",
      "date": "2026-04-19",
      "minute": 4,
      "team": "MNC",
      "player_id": "253989",
      "player": "Erling Haaland",
      "outcome": "blocked",
      "body_part": "left_foot",
      "penalty": false,
      "zone": "penalty_area",
      "xg": 0.405,
      "x": 0.14,
      "y": 0.477,
      "end_x": 0.11,
      "end_y": 0.484,
      "distance_m": 6.9
    },
    {
      "game_id": "740916",
      "date": "2026-04-19",
      "minute": 6,
      "team": "ARS",
      "player_id": "328497",
      "player": "Cristhian Mosquera",
      "outcome": "missed",
      "body_part": "header",
      "penalty": false,
      "zone": "penalty_area",
      "xg": 0.129,
      "x": 0.134,
      "y": 0.567,
      "end_x": 0,
      "end_y": 0.573,
      "distance_m": 7.9
    },
    {
      "game_id": "740916",
      "date": "2026-04-19",
      "minute": 10,
      "team": "ARS",
      "player_id": "231182",
      "player": "Kai Havertz",
      "outcome": "blocked",
      "body_part": "left_foot",
      "penalty": false,
      "zone": "penalty_area",
      "xg": 0.088,
      "x": 0.12,
      "y": 0.313,
      "end_x": 0.114,
      "end_y": 0.322,
      "distance_m": 14
    }
  ],
  "shots_note": "x is the distance from the goal line as a share of half the pitch (the penalty spot is 0.23); y runs across the pitch, 0.5 = the centre; end_x/end_y is where the shot ended. Newest first, up to 2,000."
}

Response fields

seasonnull
zones[]array
List of objects
zones[].zonestring
zones[].shotsnumber
zones[].goalsnumber
zones[].on_targetnumber
zones[].headersnumber
zones[].xgnumber
zones[].conversionnumber
zones[].sharenumber
shots_totalnumber
totalsobject
totals.shotsnumber
totals.locatednumber
totals.goalsnumber
totals.on_targetnumber
totals.xgnumber
totals.xg_per_shotnumber
shots[]array
List of objects
shots[].game_idstring
shots[].datestring
shots[].minutenumber
shots[].teamstring
shots[].player_idstring
shots[].playerstring
shots[].outcomestring
shots[].body_partstring
shots[].penaltyboolean
shots[].zonestring
shots[].xgnumber
shots[].xnumber
shots[].ynumber
shots[].end_xnumber
shots[].end_ynumber
shots[].distance_mnumber
shots_notestring

Related endpoints

Try it

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