# openFDA Medical Device Events Scraper (`parseforge/openfda-device-event-scraper`) Actor

Export MAUDE medical-device adverse-event reports from openFDA. Search 24M+ reports by device name, manufacturer, event type, and event-date range. Pull report ID, device, manufacturer, event narrative, patient outcome, and dates.

- **URL**: https://apify.com/parseforge/openfda-device-event-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Business, Other, Education
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $18.00 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🏥 openFDA Medical Device Events Scraper

> 🚀 **Export the official FDA medical-device safety dataset in seconds.** Pull **10,000,000+ MAUDE post-market reports** filtered by device, manufacturer, event type, or date range. No login, no daily quota juggling, no schema guesswork.

The **openFDA Medical Device Events Scraper** exports MAUDE (Manufacturer and User Facility Device Experience) post-market device adverse events and returns **22 fields per record**, including report identifiers, dates of event and receipt, device generic and brand names, manufacturer details, product problems, patient outcomes, and the full event narrative. MAUDE is the foundation of U.S. medical-device post-market surveillance.

The catalog covers **every device adverse-event report published by the FDA, from infusion pumps and insulin pumps to imaging systems and implants**. This Actor turns the live device safety feed into a downloadable dataset as CSV, Excel, JSON, or XML in under five minutes. Filtering happens at source, so you skip the paging and field-name spelunking entirely.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Medtech QA and post-market surveillance teams, FDA compliance officers, recall researchers, device-safety analysts, biomedical engineers, health-tech investors, investigative journalists | Signal detection, post-market surveillance reports, competitor recall trackers, narrative-text mining, complaint-handling dashboards, investigative reporting on device safety |

### 📋 What the openFDA Medical Device Events Scraper does

Six filtering workflows in a single run:

- 🏥 **Device generic-name filter.** Restrict to one device category, e.g. INFUSION PUMP, INSULIN PUMP, CATHETER.
- 🏷️ **Brand-name filter.** Restrict to a device brand or trade name.
- 🏭 **Manufacturer filter.** Substring match on manufacturer company, e.g. MEDTRONIC, BAXTER, ABBOTT.
- 🚨 **Event-type filter.** Malfunction, Injury, Death, Other, or No answer provided.
- 📅 **Event-date from.** Lower bound on event date, format `YYYYMMDD`.
- 📅 **Event-date to.** Upper bound on event date, format `YYYYMMDD`.

Each record includes the report number, MDR key, event type, four dates (event, received, report, added), event location, product-problem flag and full problems list, report source, reporter country, manufacturer name and city, the full device array, patient outcomes, patient count, and the free-text event narrative.

> 💡 **Why it matters:** device safety signals hide in the narrative text. Building a parser yourself means handling decades of MAUDE submission drift, manufacturer name aliasing, and multi-patient structure. This Actor skips that work and keeps the dataset fresh on every run.

### 📊 Data fields

Each record includes: `dateAdded`, `dateChanged`, `dateOfEvent`, `dateReceived`, `dateReport`, `devices`, `eventLocation`, `eventText`, `eventType`, `manufacturerCity`, `manufacturerName`, `mdrReportKey`, `patientCount`, `patients`, `productProblemFlag`, `productProblems`, `reporterCountry`, `reportNumber`, `reportSource`, `scrapedAt`, `typeOfReport`. These field names come straight from the actor's dataset schema, so what you see here is what lands in your dataset.

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the openFDA Medical Device Events Scraper page on the Apify Store.
3. 🎯 **Set input.** Pick a device, manufacturer, event type, or date range, and set `maxItems`.
4. 🚀 **Run it.** Click **Start** and let the Actor collect your data.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to downloaded dataset: **3-5 minutes.** No coding required.

### 🔗 Recommended Actors

- [**💊 openFDA Drug Adverse Events Scraper**](https://apify.com/parseforge/openfda-drug-events-scraper) - FAERS post-market drug safety reports
- [**💊 openFDA Drug NDC Directory Scraper**](https://apify.com/parseforge/openfda-drug-ndc-scraper) - Marketed drug products with NDC, ingredients, and labelers
- [**📋 Drugs@FDA Approvals Scraper**](https://apify.com/parseforge/openfda-drugsfda-scraper) - NDA, ANDA, and BLA approval records
- [**🧪 ClinicalTrials.gov Scraper**](https://apify.com/parseforge/clinicaltrials-gov-scraper) - Clinical trial registrations and results
- [**🩺 Florida MQA License Scraper**](https://apify.com/parseforge/florida-mqa-scraper) - U.S. healthcare practitioner license records

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more healthcare and life-sciences scrapers.

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the U.S. Food and Drug Administration. All trademarks mentioned are the property of their respective owners. Only publicly available openFDA records are collected. Safety reports do not establish causation and should not be interpreted as clinical conclusions.

### 🆘 Need Help?

If you hit a bug, have questions about setup, or need a scraper we haven't built yet, open our [contact form](https://tally.so/r/BzdKgA) or write to parseforge@protonmail.com. We also take on paid custom data projects.

For faster answers, join our [Discord](https://parseforge.co/discord). It's the best place to get support and suggest new actors.

# Actor input Schema

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

How many device adverse events to collect per run.

## `deviceName` (type: `string`):

Generic device name (substring), e.g. INFUSION PUMP, INSULIN PUMP, CATHETER.

## `brandName` (type: `string`):

Device brand / trade name.

## `manufacturerName` (type: `string`):

Device manufacturer name (substring), e.g. MEDTRONIC, BAXTER, ABBOTT.

## `eventType` (type: `string`):

Severity classification of the event.

## `dateFrom` (type: `string`):

Lower bound on the event date. Format: YYYYMMDD. Example: 20200101.

## `dateTo` (type: `string`):

Upper bound on the event date. Format: YYYYMMDD. Example: 20231231.

## Actor input object example

```json
{
  "maxItems": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/openfda-device-event-scraper").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 = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/openfda-device-event-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "maxItems": 10
}' |
apify call parseforge/openfda-device-event-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/openfda-device-event-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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