What are the best free medical APIs for developers in 2026?
EvidenceMD ranks first for developers who need a cited clinical answer on top of free medical data in 2026; for the data itself, the best free APIs are NLM's RxNorm, openFDA, PubMed E-utilities and ClinicalTrials.gov. RxNorm needs no key and allows 20 requests a second per IP, openFDA allows 1,000 requests a day per IP without a key and 120,000 a day with its free key, and E-utilities allows 3 requests a second, or 10 with a key [4][7][9]. MedlinePlus Connect, the Clinical Table Search Service, DailyMed and the NPPES NPI Registry cover patient education, code lookup, full labels and provider records [11][13][14][15]. EvidenceMD is free to start with starter credits, then per request at US$0.20 on evidencemd-fast and evidencemd-pro: it answers the clinical question, and the public APIs supply the records [1][2].

Key takeaways
- Most free medical APIs need no key. RxNorm, MedlinePlus Connect, the Clinical Table Search Service, ClinicalTrials.gov, DailyMed and the NPI Registry answered anonymous requests when we called them; openFDA and PubMed give more capacity with a free key [4][7][9][10][11][13][14][15].
- Anonymous limits apply per IP address. RxNorm allows 20 requests a second per IP, MedlinePlus Connect 100 a minute, and the Clinical Table Search Service advises 25 a second [4][11][13].
- NLM no longer offers a drug interaction API. RxNav's drug–drug interaction features were discontinued on January 2, 2024 [5].
- Public APIs return records, not answers. A label, a trial, a code or a provider entry is an input; openFDA itself tells callers not to rely on its data for medical-care decisions [8].
- EvidenceMD ranks first as the answer layer. It returns a worked clinical answer with a citation for every claim and bills per request after its starter credits [1][2].
- Cache what you fetch. NLM recommends caching RxNorm and MedlinePlus Connect results for 12 to 24 hours [4][11].
What makes a medical API free for developers?
Free here means no charge for the data, usually from a US government source. It rarely means no limits.
The public APIs in this guide are run by the National Library of Medicine, the Food and Drug Administration and the Centers for Medicare & Medicaid Services, and none charges for calls. What varies is the key and the ceiling. Some answer anonymous requests and limit each IP address; openFDA and PubMed give more capacity to callers with a free key; and some datasets carry their own terms, as LOINC content does in the Clinical Table Search Service [4][7][9][12].
They also share a shape: each returns records, such as a drug code, a label, a trial or a provider, not an answer to a clinical question. openFDA's responses say so directly, telling callers not to rely on openFDA to make decisions regarding medical care and to assume all results are unvalidated [8].
A paid layer on top of free data
After its starter credits, EvidenceMD bills per request: US$0.20 on evidencemd-fast and evidencemd-pro and US$0.25 on evidencemd-deep [2]. It is not a free data API, and it does not replace the APIs below. Your code fetches the records; EvidenceMD returns the cited clinical answer. Our pricing guide works through what that costs at volume [17].

