ParseForge Scrapers

F1 Race Results and Standings Scraper

parseforge/f1-ergast-results-scraper

SportsAutomationOther

Scrapes Formula 1 race results, qualifying, sprint, standings, drivers, constructors, circuits, and schedules from the Ergast API. Returns each record as a flat row for analysis.

Run this scraper See the API call
Total users
3
Monthly active
2
Total runs
122
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

F1 Race Results and Standings Scraper

Scrape F1 race results, qualifying, sprint, standings, drivers, constructors, circuits, and schedules from the Ergast API, up to a million rows per run. Every row is flat and ready for analysis. No API key, no rate limits, no setup. Export to CSV, JSON, Excel, or XML.

Formula 1 data is scattered across PDFs, news sites, and unofficial APIs. This Actor pulls clean, structured data straight from the Ergast F1 database, the same source used by researchers and hobbyists for over a decade. Pick an endpoint, set a season or round, and get every row in one fixed schema.

Who uses it What they scrape Ergast F1 for
F1 data analysts Build season-long datasets for lap time and points analysis
Sports journalists Pull race results and standings for race weekend reporting
Fantasy F1 players Get driver and constructor performance data to optimize lineups
Researchers and students Collect historical F1 data for academic projects or visualizations
App developers Populate F1 apps with schedules, results, and standings

What it does

This Actor collects F1 race results, qualifying, sprint results, driver and constructor standings, driver, constructor, circuit, and race schedule data from the Ergast API and returns each record as a flat row.

  • 🏁 Race results: full finishing order with position, points, and status for any race
  • ⏱️ Qualifying and sprint: grid positions and sprint results for every session
  • πŸ† Championship standings: driver and constructor points after each round
  • πŸ‘€ Drivers and constructors: one row per driver or team with codes and details
  • πŸ—ΊοΈ Circuits: track names, locations, and country data
  • πŸ“… Race schedule: every round of a season with dates and circuit info

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

What you can do with Ergast F1 data

πŸ“Š Build a season dataset.

A data analyst runs the Actor with endpoint results and season 2024 to collect every race result, then joins it with qualifying data for a complete performance picture.

πŸ“° Report on a race weekend.

A journalist sets season current and round to the latest race, pulls results and standings, and uses the CSV export to create tables for an article.

🏎️ Optimize a fantasy lineup.

A fantasy F1 player scrapes driver standings and recent results to compare form and pick the best drivers for the next race.

πŸ“ˆ Analyze historical trends.

A researcher collects constructor standings from 2000 to 2024 to study team performance over decades.

πŸ“± Power an F1 app.

A developer schedules the Actor to fetch the race schedule and results weekly, feeding a mobile app with up-to-date data.

Why choose this scraper

What you get
No API key or registration The Ergast API is public and free, so you can start scraping immediately
Flat, analysis-ready rows Every record is returned as a simple object with consistent field names
Historical data back to 1950 Ergast covers every F1 season, so you can build long-term datasets
Flexible filtering Combine season, round, driver, constructor, and circuit to target exactly what you need

How it compares

No other Store actor targets Ergast F1 the same way, so the honest comparison is with the alternatives teams actually weigh.

F1 Race Results and Standings Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When Ergast F1 changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor from endpoint, season, round, driver, constructor, and circuit filters, alone or together, and only matching rows reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "maxItems": 10,
  "endpoint": "results",
  "season": "2024"
}

A larger pull:

{
  "maxItems": 200,
  "endpoint": "results",
  "season": "2024"
}

Pricing

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

Results collected Approximate cost
100 results $1.60
1,000 results $16.00
10,000 results $160.00

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 F1 Race Results and Standings 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 Ergast F1 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/f1-ergast-results-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. If you set a season and round that do not exist together, or a driverId that is misspelled, the API returns nothing. Try clearing optional fields and running again.

Why is my dataset missing some rows?

The maxItems field limits how many results are returned. Increase it to cover the full season or endpoint you need.

What does the 'current' season value do?

Setting season to current tells the Actor to use the latest season available in the Ergast database. This is useful for ongoing seasons.

Can I get data for a specific circuit?

Yes, use the circuitId field with values like monaco or silverstone. Combine it with a season to get results for that track.

Why are some fields empty in the output?

Ergast sometimes has missing data for older races or certain sessions. Empty fields are normal and reflect gaps in the source database.

FAQ

Question Answer
What is the Ergast API? Ergast is a free, open-source database of Formula 1 data maintained by the community. It has been the standard source for F1 statistics since 2008 and covers every season from 1950 to the present.
Do I need an API key? No. The Ergast API is public and does not require registration or authentication. You can start scraping immediately.
What endpoints can I scrape? You can scrape race results, qualifying results, sprint results, drivers, constructors, circuits, driver standings, constructor standings, and the race schedule.
Can I filter by season or round? Yes. Set the season field to a year like 2024, or use current for the ongoing season. The round field lets you target a specific race.
Can I filter by driver or constructor? Yes. Use driverId like max_verstappen or constructorId like ferrari to get only rows for that driver or team.
What is the maximum number of results? You can set maxItems up to 1,000,000. The default is 10, but for full seasons you should increase it.
What format is the data returned in? Each record is a flat JSON object. You can export the dataset to CSV, JSON, Excel, or XML from the Apify platform.
Does this include live data? Ergast updates shortly after each session ends, but it is not a live timing feed. For real-time data, consider a different source.
Is the data free to use? Yes, Ergast data is free for non-commercial use. Check the Ergast terms for commercial applications.
Can I schedule this Actor to run automatically? Yes, you can set up a schedule in Apify to run the Actor daily, weekly, or after each race weekend.

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 Ergast Developer API. 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 results to collect per run. 10
endpoint string (9 options) Which F1 dataset to scrape. results
season string Year (e.g. '2024'), 'current' for current season, or empty for all. 2024
round string Specific round number (e.g. '5'). Optional. not set
driverId string Filter by driver (e.g. 'max_verstappen', 'hamilton'). Optional. not set
constructorId string Filter by constructor (e.g. 'ferrari', 'mercedes', 'red_bull'). Optional. not set
circuitId string Filter by circuit (e.g. 'monaco', 'silverstone'). Optional. not set

Pricing

from $12.00 per 1,000 results

Charged forWhat it isPrice each
Result item Charged per record successfully returned in the dataset. $0.012 to $0.016

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~f1-ergast-results-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 F1 Race Results and Standings Scraper on Apify All scrapers