UK Supplier and Customer Risk Watch avatar

UK Supplier and Customer Risk Watch

Pricing

from $10.00 / 1,000 company checks

Go to Apify Store
UK Supplier and Customer Risk Watch

UK Supplier and Customer Risk Watch

Watch UK suppliers and customers for changed filings and Gazette notices. Get evidence links and explained OK, WATCH or ACTION flags. Bring a free Companies House key for live runs. Try the synthetic demo free.

Pricing

from $10.00 / 1,000 company checks

Rating

0.0

(0)

Developer

Jessy Mariau

Jessy Mariau

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

Keep a customer or supplier list under review with Companies House and Gazette evidence in one place. See newly overdue filings, status changes, resignations and insolvency notices with reasons and source links.

A watch list you can review

Selected rows from the built-in synthetic demo. Every company below is fictional; this demonstrates the rubric rather than live business conditions.

Demo companyRegister statusFlagReason shown
DEMO BAKERY LIMITEDactiveOKNo configured risk signal
DEMO SOFTWARE STUDIO LTDactiveWATCHOverdue confirmation statement and new charge
DEMO LOGISTICS HOLDINGS PLCliquidationACTIONStatus change and Gazette notice
DEMO FABRICATION WORKS LIMITEDactiveACTIONOverdue accounts

In live results, changes carry type, severity, detail and evidence_url. OK means none of the configured signals were found; it is not a credit rating.

Preview free: leave apiKey empty. For your list, add a free Companies House key, company numbers or names, and a watchKey.

The first live run saves a baseline and reports current signals. Repeat with the same key for changes. Use a separate key for each list. Scheduled Slack or email delivery requires your own integration.

What it does

You paste your list, one company per line. Numbers are looked up directly. A name is searched, and the match is only accepted when the top hit is the same name once case, punctuation and LTD versus LIMITED are ignored. Anything else comes back unmatched with the top 3 candidates attached, so you make the call instead of the Actor guessing.

For each company it reads the current state from the official Companies House API and searches The Gazette, the UK's official public record, for corporate insolvency notices. Then it compares all of that against the snapshot it saved last time you ran with the same watch key, and reports the difference.

Eight kinds of change come back, each with a severity, a plain sentence saying what happened, and a link to the page that proves it:

status_change when the company moves between active, liquidation, administration, dissolved and the rest. insolvency_notice for a new Gazette notice or a new insolvency case on the register. accounts_overdue and confirmation_overdue the first time a filing deadline is missed. new_charge when someone registers security over the company's assets, with the name of who. officer_resignations with who left and when. registered_office_change and name_change for the quieter signals that often arrive first.

Every company also gets a risk_state of OK, WATCH or ACTION, and the reasons behind it.

The first run against a new watch key sets the baseline. There is nothing to compare against yet, so no register changes are reported, and first_run comes back true. The risk state is still real on that first run, because it is read from the company's current state and its live Gazette notices rather than from the comparison.

What you need

A Companies House API key. It is free and takes about two minutes: register at https://developer.company-information.service.gov.uk/, create an application, add a REST API key. Paste it into apiKey and Apify stores it as a secret. It never reaches the log or the dataset.

The Gazette needs nothing. Its search is open, no account and no key.

Run with no key at all and you get four sample rows in demo mode covering OK, WATCH and both flavours of ACTION. Nothing is charged and nothing leaves the container.

How to run it

{
"apiKey": "your-companies-house-key",
"companies": "09876543\nSC123456\nExample Trading Ltd\nAcme Fabrication",
"watchKey": "suppliers",
"checkGazette": true,
"staleAccountsGraceDays": 0
}

Schedule that weekly and keep watchKey the same, and every run after the first hands you the week's changes. Run a second list under a different watch key and the two never touch each other.

The OUTPUT record in the key-value store carries the summary: how many companies were watched, the count in each risk state, every ACTION company named with its reason, and one line you can drop into Slack.

Output fields

