OrbTop

Open Food Facts Product & Nutrition Data

AIDEVELOPER TOOLS

Open Food Facts Product & Nutrition Data

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

Field Type Default Description
mode string search "search" for category/tag browse; "barcode" for individual product lookup
categoriesTags string[] ["en:breakfast-cereals"] Category tags to filter (search mode only)
countriesTag string Country filter, e.g. "en:france" (search mode only)
barcodes string[] EAN/UPC barcode list (barcode mode only)
maxItems integer 10 Maximum 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:

Field Type Description
code string EAN/UPC barcode (primary key)
product_name string Product name
brands string Brand name(s), comma-separated
quantity string Net quantity / weight as displayed on packaging
serving_size string Serving size as stated on the package
nutriscore_grade string Nutri-Score grade: a (best) to e (worst)
nova_group integer NOVA food-processing group: 1 (unprocessed) to 4 (ultra-processed)
ecoscore_grade string Eco-Score environmental grade: a to e
categories_tags string Category taxonomy tags, comma-separated
countries_tags string Country availability tags, comma-separated
ingredients_text string Full ingredients list
allergens_tags string Allergen tags, comma-separated (e.g. en:milk,en:nuts)
traces_tags string May-contain allergen traces, comma-separated
additives_tags string Food additive tags (E-numbers), comma-separated
labels_tags string Certification tags (e.g. en:organic,en:vegan), comma-separated
packaging_tags string Packaging material tags, comma-separated
energy_kcal_100g number Energy per 100g in kcal
fat_100g number Total fat per 100g in grams
saturated_fat_100g number Saturated fat per 100g in grams
carbohydrates_100g number Carbohydrates per 100g in grams
sugars_100g number Sugars per 100g in grams
fiber_100g number Dietary fiber per 100g in grams
proteins_100g number Protein per 100g in grams
salt_100g number Salt per 100g in grams
sodium_100g number Sodium per 100g in grams
image_url string URL of the product front image
last_modified_t integer Unix 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:

Tag Description
en:breakfast-cereals Breakfast cereals (muesli, granola, cornflakes)
en:beverages All beverages
en:dairy Dairy products
en:meats Meat products
en:cheeses Cheese products
en:chocolates Chocolate products
en:biscuits-and-cakes Biscuits, cookies, cakes
en:snacks Snack foods
en:sauces Sauces and condiments
en:pastas Pasta 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.