As @ash says you can get all kinds of things in Companies House data, Nulls are possible, missing fields (used to be) common. It’s definitely worth parsing what you get back - although things have standardised over the years!
The list of
company_type values you can get back is in the documentation here but it might also be worth checking the
company_type “enum constants” as those are the “source of truth”. (You can also find the textual version of each identifier there). The documentation can lag behind. You can also search for examples if you need using the advanced search (online version here) where you can specify company type and / or subtype.
For what it’s worth we deal with this by checking the company type against the list as given in the enum constants. We have a list of what data is expected and what is not. We also have a list of what other endpoints should be available for a particular type. To cope with any sudden changes we also check the
links member as this should list what is and what isn’t available (again - I’d check and not rely on this). However we have a little more information since in our process we usually obtain the company profile resource - which also gives the
By the way the text that Companies House shows to indicate the place where more data may be found is in the enum constants also - the
partial_data_available constant. This used to be returned as part of the company profile resource. It doesn’t appear to be in the latest documentation however and doesn’t seem to be sent now.