Drug acquisition cost (CMS NADAC) API

Latest CMS NADAC (National Average Drug Acquisition Cost) per-unit prices for a drug name, brand name or NDC, from data.medicaid.gov (monthly pharmacy invoice survey, weekly files). Groups by NADAC description, pricing unit (EA, ML, GM), generic or brand rate class and OTC flag, each with min, median and max unit cost across NDCs, effective date, NDC count, sample NDCs, and a 30-unit acquisition cost for per-dose EA items. Single-source generics map to RxNorm brand names.

$0.01 per call  USDC over x402 v2 on Base, Polygon, Arbitrum, Avalanche or Sei. No signup, no API key. Requests that fail or match nothing are not charged.

Endpoint

GET https://rx.kit-rx.com/v1/rx/price

Parameters

NameTypeRequiredDescription
qstringyesDrug name, brand name or NDC, optionally with strength (e.g. metformin, Lipitor 20 mg, 00003-0894-21) e.g. atorvastatin
strengthstringnoStrength filter text matched against NADAC descriptions, e.g. 20 MG, 500 MG/5 ML, 100 UNIT/ML

Example request

https://rx.kit-rx.com/v1/rx/price?q=atorvastatin

Without payment the server answers 402 Payment Required with the price (10000 atomic USDC) in the PAYMENT-REQUIRED header. Any x402 v2 client pays and retries automatically. A request with no parameters runs this example.

curl -i "https://rx.kit-rx.com/v1/rx/price?q=atorvastatin"

Pay from an agent

AgentCash: fetch the URL. OpenDexter MCP: x402_fetch. Kit Rx MCP server: https://rx.kit-rx.com/mcp. Code:

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

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.BUYER_KEY) });
const pay = wrapFetchWithPayment(fetch, client);
const res = await pay("https://rx.kit-rx.com/v1/rx/price?q=atorvastatin");
console.log(await res.json());

Example response

{
  "query": {
    "q": "atorvastatin",
    "strength": null
  },
  "result": {
    "dataset": {
      "id": "fbb83258-11c7-47f5-8b18-5f8e79f7e704",
      "year": 2026
    },
    "latest_as_of_date": "2026-11-11",
    "match": {
      "mode": "name",
      "description_prefix": "ATORVASTATIN",
      "required_terms": [],
      "optional_terms_applied": [],
      "strength": null
    },
    "group_count": 4,
    "groups": [
      {
        "ndc_description": "ATORVASTATIN 10 MG TABLET",
        "nadac_per_unit": {
          "min": 0.02301,
          "median": 0.02301,
          "max": 0.02301
        },
        "pricing_unit": "EA",
        "classification_for_rate_setting": "G",
        "classification": "generic rate",
        "otc": false,
        "effective_date": "2026-10-21",
        "as_of_date": "2026-11-11",
        "in_latest_file": true,
        "ndc_count": 70,
        "sample_ndcs": [
          "00093505610",
          "00093505698"
        ],
        "est_cost_30_units": {
          "min": 0.69,
          "median": 0.69,
          "max": 0.69,
          "basis": "pharmacy acquisition cost for 30 units (NADAC per unit x 30), not a retail or patient price and not a days-supply estimate"
        }
      },
      {
        "ndc_description": "ATORVASTATIN 20 MG TABLET",
        "nadac_per_unit": {
          "min": 0.02858,
          "median": 0.02858,
          "max": 0.02858
        },
        "pricing_unit": "EA",
        "classification_for_rate_setting": "G",
        "classification": "generic rate",
        "otc": false,
        "effective_date": "2026-10-21",
        "as_of_date": "2026-11-11",
        "in_latest_file": true,
        "ndc_count": 69,
        "sample_ndcs": [
          "00093505910",
          "00093505998"
        ],
        "est_cost_30_units": {
          "min": 0.86,
          "median": 0.86,
          "max": 0.86,
          "basis": "pharmacy acquisition cost for 30 units (NADAC per unit x 30), not a retail or patient price and not a days-supply estimate"
        }
      },
      {
        "ndc_description": "ATORVASTATIN 40 MG TABLET",
        "nadac_per_unit": {
          "min": 0.03688,
          "median": 0.03688,
          "max": 0.03688
        },
        "pricing_unit": "EA",
        "classification_for_rate_setting": "G",
        "classification": "generic rate",
        "otc": false,
        "effective_date": "2026-10-21",
        "as_of_date": "2026-11-11",
        "in_latest_file": true,
        "ndc_count": 69,
        "sample_ndcs": [
          "00093505810",
          "00093505898"
        ],
        "est_cost_30_units": {
          "min": 1.11,
          "median": 1.11,
          "max": 1.11,
          "basis": "pharmacy acquisition cost for 30 units (NADAC per unit x 30), not a retail or patient price and not a days-supply estimate"
        }
      },
      {
        "ndc_description": "ATORVASTATIN 80 MG TABLET",
        "nadac_per_unit": {
          "min": 0.06804,
          "median": 0.06804,
          "max": 0.06804
        },
        "pricing_unit": "EA",
        "classification_for_rate_setting": "G",
        "classification": "generic rate",
        "otc": false,
        "effective_date": "2026-10-21",
        "as_of_date": "2026-11-11",
        "in_latest_file": true,
        "ndc_count": 67,
        "sample_ndcs": [
          "00093505705",
          "00093505798"
        ],
        "est_cost_30_units": {
          "min": 2.04,
          "median": 2.04,
          "max": 2.04,
          "basis": "pharmacy acquisition cost for 30 units (NADAC per unit x 30), not a retail or patient price and not a days-supply estimate"
        }
      }
    ]
  },
  "sources": [
    {
      "name": "CMS NADAC 2026 (data.medicaid.gov)",
      "url": "https://data.medicaid.gov/dataset/fbb83258-11c7-47f5-8b18-5f8e79f7e704"
    }
  ],
  "notes": [
    "NADAC (CMS National Average Drug Acquisition Cost) is an average of retail community pharmacy invoice costs from a monthly CMS survey, published in weekly files. It is an acquisition cost, not a retail, cash, insurance or 340B price."
  ],
  "attribution": [
    "Source: CMS National Average Drug Acquisition Cost (NADAC), data.medicaid.gov, U.S. public domain. Not endorsed by CMS."
  ],
  "generated_at": "2026-11-15T00:16:27.622Z"
}

Kit Rx Drug Data: FDA Labels, NDC, Shortages & NADAC: Drug data for AI agents: FDA drug labels, NDC lookup and conversion, drug shortages and recalls, CMS NADAC acquisition prices, paid per call over x402. Machine-readable: OpenAPI, llms.txt, /.well-known/x402, agent skills.