# CQC Register Changes (UK care providers) (`supply_radar_uk/cqc-register-changes`) Actor

New registrations, deregistrations, new inspection reports and rating downgrades/upgrades for every CQC-regulated care service in England, from the official CQC API.

- **URL**: https://apify.com/supply_radar_uk/cqc-register-changes.md
- **Developed by:** [Supply Radar](https://apify.com/supply_radar_uk) (community)
- **Categories:** Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$10.00 / 1,000 change events

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

## CQC Register Changes: new registrations, closures and rating changes for UK care services

Get a clean, structured feed of **what changed on the Care Quality Commission (CQC) register** in any date window: new care services registering, services deregistering (closing or changing provider), newly published inspection reports, and **rating downgrades and upgrades**. It covers every CQC-regulated location in England, including care homes, homecare agencies, GP practices, dentists, hospitals and clinics.

Data comes directly from the official CQC Syndication API. No scraping, no login, no API key needed on your side.

### Who uses this

- **Care compliance consultants and trainers**: find services that were just downgraded to *Requires improvement* or *Inadequate*.
- **Care recruitment agencies and staffing suppliers**: find newly registered homecare agencies and care homes.
- **Care software, insurance, finance and property businesses**: trigger CRM workflows when a provider opens, closes or changes rating.
- **Analysts, journalists and researchers**: track openings, closures and rating movements by region or local authority.
- **AI agents**: ask "which care homes in Manchester were rated Inadequate this month?" and get structured JSON.

### Event types

| eventType | Meaning |
|---|---|
| `new_registration` | Location's CQC registration date falls in your window |
| `deregistration` | Location deregistered in your window |
| `rating_downgrade` | New report in your window with a lower overall rating than the previous one |
| `rating_upgrade` | New report in your window with a higher overall rating |
| `new_report` | New report in your window with the same or no previous overall rating |

### Input

- `lookbackDays` (default 7) or `dateFrom` / `dateTo` (YYYY-MM-DD)
- `eventTypes`, `serviceTypeContains` (e.g. `Homecare`, `Care home`), `regions`, `localAuthorities`, `careHomesOnly`
- `maxResults`: hard cap on events (and on cost)

Example: all homecare downgrades in London in the last 30 days

```json
{ "lookbackDays": 30, "eventTypes": ["rating_downgrade"], "serviceTypeContains": ["Homecare"], "regions": ["London"] }
```

### Output (one row per event)

Every event: `eventType`, `eventDate`, `locationId`, `locationName`, `providerId`, `providerName`, `overallRating`, `registrationStatus`, `registrationDate`, `deregistrationDate`, `serviceTypes`, `regulatedActivities`, `careHome`, `numberOfBeds`, `address`, `postcode`, `localAuthority`, `region`, `phone`, `website`, `cqcUrl`, `source`, `detectedAt`.

Report events only (`rating_downgrade`, `rating_upgrade`, `new_report`) also include: `newRating`, `previousOverallRating`, `previousRatingDate`, `serviceGroup`.

### Pricing

Pay per change event: you pay only for change events returned that match your filters. There is no start fee and no platform usage charge. Use `maxResults` or your run's maximum charge to cap spend. Filtering (region, service type, event type) happens before charging.

### Scheduling

Run weekly with `lookbackDays: 7` (or daily with `lookbackDays: 1`) using Apify Schedules, and send results to Google Sheets, Slack, a webhook, Make or Zapier via Apify integrations.

### Notes and limits

- CQC updates its data daily. The event date is taken from CQC's own registration, deregistration and report dates.
- A rating change is detected by comparing the current overall rating with the previous rated report on the same location.
- **Changes of provider:** when a service changes owner, CQC usually creates a new location ID. This shows up as a `deregistration` of the old location and a `new_registration` of the new one at the same address (in September 2026 roughly a quarter of social-care "new registrations" were ownership changes). Compare `postcode` and `locationName` if you need genuinely new services only.
- Contains public sector information licensed under the [Open Government Licence v3.0](https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/). Source: Care Quality Commission. This Actor is independent and not affiliated with or endorsed by CQC.
- Contact details are only those CQC publishes for the location (main phone and website). No personal data about individuals is collected.

# Actor input Schema

## `lookbackDays` (type: `integer`):

Detect changes in the last N days. Ignored if 'From date' is set.

## `dateFrom` (type: `string`):

Optional start of the change window (UTC).

## `dateTo` (type: `string`):

Optional end of the change window (UTC). Defaults to now.

## `eventTypes` (type: `array`):

Which events to return. Allowed: new_registration, deregistration, rating_downgrade, rating_upgrade, new_report

## `serviceTypeContains` (type: `array`):

Optional. Keep only locations whose CQC service types contain any of these words, e.g. 'Homecare', 'Care home', 'Dentist'.

## `regions` (type: `array`):

Optional CQC regions, e.g. 'London', 'North West'.

## `localAuthorities` (type: `array`):

Optional local authority names, e.g. 'Brent', 'Manchester'.

## `careHomesOnly` (type: `boolean`):

Keep only locations flagged as care homes.

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

Stop after this many events (you are charged per event).

## Actor input object example

```json
{
  "lookbackDays": 7,
  "eventTypes": [
    "new_registration",
    "deregistration",
    "rating_downgrade",
    "rating_upgrade",
    "new_report"
  ],
  "careHomesOnly": false,
  "maxResults": 1000
}
```

# Actor output Schema

## `changeEvents` (type: `string`):

All CQC change events found in the selected time window (one item per event).

## `summary` (type: `string`):

Time window, number of changed locations scanned and number of events returned.

# 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 = {
    "lookbackDays": 7,
    "eventTypes": [
        "new_registration",
        "deregistration",
        "rating_downgrade",
        "rating_upgrade",
        "new_report"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("supply_radar_uk/cqc-register-changes").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 = {
    "lookbackDays": 7,
    "eventTypes": [
        "new_registration",
        "deregistration",
        "rating_downgrade",
        "rating_upgrade",
        "new_report",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("supply_radar_uk/cqc-register-changes").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 '{
  "lookbackDays": 7,
  "eventTypes": [
    "new_registration",
    "deregistration",
    "rating_downgrade",
    "rating_upgrade",
    "new_report"
  ]
}' |
apify call supply_radar_uk/cqc-register-changes --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,supply_radar_uk/cqc-register-changes"
        }
    }
}
```

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/gZGqv8xbfUebM5pn3/builds/ZhbhNHWgbXwptVcOJ/openapi.json
