# California Assisted Living (RCFE) Facilities (`kingly_contest_7cb/california-assisted-living-inspections`) Actor

Every licensed California Residential Care Facility for the Elderly (RCFE) from CDSS Community Care Licensing open data: capacity, address, county, coordinates, phone, license date and regional office, with a link to each state record.

- **URL**: https://apify.com/kingly_contest_7cb/california-assisted-living-inspections.md
- **Developed by:** [Carina Hatton](https://apify.com/kingly_contest_7cb) (community)
- **Categories:** Lead generation, Business, Real estate
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 facilities

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## California Assisted Living (RCFE) Facilities

California calls its assisted living homes Residential Care Facilities for the Elderly, or RCFEs, and it licenses about 8,600 of them. Most are small six-bed board-and-care homes in ordinary houses, and the rest range from 15-bed homes to big continuing care retirement communities. The state publishes the list, but it's split across open data files with padded columns, odd type codes and every kind of facility mixed together.

This Actor pulls out just the RCFEs, cleans them up, and (by default) adds inspection and citation detail from the CCLD Transparency API: visit dates, Type A/B citation counts, complaint summaries, and deficiencies parsed from evaluation reports.

### What you get

| Field | Example |
|---|---|
| `facility_number` | `207209367` (the CDSS license number) |
| `facility_name` | `OUR HOUSE - WESTGATE` |
| `facility_type` | `Residential Care for the Elderly` or `RCFE - Continuing Care Retirement Community` |
| `licensed_capacity`, `small_home_6_or_fewer` | `6`, `true` |
| `street`, `city`, `state`, `zip`, `county` | `2816 WESTAGTE DRIVE`, `MADERA`, `CA`, `93637`, `Madera` |
| `latitude`, `longitude` | `36.9558`, `-120.0955` |
| `facility_phone` | `(559) 661-8961` |
| `ccld_regional_office` | `FRESNO RO` |
| `license_first_date` | `2024-11-01` |
| `licensee` | `OUR HOUSE RESIDENTIAL CARE, INC.` (business licensees only) |
| `license_status` | `Licensed` (from Transparency API when available) |
| `chhs_license_status`, `chhs_file_date` | `LICENSED`, `2025-05-25` |
| `last_visit_date`, `total_visits`, `inspection_visits`, `complaint_visits`, `other_visits` | visit summary from FacilityDetail |
| `type_a_citation_count`, `type_b_citation_count` | official UI totals (`TOTTYPE* + NBRINSPTYP* + NBROTHERTYP*`) |
| `inspection_dates`, `complaint_summary`, `reports` | dates and report metadata (`report_api_url`, no fakeout.gov links) |
| `citations` | parsed Type A/B deficiencies (section, title, requirement, deficient practice, POC due date, plan of correction) |
| `citations_included` | `true` when Transparency fetch succeeded |
| `source_url` | `https://www.ccld.dss.ca.gov/carefacilitysearch/FacDetail/207209367` |

Dates are ISO (`YYYY-MM-DD`). Addresses are shown exactly as the state spells them, typos included. Long statutory and narrative text is truncated; nothing is invented.

### Who it's for

- **Placement agencies and referral services** building a county-by-county list of homes
- **Vendors** (pharmacy, home health, hospice, staffing, software) who sell to RCFEs and want capacity, location and citation history for targeting
- **Operators and investors** sizing up a market
- **Directory sites and researchers** who need a clean statewide roster with coordinates and inspection facts

### Input

```json
{
  "counties": ["Los Angeles", "Orange"],
  "cities": [],
  "zipCodes": [],
  "minCapacity": 7,
  "ccrcOnly": false,
  "includeCitations": true,
  "maxFacilities": 0,
  "requestDelaySecs": 1
}
```

- **counties**: county names with or without the word "County". Leave it empty for the whole state.
- **cities** / **zipCodes**: narrow it down further.
- **minCapacity**: `7` skips the six-bed homes, which leaves the larger communities.
- **ccrcOnly**: only RCFEs that are part of a continuing care retirement community.
- **includeCitations**: default `true`. Set `false` for a fast roster-only run (no Transparency API calls).
- **maxFacilities**: cap the run, handy for a quick test.
- **requestDelaySecs**: polite pause between Transparency API calls (0.75–3.0 seconds).

### How much does it cost?

You pay per facility returned, and (when platform pricing is applied) per citation parsed. A roster-only run finishes in under a minute. With citations on, expect roughly one to a few dozen Transparency API requests per facility, so small counties are the right place to start.

### Where the data comes from

- **CDSS Community Care Licensing facility roster** on the CHHS GIS open data hub. This is the current list (updated weekly or so) and supplies the name, type, capacity, address, county, phone, coordinates and regional office.
- **CHHS Open Data Portal, "Community Care Licensing Facilities: RCFE" file.** This adds the first license date, the licensee and the license status. The state refreshes it less often, so `chhs_file_date` tells you how current those three fields are. Facilities licensed after that date don't have them yet.
- **CCLD Transparency API** (`FacilityDetail` and `FacilityReports`). Visit counts, Type A/B totals, complaint summaries, report metadata, and the HTML evaluation reports that contain Section Cited deficiencies.

Every record also links to the facility's page on the CDSS Care Facility Search.

### Limitations

- **Citations and inspection reports are included when the Transparency API is up** (default `includeCitations: true`). If a facility's Transparency fetch fails, roster fields are kept and `citations_included` is set to `false`.
- Boilerplate report pages that only define what Type A/B means (with no `Section Cited` lines) are skipped.
- Licensee names are included only when the licensee is a business. Individual licensees and facility administrators are left out on purpose.
- A handful of facilities have no county or coordinates in the state roster, and those fields are `null`.
- This is public licensing data and is not endorsed by CDSS or CHHS. Check the state record before making care decisions.

### FAQ

**Is this the same as "assisted living"?** In California, yes. RCFE is the state's license for assisted living, including memory care homes. Adult residential facilities for younger adults and skilled nursing homes are not included.

**How fresh is it?** The roster is pulled live from the state's open data each run. Citation detail is pulled live from the Transparency API for each matched facility.

**Do I need a login or API key?** No. It uses only public open data files and the public Transparency API.

# Actor input Schema

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

California county names, e.g. Los Angeles, San Diego, Orange. Leave empty for the whole state (about 8,600 RCFEs).

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

Optional. Only facilities in these cities.

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

Optional. Only facilities in these 5-digit ZIP codes.

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

Optional. For example, 7 skips the small 6-bed board-and-care homes, which make up about 80% of California RCFEs.

## `ccrcOnly` (type: `boolean`):

Only RCFEs licensed as part of a CCRC.

## `includeCitations` (type: `boolean`):

When true (default), fetch CCLD Transparency API FacilityDetail and FacilityReports for each facility and parse Type A/B deficiencies from evaluation reports. When false, return the roster only (faster, no per-facility API calls).

## `maxFacilities` (type: `integer`):

Stop after this many facilities. 0 means no limit.

## `requestDelaySecs` (type: `number`):

Polite pause between CCLD Transparency API requests. Clamped to 0.75–3.0 seconds. Ignored when includeCitations is false.

## Actor input object example

```json
{
  "counties": [
    "Santa Barbara"
  ],
  "cities": [],
  "zipCodes": [],
  "minCapacity": 0,
  "ccrcOnly": false,
  "includeCitations": true,
  "maxFacilities": 0,
  "requestDelaySecs": 1
}
```

# Actor output Schema

## `facilities` (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 = {
    "counties": [
        "Santa Barbara"
    ],
    "cities": [],
    "zipCodes": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("kingly_contest_7cb/california-assisted-living-inspections").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 = {
    "counties": ["Santa Barbara"],
    "cities": [],
    "zipCodes": [],
}

# Run the Actor and wait for it to finish
run = client.actor("kingly_contest_7cb/california-assisted-living-inspections").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 '{
  "counties": [
    "Santa Barbara"
  ],
  "cities": [],
  "zipCodes": []
}' |
apify call kingly_contest_7cb/california-assisted-living-inspections --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,kingly_contest_7cb/california-assisted-living-inspections"
        }
    }
}
```

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/aGXG9b7wrSdBVdNru/builds/evnD7bE5hh1AZ1wiv/openapi.json
