CMS Medicare Physician Payments Scraper
Pricing
from $0.01 / 1,000 cms payment record extracteds
CMS Medicare Physician Payments Scraper
Extract official CMS Medicare physician payment, utilization, provider, HCPCS, and geography data for reimbursement and market analysis.
Pricing
from $0.01 / 1,000 cms payment record extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract Medicare Physician & Other Practitioners payment, utilization, provider, HCPCS, and geography data from official CMS public data APIs.
What does CMS Medicare Physician Payments Scraper do?
CMS Medicare Physician Payments Scraper turns the public CMS Medicare Physician & Other Practitioners files into clean Apify dataset rows.
It reads the official data.cms.gov catalog, discovers the current API endpoint, applies practical filters, and saves normalized records.
Use it when you need provider reimbursement, submitted charge, allowed amount, payment amount, service volume, beneficiary count, specialty, and source metadata.
Who is it for?
- ๐ฅ Healthcare market analysts benchmarking provider reimbursement.
- ๐ณ Revenue-cycle teams comparing submitted charges and Medicare allowed amounts.
- ๐ Consulting teams sizing specialty, state, or HCPCS service markets.
- ๐งพ Compliance researchers auditing provider/service utilization patterns.
- ๐งฌ Data enrichment teams adding Medicare payment context to NPI lists.
- ๐ข Healthcare sales teams segmenting providers by services and geography.
Why use this scraper?
- โ Uses official CMS public APIs, not browser scraping.
- โ Supports provider/service, provider summary, and geography/service modes.
- โ Normalizes numeric charge, allowed, payment, utilization, and beneficiary fields.
- โ Includes source dataset/version metadata for reproducible analysis.
- โ Keeps the raw CMS row so analysts can audit every normalized value.
- โ Works without accounts, cookies, proxies, or manual CSV downloads.
Data source
The actor uses CMS data.cms.gov/data.json and the CMS Data API endpoints linked from the catalog.
The default source is the latest Medicare Physician & Other Practitioners release available in the CMS catalog.
You can also select recent years when CMS exposes them in the catalog distributions.
Dataset modes
Provider and service
Use provider-service to extract rows by rendering NPI and HCPCS service.
This is the default mode and is best for reimbursement benchmarking by code.
Provider summary
Use provider-summary to extract provider-level summary rows.
This is useful for broad provider profiling and NPI enrichment.
Geography and service
Use geography-service to extract service-level geography rows.
This is useful for state-level or market-level demand and reimbursement research.
What data can you extract?
| Field group | Examples |
|---|---|
| Source metadata | dataset mode, CMS dataset title, API URL, CSV URL, modified date, dataset year |
| Provider identity | NPI, provider name, first name, last name, credentials, entity code |
| Provider location | address, city, state, ZIP5, country |
| Provider profile | specialty, Medicare participation indicator |
| Service details | HCPCS code, HCPCS description, drug indicator, place of service |
| Utilization | beneficiaries, services, beneficiary-day services |
| Payment fields | average submitted charge, Medicare allowed amount, payment amount, standardized amount |
| Audit data | raw CMS row |
How much does it cost to extract CMS Medicare physician payment data?
This actor uses pay-per-event pricing.
You pay a small start fee plus a per-record fee for each CMS record saved to the dataset.
Use narrow filters during exploration, then increase maxRecords when you are ready for production exports.
Input options
datasetModeโ choose provider-service, provider-summary, or geography-service.datasetYearโ choose latest or a specific data year if CMS exposes it.maxRecordsโ cap how many rows to save.npiโ filter to one rendering provider NPI.providerNameโ local contains filter over provider first/last/organization name.stateโ two-letter rendering provider state abbreviation.specialtyโ exact CMS provider type such as Internal Medicine.zip5โ five-digit provider ZIP code.hcpcsCodeโ HCPCS/CPT service code such as 99213.placeOfServiceโ facility (F) or office/non-facility (O).
Example input
{"datasetMode": "provider-service","datasetYear": "latest","state": "CA","hcpcsCode": "99213","maxRecords": 100}
Example output
{"datasetMode": "provider-service","datasetYear": 2024,"npi": "1003000142","providerName": "Rashid Khalil","specialty": "Anesthesiology","state": "OH","hcpcsCode": "99213","beneficiaryCount": 20,"serviceCount": 45,"submittedChargeAmount": 120,"medicareAllowedAmount": 75,"medicarePaymentAmount": 58,"sourceDatasetTitle": "Medicare Physician & Other Practitioners - by Provider and Service"}
How to scrape CMS Medicare physician payment data
- Open the actor on Apify.
- Select the dataset mode.
- Keep
datasetYearas latest unless your workflow needs a historical year. - Add one or more filters such as state, NPI, specialty, HCPCS, or place of service.
- Set
maxRecords. - Run the actor.
- Export the dataset as JSON, CSV, Excel, XML, or via API.
Tips for better results
- Use
stateplushcpcsCodefor practical reimbursement benchmarks. - Use
npiwhen enriching a known provider list. - Use
specialtywithstatefor provider market sizing. - Use
providerNamewith another filter because name matching is applied locally after CMS API paging. - Use
geography-servicefor market-level analysis instead of provider-level rows.
Common workflows
NPI reimbursement enrichment
Run one NPI at a time or batch NPI inputs through the Apify API.
Join results to your CRM, provider master, or credentialing database.
HCPCS benchmarking
Filter by HCPCS and state to compare average submitted charges, allowed amounts, and payments.
Use this for reimbursement analytics and market pricing research.
Specialty market sizing
Filter by specialty and state, then aggregate services and beneficiaries downstream.
This helps estimate demand by specialty and geography.
Compliance review
Export raw and normalized rows together so reviewers can trace every value to CMS source data.
Integrations
- Send output to Google Sheets for analyst review.
- Export to BigQuery, Snowflake, or S3 for recurring data pipelines.
- Use Apify webhooks to trigger downstream ETL jobs.
- Call the actor from Python or Node.js when enriching provider lists.
- Connect with Apify MCP for natural-language research workflows.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/cms-medicare-physician-payments-scraper').call({datasetMode: 'provider-service',state: 'CA',hcpcsCode: '99213',maxRecords: 100,});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/cms-medicare-physician-payments-scraper').call(run_input={'datasetMode': 'provider-service','state': 'CA','hcpcsCode': '99213','maxRecords': 100,})print(run['defaultDatasetId'])
cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~cms-medicare-physician-payments-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"datasetMode":"provider-service","state":"CA","hcpcsCode":"99213","maxRecords":100}'
MCP usage
Use Apify MCP with this tool enabled:
https://mcp.apify.com/?tools=automation-lab/cms-medicare-physician-payments-scraper
Add it to Claude Code with:
claude mcp add apify-cms-medicare-physician-payments \"https://mcp.apify.com/?tools=automation-lab/cms-medicare-physician-payments-scraper"
Claude Desktop JSON configuration:
{"mcpServers": {"apify-cms-medicare-physician-payments": {"url": "https://mcp.apify.com/?tools=automation-lab/cms-medicare-physician-payments-scraper"}}}
Example prompts:
- "Extract Medicare physician payment records for HCPCS 99213 in California."
- "Find Medicare provider-service rows for this NPI and summarize payment amounts."
- "Compare beneficiary and service counts for a specialty across states."
Data freshness
The actor discovers the latest CMS catalog distribution at run time.
CMS release dates and modified dates are included in output metadata when available.
Limitations
CMS API filters are exact-match for fields such as state, NPI, HCPCS, ZIP5, and specialty.
Provider-name search is local after CMS paging, so combine it with narrower filters for large searches.
CMS can revise datasets, field names, or release availability; source metadata is included to help track changes.
Legality
CMS Medicare Physician & Other Practitioners files are public government datasets.
You are responsible for using healthcare data in compliance with applicable laws, payer contracts, privacy rules, and business policies.
Do not use output for unlawful discrimination, credentialing shortcuts, or unsupported clinical conclusions.
FAQ
Is this official CMS data?
Yes. The actor reads public CMS Data API endpoints discovered from data.cms.gov/data.json and includes source metadata in every row.
Can I search by provider name?
Yes, but provider-name matching is applied locally after CMS API paging. Combine it with state, NPI, specialty, ZIP5, or HCPCS filters for efficient runs.
Troubleshooting
Why did I get zero records?
Check exact spelling and formatting. CMS filters are exact-match. Try removing specialty or ZIP5 first, then add filters back.
Why is providerName slow or incomplete?
The CMS API does not provide a general contains search endpoint for provider names. The actor applies providerName locally after fetching pages.
Why are some fields empty?
Different CMS dataset modes expose different fields. Geography rows may not include NPI-level provider details, and summary rows may not include every service field.
Related scrapers
Explore related healthcare and government data actors from Automation Lab:
- https://apify.com/automation-lab/cms-open-payments-scraper
- https://apify.com/automation-lab/nppes-npi-registry-scraper
- https://apify.com/automation-lab/healthgrades-scraper
Support
If you need a missing CMS field, historical release, or workflow-specific output shape, open an issue on the actor page with an example input and expected output.
Changelog
0.1
Initial private build with CMS catalog discovery, provider/service, provider summary, geography/service modes, normalized payment fields, and raw row audit data.