Skip to content

Data

Premier League shot location and xG data

The location, end point, outcome and body part of every Premier League shot ESPN charted since 2012-13, with our expected goals. REST or MCP.

StrikerAPI serves the shots of every Premier League match since 2012-13 as ESPN charted them: where each was taken, where it ended (saved, blocked, wide or in the net), the body part, whether it was a penalty, the player and the minute, and our expected-goals value for a shot from that distance and angle.

get_shot_map rolls a club's shots, the shots it conceded or a player's up into zones with goals, shots on target, xG and conversion, and returns every shot's x/y for drawing the map. get_events returns one match's shots in order with the rest of its events. The table below is read from the database.

Coverage by season

Counted from the database on October 8, 2026: finished regular-season and playoff games.

SeasonGamesCoveredShot attempts
2026-275094%1,310
2025-26380100%9,072
2024-25380100%9,351
2023-24380100%9,755
2022-23380100%8,944
2021-22380100%9,079
2020-21380100%9,065
2019-20380100%9,406
2018-1938097%8,803
2017-1838094%8,773
2016-1738099%9,614
2015-16380100%9,615
2014-1538096%9,378
2013-1438096%8,769
2012-1338094%7,072
2011-1238092%1,073
2010-1138093%1,047
2009-1038092%1,034
2008-0938088%921
2007-0838094%3,649
2006-0738088%803
2005-0638088%828
2004-0538090%871
2003-0438087%910
2002-0338090%884
2001-023800%0

How to get it

get_shot_map, 10 credits a call. A full 2025-26 season is 380 calls and 3,800 credits, which fits in one month of Starter ($19/mo).

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

What comes back

season
zones[]List of objects
zones[].zone
zones[].shots
zones[].goals
zones[].on_target
zones[].headers
zones[].xg
zones[].conversion
zones[].share
shots_total
totals
totals.shots
totals.located

Every field and a real response: get_shot_map docs.

Questions

What coordinate system do the shots use?

ESPN's: x is the distance from the goal line as a share of half the pitch, in a normalised frame where the penalty spot sits at 0.23 (about 11 m); y runs across the pitch from 0 to 1, with 0.5 the centre. Each shot also carries metres from the goal line and from the centre line.

How is expected goals calculated?

From the league's own shots: the goal rate for shots from the same distance (2 m buckets) and angle (15 degree buckets), header or foot, shrunk toward the distance's rate when a group is small. Penalties take the league's penalty conversion. It is a location model and does not see defenders or the pass.

How far back do the shots go?

Every shot is located from 2012-13 in the Premier League, La Liga, Serie A, the Bundesliga and Ligue 1, and in 2008-09 and from 2012 in MLS. Before that only goals carry a location, so an earlier season's shot map shows goals, not shots.

Can I use it from Claude or ChatGPT?

Yes. StrikerAPI is an MCP server as well as a REST API: add one URL to Claude, Cursor or any MCP client and ask in plain English.

What it will not do

  • Shots land after the final whistle, not live.
  • A shot's location is where the data provider placed it, to about a metre; the height it crossed the line is not recorded.
  • No pass, carry or pressure locations: shots and set-piece events only.

Works with

Start with 500 free credits

No card. REST or MCP.