If you have any comments, suggestions or feature requests please add them here. Problems and errata can be reported on Bug Reports page.
Feedback
Comments
485 responses to “Feedback”
-
Hi Daniel,
Unfortunately not, apart from disqualification being shown in the status and time penalties being added to the final times.
Cheers,
Chris -
Hi first of all i want to say thank you for this amazing API.
i just want to ask for the possibilty to add more info about drivers(height,age,carrer points,championships won) and Teams(points,WCC,current drivers).
Thank you.
-
Hi Ayoub,
I try to keep the API lightweight, so it’s easier to maintain and the API responses are compact. I think the points totals you suggest could be determined by one API query and a summation at the client.
Cheers,
Chris -
Dear Sir or Madam,
first of all amazing API.
i found a little error. In the JSON for DriverStandings the code like “HAM” or “VER” arent there for some reason on the years 1950-2015. But only some are missing like for example in the year 2001 Hakkinen has no code like “HAK” or so.
Yours faithfully,
Marco -
Hi Marco,
The driver codes were added a few seasons ago, following a request. I don’t think they have existed for all of Formula One’s history. If someone can provide codes for earlier drivers I would be happy to add them to the database.
Cheers
Chris -
Good afternoon,
I just wanted to say thank you for creating such a fantastic resource. I built my entire final project (simple F1 Android app in an intro to app development course) using it, in conjunction with the actual F1 website.
Thanks again,
Adam -
Hi Adam,
Many thanks for the positive comments. That’s great to hear.
Cheers,
Chris -
Hey, first of all thank you for your API it’s very great! I had a question. Is there a possibility to add more schedule information about training and qualifying.
Thank you so much again,
Peter -
Hi Peter,
Ideally I would, but it’s hard to find this information at the start of the season. It’s even hard to find the date/times for the race schedule and keep these up to date with the changes which follow.
Chris -
Hi, Any chance the tire set info (with either lap-times or pit-stop data) could be provided too?
Cheers, Christian -
Hi Christian,
I’ve never been able to find a reliable source of tyre data from year to year.
Chris -
Hello Admin
I have been a long-time user of this API, and I have decided to write a simple python script to obtain tyre changes that are made during the race and I have inserted them into MySQL. This data comes straight from the press.pirelli website (if you are not familiar, for example, the tyres used for the 2021 bahrain gp can be found at https://press.pirelli.com/2021-bahrain-grand-prix–sunday/). Unfortunately, this data is only available from 2019 til now. Please let me know if you would like to take a look at this and potentially add this data to the API.
Regards
Suvashan -
Why doesn’t driver information contain their current team or anything beyond their name and birthday?
What a useless data point. Literally useless.
-
Hi Dave,
The endpoint is intended to provide filtered lists of drivers, subject to a set of criteria. So, for example, you can get a list of all the drivers active in a particular year – or have driven for a particular constructor. If you want to know a drivers current team you can use the standings endpoint e.g.
https://ergast.com/api/f1/current/drivers/alonso/driverStandingsIf you want more biographical data you can access other databases using the Wikipedia page ID e.g. https://dbpedia.org/resource/Fernando_Alonso
Cheers,
Chris -
Wanted to say what a great resource! Just stumbled upon this in the last few weeks, it’s great. Wondering if you are thinking about adding datasets for the Sprint Qualifiers? I know it’s not set in stone as to if it’s going to carry on. Just wondering.
-
Hi Mike,
If the sprint races becomes a permanent feature I’ll support them – but it’s not trivial because they’ll require a new database table and all the things needed to support it.
Cheers,
Chris -
Hi,
I’ve been using your database for quite a while now and I was wondering if there was any way to collect the Final starting Grid
Cheers,
Alistair -
Hi Alistair,
Yes – the final grid positions are in the results table e.g. https://ergast.com/api/f1/current/last/results
Cheers,
Chris -
Thanks a lot but it looks like it the final results whereas I was looking for the final STARTING grid positions (before the first lap but after the qu’Ali with applied penalties)
Alistair -
Hi Alistair,
There’s a “grid” field for each driver in the data. That’s the Final Starting Grid positions, with occasional adjustments when someone starts from the pit lane after the formation lap.
Chris -
Hey,
Fantastic database, I really am enjoying learning python with it. I was wondering if there was an end point for the number of laps that a race is supposed to have? I’m trying to determine how best to handle issues like Spa this year where the race only technically had two laps, but it should have had more. This is so I can figure out if I need to award half points or not.
Thanks!
Justin -
Hi Justin,
Unfortunately, there isn’t a race laps field. It’s not usually an issue – Spa was an anomaly.
Cheers,
Chris -
Thanks Lasse – now corrected.
I should have a format checker.
Cheers,
Chris -
Hi Admin,
What a great DB for people who love f1 and python! I have been using it for a few months now.
Just an issue (probably just me though) happened recently.
When I download the latest DB (f1db.sql.gz MySQL 5.7 database dump) and run a local version, I can get any race results past round 15.Example:
When I run
http://localhost:8000/api/f1/2021/22/results.json
This is my result:
{“MRData”:{“xmlns”:”http:\/\/ergast.com\/mrd\/1.4″,”series”:”f1″,”url”:”http://ergast.com/api/f1/2021/22/results.json”,”limit”:”30″,”offset”:”0″,”total”:”0″,”RaceTable”:{“season”:”2021″,”round”:”22″,”Races”:[]}}}Is the DB incomplete??
Can you advise at all please? -
Hi Jim,
I’ve re-issued the dumps in case there was a problem. If you gunzip the dump and search for `seasons` to find the seasons table then just above it will be the end of the results table. You should see 20 entries like this:(25386,1073,830,9,33,1,1,’1′,1,26,58,’1:30:17.345′,5417345,39,1,’1:26.103′,’220.800′,1),(25387,1073,1,131,44,2,2,’2′,2,18,58,’+2.256′,5419601,43,3,’1:26.615′,’219.495′,1),(25388,1073,832,6,55,5,3,’3′,3,15,58,’+5.173′,5422518,51,9,’1:27.618′,’216.982′,1),(25389,1073,852,213,22,8,4,’4′,4,12,58,’+5.692′,5423037,50,7,’1:27.496′,’217.285′,1),(25390,1073,842,213,10,12,5,’5′,5,10,58,’+6.531′,5423876,49,6,’1:27.342′,’217.668′,1),(25391,1073,822,131,77,6,6,’6′,6,8,58,’+7.463′,5424808,51,5,’1:26.862′,’218.871′,1),(25392,1073,846,1,4,3,7,’7′,7,6,58,’+59.200′,5476545,58,4,’1:26.762′,’219.123′,1),(25393,1073,4,214,14,11,8,’8′,8,4,58,’+1:01.708′,5479053,58,8,’1:27.607′,’217.010′,1),(25394,1073,839,214,31,9,9,’9′,9,2,58,’+1:04.026′,5481371,58,10,’1:28.249′,’215.431′,1),(25395,1073,844,6,16,7,10,’10’,10,1,58,’+1:06.057′,5483402,40,12,’1:28.433′,’214.983′,1),(25396,1073,20,117,5,15,11,’11’,11,0,58,’+1:07.527′,5484872,58,11,’1:28.303′,’215.299′,1),(25397,1073,817,1,3,10,12,’12’,12,0,57,NULL,NULL,48,14,’1:28.723′,’214.280′,11),(25398,1073,840,117,18,13,13,’13’,13,0,57,NULL,NULL,48,13,’1:28.567′,’214.657′,11),(25399,1073,854,210,47,19,14,’14’,14,0,57,NULL,NULL,42,17,’1:29.457′,’212.522′,11),(25400,1073,815,9,11,4,15,’15’,15,0,55,NULL,NULL,51,2,’1:26.419′,’219.993′,5),(25401,1073,849,3,6,16,NULL,’R’,16,0,50,NULL,NULL,30,15,’1:29.293′,’212.912′,3),(25402,1073,841,51,99,14,NULL,’R’,17,0,33,NULL,NULL,33,16,’1:29.442′,’212.557′,6),(25403,1073,847,3,63,17,NULL,’R’,18,0,26,NULL,NULL,23,19,’1:30.647′,’209.732′,6),(25404,1073,8,51,7,18,NULL,’R’,19,0,25,NULL,NULL,23,18,’1:29.698′,’211.951′,23),(25405,1073,853,210,9,20,NULL,’W’,20,0,0,NULL,NULL,NULL,0,NULL,NULL,139);
where the second field on each line is the race ID (1073) for the round 2021/22.
Try loading this new dump to see if it solves your problem. If not, check for error messages when you load the dump.
Cheers,
Chris -
Thanks Admin,
It looks like there was nothing wrong with your DB.I ran “docker-compose up –build -d –remove-orphans” to rebuild the docker image and it fixed the problem.
Sorry for the trouble, I should have done this first.
Thanks for the great data, looking forward to 2022 season!!
-
Hi Admin,
One more question, how do I form the API to return the “milliseconds” field in the “lapTimes” table? (if an API for that is available).I have tried many combinations but just get “bad request” error.
Thanks!
Jim -
Hi Jim,
The query used by the lap times method is here: https://github.com/jcnewell/ergast-f1-api/blob/master/webroot/php/api/LapTimes.inc.
You should be able to adapt it to return millis instead of the time field.
Good luck!
Chris -
Hey,
Just wanted to thank you for creating and maintaining this great API. I used it in one of my college Android projects and it’s been a wonder to work with.
Many thanks and best of luck!Cheers,
Borna -
Hi Borna,
Thanks for the positive comments – I’m glad the API was useful. Let me know if you want to add your project to the Application Gallery.
Cheers,
Chris -
Hi Chris,
Congrats on a wonderful API. I really enjoy using it and appreciate the time/effort/expense to make it.
I am building a fun webapp sideproject that uses Ergast F1 API data (cached on my site) to calculate driver points on the fly for previous seasons. For example – did you know that had one of the succeeding points schemas been in place (2003 1st-8th or 2010 1st-10th) in 1999, Eddie Irvine would have been champion?!
I have developed an extensive calculator that works out the points awarded to each driver for a given race. It even allows you to play “What If…”
example: Who would be Formula 1.5 champion each year if you ‘disabled’ the top tier teams and re-distributed wins/position/points to other drivers who are not in the top tier team?
My question:
Would it be at all possible to add an optional “sprintPosition” number field to drivers’ race results? It would make life immeasurably easier to just have that small field of data for the 3 weekends where there were sprints in 2021 (and 2022 onwards)Many thanks,
Niall
@noccer -
Hi Niall,
I’m currently working on support for the Sprint Qualifying sessions. This will be a separate API query to the results query. However, I will backfill data from 2021.
Cheers,
Chris -
Chris, sounds terrific thanks so much.
Another quick query for you:
I can’t seem to find any data on “Scheduled” Laps for a race. For example, Malaysia 2009 was scheduled for 56 laps, but Button the winner only completed 31, therefore half points were awarded.
Is there any endpoint or database table that provides the scheduled number of laps for a race event?
Many thanks again,
Niall
@noccer -
Hi Niall,
Unfortunately that’s not currently supported. Is it published somewhere pre-season?
Cheers,
Chris -
Chris,
I played around with a few sites and managed to find one site so far that’s useful: f1.fandom.com
They wrap the scheduledLaps in a div with a data attribute “data-source=’scheduledlaps’” so it’s possible to scrape it programatically assuming all races are rendered the same.
Example:
https://f1.fandom.com/wiki/1991_Australian_Grand_Prix
https://f1.fandom.com/wiki/2009_Malaysian_Grand_PrixRun this in the console:
“`js
Number(document.querySelector(“[data-source=’scheduledlaps’] > div”).innerText.split(‘ laps’)[0])// 56
“`If I were to go and scrape all the scheduledLaps data for you, would you be interested in appending it into the database?
I’ll probably end up scraping it for myself anyway and locally appending to the data your API has kindly provided. At the moment for half-point scoring races, I am inferring it’s a half points race by looking at the points awarded for the winner -vs- what they should have received were it a full run race distance for that years points scoring system.
Feel free to DM me @noccer on twitter or you have my email.
Cheers,
Niall -
Hi Niall,
Thanks – I’d prefer to use an official source if I can find one. I’ll have dig around.
Cheers,
Chris -
Hello Chris!
Is it possible for you to update the tables diagram and database user guide to include the sprint tables/columns/data? I assume there might be an added column in the results table which indicates if it’s a sprint or a race but might be totally wrong! 😀
Cheers,
Filip -
http://ergast.com/api/f1/current.json
Shows the latest season that had a race, however this can be confusing during the “pre-season” stage (which we are currently on). The docs say the after mentioned endpoint retrieves the current season, however when the season is over and preseason testing starts I would argue the upcoming season is the current one.
-
Hi Daniel,
It’s been like that for 14 years but I agree, it’s not ideal. Next season I will make it change with the calendar year.
Chris -
Hello again,
We continue to use your service. We are grateful. We are using the Docker version, but the data here is from 2021. Are you going to update the data here?
-
Hi Emre,
Unfortunately, I don’t know anything about the Docker version. Is it this one: https://github.com/jcnewell/ergast-f1-api/tree/master/ergastdb ? The author may be able to help. Perhaps you just need to update f1db.sql.gz which you can download here: https://ergast.com/mrd/db/
Cheers,
Chris -
Hello Chris!
It would be kind of nice to have the countries/nationalities in ISO 3166-1 format! Also the nationalities between constructors and drivers sometimes are not the same. For example Belgium has “belgium” and “belgian” or New Zealand with “new zealand” and “new zealander”.
Take care!
Filip -
Hi Filip,
Thanks for the feedback. I only found two examples (in the constructors). Hope that’s all of them.
Chris -
Hello again Chris!
That’s nice to hear! There might be an issue with the race Wikipedia url for 2021 Brazil race :S My URL validator is throwing a “MalformedException” when checking it which I presume is due to the “ã” character it contains (“http://en.wikipedia.org/wiki/São_Paulo_Grand_Prix”). When using the link it takes me to “https://en.wikipedia.org/wiki/Brazilian_Grand_Prix” instead which I assume is the “final Url” this one reroutes to. What are your thoughts on the matter? 🙂
Cheers!
Filip -
Hi Filip,
I’ve aded the year and applied percent-encoding so it should now be valid and correct.
Cheers,
Chris -
Hi Chris!
Awesome! I have yet another question :’) When fetching driver standings per round in season, if a driver has made a swap from, let’s say Toro Rosso to Red bull, both teams are listed in constructors for that driver. Will the order of the constructors always be in the order as gone through the season? In other words: will the driver’s current team be the latest in that list?
Thank you!
Filip -
Hi Filip,
The driver’s current team will be the latest in the list – where “current” means the last set of results.
Chris -
Hi again Chris!
Thank you! I have been unable to find a way to get the lap times and (if any) pitstops of sprint races! Is this a feature that could be added? I have also been unable to find a way of getting the drivers’ best FP1, FP2, FP3 times, is this also something that might be added? Another very small thing would be if “Fastest Lap” data contained a field for something like “PointsAwarded” or something as one could get fastest lap but not get points for it. This can of course already be deduced by counting the points the driver’s got but for different eras of rules that can be quite hard. Please let me know your thoughts on these suggestions! 😀
Thank you!
Filip -
Hi Filip,
It’s hard for me to find time to add additional data, particularly on Fridays. Maybe when I retire!
I think about the fastest laps point – unfortunately the rules keep changing.
Chris -
Hi Chris! As an F1 fan and developer, I have been taking a look at your API with a project in mind and its an amazing resource!
I wanted to suggest an idea, not sure if anyone suggested it earlier. It would be great if possible to use “greater/less than” modifiers to the position qualifiers. For eg. you could get Verstappen’s 2021 wins at https://ergast.com/api/f1/2021/drivers/max_verstappen/results/1.json, but if you wanted his podiums, I believe you would need to either:
1) Fetch a lot more data than necessary to then filter it client-side, or
2) Join results from 3 separate API calls (even worse if you wanted to get top 10 results or something like that)Please let me know if there’s already some other method I missed in the documentation. But if there’s not, I think it would be good to be able to do something like “/results/3ls” (meaning 3 or less) if you wanted to fetch his podium results, or “/results/4gr” (meaning 4 or greater) if you wanted his finishes outside the podium, for example. I think it would be a neat feature and one that shouldn’t break any backwards compatibility. Same if you wanted a driver’s front-row starts, for eg.
Please let me know your thoughts. Thanks! 🙂
Leave a Reply