openFDA Human Drug Skill
Query structured SPL (Structured Product Labeling) data from the FDA. No API key needed (≤1 000 req/day).
Input → Detection
| Input Example | Routed To |
|---|---|
"ASPIRIN" or ["METFORMIN","LISINOPRIL"] | search_drug — brand/generic name lookup |
"hypertension" or ["diabetes","migraine"] | search_by_indication — indication text search |
| (no input) | count_by_route — top administration routes |
All search functions accept a single string or a list of strings.
API
| Function | Input | Returns |
|---|---|---|
search_drug(query, limit) | str | list[str], int | {term: [label_dicts]} |
search_by_indication(query, limit) | str | list[str], int | {condition: [label_dicts]} |
count_by_route(top_n) | int | [{term, count}] |
summarize(results) | dict from above | compact multi-line text |
Each label_dict contains: brand_name, generic_name, manufacturer, route, substance_name, product_type, indications, contraindications, warnings, dosage, adverse_reactions.
Usage
See if __name__ == "__main__" block in 05_openFDA_Human_Drug.py for runnable examples covering: single drug, batch drugs, single indication, batch indications, route counts, and raw JSON output.
Notes
- Long text fields (
indications,warnings, etc.) are truncated to keep payloads concise. - On HTTP/query errors the result dict contains an
errorkey for that term. - Endpoint:
https://api.fda.gov/drug/label.json


