Provenance record
FDA recalls unified (food + drug + device)
Where every row came from — source, original license, transformations, and redistribution basis, recorded before the API went live.
← Dataset record Machine-readable license (X-License)
Dataset slug: fda-recalls
Status: LIVE
Source
- Publisher: U.S. Food & Drug Administration, via openFDA
- Endpoints (enforcement / recall reports), bulk downloads:
- Food: https://download.open.fda.gov/food/enforcement/food-enforcement-0001-of-0001.json.zip
- Drug: https://download.open.fda.gov/drug/enforcement/drug-enforcement-0001-of-0001.json.zip
- Device: https://download.open.fda.gov/device/enforcement/device-enforcement-0001-of-0001.json.zip
- API docs: https://open.fda.gov/apis/food/enforcement/
- Retrieved: 2026-07-11 · openFDA export_date: 2026-07-10
License / redistribution basis
- Original license: CC0 1.0 (public domain dedication). openFDA: "All data is public domain." — https://open.fda.gov/license/
- Redistribution basis: CC0 — unrestricted redistribution, commercial use permitted, no attribution required. This is the cleanest provenance in the portfolio and anchors the license-hygiene demo.
- Required disclaimer (carried into the API
licenseendpoint), from openFDA terms: "Do not rely on openFDA to make decisions regarding medical care. … you should assume all results are unvalidated." Terms: https://open.fda.gov/terms/
Transformations applied (ingest/sources/fda-recalls.ts)
- Unified three endpoints into one table (
fda_recalls).product_type(Food | Drugs | Devices) comes straight from the source and distinguishes them. - Normalized dates from openFDA's
YYYYMMDDstrings to RFC 3339 dates (YYYY-MM-DD):recall_initiation_date,center_classification_date,report_date. Unparseable/empty → NULL. - Dropped fields:
address_1,address_2(location retained via city/state/country/postal_code) and the nestedopenfdaobject. Every other field is kept verbatim — no truncation (openFDA itself caps text fields at 4,000 chars;code_infolot-number lists up to ~32 KB are preserved intact). Empty strings → NULL.
Coverage
- Rows: 86,419 — food 29,216 + drug 17,773 + device 39,430
- Enforcement reports span classifications I–III;
statusincludes Ongoing / Terminated / Completed / Pending.
Note
No PII beyond the recalling firm's public business name/address (already public in FDA enforcement reports). Survives a hostile "where did you get this?" — it is FDA's own published enforcement data under CC0.