Why Project X

Registers were built for people to browse, not for agents to act on.

Calling a single API in a weekend prototype is easy; surviving first contact with messy invoices is not. Real counterparties trade under shopfront names that don’t match their legal entity, span fragmented bulk drops and rate-limited endpoints across the UK, Australia and New Zealand, and require cross-checking separate financial, credit and charity licences before money moves.

Project X is the counterparty decision engine. It keeps an index of 12.8 million company, licence and charity records from the latest official releases, resolving trading names with a small model while enforcing fixed, deterministic rules so a model never guesses a compliance verdict.

  1. 01Resolve

    Maps trading names, invoice typos or identifiers to the official legal entity. If multiple entities fit, it abstains to REVIEW.

  2. 02Verify

    Checks active status and purpose-specific licences across live and official bulk registers (Companies House, FCA, ASIC, ACNC).

  3. 03Decide

    Evaluates fixed, deterministic rules per purpose and jurisdiction. The model resolves names; it never makes the compliance decision.

  4. 04Record

    Writes an append-only audit log with exact register timestamps and source URLs for every check.

Why not query the register directly

A register tells you what is filed. Your agent needs to know what to do.

Aspect
Register lookup
Project X check
Question answered
What is on file under this name?
Should my agent go ahead, for this purpose?
Names
The exact legal name or number
Trading names, typos and identifiers, resolved to the legal entity or returned for review
Scope
One register at a time
Every register the purpose needs, across three countries, in one call
Output
A web page or a raw record
Proceed, review or stop, with reasons and source links, as JSON
For agents
Built for people; each register has its own API and limits
One REST API, and an MCP server Claude can call
Afterwards
Nothing is kept
An append-only audit record of every check

Registers remain the source of truth. Every fact in a result links to the entry it came from.

Coverage

Evidence from the source, dated

UK company status and FCA authorisation are checked live when the check runs. Australian company, licence and charity records come from the latest official ASIC and ACNC releases, and each result shows the date of the record it used.

United Kingdom

  • Companies HouseLive
  • FCA Financial Services RegisterLive
  • FSA food hygiene ratingsLive
  • Charity CommissionComing soon

Australia

  • ASIC companiesLive
  • ASIC business namesLive
  • ASIC AFS licenseesLive
  • ASIC credit licenseesLive
  • ACNCLive
  • ABN LookupComing soon

New Zealand

  • NZ Charities RegisterLive
  • NZBN registerComing soon

Entity and licence verification by design. Run Project X as a deterministic gate before heavier KYC, ownership or sanctions checks.

One decision, wherever it is asked

A person on the web, a service calling the API and Claude through MCP get the same decision, reasons and sources.

Webresult card
Proceed
TESCO PLC
00445790 · confidence 0.96
Active · incorporated 27 Nov 1947
AL7 1GA
Companies House 00445790 · active
No issues found
Checked 30 Oct 2026 23:14
REST APIPOST /v1/check
$ curl -X POST https://projectx-ivory-nine.vercel.app/v1/check \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "Tesco PLC", "purpose": "pay_supplier", "country": "GB"}'

# response 200 (excerpt)
{
  "decision": "proceed",
  "confidence": 0.96,
  "entity": {
    "name": "TESCO PLC",
    "identifier": "00445790",
    "status": "active"
  },
  "reasons": []
}
Claude via MCPcheck_business
Can I pay Tesco PLC as a supplier?
check_businessPROCEED
Yes. TESCO PLC (00445790) is active on Companies House and was incorporated on 27 November 1947. The check returned PROCEED with confidence 0.96 and no issues found.
Companies House record (opens in a new tab)
Measured accuracy

When it is unsure, it says review—never guesses.

Evaluated on 40 hand-labelled queries mapped to official register IDs: exact legal names, unregistered trading names, invoice typos, and multi-entity collisions. A small model only disambiguates candidates; deterministic rules issue the verdict.

0wrong matches in 120 model runs on 40 hand-labelled queries

All unresolved cases abstain to REVIEW with candidate lists. Thresholds were set on the same 40 queries; New Zealand is not yet measured.

Correct matches / 20 · United KingdomRules onlyWith model

What sits behind each check

Records from the latest official releases. Each result shows the date of the record it relied on.

5,704,711
UK companies
Companies House · 1 Oct 2026
4,013,691
Australian companies
ASIC · Oct 2026
2,667,497
Australian business names
ASIC · Oct 2026
342,688
AFS representatives
ASIC
65,932
Charities
ACNC

For agents about to act on a business

  • Accounts payable
    Before adding a new supplier.Stops a dissolved company reaching the approved list. Flags one in liquidation.
  • Onboarding
    Before opening an account or listing a seller.Confirms the legal entity behind a trading name.
  • Financial services
    Before referring a customer to a firm.Checks FCA authorisation or an ASIC licence.
  • Lending
    Before a credit decision.Flags companies under 90 days old or in administration.
Data handling

What we keep, and what we don’t

  1. 01Hosted in London
  2. 02Every check written to an append-only audit log
  3. 03API keys stored only as hashes
  4. 04Officers’ and sole traders’ names shown live, never stored
  5. 05Search text and postcode deleted after 90 days
Sub-processor disclosure

Data and hosting in London. Entity matching uses a US-hosted model that receives your search text and public company records; we never send it personal data we store.

Add a check before your agent acts.

Get a key and run your first check from the terminal.

Get a key