UK Company Officer Changes: Director & PSC Alerts avatar

UK Company Officer Changes: Director & PSC Alerts

Pricing

from $2.00 / 1,000 company checkeds

Go to Apify Store
UK Company Officer Changes: Director & PSC Alerts

UK Company Officer Changes: Director & PSC Alerts

Watch up to 2,000 UK companies for director appointments and resignations, PSC (owner) changes, registered office, status and filing changes from the official Companies House API. First run saves a baseline, later runs return only changes. For KYC, AML and credit monitoring.

Pricing

from $2.00 / 1,000 company checkeds

Rating

0.0

(0)

Developer

Offera Studio

Offera Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

What does UK Company Officer Changes do?

UK Company Officer Changes watches a list of UK companies (up to 2,000) and tells you when something changes at Companies House: directors appointed or resigned, persons with significant control (PSCs, the owners) added or ceased, changes to the nature of control, a new registered office, a change of company status (for example active to liquidation), and new filings (accounts, confirmation statements, charges). It uses the official Companies House Public Data API: no scraping.

How it works: the first run saves a baseline of each company (officers, PSCs, registered office, status, recent filings) in a named key-value store in your account. Every later run compares each company with its saved baseline and returns only the changes.

Who is it for?

  • KYC and AML teams: be told when a customer's directors or owners change, instead of re-checking everyone.
  • B2B credit risk and supplier monitoring: overdue accounts, a change of status or a new charge on a customer or supplier.
  • M&A and private equity watchlists: ownership (PSC) and board changes at targets and competitors.
  • Law firms and compliance consultants: scheduled change alerts for clients' counterparties.

How to use it

  1. Click Start with the default input: five large UK companies (Tesco, BP, Barclays, HSBC Holdings, Unilever). The first run returns one baseline saved row for each.
  2. Put your own company numbers (or names) in the list. Numbers are best: they are exact.
  3. Schedule the Actor (daily is typical). From the second run on, you get a row only for companies that changed. Connect the dataset to Slack, e-mail or a webhook.

You need a free Companies House API key (developer.company-information.service.gov.uk), or use the owner's default key if the Actor has one. Without any key, the Actor returns an explanation and three made-up sample rows.

What counts as a change?

changeTypes valueMeaning
officer-appointedA new director, secretary or other officer.
officer-resignedAn officer resigned (or an officer who was appointed and resigned between two runs).
psc-addedA new person or entity with significant control.
psc-ceasedA PSC ceased to be one.
nature-of-control-changedThe kind of control changed (for example shares from 25 to 50 percent to 50 to 75 percent), with added and removed.
registered-office-changedNew registered office address (from and to).
status-changedCompany status or status detail changed (for example active to liquidation).
name-changedThe company was renamed.
accounts-overdueAccounts became overdue.
confirmation-statement-overdueThe confirmation statement became overdue.
new-filingA new accounts, confirmation statement or charges (mortgage) filing; choose the categories with watchFilings.

Input example

{
"companyNumbers": ["00445790", "00102498", "SC123456"],
"companyNames": ["Example Holdings"],
"watchFilings": ["accounts", "confirmation-statement", "charges"],
"includeUnchanged": false,
"includeOfficerBirthMonth": false,
"monitorName": "customers"
}
FieldMeaning
companyNumbersCompanies House numbers. Leading zeros are added if you leave them out.
companyNamesLooked up with the Companies House search; the best match is used (active first, all words must appear in its name). The row says which name it came from.
watchFilingsaccounts, confirmation-statement, charges (default all three).
includeUnchangedAlso return a row for companies with no changes (off by default; on in the example input so a first try shows rows). You pay for every checked company either way.
includeOfficerBirthMonthSave and show officers' month and year of birth (never the day). Off by default.
monitorNameNames the key-value store (uk-officer-changes-<name>). Use different names for separate watchlists.
apiKeyYour free Companies House key (optional if the Actor has a default key).

Output example

The first run returns a baseline row per company. The example below was produced by a local run against a stand-in for the Companies House API with made-up data (a fictional company "EXAMPLE HOLDINGS PLC"): the live API needs a key that was not available when this README was written. The row format is the real one.

Baseline row (first run):

