FDA Scraper: Recalls, Adverse Events & Shortages avatar

FDA Scraper: Recalls, Adverse Events & Shortages

Pricing

from $12.86 / 1,000 drug recalls

Go to Apify Store
FDA Scraper: Recalls, Adverse Events & Shortages

FDA Scraper: Recalls, Adverse Events & Shortages

Scrape openFDA drug recalls, FAERS adverse events, labels with boxed warnings, drug shortages, plus device and food recalls. Search by drug or company, filter Class I-III or serious events. Export CSV, Excel, JSON or XML. No login or API key. Not charged for empty searches.

Pricing

from $12.86 / 1,000 drug recalls

Rating

0.0

(0)

Developer

RecordsData

RecordsData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Share

PunkRecordsData

FDA Scraper: Recalls, Adverse Events & Shortages

FDA Scraper by PunkRecordsData pulls drug recalls, FAERS adverse event reports, official drug labels, drug shortages, device recalls and food recalls from the official openFDA API. Search by drug, product or company, get one normalized row per record, and export CSV, Excel, JSON or XML. No login, no API key. Priced per record, and nothing is charged for empty searches or failed requests.

The FDA Scraper turns the six main openFDA safety datasets into clean tables. A search for "metformin" matches 432,897 adverse event reports and 91 drug recall records in openFDA at the time of writing, and the whole openFDA drug label index holds 262,888 labels. You pick which surfaces to include, and each one is billed as its own event. It is built for pharmacovigilance teams, hospital pharmacy and supply chain staff, compliance and legal analysts, and health researchers.

๐Ÿ’Š FDA drug recall scraper: what does it do?

  • Search drug recalls (FDA enforcement reports) by drug, product or recalling firm, and filter by Class I, II or III.
  • Pull FAERS adverse event reports for a drug, with an option to keep only serious outcomes.
  • Download official drug labels (SPL) with brand, generic name, manufacturer, route, boxed warning flag, indications and warnings.
  • Check the FDA drug shortage list by generic name or company.
  • Add medical device recalls and food and supplement recalls using the same recall columns.
  • Cap each surface separately so one very large surface never uses the whole run.

๐Ÿ“‹ What FDA data can you extract?

SurfaceMain fields
Drug, device and food recallsrecallNumber, classification, status, product, reason, recallingFirm, city, state, country, distribution, quantity, recallInitiationDate, reportDate
Adverse events (FAERS)safetyReportId, receiveDate, serious, seriousnessDeath, seriousnessHospitalization, patientAge, patientSex, drugs, reactions, reporterCountry
Drug labelsbrandName, genericName, manufacturer, productType, route, boxedWarning, indications, warnings, effectiveTime, splId
Drug shortagesgenericName, companyName, status, dosageForm, presentation, therapeuticCategory, initialPostingDate, updateDate, updateType
Every rowrecordType, searchTerm (when you searched), scrapedAt

Fields that the FDA does not publish for a record are shown as "Not Disclosed". Columns that would be empty for every row are not emitted.

๐Ÿ“Š Sample output of the FDA recall data

A real drug recall row from a run with the search term "metformin":

{
"recordType": "drug-recall",
"recallNumber": "D-0657-2026",
"classification": "Class II",
"status": "Ongoing",
"product": "Synjardy XR Tablets (empagliflozin and metformin hydrochloride extended-release tablets), 12.5/1000 mg, 60 Tablets per Bottle, Rx only",
"reason": "CGMP Deviations: An incorrect detergent was used and the required swab sampling was not performed on a production hopper that had previously been used for a different product.",
"recallingFirm": "Boehringer Ingelheim Pharmaceuticals, Inc.",
"city": "Ridgefield",
"state": "CT",
"country": "United States",
"distribution": "OH",
"quantity": "560 bottles",
"recallInitiationDate": "2026-06-12",
"reportDate": "2026-07-08",
"searchTerm": "metformin",
"scrapedAt": "2026-10-04T04:59:19.934Z"
}

A real adverse event row from the same run (the drugs list is cut to 3 entries here):

{
"recordType": "adverse-event",
"safetyReportId": "26940238",
"receiveDate": "2026-06-30",
"serious": "No",
"seriousnessDeath": "No",
"seriousnessHospitalization": "No",
"patientAge": "75",
"patientSex": "Male",
"drugs": ["DUPIXENT", "AMLODIPINE BESYLATE", "ASPIRIN"],
"reactions": ["Upper-airway cough syndrome", "Nasal congestion", "Sinus disorder"],
"reporterCountry": "US",
"searchTerm": "metformin",
"scrapedAt": "2026-10-04T04:59:20.997Z"
}

๐Ÿ’ต How much does it cost to scrape FDA data?

The actor uses pay per event pricing. You pay for each record saved to the dataset, by type:

EventPrice per recordPer 1,000 records
Drug recall$0.015 (Free plan), lower on paid Apify plans$15.00
Adverse event (FAERS)$0.01$10.00
Drug label$0.01$10.00
Drug shortage$0.01$10.00
Device recall$0.01$10.00
Food recall$0.01$10.00

