UK companies · Director search

UK director search

Companies House publishes a separate index of officers in addition to its index of companies. Searching a person by name returns every UK registration the officer is or has been attached to: directorships, secretaries, current and resigned. Most KYB tools do not surface this cleanly. OpenRegistry's search_officers and get_officer_appointments tools expose it directly, on the same free tier as the rest of the UK surface.

The two questions, two tools

"Who runs this company?" is a different question to "what other companies does this person run?" Companies House answers both, but through different endpoints and different identifiers.

Question Tool Returns
Who runs this company? get_officers(GB, <company_id>) Every officer of one company. Active and resigned. Each carries an officer_id you can feed into the next call.
What other companies does this person run? get_officer_appointments(GB, <officer_id>) Every UK appointment that officer has ever held: company id, role, start, end, status. Includes resigned and dissolved companies.
Who is this person, by name? search_officers(GB, <name>) Officers matching a name string. Returns officer_ids you can feed into the appointments call.

Why officer-id resolution matters

Two different "John Smith"s on Companies House are two different officer ids. So are the same person's old and new entries if they ever had a title or address change indexed differently. The officer id is the only stable handle.

Searching "Tom Blomfield" on the CH officer search returns three separate officer ids: founder of Monzo, an unrelated company secretary in Birmingham, and a third who shares the name. Picking the right id before pulling appointments is the part most aggregators get wrong.

Worked example

// 1. Find the officer ids by name
search_officers({ jurisdiction: "GB", query: "Anne Boden" })
// → multiple officer_ids; pick the one whose company history matches Starling

// 2. Pull the full appointment history
get_officer_appointments({
  jurisdiction: "GB",
  officer_id: "<Anne Boden's officer id>"
})
// → list of every UK appointment: company, role, appointed_on, resigned_on, is_active

The agent now has every company on which the named director has ever sat. From there it can run any of the other UK tools (profile, PSC, filings, charges) on each of the related companies in turn.

Where this is useful

Beyond UK. Cross-company director tracing is also live for France (RNE) and Taiwan (GCIS). Cyprus and Norway expose officer lists per company but not the inverse "every company this person sits on" index. list_jurisdictions tells you which surface each registry currently supports.

What CH does not publish

Director residential addresses are suppressed from the public register under the Companies (Disclosure of Address) Regulations 2009. CH returns a service address, not a home address. We forward the same.

Directors of overseas (FC-prefix) registered branches generally do not file local appointment data, since branch reporting falls under the home jurisdiction. Querying their UK CH record returns the branch registration only.

Try it

Connect Claude Desktop to https://openregistry.sophymarine.com/mcp and ask: "List every UK company that Tom Blomfield has ever been a director of." The agent runs the three calls above and returns the answer.