FDA drug label lookup

$0.004 per callUSDC via x402GET /api/drug-label

FDA drug labeling (openFDA SPL) by brand or generic name, or by NDC: boxed warning, indications and usage, dosage and administration, contraindications, and warnings and precautions, with manufacturer, routes, application number, NDCs and the label's effective date. Send GET /api/drug-label with no required fields (4 optional) and pay $0.004 per call over x402 or MPP (there is no free tier). It returns a JSON object with query, count, labels, returned, matched and 5 more.

Each section reports its full length and whether it was cut. Newest label first; the answer says how many labels matched. Live FDA data, no key.

Category: Live public dataTags: fda drug label spl boxed-warning dosage openfda health

Try in playground →

Parameters

NameTypeRequiredDescription
namestringnoBrand or generic drug name (e.g. lipitor, atorvastatin)
ndcstringnoProduct or package NDC, hyphenated (e.g. 58151-155 or 58151-155-77); used instead of name
limitnumbernoLabels to return, 1-5 (default 1)
maxCharsnumbernoCharacters per section, 200-6000 (default 1500)

Example request

curl -i "https://agent402.tools/api/drug-label?name=lipitor&limit=1"

Without payment this returns HTTP 402 Payment Required with the exact price for drug-label; any x402 v2 or MPP client pays it and retries.

Example response

{
  "query": {
    "name": "lipitor",
    "ndc": null
  },
  "count": 1,
  "labels": [
    {
      "brandName": "Lipitor",
      "genericName": "ATORVASTATIN CALCIUM",
      "manufacturer": "Viatris Specialty LLC",
      "productType": "HUMAN PRESCRIPTION DRUG",
      "routes": [
        "ORAL"
      ],
      "applicationNumber": "NDA020702",
      "productNdc": [
        "58151-155"
      ],
      "productNdcCount": 4,
      "splSetId": "a60cc18b-0631-4cf0-b021-9f52224ece65",
      "effectiveDate": "2024-04-15",
      "version": "8",
      "sections": {
        "boxedWarning": null,
        "indications": {
          "text": "1 INDICATIONS AND USAGE LIPITOR is indicated: ...",
          "chars": 2199,
          "truncated": true
        },
        "dosage": {
          "text": "2 DOSAGE AND ADMINISTRATION ...",
          "chars": 2650,
          "truncated": true
        },
        "contraindications": {
          "text": "4 CONTRAINDICATIONS ...",
          "chars": 300,
          "truncated": false
        },
        "warnings": {
          "text": "5 WARNINGS AND PRECAUTIONS ...",
          "chars": 7166,
          "truncated": true
        }
      },
      "url": "https://dailymed.nlm.nih.gov/dailymed/lookup.cfm?setid=a60cc18b-0631-4cf0-b021-9f52224ece65"
    }
  ],
  "returned": 1,
  "matched": 1,
  "complete": true,
  "truncated": false,
  "maxChars": 1500,
  "disclaimer": "openFDA data is unvalidated and is not medical advice; do not rely on it to make decisions regarding medical care.",
  "source": "api.fda.gov (openFDA drug labeling, public domain)"
}
FieldTypeAlways presentIn the example
queryobjectyes2 fields: name, ndc
countnumberyes1
labelsarray of objectsyes1 item in the example
returnednumberyes1
matchednumberyes1
completebooleanyestrue
truncatedbooleanyesfalse
maxCharsnumberyes1500
disclaimerstringyesopenFDA data is unvalidated and is not medical advice; do not rely on it to m...
sourcestringyesapi.fda.gov (openFDA drug labeling, public domain)

From an MCP client

catalog.call {
  "slug": "drug-label",
  "params": {
    "name": "lipitor",
    "limit": 1
  }
}

The hosted connector at https://agent402.tools/mcp needs a payment for drug-label; the stdio package pays it from a wallet or from an AGENT402_CREDITS_KEY issued earlier. Local install: npx -y agent402-mcp.

Errors and behavior

Paid call (JavaScript agent)

import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
client.setSpendControls?.({ maxAmountPerPayment: "$0.004" }); // refuse any quote above this tool's price
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);

const res = await payFetch("https://agent402.tools/api/drug-label?name=lipitor&limit=1");

Related tools

FDA drug adverse events

$0.001 · GET /api/drug-adverse-events

Top reported adverse reactions for a drug from the FDA FAERS database (openFDA), ranked by report count - a fast read.

FDA NDC directory lookup

$0.004 · GET /api/drug-ndc

Look up the FDA National Drug Code directory (openFDA) by NDC or by brand or generic name: product NDC, labeler, dosage.

FDA drug recalls

$0.004 · GET /api/drug-recalls

Search FDA drug recall / enforcement records (openFDA): recalling firm, classification (Class I/II/III), reason.

FDA 510(k) device clearances

$0.004 · GET /api/device-510k

Search FDA 510(k) premarket clearances (openFDA) by applicant, three-letter product code, K number or device name.

FDA device adverse events (MAUDE)

$0.004 · GET /api/device-adverse-events

Summarize FDA medical device adverse event reports (openFDA MAUDE) for a device name, brand, product code.

FDA medical device recalls

$0.004 · GET /api/device-recalls

Search FDA medical-device recall / enforcement records (openFDA): recalling firm, classification (Class I/II/III).