482 scrapers live47.7K runs1,562 usersRebuilt in the last 30 days: 482 of 482

Scrapers / E-commerce

Open Food Facts Product Scraper logo

Open Food Facts Product Scraper

hipersoft/openfoodfacts-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.

Total users

1

Monthly users

1

Total runs

124

Per product scraped

$0.016

Last rebuilt

Oct 26, 2026

Overview

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.

Open Food Facts Scraper input โ€” search terms, barcodes and country database in the Apify Console

Features

  • ๐Ÿ”Ž Search or barcode โ€” pass searchTerms like oat milk, or exact barcodes (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 additives list (E-numbers without the en: prefix).
  • ๐ŸŒ Country database selection โ€” query the global world DB or a country code like us, uk, fr, de via country.
  • ๐Ÿท๏ธ Always-usable names โ€” a displayName is 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

Open Food Facts Scraper output example โ€” one product per row with name, brand, Nutri-Score and per-100g nutrition as structured JSON

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.

More open-data scrapers from the same publisher:

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.

Input

FieldTypeDescription
searchTerms required
Search terms
arrayKeywords to search products by (name, brand, ingredient), e.g. "oat milk", "dark chocolate".
barcodes
Barcodes (EAN/UPC)
arrayOptional. Look up these product barcodes directly (search terms are ignored when set).
country
Country database
stringWhich Open Food Facts database to query: 'world' (global) or a country code like us, uk, fr, de. Affects which products/language surface first.
Default: "world"
maxResultsPerSearch
Max results per search term
integerMaximum products to collect per search term.
Default: 50

API

curl -X POST "https://api.apify.com/v2/acts/hipersoft~openfoodfacts-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "searchTerms": [
    "oat milk"
  ],
  "barcodes": []
}'

Pricing

EventPricePaid plans from
Product scraped
One food product with full metadata + per-100g nutrition
$0.016$0.008

You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.

Related scrapers

Carousell Scraper

Scrape Carousell search listings: title, price, condition, location, seller, photo and URL. Requires your own Carousell app token.

242 runs ยท 2 users ยท $0.003 / listing scraped

Google Flights Scraper

Scrape flight options from Google Flights by route and date: airline, flight number, departure and arrival times, duration, stops, layovers and price. One-way or round-trip, any cabin and currency. For travel and price monitoring.

216 runs ยท 4 users ยท $0.004 / flight scraped

Pinterest Scraper

Search Pinterest and scrape pins (title, description, destination link, image, pinner, board, saves), boards and users. Fast. For visual research, e-commerce, trend and marketing analysis.

151 runs ยท 2 users ยท $0.0034 / item scraped

Google Trends Scraper

Scrape Google Trends for any keyword: interest over time, related and rising queries, and interest by region. Per country and timeframe. For SEO, market and trend research. No setup.

139 runs ยท 6 users ยท $0.001 / keyword scraped

AliExpress Product Search Scraper

Search AliExpress by keyword and export one clean row per product โ€” title, sale price, original price, image and product URL. Export to JSON, CSV or Excel.

135 runs ยท 3 users ยท $0.003 / product scraped

Google Maps Scraper

Search Google Maps and scrape places: name, category, full address, city, coordinates, rating, phone, website, Place ID and map link. Fast browser-free via Google's internal endpoint, no setup. For local lead generation and market research.

130 runs ยท 2 users ยท $0.005 / place scraped
Need a source that isn't here?

Send the site and the fields. We build it and you get it first.

Request a build