FDA Recalls Scraper | Drug, Device & Food, 23 Fields
Pricing
from $0.60 / 1,000 recall scrapeds
FDA Recalls Scraper | Drug, Device & Food, 23 Fields
Scrape FDA drug, device & food recall and enforcement reports as clean JSON. Filter by classification, status, firm, state & date. Free tier, no API key. Works in Claude, ChatGPT & any MCP agent.
Pricing
from $0.60 / 1,000 recall scrapeds
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
FDA Recalls Scraper: Drug, Device & Food, 23 Fields
Pay only for results delivered. Browse all Actors.
š° From $0.60 / 1,000 results.
Pull FDA recall and enforcement reports as clean JSON across all three openFDA enforcement registries, drug, device and food, with 23 fields per recall: recall number, classification, status, recalling firm, product description, reason for recall, distribution pattern, quantity, voluntary or mandated, city, state, country, three dates, code info, event ID, and openFDA brand, generic and manufacturer names.
Pure HTTP against the official openFDA API. No API key, no login, no browser. Filter by product type, search term, firm, Class I/II/III, recall status, state and date range, and page up to 25,000 records.
Why use this FDA recalls scraper
- Three registries, one schema.
productTypeswitches betweendrug,deviceandfoodenforcement without changing a single output field name, so downstream code never has to branch. - 23 fields per recall, including the reason.
reason_for_recallanddistribution_patternare the two fields that make a recall actionable, and both come through on every row. - Seven filters that compose. Search term, recalling firm, classification, status, state and a
dateFrom/dateTorange all narrow the same query. - Newest first. Results are sorted by
report_datedescending, so a smallmaxResultsgives you the latest recalls rather than an arbitrary slice. - Empty searches cost nothing. openFDA signals "no matches" with an HTTP 404; this Actor recognises that as a clean empty result rather than an error, and charges nothing.
Monitor Class I drug recalls for one molecule
{"productType": "drug","searchTerm": "metformin","classification": "Class I","maxResults": 50}
Class I is the FDA's most serious category, reasonable probability of serious harm. Schedule this input as a Task to get a standing watch on a molecule.
Track a manufacturer's device recall history
{"productType": "device","recallingFirm": "Medtronic","dateFrom": "2020-01-01","maxResults": 200}
recalling_firm, product_description, reason_for_recall and classification together give you a manufacturer's quality record over time.
Find ongoing food recalls in one US state
{"productType": "food","state": "CA","status": "Ongoing","maxResults": 100}
status accepts Ongoing, Completed or Terminated. Combine with state for regional distribution and compliance work.
Build a dated recall corpus for analysis
{"productType": "drug","dateFrom": "2024-01-01","dateTo": "2026-01-01","maxResults": 5000}
With no term or firm filter, the date range alone gives you a complete slice of the drug enforcement registry for those two years.
What data does the FDA recalls scraper return
{"recall_number": "D-0123-2026","product_type": "drug","classification": "Class II","status": "Ongoing","recalling_firm": "Example Pharma Inc","product_description": "Metformin HCl ER Tablets, 500 mg, 100-count bottle","reason_for_recall": "Presence of nitrosamine impurity above the acceptable intake limit","distribution_pattern": "Nationwide","product_quantity": "12,480 bottles","voluntary_mandated": "Voluntary: Firm initiated","city": "Somerset","state": "NJ","country": "United States","report_date": "20260115","recall_initiation_date": "20251220","brand_name": "Example ER","generic_name": "metformin hydrochloride","manufacturer_name": "Example Pharma Inc","scraped_at": "2026-08-01T10:00:00.000Z"}
| Field group | Fields |
|---|---|
| Identity | recall_number, event_id, product_type |
| Severity | classification, status, voluntary_mandated, initial_firm_notification |
| Firm | recalling_firm, city, state, country |
| Product | product_description, product_quantity, code_info |
| Cause | reason_for_recall, distribution_pattern |
| Dates | report_date, recall_initiation_date, center_classification_date |
| openFDA enrichment | brand_name, generic_name, manufacturer_name |
| Provenance | scraped_at |
The brand_name, generic_name and manufacturer_name fields come from openFDA's own enrichment block and are empty when the FDA has not matched that record.
How the scraper works without an API key
openFDA's enforcement endpoints are public and keyless. This Actor builds a Lucene-style search string from your filters, requests 100 records per page sorted newest first, and pages with skip until it reaches your maxResults or the API's 25,000-record keyless skip ceiling. A 404 from openFDA means "no matches", not a failure, and is handled as an empty run.
What can you build with FDA recall data
Regulatory and quality monitoring. A scheduled Class I watch on your own products or your contract manufacturers.
Supplier risk scoring. Recall counts and classifications per firm, over a date window, as a vendor-risk input.
Medtech and pharma competitive intel. Which competitors are recalling what, and why.
Retail and distribution compliance. Ongoing food recalls filtered to the states you ship to.
How much does it cost to scrape FDA recalls
Pay per recall delivered: $0.0035 on the Apify Free plan, $0.0025 on Gold and above. Searches that match nothing are never charged.
How do I use FDA recall data in Claude or ChatGPT
https://mcp.apify.com/?tools=themineworks/fda-recalls-scraper
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('themineworks/fda-recalls-scraper').call({productType: 'device',recallingFirm: 'Medtronic',maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
FDA recalls scraper FAQ
Do I need an openFDA API key? No. The Actor runs entirely on the keyless public tier.
Which recall registries are covered? All three openFDA enforcement endpoints: drug, device and food. Set productType.
What does classification mean? Class I is a reasonable probability of serious harm or death, Class II is temporary or reversible harm, Class III is unlikely to cause harm.
Why are dates formatted as 20260115? That is openFDA's native YYYYMMDD format, passed through unchanged so it round-trips exactly.
How far back can I page? Up to 25,000 records per query, which is openFDA's keyless skip ceiling. Narrow with a date range to go deeper.
Complete your regulatory intel pipeline
- FDA 510(k) Clearances Scraper, device clearances by applicant, device name or product code.
- ClinicalTrials.gov Scraper, the pre-market side of the same molecules and devices.
- Federal Register Scraper, the rules and notices behind the enforcement actions.
Found a bug or want a field added? Open an issue on the Actor's Apify Console page.
Related guides
- Automate FDA Recall Monitoring for Drugs, Devices and Food
- FDA Recall Data API: How to Monitor Drug, Device, and Food Recalls Programmatically
Last verified: 2026-08