Méthodologie
Comment ce site est construit et d'où proviennent les données.
Where the data comes from
Every ingredient page on this site is generated from the European Commission's CosIng database — the official inventory of cosmetic substances regulated under EU Cosmetics Regulation (EC) No 1223/2009. CosIng is published as open data by the Commission's DG GROW. We import the full inventory, then re-derive each ingredient's regulatory status (banned, restricted, allowed colorant, allowed preservative, allowed UV filter, or unrestricted) from the Annex II–VI tables in the regulation itself.
The ingredient inventory itself comes from a CosIng export dated December 2020. Because the EU amends the Annexes regularly, we maintain a separate, documented layer of post-2020 regulatory changes: when a Commission Regulation bans, restricts, or re-classifies a substance, we update that ingredient's status and cite the amending Regulation directly on the page — for example, retinol's restriction under Regulation (EU) 2024/996, or the prohibition of Butylphenyl Methylpropional (Lilial) under Regulation (EU) 2021/1902. This layer currently covers the major consumer-relevant changes since 2020. It is reviewed periodically and is not a substitute for checking the Official Journal of the European Union for the latest legal position.
Where the chemistry comes from
For each ingredient where a single small-molecule structure exists, we fetch the canonical SMILES, molecular formula, and 2-D structure from PubChem via the NCI / NIH public API, matched by CAS number. Mixtures, polymers, and plant extracts (the majority of cosmetic ingredients) do not have a single chemical structure and are presented without one. Plain-language summaries of what each ingredient does in a formulation are written from primary chemistry sources and reviewed for accuracy.
How the site is built
This is a static site. Every page — all ~547,000 of them, across 19 EU languages — is pre-rendered as plain HTML at build time using Python and Jinja2. There is no database, no JavaScript framework, no tracking, no server-side rendering. Pages load fast because there is nothing to load except HTML and CSS.
Translations
The site ships in 19 official EU languages. Major languages (German, French, Spanish, Italian, Portuguese, Dutch, Polish) were reviewed by native or near-native speakers. Other EU languages are translated machine-assisted with structural review; we mark these clearly and welcome corrections. Ingredient names (INCI nomenclature) are intentionally not translated — INCI names are the legally standardised identifiers and must remain identical across languages.
Update cadence
The ingredient inventory is based on a CosIng export from December 2020. Regulatory status is kept current through a tracked, documented layer of post-2020 Annex amendments, each citing its Commission Regulation. We rebuild the site whenever that data changes. The "last updated" date on an ingredient page reflects the most recent regulatory change we recorded for that substance. For compliance decisions, always confirm the current position against the Official Journal of the European Union.
What we do not do
- We do not test products.
- We do not rate brands.
- We do not give medical, allergy, or compliance advice.
- We do not collect personal data — see Privacy.