← All data sources
🏷️

openFDA SPL

Live

openFDA Structured Product Labeling (drug labels)

openFDA converts Structured Product Labeling (SPL) submissions into JSON with harmonized identifiers (NDC, RxCUI, UNII, pharmacologic class). This MCP searches the entire /drug/label bulk collection — prescription and OTC — refreshed from openFDA's weekly dump. Prefer DailyMed for native SPL XML; this source matches the public openFDA drug-labeling API.

Connect

MCP endpoint
https://mcp.polarisray.com/spl

Transport: http · Auth: none · See the connection guide for client-specific steps.

Tools

  • search_labels Search openFDA drug labels by free text and filters — ingredient, brand/generic, pharmacologic class, route, NDC, RxCUI, boxed warning, or effective-date range.
  • semantic_search_labels Search labels by meaning across indications, warnings, and adverse reactions.
  • get_label Retrieve the current label for one SPL set id (or openFDA document id).
  • aggregate_labels Count and group labels by pharmacologic class, ingredient, route, category, or as a time trend.
  • resolve Normalize lay terms to standard medical terms for precise filtering.

Example questions

  • "Which labels carry a boxed warning about bleeding?"
  • "Find oral warfarin products and who manufactures them."
  • "What OTC labels mention silicon dioxide as an active ingredient?"
  • "How many labels are there per pharmacologic class?"

About this dataset

openFDA Structured Product Labeling is FDA’s JSON export of drug product labeling (prescription and OTC). Prefer DailyMed unless you need openFDA’s harmonized identifiers (NDC, RxCUI, UNII) or the same JSON the public API returns — DailyMed is the NLM native SPL XML corpus (daily updates, images, animal/remainder labels).

PolarisRay downloads every partition listed under /drug/label in the official downloads catalog (~14 zip files, ~262k records) and re-fetches the full set when openFDA’s export_date changes (weekly). There is no incremental JSON patch — that is an openFDA limitation; the catalog poll keeps off-weeks cheap.

What you can ask

Filter by active ingredient, brand or generic name, pharmacologic class, route, product type, NDC, RxCUI, boxed warning, or effective date; retrieve a full label by SPL set id; or aggregate across the dump. Hits include a DailyMed url so you can verify the official human-readable label.

Why PolarisRay

Fewer tokens. Search by meaning.

Answer-ready results with far less context than raw APIs — plus concept search the official FDA API can't do.

See why PolarisRay →