Skip to main content
The Session class is the primary interface for accessing Formula 1 session data including lap times, telemetry, weather, and results.

Session

Object for accessing session specific data. Constructor:
Event
required
Reference to the associated Event object
str
required
Name of this session (e.g., ‘Qualifying’, ‘Race’, ‘FP1’)
bool
default:"False"
Whether the official F1 API supports this event
Sessions are usually created using fastf1.get_session() rather than instantiating directly.

Properties

event

Event
Reference to the associated Event object

name

str
Name of this session (e.g., ‘Qualifying’, ‘Race’, ‘FP1’)

date

pd.Timestamp
Date at which this session took place

drivers

list
List of all driver numbers (as strings) that participated in this session. Available after calling load().

results

SessionResults
Session results with driver information. Available after calling load().

laps

Laps
All laps from all drivers in this session. Available after calling load() with laps=True.

car_data

dict
Dictionary of car telemetry (Speed, RPM, etc.) keyed by driver number (string). Each value is a Telemetry object. Available after calling load() with telemetry=True.

pos_data

dict
Dictionary of car position data (X, Y, Z coordinates) keyed by driver number (string). Each value is a Telemetry object. Available after calling load() with telemetry=True.

weather_data

pd.DataFrame
DataFrame containing weather data for this session. Available after calling load() with weather=True.

session_status

pd.DataFrame
Session status data (Started, Finished, Aborted). Available after calling load() with laps=True.

track_status

pd.DataFrame
Track status data (yellow flags, red flags, etc.). Available after calling load() with laps=True.

race_control_messages

pd.DataFrame
Race control messages for this session. Available after calling load() with messages=True.

session_info

dict
Session information including meeting, session, country and circuit names and unique identifier keys.

total_laps

int | None
Originally scheduled number of laps for race-like sessions. Available after calling load() with laps=True.

t0_date

pd.Timestamp
Date timestamp marking the beginning of the data stream (when session time is zero). Available after calling load() with telemetry=True.

session_start_time

pd.Timedelta
Session time at which the session was started. Available after calling load() with laps=True.

Methods

load()

Load session data from the supported APIs.
bool
default:"True"
Load laps and session status data
bool
default:"True"
Load telemetry data (car_data and pos_data)
bool
default:"True"
Load weather data
bool
default:"True"
Load race control messages
LiveTimingData | None
default:"None"
Optional locally saved livetiming data to use as data source instead of API
Without specifying any options, all data is loaded by default. Loading all data is recommended as FastF1 uses data from multiple sources to provide the most accurate results.
Example:

get_driver()

Get a DriverResult object containing information about a specific driver.
str
required
Driver’s three letter identifier (e.g., ‘VER’) or driver number as string
DriverResult
DriverResult object with driver information
Example:

get_circuit_info()

Returns additional information about the circuit hosting this event.
CircuitInfo | None
CircuitInfo object with corner locations, marshal lights, marshal sectors, and track map rotation. Returns None if information is unavailable.
The circuit information is manually created and not highly accurate, but it’s useful for annotating data visualizations.
Example:

Complete Usage Example