FDA NDC directory lookup

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

Look up the FDA National Drug Code directory (openFDA) by NDC or by brand or generic name: product NDC, labeler, dosage form, routes, active ingredients with strengths, marketing category and application number, pharmacologic class, marketing and listing dates, and the package NDCs with their descriptions. Send GET /api/drug-ndc with no required fields (3 optional) and pay $0.004 per call over x402 or MPP (there is no free tier). It returns a JSON object with query, count, products, returned, matched and 4 more.

The answer says how many products matched. Live FDA data, no key.

Category: Live public dataTags: fda drug ndc national-drug-code pharmacy openfda health government

Try in playground →

Parameters

NameTypeRequiredDescription
ndcstringnoProduct NDC (e.g. 58151-155) or package NDC (e.g. 58151-155-77), hyphenated
namestringnoBrand or generic name, used when no ndc is given (e.g. lipitor)
limitnumbernoProducts to return, 1-20 (default 5)

Example request

curl -i "https://agent402.tools/api/drug-ndc?ndc=58151-155"

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

Example response

{
  "query": {
    "ndc": "58151-155",
    "name": null
  },
  "count": 1,
  "products": [
    {
      "productNdc": "58151-155",
      "brandName": "Lipitor",
      "genericName": "atorvastatin calcium",
      "labeler": "Viatris Specialty LLC",
      "dosageForm": "TABLET, FILM COATED",
      "routes": [
        "ORAL"
      ],
      "productType": "HUMAN PRESCRIPTION DRUG",
      "marketingCategory": "NDA",
      "applicationNumber": "NDA020702",
      "activeIngredients": [
        {
          "name": "ATORVASTATIN CALCIUM TRIHYDRATE",
          "strength": "10 mg/1"
        }
      ],
      "pharmClass": [
        "HMG-CoA Reductase Inhibitor [EPC]"
      ],
      "marketingStartDate": "2024-05-01",
      "listingExpirationDate": "2027-12-31",
      "finished": true,
      "packaging": [
        {
          "packageNdc": "58151-155-77",
          "description": "90 TABLET, FILM COATED in 1 BOTTLE (58151-155-77)",
          "marketingStartDate": "2024-05-01",
          "sample": false
        }
      ],
      "packagingCount": 1
    }
  ],
  "returned": 1,
  "matched": 1,
  "complete": true,
  "truncated": false,
  "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 NDC directory, public domain)"
}
FieldTypeAlways presentIn the example
queryobjectyes2 fields: ndc, name
countnumberyes1
productsarray of objectsyes1 item in the example
returnednumberyes1
matchednumberyes1
completebooleanyestrue
truncatedbooleanyesfalse
disclaimerstringyesopenFDA data is unvalidated and is not medical advice; do not rely on it to m...
sourcestringyesapi.fda.gov (openFDA NDC directory, public domain)

From an MCP client

catalog.call {
  "slug": "drug-ndc",
  "params": {
    "ndc": "58151-155"
  }
}

The hosted connector at https://agent402.tools/mcp needs a payment for drug-ndc; 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-ndc?ndc=58151-155");

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 drug label lookup

$0.004 · GET /api/drug-label

FDA drug labeling (openFDA SPL) by brand or generic name, or by NDC: boxed warning, indications and usage, 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).