# US Senior Care & Assisted Living Facility Leads Scraper (`scrapesage/senior-care-facility-leads-scraper`) Actor

Scrape US senior-care & assisted-living facility leads from official state licensing registries: operator, administrator, phone, bed capacity, care type, memory-care flag, ownership, license dates & lead score. 6 states, monitor mode.

- **URL**: https://apify.com/scrapesage/senior-care-facility-leads-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** Lead generation, Agents, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.75 / 1,000 facility records

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

## US Senior Care & Assisted Living Facility Leads Scraper (Official State Licensing)

Build a **clean, ready-to-contact lead list of US senior-care providers** — assisted living, personal/residential/adult care, memory care, skilled nursing, home-care, home-health and hospice — straight from **official state licensing registries**. Every record carries the firmographics that matter for B2B selling: **operator, administrator/contact name, phone, licensed bed capacity, care type, memory-care flag, ownership type, license number, effective/expiration dates**, plus a 0–100 lead score.

No login, no cookies, no browser, no proxy — fast JSON extraction from government open-data portals.

### Why this senior-care scraper?

Consumer directories (Caring.com, A Place for Mom, Care.com) give you reviews, photos and ballpark pricing — but **not** the regulatory firmographics buyers actually qualify on. This actor pulls the **official licensing record** for each facility and ships the richest senior-care lead dataset in the category.

| Data | Consumer directory scrapers | This actor (official licensing) |
|---|---|---|
| Operator / licensee legal entity | ❌ | ✅ |
| Administrator / contact **name** | ❌ | ✅ |
| Phone | partial | ✅ |
| **Licensed bed capacity** | ❌ | ✅ |
| Care type & **memory-care flag** | partial | ✅ |
| Ownership (for-profit / non-profit / government) | ❌ | ✅ |
| License number + effective / expiration dates | ❌ | ✅ |
| Medicare / Medicaid certification | ❌ | ✅ |
| New-license & license-expiring (renewal) signals | ❌ | ✅ |
| Lead score (0–100) | ❌ | ✅ |
| Only-new **monitor mode** | ❌ | ✅ |

### Coverage

Official state long-term-care licensing registries (keyless government open data), normalized into one schema:

| State | Source registry | What's covered |
|---|---|---|
| **MO** | DHSS Long-Term Care Directory | Assisted living, residential care, skilled & intermediate nursing — capacity, administrator, operator, memory-care flag, Medicare/Medicaid |
| **NY** | DOH Adult Care Facility Directory | Adult homes, enriched / assisted living — operator, beds, phone, fax |
| **PA** | DHS Licensed Personal Care Homes | Personal care homes — capacity, phone, geo |
| **MD** | OHCQ Assisted Living | Assisted living — capacity, phone, geo |
| **CT** | DPH Nursing Facility Registry + Assisted Living Services Agencies | Nursing homes (ownership, beds, payer mix) + AL service agencies |
| **IL** | IDPH directories | Home care, home health, home nursing, placement, hospice agencies & residences — contact name, phone, license |

> More states are added over time. Leave **states** empty to pull every available registry.

### Use cases

