# CMS Medicare Part D Prescriber-by-Drug Lookup

> CMS Medicare Part D Prescriber-by-Drug Lookup is a paid API for AI agents from api.healthtravel-api.workers.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-29).

Returns CMS Medicare Part D prescribing rows filtered by prescriber NPI or generic drug name (with optional state), including claims counts, 30-day fills, and total drug cost.

## Facts

- Endpoint: GET https://api.healthtravel-api.workers.dev/api/health/cms-medicare-part-d?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/cms-medicare-part-d-prescriber-by-drug-lookup-07e27a41
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_P-e-7r8VVITg_PAaVbWZs

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-medicare-part-d-prescriber-by-drug-lookup-07e27a41
```

Example prompt: Pull up to 10 CMS Medicare Part D prescribing rows for doctors in Texas who prescribe Metformin — I want to see their names, specialties, claim counts, 30-day fills, and total drug costs.

## When to prefer this

Use this endpoint when you need structured Medicare Part D prescribing data tied to a specific prescriber (by NPI) or a specific generic drug (optionally filtered by state). It is ideal for healthcare analytics, prescriber profiling, drug utilization research, and compliance workflows that rely on CMS open data. Prefer this over general web search when you need structured, machine-readable claim counts, 30-day fills, and drug costs directly from CMS.

## Known failure modes

- No results returned if the NPI does not exist in Part D data or has no drug claims
- Empty results if the generic drug name is misspelled or not in CMS data
- Invalid NPI format (must be exactly 10 digits) may yield no matches
- Invalid or missing state code returns no state-filtered results
- Both NPI and generic omitted may return unfiltered or error response
- Rate limits or payment failures under x402 protocol return HTTP 402

## How this service works

CMS Medicare Part D prescriber rows (by provider and drug): prescriber NPI, name, specialty, state, drug name, claims, 30-day fills and total drug cost. Filter by 10-digit NPI, or by generic drug name with an optional state. Up to 20 rows per call.

## Output

A JSON object containing the query parameters echoed back, a source URL pointing to data.cms.gov, a timestamp, and an array of up to 20 prescription rows each with: prescriber NPI, name, city, state, specialty, generic drug name, brand drug name, claim count, 30-day fill count, and total drug cost.

## 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": {
      "max": {
       "type": "string",
       "description": "How many rows, 1 to 20 (default 5)"
      },
      "npi": {
       "type": "string",
       "description": "10-digit prescriber NPI, optional (use this or generic)"
      },
      "state": {
       "type": "string",
       "description": "Two-letter state code, optional"
      },
      "generic": {
       "type": "string",
       "description": "Generic drug name, letters and spaces, optional"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "query": {
   "npi": null,
   "state": "VT",
   "generic": "Isosorbide Mononitrate"
  },
  "source": "https://data.cms.gov/provider-summary-by-type-of-service/medicare-part-d-prescribers/medicare-part-d-prescribers-by-provider-and-drug",
  "checkedAt": "2026-10-23T09:36:25.073Z",
  "prescriptions": [
   {
    "npi": "1003857178",
    "city": "Berlin",
    "name": "Laura Felsted",
    "state": "VT",
    "claims": 30,
    "brandName": "Isosorbide Mononitrate Er",
    "specialty": "Internal Medicine",
    "fills30day": 51,
    "genericName": "Isosorbide Mononitrate",
    "totalDrugCost": 650.4
   },
   {
    "npi": "1013082098",
    "city": "Rutland",
    "name": "Bartholomew Bonazinga",
    "state": "VT",
    "claims": 41,
    "brandName": "Isosorbide Mononitrate Er",
    "specialty": "Cardiology",
    "fills30day": 75,
    "genericName": "Isosorbide Mononitrate",
    "totalDrugCost": 877.48
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/cms-medicare-part-d-prescriber-by-drug-lookup-07e27a41/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.healthtravel-api.workers.dev](https://www.zero.xyz/host/api.healthtravel-api.workers.dev/llms.txt)
