Companies House PSC Changes - UK Beneficial Owner Monitor
Pricing
from $0.005 / actor start
Companies House PSC Changes - UK Beneficial Owner Monitor
Watch UK companies for changes in persons with significant control: added, ceased and changed PSCs with old values, from the public Companies House register, no API key.
Pricing
from $0.005 / actor start
Rating
0.0
(0)
Developer
Michal Pšenčík
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Companies House PSC Changes
Check a watchlist of UK companies for changes to their persons with significant control (PSCs). The actor reads the public Companies House register pages. No API key or proxy is needed.
Each delivered row contains one company's current PSC list and its changes since the last successful check in the same named watch. It is intended for small KYB and supplier-risk teams checking roughly 100 to 1,000 companies daily.
Input
{"companyNumbers": ["08892100", "00519500", "00445790"],"watchName": "default","onlyChanged": false,"includeCeased": true,"includeCorrespondenceAddress": false,"maxCompanies": 1000}
companyNumbers: required string list. Numeric values are zero-padded to eight characters; prefixes such as SC, NI and OC are uppercased and retained. Duplicate numbers are checked once. Invalid entries appear only in the free summary.watchName: defaults todefault. Reuse the exact name on subsequent runs to compare changes. A different name creates an independent baseline. Named stores persist across runs; do not run the same watch concurrently. Watch names are hashed into storage-safe names.onlyChanged: defaults to false. Set true to deliver only first checks and changes. Unchanged checks still use network requests but generate no item charge.includeCeased: defaults to true. False filters ceased PSCs frompscs, while complete history remains in watch state and relevant changes still appear inchanges.includeCorrespondenceAddress: defaults to false. Opt in only if you need these personal data.maxCompanies: defaults to 1,000 distinct valid companies per run, in input order. Zero removes this limit. The summary reports valid companies omitted by it.
Output and change detection
The default dataset contains billable company checks only:
companyNumber,companyName,sourceUrlandcheckedAt.pscStatus:has_pscif the register lists active or historical PSCs,exemptif it lists an exemption, orno_pscwhen it lists none and no exemption.exemptionIdspreserves the register's exemption element ids.activePscCountandactiveStatementCountcome from the header.pscs: kind (individual,corporateorother), name, status (activeorceased), notified and ceased dates, nature-of-control slugs and published individual or corporate fields. Birth dates areYYYY-MM; other dates areYYYY-MM-DD. Missing optional fields are omitted. On dissolved-company pages the header omits "active" and non-ceased PSCs have no status tag. These entries usestatus: activeto mean not recorded as ceased, which may be historical at dissolution; it does not mean the company is operating. Explicit ceased tags and dates are preserved.activePscCountandactiveStatementCountreport the corresponding non-ceased or non-withdrawn header counts on these pages.statements: the register's statement text, whether each statement is active, and publishednotifiedOnandwithdrawnOndates when present. Withdrawn statements are retained withactive: false.changeType:newfor the first check in this watch, thenchangedorunchanged.previousCheckedAtis null on the first check. First checks establish a baseline with emptychanges.changes:added,ceased,removed,control_changedordetails_changed, with PSCidentity(kind,name,notifiedOn),changedFields,oldValues,newValuesandpossibleCorrection. Added and removed entries include the full available new or old PSC; other changes include only changed fields. A missing side or removed field is null.
The HTML does not publish PSC ids. Identity is kind plus exact published name plus notification date.
An added entry paired with a ceased or removed entry sharing kind and notification date gets
possibleCorrection: true on both changes. This can indicate a renamed or corrected register entry;
these changes remain visible and are not silently merged. The flag is a heuristic, not a conclusion.
Company name, exemption and statement changes also set changeType to changed; changes describes
PSC changes only. Repeated identities on the same page are retained, including an active and a
ceased entry with the same kind, name and notification date. Change detection matches unchanged
occurrences first, then records of the same status, before comparing remaining occurrences.
Switching address inclusion alone does not create a detail change. Address changes
are compared only when both checks opted in. Added and removed records retain available addresses
when the current check opts in, even if the previous check excluded addresses. No identity-verification
dates are collected.
The free SUMMARY record in the default key-value store contains requested count, invalid entries,
duplicate count, companies omitted by maxCompanies, successful checks, separate notFound and
errored entries, counts by change type, rows stored, rows cut by a spending cap and HTTP requests
including retries and pagination. HTTP 404 results are notFound only, never dataset rows. Exhausted
request or parsing failures are errored only. Neither replaces the last successful baseline.
Watch state advances only after a row is stored, or after an unchanged onlyChanged check. A failed
push or spending-cap omission leaves the previous baseline, so the change can be reported again.
When delivery is blocked by a spending cap or the SDK signals the cap boundary, checking stops.
rowsCutBySpendingCap counts checked rows that were not stored; companiesSkippedBySpendingCap
counts the remaining selected companies that were not attempted. Their state stays unchanged.
A failure between delivery and state persistence can repeat a row on the next run. Exported results
are snapshots, not an authoritative real-time feed.
Price
$0.002 per company check delivered to the default dataset, plus $0.005 per actor start.
The platform bills the built-in apify-default-dataset-item and apify-actor-start events.
Quiet companies still produce useful current snapshots and are billed unless onlyChanged is true.
With the default three companies, the expected total is $0.011. The summary is free. Invalid numbers,
404s, errors and unchanged checks suppressed by onlyChanged have no item charge.
Source and limits
Requests use the Companies House public register.
They run sequentially at a maximum of one request per second, including retries and pagination.
HTTP 429 and server failures retry up to four times with exponential backoff and Retry-After.
Every request has a 30-second timeout. Pagination follows same-company ?page= links; missing or
inconsistent pages fail that company instead of replacing its watch with incomplete data.
Companies House publishes no rate limit for these HTML pages. The rate is deliberately conservative. HTML can change, and upstream outages may cause errors. Public-page access has been verified from a desktop connection; Apify datacenter access must be confirmed before publishing.
Personal data
PSC entries contain personal data. The actor outputs only published register information, with less collected by default: correspondence addresses are omitted unless opted in, birth dates remain month and year only, and identity-verification dates are excluded. Addresses are also omitted from saved watch snapshots by default. Opting out on a later run removes addresses from that company's next saved snapshot, but does not delete older datasets, backups or other watches.
As the user, you are the data controller under UK GDPR. You need a lawful basis to process PSC data, must keep it accurate by rerunning the watchlist, and must not use it for purposes the register does not support. Set appropriate access and retention for your datasets and named watch stores, including deleting them when no longer needed. This is factual product information, not legal advice.
See Companies House data-products guidance for the source's conditions of use. Public availability does not remove your data-protection obligations.