CMS Home Health Compare Scraper avatar

CMS Home Health Compare Scraper

Pricing

Pay per event

Go to Apify Store
CMS Home Health Compare Scraper

CMS Home Health Compare Scraper

Extract CMS home health agency contacts, ownership, services, quality ratings, and HHCAHPS patient survey scores for market research.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Extract Medicare-certified home health agency records from CMS Provider Data / Care Compare.

Use this actor to collect agency names, CMS Certification Numbers, addresses, phones, ownership, services, quality star ratings, selected quality measures, and HHCAHPS patient survey scores.

The actor is built for repeatable healthcare market mapping, lead generation, referral-network research, quality benchmarking, and competitor monitoring.

What does CMS Home Health Compare Scraper do?

CMS Home Health Compare Scraper downloads the public CMS Provider Data home health agency datasets and turns them into clean Apify dataset rows.

It focuses on one entity: Medicare-certified home health agencies.

Each output row combines provider listing data with optional HHCAHPS patient survey metrics.

The scraper uses official CMS CSV downloads rather than a fragile browser workflow.

That means runs are fast, stable, and suitable for recurring refreshes.

Who is it for?

πŸ₯ Healthcare lead-generation teams use it to build agency prospect lists by state, city, ownership, and quality threshold.

πŸ“Š Market intelligence teams use it to compare provider density, service coverage, and quality ratings across local markets.

🀝 Referral-network teams use it to identify qualified home health partners for hospitals, discharge planners, and care coordinators.

🧾 Compliance and quality teams use it to monitor CMS rating changes and public reporting updates.

πŸ’Ό Healthcare investors and operators use it to map acquisition targets and competitor footprints.

Why use this actor?

CMS publishes valuable data, but raw provider files are large and not shaped for sales or BI workflows.

This actor handles dataset discovery, CSV parsing, filtering, patient-survey joins, output normalization, and Apify dataset export.

You can run it from the Apify Console, schedule it, call it from an API, or pipe the dataset into your CRM or warehouse.

Data source

The actor uses CMS Provider Data from data.cms.gov/provider-data.

Primary dataset: Home Health Care Agencies.

Patient survey dataset: Home Health Care - Patient Survey (HHCAHPS) provider data.

Dataset metadata such as modified date and next update date is included in each output item.

What data can you extract?

Field groupExample fields
Agency identityccn, providerName
Contactaddress, city, state, zipCode, phone
Ownershipownership, certificationDate
Servicesnursing care, physical therapy, occupational therapy, speech pathology, medical social, home health aide
Qualityquality-of-patient-care star rating and selected measure percentages
Patient surveyHHCAHPS summary stars, communication stars, recommendation percent, survey count
Source metadatasource dataset, source URL, modified date, next update date, scrape time

Input options

You can filter the source dataset before saving items.

state limits results to a two-letter state abbreviation.

city limits results to a CMS city/town value.

search looks across provider name, address, and city.

ownership matches ownership text such as PROPRIETARY or NON-PROFIT.

minQualityRating keeps only agencies with a CMS quality star rating at or above the threshold.

minPatientSurveyRating keeps only agencies with an HHCAHPS survey summary star rating at or above the threshold.

includePatientSurvey controls whether the actor joins HHCAHPS survey data by CCN.

maxItems controls the maximum number of matching agencies saved.

Example input

{
"state": "TX",
"city": "HOUSTON",
"minQualityRating": 4,
"includePatientSurvey": true,
"maxItems": 100
}

Example output

{
"ccn": "747123",
"providerName": "EXAMPLE HOME HEALTH",
"state": "TX",
"city": "HOUSTON",
"address": "123 MAIN STREET",
"zipCode": "77002",
"phone": "7135550100",
"ownership": "PROPRIETARY",
"qualityOfPatientCareStarRating": 4,
"patientSurveySummaryStarRating": 5,
"services": {
"nursingCare": true,
"physicalTherapy": true
},
"sourceDataset": "Home Health Care Agencies"
}

How much does it cost to scrape CMS home health agencies?

This actor uses pay-per-event pricing.

There is a small start charge for each run.

There is a per-agency charge for each dataset item saved.

Default runs are inexpensive because the actor reads public CMS files without browser automation or proxies.

Use maxItems to cap exploratory runs.

