UK Company Register Monthly Changes
Pricing
from $2.50 / 1,000 results
UK Company Register Monthly Changes
New UK companies, strike-offs, liquidations, dissolutions and address, SIC and name changes from the Companies House monthly snapshot.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Mastazee Data Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
The UK company register as a monthly change feed. Instead of downloading and searching a 5.7-million-row file, get the companies you care about as rows: who was just incorporated in your sector and area, who entered strike-off, liquidation, administration or receivership this month, who dropped off the register, who moved office or changed SIC code or name, and whose accounts just became overdue. Everything comes from the official Companies House monthly snapshot, which is free and needs no API key.
Use it to:
- Find new-business leads. Companies incorporated last month, filtered by SIC code (for example 62 for software), postcode area (EC, M, LS) and company type. Accountants, banks, software vendors, insurers and formation-agent competitors all start here.
- Find distress signals. Companies that entered strike-off, liquidation, administration or receivership since last month, or whose accounts have just gone overdue: leads for insolvency practitioners, debt purchasers and credit-risk teams, and an early warning for suppliers and landlords.
- Monitor a patch. Schedule it monthly with the monitor switch on: each month it delivers that month's events once and then does nothing until the next snapshot is out.
Tested on 27 October 2026 on the Apify platform against the real Companies House snapshots: new mode with the default input returned 500 companies (of 68,766 matches) in about 3 minutes; a changes run comparing September with October 2026 delivered 2,000 events in about 10 minutes, and three sampled events (a strike-off proposal, a liquidation and a name change) matched the public register exactly.
Two modes
| Mode | What it does | Typical run |
|---|---|---|
new (default) | One pass over the latest snapshot. Keeps companies incorporated in a window (default: last calendar month) and your filters. Newest first. Optional "accounts overdue" and "confirmation statement overdue" filters. | About 3 minutes |
changes | Compares the latest snapshot with the previous month's and returns one row per event. | About 10 minutes when capped by maxResults; 20 to 30 minutes for a whole month (reads two 494 MB files) |
Events in changes mode (event_type):
| Event | Meaning |
|---|---|
new_company | On the live register now, not in last month's file. The description says whether it is newly incorporated or was restored or re-registered |
entered_strike_off | Status moved to "Active - Proposal to Strike off" |
entered_liquidation, entered_administration, entered_receivership, entered_voluntary_arrangement | Status moved into that class (the many spellings the register uses are mapped; the raw status is kept) |
dissolved_or_removed | In last month's file, not in this one: dissolved, struck off, converted or otherwise removed. The register file only holds live companies, so removal is inferred. The row shows last month's values |
registered_office_postcode_changed | Registered office postcode differs; previous_postcode is filled |
sic_changed | The set of SIC codes differs; previous_sic_codes is filled |
name_changed | Company name differs; previous_company_name is filled |
accounts_became_overdue | Accounts were due before the snapshot date and were not overdue on last month's snapshot (Active and strike-off companies only) |
A company can produce several rows (for example a liquidation and a postcode change). Volumes are large: in September to October 2026 the file showed about 88,000 strike-off proposals, 54,000 removals, 62,000 postcode changes and 59,000 newly overdue accounts. Pick events, add filters and set maxResults.
Example input
New incorporations in software, in London's EC and WC postcode areas:
{"mode": "new","incorporationWindow": "last_month","sicPrefixes": ["62"],"postcodes": ["EC", "WC"],"maxResults": 25}
Monthly distress feed for one sector, delivered once per month:
{"mode": "changes","events": ["entered_strike_off", "entered_liquidation", "entered_administration", "dissolved_or_removed"],"sicPrefixes": ["41", "42", "43"],"maxResults": 5000,"onlyNewResults": true,"stateKey": "construction-distress"}
Companies with overdue accounts, any age (set the window to any):
{ "mode": "new", "incorporationWindow": "any", "accountsOverdue": true, "minOverdueDays": 90, "postcodes": ["M"], "maxResults": 1000 }
Example output
One changes row (from the real September to October 2026 run, trimmed of empty fields):
{"company_number": "16621446","company_name": "1 FIRST STREET LTD","event_type": "entered_strike_off","event_description": "Status changed from 'Active' to 'Active - Proposal to Strike off'","snapshot_date": "2026-10-01","previous_snapshot_date": "2026-09-01","status": "Active - Proposal to Strike off","previous_status": "Active","company_type": "Private Limited Company","incorporation_date": "2025-08-01","company_age_days": 426,"sic_codes": [{ "code": "62012", "description": "Business and domestic software development" }],"post_town": "LONDON","postcode": "EC1V 2NX","postcode_area": "EC","postcode_district": "EC1V","accounts_next_due": "2027-05-01","confirmation_statement_next_due": "2026-08-14","confirmation_statement_overdue_days": 48,"source_url": "https://find-and-update.company-information.service.gov.uk/company/16621446"}
Fields
| Field | Meaning |
|---|---|
company_number, company_name | As on the register. For removed companies, the name from last month's file |
event_type, event_description | One of the events above, or new_company / company_record in new mode (company_record when the window is "any date") |
snapshot_date, previous_snapshot_date | The snapshot read, and the one it was compared with (changes mode only). A snapshot dated 2026-10-01 holds data to the end of September |
status, previous_status | Raw register status. previous_* fields are filled only where the value changed (always, for removed companies) |
company_type, country_of_origin | Raw register values |
incorporation_date, company_age_days | ISO date; age in days on the snapshot date |
sic_codes, previous_sic_codes | Codes with descriptions; previous codes as a list of codes |
address_line1, address_line2, post_town, county, country, postcode | Registered office. Street lines are left out unless you switch includeStreetAddress on (off by default) |
postcode_area, postcode_district | EC and EC1A for EC1A 1BB; null for foreign or malformed postcodes |
previous_postcode, previous_company_name, name_changed_on | Filled by the matching event; name_changed_on comes from the former-names list when it matches |
previous_names | Former names with the date each was changed |
accounts_category, accounts_next_due, accounts_last_made_up | From the accounts block; blank or implausible dates are null |
accounts_overdue_days, confirmation_statement_overdue_days | Days past the due date on the snapshot date; null when not overdue or unknown |
outstanding_charges | Number of outstanding mortgages/charges; null when the file is blank |
source_url | The company's page on the official Companies House service. The Actor only links to it and never fetches it |
snapshot_url | The snapshot file the row came from |
Monitoring
Turn on onlyNewResults and give each watch list a stateKey. The Actor remembers which snapshot (or month pair) it delivered for that key, in a named key-value store (uk-company-changes-state) in your Apify account.
- Each query has its own memory. The state key is your
stateKeyplus a fingerprint of the mode, events, filters and incorporation window, so two schedules with different filters can share astateKeywithout overwriting each other. The run summary shows the key used (state_key). - Re-running in the same month finds that out with one cheap check and returns nothing, without downloading anything. When the next monthly file appears, the next run delivers that month's rows.
- Delivered rows are remembered after every batch the platform stores (1,000 rows at a time). If a run stops at
maxResults, hits its run-time limit, fails or is moved by Apify part-way, the next run in the same month delivers the rest without repeating (or charging for) rows already delivered. - One run per monitor at a time. A run that starts while another run of the same monitor is still working stops at once with
status: skipped_locked. The lock is a best-effort guard (two runs started in the same instant could both proceed), so don't schedule a monitor more often than its runs take. - Corrupted saved state is replaced and the reason is shown in the run summary (
state_reset_reason).
Companies House publishes within about five working days of month end, and the Actor looks at the real file addresses, so a weekly schedule with onlyNewResults on picks the new month up as soon as it exists.
Data source and attribution
Companies House Free Company Data Product ("Basic Company Data"), a monthly snapshot of every live company on the UK register. No key or registration is needed. Contains public sector information from Companies House.
Licence: the data is not published under the Open Government Licence and this Actor does not claim it is. Companies House says it places no rules or requirements on how information on the public register is used, that it is not responsible for how you use it, and that you are responsible for complying with data protection, copyright and other law (see Companies House data products). The Crown insignia may not be reproduced. This Actor is unofficial and is not affiliated with or endorsed by Companies House.
Personal data: the Actor outputs company facts only. The snapshot has no director, officer or shareholder data. Its care-of and PO box columns can contain people's names and are never read. Registered office addresses can be a director's home for small companies, so street lines are off by default (town and postcode only). Switch includeStreetAddress on only if your use is lawful, and apply your own data-protection checks before contacting anyone.
Data limitations (please read)
- It is a monthly snapshot. A company incorporated on the 15th appears about three weeks later, and the worst case is about five weeks. This is not a daily new-company feed.
- Removal is inferred. The file holds live companies only, so
dissolved_or_removedmeans "no longer in the file", which also covers conversions and other removals. - Status changes show end states. A company that went from Active to strike-off to liquidation within one month shows as
entered_liquidationonly. Strike-off proposals are signals, not facts: many are withdrawn. - No directors, shareholders or contact details. Not in the source.
- Overdue means overdue on the snapshot date, using the due dates in the file. Implausible due dates (before 1990) are treated as unknown.
- Status labels are inconsistent at source (for example "ADMINISTRATION ORDER", "RECEIVERSHIP", "Live but Receiver Manager on at least one charge"). They are mapped to the events above and the raw label is kept in
status. - Companies House says the product "will not be supported". The format or host could change; the Actor fails with a clear message if the header changes.
- Results come in a fixed order, so with
maxResultsyou get the newest incorporations innewmode and the first events in company-name order inchangesmode. newmode needs the right window for overdue lists. Recent incorporations are never overdue: useincorporationWindow: anywith the overdue switches.
Running time and cost
The file is a single compressed stream, so every run reads the whole ~494 MB download (two of them in changes mode). Measured on the Apify platform on 27 October 2026 at the default 1,024 MB:
| Run | Result | Time | Platform cost | Peak memory | Peak disk |
|---|---|---|---|---|---|
new, default input | 500 of 68,766 matches | 3 min 13 s | about $0.008 | 94 MB | 0.49 GB |
new, SIC 62 monitor, maxResults 2,000 | 2,000 of 6,730 matches | 2 min 47 s | about $0.006 | 100 MB | 0.49 GB |
changes, all events, maxResults 2,000 | 2,000 events | 9 min 51 s | about $0.029 | 236 MB | 1.06 GB |
In changes mode most of the time (about 9 minutes) goes into indexing last month's file, whatever your filters; the comparison itself is fast. A changes run that reads the whole month (no maxResults cap reached) takes longer, roughly 20 to 30 minutes at 1,024 MB (estimated from the measured compare speed, not measured end to end). Apify gives CPU in proportion to memory, so running with 4,096 MB makes the indexing about four times faster for about the same compute cost. Disk space also grows with memory: at 1,024 MB the run had 2.15 GB free and used 1.06 GB at most; the Actor checks free disk before downloading and stops with a clear message if there is not enough.
Volume note: with no filters, a month has far more events than any one run should deliver (about 4 in every 100 companies change in some way). Use events, sicPrefixes and postcodes to keep runs to what you need; maxResults is capped at 200,000 per run.
Troubleshooting
- "No Companies House snapshot was found". The download service did not answer for the last four months of file names. Check https://download.companieshouse.gov.uk/en_output.html and try again.
status: no_previous_snapshot. The month before the snapshot is not online (older files stay online about a year). Choose a more recentsnapshotMonth.status: already_delivered. The monitor already delivered this month for that state key and filters. Use a newstateKeyto start over.- No rows in
newmode with overdue filters. See the note above: setincorporationWindowtoany. - "format changed". Companies House changed the file's columns; report it and the Actor will be updated.
- Run took longer than expected.
changesmode reads two large files; raisemaxRuntimeSeconds(a run that hits it outputs what it found and sayspartial).
Known restrictions
- Up to 200,000 rows per run. The run holds them in memory (about 0.5 GB at the maximum).
snapshotMonthaccepts 2015-01 or later, but Companies House keeps only the more recent files online (about a year was confirmed); an unpublished month gives a clear error.changesmode compares consecutive monthly snapshots only (the month named bysnapshotMonth, or the latest, and the month before it).- Postcode filters understand UK areas and districts (EC, EC1A); foreign postcodes cannot be matched.