SIC Code and date of filing combination


I am very much a newbie to CH API, and I would please like to know simply if it’s possible to search all companies with a specified SIC Code, and then return results only where a filing has been made on a specified date?

I have searched through the forum and doesn’t seem clear whether the advanced search by SIC Code has been fully implemented, and I am also not sure whether the second part of the search is possible either. As I say, I am a beginner at this, so any help very much appreciated!

Many thanks in advance.

We don’t use the advanced search much so perhaps someone will confirm, but as far as I’m aware the Advanced Search has a SIC code search and that works as is documented in Companies House documentation and on the website. (Always worth a check on this forum in case of specific issues / outstanding “features” though!)

When you say:

What do you want to achieve? The reason I ask is the filing history information is (at least as presented in the API) a separate dataset and is not searchable in this way. You can request it for a given company and filter the list of filings by category. You can’t search by date. So essentially you would need to separately request this for each company in your companies search, retrieving data by “pages” (Companies House only gives you a limited number of results per request) until you got something before a particular date or reached the first filing.

There is an accounts filings bulk dataset. If it’s specifically those kinds of filings you’re interested in you could get that and search it. However I’m not aware of any bulk dataset for all filings.
The Advanced Companies Search returns a list of companies. If you want basic company information (formed on / status / address etc) that’s your information there of course.

Hope this helps.

1 Like

Thanks voracityemail, appreciate the response.

I will check the links you sent for more on the SIC code search. I’d seen it was something that was introduced over last couple of years but wanted to be doubly sure it’s been fully developed, so thanks for that.

With regards to your question, the main thrust of what I am trying to achieve would be to return results for any company (just a list of company names or company codes) which matches my specified SIC code which has also had a filing for “Notification of [X] as a person of significant control…” on a given date (or within a specified range of dates, such as a week). So, it’s not the accounts I am looking for, nor all filing types, although I do note there is also a PSC bulk dataset on the bulk dataset link you included, could this be useful here?

So, boiling it all down, I guess the question is: could a script be created that deals with what I’m trying to achieve, or would the inability to search by date be an insurmountable obstacle (but bulk datasets could be a solution)?


Sounds like you’ve got a route there. So search companies with Advanced search to get a list. Or do so offline using company bulk data - I believe you get up to 4 SIC codes in that data set.

I believe you can filter Filing History by the category of persons-with-significant-control (not documented by Companies House so verify this yourself). However if you just want PSC notification dates then using the PSC data directly seems more efficient.

So either a) look up the PSC list for each company and use the notified_on member (when Companies House was notified of the PSC) b) or use the PSC bulk data for this purpose so you can do this offline. IIRC the bulk PSC data is (almost?) the same as the format you get from calls to the API endpoint.

Pros and cons. If you do this offline there’s no need to bother with connecting to the API, dealing with it, having rate limits to manage etc (you could be looking at a LOT of matches, you’ve only got 600 calls you can make each 5 minutes). However offline instead you’ve got very large data files and these will be e.g. up to a month old for company data or a day old in the case of the PSC data.

Good luck.

Thanks very much, that makes it much clearer and gives me options I didn’t appreciate were possible.

I’ll see how I get on!