Fixtures
AI commentary
GET/v2/fixtures/{id}/commentaryPro + Business
AI match commentary for a football fixture, oldest first (by seq; the newest 100): one short entry per goal, red card, missed penalty, VAR decision, period start / end, big chance and sustained momentum swing (events of the same few seconds share one entry), plus half-time and full-time summaries. Pro and Business plans.
Written by SportsAPI AI from our own data of the match only — events, score, clock, shot map, statistics and our win-probability model; no betting language. Generated while someone follows the match: this endpoint or a fixture:{id} WebSocket channel keeps it going, so call it during the match (a match nobody followed has no entries); the featured top-league matches on sportsapi.app are always written. Each entry is written once and is the same for every client; seq never changes. kind is one of kickoff, goal, redCard, missedPenalty, varDecision, bigChance, momentum, periodStart, periodEnd, halfTime, fullTime, update; a fullTime summary carries minute 90 (120 after extra time). Live updates: fixture:{id} channels (Business) get a commentary frame per new entry.
Parameters
id
our numeric id (positive integer)
Response
- data
Commentary- meta
- count, generatedBy
- errors
- 403 endpoint_not_in_plan — Free and Starter keys404 not_supported — not a football fixture
Every /v2 call can also answer the common errors.
$ curl -H "Authorization: Bearer sk_live_…" \ "https://api.sportsapi.app/v2/fixtures/{id}/commentary"
Example
{ "data": { "fixtureId": 236923, "entries": [ …, { "seq": 2, "kind": "goal", "minute": 36, "addedMinute": null, "model": "sportsapi-ai", "createdAt": "2026-10-18T13:37:41.000Z", "text": "Nico Paz doubles Como's lead, finishing after a pass from Álex Valle, four minutes after Mattia Liberali's opener. Our model now gives Como an 85% win probability, up from 65%." }, { "seq": 3, "kind": "halfTime", "minute": 45, "addedMinute": null, "model": "sportsapi-ai", "createdAt": "2026-10-18T13:52:04.000Z", "text": "Como lead Fiorentina 2-1 at the break. Mattia Liberali and Nico Paz struck in the 32nd and 36th minutes before Marin Pongračić pulled one back, a goal confirmed by VAR in first-half stoppage time." } ] }, "meta": { "count": 3, "generatedBy": "sportsapi-ai" } }