Datadory notebook

Beauty Product Barcode Database: GTIN Data, Delivered

Datadory delivers personal-care data keyed on the barcode itself: 73,522 beauty products resolved from a scanned GTIN into brand, category, packaging, INCI ingredients and scanner demand, joined to regulatory inventories and shelf observation. Delivered daily, weekly, or hourly - your call.

1,744 datasets. Pick your catch.

What is a beauty product barcode database?

The query names a specific kind of machinery: a store where the printed code on the pack - the EAN/GTIN a camera snaps mid-aisle - resolves into a brand, a category and an ingredient list without anyone typing. In the personal-care slice of the Datadory catalog, exactly one dataset is built that way. Open Beauty Facts held 73,522 beauty products at the August 2026 verification pass, one row per product barcode, and it carries the top quality score in the slice: 10 out of 10 on the catalog rubric against a 7.81 mean across 1,744 cataloged datasets - one of just 145 records anywhere in the catalog to reach the maximum.

Everything else in the industry orbits the barcode rather than sitting behind it. Retailers key their shelves on their own identifiers, ingredient encyclopedias key on slugs, regulators key on substance names. That asymmetry is why this record works as the spine of any scan-driven pipeline: resolve the scan here first, then attach the joins. Datadory delivers the spine and the joins together, cut to the categories, brands and geographies you name.

What fields does barcode-keyed beauty data include?

The modeling extract verifies at 73,421 rows x 111 columns, and the fields worth knowing cluster into five jobs.

Identity. code, the EAN/GTIN itself, one value per row - the entire reason the dataset exists; product_name; brands plus the brand owner where recorded.

Taxonomy. categories_tags placing each product in a tree (en:hair-masks), countries_tags recording where it sells (en:france leads the observed values, which tells you the geographic story before any chart does), and packaging descriptors.

Formulation. ingredients_text, the complete INCI declaration - the single column that connects every scan to the regulatory and tolerability joins below.

Demand. unique_scans_n, the count of times that code was scanned in scanner apps - a popularity signal no storefront publishes and no survey panel can buy.

Quality. a 0-1 completeness score, states_tags marking editorial stage, and data_quality_errors_tags flagging known problems. Two conventions matter before you filter: products contributed without a printed code carry placeholders under the reserved 200 prefix (codes a scanner will never emit), and stub rows flagged ingredients-to-be-completed are common enough that the quality columns belong in every query rather than in downstream cleanup.

What do delivered barcode-keyed rows look like?

Three rows as they land in a delivery, flat and barcode-first:

# one row per scanned code, exactly as a delivery resolves it

code        : 0850018802796
brand       : Olaplex
ingredients : Water (Aqua/Eau), Cetearyl Alcohol, Dimethicone...

code        : 3600542613316
name        : Garnier Fructis Masque Nutrition Boucles Hair Food
categories  : en:hair-masks

name        : Sinful colors Gorgeous 804
brand       : Mirage Cosmetics
categories  : en:makeup

Read them honestly. First, the barcode is the primary key everywhere - the join key that survives renames, reformulations and re-shelving, which is why deliveries pin it rather than a display name. Second, the crowd's center of gravity is European drugstore and grocery, not the US prestige wall, so a French-language hair mask and a mass-market polish sit closer to the median than an American assortment would suggest. Third, quality varies row by row: a Kiehls entry in the same extract carries a completeness score of just 0.267, which is why the quality columns ship alongside everything else and why extracts arrive pre-filtered to the thresholds you set.

How far does coverage reach - and where are the gaps?

Scale: 73,522 beauty products worldwide at the August 2026 verification, mirrored as a typed 73,421-row x 111-column matrix for modeling work. The small difference between the two figures is two moments of the same production pass, not competing databases - we report both because someone will eventually notice.

Geography: contributions skew toward France and Europe, and the wider catalog publishes no country breakdown on its browse surfaces. Treat the corpus as globally broad and geographically lopsided at the same time.

Granularity: one row per product barcode at SKU level, with variants carried on the record rather than exploded into phantom rows.

What can you join onto a barcode hit?

A scan resolves into an ingredient string. Joined out, it becomes an analysis.

The joins themselves happen upstream of you: INCI spellings normalize onto one key before the merge, and every delivered table documents its grain.

Who builds on beauty barcode data?

  • App builders turn a camera snap into brand, category and ingredient panel - the lookup layer underneath any scan-first beauty app, delivered as typed rows rather than engineered.
  • E-commerce operators borrow the barcode-to-INCI structure to fix cold-start recommendations and enrich thin catalog entries with formulation context.
  • Formulation and product-development teams read real declarations across thousands of live products and screen them against regulatory annexes before committing a reformulation direction.
  • Competitive-intelligence teams track brand mix and category presence across a global corpus instead of resampling two national shelves.
  • Data scientists train on a schema that holds between refreshes, with scan counts and review corpora as ready-made targets.
  • Market researchers and consultants cite concrete assortment facts - SKU counts, category trees, country spread - when sizing beauty segments for clients.

Workflow detail lives on the persona pages: e-commerce operators, market researchers, data scientists and competitive intel product teams.

How is beauty product barcode data delivered?

Start with a sample: name the categories, brands, price bands or geographies you care about and the extract arrives cut to them - real barcode-keyed rows in the shapes shown above, before any commitment.

