ParseForge Scrapers

OpenF1 Formula 1 Telemetry Scraper

parseforge/openf1-f1-telemetry-scraper

SportsDeveloper toolsOther

Scrapes Formula 1 telemetry from OpenF1: sessions, meetings, drivers, laps, intervals, pit stops, weather, car data, stints, position, race control, team radio. Returns one flat row per record.

Run this scraper See the API call
Total users
10
Monthly active
1
Total runs
136
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

OpenF1 Formula 1 Telemetry Scraper

Scrape Formula 1 telemetry from OpenF1, the free F1 data API, with no auth or rate limits. Get sessions, laps, car data, pit stops, weather, and team radio in one flat row per record. Export to CSV, JSON, Excel, or XML.

OpenF1 is the free, open API for Formula 1 telemetry, but querying it by hand means writing endpoints, handling pagination, and reshaping nested JSON. This Actor reads every public endpoint directly, filters by year, session, driver, or meeting, and returns each record in one fixed schema. No API key, no OAuth, no rate limits.

Who uses it What they scrape OpenF1 for
F1 data analysts Build lap-time and telemetry datasets for race strategy models
Sports journalists Pull session results, pit stops, and race control messages for race reports
Fantasy F1 developers Feed driver and position data into live scoring apps
Motorsport researchers Compare weather, tyre stints, and car data across seasons
Betting modelers Collect historical session and interval data to price race outcomes

What it does

This Actor collects Formula 1 data from OpenF1 by mode, year, session, driver, or meeting, and returns each record as a flat row.

  • ๐ŸŽ๏ธ 12 data modes: sessions, meetings, drivers, laps, intervals, pit stops, weather, car telemetry, tyre stints, position changes, race control messages, and team radio.
  • ๐Ÿ” Flexible filters: narrow by year, session type, session key, meeting key, or driver number.
  • ๐Ÿ“ฆ Flat output: every record is one row, ready for CSV, JSON, Excel, or XML.
  • โšก No auth or rate limits: OpenF1 is free and open, and this Actor reads it directly.
  • ๐Ÿ› ๏ธ Session-key aware: modes that need a session key (laps, intervals, pit, weather, car_data, stints, position, race_control, team_radio) accept it as a filter.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with OpenF1 data

๐Ÿ“Š Build race strategy datasets.

An F1 data analyst collects car telemetry and tyre stints for a specific session key, then exports to CSV to train a pit-stop model.

๐Ÿ“ฐ Automate race reports.

A sports journalist pulls race control messages and pit stops for a meeting key, then writes a race summary with exact timestamps.

๐Ÿ† Power fantasy F1 apps.

A fantasy F1 developer collects position changes and intervals for a live scoring app, updating after every lap.

๐ŸŒฆ๏ธ Study weather impact.

A motorsport researcher collects weather and lap data for a season, then correlates rain with lap-time deltas.

๐ŸŽ™๏ธ Analyze team radio.

A content creator pulls team radio recordings for a driver number, then clips the best moments for a video.

Why choose this scraper

What you get
Free and open OpenF1 has no API key, no OAuth, and no rate limits, so you can pull as much as you need.
One flat schema Every mode returns the same row shape, so you can union sessions, laps, and pit stops in one dataset.
Session-aware Modes that require a session key accept it directly, so you can target one race or qualifying session.
Full F1 coverage From race control messages to team radio recordings, the whole OpenF1 surface is available.

How it compares

This Actor reads the OpenF1 API for live and historical telemetry, while the competitor below uses the Jolpica F1 API for race results and standings.

Feature ParseForge Formula 1 Data Scraper
Car telemetry data Yes Not listed
Team radio recordings Yes Not listed
Pit stop data Yes Not listed
Weather data Yes Not listed
Race results and standings Not listed Yes
No API key required Yes Yes

Configure the run

Drive the Actor from mode, year, session type, session key, meeting key, and driver number, alone or together, and filters run as each record is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "maxItems": 10,
  "mode": "sessions",
  "year": 2024
}

A larger pull:

{
  "maxItems": 200,
  "mode": "sessions",
  "year": 2024
}

Pricing

Pay-per-result: $0.01733 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $1.73
1,000 results $17.33
10,000 results $173.30

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the OpenF1 Formula 1 Telemetry Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to OpenF1 through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/openf1-f1-telemetry-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your filters. For laps, intervals, pit, weather, car_data, stints, position, race_control, and team_radio, you must provide a session key. Also verify the year is within 2018 to 2030.

Why does the run fail with a session key error?

Some modes require a session key. First run the sessions mode to find the session key for your race, then use it in the other modes.

How do I find a session key?

Run the Actor in sessions mode with a year and session type filter. The output includes session_key for each session.

Can I collect more than 1,000,000 records?

The maxItems limit is 1,000,000 per run. If you need more, split your query by year, session, or driver and run multiple times.

Why are some fields empty?

OpenF1 returns null for missing data. For example, weather data may be missing for some sessions. Filter by session key to target complete sessions.

FAQ

Question Answer
Do I need an API key for OpenF1? No. OpenF1 is a free, open API with no authentication and no rate limits. This Actor reads it directly.
Which F1 data modes are supported? Sessions, meetings, drivers, laps, intervals, pit stops, weather, car telemetry, tyre stints, position changes, race control messages, and team radio.
How do I filter by a specific race? Use the session key or meeting key filter. Session key is required for laps, intervals, pit, weather, car_data, stints, position, race_control, and team_radio.
Can I get data for multiple years at once? The year filter applies to sessions, meetings, and drivers. For other modes, use session or meeting keys to target specific events.
What is the maximum number of records I can collect? You can set maxItems up to 1,000,000 records per run.
Does this Actor handle pagination? Yes. It follows OpenF1 pagination automatically and returns all matching records up to your maxItems limit.
What output formats are supported? CSV, JSON, Excel, and XML. The Actor returns one flat row per record.
Can I scrape team radio recordings? Yes. The team_radio mode returns radio recordings, and you can filter by driver number or session key.
Is this the same as the Jolpica F1 API? No. Jolpica is an Ergast-compatible API for race results and standings. OpenF1 provides live and historical telemetry, car data, and more.
How fresh is the data? OpenF1 updates in near real-time during race weekends. This Actor reads the live API, so you get the latest available data.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by OpenF1. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
maxItems integer How many telemetry records to collect per run. 10
mode string (12 options) Which type of Formula 1 data to collect. sessions
year integer Filter by year (applies to sessions, meetings and drivers). 2024
sessionType string (6 options) Filter sessions/meetings by type. Race = main race, Qualifying = qualifying, Practice = free practice. not set
sessionKey integer Filter by a specific F1 session ID (required for laps, intervals, pit, weather, car_data, stints, position, race_control, team_radio). not set
meetingKey integer Filter by a specific F1 race weekend ID. not set
driverNumber integer Filter by driver number (e.g. 1 for Verstappen, 44 for Hamilton). not set

Pricing

from $13.00 per 1,000 results

Charged forWhat it isPrice each
Result Item Charged once per result collected. $0.013 to $0.01733

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~openf1-f1-telemetry-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run OpenF1 Formula 1 Telemetry Scraper on Apify All scrapers