Drug recall prices drop on higher Apify plans (Bronze $0.01429, Gold $0.01286 per record). You are never charged for empty searches, failed requests, error rows or duplicate records. If you set a maximum cost per run, the actor stops cleanly when it is reached. Free plan runs return a 10 record preview.

๐Ÿš€ How to scrape FDA data in 3 steps

  1. Open the actor on Apify and click Try for free.
  2. Enter one or more drug, product or company names, switch on the surfaces you need, and set Max Items.
  3. Click Start, then download the dataset as CSV, Excel, JSON or XML from the Output tab.

โš™๏ธ FDA scraper input

FieldWhat it does
searchTermsDrug, product or company names. Leave empty for the most recent records of each surface.
maxItemsTotal records across all surfaces.
maxItemsPerSurfaceCap per surface per search term (default 100).
includeDrugRecallsDrug recall enforcement reports (on by default).
includeAdverseEvents, includeDrugLabels, includeDrugShortages, includeDeviceRecalls, includeFoodRecallsSwitch on the other surfaces (off by default).
recallClassificationAny, Class I, Class II or Class III (recall surfaces only).
seriousOnlyOnly serious FAERS adverse events.

Example input:

{
"searchTerms": ["metformin", "insulin"],
"maxItems": 500,
"includeDrugRecalls": true,
"includeAdverseEvents": true,
"seriousOnly": true
}

๐Ÿ“ฆ FDA scraper output

The dataset has one row per record, with recordType telling you the surface (drug-recall, adverse-event, drug-label, drug-shortage, device-recall, food-recall). The Output tab has an overview table; the full dataset is available through the API. If a search matches nothing, the run finishes as succeeded with a clear status message and charges nothing. If openFDA is unreachable and no records were delivered, the run is marked as failed and charges nothing.

๐Ÿ“ˆ FDA scraper vs other Apify actors

Prices below were read from the public Apify Store on 2026-10-03.

ActorScopePrice per record
This actor6 openFDA surfaces in one run$0.01 to $0.015
fda-recall-intelligence (benthepythondev)recalls$0.05
fda-drug-shortages-monitor (nexgendata)shortages$0.10
fda-device-recalls (ryanclinton)device recalls$0.002
openfda-food-recalls-scraper (scrapers_lat)food recalls$0.008 to $0.009

Single-surface actors can be cheaper per record, especially for device and food recalls. This actor costs more per record on those two surfaces. What the extra buys you is one input, one schema and one dataset across drug recalls, adverse events, labels, shortages, device and food recalls, plus a serious-only filter and a Class I, II, III filter. If you only need device recalls at volume, a dedicated actor may cost less.

๐Ÿงญ FDA data use cases

  • Pharmacovigilance: weekly FAERS pulls for your molecules, serious events only.
  • Hospital pharmacy: recalls and shortages for every drug on the formulary in one scheduled run.
  • Legal and due diligence: all recalls and label warnings for a firm, with report dates.
  • Supply chain: shortage status changes by therapeutic category, compared run over run.

๐Ÿ”Œ Run the FDA scraper via API and integrations

curl -X POST "https://api.apify.com/v2/acts/RecordsData~fda-drug-safety-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchTerms":["metformin"],"maxItems":10}'

You can schedule runs, call webhooks on completion, and connect the dataset to Zapier, Make, n8n, Google Sheets or Slack. The actor also works as a tool for AI agents through the Apify MCP server.

The actor only reads openFDA, a public API run by the US Food and Drug Administration, and it respects the API rate limits. Data is public-domain government data. The FDA states that openFDA is not validated for clinical use, so do not use it for medical decisions.

โ“ Frequently asked questions

How do I get FDA recall data for a specific drug as CSV?

Enter the drug name in Search terms, keep Drug recalls on, click Start, and download CSV from the dataset.

What do Class I, Class II and Class III recalls mean?

Class I means a reasonable chance of serious harm or death. Class II means temporary or reversible harm. Class III means harm is unlikely. The recall classification filter accepts each.

Can I get FDA adverse event reports for a medication?

Yes. Switch on Adverse events (FAERS). Each row has seriousness flags, patient age and sex, drugs involved and MedDRA reaction terms. Use seriousOnly to keep serious reports.

How do I check if a drug is on the FDA shortage list?

Switch on Drug shortages and search the generic name. Rows include status, company, dosage form and update dates.

Does it include boxed warnings?

Label rows carry a Yes or No boxedWarning flag, plus excerpts of indications and warnings (cut to 500 characters).

Do I need an openFDA API key?

No. The actor uses the public openFDA tier and paces its requests.

Why did I get 0 results?

The search term matched nothing in the surfaces you switched on, or all surfaces were off. The run status message says which. Try a shorter term, such as the generic name, or switch on more surfaces. Nothing is charged.

How many records can one run return?

Up to 1,000,000 on paid plans. openFDA limits one query to about 26,000 records, so use several search terms for larger pulls. Free plan runs return 10 records.

How fresh is the data?

It is read live from openFDA at run time. Each row has its own report or update date.

๐Ÿ†˜ Support

Open an issue in the Issues tab or write to contact.punkrecordsdata@gmail.com. This is an independent tool, not affiliated with the FDA.

Last updated: 2026-10-03