Skip to main content
A successful match returns a JSON object with the fields below.

Response fields

These fields are returned on POST /match and on each row in batch results. A 200 with matched_company_number: null means the engine finished without a confident match. That is not an error. In that case confidence is none and route is null.

Confidence

confidence tells you how strong the match evidence is. It is not a percentage probability. If part of the pipeline was unavailable for that row (for example a website lookup), the band may drop one notch (e.g. high → medium). Use confidence to triage results — for example auto-accept high, review medium or low. Always check matched_company_number to see whether a CRN was returned.

Route

route records which stage produced the match:

Rigorous match

rigorous_match is true when the slow path cleared the stricter scoring check for the chosen company.
  • A fast-path match does not need that check, so it can be confidence: high with rigorous_match: false.
  • On the slow path, rigorous_match: true is what lifts a result to confidence: high, subject to the band reduction noted above.
Treat rigorous_match as a technical signal; prefer confidence for product decisions unless you are debugging match quality.

Company status

company_status is the matched company’s status exactly as Companies House reports it. The values you will see: When several registered companies share a name, the match prefers the one in the healthiest status, in the order above. active is kept for compatibility and will be removed in the next API version. It is "True" when company_status is anything other than dissolved, and "False" when the company is dissolved.

Example (matched)

Example (unmatched)

Example (with address)

Request body fields

Null optional fields may be omitted from the request; the API does not require them.
Last modified on September 30, 2026