F1 Scraper: Race Results, Qualifying & Standings
Pricing
from $12.86 / 1,000 race results
F1 Scraper: Race Results, Qualifying & Standings
Scrape Formula 1 data for every season since 1950: race results with grid and points, Q1/Q2/Q3 qualifying, pit stops, race calendars and driver and constructor standings. Filter by season, round or driver. Export CSV, Excel, JSON or XML. No login or API key needed.
Pricing
from $12.86 / 1,000 race results
Rating
0.0
(0)
Developer
RecordsData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
What is the F1 Scraper? The Formula 1 Scraper by PunkRecordsData extracts race results, qualifying times, pit stops, race calendars and driver and constructor standings for every F1 season since 1950. It needs no login and no API key. You choose seasons, rounds or a single driver, then export CSV, Excel, JSON or XML. A single Grand Prix returns 20 result rows.
π F1 scraper for race results, qualifying and standings
This Formula 1 scraper turns the open Jolpica API (the community successor of the classic Ergast F1 database) into clean rows you can download or call from code. One round of the 2025 season returns 20 race result rows, 20 qualifying rows and 19 pit stops. The full 2024 season is 479 result rows. Each data module is switched on or off on its own, so you only get and pay for what you pick.
| π― Who uses it | π‘ What they do with it |
|---|---|
| Fantasy F1 and betting modelers | Grid, points and pace data as model inputs |
| Sports media and creators | Historical tables for articles and videos |
| Data analysts and students | The classic motorsport dataset in CSV or Excel |
| App builders | A scheduled feed of results and standings |
π What data does the F1 scraper return?
- Race results: position, driver, team, grid, points, laps, status (Finished, +1 Lap or the retirement reason), finish time and fastest-lap rank and time.
- Qualifying: Q1, Q2 and Q3 times and position per driver.
- Pit stops: every stop with lap, stop number and duration (2011 onward).
- Race schedule: circuit, locality, country, race date, qualifying and sprint dates.
- Championship standings: driver and constructor tables per season, with points and wins.
- Filters: any season from 1950 to the current one, specific rounds, and a driver filter by Ergast driver id.
Fields that have no value for a row (for example finish time for a driver who retired) are left out of that row instead of being filled with placeholders.
π What does the F1 output look like?
Real row from a cloud run (2025 season, round 5, race results):
{"recordType": "race-result","season": "2025","round": 5,"raceName": "Saudi Arabian Grand Prix","circuit": "Jeddah Corniche Circuit","locality": "Jeddah","country": "Saudi Arabia","date": "2025-04-20","url": "https://en.wikipedia.org/wiki/2025_Saudi_Arabian_Grand_Prix","position": 1,"driver": "Oscar Piastri","driverId": "piastri","driverNationality": "Australian","team": "McLaren","grid": 2,"points": 25,"laps": 50,"status": "Finished","finishTime": "1:21:06.758","fastestLapRank": 3,"fastestLapTime": "1:32.228","scrapedAt": "2026-10-04T05:02:48.483Z"}
Use the recordType column (race-result, qualifying, pitstop, race, driver-standing, constructor-standing) to split a mixed dataset.
π΅ How much does the F1 scraper cost?
Pay per event, billed only for rows that are saved to your dataset (live price on the free Apify plan; paid plans get lower tiers):
| Event | Price per row | Per 1,000 rows |
|---|---|---|
| Race result | $0.015 | $15.00 |
| Qualifying row | $0.01 | $10.00 |
| Pit stop | $0.01 | $10.00 |
| Race (schedule) | $0.01 | $10.00 |
| Driver standing | $0.01 | $10.00 |
| Constructor standing | $0.01 | $10.00 |
Examples: one Grand Prix of results (20 rows) costs about $0.30. The whole 2024 season of results (479 rows) costs about $7.19. A 10-row test costs $0.15. You are not charged for failed runs, empty searches or invalid input, and the run stops cleanly when it reaches your maximum charge limit. The actual price is always the one shown on the Pricing tab of the Actor page.
π How do I scrape F1 data in 3 steps?
- Open the Actor on Apify and click Try for free.
- Enter seasons (or "current"), optionally rounds and a driver id, and switch on the modules you need.
- Click Start and download CSV, Excel, JSON or XML from the Storage tab.
βοΈ What input does the F1 scraper accept?
| Field | Meaning | Default |
|---|---|---|
seasons | Four-digit years or "current" | ["current"] |
rounds | Round numbers to keep; empty means all | [] |
driverFilter | Ergast driver id, for example max_verstappen | empty |
maxItems | Maximum rows across all modules (free plan: 10) | none |
includeRaceResults | Race results module | true |
includeQualifying | Qualifying module | false |
includePitstops | Pit stops module | false |
includeSchedule | Race calendar module | false |
includeDriverStandings | Driver championship | false |
includeConstructorStandings | Constructor championship | false |
Example input:
{ "seasons": ["2025"], "rounds": [5], "includeRaceResults": true, "includePitstops": true, "maxItems": 10 }
π How does it compare to other F1 data options?
- Jolpica API directly: free, but you write the paging, rate limiting (4 requests per second burst, 500 per hour sustained) and flattening yourself. This actor does that and returns one flat table.
- Other F1 actors on the Apify Store: many return a single data type. This one has six switchable modules in one run. Check each actor's Pricing tab for current prices, since they change.
- Honest limit: data comes from a community database, so it lags the checkered flag by hours, and it is not live timing. For lap-by-lap live telemetry use a live-timing source instead.
πΌ What are the use cases?
- Prediction and fantasy models: grid versus finish deltas and pit data per driver across seasons.
- Editorial data desks: "every Monaco winner since 1950" with one input.
- Betting content: qualifying-to-race conversion by team and circuit, refreshed after every round.
- Apps and bots: scheduled standings updates sent to your backend by webhook.
- Research: 75 seasons of panel data for statistics coursework.
π How do I use the F1 scraper from code?
curl -X POST "https://api.apify.com/v2/acts/RecordsData~f1-racing-results-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"seasons":["2025"],"rounds":[5],"maxItems":10}'
Works with the Apify client for JavaScript and Python, schedules, webhooks, and integrations such as Make, Zapier, n8n, Google Sheets and Airbyte. AI agents can call it through the Apify MCP server.
βοΈ Is it legal to scrape F1 data?
The actor reads only publicly available historical results from the open Jolpica API and respects its published rate limits. It is an independent tool, not affiliated with Formula 1, the FIA or Jolpica. You are responsible for how you use the data and for following the source's terms.
β Frequently asked questions
π How do I export F1 race results to CSV or Excel?
Pick seasons and rounds, keep Race results on, click Start and download CSV or Excel from the Storage tab.
π How far back does the F1 data go?
To the first championship season, 1950. Pit stops exist from 2011 onward and sprint dates only where sprints were held.
π€ Can I get one driver's full history?
Yes. Set the driver filter to an Ergast id such as hamilton and it applies to results, qualifying, pit stops and driver standings.
β± Are qualifying times split by session?
Yes, Q1, Q2 and Q3 are separate columns. A driver eliminated in Q1 has no Q2 or Q3 value, so those fields are omitted for that row.
π Are standings final or current?
Final for finished seasons, the live table for the ongoing season.
π΅ Do I pay for modules I switch off?
No. Each module is its own event, billed per row saved.
π¦ How many rows can one run return?
Up to 1,000,000 on paid plans. A modern season is about 480 result rows plus the modules you enable. Free plan runs return 10 rows.
βοΈ Does it need an API key?
No. The Jolpica API is open and the actor stays within its rate limits.
π€ Where do I find driver ids?
They are the classic Ergast ids such as hamilton, alonso or leclerc.
π€ Why did my run return 0 results?
Usually the season, round or driver id matched nothing, for example a misspelled driver id or a round that does not exist. The run then ends successfully with a clear status message and charges nothing. Invalid input (no valid season, or every module switched off) fails immediately with an explanation and no charge.
π How fresh are results after a race?
The community database usually updates within hours of the race. Schedule a Sunday evening run during the season.
π Want more sports and data scrapers?
- Sofascore Match Stats Scraper: live multi-sport scores, odds and lineups
- Tennis Match Stats Scraper: ATP and WTA match data
- Basketball Scraper: box scores, play-by-play and odds
π Support
Questions or custom fields: contact.punkrecordsdata@gmail.com or open an issue on the Actor page.
Last updated: 2026-10-03