Care market intelligence · Enterprise APIs
Three ways into
England’s care market.
Turn care-home, operator and company records into useful prospecting workflows. The same fields as our audience samples, across the full eligible population.
01 / One legal company
Restructuring prospects
Prioritise companies for a closer review of recorded filing and insolvency indicators.
02 / One care-home location
Healthcare M&A prospects
Find registered care homes with recorded capacity, published ratings and a contact channel.
03 / One legal company
PE buy-and-build prospects
Map legal-company portfolios by footprint, capacity and geographic reach.
One legal company · 35 fields
Restructuring prospects
Prioritise companies for a closer review of recorded filing and insolvency indicators.
Registered care-home operators with recorded insolvency statuses or accounts and confirmation-statement filing indicators. Closed and dissolved companies are excluded. Filing indicators alone do not establish financial distress.
Make a request
curl --get 'https://caredb.co.uk/v1/prospects/restructuring?min_homes=2&limit=50' \
--header "x-api-key: $CAREDB_API_KEY"Example JSON response Illustrative, fictional data
{
"data": [
{
"company_number": "01234567",
"company_name": "Example Care Holdings Limited",
"company_status": "active",
"company_status_detail": null,
"company_type": "ltd",
"company_match_status": "matched",
"filing_status_indicators": [
"Accounts overdue reported by Companies House",
"Accounts due date passed: 2026-09-30"
],
"insolvency_status_recorded": false,
"accounts_next_due_on": "2026-09-30",
"accounts_overdue_reported": true,
"accounts_due_date_past": true,
"days_since_accounts_due_date": 5,
"confirmation_statement_next_due": "2027-04-01",
"confirmation_statement_overdue_reported": false,
"confirmation_statement_due_date_past": false,
"days_since_confirmation_statement_due_date": null,
"company_care_home_provider_ids": [
"example-provider-001"
],
"company_care_home_provider_names": [
"Example Care Limited"
],
"company_care_home_provider_count": 1,
"company_registered_care_home_count": 6,
"company_known_bed_capacity": 240,
"company_homes_with_known_beds": 6,
"company_homes_with_missing_beds": 0,
"company_care_home_regions": [
"London",
"South East"
],
"company_homes_recorded_inadequate": 0,
"company_homes_recorded_requires_improvement": 1,
"company_homes_without_published_overall_rating": 1,
"total_charges": 4,
"active_charges": 2,
"charge_record_coverage": "complete_charge_list_verified",
"company_record_updated_at": "2026-10-04T10:15:00.000Z",
"company_record_valid_from": "2026-10-04T10:15:00.000Z",
"latest_charge_record_valid_from": "2026-10-04T11:00:00.000Z",
"company_latest_care_home_record_updated_at": "2026-10-04T12:00:00.000Z",
"export_snapshot_at": "2026-10-05T09:00:00.000Z"
}
],
"pagination": {
"limit": 50,
"offset": 0,
"total": 1,
"has_more": false,
"next_offset": null
},
"meta": {
"cohort": "restructuring",
"record_grain": "One legal company",
"scope": "England registered care homes",
"snapshot_at": "2026-10-05T09:00:00.000Z",
"data_release_status": "live_database",
"filters": {
"limit": 50,
"offset": 0,
"min_homes": 2
},
"portfolio_scope": "National registered care-home portfolio of each linked legal company",
"pagination_consistency": "Each request uses a fresh database snapshot. Use the CSV for a fixed extract across all records."
}
}All 35 response fields and definitions
| Field | JSON type | Meaning |
|---|---|---|
company_number | string | Matched current Companies House legal-company identifier. Preserve leading zeros. |
company_name | string | Recorded name of the matched legal company. |
company_status | string | Recorded Companies House status, not a financial-health assessment. |
company_status_detail | string | Additional Companies House status detail, where recorded. An active strike-off proposal may accompany active status; it does not itself establish insolvency. Blank means no additional detail was recorded. |
company_type | string | Recorded legal form. ltd denotes a private company limited by shares. |
company_match_status | string | matched, company_source_unavailable, company_record_missing, provider_record_missing or provider_company_number_missing. company_source_unavailable records an authoritative profile endpoint 404; it does not establish dissolution, a malformed identifier or FCA registration. Company enrichment is blank until a later successful observation. |
filing_status_indicators | array | JSON array of recorded status and reported/calculated filing indicators. An empty array means no listed indicator was observed. |
insolvency_status_recorded | boolean | Recorded status is administration, liquidation, receivership, voluntary-arrangement or insolvency-proceedings. Liquidation alone does not establish insolvency. |
accounts_next_due_on | string | Recorded next accounts filing due date. |
accounts_overdue_reported | boolean | Overdue accounts flag stored from Companies House, separate from calculated date indicators. |
accounts_due_date_past | boolean | Recorded accounts due date is earlier than the snapshot UTC date. Due today is false. Stored dates may lag later upstream filings. |
days_since_accounts_due_date | integer | Calendar days since a passed accounts due date. Blank if the due date is unknown or has not passed. |
confirmation_statement_next_due | string | Recorded next confirmation-statement due date. |
confirmation_statement_overdue_reported | boolean | Overdue confirmation-statement flag stored from Companies House. |
confirmation_statement_due_date_past | boolean | Recorded confirmation-statement due date is earlier than the snapshot UTC date. Stored dates may lag later upstream filings. |
days_since_confirmation_statement_due_date | integer | Calendar days since a passed confirmation-statement due date; otherwise blank. |
company_care_home_provider_ids | array | JSON array of distinct provider identifiers, independently sorted. |
company_care_home_provider_names | array | JSON array of distinct provider names, independently sorted. Positions do not pair with the identifier array. |
company_care_home_provider_count | integer | Distinct CQC providers linked to the legal-company registered care-home portfolio. |
company_registered_care_home_count | integer | Registered care-home locations linked through provider primary company identifiers, across nine English regions. |
company_known_bed_capacity | integer | Sum of nonblank bed capacities in that legal-company care-home portfolio; blank when homes exist but all capacities are unknown. |
company_homes_with_known_beds | integer | Portfolio homes with nonblank recorded bed capacity, including a recorded zero. |
company_homes_with_missing_beds | integer | Portfolio homes whose recorded bed capacity is blank. |
company_care_home_regions | array | JSON array of distinct English regions in the legal-company registered care-home portfolio. |
company_homes_recorded_inadequate | integer | Portfolio homes with the exact stored overall rating Inadequate. |
company_homes_recorded_requires_improvement | integer | Portfolio homes with the exact stored overall rating Requires improvement. |
company_homes_without_published_overall_rating | integer | Portfolio homes without one of Good, Outstanding, Requires improvement or Inadequate, including blanks and other labels. |
total_charges | integer | Distinct current charge IDs across observed statuses, excluding historical versions. |
active_charges | integer | Distinct current charge IDs with status beginning outstanding (case-insensitive). Part-satisfied records are excluded. |
charge_record_coverage | string | complete_charge_list_verified means a fully paginated Companies House charge list was reconciled and its totals match stored current records; an empty verified list is zero. charge_source_unavailable means the charge endpoint was unavailable and counts remain unknown. company_source_unavailable means the profile endpoint returned 404; related enrichment and charge counts remain unknown. charge_rows_observed and no_charge_rows_observed describe stored observations without certified list completeness. Verification refers to the source observation, not an assurance that later filings cannot exist. |
company_record_updated_at | string | Stored Companies House company-profile update instant. |
company_record_valid_from | string | Beginning of the stored current company version. |
latest_charge_record_valid_from | string | Latest beginning of a current observed charge version, not a company-wide API refresh timestamp. |
company_latest_care_home_record_updated_at | string | Latest stored location update instant within the registered care-home portfolio. |
export_snapshot_at | string | Shared database transaction instant for the full export and all three samples, in UTC. |
One care-home location · 32 fields
Healthcare M&A prospects
Find registered care homes with recorded capacity, published ratings and a contact channel.
Registered care homes with recorded positive beds, a postcode, a phone or website, and a published overall rating and date. Returns all eligible locations; the ten-row sample balances operators and regions.
Make a request
curl --get 'https://caredb.co.uk/v1/prospects/healthcare-ma?region=London&min_beds=30&rating=Good&limit=50' \
--header "x-api-key: $CAREDB_API_KEY"Example JSON response Illustrative, fictional data
{
"data": [
{
"location_id": "example-location-001",
"name": "Example Gardens Care Home",
"provider_id": "example-provider-001",
"provider_name": "Example Care Limited",
"ownership_type": "Organisation",
"companies_house_number": "01234567",
"company_number": "01234567",
"company_name": "Example Care Holdings Limited",
"company_status": "active",
"company_status_detail": null,
"company_type": "ltd",
"company_match_status": "matched",
"number_of_beds": 40,
"address_1": "10 Example Road",
"town": "London",
"postcode": "SW1A 1AA",
"normalized_postcode": "SW1A1AA",
"region": "London",
"local_authority": "Example borough",
"phone": null,
"website": "https://example.com",
"current_rating": "Good",
"rating_date": "2026-08-15",
"company_registered_care_home_count": 6,
"total_charges": 4,
"active_charges": 2,
"charge_record_coverage": "complete_charge_list_verified",
"location_record_updated_at": "2026-10-04T12:00:00.000Z",
"provider_record_updated_at": "2026-10-04T12:00:00.000Z",
"company_record_updated_at": "2026-10-04T10:15:00.000Z",
"company_record_valid_from": "2026-10-04T10:15:00.000Z",
"export_snapshot_at": "2026-10-05T09:00:00.000Z"
}
],
"pagination": {
"limit": 50,
"offset": 0,
"total": 1,
"has_more": false,
"next_offset": null
},
"meta": {
"cohort": "healthcare-ma",
"record_grain": "One care-home location",
"scope": "England registered care homes",
"snapshot_at": "2026-10-05T09:00:00.000Z",
"data_release_status": "live_database",
"filters": {
"limit": 50,
"offset": 0,
"region": "London",
"min_beds": 30,
"rating": "Good"
},
"portfolio_scope": "National registered care-home portfolio of each linked legal company",
"pagination_consistency": "Each request uses a fresh database snapshot. Use the CSV for a fixed extract across all records."
}
}All 32 response fields and definitions
| Field | JSON type | Meaning |
|---|---|---|
location_id | string | CQC location identifier. One bulk row represents one location. |
name | string | Recorded CQC location name. |
provider_id | string | CQC provider identifier for the operator linked to this location. |
provider_name | string | Recorded name of the CQC provider. |
ownership_type | string | Recorded CQC provider ownership classification; not inferred ultimate beneficial ownership. |
companies_house_number | string | Provider's primary company identifier. Seven-digit numeric identifiers are padded to eight digits for matching; letter prefixes are uppercase. Original stored identifiers are retained in CareDB. May be blank or unmatched. |
company_number | string | Matched current Companies House legal-company identifier. Preserve leading zeros. |
company_name | string | Recorded name of the matched legal company. |
company_status | string | Recorded Companies House status, not a financial-health assessment. |
company_status_detail | string | Additional Companies House status detail, where recorded. An active strike-off proposal may accompany active status; it does not itself establish insolvency. Blank means no additional detail was recorded. |
company_type | string | Recorded legal form. ltd denotes a private company limited by shares. |
company_match_status | string | matched, company_source_unavailable, company_record_missing, provider_record_missing or provider_company_number_missing. company_source_unavailable records an authoritative profile endpoint 404; it does not establish dissolution, a malformed identifier or FCA registration. Company enrichment is blank until a later successful observation. |
number_of_beds | integer | Recorded location bed capacity. This is capacity, not occupancy or revenue. |
address_1 | string | First line of the recorded location address. |
town | string | Recorded location town or city. |
postcode | string | Recorded location postcode. |
normalized_postcode | string | Location postcode converted to uppercase with whitespace removed. |
region | string | Stored English region for the location. |
local_authority | string | Stored local-authority name for the location. |
phone | string | Recorded business phone number; reachability has not been independently checked. |
website | string | Recorded website; ownership and reachability have not been independently checked. |
current_rating | string | Current stored CQC overall rating or latest published Current Care Homes assessment. Verified CQC directory/profile ratings supplement API omissions and may be inherited from a predecessor operator. Standard labels are normalized; unscored labels remain distinct. Blank is not favourable. |
rating_date | string | Publication date of the selected CQC rating or Care Homes assessment; not its visit date. No rating trend is inferred. |
company_registered_care_home_count | integer | Registered care-home locations linked through provider primary company identifiers, across nine English regions. |
total_charges | integer | Distinct current charge IDs across observed statuses, excluding historical versions. |
active_charges | integer | Distinct current charge IDs with status beginning outstanding (case-insensitive). Part-satisfied records are excluded. |
charge_record_coverage | string | complete_charge_list_verified means a fully paginated Companies House charge list was reconciled and its totals match stored current records; an empty verified list is zero. charge_source_unavailable means the charge endpoint was unavailable and counts remain unknown. company_source_unavailable means the profile endpoint returned 404; related enrichment and charge counts remain unknown. charge_rows_observed and no_charge_rows_observed describe stored observations without certified list completeness. Verification refers to the source observation, not an assurance that later filings cannot exist. |
location_record_updated_at | string | Stored CQC location update instant. |
provider_record_updated_at | string | Stored CQC provider update instant. |
company_record_updated_at | string | Stored Companies House company-profile update instant. |
company_record_valid_from | string | Beginning of the stored current company version. |
export_snapshot_at | string | Shared database transaction instant for the full export and all three samples, in UTC. |
One legal company · 31 fields
PE buy-and-build prospects
Map legal-company portfolios by footprint, capacity and geographic reach.
Active private companies limited by shares operating registered care homes, excluding active strike-off proposals. Portfolios describe legal companies, not ultimate ownership groups or verified investment opportunities.
Make a request
curl --get 'https://caredb.co.uk/v1/prospects/pe-buy-and-build?min_homes=5®ion=South%20East&limit=50' \
--header "x-api-key: $CAREDB_API_KEY"Example JSON response Illustrative, fictional data
{
"data": [
{
"company_number": "01234567",
"company_name": "Example Care Holdings Limited",
"company_status": "active",
"company_status_detail": null,
"company_type": "ltd",
"company_match_status": "matched",
"company_care_home_provider_ids": [
"example-provider-001"
],
"company_care_home_provider_names": [
"Example Care Limited"
],
"company_care_home_provider_count": 1,
"company_registered_care_home_count": 6,
"company_known_bed_capacity": 240,
"company_homes_with_known_beds": 6,
"company_homes_with_missing_beds": 0,
"company_care_home_regions": [
"London",
"South East"
],
"company_homes_recorded_inadequate": 0,
"company_homes_recorded_requires_improvement": 1,
"company_homes_without_published_overall_rating": 1,
"accounts_next_due_on": "2027-09-30",
"accounts_overdue_reported": false,
"accounts_due_date_past": false,
"confirmation_statement_next_due": "2027-04-01",
"confirmation_statement_overdue_reported": false,
"confirmation_statement_due_date_past": false,
"total_charges": 4,
"active_charges": 2,
"charge_record_coverage": "complete_charge_list_verified",
"company_record_updated_at": "2026-10-04T10:15:00.000Z",
"company_record_valid_from": "2026-10-04T10:15:00.000Z",
"latest_charge_record_valid_from": "2026-10-04T11:00:00.000Z",
"company_latest_care_home_record_updated_at": "2026-10-04T12:00:00.000Z",
"export_snapshot_at": "2026-10-05T09:00:00.000Z"
}
],
"pagination": {
"limit": 50,
"offset": 0,
"total": 1,
"has_more": false,
"next_offset": null
},
"meta": {
"cohort": "pe-buy-and-build",
"record_grain": "One legal company",
"scope": "England registered care homes",
"snapshot_at": "2026-10-05T09:00:00.000Z",
"data_release_status": "live_database",
"filters": {
"limit": 50,
"offset": 0,
"min_homes": 5,
"region": "South East"
},
"portfolio_scope": "National registered care-home portfolio of each linked legal company",
"pagination_consistency": "Each request uses a fresh database snapshot. Use the CSV for a fixed extract across all records."
}
}All 31 response fields and definitions
| Field | JSON type | Meaning |
|---|---|---|
company_number | string | Matched current Companies House legal-company identifier. Preserve leading zeros. |
company_name | string | Recorded name of the matched legal company. |
company_status | string | Recorded Companies House status, not a financial-health assessment. |
company_status_detail | string | Additional Companies House status detail, where recorded. An active strike-off proposal may accompany active status; it does not itself establish insolvency. Blank means no additional detail was recorded. |
company_type | string | Recorded legal form. ltd denotes a private company limited by shares. |
company_match_status | string | matched, company_source_unavailable, company_record_missing, provider_record_missing or provider_company_number_missing. company_source_unavailable records an authoritative profile endpoint 404; it does not establish dissolution, a malformed identifier or FCA registration. Company enrichment is blank until a later successful observation. |
company_care_home_provider_ids | array | JSON array of distinct provider identifiers, independently sorted. |
company_care_home_provider_names | array | JSON array of distinct provider names, independently sorted. Positions do not pair with the identifier array. |
company_care_home_provider_count | integer | Distinct CQC providers linked to the legal-company registered care-home portfolio. |
company_registered_care_home_count | integer | Registered care-home locations linked through provider primary company identifiers, across nine English regions. |
company_known_bed_capacity | integer | Sum of nonblank bed capacities in that legal-company care-home portfolio; blank when homes exist but all capacities are unknown. |
company_homes_with_known_beds | integer | Portfolio homes with nonblank recorded bed capacity, including a recorded zero. |
company_homes_with_missing_beds | integer | Portfolio homes whose recorded bed capacity is blank. |
company_care_home_regions | array | JSON array of distinct English regions in the legal-company registered care-home portfolio. |
company_homes_recorded_inadequate | integer | Portfolio homes with the exact stored overall rating Inadequate. |
company_homes_recorded_requires_improvement | integer | Portfolio homes with the exact stored overall rating Requires improvement. |
company_homes_without_published_overall_rating | integer | Portfolio homes without one of Good, Outstanding, Requires improvement or Inadequate, including blanks and other labels. |
accounts_next_due_on | string | Recorded next accounts filing due date. |
accounts_overdue_reported | boolean | Overdue accounts flag stored from Companies House, separate from calculated date indicators. |
accounts_due_date_past | boolean | Recorded accounts due date is earlier than the snapshot UTC date. Due today is false. Stored dates may lag later upstream filings. |
confirmation_statement_next_due | string | Recorded next confirmation-statement due date. |
confirmation_statement_overdue_reported | boolean | Overdue confirmation-statement flag stored from Companies House. |
confirmation_statement_due_date_past | boolean | Recorded confirmation-statement due date is earlier than the snapshot UTC date. Stored dates may lag later upstream filings. |
total_charges | integer | Distinct current charge IDs across observed statuses, excluding historical versions. |
active_charges | integer | Distinct current charge IDs with status beginning outstanding (case-insensitive). Part-satisfied records are excluded. |
charge_record_coverage | string | complete_charge_list_verified means a fully paginated Companies House charge list was reconciled and its totals match stored current records; an empty verified list is zero. charge_source_unavailable means the charge endpoint was unavailable and counts remain unknown. company_source_unavailable means the profile endpoint returned 404; related enrichment and charge counts remain unknown. charge_rows_observed and no_charge_rows_observed describe stored observations without certified list completeness. Verification refers to the source observation, not an assurance that later filings cannot exist. |
company_record_updated_at | string | Stored Companies House company-profile update instant. |
company_record_valid_from | string | Beginning of the stored current company version. |
latest_charge_record_valid_from | string | Latest beginning of a current observed charge version, not a company-wide API refresh timestamp. |
company_latest_care_home_record_updated_at | string | Latest stored location update instant within the registered care-home portfolio. |
export_snapshot_at | string | Shared database transaction instant for the full export and all three samples, in UTC. |
Start integrating
Access and pagination
Enterprise access is arranged with CareDB. Set your privately issued key in CAREDB_API_KEY and send it in the x-api-key header. Keep the key on your server.
Start with limit=50&offset=0. Responses include the total matching count, has_more and next_offset. Continue using next_offset with the same filters. The maximum page size is 200; prospecting endpoints allow 20 requests per minute per IP. A 429 response means wait before retrying.
Each request reads a consistent database snapshot. Between requests the population can change, so pages are not a frozen export. Use the CSV when you need one fixed extract of the whole population.
401: missing or invalid key. 400: invalid filters. 503: enterprise access is not configured. Example responses above are fictional illustrations, not current prospects or recommendations.
Freshness without guesswork
Live reads. Scheduled source updates.
Every API request reads the current database. Companies House and CQC sync jobs are scheduled daily; Companies House company and filing events also feed a queue scheduled for processing every ten minutes. These are processing schedules, not guaranteed per-record refresh times: upstream publication, queue delays and failed checks can delay availability. snapshot_at is the database read time, not the upstream fetch time. Record version timestamps are not universal last-checked timestamps. The corrected CSV release remains subject to the validation status shown in meta.data_release_status.
The API reflects stored updates as they become available. A CSV stays fixed at its export snapshot; use the API for recurring lookups. No per-record refresh SLA is implied by these schedules.
Integration reference
Response errors and retry behaviour
Prospect endpoints allow 20 requests per minute per IP. Responses expose x-ratelimit-limit (request allowance), x-ratelimit-remaining (remaining requests), and x-ratelimit-reset (seconds until the window resets). A 429 also includes retry-after in seconds. Wait at least that duration, add jitter, and retry; avoid parallel retry storms. Limits are enforced by the application; proxy or network failures may return different responses.
| HTTP status | Meaning and action | Example JSON |
|---|---|---|
400 | Invalid or unsupported query parameters. Correct the request before retrying. | {"error":"Unsupported prospect filter"} |
401 | Missing or invalid x-api-key. Supply the privately issued enterprise key; do not retry the same credentials. | {"error":"Valid enterprise API key required"} |
429 | Rate limit exceeded. Wait at least retry-after seconds, add jitter, and retry. | {"statusCode":429,"error":"Too Many Requests","message":"Rate limit exceeded, retry in 1 minute"} |
500 | Unexpected server or database failure. Retry with capped exponential backoff and jitter; contact CareDB if persistent. | {"error":"Service temporarily unavailable"} |
503 | Enterprise access is not configured. Contact CareDB to arrange access; repeated retries will not configure it. | {"error":"Enterprise access is not configured"} |
Application error responses are JSON. Read error; validation and rate-limit responses may also include message, statusCode and code. Error text can vary; branch on HTTP status rather than exact wording. Rate-limit headers describe the current request window, not data freshness.
The API reference includes response schemas, examples and rate-limit headers for each prospect endpoint.
Narrow your prospect list
Filters that keep the context
| Filter | What it does |
|---|---|
region | Choose an English region. For company APIs, the company must have a home in that region; portfolio totals still cover all its registered English care homes. |
company_number, provider_id | Look up a linked legal company or provider. Company numbers retain leading zeros and letter prefixes. |
min_homes, max_homes | Filter by the national registered care-home count of the linked legal company. |
min_beds, max_beds | M&A: a location’s recorded beds. Company APIs: the portfolio’s known bed capacity. Unknown values do not satisfy a numeric filter. |
company_status | Filter within the product’s eligibility rules. Buy-and-build remains limited to active private limited companies. |
rating | M&A only: Good, Outstanding, Requires improvement or Inadequate. |
Regions: East, East Midlands, London, North East, North West, South East, South West, West Midlands, Yorkshire & Humberside. Exact accepted parameters are in the API reference.
Read the signals correctly
Clear meanings. Explicit unknowns.
nullmeans unknown or unavailable. A recorded zero orfalseis retained; arrays remain JSON arrays.active_chargescounts distinct current outstanding registered securities, excluding part-satisfied records. It is not a monetary debt balance. Readcharge_record_coveragebefore using a count.- Filing indicators separate Companies House reported overdue flags from calculations using due dates. An overdue filing alone does not establish financial distress.
- Company portfolios describe the provider’s linked legal company. They do not establish ultimate group ownership, investment eligibility or whether a business is for sale.
- The snapshot timestamp records when the database was read. It does not mean every upstream record was fetched at that instant. Record timestamps describe the stored business versions.
Choose how you work
API or a complete CSV?
| Prospecting APIs | England CSV | |
|---|---|---|
| Best for | Targeted lookups and recurring integrations | Analysis, modelling and a full fixed extract |
| Scope | Full eligible populations for three audiences | Full purchased England care-location scope |
| Delivery | Filtered, paginated JSON | One dated CSV snapshot |
| Access | Contracted enterprise API key | £897 dataset purchase |
The audience samples are ten-row illustrations. These APIs return all eligible records, using the same field meanings and national portfolio calculations. Legacy /v1/locations, /v1/providers and /v1/signals remain in the technical reference.
Build your next care-market workflow.
Tell us the audience, filters and volume you need. We’ll help you arrange enterprise access.
Request enterprise access Read the API reference ↗