If you have any comments, suggestions or feature requests please add them here. Problems and errata can be reported on Bug Reports page.
I’m using an image of the DB and was wondering if there is a way to keep it updated throughout the season that you haven’t mentioned in your documentation. Of course I could use the API to insert new entries into my copy of the DB, but I’d like to keep things like auto increment ID values in sync for interoperability purposes.
Oh, and thanks for providing this, it is quite awesome!
I’ve had another request for this so will start publishing a new image after each race – check the download page for details later today.
Thanks for delivering such a great database. I’ve built an android app round your data, of course completly free, which can be found at https://play.google.com/store/apps/details?id=com.indigodev.f1almanach.app
Great, thanks a lot! One more request, any chance you could include the number of laps for a particular race with the rest of the race data (ie: in the “Races” object, but outside of the “Results” object – with the other race info like “raceName” and the “Circuit” object)?
For completed races, it would be best if it was the actual number of laps completed by the race winner as opposed to the number of scheduled laps. Actually, perhaps you’d want to include both scheduled and actually completed. I don’t have a particular use for both at this time, but others might find it useful to know if a race ran long or was red flagged and how much it was cut short by.
Right now you have to pull the number of laps completed by the winner before you can figure out how many laps back/what percentage of a race was completed by someone who crashed out or had a failure.
Thanks again, I can’t stress enough how awesome you are for providing all of this!
That sounds useful. It could go in the Race element which crops up in several responses. I’ll add this to the ToDo list for next season as I don’t like to make changes mid-season unless they’re urgent.
Hi! ResultId 12969 (Regazzoni in the 1978 Spanish GP) has statusId value 0 (not a valid key in the status table) instead of 106 (Fuel pipe). I found this to be the only dead key across the results, races, drivers, constructors, circuits and status tables. I love this database.
Thanks Paipa – now corrected.
Hi, Is there any way to expand this to other series ?
Or any chance I could get a copy of the code to build up my own data for a different series ?
Unfortunately, I haven’t got enough time to support other series. However, I’d be happy to share the code if you want to provide another public API. Don’t underestimate the effort required to capture and import the data though – once you start this becomes an ongoing responsibility! What series did you have in mind?
First of all – very cool service!
I was thinking that you might consider adding an Expires header to the reponse header.
Since most data is historical, you could add an expires header that said the content is valid for a year. I know some data is not historical, so just dont add expires headers to those. Or have a shorter expiration.
That would save me the trouble of implementing a cache in my JS app, since the browser already knows how to handle expires headers, and it would must likely reduce the amount of calls to your server.
Thanks for the suggeston. This would make sense for most data. Only the latest results and standings are variable for a short time after each race. Will give it some thought.
Do you plan to add practice results in future?
I’ve no plan to add them at the moment. There doesn’t seem to be much demand for the qualifying data, in terms of traffic so I’m not sure it would be worth the additional effort on data import.
First of all a BIG thankyou for this database. It saved me a lot of hassle and allowed me to be more daring with regards to what I can do.
Only thing that I would suggest it to have a database image of the updated records only.
That would save bandwidth as I don’t have to download the complete image every time I want to update my local database.
One thing I seem miss is data on the drivers for the current season. I can only extract driver data from the results. Obviously there is none so far for 2015.
Great job, one might find schedules free practice and Qs (Q1, Q2 and Q3) ?. Thank You
Unfortunately, the API does not cover practice sessions. Qualifying results are available here: http://ergast.com/mrd/methods/qualifying
Great work and many thanks for the time you put into this.
2014 Brazil (round 18) Lap Times query comes up blank. ((http://ergast.com/api/f1/2014/18/laps)) Pitstops shows data, though. I’m just trying to get my 2014 data sorted out before the start of the new season, like I’m sure many of us F1 nerds are doing!
Thanks again for all your work.
Again I want to say big thanks for continuing your work here. For the past months, I worked on my follow up app of F1 Almanac, which got pulled from Google Play because of copyright infringement (lessons learned: don’t put F1 into the title).
So I just wanted share the link to ne new app GP Companion, which would simply not have been possible without your great work man. The app is of course completely free, with no ads and no commercialization at all.
Thanks Daniel – it’s a great looking app. I’ve updated your entry in the Application Gallery.
This seems to be the only service of it’s kind out there, nice job. I have a suggestion/question about the way the API reports driver and constructor nationalities. Currently it’s in the form “German” etc., i.e. it describes the driver/constructor (don’t ask me what this language form is called). This form however makes it a lot harder to make use of the data, for example I would like to get the country code (e.g. “de”) for drivers and constructors but it seems all libraries I’ve found for this only accept the actual country name (e.g. “Germany”).
Also, I think Jos Verstappens nationality is wrong, the API says it’s Belgian while he is Dutch (though born in Belgium).
Thanks for errata about Verstappen – now corrected.
The nationality field was intended for presentation purposes. However, they should be consistent so you could build a lookup table. I guess there could be an nationality attribute but strictly speaking the ISO 3166-1 two-letter codes describe countries rather than nationalities – not sure how significant that is.
I’m analyzing the possibility to integrate the db image in one of my future projects and I’m wondering if there is a possibility to get image updates as a coule of DDLs?
Thank you for your great work!
Quick query: I can’t seem to find an endpoint that returns the number of safety cars/yellow flags etc. Does this exist, and if not is it something you’d consider adding?
Top work on both the API and database by the way, it’s very good.
How about incremental backups using the mysqlbackup command? I could run this in addition to the current mysqldumps.
The difficulty is getting hold of a reliable source of this data. Ditto tyre data. If you know of a potential source let me know.
I see the database has been updated with the latest results but the db image last updated still says 15/3.
Is that a mistake or is the image not updated?
Thanks once again for this very useful data.
Apologies, I must automate this somehow. Now updated. BTW would you be able to use incremental backups made using the mysqlbackup command?
I should be able to yes, I use Navicat for db maintenance.
Thank you for this great API!
Currently, Pitstops endpoint provides only driverId. Is it possible to also include constructorId in the response?
hello great work as always: just spotted a silly thing on image page…
“1950 – 2014 Formula One Database Image”
should it be “1950 – 2015 Formula One Database Image”
Thanks James – now corrected.
Great API! But I’ve one problem: I’m making an app in AngularJS and when I make a request to this api, I get this response:
No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://chat.lusenet.com’ is therefore not allowed access
Any idea on how to fix this?
David I used to have that problem take a read of http://cypressnorth.com/programming/cross-domain-ajax-request-with-json-response-for-iefirefoxchrome-safari-jquery/ should solve it for you
Thanks for the help, but already fixed it. I did this: ‘http://ergast.com/api/:series/:seasons?limit=100.json’ while this ‘http://ergast.com/api/:series/:seasons.json?limit=100′ is this the correct way.
Mail (will not be published) (required)
Notify me of follow-up comments by email.
Notify me of new posts by email.
and Comments (RSS)