Methodology
For the U.S. Dietary Supplement Recall Tracker · Last data refresh 2026-08-29
Where the data comes from
Every record is an FDA enforcement report retrieved from the openFDA food enforcement API, the agency's own public interface. We do not add, edit or estimate any record. The archive is re-downloaded weekly; the date above is the last successful refresh.
How supplements are selected
FDA enforcement reports have no "dietary supplement" flag, so products are selected by
matching the product description against supplement dosage forms and terms:
dietary supplement, supplement, capsules, tablets, softgels, herbal. This is a
deliberate trade-off: it catches supplement recalls filed under generic food categories, and in
exchange it can include a small number of non-supplement products sold in the same dosage forms.
Duplicate records sharing an FDA recall number are removed.
How the reason categories are assigned
The FDA reason field is free text written by the agency, not a code. Each record is matched against the rules below in order, and the first match wins — so a recall that mentions both an undeclared steroid and a manufacturing failure is counted under the undeclared ingredient, the more specific fact.
- Undeclared drug or steroid — matched on:
undeclared\s+(steroid|drug|pharmaceutical|active)|sildenafil|tadalafil|sibutramine|phenolphthalein|fluoxetine|tianeptine|dmaa|aniracetam|spermidine|spermine|unapproved (new )?drug|unapproved ingredient|tainted|anabolic|yellow oleander|magnesium salicylate - Undeclared allergen — matched on:
undeclared\s+(milk|egg|soy|wheat|peanut|tree ?nut|almond|cashew|walnut|pecan|sesame|fish|shellfish|crustacean|gluten|sulfite)|allergen|cross[- ]contact|not labeled as containing|does not declare the source|but does not declare - Undeclared additive or ingredient — matched on:
undeclared\s+(yellow|red|blue|green|fd&c|allura|brilliant|color|colour)|yellow ?#? ?5|red no|blue no|undeclared ingredient|contains undeclared - Microbial contamination — matched on:
salmonella|listeria|e\.?\s?coli|coliform|burkholderia|staphylococ|clostridi|microbial|mold|yeast|bacteri|pathogen|under[- ]processed - Chemical or heavy metal — matched on:
\blead\b|arsenic|mercury|cadmium|melamine|ethylene oxide|pesticid|chloramphenicol|antibiotic|solvent|benzene - cGMP / manufacturing violation — matched on:
cgmp|c?gmp|consent decree|good manufacturing|significant violation|not manufactured under|out of specification|manufacturing deviation|lack of g - Potency / label claim not met — matched on:
potency|super ?potent|sub ?potent|overage|degradation|does not meet label|not meeting label|label claim|greater than the labeled|incorrect (amount|dose|dosage)|formulation - Foreign material — matched on:
foreign (material|object)|glass|metal fragment|plastic|rubber|wood - Mislabeling / wrong product — matched on:
mislabel|incorrect label|wrong (product|label)|label (error|mix)|misbrand|fail(ed|ure) to (declare|list)|label declares - Packaging / stability — matched on:
packag|seal|container|leak|stability|expir|child[- ]resistant|lipid oxidation|off odor
161 records (12%) match no rule and are counted as "Other / not specified" rather than being forced into a category. The FDA's original wording is included in the CSV for every record, so any classification here can be checked or redone.
Known limits
- Recent months undercount: enforcement reports are published weeks to months after a recall starts, so the newest year always grows after publication.
- One enforcement report can cover many products or lots; this tracker counts reports, not units or SKUs.
- Recalls handled entirely by a company without an FDA enforcement report do not appear.
- Category assignment is rule-based, not human-reviewed record by record.
Reuse
The underlying FDA data are U.S. government public domain. Our compilation, categorisation, charts and CSV may be reused with attribution and a link to the tracker. Corrections are welcome through the contact page and are applied at the next weekly refresh.
Pure