Directors and Significant Shareholders


We wanted to use the Companies House API to find who are the major shareholders (25% or more) of a company as well as the directors. We’re mostly interested in
First Name, Last Name and Date of Birth for everyone that fits that description.

The difficulty here is that there doesn’t seem to be a single API to get that information. I was hoping that you could clarify whether our approach was correct
or if we had missed something.

We didn’t consider the register API approach, due to having to then make one API call per individual which seems inefficient but also still requires deduplication.

As a result, we felt that the best approach was to call both the
Companies House Public Data API: Company Officers API, and only keep items that are of officer_role “Director”.

Then call the
Companies House Public Data API: List the company persons with significant control API, and only keep people who have a nature of control of value:

  • ownership-of-shares-25-to-50-percent
  • ownership-of-shares-50-to-75-percent
  • ownership-of-shares-75-to-100-percent

And finally, deduplicate the results coming from both APIs since a person can appear in both the director API and the person with significant control API.

That seemed a little convoluted, so we wanted to check with you if this was the right approach or if there was a better way. If there was a better way, would you be able to point us in that direction please?

Best Regards,
Thomas Badie

Welcome - as far as I’m aware that is the only way. Companies House is primarily a “recorder” - their purpose is to hold and make available what people send them. So they have an in-built bias against much data unification or processing - it’s the law! Apparently they maintain the directors and the PSCs (so major shareholders etc.) as independent data sets.

You can possibly see this since the form to register a company collects directors and PSCs in two different sections of the form without cross-reference. Like many large / older organisations I think Companies House is closer to “paper plus” than you might think!

We do something similar to your suggestion. Of course, de-duplication is imperfect especially as in the vast majority of cases there is no day in the date of birth field, and of course “service addresses” mean that the address may not be very helpful here.

When you say “register API” are you referring to the Registers endpoint and the Company Register resource? As far as I know only a small percentage of companies choose to keep their registers on the public register in this way. If they do of course you do also get the day part of date of birth (via the Officers Endpoint and passing the register_view parameter). (No - I don’t know why Companies House make it so you have to be specific which register type either - presumably something to do with their internal structures).

(Further complications - at least in the past there could be other “multiple data represents the ‘same’ individual or entity” cases. (You can explore this by e.g. using the appointments API / Companies House website.) I’m not sure exactly how Companies House own rules work - what they categorise as a “separate” entry. However I think this is not common, although I don’t have numbers on this. It may not matter for some purposes I guess).

Hi voracityemail,

Thanks for your answer! It’s unfortunate that this is the only way, but at least I can now go for it knowing that I haven’t missed anything obvious that would have saved us time.

For the register, I meant this API.. Good to know that it was a dead end as well.

Thanks again :slight_smile:

Hey, going through this myself and thought of a similar procedure (the rate limit is so annoying!) but was wondering what your method for deduplication was?