UK Company Registry (Companies House) API and MCP — Company Profile, Officers, Charges
Send a Companies House company number and get the company back as structured JSON: name, status, company type, incorporation date, registered address, SIC codes, previous names, accounts and confirmation-statement dates, a list of officers, any registered charges and insolvency cases.
- You send
- a Companies House company number, or the link to the company page
- You get back
- status, registration date, registered address, SIC codes, previous names, accounts and confirmation-statement dates, officers and charges
- Coverage
- United Kingdom — entities on Companies House.
- Price
- 30 pts — $30 per 1,000
- Charged only when the record resolves. A lookup that finds nothing is not billed.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| Companies House directly | Open Companies House and read the record | Usually free, sometimes per-document | A different interface, language and data shape for every country you add |
| Collecting it yourself | Build and host a crawler per register, then keep each one alive | Infrastructure and maintenance | Registers change their pages without warning, and nobody is on the hook when yours breaks |
| NeuralVerge | One request, the same shape as every other source in the catalog | $30 per 1,000, misses not billed | Covers United Kingdom — other countries are separate sources with the same request format |
What you get back
Every field in the example response below.
| Field | Type | Description |
|---|---|---|
session_id | string | Id of this run, for tracing. |
kind | string | Source type of the response. |
company | string | The identifier you sent. |
company_id | string | The identifier as the register uses it. |
human | string | Readable summary of the record. |
total_points | number | Points charged for the run. |
machine.company.registration_number | string | Company number. |
machine.company.name | string | Registered company name. |
machine.company.status | string | Company status, e.g. Active. |
machine.company.address | string | Registered office address. |
machine.company.url | string | Link to the company page on the register. |
machine.company.company_type | string | Company type, e.g. Public limited Company. |
machine.company.incorporation_date | string | Date of incorporation (YYYY-MM-DD). |
machine.company.activity | string | Main SIC code with its description. |
machine.company.sic_codes | array | All SIC codes with descriptions. |
machine.company.dissolution_date | null | Empty in the sample because the company is active; expect a date for dissolved companies. |
machine.company.previous_names[] | array | Earlier names, each with name and the period it was used. |
machine.company.last_accounts_made_up_to | string | Date the latest filed accounts run to. |
machine.company.next_accounts_made_up_to | string | Date the next accounts run to. |
machine.company.next_accounts_due_by | string | Deadline for the next accounts. |
machine.company.accounts_overdue | boolean | Whether accounts are overdue. |
machine.company.confirmation_statement_next_date | string | Next confirmation statement date. |
machine.company.confirmation_statement_due_by | string | Deadline for the next confirmation statement. |
machine.company.confirmation_statement_last_made_up_to | string | Date the last confirmation statement was made up to. |
machine.company.confirmation_statement_overdue | boolean | Whether the confirmation statement is overdue. |
machine.company.officers_summary | string | Count of officers and resignations as the register states it. |
machine.company.officers[] | array | Officers: name, role, status, correspondence address, appointed_on and a link to their appointments. Directors may also carry date_of_birth (month and year), nationality, country_of_residence and identity_verification_status. |
machine.company.officers_total | number | Total officers on the register. |
machine.company.officers_truncated | boolean | True when the list holds fewer officers than officers_total. |
machine.company.persons_with_significant_control_summary | null | Empty in the sample; see the exemption text below. |
machine.company.persons_with_significant_control_exemption | string | Statement of why the company is exempt from PSC reporting, when it is. |
machine.company.persons_with_significant_control[] | array | Persons with significant control; empty in the sample. |
machine.company.charges_summary | string | Count of registered charges. |
machine.company.charges_breakdown | string | Outstanding, satisfied and part-satisfied counts. |
machine.company.charges[] | array | Charges: code (type), url, created_on, delivered_on, satisfied_on, status, persons_entitled and brief_description. |
machine.company.charges_total | number | Total charges on the register. |
machine.company.charges_truncated | boolean | True when the list holds fewer charges than charges_total. |
machine.company.insolvency_cases[] | array | Insolvency cases; empty in the sample. |
machine.blocked | boolean | Whether the register refused the request. |
machine.pages_opened | number | Register pages read for the run. |
machine.proxy_traffic_bytes | number | Size of the data transferred for the run, in bytes. |
Example response
A real response, as returned.
{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "uk_companies",
"company": "00445790",
"company_id": "00445790",
"human": "# United Kingdom — Companies House — company\n\n- **Number:** 00445790\n- **Pages opened:** 5\n- **Proxy traffic:** 420.2 KB\n- **Name:** TESCO PLC\n- **Status:** Active\n- **Type:** Public limited Company\n- **Registered:** 1947-11-27\n- **Address:** Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA",
"machine": {
"company": {
"registration_number": "00445790",
"name": "TESCO PLC",
"status": "Active",
"address": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA",
"url": "https://find-and-update.company-information.service.gov.uk/company/00445790",
"company_type": "Public limited Company",
"incorporation_date": "1947-11-27",
"activity": "47110 - Retail sale in non-specialised stores with food, beverages or tobacco predominating",
"sic_codes": [
"47110 - Retail sale in non-specialised stores with food, beverages or tobacco predominating"
],
"dissolution_date": null,
"previous_names": [
{
"name": "TESCO STORES (HOLDINGS) PUBLIC LIMITED COMPANY",
"period": "14 Dec 1981 - 25 Aug 1983"
},
{
"name": "TESCO STORES (HOLDINGS) LIMITED",
"period": "27 Nov 1947 - 14 Dec 1981"
}
],
"last_accounts_made_up_to": "2026-02-28",
"next_accounts_made_up_to": "2027-02-26",
"next_accounts_due_by": "2027-08-26",
"accounts_overdue": false,
"confirmation_statement_next_date": "2027-06-18",
"confirmation_statement_due_by": "2027-07-02",
"confirmation_statement_last_made_up_to": "2026-06-18",
"confirmation_statement_overdue": false,
"officers_summary": "74 officers / 63 resignations",
"officers": [
{
"name": "TAYLOR, Christopher Jon",
"officer_url": "https://find-and-update.company-information.service.gov.uk/officers/uJ_F_UGCbPiYELlJ_fHc-J_goqo/appointments",
"status": "Active",
"correspondence_address": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA",
"role": "Secretary",
"appointed_on": "2025-04-14"
},
{
"name": "BETHELL, Melissa",
"officer_url": "https://find-and-update.company-information.service.gov.uk/officers/aqrS_F-2zIvSaMNtl1opqDV4-w0/appointments",
"status": "Active",
"correspondence_address": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA",
"role": "Director",
"date_of_birth": "1974-09",
"appointed_on": "2018-09-24",
"nationality": "British",
"country_of_residence": "United Kingdom",
"identity_verification_status": "Verified Verification requirements complete"
}
],
"officers_total": 74,
"officers_truncated": true,
"persons_with_significant_control_summary": null,
"persons_with_significant_control_exemption": "From 18 June 2018 the company is exempt from the requirement to obtain information of its PSC because it has voting shares admitted to trading on a UK regulated market",
"persons_with_significant_control": [],
"charges_summary": "9 charges registered",
"charges_breakdown": "2 outstanding, 7 satisfied, 0 part satisfied",
"charges": [
{
"code": "Account security agreement",
"url": "https://find-and-update.company-information.service.gov.uk/company/00445790/charges/5QU1lSudRI2jTIfUv_AOVxfLxVE",
"created_on": "2009-11-04",
"delivered_on": "2009-11-06",
"satisfied_on": null,
"status": "Outstanding",
"persons_entitled": [
"Tesco Trustee Company of Ireland Limited as Trustee of the Tesco Ireland Limited Senior Executive Pension Scheme"
],
"brief_description": "Right title benefit and interest in and to the account…"
},
{
"code": "Account security agreement",
"url": "https://find-and-update.company-information.service.gov.uk/company/00445790/charges/co-_yIXMvPnNBqPuNZqOcwFwqtM",
"created_on": "2009-11-04",
"delivered_on": "2009-11-06",
"satisfied_on": null,
"status": "Outstanding",
"persons_entitled": [
"Tesco Ireland Pension Trustees Limited as Trustee of the Tesco Ireland Limited Pension Plan"
],
"brief_description": "Right title benefit and interest in and to the account…"
}
],
"charges_total": 9,
"charges_truncated": false,
"insolvency_cases": []
},
"blocked": false,
"pages_opened": 5,
"proxy_traffic_bytes": 430307
},
"total_points": 30
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
One company per request. Pass the registration number or the link to the record on the register.
curl -X POST https://api.neuralverge.ai/functions/v1/run-uk-companies \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"company":"00445790"}'What teams use it for
Where this field shows up in an actual workflow.
Confirm a UK company is active, see its registered address and check whether accounts or confirmation statements are overdue before you sign.
Read outstanding charges and their holders, plus insolvency cases, for a company you are about to lend to or extend terms to.
Pull current officers with appointment dates and follow each officer link, and see whether PSC information exists or the company is exempt.
Fill company type, SIC code, incorporation date and previous names from a company number you already hold.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
United Kingdom — entities on Companies House.
Read at request time, so the answer reflects the register as it stands when you ask.
Companies House is a public register. Every response carries the source URL it was read from and a session id you can trace.
- —Officers and charges come back as capped lists; officers_total and charges_total give the full count and the truncated flags tell you when the list is shorter.
- —Company type and PSC fields can be empty depending on the company; the sample shows an empty PSC list for a listed company.
- —Filed documents are not in this record. Use Companies House filings for the filing history.
Questions, answered
The Companies House company number, such as 00445790 for Tesco PLC, or the link to the company page. Keep leading zeros.
Related sources
Try companies house company on your own data
One request format across every source in the catalog.