Data
Conditions for reuse
The Open Food Facts database is available under the Open Database License.
The individual contents of the database are available under the Database Contents License.
Products images are available under the Creative Commons Attribution ShareAlike licence.
They may contain graphical elements subject to copyright or other rights, that may in some cases be reproduced (quotation rights or fair use).
Please read Terms and conditions of use and re-use before re-using the data.
Tell us about your reuse
We are very interested in learning what the Open Food Facts data is used for. It is not mandatory, but we would very much appreciate it if you tell us about your re-uses so that we can share them with the Open Food Facts community. You can also fill this form to get a chance to get your app featured.
Open Food Facts data exports
Database dumps and exports are generated nightly. The database is very big, so you can find different ways to use the data, depending on the export flavor.
Information on the different fields for the MongoDB dump and CSV exports is available at https://world.openfoodfacts.org/data/data-fields.txt
MongoDB dump
Data for all products is available in a MongoDB database dump.
- Link
- https://static.openfoodfacts.org/data/openfoodfacts-mongodbdump.gz
- sha256sum
- https://static.openfoodfacts.org/data/gz-sha256sum
- md5sum
- https://static.openfoodfacts.org/data/gz-md5sum
Delta Export
Daily delta exports are provided for the previous 14 days. The list of currently available delta files can be found at https://static.openfoodfacts.org/data/delta/index.txt.
Each line represents a file that is available at https://static.openfoodfacts.org/data/delta/{filename}
.
The filename contains UNIX timestamp of the first and the last change contained in the JSON file, so that the delta files can be imported (after extraction) with mongoimport
in alphabetical order.
Please note that due to the nature of mongoexport
, the delta files cannot tell you about deleted products. To remove deleted products from your database, you will need to import the full MongoDB dump.
JSONL data export
The whole database is also available in JSONL format (sometimes called LDJSON or NDJSON) where each line is a JSON object. It represents the same data as the MongoDB export. The file is compressed with gzip.
A suitable way to exploit the database is to use DuckDB, an in-process analytical tool designed to process large amount of data in a fraction of seconds. You can read our blog post where we walk you through exploring and processing the Open Food Facts database with DuckDB
CSV Data Export
Data for all products, or some of the products, can be downloaded in the CSV format (readable with LibreOffice, Excel and many other spreadsheet software) through the advanced search form.
- Links
- https://static.openfoodfacts.org/data/en.openfoodfacts.org.products.csv.gz (compressed CSV in GZIP format: ~ 0.9 Gb, uncompressed: ~ 9 Gb)
The file encoding is Unicode UTF-8. The character that separates fields is <tab> (tabulation).
RDF Data Export
The database is also available in the RDF format. You can read the announcement in French.
Image Data Export
All images and OCR results can either be downloaded from our server or from AWS (through the AWS Open Data Program). Check out our documentation to learn more about how to download images.
Live JSON and XML API
A JSON API is also available to read the data for a product. This API is in particular used in the Open Food Facts mobile app for iPhone and Android.
We improve the API over-time but we are careful to keep backwards compatibility. Please get in touch if you use it, so that we can tell you about potential changes.
URL to read data for a product: https://world.openfoodfacts.org/api/v2/product/[barcode].json
Example: https://world.openfoodfacts.org/api/v3/product/737628064502.json
Note that if the output is too overwhelming, you can filter it - as described in the API documentation.
OpenAPI help wanted
We're eager to finish the documentation of the API, add use-cases, and automate SDK generation. If you are an OpenAPI connoisseur, you are very welcome to help.You are very welcome to use the API for production cases, as long as 1 API call = 1 real scan by a user. Any attempt to scrape the database using the API will very likely be blocked, as full daily exports are available on this very page.
Also, sending an HTTP header with your API call is a good way we can get in touch, should any issue arise.
If you are unsure about anything, or have any question (there is no silly question), feel free to ask it on the #api channel on Slack :-)
Experimental XML API
You can also get the result in XML by using .xml
Example: https://world.openfoodfacts.org/api/v2/product/737628064502.xml
This API is not actively maintained, and not officially documented.Wrappers and SDKs
We probably have a wrapper for your favorite programming language. If we do, you can use it and improve it. If we don't, you can help create it.
They will let you consume data, as well as let your users contribute new data
General principles to make your users happy
- You can search for information about products, including many useful computed values.
- If you can't get the information on a specific product, you can get your user to send photos and data, that will then be processed by Open Food Facts AI and contributors to get the computed result you want to show them.
- You can also implement the complete flow so that they get immediately the result with some effort on their side.
If your users do not expect a result immediately (e.g. Inventory apps)
- Submit photos (front/nutrition/ingredients): most painless thing for your users
- The Open Food Facts AI - Robotoff - will generate some derived data from the photos
- Over time, other apps, and the Open Food Facts community will fill the data gaps
If your users expect a result immediately (e.g. Nutrition apps)
- Submit nutrition facts + category > get Nutri-Score
- Submit ingredients > get the NOVA group (about food ultra-processing), additives, allergens, normalized ingredients, vegan, vegetarian…
- Submit category + labels > soon get the Eco-Score (about environmental impact)
Android and iPhone mobile app
The code for the Open Food Facts mobile app is available on GitHub (Flutter, Kotlin Android and Swift iOS).
We look to turn the deprecated Kotlin and Swift codebases into Kotlin and Swift SDKs, help welcome :-) The app allows users to scan the barcode of products, to view the product information, and to take and submit pictures and data for missing products.
The app allows users to scan the barcode of products, to view the product information, and to take and submit pictures and data for missing products.
You are welcome to reuse the code (it's open source) and help us improve it, for everyone, on all the planet.
SDKs
- Cordova: GitHub (old Open Food Facts official app)
- DART: GitHub - Package on pub.dev
- Elixir: GitHub - Discussion channel
- Go: GitHub - Discussion channel
- Java: GitHub - Discussion channel
- Kotlin: GitHub - Discussion channel
- NodeJS: GitHub - Discussion channel
- PHP: GitHub - Discussion channel
- PHP (Laravel): GitHub - Discussion channel
- Python: GitHub - Discussion channel
- React Native: GitHub - Discussion channel
- Ruby: GitHub - Discussion channel
- Rust: GitHub - Discussion channel
- R: GitHub - Discussion channel
- Swift: GitHub - Discussion channel
- .NET/C#: GitHub - Discussion channel
Discussing data, API and exports
You can look at common FAQ questions about the API and Data Exports and common Open Food Facts questions
You can join the Open Food Facts Slack chatroom which is the preferred way to ask questions and discuss the API. Please ask your questions in the #api channel
You can open a thread on our API documentation repository
For any question regarding the data, you can contact us at reuse@openfoodfacts.org