Open Food Facts Product & Nutrition Data avatar

Open Food Facts Product & Nutrition Data

Pricing

Pay per event

Go to Apify Store
Open Food Facts Product & Nutrition Data

Open Food Facts Product & Nutrition Data

Scrape food product data from Open Food Facts — the world's largest open food database. Search by category, tag, or country; look up products by barcode; or run full-catalog sweeps. Returns Nutri-Score, NOVA group, Eco-Score, nutriments per 100g, allergens, ingredients, and more for 3.5M+ products.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Scrape food product data from Open Food Facts — the world's largest open food database with 3.5M+ products. The actor supports two modes:

  • search — faceted search by category tag, country, or both; returns paginated results
  • barcode — bulk product lookup by EAN/UPC barcode list

Every record includes Nutri-Score grade, NOVA food-processing group, Eco-Score, a full nutriments panel (energy, fat, carbohydrates, sugar, fiber, protein, salt per 100g), allergens, ingredients text, and category/label/packaging tags.


Use cases

  • Grocery & CPG apps — enrich product catalogues with nutrition data, allergen flags, and sustainability scores
  • Diet & allergen apps — filter products by allergen tags, Nutri-Score, or NOVA group
  • Sustainability analytics — benchmark Eco-Score distributions across categories or brands
  • LLM grounding & RAG — build a structured food-product knowledge base from open data
  • Retail product enrichment — add standardised nutriments and classification tags to SKU databases

Input

FieldTypeDefaultDescription
modestringsearch"search" for category/tag browse; "barcode" for individual product lookup
categoriesTagsstring[]["en:breakfast-cereals"]Category tags to filter (search mode only)
countriesTagstringCountry filter, e.g. "en:france" (search mode only)
barcodesstring[]EAN/UPC barcode list (barcode mode only)
maxItemsinteger10Maximum number of products to return

Search mode example

{
"mode": "search",
"categoriesTags": ["en:breakfast-cereals", "en:mueslis"],
"countriesTag": "en:united-kingdom",
"maxItems": 500
}

Barcode lookup example

{
"mode": "barcode",
"barcodes": ["3017620422003", "0737628064502", "4056489641926"],
"maxItems": 3
}

Output

Each record is a flat object with the following fields:

FieldTypeDescription
codestringEAN/UPC barcode (primary key)
product_namestringProduct name
brandsstringBrand name(s), comma-separated
quantitystringNet quantity / weight as displayed on packaging
serving_sizestringServing size as stated on the package
nutriscore_gradestringNutri-Score grade: a (best) to e (worst)
nova_groupintegerNOVA food-processing group: 1 (unprocessed) to 4 (ultra-processed)
ecoscore_gradestringEco-Score environmental grade: a to e
categories_tagsstringCategory taxonomy tags, comma-separated
countries_tagsstringCountry availability tags, comma-separated
ingredients_textstringFull ingredients list
allergens_tagsstringAllergen tags, comma-separated (e.g. en:milk,en:nuts)
traces_tagsstringMay-contain allergen traces, comma-separated
additives_tagsstringFood additive tags (E-numbers), comma-separated
labels_tagsstringCertification tags (e.g. en:organic,en:vegan), comma-separated
packaging_tagsstringPackaging material tags, comma-separated
energy_kcal_100gnumberEnergy per 100g in kcal
fat_100gnumberTotal fat per 100g in grams
saturated_fat_100gnumberSaturated fat per 100g in grams
carbohydrates_100gnumberCarbohydrates per 100g in grams
sugars_100gnumberSugars per 100g in grams
fiber_100gnumberDietary fiber per 100g in grams
proteins_100gnumberProtein per 100g in grams
salt_100gnumberSalt per 100g in grams
sodium_100gnumberSodium per 100g in grams
image_urlstringURL of the product front image
last_modified_tintegerUnix timestamp of last modification in Open Food Facts

Sample output record

{
"code": "3017620422003",
"product_name": "Nutella",
"brands": "Nutella",
"quantity": null,
"serving_size": null,
"nutriscore_grade": "e",
"nova_group": 4,
"ecoscore_grade": "unknown",
"categories_tags": "en:Petit-déjeuners,en:Produits à tartiner,en:Pâtes à tartiner",
"countries_tags": "en:france,en:italy,en:united-states",
"ingredients_text": "Sucre, huile de palme, NOISETTES 13%, cacao maigre 7,4%...",
"allergens_tags": "en:milk,en:nuts,en:soybeans",
"traces_tags": "",
"additives_tags": "en:e322",
"labels_tags": "",
"packaging_tags": "",
"energy_kcal_100g": 539,
"fat_100g": 30.9,
"saturated_fat_100g": 10.6,
"carbohydrates_100g": 57.5,
"sugars_100g": 56.3,
"fiber_100g": null,
"proteins_100g": 6.3,
"salt_100g": 0.107,
"sodium_100g": 0.042,
"image_url": "https://images.openfoodfacts.org/images/products/.../front_en.jpg",
"last_modified_t": 1700000000
}

Category tags

Common category tags for the categoriesTags input:

TagDescription
en:breakfast-cerealsBreakfast cereals (muesli, granola, cornflakes)
en:beveragesAll beverages
en:dairyDairy products
en:meatsMeat products
en:cheesesCheese products
en:chocolatesChocolate products
en:biscuits-and-cakesBiscuits, cookies, cakes
en:snacksSnack foods
en:saucesSauces and condiments
en:pastasPasta products

Browse the full taxonomy at world.openfoodfacts.org/categories.


Data licence

Open Food Facts data is published under the Open Database Licence (ODbL). Individual contents (product photos, text) are under the Database Contents Licence (DbCL). You must credit Open Food Facts and share any derived database under the same ODbL licence.


Rate limits & best practices

The actor sends a descriptive User-Agent and respects Open Food Facts project guidelines (≤10 requests/minute for search). For full-database ingestion, Open Food Facts publishes bulk JSONL/CSV exports updated daily — contact us if you need bulk access at scale.