Reference
UK registry-to-API field map
Map Companies House, Insolvency Service and HM Land Registry response fields, with source licences and known limits.
Updated 7 September 2026 9 min read
This map is a reading aid for the published OpenAPI contract. It names response paths exactly as they appear in the entity and risk schemas, then separates source facts from the response-level normalisation and derived risk logic.
First, read source accountability
Every entity response names sources_checked and sources_failed. The former records attempted sources; the latter gives the failed subset and a reason. Use them before relying on any source-derived field. A source omitted from the checked set was not assessed, and a source in sources_failed did not produce complete evidence.
Companies House: profile
| Record | Source | API fields |
|---|---|---|
| Company identity | Companies House | ch.name, ch.company_number, ch.status, ch.type, ch.incorporated_on, ch.dissolved_on |
| Classification and address | Companies House | ch.sic_codes, ch.registered_office_address, ch.postcode |
| Filing and history indicators | Companies House | ch.accounts_overdue, ch.confirmation_overdue, ch.has_charges, ch.has_insolvency_history, ch.ch_fetched_at |
| Top-level normalisation | Derived response envelope | company_number, name, status, fetched_at |
Companies House: people and charges
| Record | Source | API fields |
|---|---|---|
| Persons with significant control | Companies House | ch_psc.persons[].name, nature_of_control, notified_on, nationality, country_of_residence |
| Officer record | Companies House | officers.items[].officer_id, name, officer_role, appointed_on, appointed_before, resigned_on, nationality, country_of_residence |
| Officer identity details | Companies House | officers.items[].date_of_birth (month/year only), former_names, identification, identity_verification |
| Officer set | Companies House | officers.status, total_results, active_count, resigned_count, truncated, items, directors |
| Charge set | Companies House | charges.status, total_count, satisfied_count, part_satisfied_count, outstanding_count, truncated, items |
| Charge detail | Companies House | charges.items[].charge_number, status, created_on, delivered_on, satisfied_on, persons_entitled, classification, particulars, floating-charge fields |
officers.status and charges.status use none, present, and unknown. Only none is a confirmed absence. The default officer list is active officers; ?include_resigned=true adds resigned records while the counts remain totals for the full set.
Insolvency and derived risk
| Record | Source | API fields |
|---|---|---|
| Insolvency proceedings | The Insolvency Service | insolvency.has_active_insolvency, insolvency.cases, insolvency.insolvency_fetched_at |
| Source accountability | Response envelope | sources_checked, sources_failed |
| Confirmed risk | Derived from assembled profile | risk_signals.score, flags[].code, severity, description, triggered_at |
| Risk uncertainty | Derived from source availability | risk_signals.score_is_floor, potential_score, coverage, indeterminate[].code, source, reason |
Risk fields are a paid feature. In an entity response, an absent risk_signals object means it is not available to that key, not that no risk exists. The dedicated risk endpoint returns the object for eligible keys. See how to read risk uncertainty before applying a policy.
HM Land Registry: land holdings
| Record | Source | API fields |
|---|---|---|
| Title held by the company | HM Land Registry (CCOD) | land_holdings[].title_number, tenure, address (postcode only), price_paid, date_added |
| Title counts | Derived from the full title list | land_summary.total_count, returned_count, freehold_count, leasehold_count, truncated |
| Dataset currency | HM Land Registry (CCOD) | land_data_as_at |
Land holdings come from HM Land Registry's UK Companies that Own Property (CCOD) dataset and are returned to Growth and Enterprise keys. land_holdings is ordered newest first by date_added, with undated titles last. ?land_limit= (1–200) keeps only the newest titles; land_summary always counts the full list, and truncated is true when titles were left out. When land was not requested or failed, land_holdings is empty and the counts are zero, so read sources_checked and sources_failed first. The land source cannot be requested on its own; pair it with another source, for example ?sources=ch,land.
Known data limits
- PSC dates of birth are not returned or retrieved.
- Officer date of birth, when present, is month and year only; no day is returned.
charges.truncatedandofficers.truncatedmean theiritemsarray is not complete.- For the CCOD dataset, property addresses are postcode-only or null because full-address redistribution is not covered by the applicable PAF licence.
- CCOD covers England and Wales; Scotland and Northern Ireland use separate registries and are not currently covered.
- CCOD
price_paidis null when HM Land Registry recorded no price; null is not a zero value. freehold_countplusleasehold_countcan be less thantotal_countwhen a title's tenure is not recorded as either.
Licences and attribution
Companies House and The Insolvency Service public-sector information is licensed under the Open Government Licence v3.0. Information produced by HM Land Registry is © Crown copyright and database right; it is licensed for value-added use and must not be redistributed as a standalone dataset. If you republish source material obtained through Rotuli, preserve the required attribution and do not imply government endorsement.
For source cadence, freshness, and the complete attribution wording, see Data sources. For full request and response schemas, use the API reference alongside the versioned OpenAPI document.