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

483 responses to “Feedback”

  1. Miguel Bento Avatar
    Miguel Bento

    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 Avatar
    Miguel Bento

    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 Avatar
    Admin

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

  4. Daniel Johnson Avatar
    Daniel Johnson

    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 Avatar
    Jason

    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 Avatar
    Admin

    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 Avatar
    Admin

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

  8. David Avatar
    David

    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 Avatar
    Admin

    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 Avatar
    Davide

    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 Avatar
    Admin

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

  12. Adam Paxton Avatar

    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 Avatar
    Admin

    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 Avatar
    Supermicha

    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 Avatar
    Admin

    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 Avatar

    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 Avatar
    Admin

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

  18. Wesley Noordam Avatar

    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 Avatar
    Admin

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

  20. Supermicha Avatar
    Supermicha

    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 Avatar
    saddish

    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 Avatar
    aneroid

    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 Avatar
    Admin

    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 Avatar
    aneroid

    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 Avatar
    Arek

    Hello,
    Did you consider adding engine producers?

    Arek

  26. Admin Avatar
    Admin

    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 Avatar
    Tsingis

    How fast data is updated after Qualifying sessions and Races?

  28. Admin Avatar
    Admin

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

  29. Pieter Spiekman Avatar

    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 Avatar
    Admin

    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. Pieter Spiekman Avatar

    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 Avatar
    Gavin

    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 Avatar
    Supermicha

    Hi Admin…

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

  34. Admin Avatar
    Admin

    Hi Supermicha,
    See details in the FAQ
    Chris

  35. Satanas Avatar
    Satanas

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

  36. Admin Avatar
    Admin

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

  37. Rolandas Avatar
    Rolandas

    Hi,

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

  38. Admin Avatar
    Admin

    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 Avatar
    Erik

    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 Avatar
    Admin

    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 Avatar
    Steve

    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

  42. Admin Avatar
    Admin

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

  43. Jordan Avatar
    Jordan

    Hi Admin,

    I was wondering if you had any thoughts on what a longer term plan for supporting the Sprint Qualifying format would be (if any)?

    I saw the response from Rolandas’ question about how points will be added to race data for this season, thanks for supporting this!

    Some longer term options that I can think of:

    – Not support it officially if it’s cancelled at the end of 2021
    – Add another column or two to the qualifying table for sprint qualifying data, so options become q1, q2, q3, and qSprint or something like that? (and would be returned as part of the existing qualifying endpoints)
    – A separate table in the backend with a dedicated set of endpoints for sprint qualifying results
    – It gets bundled into the round results as a nullable field (similar to fastest lap?)
    – Something else?

    Thanks as always for your work on this API!

    Thanks,
    Jordan

  44. Admin Avatar
    Admin

    Hi Jordan,
    I haven’t any plan other than that outlined in:
    http://ergast.com/mrd/feedback/comment-page-6/#comment-186980
    Let’s see how it goes, and whether changes are proposed in 2022.
    Cheers,
    Chris

  45. Emre Avatar
    Emre

    Hi Admin,

    Thank you for your API services. The Singapore race was canceled and the Istanbul race was added instead. But data is out of date in APIs. Will you update on this?

    We are grateful for this service. We use your data in one of Turkey’s largest sports newspapers. We are grateful.

  46. Admin Avatar
    Admin

    Hi Emre,
    Thanks for the warning – It’s hard to keep up with all the schedules changes this year. Now fixed.
    Chris

  47. Tanzeem Ahmed Avatar
    Tanzeem Ahmed

    Hi Admin,
    I appreciate the API services you provide and the great work you do behind the scenes.

    My question:
    I was wondering if we have an api that returns NUMBER OF LAPS per circuit. Ex: How many laps in Bahrain?

    Thanks

  48. Ben Avatar
    Ben

    Hi, great API!
    Looking at the qualify results table after today’s first Sprint “race”, I see you did add the final Sprint times in Q1 as proposed. But it really is confusing to extract the data knowing the position value does not represent the preemptive race day grid :-/

    number position Q1 Q2 Q3
    44 1 1:26.786 1:26.023 1:26.134
    33 2 1:26.751 1:26.315 1:26.209
    77 3 1:27.487 1:26.764 1:26.328
    16 4 1:27.051 1:26.919 1:26.828
    11 5 1:27.121 1:27.073 1:26.844
    4 6 1:27.444 1:27.220 1:26.897
    3 7 1:27.323 1:27.125 1:26.899
    63 8 1:27.671 1:27.080 1:26.971
    55 9 1:27.337 1:26.848 1:27.007
    5 10 1:27.493 1:27.103 1:27.179
    14 11 1:27.580 1:27.245
    10 12 1:27.600 1:27.273
    31 13 1:27.415 1:27.340
    99 14 1:27.595 1:27.617
    18 15 1:28.017 1:27.665
    22 16 1:28.043
    7 17 1:28.062
    6 18 1:28.254
    47 19 1:28.738
    9 20 1:29.051

    Thank you for sharing this great work,
    Ben

  49. Daniel Rinconcillo Avatar
    Daniel Rinconcillo

    Hi! 🙂 First, I wanna say Thank You! For all that work, it’s really really cool! 🙂

    I have a question: There is some data about penalization during the race? Thanks a lot!

Leave a Reply

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