- **Sell to senior-living operators** — pitch management software (eMAR/EHR, CRM, scheduling), dietary & food service, medical supplies/DME, pharmacy, staffing, insurance, maintenance. Filter by `careType`, `bedCapacity` and `ownershipType` to hit your ICP.
- **LTC & specialty pharmacy** — target assisted-living, memory-care and skilled-nursing facilities by state, capacity and Medicare/Medicaid status.
- **Caregiver & nurse staffing** — reach home-care, home-health and hospice agencies with named contacts and direct phones.
- **Senior-housing investment / M\&A & brokerage** — map operators, bed counts, ownership and license status by market for acquisition pipelines.
- **Real estate & development** — find facilities by county/ZIP and size for sale-leaseback, repositioning and site selection.
- **Recurring fresh-leads feed** — schedule the actor with **monitor mode** to get only newly-licensed or changed facilities each run.

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan is enough to try this actor.
2. Open the **US Senior Care & Assisted Living Facility Leads Scraper**, pick `states` and (optionally) `careCategories`, then click **Start**.
3. Watch leads stream into the dataset table.
4. **Export** as JSON, CSV, Excel, XML or RSS — or pull results via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "states": ["MO", "PA", "MD"],
    "careCategories": ["Residential Senior Care"],
    "memoryCareOnly": false,
    "minCapacity": 40,
    "hasPhone": true,
    "sortBy": "leadScore",
    "maxResults": 1000,
    "monitorMode": false
}
```

- **states** — two-letter codes (`MO`, `NY`, `PA`, `MD`, `CT`, `IL`). Empty = all.
- **careCategories** — `Residential Senior Care`, `Skilled Nursing`, `Home & Community Care`, `Hospice`.
- **careTypes** — exact types (`Assisted Living`, `Personal Care Home`, `Adult Care Home`, `Skilled Nursing Facility`, `Home Care Agency`, `Hospice Agency`, …).
- **memoryCareOnly** — only facilities flagged for memory / dementia / Alzheimer's care.
- **minCapacity / maxCapacity** — licensed-bed filters.
- **ownershipTypes** — `For Profit`, `Non-profit`, `Government` (where the source provides it).
- **hasPhone / hasNamedContact** — keep only the most contactable leads.
- **cities / counties / zipCodes / nameQuery** — location & operator filters.
- **issuedAfter / expiringWithinDays** — new-license and renewal-window signals (sources that publish dates: MO, CT, IL).
- **sortBy** — `leadScore`, `capacityHigh`, `recency`, `name`.
- **includeRawFields** *(default true)* — attach the full original registry row under `sourceFields`.
- **monitorMode / monitorKey** — only output NEW or CHANGED facilities since the last run with the same key.

### Output

One normalized lead record per licensed facility:

```json
{
    "recordId": "MO-053527",
    "facilityName": "VERO OF O'FALLON, THE",
    "careType": "Assisted Living",
    "careCategory": "Residential Senior Care",
    "nativeLicenseType": "ALF**",
    "isMemoryCare": true,
    "bedCapacity": 142,
    "licenseNumber": "053527",
    "licenseEffectiveDate": "2026-01-01",
    "licenseExpirationDate": "2026-10-31",
    "ownershipType": null,
    "medicareCertified": false,
    "medicaidCertified": false,
    "operatorName": "1000 LANDING CIRCLE OPCO LLC",
    "administratorName": "BRITTNY BUECKENDORF",
    "phone": "(636) 669-0780",
    "street": "1 LANDING CIRCLE",
    "city": "O'FALLON",
    "county": "SAINT CHARLES COUNTY",
    "state": "MO",
    "zip": "63366",
    "regionOffice": "Region 4",
    "sourceName": "Missouri DHSS Long-Term Care Directory",
    "sourceUrl": "https://data.mo.gov/Health/LTC-DIRECTORY/fenu-sipv",
    "leadSignals": ["privatePayResidential", "largeFacility", "memoryCareProvider", "hasDirectPhone", "hasNamedContact", "hasOperatorEntity", "recentlyLicensed"],
    "leadScore": 93,
    "scrapedAt": "2026-06-21T12:00:00.000Z",
    "sourceFields": { "...": "full original registry row" }
}
```

Fields are `null` only when the source registry genuinely doesn't publish them — never because the scraper skipped them.

### Monitor mode & scheduling

Turn this actor into a **fresh-leads pipeline**:

- Turn on **monitorMode** and give each saved search its own **monitorKey**.
- The actor remembers every facility it has emitted (in a named key-value store) and, on the next run, outputs **only new or changed** facilities — newly-licensed providers, capacity changes, ownership/contact changes, renewals.
- Pair it with [Apify Schedules](https://docs.apify.com/platform/schedules) to run daily/weekly. Monitor mode and the scheduler are complementary: the **schedule** decides *when* to run, **monitor mode** decides *what's new* — they never conflict.

### Automate & schedule

- **[Apify API](https://docs.apify.com/api/v2)** — start runs, fetch datasets, manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — run hourly/daily/weekly to track newly-licensed facilities in a state or market.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger CRM import, Slack alert or an email sequence the moment a run finishes.

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

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/senior-care-facility-leads-scraper').call({
    states: ['MO', 'PA', 'MD'],
    careCategories: ['Residential Senior Care'],
    minCapacity: 40,
    hasPhone: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} senior-care facility leads`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push new facility leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get pinged when a monitored search finds new facilities.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** — trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** — ask your assistant to "list large assisted-living facilities in Pennsylvania with a phone number" and let it run this scraper.

