How to get company family trees?

Hi,

Apologies for my ignorance as I’m a newbie to this API, and also fairly new to Python.

I’m trying to fetch family trees using this API, which means, input a list of company names and returns its parent company and/or child company, if applicable.

Is this API capable to achieve my goal? If so, could you please give me some idea how to do it?

Many many thanks.

There is no concept of parent/child companies, so no, this API will not help you achieve your goal.
Companies can be corporate officers of other companies.
Officers are available through the API.
Hope this helps.

I believe I have asked about the above quote in a new discussion.
How do you find what companies that company is an officer of ? I can see it for a person officer using list appointments ?

many thanks.

You just need to look that company up as an officer (not a company) and (if they are an officer of any companies) then lookup the appointments of that officer.
Hope that helps

Hi,
Im trying to find out if it is possible to get the parent company information. Ive found this thread that states you cannot using the API. However, listed under the company profile resource section of the API it mentions parent companies:

branch_company_details.parent_company_name string Parent company name.
branch_company_details.parent_company_number string Parent company number.

Do these fields work and if so, do you have examples of companies that it works with?

Thankyou

Emma

There are actually a couple of ways in which you may be able to trace the relationships between companies using the API:

  1. Foreign or overseas companies (company numbers starting FC… / NF… / SF…) should have an endpoint available listing their UK Establishments (company numbers starting BR…). In turn, the company profile of the UK establishments should reference the “parent” overseas company.
  2. Officers and PSCs of companies can be companies / corporate entities themselves. There is an identification member in the data returned when using the officer or PSC endpoint which may contain useful details of the company allowing you to look this up.
  3. As an alternative to the company officer endpoint you can start from the perspective of the corporate officer using the Officer Appointment endpoint to list companies it’s an officer of.

1) UK Establishments
You were referring to (1) in your question - in general I’ve found that data here is populated and correct. Examples:

The UK Establishment resource normally returns a list with one or more UK Establishments. Note that there can be none however - and UK establishments can be listed but closed.

SF001035 (on Beta) - in the UK Establishment resource note the company_number field which refers to this company number (BR010414). If you view the company profile for BR010414 you’ll see a branch_company_details member with data:

“branch_company_details” : {
“business_activity” : “string”,
“parent_company_name” : “string”,
“parent_company_number” : “string”
},

(On Beta CH made it so these are hyperlinked - so I think you can trust these fields e.g. they’re generated by CH rather than user-populated).

Other examples:
FC022268
FC003748 - 3 UK establishments
FC031853, FC032069, FC026254

Example foreign company with no UK establishments: NF001560

2) Company Officer / Company PSC
Unfortunately the relevant fields are not compulsory and data here appears to be user-entered and not validated. Thus you may get a company number but:
a) it may not be correctly formatted so you shouldn’t just plug it into e.g. company profile endpoint. (Example /company/01047315/officers - note corporate company IDs missing zeros). You should validate this against company number format (note - linked info now not the current complete list).
b) it may not be for the Companies House registry. There is a parent registry field but again users can put anything in here…

Less accurately, you could use the company search endpoint to look up a company name given here - but again you’ve got a matching problem - especially considering the use (or not) of different identifiers such as “limited”, “ltd”, “plc”, “corp”, “GmBH”, “Cie” …

PSCs
a) There seem to be some issues with people classifying things as “legal person” incorrectly - mostly seems to apply to individuals but I think I’ve seen some companies so categorised also.
b) Rarely, you may find more than one entry for a unique PSC

3) Officer appointments
This initially seems promising as links from an officer to a company should work correctly. However there are other issues here:
a) The “officer ID” does not relate to any other data (no, no to “company officer”).
b) There may be multiple entries in officer appointments for the “same” entity.
c) Some corporate officers are incorrectly categorised as individuals.

Update: here’s a neat example of using the api for generating graphic representations of company relationships (using R).