# Home Health Agency Scraper — CMS Medicare Provider Directory (`compute-edge/cms-home-health-scraper`) Actor

Extract Medicare-certified home health agencies from the official CMS Provider Data Catalog: agency name, address, phone, ownership, services offered, and quality star ratings. Filter by state. JSON, CSV, Excel, and LLM-ready Markdown output.

- **URL**: https://apify.com/compute-edge/cms-home-health-scraper.md
- **Developed by:** [Compute Edge](https://apify.com/compute-edge) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 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.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Home Health Agency Scraper — CMS Medicare Provider Directory

Extract a complete, up-to-date directory of **Medicare-certified home health agencies** across the United States, sourced directly from the official **[CMS Provider Data Catalog](https://data.cms.gov/provider-data/)** (Home Health Care Agencies). This Actor turns the government's clunky data portal into clean, structured **JSON, CSV, or Excel** — ready for sales prospecting, market analysis, healthcare research, and AI/RAG pipelines.

Every record is maintained by the Centers for Medicare & Medicaid Services as a condition of Medicare participation, so the data is **authoritative and refreshed regularly** — no scraping of brittle HTML, no stale third-party lists.

### What you can extract

This scraper returns the following fields for each provider:

| Field | Description |
|-------|-------------|
| `providerName` | Official facility / agency name |
| `ccn` | CMS Certification Number (unique provider ID) |
| `address` | Full street address |
| `city` | City / town |
| `state` | Two-letter state code |
| `zipCode` | ZIP code |
| `county` | County / parish |
| `phone` | Telephone number |
| `ownership` | Ownership / profit type |

Plus services offered (nursing, physical therapy, occupational therapy, speech pathology, medical social, home health aide) and quality of patient care star ratings and **all additional raw fields** from the source dataset.

### Why scrape home health agencies?

A single verified home health agency lead is worth hundreds to thousands of dollars to medical suppliers, staffing agencies, healthcare SaaS vendors, pharmaceutical reps, M&A analysts, and market researchers. This Actor replaces hours of manual lookups on the CMS portal with one click — giving you a clean lead list with phone numbers and ownership details for the **entire country or any single state**.

### How to scrape home health agencies

1. Click **Try for free** / **Start**.
2. (Optional) Enter a **State** (e.g. `CA`) to limit results to one state.
3. (Optional) Enter a **Name Filter** to match providers by name.
4. Set **Max Results** (use `0` for the full national dataset).
5. Toggle **Include LLM-Ready Markdown** if you feed data into AI/RAG pipelines.
6. Run the Actor and download results as JSON, CSV, or Excel.

### Input example

```json
{
  "state": "CA",
  "nameFilter": "",
  "maxResults": 1000,
  "includeMarkdown": false
}
````

### Output example

```json
{
  "providerName": "EXAMPLE HOME HEALTH AGENCY OF CALIFORNIA",
  "ccn": "000000",
  "address": "123 MAIN ST, SUITE 100",
  "city": "LOS ANGELES",
  "state": "CA",
  "zipCode": "90001",
  "county": "LOS ANGELES",
  "phone": "3105551234",
  "ownership": "PROPRIETARY"
}
```

### Pricing

This Actor is billed **per result** on top of Apify platform compute. A nationwide pull of all home health agencies costs only a few cents to a few dollars depending on dataset size. Filtering by state keeps costs minimal.

### LLM-ready output

Enable **Include LLM-Ready Markdown** to attach a clean, semantic Markdown summary to every record — ideal for feeding directly into Claude, GPT, Gemini, or any RAG/vector pipeline without an extra cleaning step.

### Related Actors

Explore our other healthcare and government-data scrapers on the Apify Store, including Medicare provider, nursing home, hospital, and HHS/CMS directories.

### FAQ

**Is this data public?** Yes. All data comes from the publicly published CMS Provider Data Catalog.

**How fresh is the data?** It reflects the latest CMS publication, refreshed on each run.

**Can I get the whole country?** Yes — leave the State field empty and set Max Results to 0.

### Legal disclaimer

This Actor extracts only publicly available, non-personal business directory information published by the U.S. government (Centers for Medicare & Medicaid Services). It does not collect personal data of individuals. Use the data in compliance with applicable laws and the CMS terms of use. This tool is provided for legitimate business, research, and analytical purposes.

# Actor input Schema

## `state` (type: `string`):

Filter by 2-letter US state code (e.g. 'CA', 'TX', 'NY'). Leave empty to scrape all states.

## `nameFilter` (type: `string`):

Only include providers whose name contains this text (case-insensitive). Leave empty for all.

## `maxResults` (type: `integer`):

Maximum number of records to return. Set to 0 for unlimited (all matching providers).

## `includeMarkdown` (type: `boolean`):

Add a clean, RAG-ready Markdown summary field to each record for use in AI/LLM pipelines.

## Actor input object example

```json
{
  "state": "",
  "nameFilter": "",
  "maxResults": 1000,
  "includeMarkdown": false
}
```

# Actor output Schema

## `dataset` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("compute-edge/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 = {}

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

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

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

```

## CLI example

```bash
echo '{}' |
apify call compute-edge/cms-home-health-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=compute-edge/cms-home-health-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Home Health Agency Scraper — CMS Medicare Provider Directory",
        "description": "Extract Medicare-certified home health agencies from the official CMS Provider Data Catalog: agency name, address, phone, ownership, services offered, and quality star ratings. Filter by state. JSON, CSV, Excel, and LLM-ready Markdown output.",
        "version": "0.1",
        "x-build-id": "VzRjyOeEZUW0AAG24"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/compute-edge~cms-home-health-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-compute-edge-cms-home-health-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/compute-edge~cms-home-health-scraper/runs": {
            "post": {
                "operationId": "runs-sync-compute-edge-cms-home-health-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/compute-edge~cms-home-health-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-compute-edge-cms-home-health-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "state": {
                        "title": "State",
                        "type": "string",
                        "description": "Filter by 2-letter US state code (e.g. 'CA', 'TX', 'NY'). Leave empty to scrape all states.",
                        "default": ""
                    },
                    "nameFilter": {
                        "title": "Name Filter",
                        "type": "string",
                        "description": "Only include providers whose name contains this text (case-insensitive). Leave empty for all.",
                        "default": ""
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "maximum": 200000,
                        "type": "integer",
                        "description": "Maximum number of records to return. Set to 0 for unlimited (all matching providers).",
                        "default": 1000
                    },
                    "includeMarkdown": {
                        "title": "Include LLM-Ready Markdown",
                        "type": "boolean",
                        "description": "Add a clean, RAG-ready Markdown summary field to each record for use in AI/LLM pipelines.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
