How to Use OpenFDA and FAERS APIs to Access Drug Side Effect Reports
Nov, 27 2025
Every year, millions of people report unexpected reactions to medications. These aren’t just random complaints-they’re critical clues that help regulators and researchers spot dangerous patterns. The OpenFDA API and the FAERS database are the two most important tools for accessing this raw, real-world data. But they’re not easy to use. If you’ve ever tried digging through FDA reports and got lost in XML files or endless forms, you’re not alone. This guide cuts through the noise. You’ll learn how to actually get side effect reports, what the data means, and how to avoid the most common mistakes.
What OpenFDA and FAERS Actually Are
FAERS stands for the FDA Adverse Event Reporting System. It’s a database of over 14 million reports of side effects, overdoses, and medication errors submitted by doctors, patients, and drug companies since the 1960s. These reports come in raw text, scanned forms, and PDFs. Before OpenFDA, getting this data meant downloading massive XML files, writing custom parsers, and spending weeks cleaning up messy data.
OpenFDA changed all that. Launched in 2014, it’s an API that turns FAERS and other FDA datasets into clean, searchable JSON. Think of it like Google for FDA reports. Instead of hunting through archives, you type a query like drug.drugname: "ibuprofen" and get back structured data on every reported reaction-age, gender, symptoms, outcomes-all in seconds.
OpenFDA doesn’t collect new data. It just makes FAERS usable. The FDA processes reports with a delay of up to three months. So if someone reports a reaction in August, it might not show up in OpenFDA until November. That’s important. You’re not seeing real-time alerts. You’re seeing trends that have already been processed.
How to Get Started with the OpenFDA API
You don’t need to be a programmer to use OpenFDA, but you do need to know how to build a URL. The base endpoint for drug adverse events is:
https://api.fda.gov/drug/event.json
To search for side effects from metformin, you add a search parameter:
https://api.fda.gov/drug/event.json?search=drug.generic_name:"metformin"
That’s it. Paste that into your browser. You’ll get a JSON response with 10 reports. Each one includes:
- patient age and sex
- the drug name (generic and brand)
- the adverse event term (coded in MedDRA, like "hyperglycemia" or "hepatotoxicity")
- the outcome (recovered, hospitalized, died, etc.)
- the date the report was received
But here’s the catch: you’re limited to 1,000 requests per day without an API key. If you’re doing serious research, you need to register at open.fda.gov/apis/authentication/. With a key, you get 120,000 requests per day and 240 per minute. That’s enough to run daily checks on multiple drugs.
How to Find Real Signals, Not Just Noise
Just seeing a bunch of reports doesn’t tell you if a drug is dangerous. One person reports nausea after taking aspirin. That’s normal. But if 300 people report liver failure after taking the same supplement, that’s a signal.
Here’s how to spot real patterns:
- Search for the drug and a specific symptom. Example:
search=drug.generic_name:"clopidogrel"+AND+patient.reaction.reactionmeddrapt:"intracranial hemorrhage" - Use the
limit=1000parameter to get the maximum results per call. Then useskip=1000,skip=2000, etc., to page through results. - Look for repeated terms. If you see "hepatitis," "jaundice," and "elevated liver enzymes" all tied to the same drug, it’s not coincidence.
- Check the outcomes. If 15% of reports say "death" or "hospitalization," that’s a red flag.
Don’t trust single reports. Look for clusters. For example, a 2022 study using OpenFDA found that the diabetes drug canagliflozin had a higher-than-expected number of reports linking it to ketoacidosis. That finding helped trigger an FDA safety alert.
What You Can’t Do With OpenFDA
OpenFDA is powerful-but it’s not magic. Here’s what it doesn’t do:
- No patient identities. All personal info is removed. You can’t track if the same person reported multiple events.
- No causality. The system doesn’t say if the drug caused the reaction. It just says someone reported it after taking the drug.
- No context. You won’t know if the patient had liver disease, took other drugs, or was over 80. That info is missing.
- No comparison. There’s no baseline. How many people take metformin? How many get diarrhea? OpenFDA doesn’t tell you.
This is why experts warn: "Do not rely on openFDA to make decisions regarding medical care." It’s a research tool, not a diagnostic one. If you’re a patient and see a scary side effect, talk to your doctor. Don’t stop your meds based on a JSON file.
Tools That Make OpenFDA Easier
Writing Python or JavaScript to call the API every time is overkill if you just want to check a few drugs. Here are simpler options:
- R Package (openFDA): Install the R package and run
set_api_key("your-key-here"). Then usedrug_events("lisinopril")to get results in a tidy data frame. - MedWatcher: A free consumer tool built on OpenFDA data. Type in a drug name and it shows top side effects with simple charts.
- Microsoft Power Query: Connect directly to the OpenFDA API in Excel or Power BI. You can pull data, filter, and visualize without writing code.
These tools handle the API limits, pagination, and JSON parsing for you. You just focus on the data.
How This Data Is Used in the Real World
Academic researchers use OpenFDA to spot drug risks before they become public. In 2023, a team at Johns Hopkins analyzed reports for weight-loss drugs and found a pattern of heart valve issues tied to a new compound. They published the findings, and the FDA issued a warning within weeks.
Pharmaceutical companies use it for post-market safety monitoring. If a new drug hits the market and reports of rashes spike, they can trace it back to specific batches or patient groups.
Even journalists use it. In 2022, a ProPublica investigation used OpenFDA to show that certain antibiotics were linked to thousands of hospitalizations-but the FDA hadn’t flagged them. The report led to congressional hearings.
OpenFDA isn’t just for experts. It’s for anyone who wants to know what’s really happening with the drugs people take every day.
Common Mistakes and How to Avoid Them
Most people fail at OpenFDA because they make these mistakes:
- Using the wrong endpoint. Drug events? Use
/drug/event.json. Not/drug/label.jsonor/device/event.json. - Forgetting to URL-encode special characters. Spaces, quotes, and colons break queries. Use
%20for spaces,%22for quotes. - Ignoring rate limits. If you get a 429 error, you’ve hit the limit. Wait 60 seconds or get an API key.
- Assuming correlation = causation. Just because 50 people reported headaches after taking a supplement doesn’t mean the supplement caused them.
- Not checking the date range. Reports older than 2010 are spotty. Stick to data from 2015 onward for reliability.
Test your queries in a browser first. If you get a 404 or empty results, double-check your syntax. The OpenFDA documentation has a search builder tool that helps you construct valid queries without guessing.
What’s Next for OpenFDA
The FDA is expanding OpenFDA beyond drugs. New endpoints now include medical device reports, food safety incidents, and tobacco product complaints. The goal is to make every FDA dataset as accessible as drug side effect data.
They’re also working on reducing the three-month delay. Early tests show some data is now being processed in under 30 days. That’s huge for spotting emerging risks faster.
And the community is growing. GitHub has over 1,200 forks of the OpenFDA codebase. Developers are building tools to auto-detect signals, visualize trends, and even alert users when a new drug shows unusual patterns.
This isn’t just a government project. It’s becoming a global resource for drug safety.
Final Thoughts
OpenFDA and FAERS are the most transparent window into how drugs really affect people. They’re not perfect. They’re messy. But they’re honest. No pharmaceutical company can hide behind secrecy when this data is public.
If you’re a researcher, a journalist, a student, or just someone who wants to understand the risks of your medication-this is your tool. Learn the basics. Use the API. Ask questions. And never forget: the goal isn’t to scare people. It’s to make sure drugs are safer for everyone.
DIVYA YADAV
November 28, 2025 AT 16:42They’re hiding something. OpenFDA? FAERS? All just a smokescreen. The FDA and Big Pharma wrote these systems together. You think they’d let you see real data? Nah. Every report with a serious outcome gets quietly buried. I’ve seen it-people report heart attacks after vaccines, and suddenly the data disappears from the API. They delay everything by three months on purpose. Why? To let the drug make billions before anyone notices. And don’t even get me started on how they code reactions-‘headache’ instead of ‘stroke’-they’re sanitizing death reports. This isn’t transparency. It’s control. They want you to think you have power, but you’re just digging through their trash.
And why is this only for drugs? What about the 500,000 people who die every year from hospital errors? No API for that. No transparency. Only when it’s a pill they care. That’s the real story here.
They call it ‘research tool’? Please. It’s a distraction. Real safety would mean mandatory real-time reporting. Not this slow, broken, corporate-approved garbage. I’ve filed 17 reports myself. Zero responses. Zero changes. Just silence. And now they want us to ‘trust the data’? Trust who? The same people who approved OxyContin?
Wake up. This isn’t open. It’s opiate. And you’re the patient they’re testing on.
Next time you take a pill, ask yourself: Who really benefits from you believing this system works?
Kim Clapper
November 29, 2025 AT 03:02Dear author,
While your exposition on the OpenFDA API is technically accurate, it is, regrettably, profoundly naive in its assumption that the public is capable of interpreting structured adverse event data without catastrophic misinterpretation. The very notion that laypersons-many of whom lack basic statistical literacy-should be empowered to ‘spot signals’ in a system riddled with reporting bias, underreporting, and confounding variables is not merely misguided; it is ethically perilous.
The FDA does not publish this data to enable citizen science. It publishes it to satisfy legal disclosure obligations while maintaining plausible deniability. The moment a patient reads ‘15% death rate’ for a drug and discontinues therapy, the system fails. Not because the data is wrong-but because the context is absent. You provide no guidance on relative risk, baseline incidence, or Bayesian reasoning. You hand a loaded gun to someone who doesn’t know how to hold it.
Moreover, the suggestion that ‘MedWatcher’ or ‘Power Query’ make this accessible is dangerously misleading. These tools abstract the complexity but amplify the misinterpretation. A chart showing ‘top side effects’ for metformin implies causation where none has been established. This is not democratization of data-it is the commodification of fear.
For the sake of public health, I implore you: cease promoting this as a ‘tool for everyone.’ It is a research instrument for trained epidemiologists-and even then, only with rigorous peer review. To do otherwise is to abdicate professional responsibility.
Sincerely,
Kim Clapper, Ph.D. (Hypothetical)
Bruce Hennen
November 30, 2025 AT 20:34You misspelled ‘metformin’ in your example URL. It’s ‘drug.generic_name:”metformin”’-not ‘drug.drugname’. Also, you said ‘paste that into your browser’ but didn’t mention that you need to URL-encode the quotes. That’s a 404 waiting to happen. And you call this a ‘guide’? Half the sentences are fragments. You use ‘you’ inconsistently-sometimes imperative, sometimes declarative. And where’s the citation for that Johns Hopkins study? No DOI? No journal name? No year? That’s not research-that’s blog post fiction.
Also, ‘OpenFDA doesn’t collect new data’-technically true, but misleading. It aggregates, normalizes, and indexes. That’s a form of collection. You’re not being precise. If you’re going to teach people how to use APIs, at least get the semantics right.
And why are you using ‘MedDRA’ without defining it? It’s a controlled vocabulary. Not a ‘code’. Don’t be lazy. This isn’t Reddit. It’s public health infrastructure.
Fix this. Or don’t. But don’t pretend you’re helping anyone.
Jake Ruhl
December 1, 2025 AT 20:46okay so i just typed in ‘ibuprofen’ into openfda and it came back with like 300 reports of people dying?? like… what??
i mean i took ibuprofen last week for my headache and now im scared to breathe. what if my kidneys just… give up??
and why does the government let this stuff be sold?? i mean if people are dying from painkillers then why is it on every pharmacy shelf??
and i saw one report where someone said ‘i took it and my tongue swelled’ and then they died and i’m like… that’s not a side effect that’s a horror movie
and what if they’re lying?? what if the reports are fake?? what if the fda is just making this up to scare us??
i think the real story is that the drug companies are poisoning us and the government is covering it up with this ‘data’ thing so we think we’re safe
i’m not taking anything anymore. not pills. not vitamins. not even aspirin. i’m going back to herbal tea and prayer
also why does it say ‘patient sex: female’ but no name?? are they hiding who the dead people are??
someone needs to investigate this. i’m starting a petition.
and why does the fda have a 3 month delay?? that’s not a delay that’s a coverup. they’re waiting for the bodies to pile up before they say anything. it’s like watching a horror movie and the cop says ‘we’ll look into it next fiscal quarter’
we need to burn the system down.
Chuckie Parker
December 1, 2025 AT 23:30OpenFDA is a joke. All this data is useless because it’s not controlled. Anyone can report anything. Grandmas report ‘I felt weird after taking my vitamins’ and it goes into the same bucket as a 42-year-old with liver failure. No verification. No filtering. Just raw garbage.
And you want us to trust this? To make medical decisions? You’re insane. The FDA doesn’t regulate this data. It just hosts it. That’s not transparency. That’s negligence.
Also, you mentioned ‘canagliflozin’ and ketoacidosis. That’s a known risk. The label says so. You’re not discovering anything. You’re just repackaging the warning.
Stop pretending this is revolutionary. It’s just a glorified search engine for complaints. Real science uses clinical trials. Not this.
George Hook
December 3, 2025 AT 08:38I appreciate the effort here. This is one of the clearest summaries of OpenFDA I’ve seen in a while. Most guides either drown you in code or oversimplify to the point of uselessness.
One thing I’d add: the delay isn’t just bureaucratic-it’s intentional. The FDA waits to validate reports before publishing, to reduce noise from duplicate submissions, misattributions, or even fraud. A single patient might report the same event through three different channels. The system needs time to deduplicate.
Also, the 1,000-request limit? That’s not a barrier-it’s a filter. It keeps the API from being exploited by bots or scrapers that just want to flood the system. If you’re doing serious work, getting a key isn’t a hassle-it’s a rite of passage.
And yes, correlation isn’t causation. But that’s true of every dataset. The power here is in pattern recognition over time. A single report of jaundice? Noise. 120 reports across 18 months? That’s a signal. And that’s what researchers use it for.
Don’t let the noise drown out the signal. Use it wisely.
Also, thank you for mentioning Power Query. I’ve used it to teach undergrads how to analyze drug safety data without writing a single line of code. It’s a game-changer for non-programmers.
jaya sreeraagam
December 5, 2025 AT 01:18OMG this is SO helpful!! I’ve been trying to understand why my mom’s new diabetes med made her so dizzy and I didn’t know where to look!!
I used the link you gave and searched for ‘metformin’ and found like 12 reports of dizziness and low blood sugar-exactly what she’s going through!!
I showed it to her doctor and he said ‘good catch’ and adjusted her dose!!
So yes, it’s not perfect but it’s a START!! I’m not a scientist but I’m a daughter who cares!!
Also I used MedWatcher and it made a cute little chart!! I shared it with my mom and she actually laughed and said ‘well at least now I know I’m not crazy’
Thank you for making this feel less scary and more like a tool we can use!!
PS: I typed ‘metformin’ wrong the first time and got nothing so I learned to copy-paste the exact spelling lol!!
PPS: I’m going to check my thyroid med next!!
Katrina Sofiya
December 6, 2025 AT 14:12Thank you for writing this with such clarity and care. In a world saturated with fear-driven misinformation, your piece stands as a beacon of responsible, evidence-based communication.
You’ve honored the complexity of the data without overwhelming the reader. The distinction between signal and noise, between research and diagnosis, between transparency and alarmism-these are not academic distinctions. They are life-and-death boundaries.
I’ve shared this with my patients who are curious about their medications. Not to scare them, but to empower them-with context, with caution, and with compassion.
You’ve reminded us that science isn’t cold. It’s human. And when we make it accessible without distorting it, we do something profoundly noble.
Thank you for doing the work. The world needs more voices like yours.
kaushik dutta
December 7, 2025 AT 08:06As someone who’s worked with FAERS data across three continents, I’ve seen how this system bridges Western medical paradigms and global health realities. In India, where polypharmacy is common and reporting is sparse, OpenFDA becomes a critical reference point-not because it’s complete, but because it’s the only structured dataset available.
But here’s the real issue: the MedDRA coding system is rooted in Anglo-American clinical lexicons. Terms like ‘hepatotoxicity’ or ‘hyperglycemia’ don’t map cleanly onto local symptom descriptions. A patient in rural Bihar might report ‘jaundice-like yellowing and fatigue’-but the system codes it as ‘generalized weakness’ because ‘jaundice’ isn’t in their dropdown.
This isn’t just a technical gap-it’s a cultural one. We need multilingual, context-aware coding frameworks. Otherwise, we’re silencing half the world’s adverse event reports.
Also, the three-month delay? In low-resource settings, that’s a death sentence. If a drug causes a rare reaction in 1 in 50,000 patients, and only 200 people take it in a year, you’ll never see the signal. We need real-time, anonymized, blockchain-backed reporting-encrypted, decentralized, and community-verified.
OpenFDA is a start. But the next version must be global, not just open.
doug schlenker
December 8, 2025 AT 01:56I’ve been using OpenFDA for years as a pharmacist, mostly to check on new drugs my patients are asking about. It’s not perfect, but it’s the best tool we’ve got.
What I appreciate most is how it gives patients a way to feel heard. When someone says, ‘I read online that this drug causes X,’ I can show them the actual data-how many reports, what the outcomes were, how it compares to other drugs. It turns fear into conversation.
And yeah, it’s messy. People report ‘feeling sad’ after taking a statin. Is it depression? Or just a bad week? We don’t know. But we can see if it’s happening more than expected.
I tell my patients: ‘This isn’t a verdict. It’s a conversation starter.’
And I’m glad someone took the time to explain it without hype or fear. This post? It’s exactly what the public needs-not a manual, not a warning, but a bridge.