FDA Drug Recalls (Enforcement Reports, Searchable)
openfda/drug-recalls
Searches the FDA's drug recall enforcement reports and returns matching recalled drug products, newest first if you ask for it. Each record gives the recall number, status (ongoing, completed or terminated), recall class (Class I most serious to Class III), recalling firm and its location, product description, the reason for the recall, distribution pattern, quantity, lot and code information, and the recall start, classification and report dates. The reply also carries the total number of matches and the FDA's own notice that the data is unvalidated and not for medical decisions. Taken directly from the FDA's openFDA drug enforcement API.
Price
$0.00273 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.
Data source
U.S. Food and Drug Administration (openFDA)
Data provided by the U.S. Food and Drug Administration (https://open.fda.gov); public domain under CC0 per open.fda.gov/terms.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "openfda/drug-recalls" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "openfda/drug-recalls" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "openfda/drug-recalls", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "openfda/drug-recalls", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.00273 |
- Updated
- Oct 18, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"limit"
],
"properties": {
"skip": {
"type": "integer",
"maximum": 25000,
"minimum": 0,
"description": "How many matching records to skip, for paging; the FDA allows up to 25000."
},
"sort": {
"enum": [
"report_date:desc",
"report_date:asc",
"recall_initiation_date:desc",
"recall_initiation_date:asc"
],
"type": "string",
"description": "Order of the records. Leave out for the FDA's own order, which is not by date."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "How many records to return, 1 to 100."
},
"search": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "An openFDA search expression, field:value, with AND / OR between terms. Fields include status (Ongoing, Completed, Terminated), classification (\"Class I\", \"Class II\", \"Class III\"), recalling_firm, product_description, reason_for_recall, state, country, recall_number, report_date and recall_initiation_date (YYYYMMDD, ranges as [20260101 TO 20261231]). Examples: status:Ongoing, classification:\"Class I\" AND report_date:[20260101 TO 20261231], recalling_firm:pfizer. Leave out to match every record. A search that matches nothing returns a validation error."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"meta",
"results"
],
"properties": {
"meta": {
"type": "object",
"required": [
"disclaimer",
"results"
],
"properties": {
"terms": {
"type": "string",
"description": "Link to the openFDA terms of service."
},
"license": {
"type": "string",
"description": "Link to the openFDA data licence."
},
"results": {
"type": "object",
"required": [
"total"
],
"properties": {
"skip": {
"type": "integer",
"description": "Records skipped."
},
"limit": {
"type": "integer",
"description": "Records requested."
},
"total": {
"type": "integer",
"description": "Total records matching the search."
}
},
"additionalProperties": true
},
"disclaimer": {
"type": "string",
"description": "The FDA's disclaimer, passed through verbatim."
},
"last_updated": {
"type": "string",
"description": "When the FDA last refreshed this dataset, YYYY-MM-DD."
}
},
"description": "The FDA's own notice and paging totals. The disclaimer says to treat all results as unvalidated and not to use them for medical decisions.",
"additionalProperties": true
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"state": {
"type": "string",
"description": "Two-letter US state, or N/A for a firm abroad."
},
"status": {
"type": "string",
"description": "Ongoing, Completed or Terminated."
},
"country": {
"type": "string"
},
"openfda": {
"type": "object",
"description": "Matched drug identifiers (brand and generic names, NDC codes) when the FDA could link the product; often empty."
},
"event_id": {
"type": "string",
"description": "The FDA event the recall belongs to; several products can share one."
},
"code_info": {
"type": "string",
"description": "Lot numbers, expiry dates and other identifying codes."
},
"report_date": {
"type": "string",
"description": "When the FDA published it, YYYYMMDD."
},
"recall_number": {
"type": "string",
"description": "The FDA recall number, such as D-0080-2021."
},
"classification": {
"type": "string",
"description": "Class I, Class II or Class III, most to least serious."
},
"recalling_firm": {
"type": "string",
"description": "The company that recalled the product."
},
"product_quantity": {
"type": "string",
"description": "How much product was recalled, as written."
},
"termination_date": {
"type": "string",
"description": "When the recall was terminated, YYYYMMDD; absent while open."
},
"reason_for_recall": {
"type": "string",
"description": "Why the product was recalled."
},
"voluntary_mandated": {
"type": "string",
"description": "Whether the recall was firm-initiated or FDA-requested."
},
"product_description": {
"type": "string",
"description": "The recalled product, as written in the report."
},
"distribution_pattern": {
"type": "string",
"description": "Where the product was distributed."
},
"recall_initiation_date": {
"type": "string",
"description": "When the recall began, YYYYMMDD."
},
"center_classification_date": {
"type": "string",
"description": "When the FDA classified the recall, YYYYMMDD."
}
},
"additionalProperties": true
},
"description": "One entry per recalled drug product."
}
},
"description": "The FDA's response: a meta block and the matching recall records.",
"additionalProperties": true
}