FDA API: Search medical device recalls
Finds FDA medical device recalls whose product description or recalling company matches a phrase, newest first, with the recall class and its health-risk meaning from each FDA recall page. An optional start date limits recalls to those initiated on or after it.
Unofficial. Not affiliated with or endorsed by FDA.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Query, required
query Device or company name to search, for example insulin pump or Philips.
insulin pump
- Since Date optional
since_date Include recalls initiated on or after this date (YYYY-MM-DD), for example 2025-01-01. Leave blank for no date limit.
Not set
- Max Results optional
max_results Most recalls to return, for example 20. Maximum 100.
20 (default)
Whole number from 1 to 100.
Input as JSON
{ "query": "insulin pump"}Output
{ "device_recalls": [ { "reason": "Loaner insulin pumps may have been cleaned with chemically incompatible products that could damage the pump case or keypad, allow moisture ingress, and result in insulin over- or under-delivery, potentially causing hypoglycemia, hyperglycemia, or diabetic ketoacidosis.", "status": "Open, Classified", "company": "Medtronic MiniMed, Inc.", "page_url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfRES/res.cfm?id=221440" , "what_to_do": "On 7/13/2026, field safety notices were sent to customers asking them to do the following:\n1) Stop using the loaner pump and contact the firm to arrange for loaner pump return. \n2) Contact your Healthcare Professional (HCP) to ensure you have access to backup insulin therapy supplies or alternative …" , "device_name": "MiniMed 640G Insulin Pump, Model: MMT-1711, MMT-1712;", "recall_date": "2026-07-13", "seriousness": "Class II: may cause temporary or reversible health problems", "product_code": "QFG", "recall_number": "Z-2980-2026" }, { "reason": "Loaner insulin pumps may have been cleaned with chemically incompatible products that could damage the pump case or keypad, allow moisture ingress, and result in insulin over- or under-delivery, potentially causing hypoglycemia, hyperglycemia, or diabetic ketoacidosis.", "status": "Open, Classified", "company": "Medtronic MiniMed, Inc.", "page_url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfRES/res.cfm?id=221569" , "what_to_do": "On 7/13/2026, field safety notices were sent to customers asking them to do the following:\n1) Stop using the loaner pump and contact the firm to arrange for loaner pump return. \n2) Contact your Healthcare Professional (HCP) to ensure you have access to backup insulin therapy supplies or alternative …" , "device_name": "MiniMed 670G Insulin Pump, Model: MMT-1781, MMT-1782;", "recall_date": "2026-07-13", "seriousness": "Class II: may cause temporary or reversible health problems", "product_code": "OZP", "recall_number": "Z-2981-2026" }, { "reason": "Loaner insulin pumps may have been cleaned with chemically incompatible products that could damage the pump case or keypad, allow moisture ingress, and result in insulin over- or under-delivery, potentially causing hypoglycemia, hyperglycemia, or diabetic ketoacidosis.", "status": "Open, Classified", "company": "Medtronic MiniMed, Inc.", "page_url": "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfRES/res.cfm?id=221570" , "what_to_do": "On 7/13/2026, field safety notices were sent to customers asking them to do the following:\n1) Stop using the loaner pump and contact the firm to arrange for loaner pump return. \n2) Contact your Healthcare Professional (HCP) to ensure you have access to backup insulin therapy supplies or alternative …" , "device_name": "MiniMed 780G Insulin Pump, Model: MMT-1885CLW, MMT-1886CLW", "recall_date": "2026-07-13", "seriousness": "Class II: may cause temporary or reversible health problems", "product_code": "QFG", "recall_number": "Z-2982-2026" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"fda.gov/search_device_recalls","input":{"query":"insulin pump"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "fda.gov/search_device_recalls" , "input": { "query": "insulin pump" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "fda.gov/search_device_recalls" , "input": { "query": "insulin pump" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run fda.gov/search_device_recalls# with {"query":"insulin pump"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "query" ], "properties": { "query": { "type": "string", "minLength": 1, "description": "Device or company name to search, for example insulin pump or Philips." }, "since_date": { "type": "string", "description": "Include recalls initiated on or after this date (YYYY-MM-DD), for example 2025-01-01. Leave blank for no date limit." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Most recalls to return, for example 20. Maximum 100." } }}Output schema
{ "type": "object", "required": [ "device_recalls" ], "properties": { "device_recalls": { "type": "array", "items": { "type": "object", "required": [ "device_name", "company", "recall_date", "reason", "seriousness", "status", "what_to_do", "recall_number", "product_code", "page_url" ], "properties": { "reason": { "type": [ "string", "null" ], "description": "Reason for the recall." }, "status": { "type": [ "string", "null" ], "description": "FDA-published recall status." }, "company": { "type": [ "string", "null" ], "description": "Company recalling the device." }, "page_url": { "type": "string", "description": "FDA page for this individual recalled device." }, "what_to_do": { "type": [ "string", "null" ], "description": "FDA-published recall action or instructions, when stated." }, "device_name": { "type": [ "string", "null" ], "description": "FDA product description of the recalled device." }, "recall_date": { "type": [ "string", "null" ], "format": "date", "description": "Date the firm initiated the recall." }, "seriousness": { "type": [ "string", "null" ], "description": "FDA recall class and its health-risk meaning, when classified." }, "product_code": { "type": [ "string", "null" ], "description": "FDA product code." }, "recall_number": { "type": [ "string", "null" ], "description": "FDA recall number." } } }, "description": "Medical device recalls ordered by initiation date, newest first." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
fda.gov/search_device_recalls- Returns
- device name, company, recall date, reason, seriousness (recall class), status, what to do, recall number, product code, FDA page link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method fda.gov/search_device_recalls with the inputs above.
Ask your agent
- Have there been any recalls on Medtronic insulin pumps since January 2024? I need the recall class and what patients are supposed to do.
- Pull the 50 most recent FDA device recalls involving Philips, including recall numbers and product codes.
- My dad uses a CPAP machine. Are there any recent recalls on those, and how serious are they?
- List infusion pump recalls initiated on or after 2025-03-01, newest first, with the reason for each and its current status.
- Check fda.gov for any recalls on Abbott glucose monitors and give me links to the recall pages.
See more
All FDA methodsFinds FDA drug enforcement recalls by medicine or company name, newest first, with status, class, reason and quantity. Recent recalls may not yet appear.
open.fda.gov/search_drug_recallsFinds FDA food recall enforcement reports by product, brand, or allergen, newest first. Reports are updated weekly and recall statuses may lag.
open.fda.gov/search_food_recallsLists the most frequently reported reaction terms for a brand or generic medicine in FDA adverse-event reports, with counts and the share of all matching reports. Reports do not establish causation.
open.fda.gov/get_reported_side_effectsFinds the latest FDA drug label for a brand or generic medicine and returns its uses, directions, warnings, ingredients and a DailyMed link.
open.fda.gov/get_drug_labelFinds U.S. consumer product recalls matching a product type or brand, newest first, with hazards, remedies, incidents, sale details and photos when published.
cpsc.gov/search_recallsFinds PubMed medical and life-science articles by topic, with publication details and free full-text links when PubMed confirms them.
pubmed.ncbi.nlm.nih.gov/search_articlesLists NHTSA safety recalls for a vehicle model, given a model year, make and model or a 17-character VIN. Results cover the model, not whether a specific car has been repaired.
nhtsa.gov/check_recallsLists ClinicalTrials.gov studies run or funded by a sponsor, newest start date first, with optional phase, status and condition filters.
clinicaltrials.gov/list_company_trials