# Texas Assisted Living & Memory Care Inspections (`kingly_contest_7cb/texas-assisted-living-inspections`) Actor

Every licensed Texas assisted living and memory care facility from the public HHSC directory, joined with inspection dates, citation counts and enforcement penalties from the public TULIP provider search. Facts only, with a link to each official record.

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

## Pricing

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

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

## Texas Assisted Living & Memory Care Inspections

Get every licensed **assisted living facility in Texas** in one clean dataset: license and capacity, **Alzheimer's (memory care) certification**, and its **state inspection and enforcement history**, with a link to the official record for each one. One run replaces hours of clicking through the state's provider search one facility at a time.

The data comes only from public Texas Health and Human Services Commission (HHSC) sources. The Actor outputs **facts only**: dates, visit types, counts, correction dates, penalty amounts and bare rule numbers. It never copies the state's narrative text.

### What you get

| Field group | Examples |
|---|---|
| License | license number, Type A/B, license status, effective / expiration / initial license dates |
| Location | street, city, ZIP, county, latitude/longitude, HHSC region, facility phone |
| Capacity | total licensed capacity, Medicaid beds |
| Memory care | `memory_care_certified`, Alzheimer capacity, certificate number and dates |
| Ownership | owner/operator name (businesses only), management company |
| Inspections | one row per citation: visit exit date, Health vs Life Safety Code, correction date; plus counts and the latest inspection date |
| Enforcement | action type, event ID, date imposed, amount imposed, rule numbers cited (e.g. `553.261(g)(4)`) |
| Provenance | `tulip_url` (the facility's official state record), source attribution, collection time |

### Who it's for

Senior placement and referral agencies, home care franchises, elder-law and senior-living marketers, hospital discharge planners, researchers and journalists. In short, anyone who needs to know which Texas facilities offer memory care and how they've done on state inspections.

### Input

Example for a two-county run (Hays + Travis, about 94 facilities):

```json
{
  "counties": ["HAYS", "TRAVIS"],
  "memoryCareOnly": false,
  "includeTulip": true,
  "maxFacilities": 0,
  "tulipDelaySecs": 3
}
```

- `counties`: Texas county names. Use `["ALL"]` for the whole state (about 2,000 facilities).
- `memoryCareOnly`: only facilities with an HHSC Alzheimer's certification.
- `includeTulip`: set to `false` for a fast roster-only run (license, capacity and memory care fields, no inspections).
- `maxFacilities`: stop after this many facilities (0 = no limit). Handy for a quick test.
- `tulipDelaySecs`: a polite pause between state-site lookups. The minimum is 2.

### Output

One dataset item per licensed facility. Export it as JSON, CSV or Excel. The **Facilities** view shows the key columns; the nested arrays `inspection_citations` and `enforcement_actions` hold the detail.

```json
{
  "license_number": "312793",
  "facility_name": "WC LEDGESTONE OWNER IX, LP",
  "city": "AUSTIN",
  "county": "HAYS",
  "total_licensed_capacity": 92,
  "memory_care_certified": true,
  "alzheimer_capacity": 19,
  "tulip_license_status": "LICENSED",
  "citation_count": 5,
  "health_citation_count": 1,
  "life_safety_citation_count": 4,
  "most_recent_inspection_exit_date": "2025-09-24",
  "inspection_citations": [
    { "visit_exit_date": "2020-07-15", "visit_type": "Life Safety Code", "corrected_date": "2020-08-03" }
  ],
  "enforcement_actions": [
    { "action": "Administrative Penalty", "event_id": "EVT-0000494373", "imposed_date": "2025-07-10",
      "imposed_amount": 2250.0, "regulations_cited": ["553.261(g)(4)"] }
  ],
  "enforcement_imposed_total": 2250.0,
  "tulip_url": "https://tulip.hhs.texas.gov/TULIP/s/ltc-provider-detail?c__accountidparam=001cv00000RshBAAAZ",
  "source_attribution": "Source: Texas Health and Human Services Commission (hhs.texas.gov, tulip.hhs.texas.gov). Not endorsed by the State of Texas or any state agency."
}
```

(Shortened. Real items carry about 45 fields.)

### Pricing

This Actor uses **pay-per-event** pricing. You pay only for results, and platform compute is included:

| Event | Price |
|---|---|
| `facility`: one facility record in the dataset | **$0.01** |
| `citation`: one inspection citation on a facility record | **$0.0025** |

Examples, based on recent data:

- Hays + Travis counties: about 94 facilities and 408 citations, so about **$1.96**.
- The whole state: about 2,000 facilities. The citation count varies, so set a max charge for the run if you want a hard ceiling.

If you set a **maximum total charge** on a run, the Actor stops cleanly when it reaches it. A roster-only run (`includeTulip: false`) is charged only for facilities.

### Data sources and compliance

- Texas HHSC Assisted Living Facility directory (a public spreadsheet, refreshed often).
- Texas HHSC TULIP Long-term Care Provider Search (public, no login). The Actor opens each facility's public page in a browser at a low rate and reads what the page shows.
- Public data only: no logins, no CAPTCHAs bypassed, and robots.txt respected.
- Personal data is kept to a minimum. Administrator names, provider emails, owner phone numbers and mailing addresses, and the owner names of sole proprietors and trusts are **not** collected. These sources contain no resident information.
- **Facts only.** HHSC's site policy allows copying for noncommercial use only, so this Actor outputs only facts: dates, visit types, counts, correction dates, penalty amounts and dates, bare rule numbers, and the TULIP link. It never stores or outputs the state's citation or penalty narrative text. To read the narrative, follow `tulip_url` to the official record.
- Every record carries this attribution: *Source: Texas Health and Human Services Commission (hhs.texas.gov, tulip.hhs.texas.gov). Not endorsed by the State of Texas or any state agency.*

This dataset is not an official state record and isn't a rating or recommendation of any facility. Check the official record in TULIP before relying on it.

### Limits

- TULIP lists citation detail only for visits that produced citations. `most_recent_inspection_exit_date` still shows the latest inspection, even when it was clean.
- A building that holds both a Type A and a Type B license appears twice (one item per license).
- Some enforcement actions cite a rule that isn't a bare rule number. For those, `regulations_cited` is empty rather than copying text.
- Lookups are rate-limited on purpose. Expect about 6 seconds per facility, so a full-state run takes about 3–4 hours.

### Updates and support

The HHSC directory is re-read on every run, so the license roster is always current as of the run. Questions or a missing field? Open an issue on the Actor's Issues tab.

# Actor input Schema

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

Texas county names (e.g. HAYS, TRAVIS, HARRIS). Use \["ALL"] or leave it empty for the whole state.

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

Only return facilities that hold an HHSC Alzheimer's certification.

## `includeTulip` (type: `boolean`):

Look up each facility on the public TULIP provider search for inspection citations and enforcement actions. Turn this off for a fast roster-only run.

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

Stop after this many facilities. 0 means no limit.

## `tulipDelaySecs` (type: `integer`):

A polite pause between lookups on the state site. The minimum is 2.

## `rosterUrl` (type: `string`):

Override for the HHSC assisted living directory spreadsheet.

## `priorityCounties` (type: `array`):

Optional. Counties to collect first, e.g. a metro you need sooner.

## `checkpointFile` (type: `string`):

Optional path to a JSONL file. Finished facilities are appended to it, and a rerun skips them, so a crash loses at most one facility.

## Actor input object example

```json
{
  "counties": [
    "HAYS",
    "TRAVIS"
  ],
  "memoryCareOnly": false,
  "includeTulip": true,
  "maxFacilities": 0,
  "tulipDelaySecs": 3,
  "rosterUrl": "https://apps.hhs.texas.gov/providers/directories/AL.xlsx",
  "priorityCounties": []
}
```

# 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": [
        "HAYS",
        "TRAVIS"
    ],
    "priorityCounties": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("kingly_contest_7cb/texas-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": [
        "HAYS",
        "TRAVIS",
    ],
    "priorityCounties": [],
}

# Run the Actor and wait for it to finish
run = client.actor("kingly_contest_7cb/texas-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": [
    "HAYS",
    "TRAVIS"
  ],
  "priorityCounties": []
}' |
apify call kingly_contest_7cb/texas-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/texas-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/VVeNoPzfx23Lqtr0O/builds/YfRB9AOpbCsXgOV8t/openapi.json
