Envelope
data envelope extras
Many endpoints share these helper fields inside data:
lastUpdateIdlets you skip identical payloads on the next poll by passing?lastUpdateId=....ttlis the suggested seconds before re-requesting.sports/countries/competitions/competitorsare denormalized lookups so a single response can render without follow-up calls.
Status groups
statusGroup on every game object summarizes phase:
statusText is the human label (Scheduled, Halftime, 1st Half, Ended, …) and shortStatusText is the compact form (FT, HT, 1H, LIVE).
Datetimes
All V1 datetimes are ISO 8601 with timezone offset:startTimestamp — that’s a V2-only convention.)
Errors
Errors come straight from the backend without wrapping, with the matching HTTP status:
See Error Handling for retry and backoff guidance.
Cache TTLs
The server caches every response. Public TTLs:cacheHit: true means you hit cache. To force a fresh request, vary a query param (?_=Date.now()), but please don’t — the cache is what keeps the API fast.
Pagination
Endpoints that paginate return apaging object inside data:
?page=N (zero-indexed) to advance.