Drugs.com API: Get drug overview
Looks 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.
Unofficial. Not affiliated with or endorsed by Drugs.com.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Medicine, required
medicine Brand or generic medicine name, for example Lipitor or ibuprofen.
ibuprofen
Input as JSON
{ "medicine": "ibuprofen"}Output
{ "name": "Ibuprofen", "used_for": "Ibuprofen is a nonsteroidal anti-inflammatory drug (NSAID). It works by reducing hormones that cause inflammation and pain in the body. Ibuprofen is used to reduce fever and treat pain or inflammation caused by many conditions such as headache , toothache , back pain , arthritis, menstrual cramps, o…", "page_link": "https://www.drugs.com/ibuprofen.html" , "drug_class": "Nonsteroidal anti-inflammatories (NSAIDs)", "brand_names": [ "Advil", "Genpril", "IBU" ], "availability": "Both prescription and over the counter", "generic_name": "ibuprofen", "pregnancy_notes": "Ask a doctor before using this medicine if you are pregnant or breastfeeding. If you are pregnant, you should not take ibuprofen unless your doctor tells you to. Taking an NSAID at 20 weeks or later in pregnancy can cause serious heart or kidney problems in the unborn baby and possible complications…", "generic_available": true, "breastfeeding_notes": "Ask a doctor before using this medicine if you are pregnant or breastfeeding.", "common_side_effects": [ "nausea, vomiting, gas", "bleeding", "dizziness , headache" ], "serious_side_effects": [ "Get emergency medical help if you have signs of an allergic reaction to ibuprofen ( hives , difficult breathing, swelling in your face or throat) or a severe skin reaction (fever, sore throat , burning eyes, skin pain, red or purple skin rash with blistering and peeling).", "Get emergency medical help if you have signs of a heart attack or stroke: chest pain spreading to your jaw or shoulder, sudden numbness or weakness on one side of the body, slurred speech, leg swelling, feeling short of breath.", "Stop using this medicine and call your doctor at once if you have:" ], "dosage_forms_and_strengths": "oral capsule (200 mg), oral suspension (100 mg/5 mL; 50 mg/1.25 mL), oral tablet (100 mg; 200 mg; 400 mg; 600 mg; 800 mg), oral tablet, chewable (100 mg; 50 mg)" , "controlled_substance_schedule": null}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"drugs.com/get_drug","input":{"medicine":"ibuprofen"}}' # 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": "drugs.com/get_drug" , "input": { "medicine": "ibuprofen" }})# 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": "drugs.com/get_drug" , "input": { "medicine": "ibuprofen" } }), 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 drugs.com/get_drug# with {"medicine":"ibuprofen"}"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", "minLength": 1, "description": "Brand or generic medicine name, for example Lipitor or ibuprofen." } }}Output schema
{ "type": "object", "required": [ "name", "generic_name", "brand_names", "drug_class", "used_for", "availability", "controlled_substance_schedule", "common_side_effects", "serious_side_effects", "dosage_forms_and_strengths", "pregnancy_notes", "breastfeeding_notes", "generic_available", "page_link" ], "properties": { "name": { "type": [ "string", "null" ], "description": "Medicine name." }, "used_for": { "type": [ "string", "null" ], "description": "Short description of what it treats." }, "page_link": { "type": [ "string", "null" ], "description": "Medicine page link." }, "drug_class": { "type": [ "string", "null" ], "description": "Drug class." }, "brand_names": { "type": "array", "items": { "type": "string" }, "description": "Other brand names." }, "availability": { "type": [ "string", "null" ], "description": "Prescription only, over the counter, or both." }, "generic_name": { "type": [ "string", "null" ], "description": "Generic medicine name." }, "pregnancy_notes": { "type": [ "string", "null" ], "description": "Pregnancy guidance." }, "generic_available": { "type": [ "boolean", "null" ], "description": "Whether a generic version is available, or null when not stated." }, "breastfeeding_notes": { "type": [ "string", "null" ], "description": "Breastfeeding guidance." }, "common_side_effects": { "type": "array", "items": { "type": "string" }, "description": "Common side effects." }, "serious_side_effects": { "type": "array", "items": { "type": "string" }, "description": "Serious symptoms and side effects." }, "dosage_forms_and_strengths": { "type": [ "string", "null" ], "description": "Available dosage forms and strengths listed on the medicine page." }, "controlled_substance_schedule": { "type": [ "string", "null" ], "description": "Schedule in words if controlled, otherwise null." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
drugs.com/get_drug- Returns
- name, generic name, brand names, drug class, uses, availability, schedule, dosage forms, side effects, pregnancy and breastfeeding notes, generic availability, page link
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 drugs.com/get_drug with the inputs above.
Ask your agent
- What is metformin used for, and what drug class does it belong to?
- Give me an overview of Lipitor including its uses and side effects.
- Is sertraline safe during breastfeeding and pregnancy?
- Drugs.com info on ibuprofen: dosage forms, schedule, and whether a generic is available.
- What are the common side effects and uses of amoxicillin 500 mg capsules?
See more
All Drugs.com methodsGets 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_pricesChecks 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_interactionsFinds possible pill matches on the Drugs.com pill identifier by imprint, optionally narrowed by color and shape, with each pill's labeler.
drugs.com/identify_pillFinds 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_labelLooks up a medicine in the NHS medicines A to Z and returns its guidance: uses, key facts, who can take it, how to take it, side effects, pregnancy and interactions. Sections absent from NHS guidance are null; a plain name with separate adult and child pages selects the adult page.
nhs.uk/get_medicineLooks up a medicine at Cost Plus Drugs by generic or brand name and returns the listed price and its breakdown for a strength, form and quantity, with the strengths and forms on offer. The drug price excludes shipping and taxes; standard shipping is shown separately.
costplusdrugs.com/get_drug_priceLists 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.
open.fda.gov/get_reported_side_effectsFinds 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_recalls