{"openapi":"3.1.0","info":{"title":"Meds API","version":"0.1.0","description":"FDA drug labels, side effects and interactions, recalls, shortages, NDC lookup, clinical trials and MedlinePlus health topics — read-only from U.S. primary sources. Information, not medical advice.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://meds.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/meds/docs"},"termsOfService":"https://connectorbay.com/meds/terms"},"servers":[{"url":"https://meds.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/meds/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/drug_lookup":{"post":{"operationId":"drug_lookup","summary":"What a drug is, from RxNorm and its current FDA label: brand ↔ generic, active ingredients, drug class, Rx or OTC, route","description":"What a drug is, from RxNorm and its current FDA label: brand ↔ generic, active ingredients, drug class, Rx or OTC, routes\n    and dose forms, manufacturer, approval number, what it is approved for (label 'uses'), the boxed warning if any, which label\n    sections exist, links to the DailyMed label and the MedlinePlus consumer page. Start here for any drug question; use\n    label_section for the full text of a section.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"Brand or generic drug name: 'Lipitor', 'atorvastatin', 'Advil', 'metformin'. Misspellings are corrected via RxNorm.","examples":["Lipitor","metformin"],"title":"Name","type":"string"},"prefer":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Bias label choice: 'rx' (prescription) or 'otc'. Default: whichever the name matches best.","examples":["rx","otc"],"title":"Prefer"}},"required":["name"],"title":"drug_lookupArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/label_section":{"post":{"operationId":"label_section","summary":"The full text of one section of the drug's FDA-approved label — uses, dosage, forms_and_strengths, boxed_warning, warnin","description":"The full text of one section of the drug's FDA-approved label — uses, dosage, forms_and_strengths, boxed_warning, warnings,\n    contraindications, side_effects, interactions, pregnancy, pediatric, geriatric, overdose, storage, mechanism,\n    pharmacokinetics, clinical_studies, patient_info, ingredients, abuse_and_dependence, and OTC 'ask_doctor' / 'stop_use'.\n    Use for \"how is X taken\", \"who must not take X\", \"what does the label say about pregnancy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"Brand or generic drug name: 'Lipitor', 'atorvastatin', 'Advil', 'metformin'. Misspellings are corrected via RxNorm.","examples":["Lipitor","metformin"],"title":"Name","type":"string"},"section":{"description":"One of: uses, dosage, forms_and_strengths, boxed_warning, warnings, contraindications, side_effects, interactions, pregnancy, pediatric, geriatric, overdose, storage, mechanism, pharmacokinetics, clinical_studies, patient_info, ingredients, ask_doctor, stop_use, abuse_and_dependence, description. Or any raw openFDA label field name.","examples":["dosage","side_effects","interactions"],"title":"Section","type":"string"},"prefer":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Bias label choice: 'rx' (prescription) or 'otc'. Default: whichever the name matches best.","examples":["rx","otc"],"title":"Prefer"},"max_chars":{"default":6000,"description":"Trim long label text to about this many characters (500–20000).","maximum":20000,"minimum":500,"title":"Max Chars","type":"integer"},"set_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Read this exact label (DailyMed set ID) instead of resolving by name.","title":"Set Id"}},"required":["name","section"],"title":"label_sectionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/side_effects":{"post":{"operationId":"side_effects","summary":"Two views of a drug's adverse effects: what the FDA label lists (adverse reactions section, and the boxed warning if any","description":"Two views of a drug's adverse effects: what the FDA label lists (adverse reactions section, and the boxed warning if any)\n    and what has actually been reported to FDA's FAERS system in the last N years — the most-reported reactions with counts and\n    the share of reports marked serious. FAERS is voluntary reporting: counts are signals, not rates. Use for \"side effects of\n    X\", \"is hair loss reported with Y\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"Brand or generic drug name: 'Lipitor', 'atorvastatin', 'Advil', 'metformin'. Misspellings are corrected via RxNorm.","examples":["Lipitor","metformin"],"title":"Name","type":"string"},"prefer":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Bias label choice: 'rx' (prescription) or 'otc'. Default: whichever the name matches best.","examples":["rx","otc"],"title":"Prefer"},"years":{"default":3,"description":"FAERS reporting window in years (1–10).","maximum":10,"minimum":1,"title":"Years","type":"integer"}},"required":["name"],"title":"side_effectsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/interactions":{"post":{"operationId":"interactions","summary":"Do two drugs' FDA labels warn about each other? Searches each label's interaction, warning and contraindication sections","description":"Do two drugs' FDA labels warn about each other? Searches each label's interaction, warning and contraindication sections\n    for the other drug — by generic and brand name and by drug class (e.g. 'NSAIDs', 'CYP3A4 inhibitors') — and returns the\n    matching label sentences. 'Not listed' means neither label mentions the other, which is NOT the same as safe: tell the user\n    to confirm with a pharmacist. Use for \"can I take X with Y\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"drug_a":{"description":"Brand or generic drug name: 'Lipitor', 'atorvastatin', 'Advil', 'metformin'. Misspellings are corrected via RxNorm.","examples":["Lipitor","metformin"],"title":"Drug A","type":"string"},"drug_b":{"description":"Brand or generic drug name: 'Lipitor', 'atorvastatin', 'Advil', 'metformin'. Misspellings are corrected via RxNorm.","examples":["Lipitor","metformin"],"title":"Drug B","type":"string"}},"required":["drug_a","drug_b"],"title":"interactionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/similar_drugs":{"post":{"operationId":"similar_drugs","summary":"Other drugs in the same FDA pharmacologic class (EPC) as this one — e.g. every statin, every SSRI — as generic names wit","description":"Other drugs in the same FDA pharmacologic class (EPC) as this one — e.g. every statin, every SSRI — as generic names with how\n    many labels each has, plus the class's mechanism-of-action term. Use for \"what are the alternatives to X\", \"which drugs are\n    in the same class as Y\". Alternatives are not interchangeable; a prescriber chooses.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"Brand or generic drug name: 'Lipitor', 'atorvastatin', 'Advil', 'metformin'. Misspellings are corrected via RxNorm.","examples":["Lipitor","metformin"],"title":"Name","type":"string"},"prefer":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Bias label choice: 'rx' (prescription) or 'otc'. Default: whichever the name matches best.","examples":["rx","otc"],"title":"Prefer"},"limit":{"default":20,"description":"Max drugs per class (1–40).","maximum":40,"minimum":1,"title":"Limit","type":"integer"}},"required":["name"],"title":"similar_drugsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/recalls":{"post":{"operationId":"recalls","summary":"FDA drug recalls (enforcement reports): product, reason, lots, firm, class (I = could cause serious harm), distribution ","description":"FDA drug recalls (enforcement reports): product, reason, lots, firm, class (I = could cause serious harm), distribution and\n    dates, newest first. Use for \"any recalls for X\", \"eye-drop recalls this year\", \"Class I drug recalls this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Drug, firm or keyword to filter by: 'eye drops', 'metformin', 'Teva'. Omit for the latest of everything.","title":"Query"},"days":{"default":90,"description":"Look back this many days (1–1095).","maximum":1095,"minimum":1,"title":"Days","type":"integer"},"classification":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"'I' (serious), 'II' or 'III'.","examples":["I"],"title":"Classification"},"limit":{"default":15,"description":"Max recalls (1–50).","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"title":"recallsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/shortages":{"post":{"operationId":"shortages","summary":"FDA's drug shortage list: which presentations are in shortage, availability per manufacturer, reason, estimated resupply","description":"FDA's drug shortage list: which presentations are in shortage, availability per manufacturer, reason, estimated resupply\n    and the company contact. Use for \"is X in shortage\", \"why can't I get Y\", \"when will Z be back\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Drug, company or category: 'Adderall', 'amoxicillin', 'oncology'. Omit for the whole current list.","title":"Query"},"status":{"default":"current","description":"'current', 'resolved' or 'all'.","examples":["current"],"title":"Status","type":"string"},"limit":{"default":20,"description":"Max entries (1–50).","maximum":50,"minimum":1,"title":"Limit","type":"integer"}},"title":"shortagesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/ndc_lookup":{"post":{"operationId":"ndc_lookup","summary":"Identify a product from its NDC: brand and generic name, strength, form, route, labeler, Rx/OTC, DEA schedule, package","description":"Identify a product from its NDC: brand and generic name, strength, form, route, labeler, Rx/OTC, DEA schedule, package\n    description, marketing category and the label link. Use for \"what is NDC 0071-0155-23\", \"what's in this bottle\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ndc":{"description":"A National Drug Code from the package, 10 or 11 digits, with or without hyphens: '0071-0155-23', '58151-155-77', '00071015523'.","examples":["58151-155-77"],"title":"Ndc","type":"string"}},"required":["ndc"],"title":"ndc_lookupArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/clinical_trials":{"post":{"operationId":"clinical_trials","summary":"Studies on ClinicalTrials.gov by condition, intervention, status and place: title, phase, sponsor, status, enrollment,","description":"Studies on ClinicalTrials.gov by condition, intervention, status and place: title, phase, sponsor, status, enrollment,\n    eligibility (age, sex), sites, central contact and the summary, with links. Use for \"trials for X recruiting near Y\",\n    \"is there a phase 3 for Z\", \"who is studying W\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Condition or disease: 'type 2 diabetes', 'migraine'.","examples":["type 2 diabetes"],"title":"Condition"},"intervention":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Drug, device or procedure being tested.","examples":["semaglutide"],"title":"Intervention"},"status":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Subset of RECRUITING, NOT_YET_RECRUITING, ACTIVE_NOT_RECRUITING, COMPLETED, ENROLLING_BY_INVITATION, TERMINATED. Default: recruiting.","title":"Status"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"City, state or country to recruit in.","examples":["Texas","London"],"title":"Location"},"keywords":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Free text over the whole record.","title":"Keywords"},"limit":{"default":10,"description":"Max studies (1–25).","maximum":25,"minimum":1,"title":"Limit","type":"integer"}},"title":"clinical_trialsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/health_topic":{"post":{"operationId":"health_topic","summary":"Plain-language health information from MedlinePlus (U.S. National Library of Medicine): the topic summary — what it is,","description":"Plain-language health information from MedlinePlus (U.S. National Library of Medicine): the topic summary — what it is,\n    causes, symptoms, diagnosis, treatment — with the page link, related names and MeSH terms. Use for \"what is atrial\n    fibrillation\", \"what causes kidney stones\", \"what does an A1C test measure\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Condition, symptom, test or wellness topic in plain words.","examples":["high blood pressure","kidney stones"],"title":"Query","type":"string"},"limit":{"default":3,"description":"Max topics (1–10).","maximum":10,"minimum":1,"title":"Limit","type":"integer"}},"required":["query"],"title":"health_topicArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}