Open Food Facts Scraper — Barcode, Nutrition & Labels
Pricing
from $2.00 / 1,000 results
Open Food Facts Scraper — Barcode, Nutrition & Labels
Look up food products by barcode, or pull by category or brand, with Nutri-Score, NOVA, Eco-Score, nutrition facts per 100g, ingredients, allergens, labels and image. Powered by Open Food Facts. Keyless, no anti-bot.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Share
Look up food products by barcode, or pull products by category or brand — and get Nutri-Score, NOVA group, Eco-Score, nutrition facts (per 100g), ingredients, allergens, labels, countries and image. Clean JSON/CSV/Excel.
Powered by Open Food Facts (an open, collaborative food database). Keyless, no anti-bot — built for diet & nutrition apps, e-commerce, health tools and CPG research.
What this Actor does
Give it barcodes, categories and/or brands, and for each product it returns:
- Identity — barcode, product name, brands, categories, quantity.
- Scores — Nutri-Score (A–E), NOVA processing group (1–4), Eco-Score (A–E).
- Nutrition per 100g — energy (kcal), fat, saturated fat, sugars, salt, proteins, fiber.
- Composition — ingredients text, allergens, labels (organic, vegan, gluten-free…).
- Context — countries sold in, stores, product image and the Open Food Facts page.
Why use it
- Barcode → full nutrition. Turn a list of barcodes into a complete nutrition + labels dataset.
- Health & diet ready. Nutri-Score, NOVA, sugars, salt and allergens — exactly what diet, nutrition and health apps need.
- Category & brand sweeps. Pull every product in a category or for a brand for market/CPG research.
- Keyless and open. No API key, no anti-bot — the open Open Food Facts database.
- Images included. Product image URLs for every item that has one.
Who it's for
- Diet, nutrition & health app developers needing structured food data.
- E-commerce & grocery teams enriching product catalogs by barcode.
- CPG & market researchers analyzing categories and brands.
- Data & AI builders powering food/nutrition assistants.
Quick start
Run it in the console (no code)
-
Fill any of the fields:
Barcodes: 3017620422003Brands: lindt, coca-colaCategories: breakfast-cereals, sodas -
Click Start, then export as JSON, CSV, Excel or HTML.
Leave everything empty for a demo (Nutella barcode).
Run it via API (Python)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input = {"barcodes": ["3017620422003"],"brands": ["lindt"],"categories": ["chocolates"],}run = client.actor("YOUR_USERNAME/openfoodfacts-scraper").call(run_input=run_input)for p in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{p['productName']} — Nutri {p['nutriscoreGrade'].upper()} — {p['energyKcal']} kcal — sugars {p['sugars']}")
Run it via API (JavaScript)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('YOUR_USERNAME/openfoodfacts-scraper').call({barcodes: ['3017620422003'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((p) => console.log(`${p.productName}: ${p.nutriscoreGrade} / NOVA ${p.novaGroup}`));
Input
| Field | Type | Description |
|---|---|---|
| Barcodes | array | Product barcodes (EAN/UPC), one per line. Empty-all = demo. |
| Categories | array | English category tags — chocolates, sodas, yogurts, breakfast-cereals. |
| Brands | array | Brand tags — lindt, coca-cola, nestle. |
| Max products per query | integer | Cap per category/brand (paginates by 100). Default 100. |
| Speed (parallel queries) | integer | Queries at once. Default 5. |
| Proxy configuration | object | Apify Proxy. On by default. |
Note on search: Open Food Facts' free-text search is unreliable, so this Actor works by barcode and by category/brand tags (which are robust). For specific products, barcodes are the most precise input.
Output
One record per product:
{"source": "3017620422003","sourceType": "barcode","barcode": "3017620422003","productName": "Nutella","brands": "Nutella, Ferrero","categories": "Breakfast, Spreads, Hazelnut spreads, ...","quantity": "400 g","nutriscoreGrade": "e","novaGroup": "4","ecoscoreGrade": "unknown","energyKcal": "539","fat": "30.9","saturatedFat": "10.6","sugars": "56.3","salt": "0.107","proteins": "6.3","fiber": "","ingredientsText": "Sugar, palm oil, hazelnuts 13%, ...","allergens": "milk, nuts, soybeans","labels": "","countries": "France, ...","imageUrl": "https://images.openfoodfacts.org/...","url": "https://world.openfoodfacts.org/product/3017620422003","scrapedAt": "2026-10-10T12:00:00.000Z"}
| Field | Description |
|---|---|
barcode / productName / brands / categories / quantity | Identity. |
nutriscoreGrade | Nutri-Score A–E. |
novaGroup | NOVA processing group 1–4 (4 = ultra-processed). |
ecoscoreGrade | Eco-Score A–E (when available). |
energyKcal / fat / saturatedFat / sugars / salt / proteins / fiber | Nutrition per 100g. |
ingredientsText / allergens / labels | Composition, allergens, labels. |
countries / stores / imageUrl / url | Context, image and link. |
scrapedAt | ISO timestamp. |
Tips & notes
- Barcodes are most precise. For specific products, use barcodes; category/brand are best for sweeps.
- Category tags are English slugs. e.g.
breakfast-cereals,carbonated-drinks,plant-based-foods. - Data completeness varies. Open Food Facts is crowd-sourced — popular products are rich; some have gaps (that's the underlying data, passed through as-is).
- Per-100g nutrition. Values are normalized to 100g/100ml for easy comparison.
- Dedupe. The same product can appear via multiple queries — dedupe on
barcodeif needed.
Frequently asked questions
Do I need an API key? No — Open Food Facts is a free, open database.
Can I look up specific products? Yes — paste barcodes (EAN/UPC) for precise lookups with full detail.
Can I pull a whole category or brand? Yes — add category or brand tags; the Actor paginates through the matches.
Does it include Nutri-Score and allergens? Yes — Nutri-Score, NOVA, Eco-Score, allergens, labels and per-100g nutrition.
Is free-text search supported? Open Food Facts' free-text search is unreliable, so this Actor uses barcodes and category/brand tags, which are robust.
Export & integrate
Results are available as JSON, CSV, Excel, HTML and via the Apify API. Push to Google Sheets, a webhook, Make, Zapier or your database.
Data from Open Food Facts, a collaborative, free and open database.