The Recall Desk

Recall data API

A free, read-only JSON endpoint over the same archive the rest of this site is built on — US product recalls from the FDA, USDA FSIS, CPSC and NHTSA, each carrying the agency’s own recall number and a link to the original notice. No key, no signup, no account.

Endpoint

GET https://therecalldesk.com/api/recalls

Rate limited to 60 requests per minute per IP. Every response carries x-ratelimit-limit and x-ratelimit-window-seconds; a 429 adds retry-after. Please respect them rather than discovering the limit by hitting it.

Parameters

NameTypeNotes
limit1–100Records to return. Default 25.
offset0–10000Records to skip. Default 0.
agencyenumOne of FDA_FOOD, FDA_DRUG, FDA_DEVICE, USDA_FSIS, CPSC, NHTSA, EPA.
categoryenumOne of Food, Drug, Medical Device, Vehicle, Consumer Product.
severity1–5Minimum severity, not an exact match: severity=4 returns 4 and 5.

An unrecognised value for agency, category or severity is ignored rather than rejected — the filter is simply not applied. The filters object echoed in every response tells you which ones were actually understood, so check it rather than assuming your filter took effect.

Example

curl "https://therecalldesk.com/api/recalls?agency=FDA_FOOD&severity=4&limit=2"
{
  "ok": true,
  "items": [
    {
      "id": "…",
      "source_agency": "FDA_FOOD",
      "source_recall_number": "F-1527-2024",
      "source_url": "https://www.fda.gov/…",
      "slug": "fda-f-1527-2024-…",
      "title": "…",
      "short_summary": "…",
      "severity_score": 5,
      "severity_label": "Critical",
      "category": "Food",
      "hazard_type": ["listeria-monocytogenes"],
      "product_name": "…",
      "product_brand": "…",
      "product_manufacturer": "…",
      "recall_announced_date": "2024-06-27",
      "distribution_nationwide": true,
      "distribution_states": ["CA", "NY"]
    }
  ],
  "pagination": { "total": 1204, "limit": 2, "offset": 0, "returned": 2 },
  "filters": { "agency": "FDA_FOOD", "minSeverity": 4 }
}

What the severity score is, and is not

severity_score is ours, not the agency’s. It is derived from the agency classification, whether injuries or deaths are reported in the source text, distribution scope and hazard type — the methodology page has the rubric. Do not present it as an FDA, USDA, CPSC or NHTSA rating. The agency’s own classification is in raw_source_data on the recall page, and source_url always points at the original notice.

Recalls that have not yet been through our editorial pass are returned too, with a placeholder title prefixed [pending] and a severity that has not been assessed. Filter them out on llm_processing_version > 0 if you only want reviewed records.

Terms

  • Free for any use, commercial included. No attribution required.
  • Attribution is appreciated — a link back to the recall page helps people reach the agency notice.
  • The underlying recall notices are US government works and are not copyrightable. Our summaries and severity scores are ours.
  • No uptime guarantee. This is a free endpoint on a small server; if you need it for something that matters, cache it.
  • Bulk copies of the archive are better served by the RSS feed for new items plus a paged crawl, rather than repeatedly walking everything.

Other machine-readable surfaces

  • /feed.xml — RSS, 50 most recent recalls
  • /llms.txt — site summary for language models
  • /sitemap.xml — hubs and facet pages; recall pages are in the per-year sitemaps listed in robots.txt
  • Every recall page carries schema.org NewsArticle and Product JSON-LD.