Feedback

If you have any comments, suggestions or feature requests please add them here. Problems and errata can be reported on Bug Reports page.

Comments

472 responses to “Feedback”

  1. Admin Avatar
    Admin

    Hi Daniel,
    Unfortunately not, apart from disqualification being shown in the status and time penalties being added to the final times.
    Cheers,
    Chris

  2. Ayoub Nay Avatar
    Ayoub Nay

    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.

  3. Admin Avatar
    Admin

    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

  4. Marco Avatar
    Marco

    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

  5. Admin Avatar
    Admin

    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

  6. Adam Avatar
    Adam

    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

  7. Admin Avatar
    Admin

    Hi Adam,
    Many thanks for the positive comments. That’s great to hear.
    Cheers,
    Chris

  8. Peter Avatar
    Peter

    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

  9. Admin Avatar
    Admin

    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

  10. Christian Rokitta Avatar
    Christian Rokitta

    Hi, Any chance the tire set info (with either lap-times or pit-stop data) could be provided too?
    Cheers, Christian

  11. Admin Avatar
    Admin

    Hi Christian,
    I’ve never been able to find a reliable source of tyre data from year to year.
    Chris

  12. Suvashan Avatar
    Suvashan

    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

  13. Dave Avatar
    Dave

    Why doesn’t driver information contain their current team or anything beyond their name and birthday?

    What a useless data point. Literally useless.

  14. Admin Avatar
    Admin

    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/driverStandings

    If 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

  15. Mike Avatar
    Mike

    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.

  16. Admin Avatar
    Admin

    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

  17. Alistair Avatar
    Alistair

    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

  18. Admin Avatar
    Admin

    Hi Alistair,
    Yes – the final grid positions are in the results table e.g. https://ergast.com/api/f1/current/last/results
    Cheers,
    Chris

  19. Alistair Avatar
    Alistair

    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

  20. Admin Avatar
    Admin

    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

  21. Justin Avatar
    Justin

    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

  22. Admin Avatar
    Admin

    Hi Justin,
    Unfortunately, there isn’t a race laps field. It’s not usually an issue – Spa was an anomaly.
    Cheers,
    Chris

  23. Admin Avatar
    Admin

    Thanks Lasse – now corrected.
    I should have a format checker.
    Cheers,
    Chris

  24. jim Avatar
    jim

    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?

  25. Admin Avatar
    Admin

    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

  26. jim Avatar
    jim

    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!!

  27. jim Avatar
    jim

    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

  28. Admin Avatar
    Admin

    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

  29. Borna Avatar
    Borna

    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

  30. Admin Avatar
    Admin

    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

  31. Niall Avatar
    Niall

    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

  32. Admin Avatar
    Admin

    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

  33. Niall Avatar
    Niall

    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

  34. Admin Avatar
    Admin

    Hi Niall,
    Unfortunately that’s not currently supported. Is it published somewhere pre-season?
    Cheers,
    Chris

  35. Niall Avatar
    Niall

    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_Prix

    Run 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

  36. Admin Avatar
    Admin

    Hi Niall,
    Thanks – I’d prefer to use an official source if I can find one. I’ll have dig around.
    Cheers,
    Chris

  37. Filip Avatar
    Filip

    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

  38. Daniel Avatar
    Daniel

    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.

  39. Admin Avatar
    Admin

    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

  40. Emre Avatar
    Emre

    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?

  41. Admin Avatar
    Admin

    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

  42. Filip Avatar
    Filip

    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

  43. Admin Avatar
    Admin

    Hi Filip,
    Thanks for the feedback. I only found two examples (in the constructors). Hope that’s all of them.
    Chris

  44. Filip Avatar
    Filip

    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

  45. Admin Avatar
    Admin

    Hi Filip,
    I’ve aded the year and applied percent-encoding so it should now be valid and correct.
    Cheers,
    Chris

  46. Filip Avatar
    Filip

    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

  47. Admin Avatar
    Admin

    Hi Filip,
    The driver’s current team will be the latest in the list – where “current” means the last set of results.
    Chris

  48. Filip Avatar
    Filip

    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

  49. Admin Avatar
    Admin

    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

  50. Christian Avatar
    Christian

    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

Your email address will not be published. Required fields are marked *