openFDA Scraper: Drug, Device & Food Recalls avatar

openFDA Scraper: Drug, Device & Food Recalls

Pricing

$1.00 / 1,000 record scrapeds

Go to Apify Store
openFDA Scraper: Drug, Device & Food Recalls

openFDA Scraper: Drug, Device & Food Recalls

Scrape all openFDA endpoints in one actor: drug adverse events (FAERS), recalls, labels, device 510k & MAUDE, food enforcement. No API key needed. Date filtering, JSON output. Use in Claude, ChatGPT & any MCP agent for pharmacovigilance.

Pricing

$1.00 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

๐Ÿ’Š openFDA Scraper: Drugs, Devices & Food Recalls, FAERS

Overview

openFDA Scraper searches every openFDA endpoint from a single actor: drug adverse events (FAERS), drug labels, drug recalls, medical device 510k clearances, device recalls, device adverse events (MAUDE), and food enforcement actions. Change the endpoint field and you switch from FAERS to food recalls without touching any other input. Every record comes back as clean structured JSON with the raw openFDA payload plus endpoint and scraped_at tags.

The FDA's openFDA API covers 12 distinct endpoints across drugs, medical devices, and food, but most developers build separate integrations for each. This actor unifies the entire openFDA surface under one input schema, with date filtering, optional key support, and pagination handled internally.

โœ… No API key needed | โœ… 12 openFDA endpoints in one actor | โœ… Date range filtering | โœ… First 10 records free | โœ… MCP-ready for AI agents

Features

Every openFDA endpoint (drug/event, drug/label, drug/enforcement, device/510k, device/recall, device/event, food/enforcement) reachable from one actor. Optional free FDA API key raises your rate limit from 1,000 to 120,000 requests per day; keyless by default. Date range filtering (YYYY-MM-DD) on every endpoint. Native openFDA search syntax passthrough for precise queries (brand_name:"Humira", patient.reaction.reactionmeddrapt:nausea). Zero charge on empty runs and errors, so exploratory queries are safe.

How it works

The actor calls api.fda.gov/{endpoint} with your search query, date range, and pagination cursor. If you supply an FDA API key it is appended to each request for the higher rate limit; otherwise the keyless 1,000 req/day tier is used. Pagination is walked internally up to your maxResults cap.

Each record is stored as the raw openFDA response object with endpoint and scraped_at fields added. Structure varies by endpoint (drug/event fields differ from device/510k), so refer to the openFDA documentation for per-endpoint field definitions.

Reliability posture: blocked, empty, or failed runs are never charged. You only pay for a record that was actually delivered to the dataset.

๐Ÿงพ Input configuration

{
"endpoint": "drug/enforcement",
"search": "reason_for_recall:\"contamination\"",
"dateFrom": "2026-01-01",
"dateTo": "2026-07-01",
"maxResults": 500
}

๐Ÿ“ค Output format

Records vary by endpoint. Example from drug/event (real FAERS report, drug detail trimmed for readability):

{
"endpoint": "drug/event",
"safetyreportid": "10003304",
"receivedate": "20140312",
"serious": "2",
"patient": {
"patientsex": "2",
"reaction": [
{ "reactionmeddrapt": "Drug hypersensitivity", "reactionoutcome": "6" }
],
"drug": [
{ "medicinalproduct": "DOXYCYCLINE HYCLATE", "drugcharacterization": "1", "drugdosagetext": "UNK" },
{ "medicinalproduct": "ASPIRIN", "drugcharacterization": "1", "drugdosagetext": "UNK" }
]
},
"scraped_at": "2026-07-15T04:19:41.803Z"
}

Common top-level fields (endpoint-dependent):

FieldDescription
๐Ÿ”Œ endpointopenFDA endpoint the record came from
๐Ÿ†” safetyreportid / k_number / recall_numberEndpoint-specific ID
๐Ÿ“… receivedate / report_date / recall_initiation_dateEndpoint-specific date field
๐Ÿฉบ patientReaction and drug detail on FAERS records
๐Ÿท๏ธ openfdaNormalized openFDA drug or device fields
๐Ÿ•’ scraped_atISO timestamp of capture

Full field definitions per endpoint: open.fda.gov/apis.

๐Ÿ’ผ Common use cases

Pharmacovigilance Pull FAERS adverse-event reports for a molecule or reaction and score signal strength over time. Combine with drug label pulls for on-label vs. off-label context.

Drug and device recall monitoring Schedule daily runs on drug/enforcement, device/recall, or food/enforcement with a rolling date range. Alert internal teams the moment a competitor product is recalled.

Medical device competitive intelligence Track 510k clearances by manufacturer or product code, and cross-reference with MAUDE for post-market signals. Feed the results into an internal pipeline dashboard.

Food safety research Pull food enforcement actions by product, hazard, or firm for policy and journalism work. Combine with retailer data to trace product distribution.

๐Ÿš€ Getting started

  1. Open the actor and pick an Endpoint (default drug/event); see the list above for all seven common endpoints.
  2. Enter a Search query using openFDA syntax (e.g. brand_name:"Humira", patient.reaction.reactionmeddrapt:nausea).
  3. Optionally add Date from and Date to (YYYY-MM-DD).
  4. Optionally paste a free FDA API key from open.fda.gov/apis/authentication/ for the higher rate limit.
  5. Click Save & Start, then download as JSON, CSV, or Excel, or pull via API or MCP.

FAQ

Do I need an FDA API key? No. The actor works keyless at 1,000 req/day per IP. For large pulls, get a free key at open.fda.gov/apis/authentication/ and enter it in the fdaApiKey field for 120,000 req/day.

Which endpoint has the most data? drug/event (FAERS) has the largest dataset with millions of adverse event reports going back to 2004. device/510k covers clearances back to 1976.

How do I search for a specific drug? Use openFDA syntax in search: brand_name:"Humira" for a brand, generic_name:"semaglutide" for generics. The openFDA docs at open.fda.gov list every field per endpoint.

Can I automate recall monitoring? Yes. Schedule the actor daily or weekly on Apify with endpoint: drug/enforcement (or device or food) and a rolling date range.

How am I charged? Pay per record at $0.005 per record ($5 per 1,000). The first 10 records are free for life on every Apify account. Zero charge on empty runs or errors.

Use in Claude, ChatGPT & any MCP agent

https://mcp.apify.com/?tools=themineworks/openfda-unified-crawler

Or call it programmatically with the Apify client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/openfda-unified-crawler').call({
endpoint: 'drug/event',
search: 'brand_name:"Humira"',
maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

๐Ÿ› ๏ธ Complete your life-sciences pipeline

FDA data pairs with the rest of the biomedical stack:

Typical flow: monitor FAERS for a molecule, cross-check against active trials, and pair with the underlying literature.

Found a bug or have a feature request? Open an issue on the actor's Apify Console page or reach out through the Apify profile.