# CMS Home Health Agencies Scraper (USA) (`scrapers_lat/cms-home-health-scraper`) Actor

Search Medicare-certified US home health agencies and extract CCN, name, address, phone, ownership, services offered (nursing, PT, OT, speech, aide) and quality-of-care star rating. Filter by state, city, zip, ownership, services or rating. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/cms-home-health-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $12.75 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## CMS Home Health Agencies Scraper (USA)

> Search every Medicare-certified US home health agency and get a clean, structured record with address, phone, ownership, the services it offers and its quality-of-patient-care star rating. Look up agencies by name, or filter a whole state, city, ZIP, ownership type or rating.

**📥 [Input](https://apify.com/scrapers_lat/cms-home-health-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/cms-home-health-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/cms-home-health-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/cms-home-health-scraper/examples)**

No login, no API key and no proxy setup are required.

### What you get

One row per agency, with:

- **Identity** — CMS Certification Number (CCN), agency name and Medicare certification date.
- **Contact** — full street address, city, state, ZIP and phone number.
- **Ownership** — ownership type (proprietary, non-profit or government).
- **Services offered** — skilled nursing, physical therapy, occupational therapy, speech pathology, medical social services and home health aide (each as a clear yes/no flag).
- **Quality** — the quality-of-patient-care star rating plus the main outcome measures: timely start of care, improvement in walking, bed transfer, bathing, breathing and medication, discharge function score, discharge-to-community, potentially preventable readmission and hospitalization rates, and Medicare spending per episode.

### Who is it for

- Lead generation and market mapping for post-acute, staffing, software and services vendors (with agency phone + address).
- KYB, due diligence and network building for payers and referral partners.
- Healthcare research and benchmarking by ownership, services or quality rating.
- Building home-health provider datasets by state, city or ZIP.

### How to use it

1. Add one or more **agency names** (or leave empty to sweep every agency that matches your filters).
2. Optionally narrow by **state**, **city**, **ZIP**, **ownership type**, **services offered** or **star rating**.
3. Set **Max Agencies To Scrape** and run. Export the results to JSON, CSV or Excel.

### Good to know

- **No result, no charge.** You are billed only for real agency records returned. Empty or failed runs cost nothing.
- **No first-page cap.** Broad searches paginate the full result set instead of stopping at the first page.
- **Dedup built in.** An agency that matches more than one of your searches is returned once.
- **Clean, flat columns.** Every field is a top-level column that maps straight to CSV or Excel, so no nested cells.

### FAQ

**Do I need an account or key for the data source?** No. The actor handles everything internally.

**What is the CCN?** The CMS Certification Number is the unique identifier Medicare assigns to each certified home health agency.

**What does the star rating mean?** It is the quality-of-patient-care star rating (1 to 5) published for the agency; higher is better.

**Can I filter by the services an agency offers?** Yes. Toggle any of the service filters (nursing, PT, OT, speech, medical social, aide) to keep only agencies that offer them.

### Related actors

- [FDIC Banks & Financial Institutions Scraper](https://apify.com/scrapers_lat/fdic-banks-scraper)
- [NPPES NPI Healthcare Provider Data Scraper](https://apify.com/scrapers_lat/nppes-npi-scraper)
- [NCUA Credit Unions Scraper](https://apify.com/scrapers_lat/ncua-credit-unions-scraper)

Built by [scrapers.lat](https://scrapers.lat) — reliable data extraction actors.

### Disclaimer

This actor retrieves **public records** published as open data by the US Centers for Medicare & Medicaid Services. You are responsible for using the data lawfully, including for KYB, due diligence and lead-generation purposes, and for complying with applicable rules in your jurisdiction. This actor is independent and is not affiliated with or endorsed by any government agency.

# Actor input Schema

## `agencyNames` (type: `array`):

Agency names or keywords to search, one per line (for example 'VNA', 'home health', 'Amedisys'). Each term runs its own search. Leave empty to sweep all agencies that match the filters below.

## `states` (type: `array`):

Optional. Two-letter US state codes to restrict results (for example CA, TX, FL).

## `cities` (type: `array`):

Optional. City names to restrict results (for example 'Houston', 'Miami').

## `zipCodes` (type: `array`):

Optional. ZIP codes to restrict results.

## `ownershipType` (type: `string`):

Optional. Restrict by ownership category.

## `requireNursing` (type: `boolean`):

Only agencies that offer skilled nursing care.

## `requirePhysicalTherapy` (type: `boolean`):

Only agencies that offer physical therapy.

## `requireOccupationalTherapy` (type: `boolean`):

Only agencies that offer occupational therapy.

## `requireSpeechPathology` (type: `boolean`):

Only agencies that offer speech pathology.

## `requireMedicalSocial` (type: `boolean`):

Only agencies that offer medical social services.

## `requireHomeHealthAide` (type: `boolean`):

Only agencies that offer home health aide services.

## `minStarRating` (type: `integer`):

Optional. Only agencies with at least this quality-of-patient-care star rating (1 to 5).

## `maxStarRating` (type: `integer`):

Optional. Only agencies with at most this quality-of-patient-care star rating (1 to 5).

## `maxAgencies` (type: `integer`):

Maximum number of agencies to collect across all searches.

## `withAiSummary` (type: `boolean`):

Paid add-on. Concise summary of the agency, its ownership and services. Charged only on usable AI output. Requires a paid Apify plan.

## `withAiQualitySummary` (type: `boolean`):

Paid add-on. Plain-English summary of the agency's care quality from its star rating and quality measures. Charged only on usable AI output. Requires a paid Apify plan.

## `withAiRisk` (type: `boolean`):

Paid add-on. Surface quality red flags for low performers (low star rating, worse-than-expected measures). Charged only on usable AI output. Requires a paid Apify plan.

## Actor input object example

```json
{
  "agencyNames": [
    "VNA"
  ],
  "ownershipType": "",
  "requireNursing": false,
  "requirePhysicalTherapy": false,
  "requireOccupationalTherapy": false,
  "requireSpeechPathology": false,
  "requireMedicalSocial": false,
  "requireHomeHealthAide": false,
  "maxAgencies": 50,
  "withAiSummary": false,
  "withAiQualitySummary": false,
  "withAiRisk": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "agencyNames": [
        "VNA"
    ],
    "maxAgencies": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/cms-home-health-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "agencyNames": ["VNA"],
    "maxAgencies": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/cms-home-health-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "agencyNames": [
    "VNA"
  ],
  "maxAgencies": 50
}' |
apify call scrapers_lat/cms-home-health-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapers_lat/cms-home-health-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/0CzMjfb2NdkdbveuA/builds/mk1f9osg6JcaHPXLz/openapi.json
