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.

Stage status
Event(s)

Before stage starts

  1. StartOfStageEvent

  2. StartingPositionEvent

  3. <Race|Practice|Qualifying|SprintQualifying>LeaderboardEvent

  4. 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

  1. StageStatusEvent (status=FINALIZED)

  2. 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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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).

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

driverId

string

The Sportradar id for the driver

Lewis Hamilton
7135
Mercedes

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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)

Property
Type
Description
Mandatory/optional (gRPC default values)

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)

Property
Type
Description
Mandatory/optional (gRPC default values)

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)

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Name
Value
Description

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Name
Value
Description

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

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

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Name
Value
Description

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Name
Value
Description

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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.

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

  1. 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.

  2. For the points in the feed, divide the coordinates by 100 to be in meters.

  3. If you will display this, swap the X and Y coordinates.

Property
Type
Description
Mandatory/optional (gRPC default values)

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:

Property
Type
Description
Mandatory/optional (gRPC default values)

positions

repeated DriverCarPosition

Mandatory

Last updated

Was this helpful?