Feedback

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

280 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

Add a Comment: