Feedback
If you have any comments, suggestions or feature requests please add them here. Problems and errata can be reported on Bug Reports page.
If you have any comments, suggestions or feature requests please add them here. Problems and errata can be reported on Bug Reports page.
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);
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);
Hi Miguel,
Many thanks. I may try this offline initially.
Chris
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
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”?
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
Hi Jason,
The API doesn’t make use of data from F1.com but uses a variety of public sources.
Chris
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!
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
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
Hi Davide,
Unfortunately not – it would need to be processed on Friday, which is a working day.
Chris
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
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
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”
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
Hi Chris,
Is it possible to add the practices and quali date and times to the schedule or to a seperate api call?
Wesley
Hi Wesley,
I would if I could find the data – preferably before the season starts.
Chris
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
Thanks Wesley – I’ll take a look before the next season.
Cheers,
Chris
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
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
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.
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
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
Hello,
Did you consider adding engine producers?
Arek
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
How fast data is updated after Qualifying sessions and Races?
Hi Tsingis,
See the FAQ – usually 2-6 hours afterwards.
Chris
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
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