{
"companyNumber": "ZZ000001",
"companyName": "EXAMPLE HOLDINGS PLC",
"changeStatus": "baseline",
"summary": "Baseline saved: 3 current officers, 2 persons with significant control, status active.",
"changeTypes": [],
"changes": [],
"companyStatus": "active",
"registeredOffice": "1 Example Street, London, ZZ99 1AA, England",
"activeOfficers": 3,
"activePscs": 2,
"officers": [
{ "name": "EXAMPLE, Alex", "role": "director", "appointedOn": "2015-01-12", "birthMonth": null },
{ "name": "SAMPLE, Robin", "role": "secretary", "appointedOn": "2018-06-01", "birthMonth": null },
{ "name": "DEMO, Sam", "role": "director", "appointedOn": "2020-09-15", "birthMonth": null }
],
"pscs": [
{ "name": "Example Parent Holdings Ltd", "notifiedOn": "2016-04-06", "natures": ["ownership-of-shares-25-to-50-percent"] },
{ "name": "Mr Alex Example", "notifiedOn": "2016-04-06", "natures": ["right-to-appoint-and-remove-directors", "voting-rights-25-to-50-percent"] }
],
"accountsOverdue": false,
"confirmationStatementOverdue": false,
"previousCheckedAt": null,
"companiesHouseUrl": "https://find-and-update.company-information.service.gov.uk/company/ZZ000001"
}

A later run in which an officer resigned and the company went into liquidation (shortened):

{
"companyNumber": "ZZ000001",
"changeStatus": "changed",
"summary": "DEMO, Sam resigned as director on 2026-10-05; Company status changed from active to liquidation",
"changeTypes": ["officer-resigned", "status-changed"],
"changes": [
{ "type": "officer-resigned", "summary": "DEMO, Sam resigned as director on 2026-10-05", "name": "DEMO, Sam", "role": "director", "date": "2026-10-05" },
{ "type": "status-changed", "summary": "Company status changed from active to liquidation", "from": "active", "to": "liquidation" }
],
"companyStatus": "liquidation",
"activeOfficers": 2,
"previousCheckedAt": "2026-10-06T06:00:00.000Z"
}

The company numbers of the five default companies (Tesco 00445790, BP 00102498, Barclays 00048839, HSBC Holdings 00617987, Unilever 00041424) were checked against the public Companies House website on 7 October 2026.

How much does it cost?

This Actor uses pay per event:

EventPrice
Company checked (profile, officers, PSCs and filings read and compared)$0.002
Info rows, error rows, companies that could not be checked, sample datafree
  • You pay for every company checked, whether or not it changed: a daily run for 100 companies costs $0.20 a day (about $6 a month); 2,000 companies cost $4 per run.
  • A company that does not exist, a name that cannot be matched and a failed lookup are free.
  • The Companies House API is free. Apify also charges a tiny standard start fee per run.
  • Set Maximum cost per run and the Actor stops when it is reached.

Limits and good practice

  • Speed: Companies House allows 600 requests per 5 minutes per key. Each company needs about 4 requests (profile, officers, PSCs, filings), so a 2,000-company run takes about 1 hour 10 minutes. Set the run timeout to at least 2 hours for big lists. The Actor waits and retries on HTTP 429.
  • Runs of different watchlists that share one key share its rate limit.
  • Names are ambiguous: for important lists use company numbers.

Data and privacy

  • Everything comes from the public register and nothing is added. The Actor does not return or store officers' addresses, nationality, occupation or day of birth.
  • Officer names and roles are personal data under UK GDPR even though they are public. They are needed to say who was appointed or resigned. Use them for a lawful purpose (KYC, AML, credit checks) and follow your own data protection rules.
  • Month and year of birth (as Companies House publishes them) are saved only if you turn includeOfficerBirthMonth on, and appear only in baseline rows.
  • Snapshots are stored in a named key-value store in your own Apify account. Delete it to remove them.

Limitations

  • The baseline is what Companies House shows on the first run. Changes made before then are not reported.
  • Only changes between two runs are visible: several edits between runs appear together.
  • Filings are limited to the newest 100 per company; the watched categories are accounts, confirmation statements and charges. Accounts and confirmation statement overdue flags come from the company profile.
  • Companies House can correct or remove records; an officer that vanishes from the list is reported as no longer listed.
  • Not legal, credit or compliance advice. Always check the original record on Companies House.

FAQ

Is this official data?

Yes. It comes from the Companies House Public Data API.

Do I need an API key?

A free key from the Companies House Developer Hub, or the Actor owner's default key. Without one you only see sample data.

Why did I get a "baseline saved" row?

Because it was the first time the Actor saw that company (or you changed watchFilings or includeOfficerBirthMonth, which changes what is saved). It stores what it sees now and compares from the next run.

Why did my daily run return no rows?

Nothing changed. You are still charged for the companies checked. Turn on includeUnchanged to see a row per company.

Can I add companies to the list later?

Yes. New companies get a baseline row; the others keep their snapshots (as long as you use the same monitorName).

More tools from the same developer

All pay-per-result, no proxy or login needed, built and maintained by the same developer:

Website audits

Company data and compliance

Media and AI

Market signals

Feedback

Missing a field you want to track? Open an issue on the Issues tab.