openFDA Drug Safety Profile
Pricing
Pay per event
openFDA Drug Safety Profile
Per-drug openFDA profile: reported adverse events, boxed warning and recalls by class. Reports do not show a drug caused an event. Not medical advice. Official API.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Aidan Jones
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
Read this first. This actor returns public FDA data. It is not medical advice. Adverse event reports are unverified, can be duplicated, and do not show that a drug caused an event. Counts are not rates and cannot be compared across drugs. Do not start, stop or change a medicine because of this data; ask a clinician or pharmacist.
Give it drug names and get one structured safety profile per drug from the official openFDA API: adverse event report counts and the most reported reactions, the share of serious reports and reports with death, the current label's boxed warning, indications and contraindications, and recall counts by class with the most recent recall reports. No scraping.
Use it for monitoring what has been reported about a drug, label and recall lookup across a list of drugs, or to feed a dashboard or an AI agent with FDA facts that carry their own caveats.
What you get
adverseEvents(FDA Adverse Event Reporting System via openFDA): total reports, serious reports and share, reports with a death outcome, top reactions (MedDRA preferred terms) with counts and share of reports, optional received-date windowlabel: newest single-ingredient label that names the drug: boxed warning (hasBoxedWarning), indications, contraindications (each capped at 3000 characters, flagged when cut), brand and generic names, manufacturer, route, pharmacologic class, effective daterecalls: total drug enforcement reports, counts by class (Class I is the most serious), the most recent reports with reason, firm, product and dates- The date window (
receivedFrom,receivedTo) filters adverse event reports only; label and recall data are not date-filtered - A
noticeon every profile, and astatusoffound,not_foundorerror
Price
Pay per event. You pay for each drug profile stored with data.
| Event | Price |
|---|---|
| Actor start | $0.005 per start event. Apify bills one start event per GB of memory; the default run uses 512 MB, so one event. |
| Drug safety profile returned | $0.03 |
20 drugs cost about $0.61. Drugs with no match (not_found) and drugs that hit an error are not charged. If any requested section fails for a drug, that drug is an uncharged error item.
Example input
{"drugs": ["metformin", "atorvastatin"],"sections": ["events", "label", "recalls"],"receivedFrom": "2023-01-01","topReactions": 10,"recentRecalls": 3}
Example output
{"status": "found","drug": "metformin","sectionsRequested": ["events", "label", "recalls"],"adverseEvents": {"totalReports": 445561,"seriousReports": 298459,"seriousShare": 0.6698,"deathReports": 36734,"receivedFrom": null,"receivedTo": null,"topReactions": [{ "reaction": "FATIGUE", "reports": 21809, "shareOfReports": 0.0489 }]},"label": {"matchingLabels": 351,"effectiveDate": "2026-09-09","hasBoxedWarning": true,"boxedWarning": "BOXED WARNING WARNING: LACTIC ACIDOSIS Postmarketing cases of metformin-associated lactic acidosis have resulted in death...","textTruncated": false},"recalls": {"totalRecalls": 33,"byClassification": { "Class II": 30, "Class III": 3 },"recent": [{ "recallNumber": "D-0292-2025", "classification": "Class II", "reason": "Presence of Foreign Tablets/Capsules.", "reportDate": "2025-04-02" }]},"dataLastUpdated": "2026-10-28","notice": "Not medical advice. ..."}
Real values from a live run, shortened. A run summary (profiles returned, not found, errors) is saved under the key-value store key SUMMARY.
FAQ
Where does the data come from? The openFDA API (api.fda.gov) of the U.S. Food and Drug Administration: the FDA Adverse Event Reporting System, drug labeling (SPL) and drug enforcement (recall) reports. See open.fda.gov/terms. openFDA itself says not to rely on it for medical care decisions and that results are unvalidated.
Does a high report count mean a drug is dangerous? No. Reports mention a drug as suspect, concomitant or interacting, come from patients, clinicians and manufacturers, and reflect how widely a drug is used and how much attention it gets. The match is on the name, so a search for a single ingredient also counts reports for products that contain it. Use the counts to see what has been reported, not to compare drugs or estimate risk.
What does a name match? Generic, brand and substance names, as phrases. If a name finds nothing, try the generic or the brand name.
What are the request limits? openFDA allows 240 requests per minute and 1,000 per day per IP address without a key, 120,000 per day with a free key from open.fda.gov. The actor keeps 300 ms between requests, retries 429 and 5xx errors honoring Retry-After, and stops with a clear message if the daily limit is hit. A profile uses up to 7 requests (4 events, 1 label, 2 recalls), so choose sections and recentRecalls: 0 to use fewer. Apify IPs are shared, so add your own key (the input field is secret) for larger runs.
Why was the label not the one I use? The actor takes the newest single-ingredient label that names the drug; many repackagers publish labels, and matchingLabels shows how many matched.
Data and limits
- Source: openFDA (FDA). Data updates on FDA's schedule;
dataLastUpdatedis the events dataset date. - Up to 200 drugs per run.
- Recall data covers FDA drug enforcement reports, not every market withdrawal or shortage.
- This is a research aid. It is not medical advice.