live_match_event
schema
The schema of the LIVE Data API graph, showing the attributes and their types and a brief description.
Interactively navigate the Graph
Hudl Statsbomb recommends using Apollo Studio to visually navigate and search the LIVE Data API.
type live_match_event {
# true if play continued (referee called advantage)
advantage: Boolean
# true if the player performed the event by winning an aerial
aerial_won: Boolean
# true if the pass or shot was an assist to a goal
assist: Boolean
# true if the player performed the event with a backheel
backheel: Boolean
# body part the player used to perform the event
body_part: String
# type of card given for a foul: yellow-card, second-yellow, red-card
card: String
# statsbomb unique id for the competition
competition_id: Int
# UTC time when statsbomb recorded the event
created_at: Timestamp
# true if a foul was won when out of possession
defensive: Boolean
# true if a block, shot or pass was deflected
deflection: Boolean
# shortest distance from the event to the event team's goal
distance_to_own_goal: Float
# shortest distance from the event to the event opponent's goal
distance_to_opponents_goal: Float
# length in milliseconds the event lasted (only applicable for pass and shot events)
duration: Float
# x coordinate at which the event ends (only applicable for pass and shot events)
end_x: Float
# y coordinate at which the event ends (only applicable for pass and shot events)
end_y: Float
# z coordinate at which the event ends (only applicable for shot events)
end_z: Float
# true if the player performed the event on their first touch
first_time: Boolean
# describes the formation the team is using
formation: String
# all player locations when a shot was taken
freeze_frame: JSONArray[x: Float, y: Float, teammate: Boolean, goalkeeper: Boolean]
# true if a shot occurred during open play
from_open_play: Boolean
# true if a shot occurred shortly after a set piece play, complement of from_open_play
from_set_piece: Boolean
# true if a shot occurred shortly after a corner
from_corner: Boolean
# true if a shot occurred shortly after a free kick pass
from_free_kick: Boolean
# true if a shot occurred shortly after a throw in
from_throw_in: Boolean
# event started in the opposition's penalty box
from_penalty_box: Boolean
# event started in the opposition's six yard box
from_six_yard_box: Boolean
# the team that scored a goal
goal_for: Int
# the team that conceded a goal
goal_against: Int
# height of the pass:
# ground = ball doesn’t come off the ground
# low = ball comes off the ground but is under shoulder level at peak height
# high = ball goes above shoulder level at peak height
height: String
# statsbomb unique id of the event
id: UUID
# sequence notation for the ordering of events within each match part
index: Int
# event started or ended in the team's final third
in_final_third: Boolean
# event started and ended in the team's final third
inside_final_third: Boolean
# event started outside the team's final third and ended inside it
into_final_third: Boolean
# event started or ended in the opposition's penalty box
in_penalty_box: Boolean
# event started and ended in the opposition's penalty box
inside_penalty_box: Boolean
# event started outside the opposition's penalty box and ended inside it
into_penalty_box: Boolean
# event started or ended in the opposition's six yard box
in_six_yard_box: Boolean
# event started and ended in the opposition's six yard box
inside_six_yard_box: Boolean
# event started outside the opposition's six yard box and ended inside it
into_six_yard_box: Boolean
# event started or ended in the team's attacking half
in_attacking_half: Boolean
# event started and ended in the team's attacking half
inside_attacking_half: Boolean
# event started outside the team's attacking half and ended inside it
into_attacking_half: Boolean
# event started or ended in the team's defensive half
in_defensive_half: Boolean
# event started and ended in the team's defensive half
inside_defensive_half: Boolean
# event started outside the team's defensive half and ended inside it
into_defensive_half: Boolean
# event started or ended in the team's defensive third
in_defensive_third: Boolean
# event started and ended in the team's defensive third
inside_defensive_third: Boolean
# event started outside the team's defensive third and ended inside it
into_defensive_third: Boolean
# true if the pass directly led to a shot
key_pass: Boolean
# describes the players and their positions
lineup: JSONArray[position: String, player_id: Int]
# true if the stoppage causes the match clock to be paused
match_clock_paused: Boolean
# statsbomb unique id for the match
match_id: Int
# describes metadata about the match (note that this field is not available in a subscription)
match: JSONObject[match_id: Int, match_name: String, match_date: Timestamp, match_home_team_id: Int, match_away_team_id: Int]
# minutes on the clock at the time of this event. Resets to 45 at half-time, 90 at the start of extra time etc
minute: Int
# name of the event (see below for a list of all the possible event names)
name: String
# id of the next period in the match
next_period: Int
# if the player attempted to do a dribble by passing the ball past the opponent instead of receiving it
no_touch: Boolean
# true if the dribble went through an opposing player's legs
nutmeg: Boolean
# true if the broadcast video feed wasn't usable for this part of the game
# off_camera events are inferred by collectors on a best-efforts basis to ensure the integrity of the event stream, but should not be relied upon for analysis purposes.
off_camera: Boolean
# true if the player performed the event while in possession of the ball (only applicable for block, ball-recovery or foul-committed events)
offensive: Boolean
# statsbomb unique id for the team of the player opposing the event e.g. the team of the player challenging an opposing team's player's dribble
opposition_id: Int
# result of the event e.g. a pass can be "out", "pass-offside", "complete" or "incomplete"
outcome: String
# true when a dribble goes past the original defender into the possession of another player
overrun: Boolean
# true if a foul caused a penalty to be awarded
penalty: Boolean
# statsbomb id of the half in which the event occurred
# 1 = first half
# 2 = second half
# 3 = extra time first half
# 4 = extra time second half
# 5 = penalties
period: Int
# statsbomb unique id for the player performing the event
player_id: Int
# describes metadata about the player (note that this field is not available in a subscription)
player: JSONObject[player_id: Int, player_name: String]
# goalkeeper’s positioning before a shot:
# moving = keeper was moving when the shot was taken
# prone = keeper was on the ground when the shot was taken
# set = keeper was stationary when the shot was taken
position: String
# statsbomb unique id for the player who received the pass
recipient_id: Int
# true if the ball recovery was a failure
recovery_failure: Boolean
# statsbomb unique id for the player who is coming onto the pitch from a substitution
replacement_id: Int
# true if a block saved a shot
save_block: Boolean
# statsbomb unique id for the season of the competition
season_id: Int
# seconds on the clock at the time of this event
second: Int
# x coordinate where the event occured on the pitch (0:0 to 120:80)
start_x: Float
# y coordinate where the event occured on the pitch (0:0 to 120:80)
start_y: Float
# Height from the ground where the event occured on the pitch (yards)
start_z: Float
# event processing status, either null or "COMPLETE"
status: String
# statsbomb unique id for the team performing the event
team_id: Int
# describes metadata about the team (note that this field is not available in a subscription)
team: JSONObject[team_id: Int, team_name: String]
# technique used to perform the event e.g. a goal-keeper event can be "diving" or "standing"
technique: String
# time in the match the event takes place, recorded to the millisecond e.g. 00:00:06.293
timestamp: Time
# type of the event e.g. a duel event can be "aerial-lost" or "tackle"
type: String
# UTC time when statsbomb updated the event e.g. this field would be updated if a pass had the "key_pass" attribute modified
updated_at: Timestamp
# expected goal value of the shot
xg: Float
}