openFDA Drug Enforcement Reports — Every FDA Drug Recall Since 2015 With Classification, Status, Firm, Product, Reason And Distribution
14,525 drug recall enforcement reports posted by the FDA from 2015-01-07 to 2026-08-19 (1,497 Class I) by 1,368 recalling firms: recall and event numbers, the weekly Enforcement Report date, recall initiation, classification and termination dates, class (I, II, III), status, whether voluntary or FDA-mandated, product type, recalling firm with city, state and country, product description, quantity, reason for recall and distribution pattern (free text capped at 1,000 characters), one row per recall number, from the openFDA drug enforcement API as of 2026-09-06.
Use Cases
- Pharma manufacturing-quality and supply-risk screens by firm
- Recall-frequency and class-mix trends
- Text mining of recall reasons (contamination, labelling, potency)
- Regulatory event studies for drug makers and CDMOs
Methodology
One report_date range search per calendar year from 2015 at 1,000 results a page (two years in flight), stopping at the year's total; YYYYMMDD dates converted to ISO; the nested openfda product block is not included; text collapsed to one line and truncated to 1,000 characters; de-duplicated on recall number, event id and report date; sorted by report date and recall number.
Update Schedule
Static snapshot. The FDA Enforcement Report is published every Wednesday and openFDA reloads it weekly; refresh weekly.
Attribution
Source: U.S. Food and Drug Administration, openFDA drug enforcement reports (open.fda.gov); US government work, public domain, released under a Creative Commons CC0 1.0 Universal dedication. openFDA warns the data is unvalidated and not for medical decisions.
Schema
| name | type |
|---|---|
| recall_number | string |
| event_id | integer |
| report_date | date |
| recall_initiation_date | date |
| center_classification_date | date |
| termination_date | date |
| classification | string |
| status | string |
| voluntary_mandated | string |
| product_type | string |
| recalling_firm | string |
| city | string |
| state | string |
| country | string |
| product_description | string |
| product_quantity | string |
| reason_for_recall | string |
| distribution_pattern | string |
Sample Data
| city | state | status | country | event_id | report_date | product_type | recall_number | classification | recalling_firm | product_quantity | termination_date | reason_for_recall | voluntary_mandated | product_description | distribution_pattern | recall_initiation_date | center_classification_date |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Sunset | LA | Terminated | United States | 70085 | 2015-01-07 | Drugs | D-0327-2015 | Class II | Jaymac Pharmaceuticals L.L.C. | 5572 Bottles | 2015-06-01 | Labeling: Not Elsewhere Classified: Product is labeled "Dye Free" on front panel but contains Red Dye 40. | Voluntary: Firm initiated | J-TAN D PD Drops (bromphenirame maleate 1 mg and pseudoephedrine hcl 7.5 mg/ teaspoon), 1 fl oz (30 mL) Bottle, Over the Counter. Manufactured for JayMac Pharmaceuticals, LLC, Sunset, LA; Manufactured by Sonar Products Inc., Carlstadt, NJ, NDC: 64661-032-30. | U.S. including: LA, AR, TX, MS | 2014-12-16 | 2014-12-29 |
| Jupiter | FL | Terminated | United States | 70084 | 2015-01-07 | Drugs | D-0328-2015 | Class II | Tropichem Research Labs, Inc. | 24,348 / 2 oz. bottles | 2017-05-04 | Microbial Contamination of Non Sterile Product; microbial assay reported unacceptable high plate counts and positive for E. Coli | Voluntary: Firm initiated | Entertainer's Secret Throat Relief, 2.0 FL oz (59.2 mL), Honey Apple Flavor, KLI Corp, Carmel, IN | NY and IN. | 2014-12-17 | 2014-12-29 |
| Albuquerque | NM | Terminated | United States | 69836 | 2015-01-07 | Drugs | D-0329-2015 | Class II | One and Zen | 38 bottles | 2015-03-23 | Marketed Without An Approved NDA/ANDA: FDA analysis found this product to contain undeclared dexamethasone and cyproheptadine which are FDA approved drugs making this product an unapproved drug. | Voluntary: Firm initiated | GINSENG KIANPI PIL, 60 capsules, PRODUCT OF KWEILIN DRUG MANUFACTORY | Nationwide | 2014-11-20 | 2014-12-30 |
| Dayton | NJ | Terminated | United States | 69807 | 2015-01-14 | Drugs | D-0330-2015 | Class II | Aurobindo Pharma USA Inc | 24,816 bottles | 2016-05-23 | Failed Tablet/Capsule Specifications: Complaints of empty capsules received. | Voluntary: Firm initiated | Gabapentin Capsules, USP 300 mg, 100-count bottles, Rx only, Manufactured for: Northstar Rx LLC, Memphis, TN 38141; Manufactured by: Aurobindo Pharma Limited, Unit-VII (SEZ), Mahaboob Nagar (Dt), AP-509302, INDIA, NDC 16714-662-01, UPC 3 16714-662-01 5. | Nationwide | 2014-10-17 | 2015-01-06 |
| Huntsville | AL | Terminated | United States | 70168 | 2015-01-14 | Drugs | D-0331-2015 | Class III | Qualitest Pharmaceuticals | a) 3936 bottles; b) 84420 bottles | 2016-02-01 | Failed Impurities/Degradation Specifications: High out of specification results for the known impurity p-Aminophenol. | Voluntary: Firm initiated | ACETAMINOPHEN and CODEINE PHOSPHATE ORAL SOLUTION USP, 120 mg/12 mg per 5 mL, packaged in a) 4 oz. (120 mL) bottles, NDC 0603-9013-54, UPC 3 0603-9013-54 8 and b) ONE PINT (473 mL) bottles, NDC 0603-9013-58, UPC 3 0603-9013-58 6, Rx only, Manufactured for: QUALITEST PHARMACEUTICALS, HUNTSVILLE, AL 35811 | Nationwide | 2014-12-22 | 2015-01-06 |
Get this via API
# 1. Add dAgentBase once, in any MCP client. No install, no vendor keys.
# Claude.ai / Claude Desktop: Settings -> Connectors -> Add custom connector
# Cursor / Claude Code / others: mcp.json
{
"mcpServers": {
"dagentbase": {
"url": "https://dagentbase.com/api/mcp",
"headers": { "Authorization": "Bearer dm_live_YOUR_KEY" }
}
}
}
# 2. Then ask your agent, in plain language:
# "Preview 'openFDA Drug Enforcement Reports — Every FDA Drug Recall since 2015 with Classification, Status, Firm, Product, Reason and Distribution' and, if it fits, claim it and download the files."
# Tools it will use: search_listings -> preview_listing -> purchase_listing -> get_download_urls
# 1. Add dAgentBase once, in any MCP client. No install, no vendor keys.
# Claude.ai / Claude Desktop: Settings -> Connectors -> Add custom connector
# Cursor / Claude Code / others: mcp.json
{
"mcpServers": {
"dagentbase": {
"url": "https://dagentbase.com/api/mcp",
"headers": { "Authorization": "Bearer dm_live_YOUR_KEY" }
}
}
}
# 2. Then ask your agent, in plain language:
# "Preview 'openFDA Drug Enforcement Reports — Every FDA Drug Recall since 2015 with Classification, Status, Firm, Product, Reason and Distribution' and, if it fits, claim it and download the files."
# Tools it will use: search_listings -> preview_listing -> purchase_listing -> get_download_urlsone time · open license
Details
Available formats