datafloe Get a key

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.

fda-recalls

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 license endpoint), 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)

  1. Unified three endpoints into one table (fda_recalls). product_type (Food | Drugs | Devices) comes straight from the source and distinguishes them.
  2. Normalized dates from openFDA's YYYYMMDD strings to RFC 3339 dates (YYYY-MM-DD): recall_initiation_date, center_classification_date, report_date. Unparseable/empty → NULL.
  3. Dropped fields: address_1, address_2 (location retained via city/state/country/postal_code) and the nested openfda object. Every other field is kept verbatim — no truncation (openFDA itself caps text fields at 4,000 chars; code_info lot-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; status includes 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.