fastf1
Python package for accessing and analyzing Formula 1 results, schedules, timing data and telemetry.
What it is and what it does
FastF1 is a Python library that retrieves and structures Formula 1 data—timing, telemetry, results, and schedules—from the Ergast-compatible API into extended Pandas DataFrames. It adds F1-specific analysis methods to those DataFrames and integrates with Matplotlib for visualization, while implementing request caching to reduce API calls.
The package is designed for data analysts and developers working with F1 statistics and performance metrics. It abstracts away API details and data wrangling, letting you load a session or race weekend and immediately work with lap times, driver telemetry, and results as familiar tabular data. Its main dependencies are pandas, numpy, matplotlib, requests, and supporting libraries for data handling and web communication.
Use it for:
- Analyze lap times and tire strategies across a race weekend to compare driver performance.
- Extract and visualize telemetry (speed, throttle, brake) for a specific driver or lap.
- Build historical F1 statistics dashboards combining results, schedules, and season-long trends.
- Compare qualifying and race pace across multiple seasons or drivers.
- Prototype machine-learning models using F1 telemetry and performance data as features.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
FastF1 provides Python access to Formula 1 timing data, telemetry, results, and schedules through an Ergast-compatible API, returning data as extended Pandas DataFrames with F1-specific analysis functions and Matplotlib visualization integration.
Yes. FastF1 is production-stable (active since 2021-03-10, 5303 stars), has low install friction, no known vulnerabilities, and a permissive MIT license. It fills a clear niche for F1 data analysis in Python. Install it if you work with Formula 1 data; skip it if you have no need for F1-specific APIs or telemetry.
Install
fastf1 on PyPI
pip
pip install fastf1uv
uv add fastf1poetry
poetry add fastf1Installing fastf1
Before you install
Low friction install via pip with a pure-Python wheel. Active maintenance with recent commits and a large community (5303 stars). Supports current Python versions (3.10–3.14) and depends on well-established libraries (pandas, numpy, matplotlib, requests).
License in practice
MIT License permits unrestricted use, modification, and redistribution in both open-source and commercial projects, with no warranty or liability.
Quickstart
pip install fastf1
import fastf1
session = fastf1.get_session(2021, 1, 'R')
session.load()
results = session.results
Requires Python 3.10 or later. Depends on external F1 data APIs; network access needed for data retrieval.
Verify before relying
- Whether WASM compatibility (Pyodide/JupyterLite) is production-ready or still experimental.
- Specific API rate limits or throttling behavior when making repeated requests.
- Whether caching is automatic or requires explicit configuration.
- Concrete examples of F1-specific custom functions added to Pandas objects.
Package facts
| License | MIT License Copyright (c) 2026 Philipp Schäfer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 15 — cryptography, matplotlib, numpy, pandas, platformdirs, pydantic, pyjwt, python-dateutil, rapidfuzz, requests-cache, requests, scipy, signalrcore, timple, websockets |
| Maintenance | actively maintained — 107 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 14,954,097/month — #1,208 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: fastf1-3.8.3-py3-none-any.whl
Tags
More Information Analysis packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI
networkxNetworkX provides data structures and…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
snowflake-snowpark-pythonSnowpark Python provides APIs to query and…
permissive · top 1,000 on PyPI
formulaicFormulaic converts tabular data into model…
permissive · top 5,000 on PyPI
nflreadpyDownloads and caches NFL data from nflverse…
permissive · top 15,000 on PyPI
tabpfn-common-utilsProvides shared utilities for the TabPFN…
permissive · top 15,000 on PyPI
dataframe-api-compatProvides a lightweight compatibility layer that…
permissive · top 15,000 on PyPI
pantabConverts DataFrames to and from Tableau Hyper…
permissive · top 15,000 on PyPI
temporaProvides utilities, constants, and routines for…
permissive · top 5,000 on PyPI
azure-monitor-opentelemetryBundles OpenTelemetry SDK and Azure Monitor…
permissive · top 5,000 on PyPI
yahooqueryRetrieves financial data from Yahoo Finance…
permissive · top 15,000 on PyPI
renault-apiCommunicates with Renault's private API to read…
permissive · top 15,000 on PyPI