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_mapitself. Point any MCP client athttps://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
seasonnullzones[]array- List of objects
zones[].zonestringzones[].shotsnumberzones[].goalsnumberzones[].on_targetnumberzones[].headersnumberzones[].xgnumberzones[].conversionnumberzones[].sharenumbershots_totalnumbertotalsobjecttotals.shotsnumbertotals.locatednumbertotals.goalsnumbertotals.on_targetnumbertotals.xgnumbertotals.xg_per_shotnumbershots[]array- List of objects
shots[].game_idstringshots[].datestringshots[].minutenumbershots[].teamstringshots[].player_idstringshots[].playerstringshots[].outcomestringshots[].body_partstringshots[].penaltybooleanshots[].zonestringshots[].xgnumbershots[].xnumbershots[].ynumbershots[].end_xnumbershots[].end_ynumbershots[].distance_mnumbershots_notestring
Related endpoints
get_game5 cr
Takes the game_id this one returns.
One match: score, both box scores, every player's line, key events, each book's line
get_lineups5 cr
Takes the game_id this one returns.
Formations, starting XIs, benches and substitutions with minutes
get_player5 cr
Takes the player_id this one returns.
Profile, per-season totals and per-90 rates, last 10 matches
get_player_games5 cr
Takes the player_id this one returns.
A player's full match log
Try it
500 credits free on signup: 50 calls to get_shot_map, and no card.