Feedback

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

292 Responses to “Feedback”

  1. Miguel Bento says:

    I think the second update statement was truncated. Here goes both statements again:

    update results
    set (fastestLap,fastestLapTime) = (select lap, time from (select l.lap, l.time, min(l.milliseconds) from laptimes l where l.raceId=results.raceId and l.driverId=results.driverId))
    where raceId in (select raceId from races where year between 1996 and 2003);

    update results
    set rank=(select count(*)+1 from results r where r.raceId = results.raceId and r.fastestLapTime 0 and raceId in (select raceId from races where year between 1996 and 2003);

  2. Miguel Bento says:

    Harrrg, it’s the ‘less than’ and ‘greater than’ signs!

    Let’s try again the 2 statements:

    update results
    set (fastestLap,fastestLapTime) = (select lap, time from (select l.lap, l.time, min(l.milliseconds) from laptimes l where l.raceId=results.raceId and l.driverId=results.driverId))
    where raceId in (select raceId from races where year between 1996 and 2003);

    update results
    set rank=(select count(*)+1 from results r where r.raceId = results.raceId and r.fastestLapTime < results.fastestLapTime)
    where laps > 0 and raceId in (select raceId from races where year between 1996 and 2003);

  3. Admin says:

    Hi Miguel,
    Many thanks. I may try this offline initially.
    Chris

  4. Daniel Johnson says:

    Hi Chris,

    Just wanted to drop you a line to say hi and to let you know I’m working on a React frontend for the API as a portfolio project. I’ll be getting docker going and putting the API on my local, but in case you were wondering about the increased requests that’s me. Feel free to email me with any questions/concerns, thanks!

    Best,
    Dan

  5. Jason says:

    Thanks so much for this, appreciated!

    Just wondering why you have inconsistent casing of fields in the JSON view? eg. “raceName” (good), “season” (good), then “Circuit”?

  6. Admin says:

    Hi Jason,
    The original idea was that elements with structure started with a capital letter whereas singular values started with lowercase. However, there are a few mistakes and inconsistencies which are difficult to change now – like using strings for integers.
    Chris

  7. Admin says:

    Hi Jason,
    The API doesn’t make use of data from F1.com but uses a variety of public sources.
    Chris

  8. David says:

    I first wanted to thank you for this API.

    I am developing an Android application in which I store the information in a local database.

    Is there a way to know what content has been modified since a specific time? Or something like an index indicating the version of each table?

    In this way, it would only be necessary to request the table that has a greater version than the one stored locally, thus avoiding unnecessary calls.

    Thanks!

  9. Admin says:

    Hi David,
    Unfortunately, I don’t think there’s anything currently in the API which would support that. The last time I looked at incremental updates I came to the conclusion that there was no reliable solution – but I’m open to ideas!
    Chris

  10. Davide says:

    Hi, is it possible to retrieve the Free Practice lap times from the API? I didn’t find so I’m guessing no, but asking never hurts 🙂

    Cheers,
    Davide

  11. Admin says:

    Hi Davide,
    Unfortunately not – it would need to be processed on Friday, which is a working day.
    Chris

  12. Adam Paxton says:

    Hi Chris,

    Thanks for sharing this data and API. I’ve defined some of the endpoints in OpenAPI Spec to help generate libraries for some of my projects. I’m posting it here in case someone else can find it useful. Thanks again for collecting and sharing this data!

    Adam

    https://github.com/adampax/ergast-f1-openapi-doc

  13. Admin says:

    Hi Adam,
    Many thanks for sharing the endpoint descriptions. I’ve added your link to a section on API tools in the Application Gallery.
    Chris

  14. Supermicha says:

    Hallo Adam,

    thank you for doing this here!!

    Would it be possible to add the offical (full) race names?

    e.g. “FORMULA 1 PIRELLI BRITISH GRAND PRIX 2020”
    and not only “British Grand Prix”

  15. Admin says:

    Hi Supermicha,
    I have to be careful about making changes to the API – people will have allocated a certain amount of space for each text field.
    Chris

  16. Wesley says:

    Hi Chris,
    Is it possible to add the practices and quali date and times to the schedule or to a seperate api call?
    Wesley

  17. Admin says:

    Hi Wesley,
    I would if I could find the data – preferably before the season starts.
    Chris

  18. Hi Chris,
    I found some data at https://www.formula1.com/en/racing/2020.html and at https://formulaonecalendar.com/.
    I don’t know if the second one is reliable at the start of the season.
    Wesley

  19. Admin says:

    Thanks Wesley – I’ll take a look before the next season.
    Cheers,
    Chris

  20. Supermicha says:

    Hi Admin, referring to my question about full race names and your answer…

    “Hi Supermicha,
    I have to be careful about making changes to the API – people will have allocated a certain amount of space for each text field.
    Chris”

    maybe you can itegrate both… the ‘old’ short one and the full name?

    and another problem.
    this year the two bahrain races takes part on the same track but in different layouts. The second is officially named ‘Bahrain International Circuit – Outer Track’ maybee it is itegratable?
    https://www.formula1.com/en/racing/2020/Sakhir/Circuit.html

  21. saddish says:

    Hello Admin, my feedback is that in the “constructor information”, there should be the constructor’s team picture as well as all the information there already.

    Thank you,
    saddish

  22. aneroid says:

    Hi Chris,

    (A) Do you plan to add Track Configuration data to the circuits?

    Eg, the Australian GP in 1987 (Österreichring) and 1997 (A1 Ring) are the same “circuit” but the track in 1997 is shorter (and renamed). The Red Bull Ring IS the A1 Ring with a diff name from 2011; but from 2016 onwards is changed (shorter). Österreichring has a different curcuitId from RB Ring but there’s only one Id for both versions of RBR.

    Another much different case (included) is Bahrain which has 3 tracks at same location (the one-time used long track; the F1 regular medium track; and the Sakhir short outer track) – but all 3 are considered the same “circuit” in the db.

    I’m not sure level of change counts as a different config – I’d imagine changing at least one corner or straight that has a meaningful difference to the race (so repaving it and new stands don’t count).

    (B) Other clarifications:
    – are the CSV’s (in the zip) generated dynamically from the DB as and when it updates or would it have a separate cycle?
    – will “\N” remain the null indicator in all future extracts? (as a MySQL load data flag)
    – are the race start times in UTC?
    – are speeds in KPH?
    – missing raceIds, are these of any importance or just missing PK’s from db operations? 840, 889, 919-925 (end of 2014 season, start of 2015; non-issue), 935, 946, 947, 1048-1050

    Thanks for the awesome work.

  23. Admin says:

    Hi aneroid,
    > Do you plan to add Track Configuration data to the circuits?
    This would be a lot of work to do now – there have been a lot of configuration changes over the years – and the schema would need to be changed.

    > are the CSV’s (in the zip) generated dynamically from the DB as and when it updates
    All the dumps are generated together after the database has been updated – as indicated by “Last Updated” on the Database Images page

    > will “\N” remain the null indicator in all future extracts?
    Yes

    > are the race start times in UTC?
    Yes – as indicated by the “Z” suffix.

    > are speeds in KPH?
    Yes – the units are indicated in the response.

    > missing raceIds, are these of any importance or just missing PK’s from db operations?
    The latter.

    Cheers,
    Chris

  24. aneroid says:

    Hi Chris,

    Thanks for the quick & detailed response!

    FYI, the zip extract CSV’s don’t include the ‘Z’ in the start times or mention units with the speeds. But thanks for using UTC (and KPH); so we don’t need to care about the varying DST rules throughout the decades.

    Cheers,
    aneroid

  25. Arek says:

    Hello,
    Did you consider adding engine producers?

    Arek

  26. Admin says:

    Hi Arek,
    I avoided the additional complexity to get the database up and running 12 years ago – and you’re the first person who to ask about it! To support them I guess there would need to be a relationship with constructors that is season-based?
    Chris

  27. Tsingis says:

    How fast data is updated after Qualifying sessions and Races?

  28. Admin says:

    Hi Tsingis,
    See the FAQ – usually 2-6 hours afterwards.
    Chris

  29. Hello Admin.

    I have two questions.
    First. Do you think it is possible to add the training and qualification schedule (friday and saturday) to the API? (or is it already available)

    Secons. Is it possible to get a list of drivers for this season. EG: http://ergast.com/api/f1/2021/drivers
    This would help to setup a poll application where i only want to select the current drivers.

    Thnx for your answer !
    Pieter

  30. Admin says:

    Hi Pieter,
    I often struggle to find an accurate schedule of the races at the beginning of the season. I’m not sure how I could get the times of other sessions.
    For this year’s drivers see: http://ergast.com/mrd/provisional-2021-drivers-and-constructors/
    Cheers,
    Chris

  31. Hi Chris,

    Thnx for the answer. I will change my querie to your advice.

    About the source of the other data:

    please checkout http://f1calendar.com. This one helps me every year to get the F1 calendar in my agenda and is very accurate. I’m checking how to read an ics file into my application, but reading is from your REST Api will make life much more easier…

    Cheers,
    Pieter

  32. Gavin says:

    Hi,

    I’m building an F1 predictions game for a few friends (having run it using Excel for the last 10 years) and am planning to use your API to do it … so far it’s brilliant, thanks!

    My question is, when do you intend to populate the list of drivers for the 2021 season? I see you’ve already got the race schedule ready … but I need a driver list to predict from 🙂

    Cheers,
    Gavin.

  33. Supermicha says:

    Hi Admin…

    The “current”-Pages referes still to the 2020 Season…

  34. Admin says:

    Hi Supermicha,
    See details in the FAQ
    Chris

  35. Satanas says:

    Is it possible to get the duration of the pitstop (only the time when they change the tires) ?

  36. Admin says:

    Hi Satanas,
    Unfortunately I don’t have access to that information – or the tyre data :-/
    Chris

  37. Rolandas says:

    Hi,

    How You are planning to deal with this new thing Sprint Race?

  38. Admin says:

    Hi Rolandas,
    I can’t change the API format mid-season so I will do the following:
    – put the sprint time in the Q1 field of the qualifying table
    – add the qualifying points to the race results table on Sunday
    Cheers,
    Chris

  39. Erik says:

    Hi,

    first of all, incredible work! This API is really great to quickly get started in doing all kinds of statistics / visualisation stuff for F1.

    I am an academic statistician and I would like to use the data for a scientific publication on statistical driver skill / constructor form estimation. Surrounding this I have several questions.

    0. Are you okay with me using this data for this purpose? It is non-commercial, I will be publishing this fully open-access (if it gets accepted to a journal!)

    1. Is it possible to get a more detailed description of the data sources? How is the data collected?

    2. How do I cite you? It would be great if you can publish a DOI. I also understand that you may want to remain anonymous, but usually the publication is something like

    Lastname, Initials (2021) Ergast developer API, version May 2021. http://ergast.com DOI: dx.doi.org/

    Lastname, Initials could also be replaced by “the Ergast API team”.

    3. I am focussing on hybrid-era F1, and I have enriched your data with weather information (wet/dry race) and circuit type (permanent/street), partially scraped from Wikipedia and partially manually coded. Would it be OK for you if I openly publish this enriched dataset (of course referring to you) as part of the article with a CC-BY licence?

    4. The wikipedia URL of the 2014 German grand prix has a typo:

    http://en.wikipedia.org/wiki/2014_German_Grand_Prixs

    (should not have the final s)

    Thanks again for your great work, and I hope you have a bit of time to respond to my questions!

    Erik

  40. Admin says:

    Hi Erik,
    Using the API and the data in this way is fine.
    The data is described in more detail in the User Guide provided on the Database Images page. There’s also an Entity Relation diagram.
    I’ll contact you directly with further details.
    Chris

  41. Steve says:

    Hi,

    I think there might be something up with the pitstop data for the last race. It doesn’t appear to be returning anything:

    https://ergast.com/api/f1/2021/4/pitstops.json

    Keep up the great work!

    Steve

Add a Comment: