UK Companies House Watch
The PSC ownership tree, the disqualified directors register and a daily change feed, by API.
- Base address
https://api.stratumapis.com/v1/ch- Your key
- The
X-Stratum-Keyheader, with the key from your API page. Paid per call from your API balance, with no plan (add money on your API page). - Prices
- A company’s record, its ownership changes, or a disqualified directors check5p (2p from 1,000 a month)
- The ownership tree (owners through every layer)£1.49 (79p from 1,000 a month)
- The company watchlist and its changesFor keys that hold an older per-API plan; use the transactions API’s daily watch instead
X-Stratum-Credit-Balance-Pence; a refusal or a source failure is never charged. Limits and prices.- OpenAPI
- Download the OpenAPI file (JSON)
Endpoints
Single company lookup, cached
Returns a normalised company profile plus active officers plus flag fields, fetched live from Companies House and cached for 24 hours.
numberrequiredin path · Companies House number (eight chars; SC, NI, OC prefixes preserved; bare digits left-padded to eight)
curl -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/ch/companies/00445790"401Missing or invalid API key404No such company503Companies House could not be read just now (error code companies_house_unavailable). Not charged; try again shortly.
PSC tree + UBO computation (B-CH-2)
Walks the Persons-with-Significant-Control structure for a UK company, recursing into corporate PSCs that are themselves UK-registered, up to the requested depth limit (capped at 5). Computes UBOs (≥25% effective ownership through the chain, or a control nature like right-to-appoint-and-remove-directors per MLR-2017 reg 5(1)(c)). Cycle + depth-limit cases are flagged via unresolved + unresolvedUboReason so the caller can surface the warning to the customer. Cached server-side for 1 day.
numberrequiredin path · Companies House number of the corporate landlord / customerdepthin query · Maximum recursion depth. Defaults to 5 hops.
curl -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/ch/companies/00445790/psc-tree"404No such company503Companies House could not be read just now (error code companies_house_unavailable). Not charged; try again shortly.
List monitored Companies House numbers for this API key
curl -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/ch/monitored"Replace the full set of monitored Companies House numbers
curl -X PUT -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/ch/monitored"{
"type": "object",
"required": [
"numbers"
],
"properties": {
"numbers": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 0,
"maxItems": 1000
}
}
}413Tier cap exceeded
Remove a single Companies House number from the monitored set
numberrequiredin path
curl -X DELETE -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/ch/monitored/00445790"404Not in the monitored set
Changes feed for monitored companies since a given date
sincerequiredin query · Lower bound (YYYY-MM-DD). Capped at the tier history window (Starter 14d, Growth 90d, Pro 365d).limitin query
curl -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/ch/changes?since=Jane%20Smith"PSC ownership-velocity flag (W30 iter 3)
Counts PSC notification + cessation events on the company over the trailing 12-month window. Severity bands: low (0-1 changes: stable BTL territory), medium (2 changes: one normal ownership transfer = cessation+notification pair), high (3+ changes: restructure or fraud signal worth investigating). Fast path: one CH /psc fetch, no walk. Returns { changesIn12m, totalChangesObserved, lastChangeDate, severity, hasActivePscs, message, generatedAt }.
numberrequiredin path · Companies House number
curl -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/ch/companies/00445790/psc-velocity"404No company with that number
People on the Companies House register of disqualified directors
Looks up each person (up to 50, for example a company's directors and owners) on the register of disqualified directors. A register entry counts only when the first name and surname agree and, when both sides give one, the birth month and year agree (Companies House publishes the month and year for officers and owners). status is disqualified (a disqualification in force, or one not yet started), previously-disqualified (ended), none, or not-checked (the register did not answer; never read it as none). nameOnly: true means the match rests on the name alone because there was no birth date to compare. Acting as a director while disqualified is an offence (Company Directors Disqualification Act 1986 s13). One call against your plan.
curl -X POST -H "X-Stratum-Key: $STRATUM_KEY" \
"https://api.stratumapis.com/v1/ch/disqualifications"{
"type": "object",
"required": [
"people"
],
"properties": {
"people": {
"type": "array",
"minItems": 1,
"maxItems": 50,
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"example": "John Albert Smith"
},
"dateOfBirth": {
"type": "object",
"properties": {
"month": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"year": {
"type": "integer",
"minimum": 1900
}
}
}
}
}
}
}
}400Missing or invalid people list