FDA API: Get reported side effects
Lists the most frequently reported reaction terms for a brand or generic medicine in FDA adverse-event reports, with counts and the share of all matching reports. Reports do not establish causation.
Unofficial. Not affiliated with or endorsed by FDA.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Medicine, required
medicine Brand or generic medicine name, for example Ozempic.
Ozempic
Up to 120 characters.
- Max Results optional
max_results Maximum number of reaction terms to show, for example 20.
20 (default)
Whole number from 1 to 100.
Input as JSON
{ "medicine": "Ozempic"}Output
{ "reactions": [ { "page_url": "https://api.fda.gov/drug/event.json?search=%28patient.drug.medicinalproduct.exact%3A%22OZEMPIC%22+OR+patient.drug.openfda.brand_name.exact%3A%22OZEMPIC%22+OR+patient.drug.openfda.generic_name%3A%22OZEMPIC%22%29+AND+patient.reaction.reactionmeddrapt.exact%3A%22NAUSEA%22&limit=10" , "reaction": "Nausea", "report_count": 9744, "share_of_all_reports_percent": 14.76 }, { "page_url": "https://api.fda.gov/drug/event.json?search=%28patient.drug.medicinalproduct.exact%3A%22OZEMPIC%22+OR+patient.drug.openfda.brand_name.exact%3A%22OZEMPIC%22+OR+patient.drug.openfda.generic_name%3A%22OZEMPIC%22%29+AND+patient.reaction.reactionmeddrapt.exact%3A%22OFF+LABEL+USE%22&limit=10" , "reaction": "Off label use", "report_count": 6941, "share_of_all_reports_percent": 10.51 }, { "page_url": "https://api.fda.gov/drug/event.json?search=%28patient.drug.medicinalproduct.exact%3A%22OZEMPIC%22+OR+patient.drug.openfda.brand_name.exact%3A%22OZEMPIC%22+OR+patient.drug.openfda.generic_name%3A%22OZEMPIC%22%29+AND+patient.reaction.reactionmeddrapt.exact%3A%22VOMITING%22&limit=10" , "reaction": "Vomiting", "report_count": 6336, "share_of_all_reports_percent": 9.59 } ], "total_reports": 66038, "causality_note": "These reports do not prove the medicine caused the reaction. Reporting rates cannot be used to estimate the chance of a side effect.", "medicine_name_matched": "Ozempic", "serious_reports_percent": 49.05}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"open.fda.gov/get_reported_side_effects","input":{"medicine":"Ozempic"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "open.fda.gov/get_reported_side_effects" , "input": { "medicine": "Ozempic" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "open.fda.gov/get_reported_side_effects" , "input": { "medicine": "Ozempic" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run open.fda.gov/get_reported_side_effects# with {"medicine":"Ozempic"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "medicine" ], "properties": { "medicine": { "type": "string", "maxLength": 120, "minLength": 1, "description": "Brand or generic medicine name, for example Ozempic." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Maximum number of reaction terms to show, for example 20." } }}Output schema
{ "type": "object", "required": [ "medicine_name_matched", "total_reports", "serious_reports_percent", "causality_note", "reactions" ], "properties": { "reactions": { "type": "array", "items": { "type": "object", "required": [ "reaction", "report_count", "share_of_all_reports_percent", "page_url" ], "properties": { "page_url": { "type": "string", "description": "FDA results for reports matching this medicine and reaction." }, "reaction": { "type": "string", "description": "FDA reaction term in words." }, "report_count": { "type": "integer", "description": "Number of matching reports listing this reaction." }, "share_of_all_reports_percent": { "type": "number", "description": "Percentage of all matching reports listing this reaction." } } }, "description": "Reaction terms, ordered by report count from highest to lowest. Some terms describe use or reporting rather than symptoms." }, "total_reports": { "type": "integer", "description": "Total FDA adverse-event reports mentioning the medicine." }, "causality_note": { "type": "string", "description": "Caution about interpreting reports." }, "medicine_name_matched": { "type": "string", "description": "Medicine name used to find matching reports." }, "serious_reports_percent": { "type": "number", "description": "Percentage of matching reports marked serious." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
open.fda.gov/get_reported_side_effects- Returns
- total reports, serious percent, reaction terms with counts and shares, FDA result links
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method open.fda.gov/get_reported_side_effects with the inputs above.
Ask your agent
- What are the most commonly reported side effects of Lipitor in FDA adverse event reports?
- Show me the top 15 reaction terms reported for metformin with their counts and percentages.
- how many FDA adverse event reports mention nausea for Zoloft and what share of all reports is that
- Which reactions are most often logged for ibuprofen in the FDA reporting database, and what fraction of reports were serious?
- Give me the leading reported reaction terms for Ozempic on fda.gov, limited to 25 results.
See more
All FDA methodsFinds FDA drug enforcement recalls by medicine or company name, newest first, with status, class, reason and quantity. Recent recalls may not yet appear.
open.fda.gov/search_drug_recallsFinds the latest FDA drug label for a brand or generic medicine and returns its uses, directions, warnings, ingredients and a DailyMed link.
open.fda.gov/get_drug_labelFinds FDA food recall enforcement reports by product, brand, or allergen, newest first. Reports are updated weekly and recall statuses may lag.
open.fda.gov/search_food_recallsFinds FDA medical device recalls whose product description or recalling company matches a phrase, newest first, with the recall class and its health-risk meaning from each FDA recall page. An optional start date limits recalls to those initiated on or after it.
fda.gov/search_device_recallsLooks up a medicine by brand or generic name on Drugs.com and returns a plain-language overview: class, uses, availability, schedule, dosage forms, side effects, and pregnancy and breastfeeding notes.
drugs.com/get_drugChecks 2 to 10 medicine names together on the Drugs.com interaction checker and returns drug-to-drug interactions and food or lifestyle warnings, most severe first, plus the names it could not recognise.
drugs.com/check_drug_interactionsGets the US cash prices Drugs.com lists for a brand or generic medicine by strength, dosage form and quantity, optionally filtered. Where a range is listed the lower price is returned.
drugs.com/get_drug_pricesFinds PubMed medical and life-science articles by topic, with publication details and free full-text links when PubMed confirms them.
pubmed.ncbi.nlm.nih.gov/search_articles