### Agent-ready: autonomous payments (x402 & Skyfire)

This actor is **agent-ready** — AI agents can discover it, run it, and **pay for it autonomously**, with no Apify account and no human in the loop. It uses [pay-per-event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)** — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) — no account, no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/skyfire)** — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

### More scrapers from scrapesage

Build a complete **senior-care & healthcare go-to-market stack**:

- **[Caring.com Senior Living Scraper](https://apify.com/scrapesage/caring-senior-living-scraper)** — the consumer-directory side: reviews, amenities, room pricing & websites. Pair it with this actor's official licensing data.
- **[Care.com Scraper](https://apify.com/scrapesage/care-com-scraper)** — individual caregivers and care businesses (childcare, senior care, home care).
- **[NPI / NPPES Provider Scraper](https://apify.com/scrapesage/npi-nppes-scraper)** — US healthcare providers and organizations by taxonomy, location and NPI.
- **[Healthgrades Scraper](https://apify.com/scrapesage/healthgrades-scraper)** — doctors, reviews and provider leads.
- **[SAMHSA Treatment Facility Scraper](https://apify.com/scrapesage/samhsa-treatment-facility-scraper)** — addiction & mental-health treatment facilities with phone & website.
- **[HUD Multifamily & Affordable Housing Scraper](https://apify.com/scrapesage/hud-multifamily-scraper)** — affordable-housing properties, management companies & contacts.
- **[US Property Records Scraper](https://apify.com/scrapesage/us-property-records-scraper)** — parcel records and owner leads from county assessors.
- **[US Business Formation Scraper](https://apify.com/scrapesage/us-business-formation-scraper)** — newly registered companies from Secretary of State filings.
- **[Nonprofit 990 Scraper](https://apify.com/scrapesage/nonprofit-990-scraper)** — nonprofit financials, officers & contacts (many senior-care operators are non-profits).

### Tips

- **Target your ICP**: combine `careCategories` + `minCapacity` + `ownershipTypes` — e.g. for-profit assisted-living facilities with 50+ beds are prime software/pharmacy buyers.
- **Memory-care niche**: set `memoryCareOnly: true` for specialty vendors (dementia programming, secure-unit tech, specialty pharmacy).
- **Fresh leads only**: turn on `monitorMode` + a `monitorKey` and schedule daily.
- **Cost control**: filter by `states` and `careCategories` to scan only the registries you need.

### FAQ

**Where does the data come from?** Official US state licensing registries published as government open data (Socrata). Each record links back to its source under `sourceUrl`.

**Is this the same as Caring.com / A Place for Mom?** No. Those are consumer directories. This actor is the **regulatory record** — license number, bed capacity, operator legal entity, administrator, ownership and certification. It's the perfect complement to the [Caring.com Senior Living Scraper](https://apify.com/scrapesage/caring-senior-living-scraper).

**Does it include emails?** Government licensing registries publish phone, address, operator and administrator — not email. The `email` field is reserved and left `null` unless a source provides it. Phone + named administrator + full address already make these directly actionable leads.

**Can I get only newly-licensed facilities?** Yes — use `monitorMode` (only new/changed since last run) and/or `issuedAfter` to filter by license effective date.

**Can I export to Google Sheets, CSV or Excel?** Yes — one click in the dataset view, or automatically every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**Is scraping this data legal?** It collects publicly available government open data only. You are responsible for using the data in compliance with applicable laws (e.g. CCPA/GDPR for any personal data) and registry terms.

**A field is null — why?** The source registry doesn't publish that field for that facility (e.g. PA personal care homes don't list an operator entity). Fields are `null` only when the data genuinely doesn't exist.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests — including new states — are welcome; this actor is actively maintained.

# Actor input Schema

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

Two-letter state codes to include. Available official-registry states: <code>MO</code>, <code>NY</code>, <code>PA</code>, <code>MD</code>, <code>CT</code>, <code>IL</code>. Leave empty for all.

## `careCategories` (type: `array`):

Filter by broad category: <code>Residential Senior Care</code> (assisted living, personal/residential/adult care, memory care), <code>Skilled Nursing</code> (SNF/ICF/nursing homes), <code>Home & Community Care</code> (home care/health/nursing, AL service agencies), <code>Hospice</code>. Leave empty for all.

## `careTypes` (type: `array`):

Optional exact care-type filter, e.g. <code>Assisted Living</code>, <code>Personal Care Home</code>, <code>Adult Care Home</code>, <code>Memory Care</code>, <code>Skilled Nursing Facility</code>, <code>Home Care Agency</code>, <code>Hospice Agency</code>.

## `memoryCareOnly` (type: `boolean`):

Only include facilities flagged as memory / Alzheimer's / dementia care.

## `minCapacity` (type: `integer`):

Only include facilities with at least this many licensed beds (facilities without a capacity value are excluded).

## `maxCapacity` (type: `integer`):

Only include facilities with at most this many licensed beds.

## `ownershipTypes` (type: `array`):

Filter by ownership where the source provides it: <code>For Profit</code>, <code>Non-profit</code>, <code>Government</code>.

## `hasPhone` (type: `boolean`):

Only include facilities that have a phone number.

## `hasNamedContact` (type: `boolean`):

Only include facilities with an administrator or contact person name.

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

Only include facilities whose city contains one of these (case-insensitive).

## `counties` (type: `array`):

Only include facilities whose county contains one of these (case-insensitive).

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

Only include facilities whose ZIP starts with one of these prefixes (e.g. <code>631</code>, <code>10001</code>).

## `nameQuery` (type: `string`):

Only include facilities whose name, operator or DBA contains this text (case-insensitive). Great for tracking a specific operator/chain.

## `issuedAfter` (type: `string`):

Only include facilities whose license effective date is on or after this date (YYYY-MM-DD). Surfaces newly-licensed facilities (where the source provides dates: MO, CT).

## `expiringWithinDays` (type: `integer`):

Only include facilities whose license expires within this many days — a renewal / decision-window signal (where the source provides expiration dates).

## `sortBy` (type: `string`):

Order of the output records.

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

Maximum number of facility lead records to output.

## `includeRawFields` (type: `boolean`):

Attach the full original registry row to each record under <code>sourceFields</code> (richest possible dataset).

## `monitorMode` (type: `boolean`):

Only output facilities that are NEW or CHANGED since the last run with the same Monitor key. Pairs perfectly with Apify Schedules to build a fresh-leads feed.

## `monitorKey` (type: `string`):

Names the saved monitor state. Use one key per saved search so different schedules don't overwrite each other.

## `deduplicateResults` (type: `boolean`):

Drop duplicate facilities within a run (recommended).

## `socrataAppToken` (type: `string`):

Optional Socrata app token to raise rate limits. Not required — the registries are keyless.

## `proxyConfiguration` (type: `object`):

Proxy settings. Not needed — these government open-data registries are reachable directly. Leave proxy off for the cheapest, fastest runs.

## Actor input object example

```json
{
  "states": [
    "MO"
  ],
  "memoryCareOnly": false,
  "hasPhone": false,
  "hasNamedContact": false,
  "sortBy": "leadScore",
  "maxResults": 1000,
  "includeRawFields": true,
  "monitorMode": false,
  "monitorKey": "default",
  "deduplicateResults": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

All scraped facility lead records as JSON items in the default dataset.

# 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 = {
    "states": [
        "MO"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/senior-care-facility-leads-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 = { "states": ["MO"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/senior-care-facility-leads-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 '{
  "states": [
    "MO"
  ]
}' |
apify call scrapesage/senior-care-facility-leads-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapesage/senior-care-facility-leads-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/xNR1zYtbDvha2jWj3/builds/OectO3J3DjidbuCB9/openapi.json
