Tracking data
Tracked events
GET/v2/fixtures/{id}/tracking/eventsEnterprise
Tracked events with their positions, in play order: football passes (start and end), shots, set pieces, fouls, cards, substitutions and the attack flow; tennis ball and player positions, serves, faults and points with the game score; basketball shots with their spot, rebounds, fouls, turnovers. 1,000 a page, optionally one type and after an instant. Enterprise plan only.
key is stable: the same event has the same key here and in trackedEvent frames. minute and second are football’s match clock; set and game tennis’s; period basketball’s. player, assist, playerIn and playerOut are null when the source names nobody or the squad does not list him. Clock bookkeeping is left out. Football while live: flowAttack / flowDangerousAttack / flowBallSafe (side = the team with the ball, position = where; together the current situation), possessionChange (no side), throwIn, freeKick, corner, goalKick, attemptAtGoal, goal, yellowCard, redCard, substitution, possibleGoal / possibleCorner …, about 18 a minute; passes come with the post-match read. Empty for ice hockey (read the timeline) and before the post-match read for most basketball matches.
Parameters
id
our numeric id (positive integer)
type
only this type, camelCase (pass, attemptAtGoal, goal, serve, point, ballSituation, threePointer, …)
since
only events after this instant (ISO-8601, any offset; exclusive)
page
page 0–999 of the filtered list (default 0)
Response
- data
TrackedEvent[]- meta
- page, count, total (after the filters), hasNextPage
- errors
- 400 bad_request — type, since or page malformed403 endpoint_not_in_plan — every plan but Enterprise404 not_found — an id we never issued
Every /v2 call can also answer the common errors.
$ curl -H "Authorization: Bearer sk_live_…" \ "https://api.sportsapi.app/v2/fixtures/{id}/tracking/events"
Example
{ "data": [ { "key": "5f0c2a9e41d7b3c8", "type": "pass", "at": "2026-11-11T21:04:09.568Z", "side": "home", "minute": 79, "second": 4785, "period": null, "set": null, "game": null, "position": { "x": 42, "y": 2, "z": null }, "endPosition": { "x": 58, "y": 15, "z": null }, "player": { "name": "John Doe", "shirtNumber": 8, "side": "home" }, "assist": null, "playerIn": null, "playerOut": null, "outcome": "complete", "goalType": null, "serving": null, "gameScore": null, "pointOutcome": null, "shots": null }, … ], "meta": { "page": 0, "count": 1000, "total": 2215, "hasNextPage": true } }