UK Company Change Monitor - Companies House watchlist
Pricing
from $0.02 / actor start
UK Company Change Monitor - Companies House watchlist
Watch a list of UK company numbers and get only what changed at Companies House each run - status, name, registered office, accounts, charges, officers, filings - with optional webhook POST.
Pricing
from $0.02 / actor start
Rating
0.0
(0)
Developer
FJ Banks
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
7 hours ago
Last modified
Categories
Share
UK Company Change Monitor — Companies House watchlist
Give it a list of UK company numbers — your customers, suppliers, competitors, prospects, portfolio companies — and on every scheduled run it checks Companies House and emits only what changed since the last run:
- status — e.g. active → in administration / liquidation / dissolved
- name change
- registered office move
- accounts filed, or newly overdue
- charges (mortgages) added, removed or satisfied
- officers appointed or resigned
- any new filing at all (category + description)
Optional webhook POST to Slack, Zapier, Make or n8n.
Who it's for
| Buyer | Use |
|---|---|
| Credit control / finance teams | A customer entering administration, or accounts going overdue — before it's a bad debt |
| Compliance / KYC / onboarding | Keep KYC current: directors, PSCs, addresses, status, without manual re-checks |
| Account managers / CS | A client changed name, moved, or took on new debt — a reason to call |
| Competitive intelligence | A rival raising a charge (funding), changing directors, or filing accounts |
| M&A / corp dev / search funds | Signals on a target list — new charges, director exits, filings |
| Suppliers on credit terms | Early warning on the businesses you invoice |
Quick start
- Free Companies House key: developer.company-information.service.gov.uk →
register an application → create a REST key (Live). Paste into
apiKey. - Put your company numbers in
companyNumbers(8 chars each, e.g.12345678orSC123456). - Choose
watch— which change types you care about (default: all). - Run once (it just records the baseline). Set
emitOnFirstSight: trueon that first run if you want anow_watchingrow per company to confirm the list. - Schedule it — daily is typical; more often for a hot watchlist.
Input
| Field | Type | Default | Description |
|---|---|---|---|
apiKey | string (secret) | — | Required. Companies House REST key (Live). |
companyNumbers | string[] | — | Required. Company numbers to watch. Spaces ignored, case-insensitive. |
watch | string[] | all | Any of status, name, address, accounts, charges, officers, filings. |
emitOnFirstSight | boolean | false | Emit a now_watching record the first time each company is seen. |
webhookUrl | string | — | POST {source, count, changes[]} each run. |
maxCompanies | integer 1–2000 | 500 | Cap per run. CH allows 600 requests / 5 min; this actor makes 2–4 per company. |
Output
One dataset item per detected change:
change_type | Extra fields |
|---|---|
now_watching | company_status (first-sight only) |
status_changed | from, to |
name_changed | from, to |
address_changed | from, to |
accounts_filed | made_up_to |
accounts_overdue | next_due |
charge_added | count, charge_ids |
charge_removed | count |
charge_satisfied | outstanding |
officer_appointed | officers (`"NAME |
officer_resigned | officers |
new_filing | category, description, date |
Every item also has company_number, company_name, detected_at.
Webhook payload
POST <webhookUrl>{ "source": "uk-company-change-monitor", "count": 3, "changes": [ /* dataset items */ ] }
How it works
For each company the actor builds a small snapshot (the watched fields from
the profile, charges, officers and latest-filing endpoints), stores it in a
named key-value store (uk-company-change-state, one record per company),
and on the next run diffs the new snapshot against the stored one. Requests per
company: 1 (profile) + 1 each for charges / officers / filings that are in
watch — so 2–4. A 429 stops the run cleanly and it resumes next time;
companies that error (e.g. an invalid number) are listed in RUN_SUMMARY.problems
and skipped, not fatal.
Local development
npm installnpm testecho '{"apiKey":"YOUR_KEY","companyNumbers":["00000006"],"emitOnFirstSight":true}' > storage/key_value_stores/default/INPUT.jsonnpm start
Deploy
$npm i -g apify-cli && apify login && apify push
Data source & licensing
Data from the Companies House Public Data API
(api.company-information.service.gov.uk), public register data under the
Open Government Licence v3.0.
Requires your own free API key.
Related actors
Part of a small suite of UK public-register monitors, same publisher, same pattern (incremental, no duplicates, webhook-ready):
- UK New Company Monitor — new incorporations by SIC / location
- UK Insolvency Notice Monitor — winding-up, administration, bankruptcy (The Gazette)
- UK Food Business Monitor — new food businesses + hygiene-rating changes (FSA)
- UK Public Tender Monitor — public-sector tenders by CPV / value (Contracts Finder)
Changelog
- 0.1 — Initial release: watchlist snapshots + diff across status, name, address, accounts, charges, officers and filings; per-company state; webhook; rate-limit-safe resume.