Skip to content

Open Food Facts AWS images dataset#

The Open Food Facts images dataset contains all images uploaded to Open Food Facts and the OCR results on these images obtained using Google Cloud Vision.

The dataset is stored in the openfoodfacts-images bucket hosted in the eu-west-3 region. All data is stored in a single /data folder.

Data is synchronized every month between Open Food Facts server and S3 bucket, as such some recent images are likely to be missing. You should not assume all images are present on the S3 bucket.

To know the bucket key associated with an image for the product with barcode '4012359114303', you should first split the barcode the following way: /401/235/911/4303.

This splitting process is only relevant for EAN13 (barcodes with 13 digits), for barcodes with a smaller number of digit (like EAN8), the directory path is not splitted: /20065034.

To get the raw image '1' for barcode '4012359114303', simply add the image ID: /401/235/911/4303/1.jpg. Here, you will get the "raw" image, as sent by the contributor. If you don't need the full resolution image, a 400px resized version is also available, by adding the .400 suffix after the image ID: /401/235/911/4303/1.400.jpg.

The OCR of the image is a gzipped JSON file, and has the same file name as the raw image, but with the .json.gz extension: /401/235/911/4303/1.json.gz

To download images, you can either use AWS CLI, or perform an HTTP request directly:

wget https://openfoodfacts-images.s3.eu-west-3.amazonaws.com/data/401/235/911/4303/1.jpg

You can know all existing objects (images, OCR results) on the bucket by downloading the gzipped text file s3://openfoodfacts-images/data/data_keys.gz:

wget https://openfoodfacts-images.s3.eu-west-3.amazonaws.com/data/data_keys.gz

Then you can easily filter the files you want using grep (raw images, OCR JSON) before downloading them. For example, to keep only 400px versions of all images:

zcat data_keys.gz | grep '.400.jpg'