CMS drug spending

Search CMS drug spending

Search US CMS drug spending data, from Assyro's copies of CMS's published files: part-d (Medicare Part D Spending by Drug: per brand and generic name, "Overall" across manufacturers and per manufacturer, five years of Tot_Spndng, Tot_Dsg_Unts, Tot_Clms, Tot_Benes, Avg_Spnd_Per_Dsg_Unt_Wghtd, Avg_Spnd_Per_Clm, Avg_Spnd_Per_Bene, Outlier_Flag, plus Chg_ and CAGR_ growth in spending per unit), part-b (Medicare Part B Spending by Drug: per HCPCS code with brand and generic names, the same five-year metrics as Avg_Spndng_*, and Avg_DY24_ASP_Price-style ASP payment price), nadac (the latest weekly NADAC: what retail pharmacies pay to acquire each NDC, nadac_per_unit per pricing_unit). Omit dataset to search all three. Find by brand ("Eliquis"), generic ("apixaban"), manufacturer (Part D), HCPCS code (Part B, "J9271"), NDC (NADAC, 11 digits) or words. Records carry CMS's column names and values exactly as published: quote them with their column name and year, and say Medicare spending is gross, before manufacturer rebates. Never compute a price, total or change CMS did not publish (no dividing spending by claims yourself). Medicaid spending, commercial prices and list prices (WAC) are not here. A dataset that is not loaded is reported as not searched: never read that as "no Medicare spending". Call read_cms_drug_spending for every year of one row.

get/v1/sources/cms-drug-spending/search

Request

  • Base URL
    https://api.assyro.com
  • Auth
    none declared

Query parameters

dataset'part-d' | 'part-b' | 'nadac'

Search one dataset only. Omit for all three.

querystring

Words that must all appear in the brand, generic, manufacturer, HCPCS description or NDC description, e.g. "apixaban 5 mg".

brandstring

Brand name, substring match, e.g. "Humira" (in NADAC, matched against the NDC description).

genericstring

Generic name, substring match, e.g. "adalimumab" (in NADAC, matched against the NDC description).

manufacturerstring

Part D manufacturer, substring match (CMS cuts names to 15 characters), e.g. "AbbVie". Returns manufacturer rows, not "Overall".

manufacturersboolean

Part D: true to return the per-manufacturer rows as well as "Overall". Default false (Overall rows only, so a drug is not counted twice).

hcpcsstring

Part B HCPCS code, exact, e.g. "J9271".

ndcstring

NADAC NDC, 11 digits; dashes ignored ("00003-0894-21").

yearstring

The data year whose columns the records show (Part D and Part B), e.g. "2023". Default: the latest year in CMS's file.

sort'relevance' | 'spending' | 'name'

relevance (default: exact name matches first), spending (CMS's Tot_Spndng for the year, highest first; Part D and Part B) or name.

limitinteger

Records to return, default 8. total reports every match.

offsetinteger

Skip this many results (for paging), default 0.

Response

Matching records.

versionunknown required
totalinteger nullable required

Total matches the source reports, when it says.

notestring
summarystring[]

Changes

No recorded changes to this operation across all 1 revision of this API.