NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4285 most downloaded on PyPI
Python package for accessing and analyzing Formula 1 results, schedules, timing data and telemetry.
Last release 5 months ago
29 Apr 2026
Release timing varies
gaps range from 1 weeks to 4 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
6 years old
77 releases · first in 2021
One column per quarter.
Implement support for reading information about a drivers personal best lap from the fastf1.core.Laps.pick_fastest will now by default return the quic
Changes:
fastf1.core.Laps.pick_fastest will now by
default return the quickest lap that is also marked as personal best lap
of any driver. This fixes the long standing problem that the fastest lap
returned by this function may actually be a deleted lap.Bug Fixes:
Log ergast error tracebacks on level DEBUG instead of WARNING to avoid confusion when a failure was to be expected.
Changes:
Bug Fixes:
While backwards compatibility has been kept in mind, some breaking changes are required. Read the changelog for detailed information: https://theoehrl…
This release introduces a range of new features, bug fixes and improvements. While backwards compatibility has been kept in mind, some breaking changes are required. Read the changelog for detailed information: https://theoehrly.github.io/Fast-F1/changelog.html
Main changes include the introduction of an event schedule and better support for session results.
This release introduces a range of new features, bug fixes and improvements. While backwards compatibility has been kept in mind, some breaking changes are required.
Changes and New Features:
New fastf1.events.EventSchedule: The event schedule provides information about session start times, event format, name and location of upcoming events as well as previous event. The schedule data for the current season is pulled from an external source that is updated regularly. This should solve issues caused by schedule changes during the seasons or even during a race weekend.
New fastf1.events.Event: This object represents a single event and holds the same information as the event schedule, but for individual events.
New methods fastf1.get_testing_session, fastf1.get_event, fastf1.get_testing_event and fastf1.get_event_schedule
The cache now implements better automatic cache control and is used for all requests throughout FastF1.
The combination of improved caching and the implementation of the new event schedule now allow fastf1 to be used even if the Ergast API is not accessible. This improves reliability in case of temporary server or network problems.
Full offline support: Scripts can be run offline if they have been run at least once with an active internet connection and caching enabled.
Introduces the new objects fastf1.core.SessionResults and fastf1.core.DriverResult. These classes are built on top of pandas.DataFrame and pandas.Series. They provide information about all drivers that participated in a session. This information includes driver numbers, names, team names, finishing results, ... Session results are available for all sessions supported by the Ergast database.
A hard coded list of drivers is no longer required for testing sessions. This data can now be pulled from the api as well.
A more understandable error will be raised if properties of the ~fastf1.core.Session object are accessed which are not yet available because the relevant data has not been loaded.
Bug Fixes:
Fixed a bug that caused rain fall to always be true in weather data (#76)
Breaking Changes:
For testing events, fastf1.core.Session objects can no longer be created through fastf1.get_session. You need to use fastf1.get_testing_session instead.
fastf1.core.Session.date is now a pandas.Timestamp instead of a string.
The signature fastf1.core.Session.__init__(weekend, session_name) has been changed to fastf1.core.Session.__init__(event, session_name) to adhere to new naming conventions. This is a breaking change if the arguments are given as keyword arguments.
fastf1.get_session may return a different session now for some edge cases, if you load sessions by name instead of by round number.
The property fastf1.core.Session.results is now an instance of fastf1.core.SessionResults instead of dict. Most of the previously available data is accessible through the new data replacement object. Some special information like GPS coordinates and altitude are no longer available though. If you think that this data should still be provided by FastF1 in the future, please open an issue for that.
The datatype of the telemetry 'Brake' data channel is changed from int to bool, as brake data was never actually more accurate than this. The representation as integer (percentage) values was misleading.
Deprecations:
(Objects, methods and attributes deprecated in v2.2 will be removed in v2.3. Until then, accessing them will still work but a FutureWarning is shown, reminding you of the deprecation.) Removal has been delayed for user convenience and because there exist no problems currently which make a removal immediately necessary. The new removal target is v3.0.0
fastf1.core.Weekend has been replaced with fastf1.events.Event. All previously available methods and properties are implemented by the replacement object, although they have been partially deprecated.
The attributes name, date and gp of fastf1.core.Weekend have been deprecated. The replacement object fastf1.events.Event subclasses pandas.Series. The standard ways for accessing pandas Series' values should be used. The attributes have been additionally renamed in their Series representation. For example:
Weekend.name --> Event.EventName or Event['EventName']
Weekend.date --> Event.EventDate or Event['EventDate']
Weekend.gp --> Event.RoundNumber or Event['RoundNumber']
The attribute fastf1.core.Session.weekend has been replaced by fastf1.core.Session.event to adhere to new naming conventions.
The function fastf1.core.get_round has been deprecated and will be removed without replacement in v2.3. Use fastf1.get_event instead and and get the round number from the returned event object.
fastf1.core.Session.load_laps has been deprecated. Use fastf1.core.Session.load instead, which offers more flexibility for deciding which data should be loaded. The new method will no longer return a ~fastf1.core.Laps object! You should access the ~fastf1.core.Laps object through fastf1.core.Session.laps
fastf1.core.Driver has been replace with fastf1.core.DriverResult which has a different signature.
The attributes grid, position, name, familyname and team of fastf1.core.Driver have been deprecated. The replacement object fastf1.core.DriverResult subclasses pandas.Series. The standard ways for accessing pandas Series' values should be used. The attributes have been additionally renamed in their Series representation. For example:
Driver.name --> DriverResult.FirstName or DriverResult['FirstName']
Driver.familyname --> DriverResult.LastName or DriverResult['LastName']
Driver.team --> DriverResult.TeamName or DriverResult['TeamName']
Driver.grid --> DriverResult.GridPosition or DriverResult['GridPosition']
Driver.position --> DriverResult.Position or DriverResult['Position']
fixed issue #74: don't assume that a further session status change (e.g. ended, finalized) exists after the last lap
fastf1.core.get_session should not quietly return
fastf1.core.Weekend instead of fastf1.core.Session
if an invalid event name is given.fix: crash in lap data parser if a driver did not do any proper laps in a session
fastf1.core.Telemetry.calculate_driver_ahead if a
driver did not participate in the session (by @bambz96)force_renew=True is used with
fastf1.api.Cache.enable_cacheFix: last inlap missing from Laps
LapsFix: last inlap missing from Laps
Add schedule patch for Sprint Race Weekend at Brazil GP
introduce a custom user agent to identify FastF1 when requesting data from the Ergast API
Ergast compatibility
introduce a custom user agent to identify FastF1 when requesting data from the Ergast API
switch renamed dependency 'fuzzywuzzy' to new name 'thefuzz'
switch renamed dependency 'fuzzywuzzy' to new name 'thefuzz'
add support for getting team colors from incomplete or partial team names or from team names containing typos or extra words
make fuzzy string matching for event names case-insensitive
set missing lap start times to pit out time where possible (fixes issue #29),
add new api function fastf1.api.driver_info
support incomplete laps (not timed) caused by drivers crashing/retiring during a lap: infer as much information as possible so that telemetry can be accessed easily (fixes issues #36 and #41)
This release adds a patch to support the changed schedule on weekends with sprint qualifying.
This release adds a patch to support the changed schedule on weekends with sprint qualifying.
Add temporary support for sprint qualifying
This release adds a temporary patch to support weekends with sprint sprint qualifying and their changed order of sessions. To get data for sprint qualifying, you can use the fastf1.get_session function with the argument event='SQ'. Also remember that FP2 is on a Saturday on these weekends. FP3 does not exist.
fix future warnings and deprecation warnings caused by Pandas 1.3.0
Add weather data (see changelog in documentation)
Add weather data (see changelog in documentation)
Fix: error when calling core.Laps.get_pos_data()
Fix: error when calling get_telemetry() on the first lap (or a set of laps containing the first lap)
Make the live timing client exit more cleanly
Added weather data, general improvements and bug fixes
Add weather data (#26) See: .core.Lap.get_weather_data, .core.Laps.get_weather_data, .core.Session.weather_data
Fix: error when calling .core.Laps.get_pos_data (#22)
Fix: error when calling get_telemetry on the first lap (or a set of laps containing the first lap)
Make the live timing client exit more cleanly
Minor fixes and improved robustness for loading live timing data.
Minor fixes and improved robustness for loading live timing data.
Some additional small improvements regarding logging and other stuff
Improved robustness and minor fixes
Make the data parsing in fastf1.livetiming.data.LiveTimingData more robust and tolerant against unexpected data.
some more small improvements regarding logging and other stuff
Fix a bug introduced in v2.1.3 which prevented the loading of any data from the api
Fix a bug introduced in v2.1.3 which prevented the loading of any data from the api
Make the api parser more robust and tolerant against invalid data
various small improvements
Bug fixes and various minor improvements
Fix a bug introduced in v2.1.3 which prevented the loading of any data from the api
Make the api parser more robust and tolerant against invalid data
various small improvements
Added error handling for partially invalid data when loading car data and position data.
Improved error handling
Added error handling for partially invalid data when loading car data and position data.
Fix loading of live timing data
Hotfixes for loading live timing data
Fix failure to load live timing data due to an error in the api cache function wrapper.
Improve track status loading
This release mainly adds support for recording live timing data and using it as a data sources. (consider this beta functionality)
This release mainly adds support for recording live timing data and using it as a data sources. (consider this beta functionality)
Additionally, timing data is now loaded without telemetry by default when calling Session.load_laps.
Telemetry data is usually not available anymore. Therefore, this prevents a confusing error.
You will need to record live timing data during a session if you want to have access to telemetry data.
(At least it looks like that. Whether this will change again, I don't know.)
Add support for recording and using live timing data
Possibly breaking changes:
fastf1.Session.load_laps: Data will now be loaded without telemetry by default, i.e. only timing data is loaded. Telemetry data is usually not available anyways, therefore this prevents a confusing error.
Changes:
Possibility to record live timing data
Possibility to use recorded live timing data as a data source
Major changes, improvements and updates for the 2021 season.
Major changes, improvements and updates for the 2021 season.
Read the change log and the documentation for detailed information on what is new.
Have fun with this year's season!
Your coding agent can read these notes before it upgrades. Set up the MCP server →