FieldWhat it holds
inputThe line you gave.
matchedTrue when a company was found.
first_runTrue when this watch key had no snapshot for this company yet.
company_number, company_name, statusAs registered.
risk_stateOK, WATCH or ACTION.
risk_reasonsWhy, in plain sentences.
changesEvery change found. Each carries type, severity, detail and evidence_url.
top_changeThe first change, for a summary column.
accounts_next_due, accounts_overdue_daysThe accounts deadline and how far past it the company is.
confirmation_next_dueThe confirmation statement deadline.
has_charges, has_insolvency_historyBooleans from the profile.
gazette_noticesDate, notice type and link for each insolvency notice found.
gazette_checked, gazette_reasonFalse plus a reason when the Gazette could not be reached or was switched off.
companies_house_urlThe company's public page.
previous_checked_atWhen this company was last seen, or null on a first run.
checked_atWhen this run happened.
candidatesFor an unmatched name, up to 3 possible companies.
errorWhy a row could not be read, or null.

The risk rubric

ACTION is kept for the things that genuinely change how you trade with someone. Everything softer is WATCH.

StateWhat puts a company there
ACTIONAn insolvency notice in The Gazette from the last 12 months. An insolvency case on the register. A status of liquidation, administration, receivership, dissolved or similar. Accounts past the filing deadline by more than your grace days.
WATCHConfirmation statement overdue. A new charge registered. Officers resigning. A name or registered office change. An insolvency history on the record with nothing currently open. Accounts late but still inside the grace period.
OKNone of the above.

staleAccountsGraceDays moves the line between late accounts being WATCH and being ACTION. Leave it at 0 and the deadline itself is the line.

Pricing

One company-watched event per company actually checked. A name that could not be matched, a number that does not exist and a lookup that failed all cost nothing. Officers, charges, insolvency and the Gazette search are extra requests behind the scenes and none of them add a charge.

100 checked companies cost $1 each run, or $4 for four weekly runs. Unchanged companies and first-run baselines are checked and charged.

These examples describe Actor event charges. Any additional platform or proxy charges shown by Apify are separate. Review run costs before scheduling repeated checks.

Limits

This reports the public record and public notices, nothing further. No credit file sits behind it and no rating agency stands over it. It tells you what has been filed and published. You decide what that means for your terms.

The register lags reality by however long a filing takes. A company can be in trouble for months before anything reaches Companies House, which is exactly why the Gazette half is here: notices are published when they happen.

Gazette coverage, stated honestly. The search runs on the company number under the corporate insolvency notice codes, which narrows matching to a company identifier. Check the notice link before acting on a flag. Searching by name instead is a full text search and will happily return notices about other companies that merely mention a street with your supplier's name in it, so I do not do that. The trade-off is that notices too old to carry a company number in their text are not found this way, and I saw that happen on a Northern Irish company whose 1999 liquidation notices are titled by notice type and carry no number. The register's own insolvency record covers those cases, and it did: the company still came back ACTION. The window is a rolling 12 months, so a live petition keeps holding the risk state week after week, but it is only reported as a change the first time you see it.

Requests to Companies House are paced at roughly 1.8 per second against its documented 600 per five minutes, and Gazette requests at one every two seconds against its published fair use policy of five per ten seconds. A long list takes a while, and that is deliberate.

Nothing beyond the public register is collected. No credit files, no private data, no scraping where an API exists.

Pair it with a workflow

If you run n8n, my free templates on https://n8n.io/creators/fractional-hq take a list like this Actor's output and turn it into alerts, credit-hold flags and a weekly digest without another tool in the chain.

The build itself, including what I chose not to do, is written up at https://fractionalhq.uk/use-cases/counterparty-risk-watch

Building a lead list rather than watching one? My sibling Actor does the enrichment half: https://apify.com/fractionalhqforyou/uk-companies-house-enrichment

Use it from an AI agent

The watch is also available as an MCP server for AI agents. Its endpoint is https://fractionalhqforyou--uk-counterparty-risk-watch.apify.actor/mcp and the one tool on it is watch_uk_counterparties, which takes your counterparty list and returns the flagged filings in the same call. Pricing does not change: the same per-event charge applies to an agent run. A client without a raw endpoint option can load apify/actors-mcp-server and pass fractionalhqforyou/uk-counterparty-risk-watch as the Actor to expose.

Risk on a counterparty list rarely stops at Companies House, so I publish these Actors to cover the rest of the picture.

Help and maintenance

Built and maintained by Jessy at Fractional HQ. For a bug, open this Actor's Issues tab with the run ID and expected result. Remove keys and private data before sharing an input.

Need the results connected to your process? Describe the workflow.