openFDA Drug Recalls & Enforcement Tracker
Pricing
$5.00 / 1,000 drug recall extracteds
openFDA Drug Recalls & Enforcement Tracker
Pull recent FDA drug recall actions. Filter by class (I/II/III), recalling firm, distribution state, or keyword. One row per recall — id, class, firm, product, reason, dates, distribution. Cron-ready for pharma + retail-health watchlists. openFDA API (free, no auth).
Pull recent FDA drug recall / enforcement actions from openFDA. Filter by class (I/II/III), recalling firm, product keyword, distribution state, or status. One clean row per recall — id, classification, firm, product, reason, dates, distribution pattern.
Built for cron (daily watchlist for pharma analysts, retail health investors, hospital pharmacies) and ad-hoc audits. No auth — pure openFDA REST.
Inputs
{"sinceDays": 30,"classifications": ["Class I", "Class II"],"firmKeywords": ["Pfizer", "Teva"],"productKeywords": ["acetaminophen"],"maxResults": 500}
| input | default | notes |
|---|---|---|
sinceDays | 30 | report_date >= now - sinceDays. Use 1-7 for daily/weekly cron. |
classifications | all | FDA recall classes: Class I (most serious — life-threatening), Class II, Class III. |
statusFilter | all | Ongoing, Completed, Terminated, Pending. |
firmKeywords | — | Recalling firm substring matches. Each is a separate query. |
productKeywords | — | Product description substring matches. Each is a separate query. |
stateFilter | — | Single US state to filter distribution_pattern. |
maxResults | 1000 | Hard cap. |
apiKey | — | Optional openFDA key (boosts daily quota). |
Output
One row per recall:
| field | example |
|---|---|
| recallNumber | D-1234-2026 |
| eventId | 92341 |
| status | Ongoing, Terminated |
| classification | Class I |
| productType | Drugs |
| recallingFirm | Pfizer Inc. |
| firmAddress | 235 East 42nd Street, New York, NY, 10017, United States |
| productDescription | Atorvastatin Calcium Tablets 10 mg, ... |
| productQuantity | 850,000 bottles |
| reasonForRecall | Subpotent: Out of specification dissolution test results. |
| voluntaryMandated | Voluntary: Firm initiated |
| initialFirmNotification | Letter, Press Release, Two or more of the following |
| distributionPattern | Nationwide or specific states |
| recallInitiationDate | 20260510 (YYYYMMDD) |
| reportDate | 20260518 |
| centerClassificationDate | 20260520 |
| terminationDate | 20261015 (when applicable) |
| fdaUrl | FDA IRES lookup URL |
Daily cron pattern
{ "sinceDays": 1, "classifications": ["Class I", "Class II"] }
Real-world questions this answers
- Retail health investor. Class-I recall just dropped — what's the recalling firm's ticker?
- Hospital pharmacy / 340B. Are any of our inventoried SKUs recalled today?
- Pharma competitive intel. Which competitors are getting hit with quality recalls?
- Compliance journalism. Track recall reasons + classes over time for a vendor.
What it doesn't do
- Doesn't fetch FDA approval events (that's a separate openFDA endpoint — planned for v2).
- Doesn't enrich with stock ticker (firm-to-ticker is a downstream join).
- Doesn't include device or food recalls (separate openFDA endpoints — different schemas).
Maintained by
vøiddo studio — small independent shop.