BYTETOOLS

DailyMed API

Free NLM DailyMed API with no key: official FDA-approved drug labels, package inserts, ingredients and packaging for every US medication. Tested example.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-20

What is the DailyMed API?

DailyMed is a free, key-free API from the US National Library of Medicine providing official FDA-approved drug labelling — the complete package insert, ingredients, dosage, warnings and packaging — for every medication marketed in the United States.

DailyMed holds the authoritative version of every US drug label, submitted by manufacturers and updated as labelling changes. It is the same content pharmacists and prescribers consult.

Labels are Structured Product Labeling (SPL) documents, an HL7 XML standard. The JSON endpoints expose metadata and let you search, but the full label content is SPL — so retrieving complete prescribing information means handling that format.

Quick facts

Base URL
https://dailymed.nlm.nih.gov/dailymed/services/v2
Authentication
No API key required.
Rate limit
No published hard limit; fair use expected.
Pricing
Free public domain US government data.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the DailyMed API

Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.

1. List drug labels

GET https://dailymed.nlm.nih.gov/dailymed/services/v2/spls.json?pagesize=1

curl
curl 'https://dailymed.nlm.nih.gov/dailymed/services/v2/spls.json?pagesize=1'
JavaScript (fetch)
const res = await fetch("https://dailymed.nlm.nih.gov/dailymed/services/v2/spls.json?pagesize=1");
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://dailymed.nlm.nih.gov/dailymed/services/v2/spls.json?pagesize=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "data": [
    {
      "spl_version": 1,
      "published_date": "Aug 19, 2026",
      "title": "AUTOBRUSH MINT (SODIUM FLUORIDE) LIQUID [LANDER ENTERPRISES, LLC]",
      "setid": "0e043431-9d87-478d-87f5-5aa8b0a932eb"
    }
  ],
  "metadata": {
    "db_published_date": "Aug 19, 2026 08:28:16PM EST",
    "elements_per_page": 1,
    "current_url": "https://dailymed.nlm.nih.gov/dailymed/services/v2/spls.json?pagesize=1",
    "next_page_url": "https://dailymed.nlm.nih.gov/dailymed/services/v2/spls.json?pagesize=1&page=2",
    "total_elements": 158681,
    "total_pages": 158681,
    "current_page": 1,
    "previous_page": "null",
    "previous_page_url": "null",
    "next_page": 2
  }
}

Parameters

ParameterTypeRequiredDescription
spls.jsonpathOptionalSearch and list Structured Product Labels. spls.json
pagesizeintegerOptionalResults per page, max 100. 20
pageintegerOptionalPage number. 2
drug_namestringOptionalFilter by drug name. aspirin
spls/<setid>.jsonpathOptionalOne label by set id. spls/abc-123.json

Response fields

metadataobject
Pagination — total elements, pages, current page.
dataarray
Label records.
data[].setidstring
Stable label identifier used to fetch the full document.
data[].titlestring
Full label title including drug and dosage form.
data[].published_datestring
When this label version was published.
data[].spl_versioninteger
Label version number — labels are revised over time.

What you can build with the DailyMed API

  • Look up official prescribing information for a medication
  • Build a drug reference for clinical software
  • Monitor labelling changes and safety updates
  • Extract ingredient and packaging data for pharmacy systems

Common errors and how to fix them

Full label is SPL XML

JSON endpoints give metadata; content is HL7 SPL.

Fix: Fetch the SPL document by setid and parse the XML for full prescribing information.

Multiple labels per drug

Each manufacturer files its own label.

Fix: A generic drug has many labels; use setid to distinguish them rather than assuming one per drug.

Labels are versioned

spl_version increments with each revision.

Fix: Always check you have the current version before presenting clinical information.

DailyMed API — frequently asked questions

Is the DailyMed API free?

Yes, completely free with no API key. It is public domain data from the US National Library of Medicine.

How does it differ from openFDA?

openFDA offers broader datasets including adverse events and recalls with a search-oriented interface. DailyMed is the authoritative source for the label documents themselves.

What is an SPL?

Structured Product Labeling — the HL7 XML standard the FDA requires for drug labels. The JSON endpoints give metadata; the full label content is SPL XML.

Why are there several labels for one drug?

Each manufacturer files its own label, so a widely produced generic has many. Use the setid to distinguish between them.

Tools that pair with this API

DailyMed is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.