How to scrape Texas home health agencies

  1. Open the actor on Apify.

  2. Enter TX in the state field.

  3. Leave city empty for statewide results or add a city such as HOUSTON.

  4. Keep includePatientSurvey enabled if you need HHCAHPS fields.

  5. Set maxItems to your desired cap.

  6. Start the run.

  7. Export results as JSON, CSV, Excel, or API.

How to find high-rated agencies

Set minQualityRating to 4 or 4.5.

Optionally set minPatientSurveyRating to 4.

This is useful for partner discovery, referral-network screening, and quality benchmarking.

How to monitor competitors

Create one task per market or state.

Schedule the task monthly or quarterly.

Compare dataset exports over time by ccn and rating fields.

Use the datasetModified and datasetNextUpdate fields to understand CMS freshness.

Data freshness

CMS periodically refreshes Provider Data files.

The actor reads the current download URL from the CMS Provider Data catalog at run time.

This avoids hard-coding one stale CSV file.

When CMS changes the file resource URL, the actor follows the current catalog entry.

Integrations

Send results to Google Sheets for market maps.

Send results to a CRM for lead routing.

Load results into Snowflake, BigQuery, or PostgreSQL for analytics.

Connect results to BI dashboards for provider density and quality scoring.

Use webhooks to notify teams when a scheduled market refresh finishes.

API usage

Run with the Apify API from Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/cms-home-health-compare-scraper').call({
state: 'TX',
maxItems: 100
});
console.log(run.defaultDatasetId);

Python API usage

from apify_client import ApifyClient
client = ApifyClient('MY-APIFY-TOKEN')
run = client.actor('automation-lab/cms-home-health-compare-scraper').call(run_input={
'state': 'CA',
'maxItems': 100,
})
print(run['defaultDatasetId'])

cURL API usage

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~cms-home-health-compare-scraper/runs?token=MY-APIFY-TOKEN' \
-H 'Content-Type: application/json' \
-d '{"state":"NY","maxItems":100}'

MCP usage

Use this actor from Claude Desktop or Claude Code through Apify MCP.

MCP server URL:

https://mcp.apify.com/?tools=automation-lab/cms-home-health-compare-scraper

Add it in Claude Code:

$claude mcp add apify-cms-home-health "https://mcp.apify.com/?tools=automation-lab/cms-home-health-compare-scraper"

Claude Desktop JSON config:

{
"mcpServers": {
"apify-cms-home-health": {
"url": "https://mcp.apify.com/?tools=automation-lab/cms-home-health-compare-scraper"
}
}
}

Example prompts:

  • "Find high-rated home health agencies in Houston and summarize the largest ownership groups."

  • "Build a CSV of non-profit home health agencies in California with patient survey scores."

  • "Compare CMS quality ratings for home health agencies in Phoenix and Tucson."

Tips for best results

Use uppercase state abbreviations for readability.

Use CMS city spellings when applying a city filter.

Start with maxItems around 100 for testing.

Increase maxItems for statewide or national exports.

Leave rating filters empty when you need complete market coverage.

Enable patient survey data when you need patient-experience scores.

Disable patient survey data for the fastest identity-only exports.

Limitations

The actor only returns agencies present in CMS public Provider Data.

Some measures may be unavailable for agencies with too few cases.

CMS uses - or footnotes for suppressed fields; the actor returns unavailable numeric fields as null.

The actor does not scrape private payer networks or non-Medicare agencies.

Legality

This actor extracts public government data from CMS Provider Data.

You are responsible for using the data according to applicable laws, CMS terms, and your organization's compliance policies.

Do not use contact data for unlawful spam or prohibited outreach.

FAQ

Does this scrape the CMS Care Compare website?

It uses the underlying CMS Provider Data downloads that power public comparison workflows.

This is more reliable than browser scraping.

Why are some ratings null?

CMS suppresses some measures when the sample size is too small or data is unavailable.

The actor preserves that reality by returning null for unavailable numeric values.

Can I scrape all states?

Yes. Leave state empty and set a large enough maxItems.

Can I filter by ownership?

Yes. Use values such as PROPRIETARY, NON-PROFIT, or another substring from CMS ownership text.

How do I avoid missing agencies?

Do not set rating filters when your goal is full coverage.

Some agencies have no reportable quality or survey star rating.

Explore other healthcare and public-data actors from automation-lab:

Support

If you need a new CMS dataset, a different healthcare vertical, or custom output fields, open an issue on the actor page.

Include the market, fields, and example workflow you need.

Changelog

Initial private build for CMS Home Health Compare / Provider Data home health agency extraction.