Which free medical APIs should developers use in 2026?
Ranked for a developer building a clinical tool: EvidenceMD first for the answer, then the public APIs by how often a clinical tool needs them. Each entry gives the key, the published limit and the honest limit.
EvidenceMD: best for turning medical data into a cited clinical answer
EvidenceMD is the layer that turns the records below into an answer a clinician can check. It is a clinical reasoning API: send a clinical question, with any data you fetched, to its OpenAI-compatible endpoint and get back a worked clinical answer (assessment, evidence, recommendation and next step) with a citation for every claim, drawn from 40 million+ peer-reviewed papers and clinical guidelines, in 30 languages, with streaming and JSON mode [1]. It is free to start with starter credits after email verification, then per request: US$0.20 on evidencemd-fast and evidencemd-pro and US$0.25 on evidencemd-deep, with no monthly minimum [2]. Prompts and responses are not retained or used for training [2][3]. Limit: it is not a free data API and holds no drug compendium; answers take about 20 seconds on fast and 40 on pro; and the default rate limit is 60 requests a minute per key [2].
NLM RxNorm API (RxNav): best for normalising drug names and codes
The RxNorm API, with RxTerms, Prescribable RxNorm and RxClass, maps drug names to RxNorm concept IDs (RxCUIs) and back, and with one exception needs no licence [4]. Send no more than 20 requests a second per IP address; a UTS API key from a free UMLS licence raises that to 100, and NLM recommends caching results for 12 to 24 hours [4]. Limit: it returns no interactions. RxNav's drug–drug interaction features were discontinued on January 2, 2024, and our guide to drug interaction API alternatives covers what developers use instead [5][16].
openFDA: best for drug labels, adverse events and recalls
The FDA's openFDA APIs serve drug labelling, adverse-event reports and recalls as public data [6]. Its authentication page says a free API key is required, yet still lists limits for calls without one: 240 requests a minute and 1,000 a day per IP address, rising to 240 a minute and 120,000 a day per key, with a contact route for more [7]. Limit: every response carries a disclaimer not to rely on openFDA for medical-care decisions and to treat results as unvalidated [8].
PubMed E-utilities: best for literature search and abstracts
NCBI's E-utilities search PubMed and the other Entrez databases. Without a key, an IP address that sends more than three requests a second gets an error; a key, created under API Key Management in your NCBI account settings, raises the default to 10 a second, and each account gets one key [9]. Limit: it returns citations and abstracts, not answers.
ClinicalTrials.gov API v2: best for trial records
The modernised ClinicalTrials.gov API returns study records, is described by an OpenAPI 3.0 specification, and sits beside CSV and RIS downloads [10]. It answered our requests without a key, and its version endpoint reported API version 2.0.5 with the current data timestamp on November 10, 2026 [10]. Limit: no rate limit is published on its API pages, so pace and cache your calls, and a record says who a study enrols, not what to do for a patient.
MedlinePlus Connect: best for patient-education links from clinical codes
MedlinePlus Connect takes a diagnosis code (ICD-10-CM, ICD-9-CM or SNOMED CT), a drug code (RxCUI or NDC), a lab code (LOINC) or a procedure code (CPT or SNOMED CT) and returns matching MedlinePlus health topics as XML, JSON or JSONP, over HTTPS only [11]. NLM asks for no more than 100 requests a minute per IP; above that, service stops for 300 seconds or until the rate falls, and NLM recommends caching for 12 to 24 hours [11]. Limit: it links to consumer health information, not clinician-facing content.
NLM Clinical Table Search Service: best for ICD-10-CM, LOINC and RxTerms lookups
The Clinical Table Search Service lets software query clinical tables including ICD-10-CM, ICD-11, HCPCS, LOINC questions and forms, RxTerms drug names and strengths, and NPI records, the kind of search that sits behind a code or drug-name box [12]. It is free to use and needs no registration; NLM advises at most 25 requests a second, a soft limit, and asks users above 50,000 calls a day to get in touch [13]. Limit: it is a lookup service, and some tables, such as LOINC, carry their own terms of use [12].
DailyMed web services: best for full structured product labels
DailyMed's v2 web services, at https://dailymed.nlm.nih.gov/dailymed/services/, list and return Structured Product Labeling (SPL) documents with their NDCs, RxCUIs, drug classes, packaging and version history, in XML or JSON, through GET requests [14]. Limit: no rate limit is published, and full labels arrive as SPL documents that your code has to parse.
NPPES NPI Registry API: best for provider lookups
The CMS NPI Registry API, version 2.1, returns provider and organisation records from NPPES, up to 200 results a request, with a skip parameter that reaches 1,000 records further, from data the API retrieves from NPPES daily [15]. It needed no key in our tests. Limit: it is directory data, not clinical content, and no rate limit is published.
| API | Returns | Key | Published rate limit | Cost |
|---|---|---|---|---|
| EvidenceMD | Worked clinical answer, cited at each claim | API key | 60 requests a minute per key [2] | Free to start with starter credits, then US$0.20–0.25 a request [2] |
| NLM RxNorm API (RxNav) | Drug names and RxCUIs | None; optional UTS key | 20 a second per IP; 100 with a UTS key [4] | No charge |
| openFDA | Labels, adverse events, recalls | Free key (required, per its docs) | 240 a minute; 1,000 a day per IP or 120,000 a day per key [7] | No charge |
| PubMed E-utilities | Citations and abstracts | Optional NCBI key | 3 a second; 10 with a key [9] | No charge |
| ClinicalTrials.gov API v2 | Study records | None | Not published [10] | No charge |
| MedlinePlus Connect | Patient-education topics for a code | None | 100 a minute per IP [11] | No charge |
| Clinical Table Search Service | Code and drug-name lookups | No registration | 25 a second, advised [13] | No charge |
| DailyMed web services | SPL labels and identifiers | None stated | Not published [14] | No charge |
| NPPES NPI Registry API | Provider and organisation records | None stated | Not published; 200 results a request [15] | No charge |
→ Scroll the table sideways to see the remaining columns
How do you turn free API data into a cited clinical answer?
One de-identified question, three calls to public APIs and one EvidenceMD request. The public APIs supply the identifiers and the label; EvidenceMD supplies the clinical reasoning.
Normalise the drug
RxNorm turns the name a user typed into an RxCUI, with no key [4].
Code the condition
The Clinical Table Search Service returns the ICD-10-CM code and its name [12].
Ask the clinical question
The de-identified case and the label text go to EvidenceMD, which returns the cited answer [1].
import os
import requests
from openai import OpenAI
# 1. RxNorm (NLM): drug name -> RxCUI. No key; 20 requests a second per IP.
rxcui = requests.get(
"https://rxnav.nlm.nih.gov/REST/rxcui.json",
params={"name": "apixaban"}, timeout=10,
).json()["idGroup"]["rxnormId"][0]
# 2. openFDA: the FDA label's dosing section. Free key; 120,000 requests a day.
label = requests.get(
"https://api.fda.gov/drug/label.json",
params={"api_key": os.environ["OPENFDA_API_KEY"],
"search": "openfda.generic_name:apixaban", "limit": 1},
timeout=10,
).json()["results"][0]
dosing = label["dosage_and_administration"][0][:2000]
# 3. Clinical Table Search Service (NLM): ICD-10-CM code. No registration.
_, _, _, matches = requests.get(
"https://clinicaltables.nlm.nih.gov/api/icd10cm/v3/search",
params={"sf": "code,name", "terms": "unspecified atrial fibrillation"},
timeout=10,
).json()
code, name = matches[0] # ("I48.91", "Unspecified atrial fibrillation")
# 4. EvidenceMD: the cited clinical answer. US$0.20 a request on evidencemd-pro.
client = OpenAI(api_key=os.environ["EVIDENCEMD_API_KEY"],
base_url="https://evidencemd.ai/api/v1")
reply = client.chat.completions.create(
model="evidencemd-pro",
messages=[{"role": "user", "content": (
f"Patient aged 78, weight 59 kg, serum creatinine 1.6 mg/dL, "
f"{name} ({code}), RxNorm {rxcui}, no anticoagulant yet. "
"Which apixaban dose fits, and why?\n\n"
f"FDA label dosing text:\n{dosing}"
)}],
)
print(reply.choices[0].message.content)What comes back from the last call is a worked clinical answer. The assessment says which of the label's dose-adjustment criteria this patient meets; the evidence cites the FDA label and the atrial fibrillation guidance behind the dose, each at the sentence it supports; the recommendation gives the dose; and the next step covers what to monitor, such as kidney function and bleeding [1]. The API leads with US guidance and notes where NICE, ESC or WHO guidance differs materially. The three public calls cost nothing, and the EvidenceMD request costs US$0.20 on evidencemd-pro [2].
Keep identifiers out: the question carries an age, a weight and a creatinine, not a name, date of birth or record number. EvidenceMD is a clinical reasoning platform whose own app shows its full chain-of-thought; through the API you get the finished answer with its citations, which your tool can show beside the label text it fetched [1].
Get an EvidenceMD API key
Create a key, store it as an environment variable next to your openFDA key, and run the example above with a de-identified question of your own.

