OnlineBluePills: Your Comprehensive Pharmaceutical Guide

How to Use OpenFDA and FAERS APIs to Access Drug Side Effect Reports

How to Use OpenFDA and FAERS APIs to Access Drug Side Effect Reports
By Cedric Mallister 15 Dec 2025

OpenFDA Query Simulator

Simulate OpenFDA Drug Safety Query

Enter a drug name and optional side effect to see how an OpenFDA query would work. This tool simulates responses without using the actual API.

Simulated Results

Run a query to see simulated results here.

Important note: This is a simulation. Actual OpenFDA data:

  • Has 3-6 month reporting delay
  • Relies on voluntary reporting (bias toward serious events)
  • Does not prove causation
  • May not include all side effects

Every year, over 14 million adverse event reports are submitted to the FDA. Most of them end up buried in slow-to-update XML files, inaccessible to anyone without a data science degree. But since 2014, the OpenFDA API has changed that. It turns messy, hard-to-read FDA data into clean, searchable JSON - letting developers, researchers, and even curious patients dig into real-world drug side effect reports without jumping through bureaucratic hoops.

What Is OpenFDA and How Does It Relate to FAERS?

OpenFDA is not a new database. It’s a gateway. Think of it as a translator between the FDA’s raw data and the people who want to use it. The data it serves comes mostly from the FDA Adverse Event Reporting System (FAERS), which collects voluntary reports from doctors, pharmacists, patients, and drug manufacturers about harmful reactions to medications.

Before OpenFDA, getting this data meant downloading multi-gigabyte XML files, writing custom parsers, and spending weeks cleaning up inconsistent entries. Now, you can ask for all reports involving metformin and get back a structured list in seconds - with patient age, reported side effect, drug dosage, and outcome all neatly labeled.

OpenFDA doesn’t collect new data. It takes the same FAERS reports the FDA already has and makes them machine-readable. The system uses Elasticsearch to index everything, so you can search by drug name, symptom, patient age, or even the manufacturer. The API is free, public, and updated quarterly - though there’s usually a 3- to 6-month lag between when a report is filed and when it appears in the system.

How to Access the Drug Side Effect Endpoint

The main endpoint for drug safety data is https://api.fda.gov/drug/event.json. This is where you’ll find every side effect report linked to a specific medication. You don’t need to be a programmer to use it - but you do need to know how to build a simple query.

Here’s what a basic request looks like:

https://api.fda.gov/drug/event.json?search=patient.drug.generic_name:metformin&limit=10

This asks for the first 10 reports where metformin was taken. You can swap out metformin for any drug name. To find reports for a brand name like Glucophage, use patient.drug.brand_name:Glucophage.

Want reports where patients had liver damage? Add the symptom:

https://api.fda.gov/drug/event.json?search=patient.drug.generic_name:metformin+AND+patient.reaction.reactionmeddrapt:liver+function+abnormal

These queries use Elasticsearch syntax. It’s not always intuitive, but it’s powerful. You can combine multiple filters: age range, gender, outcome (death, hospitalization, life-threatening), and even the reporter type (doctor, consumer, pharmacist).

Getting an API Key (And Why You Need One)

Without an API key, you’re limited to 1,000 requests per day. That’s fine for occasional checks. But if you’re running a research project, building an app, or pulling data weekly, you’ll hit that wall fast.

Registering for a free key at open.fda.gov/apis/authentication/ bumps your limit to 120,000 requests per day and 240 per minute. That’s enough for most academic and small-scale commercial uses.

Getting the key is simple: just fill out a form with your name, email, and what you plan to use the data for. No credit card. No waiting. You get your key instantly via email.

Once you have it, include it in every request:

https://api.fda.gov/drug/event.json?search=patient.drug.generic_name:metformin&api_key=YOUR_KEY_HERE

Most programming languages have libraries to handle this automatically. In Python, you’d pass it as a header. In R, you’d use the openFDA package and run set_api_key("YOUR_KEY_HERE") before any queries.

A Victorian scientist typing JSON code on a mechanical computer, with a mural showing data transformation behind him.

What Data You Actually Get Back

Each response is a JSON object with a few key sections:

  • patient.drug - The medication(s) involved, including generic name, brand name, dosage, route, and indication (why the patient was taking it).
  • patient.reaction - The reported side effects, coded using MedDRA (Medical Dictionary for Regulatory Activities). This is standardized, so “nausea” and “feeling sick” both map to the same term.
  • patient.patientsex - Gender: male, female, or unknown.
  • patient.patientage - Age in years, or age group if exact age is redacted for privacy.
  • outcome - Did the patient recover, die, require hospitalization, or have a life-threatening event?
  • reportercountry - Where the report came from (mostly U.S., but includes international submissions).

Important: No names, addresses, or Social Security numbers are included. The FDA removes all personal identifiers to protect privacy. That means you can’t track individual patients over time - only spot patterns across thousands of reports.

Limitations You Can’t Ignore

OpenFDA is powerful - but it’s not perfect. Here’s what it won’t tell you:

  • It doesn’t prove causation. Just because someone took metformin and then had liver problems doesn’t mean the drug caused it. The report could be a coincidence. Many side effects are reported for drugs that are already known to be safe.
  • Reporting is voluntary and biased. Serious events are more likely to be reported. Mild side effects like headaches or fatigue often go unreported. If you see a spike in “dizziness” reports for a new drug, it might just mean doctors are paying attention - not that the drug is dangerous.
  • There’s a delay. Data is updated every three months. A new side effect reported in January won’t show up until April or May.
  • No clinical context. You won’t know if the patient had kidney disease, was on 12 other drugs, or had a family history of liver issues. That context is critical for interpreting risk.

