This is regarding Company Name “VECONSTRUCTION LIMITED” (Company Number = ‘07064445’ ). . While I am searching for this company in “https://www.insolvencydirect.bis.gov.uk/IESdatabase/viewdirectorsummary-new-sub.asp” , on clicking on “Click here to review”, I can see the date of birth = “5 / 11 / 1979”. While fetching the same from API, I am getting the date of birth as : {‘month’ 8, ‘year’ 1988}
Could you please look into this issue?
Following code I am using to get the data through API :
"
import json
import requests
import os
import pandas as pd
api_token = os.environ[‘COMPANIES_HOUSE_API_KEY’]
api_url_base = ‘https://api.companieshouse.gov.uk/’
def get_officer_list(comp_number, number_of_results=2):
“”“Returns the list of officers for the specified company”“”
query_url = ‘{}company/{}/officers’.format(api_url_base, comp_number)
parameters = {‘items_per_page’: number_of_results}
response = requests.get(query_url, params=parameters, auth=(api_token, ‘’))
if response.status_code == 200:
return json.loads(response.content.decode(‘utf-8’))
else:
return None
def get_natural_officer_disqualification(natural_officer_id):
“”“Returns the natural officer disqualification details using officer id”“”
query_url = ‘{}disqualified-officers/corporate/{}’.format(api_url_base,natural_officer_id)
response = requests.get(query_url, auth=(api_token, ‘’))
if response.status_code == 200:
return json.loads(response.content.decode(‘utf-8’))
else:
return None
def get_corporate_officer_disqualification(corporate_officer_id):
“”“Returns the corporate officer disqualification details using officer id”“”
query_url = ‘{}disqualified-officers/corporate/{}’.format(api_url_base,corporate_officer_id)
response = requests.get(query_url, auth=(api_token, ‘’))
if response.status_code == 200:
return json.loads(response.content.decode(‘utf-8’))
else:
return None
company_number = [‘07064445’, ‘05922904’]
result_natural =
result_corporate =
for num in company_number:
officer_list = get_officer_list(num)
print(‘Officer List:’, officer_list) #
‘’‘Get the officer appointment URL for the first officer in the officer list’‘’
if officer_list is None:
natural_officers_disqualifications = None
corporate_officers_disqualifications1 = None
else:
try:
officer_appointment_url = officer_list[‘items’][0][‘links’][‘officer’][‘appointments’]
print(officer_appointment_url)
officer_id = officer_appointment_url.split(‘/’)[2]
‘’‘Use appointment URL to get the officer appointment list.The number of results restricted to
2 which is customisable’‘’
print(“officer id is” + officer_id)
natural_officers_disqualifications = get_natural_officer_disqualification(officer_id)
print(‘natural:’, natural_officers_disqualifications)
corporate_officers_disqualifications1 = get_corporate_officer_disqualification(officer_id)
print(‘corporate’, corporate_officers_disqualifications1)
except:
natural_officers_disqualifications = None
corporate_officers_disqualifications1 = None
print(num)
print(‘Officer appointment list:’, natural_officers_disqualifications)
result_natural.append(natural_officers_disqualifications)
result_corporate.append(corporate_officers_disqualifications1)"
For example for company number “07064445” the date of birth and address returned from API is different from what is there on “https://www.insolvencydirect.bis.gov.uk/IESdatabase/viewdirectorsummary-new-sub.asp” . Whereas for “05922904”, the date of birth and address returned from API is the same.
Could you please look into this issue ?
Also, is there any way to fetch the information under “Conduct” field in Disqualified Director Details through API call?
Thanks.