FDA Scraper: Recalls, Adverse Events & Shortages
Pricing
from $12.86 / 1,000 drug recalls
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
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?
| Surface | Main fields |
|---|---|
| Drug, device and food recalls | recallNumber, 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 labels | brandName, genericName, manufacturer, productType, route, boxedWarning, indications, warnings, effectiveTime, splId |
| Drug shortages | genericName, companyName, status, dosageForm, presentation, therapeuticCategory, initialPostingDate, updateDate, updateType |
| Every row | recordType, 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:
| Event | Price per record | Per 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
- Open the actor on Apify and click Try for free.
- Enter one or more drug, product or company names, switch on the surfaces you need, and set Max Items.
- Click Start, then download the dataset as CSV, Excel, JSON or XML from the Output tab.
โ๏ธ FDA scraper input
| Field | What it does |
|---|---|
| searchTerms | Drug, product or company names. Leave empty for the most recent records of each surface. |
| maxItems | Total records across all surfaces. |
| maxItemsPerSurface | Cap per surface per search term (default 100). |
| includeDrugRecalls | Drug recall enforcement reports (on by default). |
| includeAdverseEvents, includeDrugLabels, includeDrugShortages, includeDeviceRecalls, includeFoodRecalls | Switch on the other surfaces (off by default). |
| recallClassification | Any, Class I, Class II or Class III (recall surfaces only). |
| seriousOnly | Only 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.
| Actor | Scope | Price per record |
|---|---|---|
| This actor | 6 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.
โ๏ธ Is it legal to scrape FDA data?
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.
๐ Want related healthcare and safety data?
- Clinical Trials Scraper for the trials behind these drugs.
- NPPES NPI Registry Scraper for US provider lookups.
- NHTSA Vehicle Safety Aggregator for vehicle recalls.
๐ 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