The federal government publishes a remarkable amount of pharmaceutical and clinical data through free, well-documented APIs. Many healthcare technology teams either do not know these resources exist or underestimate their depth. These five APIs are the ones we use most frequently when building formulary management, clinical decision support, and pharmaceutical intelligence systems.

1. openFDA

URL: https://api.fda.gov
Auth: Free API key (optional but recommended)
Rate limit: 240 requests/minute with key

OpenFDA is the FDA's open data initiative, providing access to millions of records across drug labels, adverse events, recalls, and device reports. The drug label endpoint (/drug/label) alone is worth the integration effort. It contains the full Structured Product Labeling (SPL) data for virtually every marketed drug: indications, contraindications, warnings, dosage, clinical pharmacology, and more.

# Get drug label for atorvastatin with adverse reactions
curl "https://api.fda.gov/drug/label.json?\
search=openfda.generic_name:atorvastatin&\
limit=1"

# Count adverse events by reaction for a drug
curl "https://api.fda.gov/drug/event.json?\
search=patient.drug.medicinalproduct:metformin&\
count=patient.reaction.reactionmeddrapt.exact&\
limit=10"

Best for: Drug safety intelligence, label data extraction, adverse event analysis, recall monitoring.

2. RxNorm

URL: https://rxnav.nlm.nih.gov/REST/
Auth: None required
Rate limit: Reasonable use (no hard limit published)

RxNorm is the National Library of Medicine's normalized naming system for drugs. It provides the canonical mapping between NDCs, brand names, generic names, ingredients, and drug classes. The RxClass endpoint provides therapeutic classification data, and the full RxNorm dataset is available as a monthly download for local deployment. (Note: NLM retired the hosted interaction checking endpoints in January 2024. For interaction data, use the downloadable RxNorm dataset locally or integrate with DrugBank.)

# Resolve drug name to RxCUI
curl "https://rxnav.nlm.nih.gov/REST/rxcui.json?\
name=lisinopril"

# Get drug class information
curl "https://rxnav.nlm.nih.gov/REST/rxclass/\
class/byDrugName.json?drugName=metoprolol"

# Get related concepts by term type
curl "https://rxnav.nlm.nih.gov/REST/rxcui/29046/\
related.json?tty=IN+SCD+SBD"

Best for: Drug identification and normalization, therapeutic classification, NDC-to-ingredient mapping. For interaction checking, use the downloadable RxNorm dataset with a local database.

3. DailyMed

URL: https://dailymed.nlm.nih.gov/dailymed/services/
Auth: None required
Rate limit: Reasonable use

DailyMed is the NLM's repository of current drug labeling as submitted to the FDA. While openFDA also provides label data, DailyMed offers some unique capabilities: structured SPL XML for programmatic processing, medication guides, REMS information, and label change history. It also tends to have more current data than openFDA for recently updated labels.

# Search for a drug's SPL documents
curl "https://dailymed.nlm.nih.gov/dailymed/services/\
v2/spls.json?drug_name=adalimumab"

# Get full SPL document by setId
curl "https://dailymed.nlm.nih.gov/dailymed/services/\
v2/spls/SET_ID_HERE.json"

Best for: Current prescribing information, medication guides, REMS data, label change tracking.

4. ClinicalTrials.gov

URL: https://clinicaltrials.gov/api/v2/
Auth: None required
Rate limit: Reasonable use

The ClinicalTrials.gov API provides access to over 500,000 clinical study records. For formulary teams, this is valuable when evaluating drugs that are approaching market entry or when assessing the evidence base for coverage decisions. The API supports complex searches by condition, intervention, sponsor, status, and phase.

# Find active Phase 3 trials for GLP-1 receptor agonists
curl "https://clinicaltrials.gov/api/v2/studies?\
query.intr=GLP-1+receptor+agonist&\
filter.overallStatus=RECRUITING&\
filter.phase=PHASE3&\
pageSize=10"

Best for: Pipeline intelligence, evidence evaluation for P&T committees, competitive intelligence on drugs in development.

5. NDC Directory

URL: https://open.fda.gov/apis/drug/ndc/ (via openFDA)
Also available as: Bulk download from FDA.gov
Auth: Same as openFDA

The NDC Directory is the comprehensive catalog of all drugs registered with the FDA. It provides packaging information, active ingredients, routes of administration, dosage forms, and marketing status. The bulk download is updated weekly and is essential for any system that needs a complete view of the marketed drug universe.

# Look up an NDC
curl "https://api.fda.gov/drug/ndc.json?\
search=product_ndc:0069-1540&\
limit=1"

# Find all products by a manufacturer
curl "https://api.fda.gov/drug/ndc.json?\
search=labeler_name:Pfizer&\
limit=100"

Best for: NDC validation, package-level drug data, manufacturer identification, marketing status checking.

Building a Free Data Stack

These five APIs, used together, provide a surprisingly comprehensive pharmaceutical data foundation at zero licensing cost:

This free stack does not replace commercial data sources like Medi-Span or First Databank, which provide drug pricing (AWP, WAC), GPI classification, and other proprietary data. But it covers roughly 70% of the data needs for a formulary management system, and 90%+ for clinical decision support and drug information applications.

For teams building healthcare technology, starting with these free sources and adding commercial data only where specifically needed is the most cost-effective approach. Every dollar not spent on data licensing can be spent on building better applications on top of that data.