stats, events, and ball fields of the live snapshot give you a detailed picture of everything happening in a match. This page documents their structure and the values you can expect to encounter.
Statistics
Thestats field is a map of stat key → per-side integers:
Common soccer stat keys
Integer counters, instats:
Fractional stat keys
Some stats are naturally percentages or ratios and are delivered as floats under the separate top-levelstats_float map (same {"home": float, "away": float} shape):
Integer counters, in
stats:
Fractional stat keys
Some stats are naturally percentages or ratios and are delivered as floats under the separate top-levelstats_float map (same {"home": float, "away": float} shape):
Examplexample
Events
Theevents field is an array of timeline incidents recorded during the match. It may be null if no events have occurred yet.
Event fields
Events
Theevents field is an array of timeline incidents recorded during the match. It may be null if no events have occurred yet.
Event fields
string
required
The match minute at which the event occurred, e.g.
"60" or "90+2". Empty for shootout events, which have no match minute — see Shootout events. Empty for shootout events, which have no match minute — see Shootout eventsmatch minute at which the event occurred, e.g. "60" or "90+2". Empty for shootout events, which have no match minute — see Shootout events. Empty for shootout events, which have no match minute — see Shootout events.string
required
The event type. See the table belowThe event type. See the table below.
string
required
Which team the event is associated with:
"home", "away", or an empty string.string
required
Human-readable description of the event.
string
The score at the time of the event, e.g.
"1-0". Present for goal events; optional otherwise.string
Extra detail about the event (optional). For
shootout events this is "scored" or "missed" — see Shootout events. For shootout events this is "scored" or "missed" — see Shootout events.string
Player name, properly spaced (optional). Present on incidents where the provider identifies the player involved.
boolean
true for the entries the provider highlights — goals, cards, and period markers (optional). Use it to pick out headline moments without hard-coding a list of types.string
Video-replay id (optional). A non-empty value means a clip exists for this incident.
Event types
Treat any unrecognized
type value as event.
string
required
Which team the event is associated with:
"home", "away", or an empty string.string
required
Human-readable description of the event.
string
The score at the time of the event, e.g.
"1-0". Present for goal events; optional otherwise.string
Extra detail about the event (optional). For
shootout events this is "scored" or "missed" — see Shootout events. For shootout events this is "scored" or "missed" — see Shootout events.string
Player name, properly spaced (optional). Present on incidents where the provider identifies the player involved.
boolean
true for the entries the provider highlights — goals, cards, and period markers (optional). Use it to pick out headline moments without hard-coding a list of types.string
Video-replay id (optional). A non-empty value means a clip exists for this incident.
Event types
Treat any unrecognized
type value as event.
Shootout eventsShootout events
When a match goes to a penalty shootout, each kick is emitted as its own event withtype: "shootout" and a detail of either "scored" or "missed". Shootout kicks have no match minute, so minute is an empty string; they are ordered after all timed events, including extra time, in the order they were taken (home kicker before away kicker within each round).
The top-level score.home and score.away stay at the post-extra-time result — use score.shootout on the snapshot to read the per-side kick tally and determine the winner.
The phase can also decode to "Shootout score" (code 0008) while the shootout is in progress.
Example events array
When a match goes to a penalty shootout, each kick is emitted as its own event withtype: "shootout" and a detail of either "scored" or "missed". Shootout kicks have no match minute, so minute is an empty string; they are ordered after all timed events, including extra time, in the order they were taken (home kicker before away kicker within each round).
The top-level score.home and score.away stay at the post-extra-time result — use score.shootout on the snapshot to read the per-side kick tally and determine the winner.
The phase can also decode to "Shootout score" (code 0008) while the shootout is in progress.
Example events array
The
events array in a full_time result snapshot includes the complete match timeline from kick-off to the final whistle.Ball position
Theball field contains the last event-anchored position of the ball on the pitch. It is updated whenever a notable event is recorded and reflects where that event took place.
Ball position fields
number
Normalized x position, from
0 to 1, where 1 is the attacking end of the pitch.number
Normalized y position, from
0 to 1.string
The type of event associated with this position (optional), e.g.
"goal".string
The match minute at which the position was recorded (optional).
string
Extra detail about the event at this position (optional).