FixturesEndpoint 17 of 116
Shot map
https://api.datasportsapi.com/
- Plan
- Pro + Business
- Auth
Bearer dsa_live_…- Parameters
- 1 required · 0 optional
- Returns
Shot[]
All shots in chronological order (oldest first), each with its outcome and expected goals.
Football shots include expectedGoals / expectedGoalsOnTarget, situation, body part, and pitch and goal-mouth coordinates; ice hockey adds technique, strength and rink coordinates; basketball lists each field-goal attempt as made, missed or blocked along with its court location.
Plan access
Requires a Pro or Business plan; every other plan receives 403 endpoint_not_in_plan.
Worth knowing
- Available for football, ice hockey and basketball in covered leagues; any other case returns an empty array.
- In football and ice hockey, outcome is goal | save | miss | block | post, and a football shot cleared off the line counts as a block.
- In basketball the outcomes are goal (made), miss and block; positions are measured from the basket in tenths of a foot, the player and time fields are null, and every home shot comes before the away shots.
- Only ice hockey uses technique (wrist, snap, slap, …) and strength.
- goalType is regular, ownGoal or penalty.
- Shoot-out kicks appear at the end: shootoutSequence is the order of kicks across both teams (matching the events), and shootoutRound is the kick’s number (1st, 2nd, …) for the taker’s side.
- In football, period (since 2026-10-24; null for earlier data) is derived from the minute: period1, period2, extra1, extra2, or penalties for a shoot-out kick.
- While a match is live the list is re-read about every 30 seconds; Business fixture:{id} WebSocket channels receive the entire list as a shotmap frame whenever it changes.
01Parameters
idpathRequiredfixture id issued by DataSportsAPI, a positive integer
02Request
The same call from the command line and each SDK. The SDK lines assume a client created with your key; left out, it is read from DATASPORTSAPI_API_KEY. Installing a client: SDKs & CLI.
curl -H "Authorization: Bearer dsa_live_…" \
"https://api.datasportsapi.com/v2/fixtures/{id}/shotmap"03Response
The top-level keys of the JSON body. Each object links to its full shape in the data reference.
dataShot[]meta- count
{ "data": [ …, { "side": "away", "outcome": "goal", "technique": null, "goalType": "regular",
"situation": "assisted", "bodyPart": "rightFoot", "strength": null, "expectedGoals": 0.028, "expectedGoalsOnTarget": 0.165,
"minute": 80, "addedMinute": null, "second": 4770, "period": "period2",
"player": { "id": 3759, "name": "Bukayo Saka", … }, "goalkeeper": { "id": 4101, "name": "Matz Sels", … },
"position": { "x": 13.4, "y": 27.5, "z": 0 }, "goalMouth": { "x": 0, "y": 48.4, "z": 24.1 },
"goalMouthLocation": "highCentre", "blockPosition": null, "shootoutSequence": null, "shootoutRound": null } ],
"meta": { "count": 23 } }
// Ice hockey:
{ "data": [ { "side": "home", "outcome": "save", "technique": "wrist", "strength": "powerPlay", "expectedGoals": 0.036,
"minute": 1, "second": 46, "period": "period1", "position": { "x": 50, "y": 22, "z": null }, … }, … ],
"meta": { "count": 61 } }
// Basketball:
{ "data": [ { "side": "home", "outcome": "goal", "player": null, "minute": null, "second": null,
"position": { "x": -132, "y": 168, "z": null }, … }, … ],
"meta": { "count": 171 } }04Errors
Nothing specific to this endpoint: only the account-wide errors below apply.
unauthorized429rate_limited429quota_exceeded500internal_errorEvery error code