Connect to the data

Medicare Part B drug pricing from CMS — payment limits, ASP, HCPCS codes and NDC crosswalks. Four ways in, depending on what you are building.

MCP server

Ask in plain language from Claude — "what does Medicare pay for infliximab?" — instead of writing code. Best for analysts and ad-hoc work.

https://www.medpharmdata.com/mcp
  • search_hcpcs_codes — drug name to HCPCS code
  • get_payment_limit — payment limit and ASP
  • get_ndcs_for_hcpcs — NDCs and billing units
  • list_quarters — what data is loaded
Setup guide Sign in with your account — no key to paste

REST API

Pull pricing into a billing system, a spreadsheet job or a warehouse. Best for anything scheduled or repeated.

https://www.medpharmdata.com/api/v1/
  • One code, or up to 100 per request
  • Current quarter, a pinned quarter, or full history
  • Authenticated with an issued API key

The website

Search a drug, read its pricing history quarter by quarter, see the NDC crosswalk and leave comments for your team. No setup.

Exports

Pricing history as CSV from any drug page, and quarter-over-quarter change reports as Excel. Best for a one-off analysis you want to hand to someone else.

Available from the drug and CMS pages once signed in.

Which should I use?

If you want to…Use
Ask questions conversationally, explore, sanity-check a number MCP server
Refresh a fee schedule on a schedule REST API — batch endpoint
Reproduce what a price was in a past quarter REST API?quarter=
Look one drug up by hand The website

Reference

TopicWhere
Authentication — API keys and headers Docs › Authentication
Endpoints, parameters and error codes Docs › Endpoints
How to read the ASP — it is an estimate, and biosimilars differ Docs › Reading the numbers
Rate limits Docs › Limits and errors
Which quarters are loaded https://www.medpharmdata.com/api/v1/quarters/
Before you build on the ASP: CMS publishes the payment limit, not the ASP. Every ASP figure here is MedPharmData's estimate, and biosimilars are calculated differently from ordinary drugs. Each response says which basis was used — read Reading the numbers before you reconcile against anything.

Need an API key, a higher rate limit, or something the API does not cover yet? Get in touch.