> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thedatacity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Material changes to the Company Matching API, newest first.

This page records changes to the API contract and to behaviour worth knowing about: new fields, renames, breaking changes. Each entry names the release it shipped in. The release is `info.version` in the OpenAPI spec. See [Versioning](/company-matching/guides/versioning).

<Note>
  Entries start at release 1.0.0, the first numbered release. Changes made during the earlier beta were not tracked.
</Note>

## Conventions

Entries are tagged so you can scan for the kind of change that affects you:

* **Breaking**: you must change your integration. Always listed first.
* **Added**: new endpoint, field, or capability. Safe to ignore if you don't use it.
* **Changed**: non-breaking change to existing behaviour.
* **Deprecated**: still works but scheduled for removal. Start migrating.
* **Removed**: no longer available.
* **Fixed**: bug fix bringing actual behaviour in line with documented behaviour.

## History

### 2026-09-30: release 1.2.0

* **Added**: `company_status` on every match result: the matched company's status as Companies House reports it, such as `Active`, `Active - but in an unusual state (Active with Dormant Accounts)` or `Struck off (Dissolved)`. The [response reference](/company-matching/guides/response-reference#company-status) lists the values.
* **Deprecated**: `active`. It still says whether the matched company is not dissolved (`"True"` or `"False"`), but `company_status` says more, and `active` will be removed in the next API version.
* **Fixed**: `active` was `"False"` on most matches and missing on exact-name matches, whatever the company's status. It is now correct on every match.
* **Changed**: an exact registered name is now resolved against our own daily copy of the Companies House register, so such a match returns without waiting on an upstream lookup. Where several registered companies share the name, the one in the healthiest status is preferred: active before dormant, dormant before dissolved. Matching of names that are not an exact registered name is unchanged.

### 2026-09-25: release 1.1.2

* **Fixed**: a batch that was running while we deployed an update could report more rows completed than it contains, because a few rows were matched twice. Progress now stays exact across updates. The results themselves were not affected.

### 2026-09-25: release 1.1.1

* **Changed**: batch jobs now match several companies at once, so a large batch finishes sooner. Each batch returns the same results as before, and the API contract is unchanged.

### 2026-09-09: release 1.1.0

* **Changed**: the match endpoints now declare `404`, `409` and `500` in the OpenAPI spec, so the Endpoints pages and any client generated from the spec list every status a route can return. What the endpoints do is unchanged.
* **Changed**: submitted request bodies are cleared from usage records 30 days after the call. The usage metadata for that call is kept: the endpoint, the number of companies, the response status and the processing time.
* **Changed**: cached responses from upstream company-data sources are deleted after 180 days. Before this release they stopped being used at that age but were not removed.
* **Changed**: submitted company fields and match results are no longer written to application log records. A log entry identifies a request by the `id` you supply and by our own job and row identifiers.

The [response reference](/company-matching/guides/response-reference) now sets out how `route` and `rigorous_match` derive the `confidence` band. That behaviour has not changed; it was undocumented.

### 2026-09-04: release 1.0.1

* **Fixed**: deployment fix only. No change to the API contract.

### 2026-09-04: release 1.0.0

First numbered release. The URL prefix stays `/api/v1`.

* **Breaking**: request field `postcode` renamed to `input_postcode`.
* **Breaking**: response field `matched_postcode` renamed to `matched_registered_postcode`. It holds the registered office postcode of the matched company.

<Warning>
  Requests that still send `postcode` are not rejected. The API returns `200` and ignores the unknown field, so the postcode stops contributing to matching and you get no error. Rename the field.
</Warning>

<Snippet file="need-help.mdx" />


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.