Field dictionary - one barcode-keyed beauty record (Datadory catalog, August 2026)
fieldtypedefinitionexample
codestringThe EAN/GTIN printed on the pack; the primary key of every row and the join key that survives renames, reformulations and re-shelving.0850018802796
product_namestringProduct display name as contributed and curated on the row.Garnier Fructis Masque Nutrition Boucles Hair Food
brandsstringBrand behind the product, with brand owner recorded where known.Mirage Cosmetics
categories_tagsarrayCategory-tree placement as tagged values - the taxonomy behind category cuts and competitive mix reads.en:hair-masks
ingredients_texttextFull INCI ingredient declaration - the join key to CosIng, INCIDecoder and every formulation-analysis record in this industry.Water (Aqua/Eau), Cetearyl Alcohol, Dimethicone...
countries_tagsarrayCountries where the product is recorded as sold; the column that exposes the corpus's geographic lean before any chart does.en:france
unique_scans_nintegerCount of times the code was scanned in scanner apps - a row-level demand signal no storefront publishes.row-level scan count
completenessnumber0-1 curation-completeness score; deliveries pre-filter on thresholds you set so stubs never reach production.0.267
data_quality_errors_tagsarrayFlags for known problems on the row - the reason quality filtering belongs in the query, not in cleanup.ingredients-to-be-completed
Beauty product datasets compared (Datadory catalog, August 2026)
RecordGrainScaleDistinct edge
Open Beauty Facts - Global Cosmetics Product DatabaseOne row per product barcode73,522 products worldwideGTIN-keyed spine: scan resolution plus scanner demand counts on the row itself
Hugging Face Datasets - Cosmetics & Beauty CollectionsOne row per product; one per review73,421 rows x 111 columns; ~700,000 reviewsTyped modeling matrix beside a large beauty-review corpus
Sephora - Structured Product CatalogOne record per product/SKU, shade variants nested9,339 US product pages (verified August 2026)Premium price ladder plus the INCI declaration on every row - no GTIN field
Ulta Beauty - Structured Product CatalogOne record per product/SKU, variant counts at product level25,000+ products across 600+ brands (retailer claim, directional)Struck-through list prices and exclusivity badges - no GTIN field
INCIDecoder / INKEEDecoder - Ingredient Encyclopedia and Product INCI DatabaseOne page per product slug~183,000 product pages; 1,021 ingredient pagesIrritancy and comedogenicity ratings beside the decoded INCI breakdown

Pick up where this leaves off

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

Personal Care Products Global - products browsable by country facet, contributed…

Open Beauty Facts — Global Cosmetics Product Database (Exports + Live API)

30 documented fields per record · OCR-derived extras · _tags …+27 more

Personal Care Products Global volunteer-contributed products

Hugging Face Datasets — Cosmetics & Beauty Collections

Personal Care Products European Union under Regulation (EC) No 1223/2009

EU CosIng — European Commission Cosmetic Ingredients Database

12 core fields per record · SCCS opinions · OJ publication flags …+9 more

Personal Care Products Global consumer products

COSDNA — Cosmetics Ingredient Analysis Database

Personal Care Products Global consumer cosmetics

INCIDecoder / INKEEDecoder — Ingredient Encyclopedia and Product INCI Database

7 core verified fields · product metadata · ingredient_name …+6 more

Personal Care Products United States storefront

Sephora — Structured Product Catalog (Scrapeable)

10 core fields per record · how-to-use copy …+7 more

Want rows instead of a pitch? Name the datasets.

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

Get a sample

Questions worth asking

What is a beauty product barcode database?

A store of records keyed on the EAN/GTIN printed on the pack, so a scan resolves into brand, category, packaging and the INCI ingredient declaration. Open Beauty Facts is the canonical example: 73,522 beauty products, one row per barcode, scored 10/10 on the catalog rubric and delivered cut to your categories and geographies.

How many beauty products have barcode-keyed records?

73,522 in the crowd-built corpus at the August 2026 verification, mirrored as a typed 73,421-row x 111-column matrix for modeling work. Coverage runs worldwide with a European center of gravity - France leads the observed country tags - while US prestige shelves stay keyed to retailer-owned identifiers.

Do Sephora or Ulta publish barcode-level product data?

No. Sephora identifies its 9,339 US SKUs by canonical path and a trailing P-number such as P509526, and Ulta's nine-field record for its claimed 25,000+ products runs from price and rating to variant_counts and badges - neither catalog exposes a GTIN. Joining either shelf to barcode-keyed rows happens through brand-and-name matching, shipped as a confidence-flagged crosswalk.

Can barcode data be joined to prices, ratings and reviews?

Yes, at two levels. Ingredient strings join to EU CosIng's roughly 24,526 substance records and to INCIDecoder and COSDNA tolerability scores; shelf attributes and the roughly 700,000 Amazon beauty reviews join through normalized brand and name, since ASINs and retailer P-numbers are not GTINs. Both crosswalks arrive resolved and documented rather than left as homework.

Why get barcode data through Datadory instead of assembling it yourself?

Because the work surrounds the fetch: crowd rows need quality gates, retail shelves need matching, and INCI spellings need normalizing before anything joins. Deliveries arrive typed, keyed on the barcode, pre-filtered to your thresholds, with the field dictionary and sample rows attached for validation.