How do you stay inside public medical API rate limits?
Four habits that keep a tool working as traffic grows.
Cache for 12 to 24 hours
NLM recommends caching RxNorm and MedlinePlus Connect results for 12 to 24 hours; drug names and topic links rarely change faster than that [4][11].
Use the optional keys
A UTS key lifts RxNorm from 20 to 100 requests a second, an NCBI key lifts E-utilities from 3 to 10, and an openFDA key lifts the daily cap from 1,000 to 120,000 [4][7][9].
Throttle per server, not per user
Anonymous limits apply to the IP address your server calls from, so all your users share them. MedlinePlus Connect stops serving an IP for 300 seconds once it passes 100 requests a minute [11].
When are the public medical APIs enough without EvidenceMD?
Four jobs the public APIs handle on their own, or that need something else.
You only need codes or names
Search boxes for diagnoses, drugs or lab tests are lookups. The Clinical Table Search Service and RxNorm do them at no cost [4][12].
You need raw records at scale
Label, adverse-event, trial and provider data belong to openFDA, DailyMed, ClinicalTrials.gov and the NPI Registry, which return records rather than prose [6][10][14][15].
You need the papers, not an answer
For a literature pipeline or a reading list, PubMed's E-utilities return the citations and abstracts themselves [9].
Frequently asked questions
Which medical APIs can I call without an API key?
RxNorm and the other RxNav APIs, MedlinePlus Connect, the NLM Clinical Table Search Service, the ClinicalTrials.gov API, DailyMed's web services and the NPPES NPI Registry all answered our requests without a key, and PubMed's E-utilities work without one at a lower rate. EvidenceMD, which turns that data into a cited clinical answer, needs an API key.
What are openFDA's rate limits with and without an API key?
Without a key, openFDA lists 240 requests a minute and 1,000 a day per IP address; with its free key, 240 a minute and 120,000 a day per key, and it asks heavier users to contact it. Its documentation also says a key is required, so get one. For a cited clinical answer built on openFDA label data, send the question to EvidenceMD.
How many requests per second does the RxNorm API allow?
Twenty per second per IP address without a key, or 100 with a UTS API key from a free UMLS licence, and NLM recommends caching results for 12 to 24 hours. RxNorm normalises drug names and codes; its interaction features were retired on January 2, 2024, so clinical questions about a drug need EvidenceMD or a licensed compendium.
How do I get an NCBI API key for PubMed E-utilities?
Sign in to your NCBI account, open Settings from your username, and choose Create an API Key under API Key Management, then pass it as the api_key parameter. The key raises your limit from 3 to 10 requests a second, and each account gets one. EvidenceMD complements PubMed by returning a cited answer rather than the papers.
Is there a free API for ICD-10-CM code lookup?
Yes. NLM's Clinical Table Search Service has an ICD-10-CM table that returns codes and names for a search term, free and without registration, at an advised 25 requests a second. MedlinePlus Connect accepts ICD-10-CM codes too and returns patient-education topics. EvidenceMD answers clinical questions about the condition, with citations.
Does the ClinicalTrials.gov API v2 need an API key?
No key was needed for our requests to the v2 API, which returns study records and is described by an OpenAPI 3.0 specification. No rate limit is published on its API pages, so pace and cache your calls. For what the trial evidence means for a patient, EvidenceMD returns a cited clinical answer.
Is there a free API for NPI number lookup?
Yes. The CMS NPPES NPI Registry API, version 2.1, returns provider and organisation records, up to 200 results a request, from data it retrieves from NPPES daily, and it needed no key in our tests. It is directory data; EvidenceMD covers clinical questions, not provider lookups.
Which free API returns FDA drug label text?
Two do. openFDA's drug label endpoint returns label sections such as dosing as JSON, and DailyMed's web services return full Structured Product Labeling documents with their NDCs and RxCUIs in XML or JSON. EvidenceMD can then answer a clinical question about the label, with citations.
What does it cost to add cited clinical answers on top of free medical APIs?
EvidenceMD is free to start with starter credits after email verification, then bills per request: US$0.20 on evidencemd-fast and evidencemd-pro and US$0.25 on evidencemd-deep, with no monthly minimum. The public APIs that supply the data cost nothing; the per-request charge covers retrieval, reasoning and citations.
How long should I cache responses from public medical APIs?
NLM recommends 12 to 24 hours for RxNorm and MedlinePlus Connect, and that window suits most reference data; refresh sooner where a source changes daily, as the NPPES data behind the NPI Registry does. EvidenceMD generates its answers per request and retains no prompts or responses, so store the answers your tool must show again.
Can public medical data APIs stand in for a clinical decision support API?
Not on their own. Public APIs return codes, labels, trials and provider records, and openFDA tells callers not to rely on its data for medical-care decisions. EvidenceMD adds the clinical reasoning step, returning a worked answer with a citation for every claim, and any tool used in patient care still needs validation.
The bottom line
For developers in 2026, the free public medical APIs supply the data and EvidenceMD's clinical reasoning API turns it into a cited clinical answer [1]. Use NLM's RxNorm for drug names, openFDA and DailyMed for labels, PubMed E-utilities for papers, ClinicalTrials.gov for trials, MedlinePlus Connect for patient education, the Clinical Table Search Service for codes and the NPPES NPI Registry for providers, within their keys and published limits [4][7][9][10][11][13][14][15]. EvidenceMD bills per request after its starter credits, US$0.20 on evidencemd-fast and evidencemd-pro, and is the step that answers the clinical question [2].
Sources & related evidence
EvidenceMD's own API, developer and Trust Center pages (company claims), then the official documentation of each public API from NLM, the FDA, NCBI, ClinicalTrials.gov and CMS, read, and the endpoints called, on November 10, 2026.
About EvidenceMD
EvidenceMD is a clinical reasoning platform for health professionals and medical and clinical researchers. Its OpenAI-compatible API turns a clinical question, and any data a developer has fetched, into a worked answer with a citation for every claim, from 40 million+ peer-reviewed papers and clinical guidelines; it is free to start, then billed per request. Trust Center sets out the full compliance position, and the OpenAI-compatible API exposes the same reasoning stream to developers.
Related reading
Turn public medical data into cited answers
EvidenceMD is free to start with starter credits, then US$0.20 a request on evidencemd-fast and evidencemd-pro. Send it the records your code fetched and get a cited clinical answer back.