FDA Recall Scraper - Drug, Device & Food Enforcement
Pricing
from $5.00 / 1,000 results
FDA Recall Scraper - Drug, Device & Food Enforcement
Scrape FDA drug, device & food recalls from the official openFDA API β recall number, severity (Class I/II/III), status, recalling firm, brand, reason, dates & location. Filter by type/severity/status/date, monitor new recalls. Export CSV/JSON/Excel. No API key.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Share
This FDA recall scraper turns the official openFDA enforcement data into a clean, queryable feed β one flat row per recall with the recall number, product type, classification + plain-English severity (Class I/II/III β High/Medium/Low), status, recalling firm, brand / generic / manufacturer, reason for recall, distribution, ISO dates, and location. Pull drug, medical-device, and food recalls in one run, filter by severity / status / state / date / keyword, and export to CSV, JSON, or Excel.
Built for pharma & medtech regulatory and quality teams, consultancies, biotech investors, and journalists who need a structured recall feed for monitoring β not openFDA's raw, deeply-nested JSON. Official US government data, no API key, no anti-bot.
Why use this instead of openFDA directly
openFDA is powerful but raw: verbose records, nested openfda objects, YYYYMMDD date strings, and three separate endpoints. This actor does the cleanup for you:
- One clean flat row per recall β drops straight into a spreadsheet or BI tool.
- Explainable 0-100
risk_scoreβ not just a class letter. Every score ships with ascore_breakdown(severity, recency, distribution scale, status, harm signals) and a plain-Englishscore_rationale, so you can sort by real risk and see why. No other recall scraper shows its work. - Recall lifecycle β
is_open,days_open, andtime_to_classification_daystell you what's still active and how fast the FDA moved. - Plain-English severity β Class I/II/III mapped to High/Medium/Low + a
severity_rankfor sorting. - Brand / generic / manufacturer / NDC / UPC lifted out of the nested
openfdablock. - ISO dates (
YYYY-MM-DD) instead ofYYYYMMDD. - Drug + device + food merged into one deduped dataset; sort by date or risk score.
- Filters for product type, severity, status, state, keyword, date range, open-only, and minimum risk score.
- Re-run on a schedule to monitor new recalls for a firm, brand, or category.
How to use it
- Pick product types (drugs / devices / food).
- Optionally filter: severity (Class I = most serious), status (Ongoing / Completed / Terminated), state, a search term (firm, product, or contaminant), and a date range.
- Run β get a clean, deduped, newest-first recall table.
Input
| Field | Type | Description |
|---|---|---|
productTypes | array | drug, device, food (any combination). |
searchTerm | string | Free text across firm, product, and reason. |
classification | array | Class I / Class II / Class III severity filter. |
status | string | Ongoing / Completed / Terminated. |
state | string | Recalling-firm US state code (e.g. CA). |
dateFrom / dateTo | string | Recall-initiation date range (YYYY-MM-DD). |
openOnly | boolean | Keep only open / not-yet-terminated recalls (active risk). |
minScore | integer | Keep only recalls with risk_score β₯ this (0-100). |
sortBy | string | date (newest first) or risk (highest score first). |
maxItems | integer | Max recalls (split across types). Default 200. |
apiKey | string | Optional free openFDA key for large runs. |
Example input:
{"productTypes":["drug","device"],"classification":["Class I"],"status":"Ongoing","dateFrom":"2025-01-01","maxItems":500}
JSON output sample
{"recall_number":"D-1234-2025","product_type":"drug","classification":"Class I","severity":"High","severity_rank":1,"risk_score":88,"score_breakdown":{"severity":40,"recency":20,"status":15,"distribution":15,"harm":10},"score_rationale":"Class I (most serious β reasonable probability of serious harm/death); recall still ongoing (active risk); initiated 41 days ago; wide/nationwide distribution; harm signals: contaminat","status":"Ongoing","is_open":true,"days_open":41,"time_to_classification_days":15,"recalling_firm":"Acme Pharmaceuticals, Inc.","brand_name":"ACME XR 20MG","generic_name":"amphetamine mixed salts","manufacturer":"Acme Pharmaceuticals USA, Inc.","product_ndc":"12345-678-90","upc":null,"product_description":"ACME XR 20 mg extended-release capsules, 100-count bottle","reason_for_recall":"Failed dissolution specifications; possible contamination","distribution_pattern":"Nationwide (US)","initiation_date":"2025-03-18","report_date":"2025-04-02","termination_date":null,"firm_city":"Trenton","firm_state":"NJ","country":"United States","event_id":"90123"}
Results render as a clean, sortable table on the Output tab and export to CSV, JSON, or Excel.
Use cases
- Recall monitoring β schedule the actor to watch for new Class I recalls in your category or for a specific firm/brand.
- Competitive & supplier risk β track recalls hitting competitors or your suppliers/contract manufacturers.
- Regulatory & quality intelligence β feed a compliance dashboard with structured enforcement data.
- Investment signals β biotech/medtech catalyst tracking (a Class I recall moves markets).
- Journalism & research β query decades of recalls by firm, product, or reason.
Use with AI agents & automation
Run from the Apify MCP server so AI agents (Claude, ChatGPT, Cursor) can query recalls as a tool call, schedule runs via Make, n8n, or Zapier to alert Slack/email on new Class I recalls, or sync the dataset to Google Sheets for a live recall dashboard. Clean flat JSON drops into compliance pipelines with no glue code.
Pricing
Pay-per-event β you're charged per recall record delivered. Source data is the free public openFDA API, so there are no proxy or third-party costs. See the Apify Store page for the current per-result price.
FAQ
Where does the data come from? The official openFDA API (api.fda.gov), maintained by the U.S. Food & Drug Administration β public government data.
Do I need an API key? No. It works key-free. Add a free openFDA key only for very large/high-frequency runs (higher rate limit).
What do the classifications mean? Class I = reasonable probability of serious harm or death; Class II = temporary/medically reversible harm; Class III = unlikely to cause harm. This actor maps them to High/Medium/Low.
How far back does it go? openFDA enforcement data spans well over a decade; use the date filters to scope it.
Can I monitor new recalls? Yes β schedule the actor with a dateFrom of the last few days (or a firm/brand searchTerm) and pipe results to Slack/email via Make/Zapier.
Can I export to CSV or Google Sheets? Yes β CSV, JSON, or Excel from the Output tab, or sync to Google Sheets via Make, n8n, or Zapier.
Other Flash Scrape scrapers
- Trustpilot Reviews Scraper β company reviews & reputation
- Amazon Product Scraper β products, prices & ratings
- Google Maps Leads Scraper β local business leads
- Indeed Jobs Scraper β job listings
- Google Search Results Scraper β SERP & rankings
