Datadory notebook

Open Food Facts Dataset Kaggle Data: Dataset Structure and Field Coverage

Datadory delivers open food facts dataset kaggle data covering comprehensive field definitions, entity mappings, and historical time series — structured for direct analytics and delivered on demand.

1,744 datasets. Pick your catch.

What is the Open Food Facts dataset on Kaggle?

Coverage is global but lopsided. The 2017 snapshot draws on contributing countries with weight toward France and other European markets, which matters when you expect US shelf representation: European barcodes dominate the code column.

Quality scoring reflects the same trade-off. The mirror scores 6 in Datadory's catalog - below the 9 posted by Eurostat and FAOSTAT in the same slice - penalised mainly for staleness rather than structure. For an ML corpus that penalty barely applies: a frozen table is a feature, not a defect.

What fields does the Kaggle World Food Facts dataset include?

The extract carries 150+ columns; Datadory's catalog documents 21 core field groups. The code column - an EAN-13 or UPC barcode such as 3017620422003 - is the primary key, joined by product_name, generic_name, brands and brands_tags, printed quantity, and three category variants (categories, categories_tags, categories_en).

Label and provenance columns support filtering work: labels and labels_tags hold certifications and claims such as Organic or Gluten-Free, while origins, manufacturing_places and countries record ingredient origin, factory location and sale markets. ingredients_text preserves the on-pack declaration verbatim, allergens and traces carry cross-contamination warnings, and additives_n with additives_tags counts and tags food additives.

The nutrition block is normalised per 100 g or 100 ml: energy_100g in kilojoules alongside energy-kcal_100g, fat and saturated-fat, sugars and carbohydrates, proteins, and salt with its sodium equivalent. Derived fields include nutrition_grade_fr, the Nutri-Score letter grade from a to e, and the two-level PNNS food-group classification pnns_groups_1 and pnns_groups_2. created_datetime and last_modified_datetime timestamp each row. Open Food Facts' own data-fields reference at world.openfoodfacts.org/data/data-fields.txt documents every column of the parent exports.

For feature engineering, three of these groups do most of the work: the barcode key for joins, the categories and labels tags for supervised grouping, and the per-100g nutrition block plus nutrition_grade_fr as regression targets or a five-class ordinal label from a to e, with PNNS group as an auxiliary input.

Sparse columns are part of the schema's reality. Because contributors fill what they can see on the pack, coverage concentrates on name, brand and barcode, thins out across origins and additives, and is fullest in the nutrition block for exactly the 67,000 records flagged complete.

Can you use the Open Food Facts Kaggle dataset commercially?

Two obligations follow from commercial delivery terms. Attribution must credit Open Food Facts, and share-alike applies to derived databases - if your product ships a database substantially derived from these rows, you must offer that derivative under equivalent terms. Applications that merely query or display the data face lighter duties than ones that redistribute an enriched copy.

One misrepresentation trap is worth naming: because the mirror stopped at the September 2017 snapshot, republishing it as current Open Food Facts data misstates the source. Date-stamp any derivative, and check the share-alike implications before you enrich the table with proprietary columns that could force the whole derivative database open.

Is the 2017 snapshot still good enough for machine learning?

It depends on whether you need freshness or stability. As a fixed benchmark it is genuinely useful: version 5 never moves, so two papers training on the same 356,000-row corpus are comparing like with like. As a stand-in for today's product landscape it is nine years stale, and the parent database has since grown to roughly 4.7 million products.

Three fresher routes exist in the same catalogue family. Open Food Facts publishes daily exports including a MongoDB dump, an NDJSON export queryable with DuckDB, and tab-separated CSV around 0.9 GB compressed or 9 GB uncompressed across 211 columns, plus 14-day delta exports. Its API v2 returns product JSON for known barcodes - the review session pulled barcode 5449000000996 successfully. And the Open Food Facts Product Database Hugging Face mirror packages 4,758,598 rows into food.parquet at 7.79 GB with 111 columns, refreshed regularly with the repository last modified 2026-08-20.

Pick up where this leaves off

Every one of these ships with sample rows before you commit to anything.

Other Specialty Retail Global products from contributing countries, weighted toward…

Kaggle - World Food Facts (Open Food Facts Mirror)

Other Specialty Retail United States and Canada primary depth (>92% stated UPC match)

Nutritionix Natural Language & Grocery API

16 documented spine fields · with fuller nutrient vectors …+13 more

Other Specialty Retail Global product coverage with US-centric depth on grocery…

Edamam Food Database API

Other Specialty Retail United States, with affected states noted in per-record…

FDA Recalls, Market Withdrawals & Safety Alerts - Searchable Listings

Want rows instead of a pitch? Name the datasets.

API, files, or your warehouse. Daily, weekly, or hourly.

Get a sample

Questions worth asking

How many products are in the Kaggle World Food Facts dataset?

Approximately 356,000 packaged-food products, one row per barcode, in 1,010,256,825 bytes of CSV and SQLite files with 150+ columns. Only 67,000 records are flagged complete in the version note, so subset to fully populated rows before training nutrition models.

What is the most current alternative to the Kaggle Open Food Facts mirror?

Open Food Facts itself: about 4.7 million products with daily exports, a MongoDB dump, DuckDB-queryable NDJSON, ~0.9 GB compressed CSV and 14-day delta exports, plus an API v2 for single barcode lookups. The Hugging Face Parquet mirror holds 4,758,598 rows refreshed as recently as 2026-08-20.