# OpenCompanies data guide

OpenCompanies is an open, read-only map of UK companies built from Companies House data under the Open Government Licence v3.0. This guide explains how the data is organised, how far to rely on each part of it and what is not held. It is written for AI assistants using the OpenCompanies MCP server at https://opencompanies.uk/mcp, and for anyone else reading the data.

## What it holds

Companies on the Companies House register, live and dissolved, with their officers and people with significant control (PSC), company-to-company ownership and the corporate groups it forms, shared registered addresses, SIC codes and figures from electronically filed accounts. What is not held is listed under Caveats.

### Company status

Every company carries its raw Companies House `status` and a derived `status_group`:

| status_group | Meaning |
|---|---|
| `active` | Live on the register, with no insolvency process or strike-off notice recorded. |
| `proposal_to_strike_off` | Live, but Companies House has given notice that it will strike the company off, often because filings are overdue or at the company's own request. |
| `insolvency` | Live, with an insolvency process recorded: liquidation, administration, receivership, a voluntary arrangement or other insolvency proceedings. |
| `dissolved` | Dissolved and no longer on the register. |
| `closed` | Converted or closed (for example an overseas company's UK branch), or removed. |
| `other` | A live status that fits none of the groups above, or a blank one. |

`is_active` is false for dissolved and removed companies and for the snapshot's Converted/Closed, so companies in liquidation or administration count as active in search filters. The live feed's `converted-closed` currently stays active; its `status_group` is `closed`. Every raw value, with the group and `is_active` it gives, is listed in https://opencompanies.uk/mcp/reference/company-statuses.md.

### Company type

Types are reported raw and as a `company_type_key` from the Companies House API, which folds the register snapshot's labels and the live feed's keys together:

| company_type_key | Meaning |
|---|---|
| `ltd` | Private limited company |
| `plc` | Public limited company |
| `llp` | Limited liability partnership |
| `private-limited-guarant-nsc` | Private company limited by guarantee without share capital |
| `private-limited-guarant-nsc-limited-exemption` | Private company limited by guarantee without share capital, exempt from using Limited |
| `private-unlimited` | Private unlimited company |
| `private-unlimited-nsc` | Private unlimited company without share capital |
| `limited-partnership` | Limited partnership |
| `scottish-partnership` | Scottish qualifying partnership |
| `community-interest-company` | Community interest company |
| `charitable-incorporated-organisation` | Charitable incorporated organisation |
| `scottish-charitable-incorporated-organisation` | Scottish charitable incorporated organisation |
| `registered-overseas-entity` | Registered overseas entity |
| `oversea-company` | Overseas company |
| `registered-society-non-jurisdictional` | Registered society |
| `royal-charter` | Royal charter company |
| `investment-company-with-variable-capital` | Investment company with variable capital |
| `other` | Other company type |

### Control

- People with significant control hold more than 25% of shares or votes, can appoint or remove a majority of the board, or have significant influence or control. Natures of control are decoded into plain English with their bands; see https://opencompanies.uk/mcp/reference/natures-of-control.md.
- Controllers are an `individual`, a `uk_company` (a UK company OpenCompanies can follow, with its company_number), an `unresolved_corporate_entity` (an overseas or unregistered body, which cannot be followed further), a `legal_person` (a body such as a government department or a corporation sole) or `super_secure` (details withheld by Companies House).
- Instead of naming anyone, a company can file a statement, for example that no registrable person exists; see https://opencompanies.uk/mcp/reference/psc-statements.md.
- Corporate groups join UK companies linked by company-to-company control. They are rebuilt nightly, and a group's id can change when its structure does.

### Accounts figures

Figures come from accounts filed electronically, from 2008 onwards: about 25 balance sheet and profit and loss items plus average employees. A blank figure was not reported in that filing, which is not zero. Figures are as filed and not verified. Each figure is explained in https://opencompanies.uk/mcp/reference/accounts-figures.md.

### SIC codes

Companies file up to four SIC 2007 codes from the Companies House condensed list, grouped into sections A to U. The whole list with company counts is https://opencompanies.uk/mcp/reference/sic-codes.csv.

### Reference documents

- https://opencompanies.uk/mcp/status.json: Record counts and when each source was last loaded.
- https://opencompanies.uk/mcp/reference/sic-codes.csv: Every SIC 2007 code in the Companies House condensed list with section and company counts.
- https://opencompanies.uk/mcp/reference/natures-of-control.md: PSC nature-of-control codes in plain English with their share and voting bands.
- https://opencompanies.uk/mcp/reference/company-statuses.md: Raw Companies House status values and the status groups OpenCompanies derives from them.
- https://opencompanies.uk/mcp/reference/psc-statements.md: Statements a company can file instead of naming a person with significant control, explained.
- https://opencompanies.uk/mcp/reference/accounts-figures.md: What each accounts figure means, grouped as balance sheet and profit and loss, with coverage caveats.

## Identifiers

- **Companies** are identified by their Companies House `company_number`: eight characters such as 00445790 (England and Wales), SC123456 (Scotland), NI012345 (Northern Ireland) or OC301234 (limited liability partnerships). Tools accept numbers without their leading zeros, and Companies House or OpenCompanies company links.
- **People** are identified by an OpenCompanies `person_id`, as in https://opencompanies.uk/person/123. It is not a Companies House officer id; get_person also accepts an `officer_id` from Companies House.
- **Addresses** (`address_id`), **corporate groups** (`group_id`) and **SIC codes** (`code`) have their own ids and pages.
- Person records come in two families that are never merged: officer records, keyed on Companies House officer identifiers, and control records for people with significant control (PSC), grouped on name and birth month and year. The same human usually has one of each, linked only as possibly the same person, so an officer record's empty control list does not mean the person controls nothing. A corporate officer or owner that is a UK company links to that company's own record.
- Every result links to its opencompanies.uk page. Add `.json` to a company, person, address, group or SIC code page for JSON, or `.md` to a company or person page for Markdown. The same URLs are MCP resources.

### Identity policy

Only Companies House identifiers establish that two records are the same. Where Companies House issues none, as for people with significant control, filings are grouped into records instead, and each record's `identity_basis` says which way it was built.

- `identity_basis: companies_house_key`: An officer record is keyed on an identifier Companies House issues to officers, so its officer appointments are confirmed as belonging to one officer record.
- `identity_basis: grouped_on_name_and_birth_date`: A control record groups control filings that share the same name and birth month and year. Companies House issues no identifier for people with significant control, so the grouping is a strong lead rather than proof: two people with a common name and the same birth month and year would share one record.
- Possibly the same person: same name and birth month and year. Unconfirmed; people with common names often share these. They are listed as leads with a `review_status` (`confirmed` means an OpenCompanies reviewer checked the match; it is still not a Companies House identifier), never merged, and should never be presented as the same person.
- A company is treated as dissolved only when Companies House has recorded it, through its status or a dissolution date. Missing from a register snapshot is not dissolution, and dissolution is not failure: many solvent companies are struck off voluntarily.
- Disqualification records come from Companies House's live disqualification feed since OpenCompanies began collecting it, not the full register. Possible matches are unconfirmed: match_basis says whether a record shares the name and birth month and year (name_and_birth_date), the name and birth year (name_and_birth_year) or only words of the name (name_only). No match does not mean a person is not disqualified; check the official register.

## Where to start

- Find a company with search_companies (by name, number, postcode, SIC code or incorporation date) or a person with search_people. Both return the `company_number` or `person_id` every other tool takes.
- get_company gives one company's details, officers, owners and latest figures, and get_person one person's roles. run_company_checks gathers the usual due-diligence checks on a company.
- get_ownership, get_corporate_group, find_shared_connections, find_connection_path and get_network follow control and connections.
- get_dataset_status (or https://opencompanies.uk/mcp/status.json) says how current each source is.
- For whole-register work, use the bulk files on https://opencompanies.uk/data rather than paging through the MCP server.

## Caveats

### Freshness

| Source | How often it loads |
|---|---|
| Register snapshot, from Companies House's Basic Company Data (`companies_snapshot`) | Weekly check for the monthly file |
| People with significant control snapshot (`psc_snapshot`) | Daily |
| Officers bulk file (`officers_bulk`) | When Companies House supplies a new file |
| Accounts figures from the daily electronic accounts files (`accounts`) | Daily, Tuesday to Saturday |
| Accounts filing history, for paper and PDF filings (`accounts_history`) | Hourly, working through a long backlog |
| Company details from the Companies House API (`enrich`) | Hourly |
| Person matching (`resolve_persons`) | Daily |
| Counts and corporate groups (`refresh_aggregates`) | Daily, headline counts hourly |
| Links to other OpenCommons sites (`crosslinks`) | Daily |
| SIC code list (`sic_codes`) | Loaded from the bundled Companies House list when the site is set up |
| Postcode locations from OS Code-Point Open (`postcodes`) | Quarterly |

Live update feeds from Companies House (companies, officers, people with significant control, disqualifications and accounts filings) apply changes within minutes while they run. When each source last loaded is in https://opencompanies.uk/mcp/status.json and the get_dataset_status tool.

- Counts such as officer, appointment and company totals are refreshed nightly, and filing deadlines come from the monthly register snapshot.
- Live updates use the Companies House API's own spellings (for example `liquidation` or `converted-closed`) and do not carry the proposal-to-strike-off detail, which returns with the next monthly snapshot.

### Limits

- Lists are paged: pass `next_cursor` back as `cursor` for the next page. Searches and lists across the register stop at 1,000 rows, one company's officers or owners at 5,000 and one person's appointments at 2,000. Totals come from nightly counts where they exist; otherwise counting stops at 1,000 and `total_is_capped` says so.
- An address with more than 200 registered companies is a registration hub (usually a formation agent or mail-forwarding service), and a person with more than 50 current appointments is treated as high volume (often a nominee director). Both are reported rather than expanded, so a connection that is not found through one of them is inconclusive, not absent. find_connection_path skips more: addresses with more than 50 companies, people with more than 50 links, and companies with more than 100 officers and controllers or more than 50 subsidiaries. It lists what it skipped.
- Each database query may run for 8 seconds and each call for 20. A request that is too broad returns advice on how to narrow it. At most 2 heavy requests (the searches, get_address, the ownership and group tools, run_company_checks and the connection and network tools) run at once across the site, so a busy reply means try again in a few seconds.
- Tool results are capped at 60,000 characters and resources at 1 MiB; a larger resource names the tool that pages through it.

### Not held

- Charges (mortgages and other security registered against a company)
- Insolvency notices, such as those published in The Gazette
- Shareholder lists, and shareholdings of 25% or less
- Sanctions lists
- Credit scores, payment records and county court judgments
- Officers' home addresses
- Figures from paper or PDF-only accounts (the filings are linked, not read)

Missing data is not proof of absence: say what could not be found or checked.

## Licence and attribution

The data is reused under the Open Government Licence v3.0 (https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/). When you present it, give this attribution: Contains public sector information licensed under the Open Government Licence v3.0. Source: Companies House. Every tool result carries the same in its `licence`, `licence_url` and `attribution` fields.

OpenCompanies is an independent project and is not affiliated with Companies House. The official register is the authoritative source: where anything here differs from it, Companies House's own entry takes precedence.

## Feedback

send_feedback lets an assistant send the people who run OpenCompanies a short note about these tools: something no tool could answer, an answer that was wrong or confusing, or an error that did not say what would work. Its description tells the assistant to show you the note and send it only once you agree.

What is kept: the note, its kind, the tool it names, the client's name and version, the protocol and server versions, and the time. Never your IP address: only a keyed hash of it, to limit each address to 10 notes a day. A note holding an email address, an IP address or a web address with a query string is refused. Notes are read only by the people who run OpenCompanies, and deleted after 365 days.

## OpenCommons

OpenCompanies is one of the OpenCommons sites. Their MCP servers keep one contract (identity, paging, results, errors and feedback), so an assistant connected to more than one finds the same conventions in each. Where a record has a counterpart on another of the sites, its result links to it under external_links.

- OpenCharities, UK charities from the three regulators' registers: England and Wales, Scotland and Northern Ireland: https://opencharities.uk/mcp
- OpenPostcodes, every live UK postcode from the ONS Postcode Directory, with its location, geographies and nearest services: https://openpostcodes.uk/mcp
- OpenProperties, residential property sales in England and Wales from HM Land Registry's Price Paid Data: https://openproperties.uk/mcp

