Open Food Facts Scraper
Pricing
from $7.00 / 1,000 results
Open Food Facts Scraper
[π° $7 / 1K] Extract food product data from Open Food Facts β nutrition, ingredients, allergens, Nutri-Score, Eco-Score, and images. Search by keyword, filter by category, brand, country, label, or grade, or look up products by barcode.
Pricing
from $7.00 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Pull structured food-product data from Open Food Facts at scale β nutrition facts, ingredients, allergens, Nutri-Score, Eco-Score, NOVA processing group, dietary flags, and product images for millions of packaged foods worldwide. Search by keyword, narrow by category, brand, country, label, or Nutri-Score, or look up exact products by barcode. Built for nutrition-app builders, dietitians, and CPG market researchers who need a clean, structured product-and-nutrition dataset without building and maintaining their own scraper.
Why This Scraper?
- Over 3 million food products β the world's largest open food database, searchable by keyword across product names and brands, with server-side pagination up to any volume you set.
- Complete Nutri-Score, Eco-Score, and NOVA classification β every row carries the AβE Nutri-Score nutritional grade, the AβE Eco-Score environmental grade, and the 1β4 NOVA food-processing group.
- Full nutriments object β per-100g and per-serving energy, fat, saturated fat, sugars, salt, proteins, fiber, and more, exactly as Open Food Facts records them.
- Allergen tags and complete ingredient lists β detected allergens as a clean array plus the full ingredients text for every product.
- Three diet-analysis flags β vegan, vegetarian, and palm-oil status returned as yes / no / maybe / unknown, derived from ingredient analysis.
- Eight certified-label filters β narrow to Organic, Vegan, Vegetarian, Gluten-free, Fair-Trade, No palm oil, Kosher, or Halal, applied by Open Food Facts directly so you never pay for non-matching rows.
- Direct barcode lookup β paste product URLs or bare barcodes (e.g.
3017620422003) and get exact-match records back, fetched in parallel. - Three product images per record β front, nutrition-facts panel, and ingredients-panel image URLs.
- Six sort orders β popularity, product name, newest, recently edited, best Nutri-Score, or best Eco-Score.
Use Cases
Nutrition & Diet Apps
- Power calorie- and macro-tracking apps with per-100g nutriments
- Build allergen-aware meal planners using the allergens array
- Filter to vegan, vegetarian, or gluten-free products for diet-specific catalogs
- Surface Nutri-Score grades to help users compare healthier options
CPG & Market Research
- Benchmark a brand's portfolio Nutri-Score against competitors
- Map product assortments by category and country
- Track NOVA processing levels across a product segment
- Analyze packaging and quantity formats within a category
Retail & E-commerce
- Enrich product catalogs with nutrition facts, ingredients, and images
- Fill missing barcodes with canonical product data
- Add Eco-Score and label badges to storefront listings
- Standardize product names and brand fields across suppliers
Health & Research
- Study nutritional trends across regions and categories
- Build datasets for public-health nutrition studies
- Compare ingredient and additive prevalence across brands
- Track reformulation over time using added and last-edited dates
Compliance & Labeling
- Verify allergen declarations against ingredient lists
- Audit label claims such as Organic, Fair-Trade, and No palm oil
- Check palm-oil presence across a supply chain
- Cross-reference country availability for market-specific labeling
Getting Started
Simple keyword search
{"searchQuery": "chocolate","maxResults": 100}
Filtered search
Narrow a category to a single Nutri-Score and certified label:
{"searchQuery": "breakfast cereals","category": "Breakfast cereals","nutritionGrade": "a","label": "organic","sortBy": "best_nutriscore","maxResults": 200}
Barcode lookup
Fetch exact products by URL or bare barcode:
{"productUrls": ["https://world.openfoodfacts.org/product/3017620422003","5449000000996"]}
Input Reference
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | "chocolate" | Word or phrase to search across product names and brands. Leave blank to browse by the filters below instead. |
productUrls | array | [] | Open Food Facts product page URLs or bare barcodes (e.g. 3017620422003). When set, these products are fetched directly and the search term and filters are ignored. |
Filters
| Parameter | Type | Default | Description |
|---|---|---|---|
category | string | "" | Only include products in this category (e.g. "Breakfast cereals", "Sodas", "Snacks"). Leave blank for any category. |
brand | string | "" | Only include products from this brand (e.g. "NestlΓ©", "Coca-Cola", "Alpro"). Leave blank for any brand. |
country | string | "" | Only include products sold in this country (e.g. "France", "United States", "Germany"). Leave blank for any country. |
label | select | (any) | Only include products carrying this label: Organic, Vegan, Vegetarian, Gluten-free, Fair-Trade, No palm oil, Kosher, or Halal. |
nutritionGrade | select | (any) | Only include products with this Nutri-Score grade: A (healthiest) through E (least healthy). |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
sortBy | select | Popularity (most scanned) | Result order: Popularity, Product name (AβZ), Newest first, Recently edited, Best Nutri-Score first, or Best Eco-Score first. |
maxResults | integer | 100 | Hard cap on the total number of products to collect. Increase for bigger runs, or set to 0 for no cap. Ignored when specific product URLs or barcodes are provided. |
Output
Each product is one flat row. Here's a representative result:
{"barcode": "3017620422003","productName": "Nutella","brands": "Ferrero","categories": "Spreads, Sweet spreads, Hazelnut spreads, Chocolate spreads","quantity": "400 g","packaging": "Glass jar, Plastic lid","countries": "France, Germany, United States","labels": "No gluten, Palm oil","ingredientsText": "Sugar, palm oil, hazelnuts 13%, skimmed milk powder 8.7%, fat-reduced cocoa 7.4%...","allergens": ["milk", "nuts", "soybeans"],"nutritionGrade": "e","novaGroup": 4,"ecoScoreGrade": "d","nutriments": {"energy-kcal_100g": 539,"fat_100g": 30.9,"saturated-fat_100g": 10.6,"sugars_100g": 56.3,"salt_100g": 0.107,"proteins_100g": 6.3},"isVegan": "no","isVegetarian": "yes","containsPalmOil": "yes","imageUrl": "https://images.openfoodfacts.org/images/products/301/762/042/2003/front_en.jpg","imageNutritionUrl": "https://images.openfoodfacts.org/images/products/301/762/042/2003/nutrition_en.jpg","imageIngredientsUrl": "https://images.openfoodfacts.org/images/products/301/762/042/2003/ingredients_en.jpg","createdAt": "2015-05-16T09:20:00+00:00","lastModifiedAt": "2026-03-11T14:52:07+00:00","url": "https://world.openfoodfacts.org/product/3017620422003"}
Core Fields
| Field | Type | Description |
|---|---|---|
barcode | string | Product barcode (Open Food Facts product code) |
productName | string | Product name |
brands | string | Comma-separated brand names |
categories | string | Comma-separated product categories |
quantity | string | Net quantity (e.g. "400 g") |
packaging | string | Packaging description |
countries | string | Countries where the product is sold |
url | string | Canonical Open Food Facts product page URL |
Nutrition & Ingredients
| Field | Type | Description |
|---|---|---|
nutritionGrade | string | Nutri-Score grade, A (healthiest) to E |
novaGroup | integer | NOVA food-processing group, 1 (unprocessed) to 4 (ultra-processed) |
ecoScoreGrade | string | Eco-Score environmental grade, A to E |
nutriments | object | Per-100g and per-serving nutrient values (energy, fat, sugars, salt, proteins, and more) |
ingredientsText | string | Full ingredients list text |
allergens | array | Detected allergens (e.g. milk, nuts, gluten) |
Labels & Diet
| Field | Type | Description |
|---|---|---|
labels | string | Labels and certifications (Organic, Vegan, Fair-Trade, and more) |
isVegan | string | Vegan status: yes / no / maybe / unknown |
isVegetarian | string | Vegetarian status: yes / no / maybe / unknown |
containsPalmOil | string | Palm-oil status: yes / no / maybe / unknown |
Images & Metadata
| Field | Type | Description |
|---|---|---|
imageUrl | string | Front product image URL |
imageNutritionUrl | string | Nutrition-facts panel image URL |
imageIngredientsUrl | string | Ingredients panel image URL |
createdAt | string | ISO 8601 timestamp the product was added |
lastModifiedAt | string | ISO 8601 timestamp of the last edit |
Tips for Best Results
- Barcode lookup is exact and fastest β when you already know the products, paste URLs or bare barcodes into
productUrls; it returns exact matches and skips search entirely. - Broaden filters if a combo returns nothing β stacking category, brand, country, label, and Nutri-Score narrows results fast. If you get zero rows, drop the tightest filter or check spelling.
- Sort by "Recently edited" for the freshest data β Open Food Facts is community-maintained, so recently edited products tend to have the most complete nutrition and label fields.
- Combine a keyword with filters β
searchQueryplus a category and Nutri-Score is the sharpest way to find, for example, healthier options in a single aisle. - Use the label filter for diet catalogs β filtering to Vegan, Gluten-free, or Organic returns only matching products, so you never sift through or pay for irrelevant rows.
- Start small, then scale β run with
maxResultsat 50β100 first to confirm the fields match your needs, then raise the cap for a full pull. - Expect data gaps on niche products β community coverage is deepest on popular items; some rare products may have empty nutrition or image fields, which is a genuine gap in the source rather than a missed extraction.
Pricing
From $7 per 1,000 results β undercuts comparable food-product scrapers while returning a richer, fully structured record. No compute or time-based charges β you pay per result, plus a small fixed per-run start fee. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.84 | $0.79 | $0.75 | $0.70 |
| 1,000 | $8.40 | $7.90 | $7.45 | $7.00 |
| 10,000 | $84.00 | $79.00 | $74.50 | $70.00 |
| 100,000 | $840.00 | $790.00 | $745.00 | $700.00 |
A "result" is any product row in the output dataset. Platform fees depend on your Apify plan and are additional.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n β Workflow automation
- Google Sheets β Direct spreadsheet export
- Slack / Email β Notifications on new results
- Webhooks β Trigger custom APIs on run completion
- Apify API β Full programmatic access
Legal & Ethical Use
This actor collects data from Open Food Facts, an open and collaborative food-products database published under the Open Database License (ODbL). That open license makes the data especially friendly for reuse β but you remain responsible for complying with the ODbL's attribution and share-alike terms, along with applicable laws and Open Food Facts' terms of use. Use the data responsibly, credit Open Food Facts where required, and do not present it in a way that misrepresents product safety or nutrition.