OpenFDA is a signal detector, not a diagnostic tool. It tells you what people are reporting. It doesn’t tell you what’s actually causing harm.

How Researchers and Developers Use It

Academic studies have used OpenFDA to find unexpected links between drugs and side effects. One 2022 study found a higher-than-expected number of reports linking the diabetes drug pioglitazone to bladder cancer - even though the FDA hadn’t flagged it yet. That data helped push for a formal review.

Startups like MedWatcher use OpenFDA to build consumer-facing apps that show real-time side effect trends. If you search for lisinopril on their site, you’ll see a graph of how often users report cough, dizziness, or swelling - based on actual reports.

For developers, the API is a goldmine for building health tools. You can create:

  • Drug interaction checkers that flag common side effect patterns
  • Mobile apps that show real-time safety alerts when a new drug is prescribed
  • Dashboard tools for pharmacists to monitor local side effect trends

The R package openFDA and Python libraries like requests make it easy to pull data into analysis tools like Jupyter or RStudio. You can run statistical tests, build heat maps of side effects by age group, or compare two drugs side by side.

A group of people studying a map of the U.S. with pulsing red dots showing drug side effect reports, under a floating eagle.

What You Can’t Do With OpenFDA

Don’t use it to:

  • Decide whether to stop taking your medication
  • Diagnose yourself based on a side effect report
  • Compare drug safety for regulatory decisions without clinical validation

The FDA is very clear: “Do not rely on openFDA to make decisions regarding medical care. Always speak to your health provider.” That’s not just a disclaimer - it’s a legal and ethical boundary.

Commercial platforms like Oracle Argus or ARTEMIS offer deeper analysis, clinical context, and automated signal detection - but they cost tens of thousands of dollars a year. OpenFDA is the only free, official source for this level of detail.

Getting Started: A Simple Step-by-Step Plan

If you’re new to this, here’s how to begin:

  1. Go to open.fda.gov/apis/authentication/ and get your free API key.
  2. Test a basic query in your browser: https://api.fda.gov/drug/event.json?search=patient.drug.generic_name:ibuprofen&limit=1
  3. Install a tool like Postman or use Python’s requests library to automate queries.
  4. Start with one drug you’re interested in - say, atorvastatin.
  5. Look for the most common side effects: muscle pain, liver enzyme changes, diabetes risk.
  6. Compare results across different age groups or genders.
  7. Check the FDA’s own summaries for that drug to see if your findings match official warnings.

You don’t need to be a data scientist. You just need curiosity and a willingness to ask questions.

Where to Learn More

The official OpenFDA documentation at open.fda.gov is the best place to start. It includes:

  • Full endpoint documentation
  • Sample queries
  • Downloadable datasets (if you prefer files over APIs)
  • Links to GitHub repositories with code examples in Python, R, and JavaScript

For R users, the openFDA package on CRAN handles authentication and rate limiting automatically. For Python, use the requests library with error handling for HTTP 429 (rate limit) responses.

There are no official tutorials for advanced signal detection - but the GitHub issues page for OpenFDA has hundreds of real questions from developers who’ve hit the same walls you will. Search for "side effect pattern" or "Elasticsearch query" and you’ll find solutions.

Is OpenFDA the same as FAERS?

No. FAERS is the FDA’s database of voluntary adverse event reports. OpenFDA is the API that makes FAERS data easy to search and use. Think of FAERS as the library and OpenFDA as the online catalog you can query from your phone.

Can I find out if a drug is dangerous using OpenFDA?

You can find patterns - like a sudden spike in reports of heart palpitations after a drug’s launch. But you can’t prove it’s dangerous. Many reports are coincidental. OpenFDA shows what people are reporting, not what’s scientifically proven to cause harm. Always consult a doctor before making health decisions.

Why are some side effects missing from OpenFDA?

Reporting is voluntary, and many side effects - especially mild ones - go unreported. Also, reports take months to be processed and added to the system. If you don’t see a side effect listed, it doesn’t mean it doesn’t happen. It just means it hasn’t been reported yet - or hasn’t been processed.

Do I need to know programming to use OpenFDA?

No. You can test queries directly in your browser. But if you want to pull large amounts of data, automate searches, or analyze trends, you’ll need basic coding skills. Python, R, or even Excel with Power Query can help. There are no drag-and-drop tools yet - but the API is designed to be simple enough for non-programmers to learn.

How often is the data updated?

OpenFDA updates its drug adverse event data every three months. The FDA processes reports in batches, and there’s typically a 3- to 6-month delay between when a report is filed and when it appears in the API. This delay is due to data cleaning, de-identification, and quality checks.

Tags: OpenFDA API FAERS API drug side effects adverse event reports FDA data
  • December 15, 2025
  • Cedric Mallister
  • 0 Comments
  • Permalink

Write a comment

Categories

  • Health (50)
  • Prescription Drugs (44)
  • Medical Conditions (17)
  • Online Pharmacy (13)
  • Supplements (8)
  • Nutrition (2)
  • Mental Health (2)
  • Fitness and Nutrition (2)
  • Weight Loss (1)

ARCHIVE

  • December 2025 (16)
  • November 2025 (19)
  • October 2025 (28)
  • September 2025 (14)
  • August 2025 (2)
  • July 2025 (2)
  • June 2025 (1)
  • May 2025 (3)
  • April 2025 (4)
  • March 2025 (3)
  • February 2025 (2)
  • January 2025 (3)

Menu

  • About OnlineBluePills
  • Terms of Service - OnlineBluePills
  • Privacy Policy
  • Privacy & Data Protection Policy
  • Get in Touch

© 2025. All rights reserved.