F1 Event Reference
Events
An event is a description of a change in some state in the stage. For that reason events are only sent when the data changes. E.g. If there are no incidents during a race we will only send a BetStartEvent once during the approximately 2 hours a race type stage lasts.
Events are delivered from sensors and transponders on the F1 race tracks.
If you are wondering how you can test if a connection is working correctly you should look at the SessionTimeEvent. That contains the local time for the stage and is updated approximately once every second.
A subset of the events are referred to as 'TimelineEvent'. These events are available through the service StageInfo.GetStageTimelineEvents and are designed so that they are not 'too frequent', the number of timeline events within a full race of any event type is of the order ~300. All the timeline events have the field 'currentRaceLapOrSession'.
Event sequence
Events are sent when the value is changed. If the value stays the same we will not send an event. eg. Session status will be set to "STARTED" when a race stage starts, and approx 2 hours later we will send a event to indicate that the session status is "FINISHED". Normally there will be no session status updates in between those two events.
Before stage starts
StartOfStageEvent
StartingPositionEvent
<Race|Practice|Qualifying|SprintQualifying>LeaderboardEvent
BetStartEvent
As soon as we start sending data from the stage
While waiting for stage to start
SessionTimeEvent
WeatherUpdateEvent
RaceControlEvent
LapCountEvent
TrackStatusEvent
StageStatusEvent
These events are sent at any time, also before the race starts
When stage starts
StageStatusEvent (status=STARTED)
BetStopEvent
EarlyBetStartEvent
When stage starts we send stage status event to let you know the new status of the stage. In addition we send a BetStopEvent to indicate that you should stop all bets that needs to be placed before the stage starts. We also send an EarlyBetStartEvent. This is active during the fastest drivers first lap. As soon as the lap count changes to 2 this we will send a BetStartEvent as long as there are no conditions in place that will trigger a BetStopEvent.
During the stage
<Race|Practice|Qualifying|SprintQualifying>LeaderboardEvent
<Race|Practice|Qualifying|SprintQualifying>TimingEvent
SessionTimeEvent
LapCountEvent
LapEvent
NewTiresEvent
DriverStatusChangedEvent
PitLaneTimeEvent
TrackStatusEvent
WeatherUpdateEvent
SectorEvent
SpeedTrapEvent
RaceControlEvent
OvertakingEvent
CatchingEvent
BetStartEvent
BetStopEvent
QualifyingPartEvent
When stage status is STARTED you'll get events that describes most things that happen.
The time remaining, local time, and weather updates. Information about leaderboard changes, timing data, sectors and speed traps, pit stops and race control messages.
BetStartEvent and BetStopEvent can be sent at any time during the stage. BetStop are triggered by certain conditions that can make the stage unpredictable. As soon as these conditions are cleared we'll send a BetStartEvent.
When stage is finished
StageStatusEvent (status=FINISHED)
ChequeredFlagEvent
When stage is finalized
StageStatusEvent (status=FINALIZED)
EndOfStageEvent
Common
These common protobuf messages are used in the representation of several event types.
EventResponse
StreamEvents and ReplayStreamEvents streams a series of EventResponse. These messages are a container for the EventWrapper that contains the event.
eventWrapper
sportradar.ldi.eventwrapper.v1.EventWrapper
The event wrapper that contains the actual event
Mandatory
EventWrapper
The event wrapper is a carrier for the events and it makes it easy to handle them, extract the event id, type and similar without having to unpack the event itself.
id
int64
A sequential id for the event. Always keep a track of the id of the last id you received so that you can continue from where you left off without any data-loss should you lose connection
Mandatory
rawEventUuid
string
Unique identifier for the event
Optional, empty string by default
stageId
string
The current stage id. This should always be the same as the stage id you used to initiate the stream
Mandatory
loggedAt
google.protobuf.Timestamp
The timestamp when this event was created
Mandatory
eventType
string
A human readable name for the event to make it easy to process and handle events. E.g. "SessionTimeEvent" or "SectorEvent"
Mandatory
event
google.protobuf.any
The event itself. Can be any type listed in this document.
Mandatory
LeaderboardItem
The LeaderboardItem is used as a data type in the 3 different types of leaderboard events you can receive (Practice, Qualifying and Race).
position
int32
Position of the driver in the current classification
Mandatory
driverData
DriverData
The driver data that describes a drivers position on the leader board
Mandatory
DriverPosition
Denotes a position change for a driver. Note that the position is newUnofficialPosition, meaning it has not been confirmed in TimingData.
driverId
string
The drivers Sportradar id
Mandatory
newUnofficialPosition
int32
Position of the driver in the current classification
Mandatory
DriverData
DriverData contains values that can be associated with the driver.
driverId
string
The Sportradar id for the driver
Valtteri Bottas
41600
Mercedes
Carlos Sainz JR
189029
Ferrari
Charles Leclerc
269471
Ferrari
Sergio Perez
46337
Red Bull Racing
Max Verstappen
178318
Red Bull Racing
Lando Norris
495898
McLaren
Daniel Ricciardo
41603
McLaren
Fernando Alonso
4521
Alpine
Esteban Ocon
184751
Alpine
Pierre Gasly
381362
AlphaTauri
Yuki Tsunoda
764646
AlphaTauri
Sebastian Vettel
7610
Aston Martin
Lance Stroll
302866
Aston Martin
Kimi Raikkonen
4538
Alfa Romeo Racing
Antonio Giovinazzi
222584
Alfa Romeo Racing
Mick Schumacher
568799
Haas F1 Team
Nikita Mazepin
764216
Haas F1 Team
George Russell
391432
Williams
Nicholas Latifi
447677
Williams
Mandatory
racingNumber
int32
The drivers racing number
Mandatory
numberOfTyres
int32
The amount of tire changes the driver has had in this stage
Mandatory
position
int32
Position of the driver in the current classification
Mandatory
lastLapTime
string
The drivers last lap time in this stage
Optional, empty string if missing
personalBestLapTime
string
The drivers personal best lap time in this stage
Optional, empty string if missing
personalBestLapNumber
string
The drivers personal best (fastest) lap number in this stage
Optional, empty string if missing
pitStops
int32
The number of pit stops for the driver in this stage
Mandatory
lapsCompleted
int32
The number of laps the driver has completed in this stage
Mandatory
tyre
string
The drivers current tyre compound
Optional, empty string if missing
isActive
bool
True if the driver is active in the stage; not stopped, on track, not in the pitlane.
Mandatory
StartOfStageEvent
StartOfStageEvent is the very first event that is sent when the data-stream from a live stage starts. This indicates that the stage is ready and that you should expect events for this stage. You will normally receive this event 10-15minutes before the start time of a stage.
stageId
string
The id of the stage. This will be the same stageId as you sent when you started the stream for this stage
Mandatory
EndOfStageEvent
EndOfStageEvent is the very last event that is sent in the data-stream for a stage. This indicates that there will be no more events for this stage. After a given duration (normally 5 minutes) after you receive this event the stream will be closed on server side. We strongly recommend that you close the stream from client side when this event is received. When the server closes the stream it will return an ABORTED error.
streamClosesIn
google.protobuf.Duration
A duration that indicates when this stream will be closed. Normally 300 seconds.
Mandatory
EarlyBetStartEvent
EarlyBetStartEvent is sent when we recommend that you should be cautious about opening for live bets. The reason for this is that during this bet state there is a high chance for incidents and bet stops. This is during the first lap for Race stages in addition to when the track status is 2 (yellow flag), 4 (safety car) or 6 (virtual safety car) are shown. EarlyBetStartEvent will be sent if the following conditions are met:
Stage status is STARTED
AND one of these conditions are met
Current lap is 1 and track status is 1 (TRACK_CLEAR) and stage type is STAGE_TYPE_RACE
Track status is 2 (YELLOW_FLAGS)
Track status is 4 (SAFETY_CAR)
Track status is 6 (VIRTUAL_SAFETY_CAR)
reason
string
An optional text field to explain the reason for this bet status
Optional - defaults to ""
BetStartEvent
BetStartEvent is sent when we recommend that you should open for live bets. In this bet state the stage is in a fairly predictable state. The stage will be in this state before the race starts. When the race starts you will get a BetStopEvent immediately followed by an EarlyBetStartEvent that is kept throughout the leading drivers first lap unless you get a BetStopEvent. From lap 2 and onward bet start status with as long as the following conditions are met:
Stage status is STARTED and
Track status is 1 (TRACK_CLEAR) or 7 (VIRTUAL_SAFETY_CAR_END)
Current lap is greater than 1 OR stage type is STAGE_TYPE_PRACTICE OR stage type is STAGE_TYPE_QUALIFYING
Stage status is INACTIVE (before stage starts)
reason
string
An optional text field to explain the reason for this bet status
Optional - defaults to ""
BetStopEvent
BetStopEvent is sent when we recommend that you should close live bets. This bet status is triggered by incidents that make it difficult to predict the outcome. This can be a crash, sensor malfunction, issues with the data-stream and similar. It is also sent when the bet state switches between EarlyBetStartEvent and BetStartEvent. We will send BetStopEvent when following conditions are met:
Qualifying parts
Between qualifying parts Q1, Q2 and Q3 you will get a ChequeredFlagEvent and a StageStatusEvent with status FINISHED. You will not get a BetStopEvent triggered by these events, for Qualifying stages we send BetStopEvent when the all parts of the stage is Finalised.
Stage type is STAGE_TYPE_RACE or STAGE_TYPE_PRACTICE and stage status is FINISHED
Stage type is STAGE_TYPE_QUALIFYING and stage status is FINALISED
Stage status is ABORTED
Track status is 5 (RED_FLAG)
reason
string
An optional text field to explain the reason for this bet status
Optional - defaults to ""
StartingPositionEvent
StartingPositionEvent contains the lineup for the stage. This is the order the drivers start in. This is sent once, right after StartOfStageEvent is sent. This data is also accessible in the stage snapshot.
The events contains a list of leader board items. See the description for LeaderboardItem.
items
repeated LeaderboardItem
A list of leaderboard items containing the lineup for the stage. This list contains driver ids and their position. For a race type stage this will normally contain 20 drivers.
Mandatory
Leaderboards
Formula 1 has 3 different types of stages; Practice, Qualifying and Race. There are a few differences to the leader board for these types and for that reason there are 3 different types of leader board events depending on the stage type.
Leaderboards are sent every time a driver completes a sector in race type stages, and on every lap completion for practice type stages. We send partial leader board updates every time a driver completes a sector and full leader boards approximately every 20 seconds.
PracticeLeaderboardEvent
The PracticeLeaderboardEvent is sent during practice stages (Practice 1, Practice 2 and Practice 3). Be aware that practice sessions are chaotic in nature and that it's normal with many pit stops and that few or no drivers might be active in the stage. In practice sessions the leaderboard is normally updated just once per lap.
Practice leaderboard
In practice sessions drivers are not competing for first place. They are practicing. For that reason it's unpredictable and we do not recommend using the practice leader board for any markets.
stageId
string
The id of the stage
Mandatory
isPartialUpdate
bool
False if it contains all drivers and True if it contains fewer than all drivers
Mandatory
idealLapTime
string
The ideal lap time for the current session. The ideal lap time is the sum of the best sector times for the current session.
Optional, empty string if missing
items
repeated LeaderboardItem
A list of leaderboard items
Mandatory
QualifyingLeaderboardEvent
Qualifying
F1 Qualifying is the part done before a race, to determine the starting positions of the cars in the race. Qualifying is done in three sessions, where the first session is used to single out the 5 slowest cars, which in turn gets starting position 20 - 16 in the main event. These cars can not participate in session 2 and 3. The second session is once again used to single out the 5 slowest cars of the remaining cars. These cars gets starting position 15 - 11 in the race, and can not participate in session 3. For the third session of qualifying only the remaining 10 cars can participate. The driver with the fastest lap time gets starting position 1. The second fastest gets starting position 2 and so on.
In some rare cases a car that is to slow compared to the fastest car can fail to qualify altogether. In this case you can end up with less than 20 cars on the starting grid.
stageId
string
The id of the stage
Mandatory
isPartialUpdate
bool
False if it contains all drivers and True if it contains fewer than all drivers
Mandatory
idealLapTime
string
The ideal lap time for the current session. The ideal lap time is the sum of the best sector times for the current session.
Optional, empty string if missing
cutOffTime
string
The value of the cut off time for the current qualifying session
Optional, empty string if missing
cutOffPercentage
int32
Percentage of the fastest lap time set in qualifying (part 1), used to calculate the cut off time
Optional, 0 if missing (not set yet)
numEntriesQ1
int32
The number of entries in qualifying part 1
Optional, 0 if missing (not set yet)
numEntriesQ2
int32
The number of entries in qualifying part 2
Optional, 0 if missing (not set yet)
numEntriesQ3
int32
The number of entries in qualifying part 3
Optional, 0 if missing (not set yet)
sessionPart
int32
The current qualifying session part
Optional, 0 if missing (not set yet)
items
repeated LeaderboardItem
A list of leaderboard items
Mandatory
RaceLeaderboardEvent/SprintQualifyingLeaderBoardEvent
The RaceLeaderboardEvent/SprintQualifyingLeaderboardEvent is sent during race/sprint qualifying stages. Full updates for RaceLeaderboardEvent/SprintQualifyingLeaderboardEvent is sent approximately every 20 seconds. Partial updates is sent every time a driver completes a sector.
stageId
string
The id of the stage
Mandatory
isPartialUpdate
bool
False if it contains all drivers and True if it contains fewer than all drivers
Mandatory
idealLapTime
string
The ideal lap time for the current session. The ideal lap time is the sum of the best sector times for the current session.
Optional, empty string if missing
items
repeated LeaderboardItem
A list of leaderboard items
Mandatory
Timing Events
Timing events contains the timing data for each driver. This is updated every time a driver passes a timing loop. There are approximately 20 timing loops around the track.
Unofficial position
Official positions in the stage is verified by FIA certified timing controllers. This is done for every sector completion for race type stages. The timing data is updated more frequently, every timing loop. It also contains a position, in addition to timing data. Since this data is updated so frequently it's not verified by timing officials.
PracticeDriverTimingEvent
The PracticeDriverTimingEvent is sent during practice stages. The event is sent when the driver passes a timing loop.
driverId
string
The drivers Sportradar id
Mandatory
intervalToPositionAhead
string
A duration to the position ahead. Shown as "<n> LAP" if the driver is more than one lap behind. Time format DURATION
Optional, empty string if missing
gapToLeader
string
A duration to the leader. Shown as "<n> LAP" if the driver is more than one lap behind. Time format DURATION
Optional, empty string if missing
raceTime
string
The duration of time between the race start time, and the last passing of the control line for this entry. H:MM:SS:THT (e.g. "1:02:03:045")
Optional, empty string if missing
QualifyingDriverTimingEvent
The QualifyingDriverTimingEvent is sent during qualifying stages. It contains timing data from qualifying sessions and is updated every time a driver passes a timing loop.
Qualifying
F1 Qualifying is the part done before a race, to determine the starting positions of the cars in the race. Qualifying is done in three sessions, where the first session is used to single out the 5 slowest cars, which in turn gets starting position 20 - 16 in the main event. These cars can not participate in session 2 and 3. The second session is once again used to single out the 5 slowest cars of the remaining cars. These cars gets starting position 15 - 11 in the race, and can not participate in session 3. For the third session of qualifying only the remaining 10 cars can participate. The driver with the fastest lap time gets starting position 1. The second fastest gets starting position 2 and so on.
driverId
string
The drivers Sportradar id
Mandatory
raceTime
string
The duration of time between the race start time, and the last passing of the control line for this entry. H:MM:SS:THT (e.g. "1:02:03:045")
Optional, empty string if missing
timeDiffToFastestQ1
string
The time difference between this entry and the entry in position 1 (the quickest driver in the Q1 part of qualifying). Time format DURATION
Optional, empty string if missing
timeDiffToPositionAheadQ1
string
The time difference between this entry and the entry in the position ahead during Q1 part of qualifying. Time format DURATION
Optional, empty string if missing
timeDiffToFastestQ2
string
The time difference between this entry and the entry in position 1 (the quickest driver in the Q2 part of qualifying). Time format DURATION
Optional, empty string if missing
timeDiffToPositionAheadQ2
string
The time difference between this entry and the entry in the position ahead during Q2 part of qualifying. Time format DURATION
Optional, empty string if missing
timeDiffToFastestQ3
string
The time difference between this entry and the entry in position 1 (the quickest driver in the Q3 part of qualifying). Time format DURATION
Optional, empty string if missing
timeDiffToPositionAheadQ3
string
The time difference between this entry and the entry in the position ahead during Q3 part of qualifying. Time format DURATION
Optional, empty string if missing
knockOut
bool
Indicates if the entry has been knocked out during a qualifying part
Mandatory
cutOff
bool
Indicates if the entry has been cut off during a qualifying part
Mandatory
RaceDriverTimingEvent/SprintQualifyingDriverTimingEvent
The RaceDriverTimingEvent/SprintQualifyingDriverTimingEvent is sent during race/sprint qualifying stages. This event is sent every time a driver passes a new timing loop.
driverId
string
The drivers Sportradar id
Mandatory
intervalToPositionAhead
string
A duration to the position ahead. Shown as "<n> LAP" if the driver is more than one lap behind. Time format DURATION
Optional, empty string if missing
gapToLeader
string
A duration to the leader. Shown as "<n> LAP" if the driver is more than one lap behind. Time format DURATION
Optional, empty string if missing
raceTime
string
The duration of time between the race start time, and the last passing of the control line for this entry. H:MM:SS:THT (e.g. "1:02:03:045")
Optional, empty string if missing
newUnofficialPosition
int32
The new UNOFFICIAL position for the driver. This position is not verified and should only be used as a guideline.
Mandatory
LapEvent
Lap event is sent every time a driver completes a lap. It contains the updated driver data, including position.
Lap count
Race : The length of a F1 race is the smallest number of laps that exceeds 305 km. The Monaco Grand Prix is an exception with 78 laps, which is 260,5 km. Under special circumstances the number of laps can be changed. A race can never last longer than 2 hours. If this limit is reached the race will end at the of the next full lap
Qualifying : No maximum number of laps is set for qualifying. The first session lasts 18 minutes. The second lasts 15 minutes. The third session lasts 12 minutes.
Practice : No maximum number of laps is set for Practice.
driverInfo
DriverData
A DriverData message that describes the drivers standing in the stage
Mandatory
OvertakingEvent
Overtaking event is sent every time there is a change in drivers position detected after a driver crosses a timing loop. Right after an overtake event is sent with overtakeState OVERTAKEN or OVERTOOK we send an OvertakingEvent with overtakeState MAINTAINED to indicate that the driver is currently maintaining the new position. Be aware that the official position in the race is updated every time a driver completes a sector. This position is delivered in the leaderboard event.
OvertakeStake:
UNKNOWN
0
The overtake state is unknown
OVERTAKEN
1
The driver has been overtaken by the driver behind.
MAINTAINED
2
The driver has maintained it's position. Sent to clear state right after OVERTAKEN or OVERTOOK
OVERTOOK
3
The driver overtook the driver in front.
OvertakingEvent:
driverId
string
The drivers Sportradar id
Mandatory
overtakeState
OvertakeState
The drivers overtakestate
Mandatory
newUnofficialPosition
int32
The drivers new unofficial position. NOTE: this position is not confirmed by timing officials until the driver completes a sector and a new leader board event is sent.
Mandatory
CatchingEvent
The CatchingEvent is sent if the gap between a driver and the driver in front is less than one second and the gap is decreasing or increasing rapidly.
CatchingState:
UNKNOWN
0
The overtake state is unknown
FALLING_BACK
1
The gap between the driver and the driver in front is increasing
MAINTAINED
2
The gap between the driver and the driver in front is steady
CATCHING
3
The gap between the driver and the driver in front is decreasing
CatchingEvent:
driverId
string
The drivers Sportradar id
Mandatory
catchingState
CatchingState
The drivers catching state
Mandatory
DriverStatusChangedEvent
DriverStatusChangedEvent is sent every time a drivers status changes. This happens when a driver is in the pit, on it's way out of the pit or if the driver has stopped or retired.
DriverStatus:
retired
bool
Set to true if the driver is retired
Mandatory
inPit
bool
Set to true when the driver enter the pit lane and to false when the driver exits the pit
Mandatory
pitOut
bool
Set to true when the driver exits the pit lane and to false once the driver completes the first sector
Mandatory
stopped
bool
Set to true if the driver stops on track
Mandatory
DriverStatusChangedEvent:
driverId
string
The drivers Sportradar id
Mandatory
driverStatus
DriverStatus
The drivers status
Mandatory
NewTiresEvent
We send NewTiresEvent after every time a driver has had a pit stop. After driver status changes to pitOut=true, this event follows. It describes what happened in the previous stint. If you want to know the current tire compound for a live stage you can check the tyre property on the DriverData message (sent in leader board updates). That contains the current tire compound. Full information about a tire is not available until after the driver has a new pit stop.
Stint
A stint is the period between two pitstops. The first stint is the period between the start of the stage and the first pitstop. Tires are not always changed, so check that tires are changed in the stint if that is what you are looking for.
Stint:
startLaps
int32
The amount of laps this tire has been used before it was placed on the car this stint
Mandatory
totalLaps
int32
The total amount of laps on this tire.
Mandatory
new
bool
True if this is a new tire, false if it has been used before
Mandatory
tyresChanged
bool
True if tires where changed in this stint, false if they where not changed (e.g. if the driver has a pit stop to replace a broken nose-cone)
Mandatory
compound
string
The tyres compond. E.g. HARD, SOFT, WET
Mandatory
NewTiresEvent
driverId
string
The drivers Sportradar id
Mandatory
strint
repeated Stint
A list of the drivers stints in this stage. The first stint at position 0 in the list, the second at position 1 and so on.
Mandatory
PitLaneTimeEvent
The PitLaneTimeEvent is sent after the driver exits the pit lane. This time is from the driver enters the pit lane until the drivers exits the pit lane.
PitLaneTimeEvent is a timeline event.
driverId
string
The drivers Sportradar id
Mandatory
lapNumber
int32
The number of laps completed by the driver.
Mandatory
duration
double
The calculated delta from crossing the pit entry to crossing the pit exit. Duration in seconds, e.g. 21.8
Mandatory
currentRaceLapOrSession
int32
Current race lap during race, qualifying part during qualifying, 0 during practice
Mandatory
SpeedTrapEvent
The SpeedTrapEvent is sent every time a driver passes through a speed trap.
Speed Trap
Every formula 1 Grand Prix has 3 speed traps placed around the track. These are used to measure the speed of every car as it passes through. As a result one can see who has the highest speed at that exact part of the lap.
Speed:
id
string
The speed trap id, alphanumeric
I1 - Intermediate 1
I2 - Intermediate 2
FL - Finish line
ST - Speed trap (standalone)
Mandatory
value
string
Speed in km/h for this sector
Optional, empty string if missing
personalFastest
bool
True if this is the fastest speed for this entry in this sector during this stage
Mandatory
overallFastest
bool
True if this is the fastest speed for any entry in this sector during this stage
Mandatory
difference
string
The difference between the sector speed for this lap and the previous lap
Optional, empty string if missing
SpeedTrapEvent:
driverId
string
The drivers Sportradar id
Mandatory
speed
Speed
The drivers catching state
Mandatory
SectorEvent
SectorEvent is sent every time a driver completes a sector.
Sector
A sector in a F1 race is a section of the course roughly one third the length of the course. For every sector each car reports how long it took to complete the sector
Sector:
id
int32
The sector id, numeric value from 1 to 3
overallFastest
bool
True if the time for this sector is the overall fastest for all entries
value
string
Current time for this sector. Time format DURATION
personalFastest
bool
True if the time for this sector is the personal fastest for this entry
stopped
bool
True if this entry has stopped in this sector
difference
string
Difference between the sector time for this lap and the previous lap
SectorEvent:
driverId
string
The drivers Sportradar id
Mandatory
sector
Sector
The data for the last completed sector
Mandatory
StageStatusEvent
The StageStatusEvent is sent every time the stage status changes. Before the stage starts the status will be INACTIVE and when it starts it will be STARTED. Normally the stage status does not change while a race is ongoing, so you'll receive one StageStatusEvent when the race starts and one 2 hours later when the stage is FINISHED.
StageStatusEvent is a timeline event.
SessionState:
UNKNOWN
0
The stage state is unknown
INACTIVE
1
The stage status is inactive. This is the normal state before the stage starts
STARTED
2
The stage has started. This is the normal state during a race, practice or qualifying session.
FINISHED
3
This is the state that will be shown when the first driver has completed the race. There will still be cars on the track competing for a position.
ABORTED
4
If the stage is aborted for some reason this state will be shown.
FINALISED
5
Approx 15-20 minutes after the stage is FINISHED F1 changes the state to FINALISED. This means that there will be no more events. After this is sent we will send the EndOfStageEvent and you should disconnect from the stream.
StageStatusEvent:
state
SessionState
The current session state
Mandatory
currentRaceLapOrSession
int32
Current race lap during race, qualifying part during qualifying, 0 during practice
Mandatory
TrackStatusEvent
The TrackStatusEvent is sent every time an incident occur that leads to a change in the status of the track.
TrackStatusEvent is a timeline event.
OvertakeState:
UNKNOWN
0
The track status is unknown
TRACK_CLEAR
1
Track is clear
YELLOW_FLAGS
2
Yellow flags are being shown at one or more locations on track
NO_USED_NO_MEANING
3
No longer used, no relevant meaning.
SAFETY_CAR
4
Safety car has been and still is deployed
RED_FLAG
5
A Red Flag has been shown, and the session has been aborted or suspended
VIRTUAL_SAFETY_CAR
6
Virtual safety car has been deployed
VIRTUAL_SAFETY_CAR_END
7
Virtual safety car ending notification
TrackStatusEvent:
trackStatus
TrackStatus
The current track status
Mandatory
message
string
String representation of the track status. E.g. "VSCDeployed"
Mandatory
currentRaceLapOrSession
int32
Current race lap during race, qualifying part during qualifying, 0 during practice
Mandatory
LapCountEvent
The LapCountEvent contains information about the expected number of laps, the current lap and the laps remaining. It is sent every time one of these values changes; Minimum every new lap.
Lap count
Race : The length of a F1 race is the smallest number of laps that exceeds 305 km. The Monaco Grand Prix is an exception with 78 laps, which is 260,5 km. Under special circumstances the number of laps can be changed. A race can never last longer than 2 hours. If this limit is reached the race will end at the of the next full lap
Qualifying : No maximum number of laps is set for qualifying. The first session lasts 18 minutes. The second lasts 15 minutes. The third session lasts 12 minutes.
Practice : No maximum number of laps is set for Practice.
totalRaceLaps
int32
The currently expected number of race laps after which the race will be completed should this number of laps be completed within the prescribed time limit.
Mandatory
currentRaceLap
int32
The lap number the leader of the race is currently on
Mandatory
raceLapsRemaining
int32
The number of laps remaining in the race at the last time the race leader crossed the finish line.
Mandatory
RaceControlEvent
RaceControlEvents are transmitted live at various times throughout the stage. It contains a description of relevant events in the race such as information about incidents.
RaceControlEvent is a timeline events.
value
string
The message that occured
Mandatory
tlaEnrichedValue
string
The message enriched with a drivers TLA if a driver is mentioned in the message
Mandatory
nameEnrichedValue
string
The message enriched with a drivers Name if a driver is mentioned in the message
Mandatory
currentRaceLapOrSession
int32
Current race lap during race, qualifying part during qualifying, 0 during practice
Mandatory
WeatherUpdateEvent
WeatherUpdateEvent describes the weather conditions at the track. It is sent every time one of the values changes.
humidity
double
The current relative humidity, expressed as percentage
Mandatory
rainfall
bool
Rainfall indicator. True if it's raining.
Mandatory
airTemp
double
Current air temperature measured in degrees Celsius
Mandatory
pressure
double
The current atmospheric pressure measured in mBars
Mandatory
trackTemp
double
Current track temperature measured in degrees Celsius
windDirection
int32
The current wind course, in degrees, measured in a clockwise direction with 0 representing north. Wind course indicates where the wind is blowing to.
windSpeed
double
The current wind speed, measured in meters per second.
SessionTimeEvent
SessionTimeEvent is sent every second and gives you the local time from where the race is in addition to remaining time for the stage. Note that the remaining time is the target time for the race. The race might be completed with time remaining if the target amount of laps is reached before.
timeRemaining
google.protobuf.Duration
Remaining time of the session in seconds and nanos
Mandatory
localTimeOfDay
google.protobuf.Timestamp
The local time of the day. Seconds and nanos since unix epoch UTC.
Mandatory
ChequeredFlagEvent
Chequered flag event is sent when the chequered flag is show on the track. Other incident.related flags are sent in TrackStatusEvent. ChequeredFlagEvent is sent without properties.
QualifyingPartEvent
QualifyingPartEvent is only sent during qualifying stages. Once part one of qualifying is done and preparation for Q2 is done this event is sent. Similarly QualifyingPartEvent is sent after Q2 is done and preparations for Q3 is done. Once you receive this event you know that the indicated stage part will start soon.
Note that the QualifyingLeaderboardEvent contains the sessionPart property. This is an integer showing the session part the data belongs to. For Q1 the sessionPart property will have a value of 1, for Q2 a value of 2 and for Q3 a value of 3.
preparedPart
enum PreparedPart { Q2 = 0; Q3 = 1; }
A value describing the prepared session part. This is only sent for qualifying parts Q2 and Q3.
Mandatory
DRSEvent
DRSEvent is sent every time there is a change in the DRS status for the stage or for one or more drivers. It's an event that sends updates for some or all drivers.
DriverDRSStatus:
driverId
string
The drivers sportradar id.
Mandatory
drsActivationEnabled
bool
Driver meets criteria for drs activation.
Mandatory
drsButtonPressed
bool
Driver is pressing drs activation button.
Mandatory
wingActive
bool
Wing is active.
Mandatory
drsAllowed
bool
drs is allowed in this state of the stage (disabled during safety car, in the first two laps, etc).
Mandatory
DRSEvent:
isPartial
bool
If partial = true, drivers only contains data for drivers whose DRSStatus changed.
Mandatory
drivers
repeated DriverDRSStatus
List of DriverDRSStatus
Mandatory
FeedQualityEvent
Indicates changes on the quality of the feed.
FeedQualityEvent:
carDataReceived
bool
Indicates whether or not we are receiving car data. If false we will not produce DRSEvents.
Mandatory
FastestLapAchievedEvent
Triggered when a driver achieves an (overall) fastest lap.
FastestLapAchievedEvent is a timeline event.
driverId
string
The drivers sportradar id.
Mandatory
fastestLapTime
string
Time achieved
Mandatory
currentRaceLapOrSession
int32
Current race lap during race, qualifying part during qualifying, 0 during practice
Mandatory
FastestSpeedAchievedEvent
Triggered when a driver achieves a fastest speed for a given speed trap.
FastestSpeedAchievedEvent is a timeline event.
driverId
string
The drivers sportradar id.
Mandatory
id
string
The speed trap id, alphanumeric
I1 - Intermediate 1
I2 - Intermediate 2
FL - Finish line
ST - Speed trap (standalone)
Mandatory
value
string
Speed achieved in km/h
Mandatory
overallFastest
bool
True if this speed was the fastest over all speed traps
Mandatory
currentRaceLapOrSession
int32
Current race lap during race, qualifying part during qualifying, 0 during practice
Mandatory
FastestSectorTimeAchievedEvent
Triggered when a driver achieves a fastest sector.
FastestSectorTimeAchievedEvent is a timeline event.
driverId
string
The drivers sportradar id.
Mandatory
id
int32
The sector id, numeric value from 1 to 3
value
string
Time achieved
Mandatory
currentRaceLapOrSession
int32
Current race lap during race, qualifying part during qualifying, 0 during practice
Mandatory
DriverOutEvent
Triggered when DriverStatus.retired changes to true
DriverOutEvent is a timeline event.
driverId
string
The drivers sportradar id.
Mandatory
currentRaceLapOrSession
int32
Current race lap during race, qualifying part during qualifying, 0 during practice
Mandatory
DriverStoppedEvent
Triggered when DriverStatus.stopped changes to true
DriverStoppedEvent is a timeline event.
driverId
string
The drivers sportradar id.
Mandatory
currentRaceLapOrSession
int32
Current race lap during race, qualifying part during qualifying, 0 during practice
Mandatory
DriverPitStopEvent
Triggered when DriverStatus.inPit changes to true
DriverPitStopEvent is a timeline event.
driverId
string
The drivers sportradar id.
Mandatory
currentRaceLapOrSession
int32
Current race lap during race, qualifying part during qualifying, 0 during practice
Mandatory
Top3DriversEvent
Triggered in race session when a top3 drivers finishes.
Top3DriversEvent is a timeline event.
driverId
string
The drivers sportradar id.
Mandatory
position
int32
Driver position
Mandatory
currentRaceLapOrSession
int32
Current race lap during race, qualifying part during qualifying, 0 during practice
Mandatory
OvertakeEvent
Triggered when a driver overtakes.
OvertakeEvent is a timeline event.
fasterDriver
DriverPosition
Driver that performs the overtake
Mandatory
overtakenDriver
repeated DriverPosition
Overtaken drivers
Mandatory
currentRaceLapOrSession
int32
Current race lap during race, qualifying part during qualifying, 0 during practice
Mandatory
StartedRainingEvent
Triggered when WeatherUpdateEvent.rainfall changes to true
StartedRainingEvent is a timeline event.
currentRaceLapOrSession
int32
Current race lap during race, qualifying part during qualifying, 0 during practice
Mandatory
DriverCarPosition
Position data for a single driver.
Coordinates are based on ENU coordinate system and should be referred to the track model or the relevant circuit. The track file has a coordinate labelled as POINT_ORIGIN:
For all points in the track model, subtract the x and y coordinates of POINT_ORIGIN (z value is absolute and not relative to the origin). This forms the local ENU coordinate system that we use in the positioning feed.
For the points in the feed, divide the coordinates by 100 to be in meters.
If you will display this, swap the X and Y coordinates.
driverId
string
The drivers sportradar id.
Mandatory
posX
int32
Mandatory
posY
int32
Mandatory
posZ
int32
Mandatory
speed
int32
car speed in km/h
Mandatory
direction
int32
0 to 359 deg
Mandatory
attitudeYaw
int32
Mandatory
attitudePitch
int32
Mandatory
attitudeRoll
int32
Mandatory
progression
int32
0 – 10000 (5000 being half way into a lap)
Mandatory
CarPositionEvent
Contains DriverCarPosition for all drivers. This event is not available through the stream EventStream.StreamEvents, instead it is available in EventStream.StreamCarPositionEvents.
Top3DriversEvent:
positions
repeated DriverCarPosition
Mandatory
Last updated
Was this helpful?