Scrapers.lat logo scrapers.lat
Business

openFDA Food Recall & Enforcement Scraper (USA)

Scrape FDA food recall and enforcement actions from the official openFDA API. Extract recall number, hazard class, product description, reason, recalling firm, city, state and dates across the United States. Export to JSON, CSV or Excel.

28 fields per record JSON · CSV · Excel · API Pay per use
openfda-food-recalls-scraper.json 200 OK
{
  "recallNumber": "H-1138-2026",
  "status": "Ongoing",
  "classification": "Class I",
  "productType": "Food",
  "productDescription": "Smoked Sausage Spice 32.86#",
  "reasonForRecall": "Undeclared Sesame allergen",
  "recallingFirm": "Adams Extract & Spice LLC",
  "city": "Gonzales",
  "state": "TX"
}
What you get

Every run returns clean, typed records, ready for your CRM, spreadsheet or database.

  • One clean record per result, deduped and normalized
  • Stable schema in JSON, CSV or Excel, or read it via the Apify API
  • Pay per use in the cloud, nothing to install or maintain
Fields it returns
Recall NumberStatusClassificationProduct TypeProduct DescriptionReason For RecallRecalling FirmCityStateCountryPostal CodeAddress Line1Distribution PatternProduct Quantity
Sample output

A real example record, exactly the shape you receive.

Recall NumberStatusClassificationProduct Type
H-1138-2026OngoingClass IFood
H-1143-2026OngoingClass IIFood
H-1140-2026OngoingClass IFood
H-1146-2026OngoingClass IIFood
H-1144-2026OngoingClass IFood
GET /openfda-food-recalls-scraper
{
  "recallNumber": "H-1138-2026",
  "status": "Ongoing",
  "classification": "Class I",
  "productType": "Food",
  "productDescription": "Smoked Sausage Spice 32.86#",
  "reasonForRecall": "Undeclared Sesame allergen",
  "recallingFirm": "Adams Extract & Spice LLC",
  "city": "Gonzales",
  "state": "TX"
}

Frequently asked questions

What data does this scraper cover?

It covers the openFDA food enforcement database for the United States, which holds food recall and enforcement actions including the product, reason, classification, recalling firm, distribution and status.

How many records can I pull in one run?

openFDA paginates with a skip offset up to 25000 records per query. For larger pulls, narrow the filters or the date range so each run stays under that ceiling.

How do I find serious recalls only?

Set Classification to Class I, which marks recalls with a reasonable probability of serious health consequences or death. You can combine it with a keyword such as listeria or salmonella and a state filter.

How does the search work?

A simple keyword is matched to the recall reason, for example listeria, salmonella or undeclared allergen. You can also paste a raw openFDA expression with a field, such as product_description:cheese or recalling_firm:Tyson.

What happens to missing fields?

Fields that openFDA does not provide for a record, such as a termination date on an ongoing recall, are returned as null. The scraper never invents values.

Ready when you are.

Run the scraper live on Apify right now, or have us build one tailored to exactly what you need.