Skip to main content

Team Stats (Live)

Response

  • matchStats keys are periods: "0" = full match, "1" = 1st half, "2" = 2nd half.
  • Each values array is [home, away] as strings.
Every matchStats entry also carries period: 0, including the half objects. That is an upstream artifact — use the object key, not the period field, to identify the period.

Missing data vs real zero

If a metric is not provided for a match, its ID is absent from the stats object (a typical football match returns ~74 IDs for full time and ~72 per half). If an ID is present with value "0", that is a genuine zero. So: key missing = unknown, key present = trust the value.

Stat ID Reference

Verified against the equivalent V2 /statistics payload on concurrent live matches. 123 and 124 behave like attacks and dangerous attacks, but there is no V2 equivalent to confirm them against, so they are documented as unconfirmed. IDs not listed above are passed through from the upstream feed without a confirmed label.
Machine-readable dictionary (authoritative):
No API key required and it does not count against your daily quota. The response is { version, sport, endpoint, notes, stats }, cached for one hour, where stats maps each ID to { name, unit, confirmed }. Pin against version and refresh when it changes.A static snapshot is also published as football-stat-ids.json for offline builds — the live endpoint is the source of truth. IDs are append-only: new IDs may appear, existing meanings do not change.
Cache TTL: 5 s (live data).

Matching V2 and V6 fixtures

V2 and V6 come from different upstream providers, so there is no shared canonical match ID and the fixture lists are not identical (a live-feed sample returned 24 matches on each side with only 20 overlapping). Recommended join:
  1. Kickoff time: V6 matchTime and V2 startTimestamp are both Unix seconds — allow a few minutes of tolerance.
  2. Normalized team names (lowercase, strip punctuation/suffixes like FC, SC, U20).
  3. Optionally validate the competition name.
Cache the resolved ID pair on your side; it is stable for the lifetime of the fixture. All V6 URL forms (canonical path-based, classic, and the per-sport vanity host) hit the same upstream and return the same statistic dictionary and values.

Match Statistics (Generic)

Lineups

Returns player lineups when available (major leagues / tournaments).
Cache TTL: 60 s.
Basketball matches do not expose /stats, /team-stats, /lineups, /incidents, /commentary, or /tables — only /match/{id}, /odds, /odds/{companyId}, and /h2h?sport_id=2.
Baseball on V6 has no match sub-resources. /stats, /lineups, /incidents, /h2h, /commentary and /tables are not provided by the V6 baseball feed and return 501 with an explicit error body. Baseball matches expose only /match/{matchId}, /match/{matchId}/team-stats and /match/{matchId}/odds.For baseball confirmed lineups use V2 instead:
See Baseball V2 match endpoints for the confirmed flag and polling guidance.
Last modified on August 2, 2026