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.
{ "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" }
每次运行都返回干净、带类型的记录,可直接用于你的 CRM、表格或数据库。
- 每个结果对应一条干净记录,已去重并规范化
- JSON、CSV 或 Excel 的稳定结构,也可通过 Apify API 读取
- 在云端按用量付费,无需安装或维护
一条真实的示例记录,正是你收到的结构。
| Recall Number | Status | Classification | Product Type |
|---|---|---|---|
| H-1138-2026 | Ongoing | Class I | Food |
| H-1143-2026 | Ongoing | Class II | Food |
| H-1140-2026 | Ongoing | Class I | Food |
| H-1146-2026 | Ongoing | Class II | Food |
| H-1144-2026 | Ongoing | Class I | Food |
{ "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 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.