Information missing between company and officers

Good Morning,

I’m currently working on utilising your API, while testing them, I encountered a question regarding data.

These are the calls that I used for my test:

GET /company/{company_number}/officers
GET /officers/{officer_id}/appointments

In particular. I have used this company and officer:

  • Douglas Andrew Keith - -OB2N_JXKRoDbJ9nJuk8UsFibGU

When I used the first call:

GET /company/01907094/officers

I received information about officers, including Douglas Andrew Keith, but some details, such as the date of birth, were missing.

However, when I made a specific request for him using the second request:

GET /officers/-OB2N_JXKRoDbJ9nJuk8UsFibGU/appointments

I received all the information, including the date of birth. It seems that the relationship between a company and its officers doesn’t provide all the information I need.

To be able to use your API effectively, I would like to make a separate request for each officer within a company to obtain all the necessary information.
We won’t use this many requests every time but it will give us enough room so to not be blocked.

Thank you for your kind support and best regards

Hi @ it12
The reason you didn’t’ get his date of birth when you made the first call using
GET /company/{company_number}/officers is because his officer role is”secretary”. Form AP03-Appointment of secretary does not require the date of birth to be provided for the role of secretary.

When you made the second call using GET /officers/{officer_id}/appointments you would have noticed that he has 48 appointments. His officer role for most of those appointments is “director” and as such his date of birth would have been provided because it is required on form APO1 – Appoint a director.

If you wish, you can make another call for WARNER BROS. PRODUCTIONS (BOULET) LIMITED using GET /company/{company_number}/officers and you will get his date of birth because he is a director of that company.

Here is the JSON snippet:
“officer_role”: “secretary”,
“appointed_on”: “2004-06-18”
“officer_role”: “secretary”,
“appointed_on”: “1996-05-03”,
“links”: {
“self”: “/company/01907094/appointments/L9FGXOaIe3g6uhSs61lhZ5tcyOs”,
“officer”: {
“appointments”: “/officers/E57iF50ngbsEur-krQ-V2Eza1zY/appointments”
“resigned_on”: “2004-06-18”,

Thank you for your response. As you’ve recommended, I understand that I need to make multiple distinct calls to retrieve each officer’s date of birth. However, I’m concerned that doing so might exceed the rate limit. Is it possible to increase my rate limit to allow me to access the birthdates of all the officers?

If you want to access dates of birth for all officers, you’ll need to use the bulk data product provided by companies house. The REST API is not suitable for obtaining a complete data set.
They can provide you with a file containing all officers if you comment on this thread: Can we bulk download Officer/Director Data?

1 Like

Thank you! I replied on the thread.