Method

Food Additive Index exists to answer one question well: where is a food additive legal, and where is it not. Everything else on a page supports that answer or cites it.

What we do not do

We do not rate additives. There is no score, no traffic light, no “safe” or “avoid”. Sites that lead with a rating are answering a different question, and a rating would misrepresent the underlying data, which is regulatory rather than evaluative.

We do not give health or dietary advice, and we do not resolve scientific disagreement. Where two bodies read the same evidence differently, both readings appear with their attribution and the site draws no conclusion of its own.

“Not listed” is not “prohibited”

This is the distinction the whole project turns on, and the one most often got wrong. A substance that is prohibited has been explicitly forbidden by a named instrument — 21 CFR 189, say. A substance that is not listed simply does not appear on that jurisdiction's permitted list. That is a statement about the list, not a finding against the substance.

The two are separate values in our database, they are rendered differently, and the constraint is enforced at the database level so that no ingest job can quietly collapse one into the other. Every jurisdiction appears on every additive page, including those with no entry at all, because omitting them would invite exactly the wrong inference.

Where the data comes from

We read regulators directly rather than secondary compilations. Status comes from each jurisdiction's own instrument; hazard reference values from EFSA's OpenFoodTox and WHO's database of JECFA evaluations; chemical identity from PubChem. The sources, with their licences and retrieval dates, are:

That covers 8 jurisdictions: Australia and New Zealand, Canada, European Union, Great Britain, Japan, South Korea, United States and Codex Alimentarius. Every fact row in the database carries a foreign key to the source it came from, with a resolvable URL and the date we retrieved it. If a fact cannot be cited, it does not ship. There are currently 65,499 regulatory provisions across 1189additives on this basis, last retrieved 2026-10-18.

Great Britain is not the United Kingdom here. Northern Ireland still applies the EU's additive rules under the Windsor Framework, so its status is the EU row. The Australia and New Zealand row is one jurisdiction because the Food Standards Code is one instrument in both countries, with the exceptions noted where they apply.

How the data is built

Each source is ingested by a separate job that archives the raw payload before parsing it, so a parse can be corrected without re-fetching a source that has since changed. Each job is idempotent: run twice against unchanged input, the second run changes nothing. Each run reports what it added, what it changed, what it dropped and why, and which near-matches it refused to merge automatically.

Deciding when a record from one source is the same substance as a record from another is the hardest part. We merge only on exact identifiers — CAS number, then E or INS number, then an exact normalised name. Anything less certain goes to a review queue for a person to decide. A wrongly merged additive would publish one substance's legal status under another's name, which is the worst failure this site could have.

The cost of that caution is duplicates: “BHT” in one part of the US code and “Butylated hydroxytoluene” in another arrive as two pages. A person decides when two pages are one substance, records the decision and its reason, and the pages are merged; the old address redirects to the page that remains. The same care applies to identifiers taken from enrichment sources. Where PubChem’s name search or EFSA’s export attached another substance’s identity to a page — its CAS number, its reference values — the match is excluded by hand and the values it brought are withdrawn.

What is written rather than imported

Functions, comparisons and changes

How much, and what the label must say

Known gaps

Corrections

Every page names its sources and the date. If a page disagrees with the regulation it cites, the regulation is right and we are wrong — check the retrieval date first, since regulations change and ours may be stale.

2 October 2026. The “Detected in the weekly refresh” section ofChanges, and the same entries on additive pages and in the Atom feed, held fifteen differences dated 24 September, including Canada apparently dropping glycerin, tocopherols and trisodium phosphate. None of them was a change in any regulation. They were this site's own work on identifying substances, read by the comparison as though a regulator had acted: the Japanese, Australian and New Zealand and EU source documents were identical from one run to the next, every Great Britain provision cited an Annex II fixed at 28 June 2024, and the Canadian provisions came back, in the same numbers, when a matching fault was fixed on 29 September. All fifteen were removed. The comparison now reports only what a source changed.

What is proposed

Decisions that have been asked for but not made are collected on Proposed: applications on the British register, draft regulations in the Commission's comitology register, petitions the FDA has under review, applications before Food Standards Australia New Zealand. An application is not an authorisation and a proposal is not a prohibition; no outcome is predicted, and each entry links the register it came from so the current position can be checked there.

Reading a label

The label lookup takes a pasted ingredients list, or a photograph of one. Both are handled entirely in the reader's browser: the text recognition engine, its WebAssembly core and its English language data are served from this site and run on the reader's own device, so neither the picture nor the text it produces is uploaded, and no third party is sent any part of it. Recognition is imperfect, so the text it produces is put in the box for the reader to check rather than used silently.

Labels in the other official languages of the European Union are matched as well, from the names the Official Journal prints in each language — acide citrique,Citronensäure, κιτρικό οξύ. Those names are fetched only when something in a pasted list is not recognised, so the page stays small for a reader who does not need them.

What this site measures

Every page loads Google Analytics, which records that the page was viewed and roughly where from; it sets its cookies only if you choose “Accept all” in the box that asks on your first visit. It is there to answer one question — which of these pages anyone actually reads — and the answer decides what gets written next.

It does not see what you type. The label lookup matches a pasted ingredients list, or a photograph of one, entirely in your own browser, and neither the text nor the picture is sent to this site or to anyone else; that is a property of how the page is built, described above, and analytics does not change it. Google does see the address of the page you are on, which on this site is the name of an additive. Privacy sets out the whole of it, including the two other requests a page makes and how to block any of them.

Reuse

There is a stable JSON document for every additive under /api/v1/, described by a JSON Schema those documents point at, andbulk CSV files holding everything this site is licensed to redistribute. Both are given on request: ask for a key, say what the data is for, and a person decides. A dataset description is at /llms.txt. What the bulk files leave out, they leave out for licensing reasons that are stated on thedata page rather than silently. Please carry through the retrieval date when you quote a status: a regulatory status without a date is not a fact. Source licences differ and are listed on Sources — some of the underlying data is not ours to sublicense.