RecallRadar

Methodology

RecallRadar copies public recall notices from three U.S. agencies into one table, keeps every payload exactly as received, and links each recall back to the official source. We are an index, not the authority.

Sources

AgencySourceCadenceNotes
FDA Food, Drug, DeviceopenFDA enforcement reportsChecked daily; openFDA publishes roughly weeklyopenFDA has no per-recall web page, so the source link is the openFDA API record for that recall number.
USDA FSISFSIS recall APIChecked hourlyIncludes public health alerts, shown as class PHA. FSIS blocks automated requests from some networks; when that happens the freshness table below shows the failure and FSIS data may lag.
CPSCSaferProducts.gov recalls APIChecked hourlyCPSC publishes no hazard class and no lifecycle status, so class is empty and status is "unknown".

History: openFDA from 2012, FSIS and CPSC from their full published archives. The oldest indexed recall was published on 2012-06-20.

How a recall gets here

  1. Each agency is polled with an overlap window so late and edited records are picked up.
  2. The payload is stored unchanged. A new copy is kept only when the agency's data actually changed, and nothing is ever deleted.
  3. A versioned transform maps it to one common shape: agency, recall number, class, status, dates, product, reason, company, distribution, identifiers, source link.
  4. The result is validated. A record that does not fit (for example a missing recall number or source link, or a renamed field) is quarantined and never shown, and the previous good version stays live.
  5. Status changes, such as ongoing to terminated, are recorded with a timestamp and shown on the recall page.

Normalization

Company names are lowercased with legal suffixes (Inc, LLC, Corp, S.A. de C.V.) and "doing business as" tails removed. This groups most filings by the same firm on one company page, but it is deliberately simple: it does not merge subsidiaries or spelling variants. States are extracted from free-text distribution statements; "nationwide" is shown as US. UPCs, lot codes, NDCs, establishment numbers, and model numbers are extracted where the agency text includes them.

Transform versions

When an agency changes its format, the transform is fixed, its version is bumped, and stored payloads are remapped without re-fetching. Remaps never mark a recall as "updated".

AgencyTransformRecalls
CPSCcpsc@48,750
FDA Deviceopenfda@239,883
FDA Drugopenfda@217,937
FDA Foodopenfda@229,385
USDA FSISfsis@21,236

Freshness

An agency that returns no rows for 48 hours is flagged, because that usually means the source broke rather than that nothing was recalled.

AgencyRecallsQuarantinedNewest publishedLast successAlert
CPSC8,75002026-09-102026-09-14 08:15 UTCok
FDA Device39,88322026-09-022026-09-13 11:58 UTCok
FDA Drug17,93712026-09-022026-09-13 11:53 UTCok
FDA Food29,38512026-09-022026-09-13 11:51 UTCok
USDA FSIS1,23602026-09-092026-09-14 08:15 UTCok

Machine-readable: /v1/freshness.

Not the authority

RecallRadar indexes public recall notices from the FDA, USDA FSIS, and CPSC. The official agency notice is the authoritative source. Always confirm details at the linked source before acting. RecallRadar may be delayed, may miss a notice the agency has not published through its API, and may mis-extract a field. If a recall affects a decision, read the linked agency notice.