# FDA Medical Device Recalls (`maximedupre/fda-medical-device-recalls`) Actor

Search public U.S. FDA medical-device recalls by phrase, firm, class, status, area, or date. Get structured recall evidence with lifecycle dates, risk context, and official source links.

- **URL**: https://apify.com/maximedupre/fda-medical-device-recalls.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Business, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.80 / 1,000 device recalls

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 🩺 Search FDA medical device recalls for compliance review

Search public U.S. FDA medical-device recalls with one device, product, or recall-reason phrase. FDA Medical Device Recalls saves structured recall evidence with identifiers, product and firm details, classes, statuses, lifecycle dates, risk context, and official FDA source links. It helps compliance, hospital, procurement, and safety teams review a focused dataset and decide what needs a closer look.

Use it to:

- Find a focused set for a dated review with **[FDA recall list 2026](https://apify.com/maximedupre/fda-medical-device-recalls/examples/fda-recall-list-2026)**.
- Compare grouped counts by FDA class with **[FDA recall classification](https://apify.com/maximedupre/fda-medical-device-recalls/examples/fda-recall-classification)** when you need a severity breakdown.
- Review structured rows and FDA source links with **[FDA recall database](https://apify.com/maximedupre/fda-medical-device-recalls/examples/fda-recall-database)** for a device phrase.
- Narrow matching records by firm, status, area, or date with **[FDA recall list](https://apify.com/maximedupre/fda-medical-device-recalls/examples/fda-recall-list)**.
- Compare new and unchanged matches across runs with **[FDA recalls](https://apify.com/maximedupre/fda-medical-device-recalls/examples/fda-recalls)** when Track changes is enabled.

#### 📋 FDA recall rows with source evidence

Each saved dataset row represents one matching public U.S. FDA medical-device recall. Rows keep recall identifiers, product and firm details, FDA class and status, lifecycle dates, recall reasons, distribution areas, risk context, coverage details, and an official FDA source link. Optional fields add grouped counts, inventory review context, manufacturer history, trend context, adverse-event context, and watchlist comparison data.

An inventory match is a review signal, not proof that a particular model, lot, serial number, or patient is affected. Recall evidence also does not prove causation, patient harm, recall completion, or the absence of other recalls. Check the linked FDA source before making medical, legal, regulatory, or safety decisions.

#### ▶️ Run a focused device recall search

1. Enter one device, product, or recall-reason phrase in **Search phrase**. Run a separate search for another phrase.
2. Add optional firm, class, status, distribution, and date filters when you need a narrower result set.
3. Set **Maximum recalls** when you want a limit. Leave it empty to return all available results until the FDA source is exhausted.
4. Add device inventory when you want potential matches for review. Enable **Track changes** to compare the same search settings with earlier runs.
5. Start the run and open the default dataset. Use the source link and evidence limits in each row for follow-up.

#### ⚙️ Input

**Input fields**

| Field | Type | What it does |
| --- | --- | --- |
| `searchQuery` | string, required | Enter one device, product, or recall-reason phrase. Run a separate search for another phrase. |
| `recallingFirms` | array of strings | Enter one or more recalling firms to filter the results. |
| `recallClasses` | array of strings | Choose one or more FDA recall classes. Leave empty to include all classes. |
| `recallStatuses` | array of strings | Choose one or more recall statuses. Leave empty to include all statuses. |
| `distributionAreas` | array of strings | Enter one or more states, regions, or distribution terms to filter by geography. |
| `startDate` | string, `YYYY-MM-DD` | Include recalls on or after this calendar date. |
| `endDate` | string, `YYYY-MM-DD` | Include recalls on or before this calendar date. |
| `maxItems` | integer | Stop after this many matching recalls. If you leave it blank, the Actor continues until the FDA source is exhausted. |
| `groupBy` | string | Choose one dimension for counts, ranks, and shares. Leave blank for no grouped breakdown. |
| `deviceInventory` | array of objects | Add devices to compare with matching recalls. A match is a review signal, not proof that an item is affected. |
| `deviceInventory.deviceName` | string, required in each item | Name or product description for the inventory item. |
| `deviceInventory.manufacturer` | string | Manufacturer name, if known. |
| `deviceInventory.model` | string | Model or catalog model, if known. |
| `deviceInventory.catalogNumber` | string | Catalog or product number, if known. |
| `deviceInventory.lotNumber` | string | Lot or batch number, if known. |
| `deviceInventory.serialNumber` | string | Serial number, if known. |
| `trackChanges` | boolean | Compare this search with earlier runs that use the same search settings and report new or unchanged records with prior status, class, and risk context. |

**Default input**

This example is copied from a successful default-input run:

```json
{
  "searchQuery": "insulin pump",
  "maxItems": 25
}
```

#### 🧾 Output

The default dataset stores one recall-row shape. Optional fields appear when the source or selected inputs provide that context. Fields that the FDA source does not provide can be absent. The table covers every public output field.

**Recall row fields**

| Field | Type | What it does |
| --- | --- | --- |
| `recallNumber` | string | FDA recall number for the record. |
| `product` | object | Holds device or product details. |
| `product.description` | string | Describes the device or product in the FDA record. |
| `product.type` | string | Shows the product type reported by FDA. |
| `product.brandName` | string | Shows the reported brand name, when available. |
| `product.model` | string | Shows the reported model or catalog model, when available. |
| `product.catalogNumber` | string | Shows the reported catalog or product number, when available. |
| `productCodes` | array of objects | Lists FDA product codes linked to the product. |
| `productCodes[].code` | string | Gives the FDA product code. |
| `productCodes[].name` | string | Gives the product code name. |
| `productCodes[].specialty` | string | Gives the linked medical specialty. |
| `recallingFirm` | object | Holds details about the firm named in the recall. |
| `recallingFirm.name` | string | Gives the recalling firm name. |
| `recallingFirm.city` | string | Gives the firm's city. |
| `recallingFirm.state` | string | Gives the firm's state or region. |
| `recallingFirm.country` | string | Gives the firm's country. |
| `recallClass` | string | Gives the FDA recall class. |
| `recallStatus` | string | Gives the FDA recall status. |
| `lifecycleDates` | object | Holds important dates in the recall lifecycle. |
| `lifecycleDates.initiationDate` | date string | Gives the date the recall was initiated. |
| `lifecycleDates.reportDate` | date string | Gives the date the recall was reported to FDA. |
| `lifecycleDates.classificationDate` | date string | Gives the date FDA assigned the recall class. |
| `lifecycleDates.terminationDate` | date string | Gives the termination date, when reported. |
| `recallReason` | string | Gives the reason for the recall. |
| `distributionAreas` | array of strings | Lists reported distribution areas. |
| `quantity` | number | Gives the normalized number of units reported for the recall. |
| `quantityUnit` | string | Gives the unit used for the reported quantity. |
| `notificationMethod` | string | Gives the initial firm notification method. |
| `recallAction` | string | Says whether the recall was voluntary or mandated. |
| `risk` | object | Holds the risk assessment. |
| `risk.score` | number | Gives the normalized risk score. |
| `risk.tier` | string | Gives the assigned risk tier. |
| `risk.recommendedActions` | array of strings | Lists review actions suggested by the risk triage. |
| `activity` | string | Gives the normalized active or inactive state. |
| `failureModes` | array of strings | Lists failure modes identified in the recall evidence. |
| `repeatIssue` | boolean | Says whether the manufacturer history shows a related repeat issue. |
| `attention` | object | Holds review attention context. |
| `attention.level` | string | Gives the suggested review attention level. |
| `attention.reasons` | array of strings | Lists reasons for the attention level. |
| `inventoryExposure` | object | Holds potential inventory matches for review. A match is not proof that an item is affected. |
| `inventoryExposure.matchedItems` | array of objects | Lists submitted inventory items with potential matches. |
| `inventoryExposure.matchedItems[].deviceName` | string | Gives the submitted inventory item name. |
| `inventoryExposure.matchedItems[].matchedOn` | array of strings | Lists inventory fields that supported the potential match. |
| `inventoryExposure.matchedItems[].reviewPriority` | string | Gives the review priority for the potential match. |
| `inventoryExposure.matchedItems[].reviewReason` | string | Explains why the inventory item needs review. |
| `inventoryExposure.reviewQueueRank` | integer | Gives the position in the potential-match review queue. |
| `coverage` | object | Holds search coverage details. |
| `coverage.matchedCount` | integer | Gives the number of matching records found in the available FDA result set. |
| `coverage.returnedCount` | integer | Gives the number of recall records returned in the run. |
| `coverage.isTruncated` | boolean | Says whether the returned records are bounded by the source or run limit. |
| `coverage.limit` | integer | Gives the run limit when one was set. |
| `coverage.disclosure` | string | Explains the available result coverage. |
| `summary` | object | Holds counts and breakdowns for successful recall rows in the run. |
| `summary.byRecallClass` | array of objects | Counts and ranks rows by FDA recall class. |
| `summary.byRecallClass[].value` | string | Gives the recall class in the summary. |
| `summary.byRecallClass[].count` | integer | Gives the number of rows in the class. |
| `summary.byRecallClass[].rank` | integer | Gives the class rank by row count. |
| `summary.byRecallClass[].share` | number | Gives the class share of returned rows. |
| `summary.byRecallStatus` | array of objects | Counts and ranks rows by recall status. |
| `summary.byRecallStatus[].value` | string | Gives the recall status in the summary. |
| `summary.byRecallStatus[].count` | integer | Gives the number of rows with the status. |
| `summary.byRecallStatus[].rank` | integer | Gives the status rank by row count. |
| `summary.byRecallStatus[].share` | number | Gives the status share of returned rows. |
| `summary.byRiskTier` | array of objects | Counts and ranks rows by risk tier. |
| `summary.byRiskTier[].value` | string | Gives the risk tier in the summary. |
| `summary.byRiskTier[].count` | integer | Gives the number of rows in the tier. |
| `summary.byRiskTier[].rank` | integer | Gives the tier rank by row count. |
| `summary.byRiskTier[].share` | number | Gives the tier share of returned rows. |
| `summary.byActivity` | array of objects | Counts and ranks rows by activity state. |
| `summary.byActivity[].value` | string | Gives the activity state in the summary. |
| `summary.byActivity[].count` | integer | Gives the number of rows in the state. |
| `summary.byActivity[].rank` | integer | Gives the state rank by row count. |
| `summary.byActivity[].share` | number | Gives the state share of returned rows. |
| `summary.byFailureMode` | array of objects | Counts and ranks rows by failure mode. |
| `summary.byFailureMode[].value` | string | Gives the failure mode in the summary. |
| `summary.byFailureMode[].count` | integer | Gives the number of rows with the failure mode. |
| `summary.byFailureMode[].rank` | integer | Gives the failure-mode rank by row count. |
| `summary.byFailureMode[].share` | number | Gives the failure-mode share of returned rows. |
| `summary.byRecallingFirm` | array of objects | Counts and ranks rows by recalling firm. |
| `summary.byRecallingFirm[].value` | string | Gives the firm in the summary. |
| `summary.byRecallingFirm[].count` | integer | Gives the number of rows for the firm. |
| `summary.byRecallingFirm[].rank` | integer | Gives the firm rank by row count. |
| `summary.byRecallingFirm[].share` | number | Gives the firm's share of returned rows. |
| `groupedAnalysis` | object | Holds the selected group dimension, value, count, rank, and share. |
| `groupedAnalysis.dimension` | string | Gives the dimension selected with `groupBy`. |
| `groupedAnalysis.value` | string | Gives the value of the selected dimension. |
| `groupedAnalysis.count` | integer | Gives the number of rows in the group. |
| `groupedAnalysis.rank` | integer | Gives the group rank by row count. |
| `groupedAnalysis.share` | number | Gives the group's share of returned rows. |
| `manufacturerProfile` | object | Holds related recall history and supplier risk signals for the firm. |
| `manufacturerProfile.recallHistory` | array of objects | Lists related recall records for the firm. |
| `manufacturerProfile.recallHistory[].recallNumber` | string | Gives a related FDA recall number. |
| `manufacturerProfile.recallHistory[].recallClass` | string | Gives the related recall class. |
| `manufacturerProfile.recallHistory[].recallStatus` | string | Gives the related recall status. |
| `manufacturerProfile.recallHistory[].initiationDate` | date string | Gives the related recall initiation date. |
| `manufacturerProfile.recallHistory[].sourceUrl` | URL string | Links to the related FDA source. |
| `manufacturerProfile.supplierRiskSignals` | array of strings | Lists supplier risk signals from the firm's recall history. |
| `trend` | object | Compares recent recall activity with an earlier period. |
| `trend.currentPeriod` | object | Holds the recent comparison period. |
| `trend.currentPeriod.startDate` | date string | Gives the recent period start date. |
| `trend.currentPeriod.endDate` | date string | Gives the recent period end date. |
| `trend.currentPeriod.recallCount` | integer | Gives the recent period recall count. |
| `trend.previousPeriod` | object | Holds the earlier comparison period. |
| `trend.previousPeriod.startDate` | date string | Gives the earlier period start date. |
| `trend.previousPeriod.endDate` | date string | Gives the earlier period end date. |
| `trend.previousPeriod.recallCount` | integer | Gives the earlier period recall count. |
| `trend.direction` | string | Gives the direction of recall activity compared with the earlier period. |
| `adverseEventContext` | object | Holds clearly labeled manufacturer-level adverse-event trend context and its limits. |
| `adverseEventContext.periodStart` | date string | Gives the adverse-event context period start. |
| `adverseEventContext.periodEnd` | date string | Gives the adverse-event context period end. |
| `adverseEventContext.eventCount` | integer | Gives the manufacturer-level event count in the period. |
| `adverseEventContext.trend` | string | Gives the direction of the manufacturer-level event trend. |
| `adverseEventContext.limitations` | array of strings | Lists limits on how the context should be read. |
| `watchlist` | object | Holds comparison data from an earlier baseline when Track changes is enabled. |
| `watchlist.changeType` | string | Says whether the record is new or unchanged since the earlier baseline. |
| `watchlist.previousStatus` | string | Gives the earlier recorded recall status, when available. |
| `watchlist.previousClass` | string | Gives the earlier recorded FDA recall class, when available. |
| `watchlist.previousRiskTier` | string | Gives the earlier recorded risk tier, when available. |
| `sourceUrl` | URL string | Links to the official FDA source for the recall. |
| `evidenceLimitations` | array of strings | Lists limits on what the recall evidence can show. |

The examples below are genuine rows from successful runs and use two-space indentation. The grouped, inventory, and watchlist examples shorten large nested data and show omitted values as the JSON string "...". Their other shown keys, values, arrays, objects, and order are preserved.

**Recall record example**

```json
{
  "recallNumber": "Z-1594-2020",
  "product": {
    "description": "Medtronic  MiniMed Paradigm Insulin pump, model number MMT-723",
    "type": "Devices",
    "brandName": "PARADIGM REAL-TIME REVEL INSULIN INFUSION PUMP",
    "model": "MMT-723",
    "catalogNumber": "MMT-723"
  },
  "recallingFirm": {
    "name": "Medtronic MiniMed",
    "city": "Northridge",
    "state": "CA",
    "country": "United States"
  },
  "recallClass": "Class II",
  "recallStatus": "Ongoing",
  "lifecycleDates": {
    "initiationDate": "2019-06-27",
    "reportDate": "2020-04-01",
    "classificationDate": "2020-03-26"
  },
  "recallReason": "The action is being initiated due to potential cybersecurity vulnerabilities related to a series of insulin pumps that are designed to communicate using a wireless radio frequency (RF). An unauthorized person could potentially connect wirelessly to a nearby insulin pump to change settings and control insulin delivery.",
  "productCodes": [
    {
      "code": "OYC",
      "name": "Pump, Infusion, Insulin, To Be Used With Invasive Glucose Sensor",
      "specialty": "Unknown"
    }
  ],
  "distributionAreas": [
    "US nationwide distribution including Puerto Rico."
  ],
  "notificationMethod": "Letter",
  "recallAction": "Voluntary",
  "risk": {
    "score": 55,
    "tier": "Moderate",
    "recommendedActions": [
      "Review the FDA Class II classification",
      "Review the source reason: The action is being initiated due to potential cybersecurity vulnerabilities related to a series of insulin pumps that are designed to communicate using a wireless radio frequency (RF)"
    ]
  },
  "attention": {
    "level": "Review",
    "reasons": [
      "FDA Class II classification.",
      "Recall status is Ongoing."
    ]
  },
  "activity": "Active",
  "failureModes": [
    "The action is being initiated due to potential cybersecurity vulnerabilities related to a series of insulin pumps that are designed to communicate using a wireless radio frequency (RF)"
  ],
  "coverage": {
    "matchedCount": 5,
    "returnedCount": 1,
    "isTruncated": true,
    "disclosure": "FDA returned 1 of 5 matching records for this run."
  },
  "summary": {
    "byRecallClass": [
      {
        "value": "Class II",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byRecallStatus": [
      {
        "value": "Ongoing",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byRiskTier": [
      {
        "value": "Moderate",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byActivity": [
      {
        "value": "Active",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byFailureMode": [
      {
        "value": "The action is being initiated due to potential cybersecurity vulnerabilities related to a series of insulin pumps that are designed to communicate using a wireless radio frequency (RF)",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byRecallingFirm": [
      {
        "value": "Medtronic MiniMed",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ]
  },
  "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433",
  "evidenceLimitations": [
    "Recall evidence comes from official U.S. FDA OpenFDA records.",
    "Do not rely on openFDA to make decisions regarding medical care. While we make every effort to ensure that data is accurate, you should assume all results are unvalidated. We may limit or otherwise restrict your access to the API in line with our Terms of Service.",
    "https://open.fda.gov/terms/"
  ],
  "manufacturerProfile": {
    "recallHistory": [
      {
        "recallNumber": "Z-1594-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-0033-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2025-05-07",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=96745"
      },
      {
        "recallNumber": "Z-1592-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-1745-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-0524-2015",
        "recallClass": "Class II",
        "recallStatus": "Terminated",
        "initiationDate": "2014-11-04",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=69720"
      },
      {
        "recallNumber": "Z-1749-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-1650-2025",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2025-03-04",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=96421"
      },
      {
        "recallNumber": "Z-1752-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-1228-2015",
        "recallClass": "Class III",
        "recallStatus": "Terminated",
        "initiationDate": "2014-11-10",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=70424"
      },
      {
        "recallNumber": "Z-1265-2025",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2025-01-31",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=96200"
      },
      {
        "recallNumber": "Z-1747-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-0002-2025",
        "recallClass": "Class I",
        "recallStatus": "Ongoing",
        "initiationDate": "2024-07-31",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=95121"
      },
      {
        "recallNumber": "Z-1586-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-2778-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-06-16",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=99228"
      },
      {
        "recallNumber": "Z-1748-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-1581-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-2179-2014",
        "recallClass": "Class II",
        "recallStatus": "Terminated",
        "initiationDate": "2014-07-21",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=68888"
      },
      {
        "recallNumber": "Z-1587-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-1354-2022",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2022-05-23",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=90370"
      },
      {
        "recallNumber": "Z-1085-2013",
        "recallClass": "Class II",
        "recallStatus": "Terminated",
        "initiationDate": "2013-03-22",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=64754"
      }
    ],
    "supplierRiskSignals": [
      "85 related FDA recall records were found for this firm.",
      "16 related records remain ongoing."
    ]
  },
  "repeatIssue": true,
  "trend": {
    "previousPeriod": {
      "startDate": "2020-01-01",
      "endDate": "2021-12-31",
      "recallCount": 0
    },
    "currentPeriod": {
      "startDate": "2022-01-01",
      "endDate": "2026-12-31",
      "recallCount": 2
    },
    "direction": "Increasing"
  },
  "adverseEventContext": {
    "periodStart": "2023-01-01",
    "periodEnd": "2026-12-31",
    "eventCount": 215405,
    "trend": "Increasing",
    "limitations": [
      "Do not rely on openFDA to make decisions regarding medical care. While we make every effort to ensure that data is accurate, you should assume all results are unvalidated. We may limit or otherwise restrict your access to the API in line with our Terms of Service.",
      "https://open.fda.gov/terms/",
      "Manufacturer-level adverse-event context does not show causation or patient harm."
    ]
  }
}
```

**Grouped analysis example**

```json
{
  "recallNumber": "Z-2113-2018",
  "product": {
    "description": "Baxter SIGMA Spectrum Infusion Pump with Master Drug Library (Version 8), infusion pump, 35700BAX2    Product Usage:  The Baxter SIGMA Spectrum Infusion Pump with Master Drug Library is intended to be used for the controlled administration of fluids. These fluids may include pharmaceutical drugs, blood, blood products and mixture of required patient therapy. The intended routes of administration consist of the following clinically accepted routes: intravenous, arterial, subcutaneous, intrathecal, epidural or irrigation of fluid space. Spectrum Infusion Pump is intended to be used in conjunction with legally marketed intravenous administration sets and medications provided by the user. The Spectrum and Spectrum with Master Drug Library is suitable for many user facility applications such as but not limited to hospitals, outpatient care areas, homecare and ambulatory care services. Spectrum and Spectrum with Master Drug Library is intended to reduce operator interaction through automated programming thereby helping to reduce errors associated with complex device programming. Parameter programming requires trained healthcare professional confirmation of limits and drug therapy to the physician\u0019s directive.",
    "type": "Devices"
  },
  "recallingFirm": {
    "name": "Baxter Healthcare Corporation",
    "city": "Medina",
    "state": "NY",
    "country": "United States"
  },
  "recallClass": "Class II",
  "recallStatus": "Terminated",
  "lifecycleDates": {
    "initiationDate": "2018-05-08",
    "reportDate": "2018-06-13",
    "classificationDate": "2018-06-07",
    "terminationDate": "2019-04-08"
  },
  "recallReason": "The firm will be updating the Instructions for Use for the product. Current IFUs instruct users to lower the primary bag 20 inches below the secondary bag using a hanger when performing a secondary infusion. However, the firm supplies 12.5-inch hangers with the Baxter disposable secondary sets.",
  "distributionAreas": [
    "Worldwide Distribution - US Nationwide and the country of  Canada."
  ],
  "notificationMethod": "Letter",
  "recallAction": "Voluntary",
  "risk": {
    "score": 45,
    "tier": "Moderate",
    "recommendedActions": [
      "Review the FDA Class II classification",
      "Review the source reason: The firm will be updating the Instructions for Use for the product"
    ]
  },
  "attention": {
    "level": "Review",
    "reasons": [
      "FDA Class II classification.",
      "Recall status is Terminated."
    ]
  },
  "activity": "Inactive",
  "failureModes": [
    "The firm will be updating the Instructions for Use for the product"
  ],
  "coverage": {
    "matchedCount": 734,
    "returnedCount": 1,
    "isTruncated": true,
    "limit": 1,
    "disclosure": "FDA returned 1 of 734 matching records for this run with a limit of 1."
  },
  "summary": {
    "byRecallClass": [
      {
        "value": "Class II",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byRecallStatus": [
      {
        "value": "Terminated",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byRiskTier": [
      {
        "value": "Moderate",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byActivity": [
      {
        "value": "Inactive",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byFailureMode": [
      {
        "value": "The firm will be updating the Instructions for Use for the product",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byRecallingFirm": [
      {
        "value": "Baxter Healthcare Corporation",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ]
  },
  "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=80014",
  "evidenceLimitations": "...",
  "groupedAnalysis": {
    "dimension": "failureMode",
    "value": "The firm will be updating the Instructions for Use for the product",
    "count": 1,
    "rank": 1,
    "share": 1
  },
  "manufacturerProfile": {
    "recallHistory": [
      {
        "recallNumber": "Z-2113-2018",
        "recallClass": "Class II",
        "recallStatus": "Terminated",
        "initiationDate": "2018-05-08",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=80014"
      },
      {
        "recallNumber": "Z-0190-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2025-08-29",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=97604"
      },
      {
        "recallNumber": "Z-0560-2025",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2024-10-23",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=95524"
      },
      {
        "recallNumber": "Z-0884-2025",
        "recallClass": "Class I",
        "recallStatus": "Ongoing",
        "initiationDate": "2024-12-20",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=95842"
      },
      {
        "recallNumber": "Z-1926-2018",
        "recallClass": "Class II",
        "recallStatus": "Terminated",
        "initiationDate": "2018-04-24",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=79965"
      },
      {
        "recallNumber": "Z-0762-2023",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2022-11-23",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=91223"
      },
      {
        "recallNumber": "Z-0559-2025",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2024-10-23",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=95524"
      },
      {
        "recallNumber": "Z-3085-2024",
        "recallClass": "Class I",
        "recallStatus": "Ongoing",
        "initiationDate": "2024-08-20",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=95192"
      },
      {
        "recallNumber": "Z-0276-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-10-04",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83852"
      },
      {
        "recallNumber": "Z-0576-2022",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2022-01-07",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=89327"
      },
      {
        "recallNumber": "Z-1689-2024",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2024-03-15",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=94298"
      },
      {
        "recallNumber": "Z-1578-2022",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2022-07-22",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=90658"
      },
      {
        "recallNumber": "Z-0216-2025",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2024-09-19",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=95409"
      },
      {
        "recallNumber": "Z-0572-2022",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2022-01-07",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=89327"
      },
      {
        "recallNumber": "Z-0323-2025",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2024-10-11",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=95559"
      },
      {
        "recallNumber": "Z-0030-2020",
        "recallClass": "Class II",
        "recallStatus": "Terminated",
        "initiationDate": "2018-10-10",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83191"
      },
      {
        "recallNumber": "Z-1909-2019",
        "recallClass": "Class II",
        "recallStatus": "Terminated",
        "initiationDate": "2019-05-31",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83015"
      },
      {
        "recallNumber": "Z-0663-2024",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2023-12-06",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=93503"
      },
      {
        "recallNumber": "Z-1817-2022",
        "recallClass": "Class III",
        "recallStatus": "Ongoing",
        "initiationDate": "2022-09-02",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=90809"
      },
      {
        "recallNumber": "Z-1909-2018",
        "recallClass": "Class II",
        "recallStatus": "Terminated",
        "initiationDate": "2018-04-25",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=79975"
      }
    ],
    "supplierRiskSignals": [
      "378 related FDA recall records were found for this firm.",
      "15 related records remain ongoing."
    ]
  },
  "repeatIssue": true,
  "trend": {
    "previousPeriod": {
      "startDate": "2020-01-01",
      "endDate": "2021-12-31",
      "recallCount": 133
    },
    "currentPeriod": {
      "startDate": "2022-01-01",
      "endDate": "2026-12-31",
      "recallCount": 11
    },
    "direction": "Decreasing"
  },
  "adverseEventContext": "..."
}
```

**Inventory review example**

```json
{
  "recallNumber": "Z-1594-2020",
  "product": {
    "description": "Medtronic  MiniMed Paradigm Insulin pump, model number MMT-723",
    "type": "Devices",
    "brandName": "PARADIGM REAL-TIME REVEL INSULIN INFUSION PUMP",
    "model": "MMT-723",
    "catalogNumber": "MMT-723"
  },
  "recallingFirm": {
    "name": "Medtronic MiniMed",
    "city": "Northridge",
    "state": "CA",
    "country": "United States"
  },
  "recallClass": "Class II",
  "recallStatus": "Ongoing",
  "lifecycleDates": {
    "initiationDate": "2019-06-27",
    "reportDate": "2020-04-01",
    "classificationDate": "2020-03-26"
  },
  "recallReason": "The action is being initiated due to potential cybersecurity vulnerabilities related to a series of insulin pumps that are designed to communicate using a wireless radio frequency (RF). An unauthorized person could potentially connect wirelessly to a nearby insulin pump to change settings and control insulin delivery.",
  "productCodes": [
    {
      "code": "OYC",
      "name": "Pump, Infusion, Insulin, To Be Used With Invasive Glucose Sensor",
      "specialty": "Unknown"
    }
  ],
  "distributionAreas": [
    "US nationwide distribution including Puerto Rico."
  ],
  "notificationMethod": "Letter",
  "recallAction": "Voluntary",
  "risk": {
    "score": 55,
    "tier": "Moderate",
    "recommendedActions": [
      "Review the FDA Class II classification",
      "Review the source reason: The action is being initiated due to potential cybersecurity vulnerabilities related to a series of insulin pumps that are designed to communicate using a wireless radio frequency (RF)"
    ]
  },
  "attention": {
    "level": "Review",
    "reasons": [
      "FDA Class II classification.",
      "Recall status is Ongoing."
    ]
  },
  "activity": "Active",
  "failureModes": [
    "The action is being initiated due to potential cybersecurity vulnerabilities related to a series of insulin pumps that are designed to communicate using a wireless radio frequency (RF)"
  ],
  "coverage": {
    "matchedCount": 95,
    "returnedCount": 1,
    "isTruncated": true,
    "limit": 1,
    "disclosure": "FDA returned 1 of 95 matching records for this run with a limit of 1."
  },
  "summary": {
    "byRecallClass": [
      {
        "value": "Class II",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byRecallStatus": [
      {
        "value": "Ongoing",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byRiskTier": [
      {
        "value": "Moderate",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byActivity": [
      {
        "value": "Active",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byFailureMode": [
      {
        "value": "The action is being initiated due to potential cybersecurity vulnerabilities related to a series of insulin pumps that are designed to communicate using a wireless radio frequency (RF)",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byRecallingFirm": [
      {
        "value": "Medtronic MiniMed",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ]
  },
  "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433",
  "evidenceLimitations": [
    "Recall evidence comes from official U.S. FDA OpenFDA records.",
    "Do not rely on openFDA to make decisions regarding medical care. While we make every effort to ensure that data is accurate, you should assume all results are unvalidated. We may limit or otherwise restrict your access to the API in line with our Terms of Service.",
    "https://open.fda.gov/terms/"
  ],
  "inventoryExposure": {
    "matchedItems": [
      {
        "deviceName": "Medtronic MiniMed",
        "matchedOn": [
          "deviceName"
        ],
        "reviewPriority": "Low",
        "reviewReason": "Potential source match on deviceName; review is not proof that an item is affected."
      }
    ],
    "reviewQueueRank": 1
  },
  "manufacturerProfile": {
    "recallHistory": [
      {
        "recallNumber": "Z-1594-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-0033-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2025-05-07",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=96745"
      },
      {
        "recallNumber": "Z-1592-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-1745-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-0524-2015",
        "recallClass": "Class II",
        "recallStatus": "Terminated",
        "initiationDate": "2014-11-04",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=69720"
      },
      {
        "recallNumber": "Z-1749-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-1650-2025",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2025-03-04",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=96421"
      },
      {
        "recallNumber": "Z-1752-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-1228-2015",
        "recallClass": "Class III",
        "recallStatus": "Terminated",
        "initiationDate": "2014-11-10",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=70424"
      },
      {
        "recallNumber": "Z-1265-2025",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2025-01-31",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=96200"
      },
      {
        "recallNumber": "Z-1747-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-0002-2025",
        "recallClass": "Class I",
        "recallStatus": "Ongoing",
        "initiationDate": "2024-07-31",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=95121"
      },
      {
        "recallNumber": "Z-1586-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-2778-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-06-16",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=99228"
      },
      {
        "recallNumber": "Z-1748-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-1581-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-2179-2014",
        "recallClass": "Class II",
        "recallStatus": "Terminated",
        "initiationDate": "2014-07-21",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=68888"
      },
      {
        "recallNumber": "Z-1587-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-1354-2022",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2022-05-23",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=90370"
      },
      {
        "recallNumber": "Z-1085-2013",
        "recallClass": "Class II",
        "recallStatus": "Terminated",
        "initiationDate": "2013-03-22",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=64754"
      }
    ],
    "supplierRiskSignals": [
      "85 related FDA recall records were found for this firm.",
      "16 related records remain ongoing."
    ]
  },
  "repeatIssue": true,
  "trend": {
    "previousPeriod": {
      "startDate": "2020-01-01",
      "endDate": "2021-12-31",
      "recallCount": 8
    },
    "currentPeriod": {
      "startDate": "2022-01-01",
      "endDate": "2026-12-31",
      "recallCount": 55
    },
    "direction": "Increasing"
  },
  "adverseEventContext": "..."
}
```

**Watchlist comparison example**

```json
{
  "recallNumber": "Z-1594-2020",
  "product": {
    "description": "Medtronic  MiniMed Paradigm Insulin pump, model number MMT-723",
    "type": "Devices",
    "brandName": "PARADIGM REAL-TIME REVEL INSULIN INFUSION PUMP",
    "model": "MMT-723",
    "catalogNumber": "MMT-723"
  },
  "recallingFirm": {
    "name": "Medtronic MiniMed",
    "city": "Northridge",
    "state": "CA",
    "country": "United States"
  },
  "recallClass": "Class II",
  "recallStatus": "Ongoing",
  "lifecycleDates": {
    "initiationDate": "2019-06-27",
    "reportDate": "2020-04-01",
    "classificationDate": "2020-03-26"
  },
  "recallReason": "The action is being initiated due to potential cybersecurity vulnerabilities related to a series of insulin pumps that are designed to communicate using a wireless radio frequency (RF). An unauthorized person could potentially connect wirelessly to a nearby insulin pump to change settings and control insulin delivery.",
  "productCodes": [
    {
      "code": "OYC",
      "name": "Pump, Infusion, Insulin, To Be Used With Invasive Glucose Sensor",
      "specialty": "Unknown"
    }
  ],
  "distributionAreas": [
    "US nationwide distribution including Puerto Rico."
  ],
  "notificationMethod": "Letter",
  "recallAction": "Voluntary",
  "risk": {
    "score": 55,
    "tier": "Moderate",
    "recommendedActions": [
      "Review the FDA Class II classification",
      "Review the source reason: The action is being initiated due to potential cybersecurity vulnerabilities related to a series of insulin pumps that are designed to communicate using a wireless radio frequency (RF)"
    ]
  },
  "attention": {
    "level": "Review",
    "reasons": [
      "FDA Class II classification.",
      "Recall status is Ongoing."
    ]
  },
  "activity": "Active",
  "failureModes": [
    "The action is being initiated due to potential cybersecurity vulnerabilities related to a series of insulin pumps that are designed to communicate using a wireless radio frequency (RF)"
  ],
  "coverage": {
    "matchedCount": 5,
    "returnedCount": 1,
    "isTruncated": true,
    "limit": 1,
    "disclosure": "FDA returned 1 of 5 matching records for this run with a limit of 1."
  },
  "summary": {
    "byRecallClass": [
      {
        "value": "Class II",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byRecallStatus": [
      {
        "value": "Ongoing",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byRiskTier": [
      {
        "value": "Moderate",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byActivity": [
      {
        "value": "Active",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byFailureMode": [
      {
        "value": "The action is being initiated due to potential cybersecurity vulnerabilities related to a series of insulin pumps that are designed to communicate using a wireless radio frequency (RF)",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ],
    "byRecallingFirm": [
      {
        "value": "Medtronic MiniMed",
        "count": 1,
        "rank": 1,
        "share": 1
      }
    ]
  },
  "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433",
  "evidenceLimitations": [
    "Recall evidence comes from official U.S. FDA OpenFDA records.",
    "Do not rely on openFDA to make decisions regarding medical care. While we make every effort to ensure that data is accurate, you should assume all results are unvalidated. We may limit or otherwise restrict your access to the API in line with our Terms of Service.",
    "https://open.fda.gov/terms/"
  ],
  "manufacturerProfile": {
    "recallHistory": [
      {
        "recallNumber": "Z-1594-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-0033-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2025-05-07",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=96745"
      },
      {
        "recallNumber": "Z-1592-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-1745-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-0524-2015",
        "recallClass": "Class II",
        "recallStatus": "Terminated",
        "initiationDate": "2014-11-04",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=69720"
      },
      {
        "recallNumber": "Z-1749-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-1650-2025",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2025-03-04",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=96421"
      },
      {
        "recallNumber": "Z-1752-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-1228-2015",
        "recallClass": "Class III",
        "recallStatus": "Terminated",
        "initiationDate": "2014-11-10",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=70424"
      },
      {
        "recallNumber": "Z-1265-2025",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2025-01-31",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=96200"
      },
      {
        "recallNumber": "Z-1747-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-0002-2025",
        "recallClass": "Class I",
        "recallStatus": "Ongoing",
        "initiationDate": "2024-07-31",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=95121"
      },
      {
        "recallNumber": "Z-1586-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-2778-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-06-16",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=99228"
      },
      {
        "recallNumber": "Z-1748-2026",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2026-02-13",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=98186"
      },
      {
        "recallNumber": "Z-1581-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-2179-2014",
        "recallClass": "Class II",
        "recallStatus": "Terminated",
        "initiationDate": "2014-07-21",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=68888"
      },
      {
        "recallNumber": "Z-1587-2020",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2019-06-27",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=83433"
      },
      {
        "recallNumber": "Z-1354-2022",
        "recallClass": "Class II",
        "recallStatus": "Ongoing",
        "initiationDate": "2022-05-23",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=90370"
      },
      {
        "recallNumber": "Z-1085-2013",
        "recallClass": "Class II",
        "recallStatus": "Terminated",
        "initiationDate": "2013-03-22",
        "sourceUrl": "https://www.accessdata.fda.gov/scripts/ires/index.cfm?Event=64754"
      }
    ],
    "supplierRiskSignals": [
      "85 related FDA recall records were found for this firm.",
      "16 related records remain ongoing."
    ]
  },
  "repeatIssue": true,
  "trend": {
    "previousPeriod": {
      "startDate": "2020-01-01",
      "endDate": "2021-12-31",
      "recallCount": 0
    },
    "currentPeriod": {
      "startDate": "2022-01-01",
      "endDate": "2026-12-31",
      "recallCount": 2
    },
    "direction": "Increasing"
  },
  "adverseEventContext": "...",
  "watchlist": {
    "changeType": "Unchanged",
    "previousStatus": "Ongoing",
    "previousClass": "Class II",
    "previousRiskTier": "Moderate"
  }
}
```

#### 💳 Pricing

The Actor charges $0.0018 for each matching medical-device recall record returned with structured recall evidence. The event is tied to a saved recall, not to a vague result count.

#### 🔌 Integrations

Open the default dataset in Apify Console, export its records, or use the dataset API link in a downstream workflow. Repeat the same search with Track changes enabled when you want to compare later runs.

https://www.youtube.com/watch?v=bNACk1\_S\_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

#### ❓ FAQ

##### Does an inventory match prove that my device is affected?

No. It is a potential match for review. Check the FDA source record and the model, catalog, lot, or serial details before making a safety or medical decision.

##### What does Track changes report?

It compares the search with an earlier run that uses the same search settings and reports records as new or unchanged with earlier status, class, and risk context when available.

##### What happens when I leave Maximum recalls empty?

The Actor returns all available matching results until the FDA source is exhausted. Set a value when you want the run to stop after a chosen number of recalls.

##### Can one run perform several independent searches?

No. Enter one search phrase per run. Start another run when you need a separate phrase or search setup.

##### How should I read the risk score and recommended actions?

They are review context produced from the recall evidence. They do not prove causation, patient harm, recall completion, or that a particular device is affected.

##### Can I group the returned recalls?

Yes. Choose one Group results by dimension. Each grouped row can include the selected dimension, value, count, rank, and share in `groupedAnalysis`.

##### What does the FDA source link provide?

It links to the public FDA source used for the recall row. Use it to verify important product, lifecycle, and recall details.

##### Does this Actor give medical, legal, or regulatory advice?

No. It returns public recall evidence and review context. Qualified professionals and the FDA source should guide those decisions.

### 📝 Changelog

**v0.0** (27-09-2026)

- Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~fda-medical-device-recalls/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [FDA Food Recall Monitor](https://apify.com/maximedupre/fda-food-recalls-scraper): search official FDA food-enforcement recalls alongside device recalls.
- [FDA 510(k) Device Clearance Search](https://apify.com/maximedupre/fda-510k): review pre-market FDA device clearance records before post-market recall research.
- [FDA FAERS Adverse Events](https://apify.com/maximedupre/fda-faers): review public FDA adverse-event reports alongside device recall evidence.
- [FDA Import Alert Monitor](https://apify.com/maximedupre/fda-import-alerts): check FDA import-alert findings during product and supplier compliance review.
- [CPSC Product Recalls Scraper](https://apify.com/maximedupre/cpsc-product-recalls): search official consumer-product recalls for broader safety review.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `searchQuery` (type: `string`):

Enter one device, product, or recall-reason phrase. Run a separate search for another phrase.

## `recallingFirms` (type: `array`):

Optional. Enter one or more recalling firms to filter the results.

## `recallClasses` (type: `array`):

Optional. Choose one or more FDA recall classes. Leave empty to include all classes.

## `recallStatuses` (type: `array`):

Optional. Choose one or more recall statuses. Leave empty to include all statuses.

## `distributionAreas` (type: `array`):

Optional. Enter one or more states, regions, or distribution terms to filter by geography.

## `startDate` (type: `string`):

Optional. Include recalls on or after this calendar date. Use YYYY-MM-DD.

## `endDate` (type: `string`):

Optional. Include recalls on or before this calendar date. Use YYYY-MM-DD.

## `maxItems` (type: `integer`):

Optional. Stop after this many matching recalls. If you leave it blank, the Actor continues until the FDA source is exhausted.

## `groupBy` (type: `string`):

Optional. Choose one dimension for counts, ranks, and shares. Leave blank for no grouped breakdown.

## `deviceInventory` (type: `array`):

Optional. Add devices to compare with matching recalls. A match is a review signal, not proof that a model, lot, serial number, or patient is affected.

## `trackChanges` (type: `boolean`):

Optional. Compare this search with earlier runs that use the same search settings and report new or unchanged records with prior status, classification, and risk context.

## Actor input object example

```json
{
  "searchQuery": "insulin pump",
  "maxItems": 25
}
```

# Actor output Schema

## `dataset` (type: `string`):

Open the structured FDA medical-device recall records returned by this run.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQuery": "insulin pump",
    "maxItems": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/fda-medical-device-recalls").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQuery": "insulin pump",
    "maxItems": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/fda-medical-device-recalls").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQuery": "insulin pump",
  "maxItems": 25
}' |
apify call maximedupre/fda-medical-device-recalls --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,maximedupre/fda-medical-device-recalls"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/DgvRdxeJVa5yUcJwr/builds/zvofykZoMQQlXnUO6/openapi.json
