# CMS NADAC Drug Acquisition Cost Changes Feed

> CMS NADAC Drug Acquisition Cost Changes Feed is a paid API for AI agents from data.spencermcw.com, paid per call via x402, $0.05/call, status unknown (last checked 2026-10-23).

Returns weekly changes in CMS NADAC per-unit drug acquisition costs and NDC listing status changes, with CMS's stated reason for each change.

## Facts

- Endpoint: GET https://data.spencermcw.com/v1/drug/nadac/changes?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/cms-nadac-drug-acquisition-cost-changes-feed-8b75df91
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_uIqgegxYDEXHsyMkcfl_w

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability cms-nadac-drug-acquisition-cost-changes-feed-8b75df91
```

Example prompt: What drug acquisition cost changes did CMS publish in the NADAC file for the week of 2025-06-09? Show me up to 25 records and include the reason CMS gave for each change.

## When to prefer this

Use this endpoint when you need a structured, paginated change log of CMS NADAC drug acquisition costs — specifically to detect which drugs changed price or listing status week-over-week, and why. Prefer this over the raw NADAC lookup endpoint when your goal is delta detection, auditing, or alerting on cost changes rather than looking up the current cost for a specific drug.

## Known failure modes

- Invalid NDC format returns a validation error
- Invalid week date format returns a 400 error
- Exceeding limit of 100 returns a validation error
- No data available for a given week if CMS has not yet published that file
- Malformed since datetime returns a parsing error
- Payment failure (x402) if USDC on Base is not provided and free daily quota is exhausted

## How this service works

Which drug acquisition costs changed this week? NADAC per-unit cost changes and NDCs added or dropped, with CMS’s stated reason, 2025 on, from CMS’s weekly NADAC files. Updated weekly. $0.05 per call (x402, USDC on Base); 3 free calls a day.

## Output

A paginated list of NADAC change records, each containing the NDC, drug description, the changed field (nadac_per_unit or listed), old and new values, the effective date, the weekly CMS file the change first appeared in, CMS's stated reason, detection timestamp, method version, and source file SHA256 hashes for auditability. A next_cursor value is provided for pagination.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "ndc": {
       "type": "string",
       "pattern": "^(\\d{11}|\\d{4,5}-\\d{3,4}-\\d{1,2})$"
      },
      "week": {
       "type": "string",
       "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
      },
      "field": {
       "enum": [
        "nadac_per_unit",
        "listed"
       ],
       "type": "string"
      },
      "limit": {
       "type": "integer",
       "maximum": 100,
       "minimum": 1
      },
      "since": {
       "type": "string",
       "format": "date-time",
       "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
      },
      "cursor": {
       "type": "string",
       "pattern": "^\\d{1,12}$"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "data": {
       "type": "object",
       "required": [
        "records",
        "next_cursor"
       ],
       "properties": {
        "records": {
         "type": "array",
         "items": {
          "type": "object",
          "required": [
           "id",
           "as_of",
           "ndc",
           "description",
           "field",
           "old",
           "new",
           "effective",
           "reason",
           "detected_at",
           "source_sha256_old",
           "source_sha256_new",
           "method_version"
          ],
          "properties": {
           "id": {
            "type": "string"
           },
           "ndc": {
            "type": "string"
           },
           "new": {
            "type": [
             "string",
             "null"
            ]
           },
           "old": {
            "type": [
             "string",
          
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/cms-nadac-drug-acquisition-cost-changes-feed-8b75df91/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from data.spencermcw.com](https://www.zero.xyz/host/data.spencermcw.com/llms.txt)
