Bug Reports

If you identify any API bugs or errors in the data please record them here.

602 Responses to “Bug Reports”

  1. punter42 says:

    Hi Chris,

    Your raceId is often matching that on formula1.com but also often not.

    E.g. the last race in 2020 on f1.com has raceId 1061: https://www.formula1.com/en/results.html/2020/races/1061/abu-dhabi/race-result.html
    But in your db it has id 1047. You also have a race with id 1061 but that one is currently in the future.

    Is this an error or should I just not use these raceId to find the same races?

    Kind regards,

  2. Tiago says:


    Just want to report that Vettel has 38 fastest laps and not 37. Did some investigating and you attributed the fastest lap on round 17 of 2017 season (American GP) to Kimi Raikkonnen.

    If you could give that fastest lap to Vettel would be great 🙂

    Also, i know you don’t have much old info, but since raikkonen is stil driving could you update the database with those missing years? 2001 onwards?

    Much appreciated and incredible work

    Best regards

  3. Admin says:

    Hi punter42,
    The raceId is a primary key used internally by the database – unfortunately it doesn’t relate to anything in the real world. If corrections are made to the race schedule the key may not follow a simple, incremental sequence. This is true for the primary keys of all the database tables. The only reliable identifier of a race is year + round, or the date.

  4. Admin says:

    Hi Tiago,
    Thanks for the warning – now corrected.
    Unfortunately, adding earlier lap times would be a significant amount of work but I’ll bear it in mind.

  5. Luke says:

    I’m not sure if this is a bug or me misunderstanding something (I’ve read the FAQ/Docs), but shouldn’t https://ergast.com/api/f1/current/last/results return the final round of the previous season if there haven’t been any races yet? I understand that the context of ‘current’ is ‘2021’ so maybe it’s not possible, but I’m trying it with https://ergast.com/api/f1/2020/last/results and it still doesn’t work. Is it because the context of ‘last’ always relates to the current season?

  6. Admin says:

    Hi Luke,
    Apologies for the confusion. This was a bug I didn’t anticipate, caused by all the recent race cancellations. It should be ok now.
    Thanks for the warning.

  7. Finwe says:


    When will the https://ergast.com/api/f1/current be linked to https://ergast.com/api/f1/2021 ?

    And can you please update the 3rd race of 2021 to https://en.wikipedia.org/wiki/Portuguese_Grand_Prix ?

    I would have submitted a pull-request if i knew where to post it 😉


  8. Admin says:

    Hi Finwe,
    > When will the https://ergast.com/api/f1/current be linked to…
    It’s explained here: http://ergast.com/mrd/faq/#shortcuts

    > And can you please update the 3rd race of 2021
    Done. Thanks for flagging the update.

  9. suf264 says:


    I’m requesting https://ergast.com/api/f1/2021/driverStandings.json
    The “Constructors” field for all the drivers are empty. However they are not when I request it for previous years (e.g 2020, 2019). Do you plan to add it in future?


  10. Admin says:

    Hi suf264,
    The link between drivers and constructors is established via the race results table – and is established after the first race of the season. This makes sense in some ways because you con’t be sure who will actually turn up to race on the day (remember USF1?). But yeah, it’s not ideal. Unfortunately, there’s no easy fix.

  11. Nicolas says:


    thanks for this great API!

    I just saw a small mistake in the data: From 2018 until 2020, the nationality for the “Alfa Romeo” team is set to “Italian”, while it should actually be “Swiss”, because the team is run by Sauber Motorsport AG from Switzerland (according to the official 2021 F1 entr y list: https://www.fia.com/events/fia-formula-one-world-championship/season-2021/2021-fia-formula-one-world-championship-entry).


  12. Admin says:

    Hi Nicolas,
    It’s difficult to think of Alfa as anything other than Italian! Unfortunately, the database doesn’t support time-dependent properties for constructors. I’ll update it anyway though so this year’s line-up is correct. Thanks.

  13. Lucy says:


    I have noticed that at least from my csv download of the database, in the qualifying sheet there are no entries for raceId = 260 or the 1994 Monaco GP.

    Best regards.

  14. Admin says:

    Hi Lucy,
    On documentation page for the Qualifying results you’ll see a note explaining that they are only fully supported from the 2003 season onwards. If someone can supply the missing data in a machine-readable form I would be happy to add it.

  15. Nick says:


    Awesome database and great work.

    I think I noticed what may be an error in the data, but wanted to confirm.

    If you run a query on the 2011 Canadian GP lap times for Heidfeld (result here: http://ergast.com/api/f1/2011/7/drivers/heidfeld/laps) it appears as if one of the recorded lap times is over 2 hours. There are similar results for a lot of other drivers and races as well (e.g. lap times for round 9 of 2014 season).

    I’m not too familiar with how timing works, but this seems erroneous and wanted to confirm.

  16. Admin says:

    Hi Nick,
    You sometimes see these anomalous lap times in the official FIA data when a race has been Red-flagged. For 2011 Canadian Grand Prix the Wikipedia report states that “Torrential rain prevented the resumption of the Grand Prix for over two hours”. This is probably the source of the issue you found.

  17. Kaustubh says:


    The API returns a reponse but with invalid xml or json if you query for a non existent id with special characters. For example:



    This will not be a problem with any normal usage of the API since no id field has special characters from what I understand, but I am posting this observation in case there is some other issue that can be caused due to this.

  18. The current race schedule has the wrong start time for the Portuguese Grand Prix. It starts at 14:00:00 UTC, not the 13:00:00 UTC in the API (according to Formula1.com website).

    http://ergast.com/api/f1/2021/3 or http://ergast.com/api/f1/current/next

  19. EF239 says:


    Plus one’ing John’s post above, Portuguese start time seems to be off.
    Thanks for providing the API and all the work.

  20. Admin says:

    HI Kaustubh,
    Thanks for the warning – that should be an error condition.

  21. Admin says:

    Hi John,
    Thanks for the warning – now fixed.

  22. Anders says:


    Just noticed that the results in JSON for the season 2021 does not include the latest race (Portimao). I noticed that /results contains it, but not when specifying JSON.

    Has it just been missed or am I doing something wrong?



  23. Admin says:

    Hi Anders,
    The responses are limited by default to 30 results. You need to add an offset parameter to see the later results as described in the documentation on Response paging.
    For example: http://ergast.com/api/f1/2021/results.json?offset=30
    Alternatively, you can specify the round:

  24. Michel Post says:


    When can we expect the pitstops for the 2021 Spanish Grand Prix?



  25. Admin says:

    Hi Michel,
    I’ve been unable to obtain it – but still trying.

  26. Michel Post says:

    Hi Chris,

    Thanks! Hope you will get it!

  27. NotSoAnonymousCoward says:

    There’s a typo in the URL of a race:

    SELECT * FROM races WHERE url LIKE “%ii%”;

  28. Admin says:

    Thanks NSAC – now corrected

  29. simone says:

    F1 seventh GP isn’t the French GP, but canadian gp

  30. Admin says:

    Hi Simone,
    I can’t find the Canadian Grand Prix in the FIA Race Calendar. I think it was cancelled unfortunately.

  31. jggrizonic says:

    Hello there! I was bluinding dome graphs based on pitstop times and I believe there’s an error in the json file. In the 2nd race of the season (https://ergast.com/api/f1/2021/2/pitstops.json) the last 3 pitstops (max, stroll and kimi) have duration express in xx:xx.xxx while the others are xx.xxx, is this a bug?

  32. jggrizonic says:

    Hello again, just to let you know that in race num6 (https://ergast.com/api/f1/2021/6/pitstops.json) mick schumacher pitstop at lap 34 is also in this different formart xx:xx.xxx. If you want to know, in this season this only happen in round 6 and 2.

  33. Admin says:

    Hi jggrizonic,
    The pitstop times reflect what is reported in the official data. They’re higher than normal because they occurred whilst the races were suspended, following the crash between Valtteri Bottas and George Russell in round 2 and after Verstappen’s accident in round 6.

    BTW these aren’t the last three pitstops in round 2 – if you check the total attribute there were 56 pitstops in this race. To see all of them you need to raise the default limit of 30 by adding a limit parameter to the query e.g. https://ergast.com/api/f1/2021/2/pitstops.json?limit=100

  34. John says:

    Hi There,

    Might be jumping the gun here, however, in case you are not aware, Kimi Raikonnnen was promoted to 15th place post race for the Austrian grand prix (Round 9 2021)



  35. Admin says:

    Thanks John – I missed that.
    Now corrected.

  36. Sattish says:

    Hey there,

    I have noticed that Jacques Villeneuve isn’t in the drivers list for 1997 for some reason.

    He is there in 1996 but not 1997 in the API.



  37. Admin says:

    Hi Sattish,
    What URL are you using? I can see him here:
    and here:

  38. Sattish says:

    My apologies, it didn’t seem to retrieve the last 3 elements for some odd reason.

    The issue is fixed from my side now, thank you for the quick response Chris!

  39. Fortis says:

    I believe i have found an error in the constructors standings data. I was analysing
    points versus raceId and have noticed that after race 1058 there is a decresee in the amount of points in the race 1059. For example amount of points after the raceId = 1058 shows Red Bull have 252 points and after raceId = 1059 they have 215 points. The difference is 32 points which is exacly the amount of points Red Bull earned after Steiermark GP, therefore i believe the id’s or the order of races is swapped. Furthermore in the races data, Styrian GP has raceId = 1058 and French GP raceId = 1059 and according to my knowledge they happened in reverse order.

  40. Admin says:

    Hi Fortis,
    The raceId is a unique key used internally by the database and it’s not necessarily sequential. Database keys have to be unique but the values themselves have no significance externally.
    The raceId is usually sequential because I enter the race calendar sequentially. However, this year, races have often been cancelled and/or rescheduled and thus the sequential sequence has been disrupted.

  41. Fortis says:

    I was considering it after writing this message, sorry for confusion and than you for clarifying 🙂

  42. Caspar says:


    Not a bug report but I was wondering if you knew how you were going to handle sprint qualifying this weekend? Will the existing grid position field be the one set by the new sprint qualifying race?


  43. Admin says:

    Hi Caspar,
    Yes, that sounds like a reasonable approach.

  44. Caspar says:

    Thanks Chris.

    In which case, I think the data for Silverstone is wrong 🙂

    Shows Hamilton as grid position 1, and Verstappen as 2, for example.

  45. Admin says:

    Hi Capsar,
    Erk, thanks for the warning – turns out there are now two documents called “Final Starting Grid” :-/ Now corrected.

  46. Caspar says:

    Ah, the final final starting grid :p
    Thanks for sorting.

  47. Gavin says:

    Hi Chris,

    I noticed for the British GP the sprint points are reported combined with the race points (which is why Max has 3 points despite crashing out).

    I wondered if you’re thinking of reporting sprint & race points separately if the sprints become a feature in more than a handful of weekends perhaps in 2022?


  48. Philipp says:


    first off thanks for the API, I love it!

    I guess there is a small typo for the location of the Red-Bull-Ring and A1-Ring:

    In the API the location is “Spielburg” (http://ergast.com/api/f1/circuits?limit=30&offset=30) but the actual city is called “Spielberg” (https://en.wikipedia.org/wiki/Spielberg,_Styria and https://en.wikipedia.org/wiki/Red_Bull_Ring).

    Thanks a lot,

  49. Lucy says:

    Hi Chris,

    I wanted to ask about the “status” list as it seems to have quite a few duplicates contained like:
    Driver seat (id 28) and Seat (136)
    Oil pipe (108) and Oil line (70)
    Safety (78) and Safety concerns (89)
    Collison (4) and Collison Damage (130)

  50. Admin says:

    Hi Lucy,
    It’s true – they need rationalising but would need careful fixing due to references between tables. I’ll have a go at the end of the season.

Add a Comment: