# UK CQC Care Providers — care homes, GPs, dentists & homecare (`powerfully_goliath/uk-cqc-providers`) Actor

Search the official CQC care directory: care homes, homecare agencies, GP surgeries, dentists, hospitals and clinics in England. Filter by postcode, council, region, service type and last-check date. Optional CQC API key adds ratings. Pay per result.

- **URL**: https://apify.com/powerfully_goliath/uk-cqc-providers.md
- **Developed by:** [Richie Ellis](https://apify.com/powerfully_goliath) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 cqc location returneds

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

## UK CQC Care Providers — care homes, GPs, dentists & homecare

Get the **official register of care providers in England** from the Care Quality Commission:
**care homes, nursing homes, homecare agencies, GP surgeries, dentists, hospitals, clinics and
supported living**, about **57,000 locations**. Search by **name, provider, postcode, council,
region, service type, specialism or last-check date** and get tidy, spreadsheet-ready rows with
address, phone, website and the CQC page.

The data is the CQC's own **public care directory**, published under the Open Government
Licence. The actor finds the latest dated file on cqc.org.uk every run, so it is always current.
**No key is needed for the directory data.** Optionally, add your own free **CQC API key** to
enrich each row with the **overall rating**, key-question ratings, last inspection date and
registered beds.

**Pay only for the results you get.** Suggested price: **$2.00 per 1,000 locations**, or
**$4.00 per 1,000** for rows enriched with CQC API ratings (the owner sets the final price).

***

### What you can do with it

- **B2B lead lists**: every homecare agency in Yorkshire, every dental practice in a postcode
  area, every residential home that cares for people with dementia, with phone and website.
- **Suppliers to care**: pharmacies, staffing agencies, software, food and equipment firms
  targeting care homes in their delivery area.
- **Market sizing and mapping**: count providers by council, region and service type.
- **Due diligence and recruitment**: find all locations run by one provider group.
- **Monitoring**: schedule weekly and compare directory snapshots.

### Input

| Field | What it does |
|---|---|
| **Location or brand name contains** | Matches the location name or its "also known as" name. |
| **Provider name contains** | The registered company, e.g. `Bupa` or `HC-One`. |
| **Postcode areas / districts** | `LS` (area), `LS6` (district), `LS6 3` (sector) or a full postcode. `LS1` never returns `LS10`. |
| **Local authorities** | Council names as CQC lists them (`Leeds`, `Kent`). |
| **Regions** | The nine English regions plus Wales. |
| **Service types contain** | `Residential homes`, `Nursing homes`, `Homecare agencies`, `Dentist`, `Doctors/GPs`, `Hospital`, `Supported living`... Matches if the location offers any. |
| **Specialisms contain** | `Dementia`, `Learning disabilities`, `Mental health conditions`... |
| **Last checked on or after** | A date or `2 years`. Never-checked locations are dropped. |
| **Only with phone / website** | Lead-list helpers. |
| **CQC API subscription key** *(optional)* | Free key from the CQC API portal; adds ratings (see below). |
| **Maximum results** | A hard cap. You are never charged for more than this. |

#### Example input

Homecare agencies in Leeds that have a phone number:

```json
{
  "localAuthorities": ["Leeds"],
  "serviceTypes": ["Homecare agencies"],
  "requirePhone": true,
  "maxItems": 500
}
```

### Output

```json
{
  "locationId": "1-10553191017",
  "providerId": "1-101671690",
  "name": "Helping Hands Mansfield",
  "providerName": "Midshires Care Limited",
  "serviceTypes": ["Homecare agencies"],
  "specialisms": ["Dementia", "Physical disabilities"],
  "fullAddress": "Room 107, Level 1, East Wing, Mansfield Business Centre, Ashfield Avenue, Mansfield, NG18 2AE",
  "localAuthority": "Nottinghamshire",
  "region": "East Midlands",
  "phone": "07436315363",
  "latestCheckDate": "2022-05-19",
  "cqcUrl": "https://www.cqc.org.uk/location/1-10553191017",
  "directoryDate": "04 November 2026",
  "enriched": false
}
```

Phone numbers have their leading zero restored (the CQC file drops it).

#### Ratings with your own CQC API key (optional)

The CQC's public API (`api.service.cqc.org.uk`) requires a free subscription key. Register on the
CQC API portal, paste the key into **CQC API subscription key**, and each row gains
`overallRating` (Outstanding / Good / Requires improvement / Inadequate), `ratingDate`,
`keyQuestionRatings`, `lastInspectionDate`, `numberOfBeds`, `registrationDate` and
`registrationStatus`. These rows are charged as **enriched rows**. The key is sent only to the
CQC, never written to the dataset or the run summary. A location the API does not know is
returned as a normal row.

*Note: the rating enrichment follows the CQC's published API reference and has not yet been
verified against a live key by the author; the directory path is fully verified.*

### Pricing (pay per event)

| Event | Suggested price |
|---|---|
| CQC location returned | **$0.002** ($2.00 per 1,000) |
| CQC location with API rating | **$0.004** ($4.00 per 1,000) |
| Actor start | Apify's minimum ($0.00005 per run) |

You pay only for rows delivered. The **Maximum results** cap and your spending limit are respected
exactly.

### Good to know

- The directory covers **active locations in England** (and a handful in Wales) and is refreshed
  by the CQC about monthly. `directoryDate` tells you which file you got.
- "Date of latest check" is the CQC's own field; many locations have none.
- Contains public sector information licensed under the
  [Open Government Licence v3.0](https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/)
  (Care Quality Commission). This actor is independent and not endorsed by the CQC.

### Related UK open-data actors

- **UK Business Postcode Profile**: every food business and charity in a postcode district.
- **UK Charity Register**: every registered charity in England & Wales.
- **UK Public Tenders (merged)**: Find a Tender and Contracts Finder in one feed.

# Actor input Schema

## `name` (type: `string`):

Part of the location name or its 'also known as' name, e.g. 'Dental' or 'Manor'.

## `providerName` (type: `string`):

Part of the registered provider name, e.g. 'Bupa' or 'HC-One'.

## `postcodePrefixes` (type: `array`):

A postcode area (LS), district (LS1, SW1A), sector (LS1 4) or full postcode.

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

Council names as CQC lists them, e.g. 'Leeds', 'Kent', 'Westminster'.

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

Only locations in these regions. Leave empty for all.

## `serviceTypes` (type: `array`):

CQC service types, e.g. 'Residential homes', 'Nursing homes', 'Homecare agencies', 'Dentist', 'Doctors/GPs', 'Hospital', 'Supported living'. A location matches if it offers ANY of them.

## `specialisms` (type: `array`):

e.g. 'Dementia', 'Learning disabilities', 'Mental health conditions'.

## `checkedSince` (type: `string`):

A date like 2025-01-01 or a relative value like '2 years'. Locations never checked are dropped.

## `requirePhone` (type: `boolean`):

Only return providers that list a phone number.

## `requireWebsite` (type: `boolean`):

Only return providers that list a website.

## `cqcApiKey` (type: `string`):

Free key from api-portal.service.cqc.org.uk. When given, each row is enriched with the overall rating, key-question ratings, last inspection, beds and registration date, and charged as an enriched row.

## `csvUrl` (type: `string`):

Leave empty: the latest 'CQC care directory - csv' link is read from cqc.org.uk each run.

## `maxItems` (type: `integer`):

Stop after this many locations. You are charged only for results delivered.

## Actor input object example

```json
{
  "postcodePrefixes": [
    "LS6",
    "LS1"
  ],
  "serviceTypes": [
    "Homecare agencies"
  ],
  "requirePhone": false,
  "requireWebsite": false,
  "maxItems": 20
}
```

# Actor output Schema

## `overview` (type: `string`):

Name, provider, service types, address and phone.

## `ratings` (type: `string`):

Rating columns filled when a CQC API key is supplied.

## `runSummary` (type: `string`):

The OUTPUT record: query used, results delivered, events charged and why the run stopped.

# 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 = {
    "postcodePrefixes": [
        "LS6"
    ],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("powerfully_goliath/uk-cqc-providers").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 = {
    "postcodePrefixes": ["LS6"],
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("powerfully_goliath/uk-cqc-providers").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 '{
  "postcodePrefixes": [
    "LS6"
  ],
  "maxItems": 20
}' |
apify call powerfully_goliath/uk-cqc-providers --silent --output-dataset

```

## MCP server setup

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

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/FPgPty2HnkJCbIm1U/builds/xEPbtZEo0yQrc3vto/openapi.json
