MedlinePlus Connect API
Free MedlinePlus Connect API with no key: send an ICD-10-CM, RxCUI, LOINC or SNOMED code and get back consumer health information written for patients, in English or Spanish.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the MedlinePlus Connect API?
MedlinePlus Connect is a free, key-free service from the US National Library of Medicine that maps a clinical code to patient-friendly health information. Send an ICD-10-CM diagnosis code, RxNorm medication code, LOINC lab code or SNOMED CT concept and it returns linked MedlinePlus articles as an Atom-style feed.
This service was designed to sit inside an electronic health record: a clinician records a diagnosis, the system passes the code to Connect, and the patient's after-visit summary gains a plain-language explanation of their condition. The code system is identified by its OID rather than a friendly name — `2.16.840.1.113883.6.90` is ICD-10-CM — which is unfamiliar the first time and entirely standard in health IT.
The response is an Atom feed transliterated into JSON, so text nodes appear as `{"_value": ...}` wrappers and the `summary` for each entry contains ready-to-render HTML with MedlinePlus links already embedded. Two things follow. First, sanitise that HTML before injecting it into a page, as you would any external markup. Second, respect what this content is: MedlinePlus is written for patients at a general reading level and reviewed by NLM, and Connect returns it as reference material to accompany care. It is not personalised, it does not know the patient, and it is explicitly not a substitute for advice from a clinician. Spanish content is available by passing the language parameter.
Quick facts
- Base URL
https://connect.medlineplus.gov/service- Authentication
- No API key or account. MedlinePlus content is US government work in the public domain, though NLM asks that you not imply endorsement and that you keep the content unmodified with its source attributed.
- Rate limit
- No published limit. NLM asks that implementations query per clinical encounter rather than crawling the service.
- Pricing
- Free, with no registration.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the MedlinePlus Connect API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Fetch patient information for an ICD-10-CM diagnosis code
GET https://connect.medlineplus.gov/service?mainSearchCriteria.v.cs=2.16.840.1.113883.6.90&mainSearchCriteria.v.c=E11.9&knowledgeResponseType=application/json
curl 'https://connect.medlineplus.gov/service?mainSearchCriteria.v.cs=2.16.840.1.113883.6.90&mainSearchCriteria.v.c=E11.9&knowledgeResponseType=application/json'const res = await fetch("https://connect.medlineplus.gov/service?mainSearchCriteria.v.cs=2.16.840.1.113883.6.90&mainSearchCriteria.v.c=E11.9&knowledgeResponseType=application/json");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://connect.medlineplus.gov/service?mainSearchCriteria.v.cs=2.16.840.1.113883.6.90&mainSearchCriteria.v.c=E11.9&knowledgeResponseType=application/json", timeout=20)
res.raise_for_status()
print(res.json()){
"feed": {
"base": "https://medlineplus.gov/",
"lang": "en",
"xsi": "http://www.w3.org/2001/XMLSchema-instance",
"title": {
"type": "text",
"_value": "MedlinePlus Connect"
},
"updated": {
"_value": "2026-08-21T07:41:53Z"
},
"id": {
"_value": ""
},
"author": {
"name": {
"_value": "U.S. National Library of Medicine"
},
"uri": {
"_value": "https://www.nlm.nih.gov"
}
},
"subtitle": {
"type": "text",
"_value": "MedlinePlus Connect results for ICD-10-CM E11.9"
},
"category": [
{
"scheme": "mainSearchCriteria.v.c",
"term": "E11.9"
},
{
"scheme": "mainSearchCriteria.v.cs",
"term": "ICD10CM"
},
{
"scheme": "mainSearchCriteria.v.dn",
"term": ""
},
{
"scheme": "informationRecipient",
"term": "PAT"
}
],
"entry": [
{
"title": {
"_value": "Diabetes Type 2",
"type": "text"
},
"link": [
{
"href": "https://medlineplus.gov/diabetestype2.html?utm_source=mplusconnect&utm_medium=service",
"rel": "alternate"
}
],
"id": {
"_value": "tag: medlineplus.gov, 2026-21-08:/diabetestype2.html?utm_source=mplusconnect&utm_medium=application"
},
"summary": {
"type": "html",
"_value": "<h3>What is type 2 diabetes?</h3> \n<p>Type 2 <a href=\"https://medlineplus.gov/diabetes.html?utm_source=mplusconnect\">dParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
mainSearchCriteria.v.cs | query | Required | OID of the code system. ICD-10-CM is `2.16.840.1.113883.6.90`; RxNorm, LOINC and SNOMED have their own. 2.16.840.1.113883.6.90 |
mainSearchCriteria.v.c | query | Required | The code itself within that system. E11.9 |
mainSearchCriteria.v.dn | query | Optional | Display name for the code, used to improve matching when the code alone is ambiguous. Type 2 diabetes mellitus |
knowledgeResponseType | query | Required | `application/json` for JSON; omit for the default XML Atom feed. application/json |
informationRecipient.languageCode.c | query | Optional | `en` or `es` — Spanish-language consumer content is available for much of the corpus. es |
informationRecipient | query | Optional | `PAT` for patient-oriented content or `PROV` for clinician-oriented material. PAT |
Response fields
feed.title / subtitleobject- Feed metadata. `subtitle._value` restates the query, for example `MedlinePlus Connect results for ICD-10-CM E11.9`.
feed.authorobject- Always the US National Library of Medicine, with its URI.
feed.category[]array- Echoes the query parameters — the code, the code system and the recipient type — which is useful for logging.
feed.entry[]array- Matched MedlinePlus topics. An empty array means no mapping exists for that code.
entry[].title._valuestring- Topic title, such as `Diabetes Type 2`.
entry[].link[].hrefstring- URL of the MedlinePlus page, with tracking parameters appended.
entry[].summary._valuestring- Ready-to-render HTML summary with embedded MedlinePlus links. Sanitise before inserting into a page.
feed.updated._valuestring- Timestamp of the response, not of the content.
What you can build with the MedlinePlus Connect API
- Attach plain-language condition information to an after-visit summary
- Show patients an explanation of a lab test alongside their result
- Link a prescribed medication to consumer drug information
- Add contextual health topics to a patient portal
- Offer Spanish-language health information from the same code
Common errors and how to fix them
Empty entry array
No MedlinePlus topic is mapped to that code.
Fix: Coverage is broad but not complete, and highly specific codes often have no match. Fall back to the parent code — E11 where E11.9 fails.
Values wrapped in _value objects
The JSON is transliterated from an Atom XML feed.
Fix: Every text node is an object with a `_value` key. Write one unwrapping helper and apply it throughout.
Unsanitised HTML rendered
`summary._value` contains markup with links.
Fix: Sanitise it before injection, exactly as you would any third-party HTML, even though the source is trustworthy.
Wrong code system
The OID did not match the code supplied.
Fix: OIDs are long and easy to transpose. Verify the code system OID against the MedlinePlus Connect documentation rather than copying from memory.
MedlinePlus Connect API — frequently asked questions
Is MedlinePlus Connect free?
Yes, free with no key or registration. The content is US government work in the public domain. NLM asks that you present it unmodified with attribution and avoid implying endorsement of your product.
What is an OID and why do I need one?
An Object Identifier is a globally unique dotted-numeric label for a code system, standard throughout health IT. Connect identifies vocabularies this way rather than by name, so ICD-10-CM is `2.16.840.1.113883.6.90`. The documentation lists every supported OID.
Does it provide medical advice?
No. It returns general patient education material from MedlinePlus, reviewed by the National Library of Medicine and written for a lay audience. It knows nothing about an individual patient and is intended to supplement, never replace, guidance from a clinician.
Can I get Spanish-language content?
Yes, by setting the language parameter to `es`. A substantial part of the MedlinePlus corpus has Spanish translations, and Connect returns the Spanish topic when one exists for the requested code.
Tools that pair with this API
Strip HTML Tags
Remove all HTML tags and convert markup to clean plain text. Decode HTML entities and keep line breaks for block elements like paragraphs and headings.
HTML Entity Decoder
Decode HTML entities back to plain text: named entities, &#nnn; decimal and &#xhh; hex references. Free, instant and processed entirely in your browser.
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
MedlinePlus Connect is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.