NADAC Drug Prices Scraper avatar

NADAC Drug Prices Scraper

Pricing

from $3.75 / 1,000 result items

Go to Apify Store
NADAC Drug Prices Scraper

NADAC Drug Prices Scraper

Scrapes NADAC drug pricing records from the CMS public dataset. Returns per-unit acquisition cost, effective date, and drug attributes as flat rows.

Pricing

from $3.75 / 1,000 result items

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

12 days ago

Last modified

Share

ParseForge

NADAC Drug Prices Scraper

Scrape NADAC drug prices from the official CMS dataset, filtered by drug name, NDC, dosage form, or OTC status. Every record includes the per-unit acquisition cost, effective date, and classification. Export to CSV, JSON, Excel, or XML.

The NADAC (National Average Drug Acquisition Cost) dataset is the official benchmark for what pharmacies pay for prescription and over-the-counter drugs in the US. This Actor reads the public CMS NADAC files directly, so you can pull current and historical pricing without an API key or registration. Filter by drug name, NDC, classification, dosage form, OTC status, or effective date, and get a clean, flat dataset ready for analysis.

Who uses itWhat they scrape NADAC for
Pharmacy benefit analystsMonitor acquisition cost trends for specific drugs or therapeutic classes
Health economistsBuild longitudinal price series for research on drug pricing
Pharmaceutical market researchersTrack generic and brand price movements across dosage forms
Insurance pricing teamsValidate reimbursement benchmarks against NADAC data
Healthcare data engineersAutomate weekly NADAC data ingestion into internal pipelines

What it does

This Actor collects NADAC drug pricing records from the CMS public dataset and returns each one as a flat row with the per-unit cost, effective date, and drug attributes.

  • ๐Ÿ” Drug name filter: match any part of the NDC description, like METFORMIN or IBUPROFEN.
  • ๐ŸŽฏ Exact NDC lookup: enter an 11-digit National Drug Code to get that specific product's pricing.
  • ๐Ÿ’Š Dosage form filter: restrict to tablets, capsules, injections, and 16 other FDA dosage forms.
  • ๐Ÿท๏ธ Classification filter: choose brand, generic, or any.
  • ๐Ÿ›’ OTC status filter: separate over-the-counter from prescription drugs.
  • ๐Ÿ“… Effective date range: pull only records effective within a specific window.
  • โ†•๏ธ Sort order: newest or oldest effective date first.
  • ๐Ÿ“ฆ Bulk export: collect up to 1,000,000 records per run and export to CSV, JSON, Excel, or XML.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with NADAC data

๐Ÿ“ˆ Track generic drug price trends.

A market researcher runs the Actor weekly with classification=Generic and a date range to see how generic acquisition costs are moving across the market.

๐Ÿ”Ž Look up a specific NDC's price history.

A pharmacist enters an 11-digit NDC and gets all effective prices for that product, useful for reimbursement checks.

๐Ÿ’Š Compare brand vs. generic costs.

A health economist pulls both classifications for a drug name like METFORMIN to analyze the brand-to-generic price gap.

๐Ÿ“Š Build a weekly pricing dashboard.

A data engineer schedules the Actor to run every week and feeds the flat output into a BI tool for ongoing monitoring.

๐Ÿงพ Audit pharmacy reimbursement rates.

An insurance analyst filters by OTC status and dosage form to verify that reimbursement benchmarks align with current NADAC values.

Why choose this scraper

What you get
Official CMS dataPrices come straight from the public NADAC files published by CMS, no third-party interpretation.
No API key neededThe Actor reads the public dataset directly, so you can start scraping immediately.
Flexible filteringNarrow by drug name, NDC, classification, dosage form, OTC status, or effective date.
Flat, clean outputEvery record is returned as a single row with consistent fields, ready for spreadsheets or databases.
Scalable collectionCollect up to a million records per run, enough for full market analyses.

How it compares

This Actor focuses on flexible filtering and bulk export of current NADAC records, while the competitors below add weekly price change tracking and mover detection.

FeatureParseForgeNADAC Drug Pricing API - Weekly NDC Price MoversPrescription Drug Price Tracker (CMS NADAC)
Filter by drug nameYesYesYes
Filter by exact NDCYesYesYes
Filter by dosage formYesNot listedNot listed
Filter by OTC statusYesNot listedNot listed
Filter by effective date rangeYesYesNot listed
Week-over-week price changesNot listedYesYes
Biggest mover detectionNot listedYesNot listed

Configure the run

Drive the Actor with a drug name, NDC, or any combination of filters, and each filter is applied as records are read so only matching NADAC prices reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
"maxItems": 10,
"drugName": "METFORMIN",
"sortOrder": "newest"
}

A larger pull:

{
"maxItems": 200,
"drugName": "METFORMIN",
"sortOrder": "newest"
}

Pricing

Pay-per-result: $0.005 per result collected. You pay only for the results written to your dataset.

Results collectedApproximate cost
100 results$0.50
1,000 results$5.00
10,000 results$50.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the NADAC Drug Prices Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to NADAC through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/nadac-drug-prices-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your filters. If you entered a drug name, make sure it matches part of the NDC description. If you used an NDC, verify it is exactly 11 digits. Also check the effective date range; if the dates are too narrow, no records may fall within them.

Why are my results limited to 10 records?

The default maxItems is 10. Increase the maxItems input to collect more records, up to 1,000,000.

How do I get the latest prices?

Set sortOrder to newest to get the most recent effective dates first. The Actor always reads the current public dataset, so no extra step is needed.

Can I filter by both drug name and NDC?

Yes, you can combine any filters. The Actor applies all specified filters, so results must match every condition.

Why is my NDC filter not working?

The NDC must be exactly 11 digits with no dashes or spaces. Double-check the code and try again.

FAQ

QuestionAnswer
What is NADAC?NADAC stands for National Average Drug Acquisition Cost. It is the average price pharmacies pay to acquire a drug, published weekly by CMS. It is a key benchmark for drug pricing and reimbursement in the US.
Where does the data come from?The Actor reads the official NADAC public dataset files published by CMS. No third-party API or key is required.
Can I filter by drug name?Yes, use the drugName input to match any part of the NDC description. For example, entering METFORMIN returns all products with METFORMIN in the name.
Can I get prices for a specific NDC?Yes, enter the exact 11-digit NDC in the ndc input field. The Actor will return only records for that code.
What is the difference between brand and generic classification?The classification field indicates whether the drug is a brand product (B) or a generic (G). You can filter by either or leave it as Any.
How do I filter by dosage form?Use the dosageForm select input. Options include tablet, capsule, solution, injection, and many others.
Can I separate over-the-counter from prescription drugs?Yes, the otc input lets you choose Over-the-counter (Y), Prescription (N), or Any.
How do I filter by effective date?Use effectiveFrom and effectiveTo with dates in YYYY-MM-DD format. The Actor returns records whose effective date falls within that range.
What is the maximum number of records I can collect?You can set maxItems up to 1,000,000 per run. The default is 10.
What output formats are supported?The Actor can export results as CSV, JSON, Excel, or XML, depending on your Apify dataset settings.
Is this data updated regularly?The Actor pulls from the current public NADAC files each time it runs, so you get the latest published data.
Do I need an API key?No, the Actor accesses the public dataset directly. You only need an Apify account to run it.

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Centers for Medicare & Medicaid Services (CMS). It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.