companies-house

v0.1.0Verified publisher
Report a problem

Searches the UK Companies House register: companies, their status and office, officers and controlling owners

Run

Through ot mcp, an agent calls run_tool with this; ot asks you before anything that goes online or touches a target. Set it up: ot mcp install claude (or cursor, vscode, codex, gemini).

{"tool":"osintverse-community/companies-house"}

Or just say: "Run osintverse-community/companies-house on … with OTInstaller." The registry's read-only MCP server at api.otinstaller.com/mcp can find tools without installing anything.

ot run osintverse-community/companies-house --format table
ot install osintverse-community/companies-house

Docker image in a read-only container · talks to api.company-information.service.gov.uk · needs COMPANIES_HOUSE_API_KEY · up to 2 min. The first ot run installs the tool after asking once. Drop --format table for JSON.

Don't have ot? Install it in one line
curl -fsSL https://get.otinstaller.com/ot | sh
What this script does
  1. Downloads the latest ot release for your machine from GitHub Releases.
  2. Checks its SHA-256 against checksums.txt, and the Ed25519 signature on that file against the key built into the script.
  3. Puts ot in /usr/local/bin or ~/.local/bin. Nothing else is written. Read the script.
irm https://get.otinstaller.com/ot.ps1 | iex
What this script does
  1. Downloads the latest ot release for your machine from GitHub Releases.
  2. Checks its SHA-256 against checksums.txt, and the Ed25519 signature on that file against the key built into the script.
  3. Puts ot in %LOCALAPPDATA%\Programs\ot, and adds it to your PATH. Nothing else is written. Read the script.
  • Pinnedimage sha256:0bcb0bee…0e96cf. The same bytes on every install; ot pulls by digest, never by tag.
  • Signedby https://github.com/osintverse-community/companies-house/.github/workflows/otinstaller-release.yml@refs/heads/main via token.actions.githubusercontent.com, verified by the registry on 24 Oct 2026. ot checks the same identity before every install and refuses another signer.
  • Scanned24 Oct 2026: 0 critical, 44 high, 63 medium, 62 low vulnerabilities; 0 embedded secrets, 0 malware heuristics; SBOM with 97 packages.
  • Workssmoke test passed on 24 Oct 2026 (exit 3 in 1.8 s, offline sandbox); the nightly health check has not run yet.
  • Backed upa copy of this image is on the registry's mirror. If the original registry refuses it, ot pulls the same digest from the mirror and checks the same signature.
  • Reviewedosintverse-community is a verified publisher: the registry confirmed who runs it, and a person reviewed its first release against the acceptable-use rules.

From the community

Issues →

Not health-checked yet; 0.1.0 came out today; nobody has said yet whether it works.

0.1.0 is in its first week. Nobody has said whether it works yet.

Used 0.1.0?It's broken for me

What you get back

Result envelope →
{
  "envelope": 1,
  "tool": "osintverse-community/companies-house@0.1.0",
  "runtime": "docker",
  "input": {},
  "started_at": "2026-10-21T09:00:00Z",
  "duration_ms": 4100,
  "exit_code": 0,
  "entities": [
    {
      "type": "organization",
      "value": "Example Ltd"
    },
    {
      "type": "person",
      "value": "Jane Doe",
      "source": "gitlab.com"
    },
    {
      "type": "location",
      "value": "51.5074,-0.1278",
      "attrs": {
        "city": "London"
      }
    }
  ],
  "warnings": []
}

Every tool returns this shape, shaped here from what this tool declares it finds. --format table to read it; ot extract and ot auto to continue.

companies-house

Searches the UK's Companies House register by company name, or reads one company by its number. A search lists matching companies with their number, status and registered office. A company number gives its full profile (name, status, type, incorporation and dissolution dates, SIC codes, registered office), its officers (directors and secretaries, with role, appointment and resignation dates, occupation, nationality and month and year of birth) and the people or companies with significant control over it. Uses Registrum's companies-house client for the free Companies House public data API. Only the public register is read, so the company is not contacted.

ot run osintverse-community/companies-house --number 00445790

Inputs

Give company or number.

Input Required
company one of these Company name to search for
number one of these Company number; leading zeros can be left out
limit no Most companies a name search returns: 20 by default, up to 100

Keys

COMPANIES_HOUSE_API_KEY, set with ot keys set COMPANIES_HOUSE_API_KEY: a free REST API key for the live environment from https://developer.company-information.service.gov.uk/. Without the key the tool exits with code 3.

Notes

Companies House allows 600 requests every five minutes per key, and a company number takes three. The officers and owners are people as the public register lists them, so ot and agents treat a run as collecting personal data and ask before running it.

Next steps

Search for the same company in other registers with osintverse-community/gleif, or find its staff's addresses with osintverse-community/hunter-domain-search.

Development

pip install companies-house==0.2.1
python -m unittest
ot validate

Releases are built, signed and published by the otinstaller release workflow (Actions tab, with the version to release).

License

MIT

What next

companies-house finds organization, person, location. Tools that take those:

organization → 6 toolsperson → 2 toolsot auto, with a saved result

Other company tools

All company tools →

Alternatives to companies-house that also take a company; ot auto runs every installed one on the same value.

osintverse-community/asnmap

Maps an organisation name to its autonomous systems and the network ranges they announce

Takes company → finds ip, organization
Key required · Docker
Worked todayVerified publisher

osintverse-community/handelsregister

Looks up a German company's commercial register entry through handelsregister.ai: officers, filings, financials

Takes company → finds document, location, organization, person
Key required · Python wheel
Not health-checkedVerified publisher

osintverse-community/gleif

Searches GLEIF's register of Legal Entity Identifiers for a company: LEI, legal name, addresses and status

Takes company → finds location, organization
No key · Docker
Not health-checkedVerified publisher

osintverse-community/sec-edgar

Finds a company in the SEC's EDGAR filings by name or ticker: CIK, industry, addresses and its latest filings

Takes company → finds document, location, organization
Key required · Docker
Not health-checkedVerified publisher

osintverse-community/opensanctions

Screens a person's or company's name against OpenSanctions: sanctions lists, politically exposed persons, watch lists

Takes company, name → finds organization, other, person
Key required · Docker
Not health-checkedVerified publisher
Esc

Try

↑ ↓ to move↵ to open