Open Food Facts Product Scraper
Pricing
from $0.008 / product scraped
Open Food Facts Product Scraper
Search Open Food Facts or look up barcodes for food product data: name, brand, categories, Nutri-Score, NOVA, Eco-Score, ingredients, allergens, additives, labels and full per-100g nutrition (energy, fat, sugars, salt, protein, carbs, fibre). For nutrition apps, retail and CPG research. No setup.
Pricing
from $0.008 / product scraped
Rating
0.0
(0)
Developer
hiper soft
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Open Food Facts Product Scraper โ Nutrition, Nutri-Score, Ingredients & Barcodes
Search Open Food Facts or look up barcodes and get rich food product data back as clean, structured JSON: name, brand, categories, Nutri-Score, NOVA group, Eco-Score, ingredients, allergens, additives, labels and full per-100g nutrition (energy, fat, sugars, salt, protein, carbs, fibre). No account, no API key. Perfect for nutrition apps, retail and CPG research, and food data pipelines.

Features
- ๐ Search or barcode โ pass
searchTermslikeoat milk, or exactbarcodes(EAN/UPC) for direct product lookups. - ๐ฅ Full nutrition per 100g โ energy (kcal), fat, saturated fat, sugars, salt, protein, carbohydrates, fibre and sodium.
- ๐ Health & processing scores โ Nutri-Score grade, NOVA group and Eco-Score grade on every product.
- ๐งพ Ingredients & safety โ ingredients text, allergens and a cleaned
additiveslist (E-numbers without theen:prefix). - ๐ Country database selection โ query the global
worldDB or a country code likeus,uk,fr,deviacountry. - ๐ท๏ธ Always-usable names โ a
displayNameis synthesized from brand + category when a product's own name is missing. - ๐ No key needed โ uses the public Open Food Facts API with polite rate limiting built in.
What you get

One flat JSON record per product (a source field records the search term or barcode it came from):
{"source": "search:oat milk","code": "3017620422003","productName": "Oat Drink Barista","displayName": "Oat Drink Barista","brands": "Oatly","categories": "Plant-based foods, Beverages, Plant-based milk","quantity": "1 l","servingSize": "100 ml","countries": "United Kingdom, France","nutriscoreGrade": "c","novaGroup": 4,"ecoscoreGrade": "b","ingredientsText": "Oat base (water, oats 10%), rapeseed oil, ...","allergens": "en:gluten","additives": ["e340", "e450"],"labels": "Vegan, No added sugar","packaging": "Tetra Pak","stores": "Tesco","energyKcal100g": 59,"fat100g": 3.0,"saturatedFat100g": 0.3,"sugars100g": 3.3,"salt100g": 0.09,"proteins100g": 1.0,"carbohydrates100g": 6.6,"fiber100g": 0.8,"sodium100g": 0.036,"imageUrl": "https://images.openfoodfacts.org/images/products/oat.jpg","url": "https://world.openfoodfacts.org/product/3017620422003"}
Output schema
| Field | Type | Description |
|---|---|---|
source | string | The search term or barcode the record came from. |
code | string | Product barcode (EAN/UPC). |
productName | string | Product name as listed on Open Food Facts. |
displayName | string | Usable product name, synthesized from brand + category when the name is missing. |
brands | string | Brand name(s) for the product. |
categories | string | Category labels for the product. |
quantity | string | Net quantity of the product (e.g. "1 l"). |
servingSize | string | Serving size the nutrition may reference. |
countries | string | Countries where the product is sold. |
nutriscoreGrade | string | Nutri-Score health grade (aโe). |
novaGroup | integer | NOVA food-processing group (1โ4). |
ecoscoreGrade | string | Eco-Score environmental grade (aโe). |
ingredientsText | string | Full ingredients list text. |
allergens | string | Declared allergens. |
additives | array | Cleaned list of additive E-numbers. |
labels | string | Product labels and certifications (e.g. Vegan, Organic). |
packaging | string | Packaging description. |
stores | string | Stores where the product is sold. |
energyKcal100g | integer | Energy in kcal per 100g. |
fat100g | number | Fat in grams per 100g. |
saturatedFat100g | number | Saturated fat in grams per 100g. |
sugars100g | integer | Sugars in grams per 100g. |
salt100g | number | Salt in grams per 100g. |
proteins100g | number | Protein in grams per 100g. |
carbohydrates100g | number | Carbohydrates in grams per 100g. |
fiber100g | number | Fibre in grams per 100g. |
sodium100g | number | Sodium in grams per 100g. |
imageUrl | string (URL) | Link to the product image. |
url | string (URL) | Link to the product page on Open Food Facts. |
Input
{"searchTerms": ["oat milk", "dark chocolate"],"barcodes": [],"country": "world","maxResultsPerSearch": 50}
| Field | Description |
|---|---|
searchTerms | Keywords to search products by (name, brand, ingredient). |
barcodes | Optional. Look up these EAN/UPC barcodes directly (search terms are ignored when set). |
country | Which OFF database to query: world or a country code like us, uk, fr. |
maxResultsPerSearch | Maximum products to collect per search term (1โ2000). |
Use cases
- Build or enrich a nutrition app with Nutri-Score, NOVA and per-100g macros.
- Look up a batch of product barcodes for a retail or inventory catalog.
- Research ingredients, additives and allergens across a food category.
- Feed clean CPG product data into dashboards or comparison tools.
Pricing
Pay-per-event: you're billed a small amount per run and per product scraped โ you only pay for what you get. See the Pricing tab for current rates.
FAQ
Do I need an API key or account? No. The Actor uses the public Open Food Facts API with polite rate limiting built in โ no login and no key required.
How many products can I get per run?
Up to 2,000 products per search term. Pass multiple searchTerms, or look up exact barcodes (EAN/UPC) directly for pinpoint product records.
How fresh is the data? Products are pulled live from Open Food Facts at run time. Because it's a crowd-sourced database, freshness and completeness depend on community contributions for each product.
Is the data official? The data comes from Open Food Facts, a free, open, crowd-sourced food database โ not from manufacturers. This Actor is an independent tool and is not affiliated with or endorsed by Open Food Facts.
What's the output format? Flat JSON, one record per product, with name, brand, categories, Nutri-Score, NOVA group, Eco-Score, ingredients, allergens, additives and full per-100g nutrition. Export as JSON, CSV or Excel.
Can I connect this to other apps and services? The Open Food Facts Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Related Actors
More open-data scrapers from the same publisher:
- Open Library Scraper โ book metadata, authors and editions from Open Library.
- openFDA Scraper โ FDA drug, device and food recalls, labels and adverse events.
- CoinGecko Scraper โ live crypto prices, market cap, volume and ATH/ATL.
Notes
This Actor uses the public Open Food Facts API (openfoodfacts.org), a free, open, crowd-sourced food database. It is an independent tool and is not affiliated with or endorsed by Open Food Facts; all trademarks belong to their respective owners.