BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

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
curl 'https://connect.medlineplus.gov/service?mainSearchCriteria.v.cs=2.16.840.1.113883.6.90&mainSearchCriteria.v.c=E11.9&knowledgeResponseType=application/json'
JavaScript (fetch)
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);
Python (requests)
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())
Response — HTTP 200 (truncated)
{
  "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\">d

Parameters

ParameterTypeRequiredDescription
mainSearchCriteria.v.csqueryRequiredOID 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.cqueryRequiredThe code itself within that system. E11.9
mainSearchCriteria.v.dnqueryOptionalDisplay name for the code, used to improve matching when the code alone is ambiguous. Type 2 diabetes mellitus
knowledgeResponseTypequeryRequired`application/json` for JSON; omit for the default XML Atom feed. application/json
informationRecipient.languageCode.cqueryOptional`en` or `es` — Spanish-language consumer content is available for much of the corpus. es
informationRecipientqueryOptional`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

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.