openFDA is designed primarily for real-time queries. However, some applications may require all the data served by an endpoint, or exceed the query limits in place to promote equitable access and manage load on the system. Because openFDA is open source and its source code is available on GitHub, you can create your own instance of openFDA without these limits and run it on your own server. You can also download the data for any openFDA endpoint, in exactly the same JSON format that query results follow, and build your own custom application that uses these JSON files. Because the format is exactly the same as API query results, you can reuse existing code that you’ve written for applications that process openFDA data. There are two things you should know about these downloads.
To keep your downloaded data up to date, you need to re-download the data every time it is updated. Every time an endpoint is updated (which happens on a regular basis), it is possible that every record has changed, due to corrections or enhancements. That means that you cannot simply download “new” files to keep your downloaded version up to date. You need to download all available data files for the endpoint of interest.
There are three ways to download data from openFDA.