# Changelog and deprecation policy

> What changes in each release, and how long old things last: 12 months of notice for breaking changes and for today's 13 MCP tools, X-Api-Key and RunExtract.

Source: https://emailmovers.com/mydatahub/docs/changelog
Updated: 16 October 2026

Nothing is withdrawn without 12 months and three emailed notices. This page lists what changes, and the policy that governs it. Version 2 has not launched, so the changelog has one entry: what v2 introduces.

> **Not yet live.** MyDataHub v2 is built and tested locally and is not yet live. This page describes the contract the API is tested against, and the launch date is to confirm.

## Deprecation policy

1. **Non-breaking changes ship as a new dated version.** You opt in by sending the new `MyDataHub-Version` date, and your key's pinned version applies until you do. See [Versions and reproducibility](https://emailmovers.com/mydatahub/docs/versions.md).
2. **Breaking changes change the path major.** The old major stays available for 12 months. There are no `/v2` paths.
3. **Response objects may gain members.** Ignore members you do not know. Removing or renaming a member, or changing its meaning, is a breaking change.
4. **Deprecated things say so in the response.** REST responses from a deprecated endpoint will carry `Deprecation` and `Sunset` headers (RFC 9745 and RFC 8594), though no endpoint is deprecated yet and the API sends neither. Deprecated MCP tools carry "Deprecated" in their titles, name their replacement in their descriptions, and put the replacement in the result's `_meta`.
5. **Three emailed notices before anything stops.** After the window, the old thing returns 410.
6. **Webhook endpoints stay pinned.** An endpoint keeps the version it was created with until you create a new one.

## What is deprecated today

The plan is for the old tools, the `X-Api-Key` header and `POST /api/RunExtract` to stay available for 12 months from the v2 launch date, with 3 emailed notices, and then to return 410, with `Deprecation` and `Sunset` headers on legacy download responses (RFC 9745 and RFC 8594). Only the old MCP tools are built so far. The v2 API has no `X-Api-Key` handling, no `/api/RunExtract` route and no deprecation headers yet, so those parts of the plan are to confirm.

| Deprecated | Replacement | Guide |
| --- | --- | --- |
| The 13 session-bound MCP tools | The 22 tools | [Migration guide](https://emailmovers.com/mydatahub/docs/migrate.md) |
| The `X-Api-Key` header | `Authorization: Bearer` with an `mdh_` key | [Authentication](https://emailmovers.com/mydatahub/docs/authentication.md) |
| `POST /api/RunExtract` | `GET /v1/orders/{id}/records` | [Migration guide](https://emailmovers.com/mydatahub/docs/migrate.md) |
| `agents.mydatahub.uk` | This site. A page for page redirect is planned and not built | |

The 12 months run from the v2 launch date, which is to confirm. The plan is for credit balances and saved lists to carry over. `https://mcp.mydatahub.uk` keeps serving today's product until the new server supports OAuth sign-in from the client, so installs made there keep working.

## Changelog

### 2.0.0 (not yet released)

The first version of the new API, MCP server and app. The dated API version is `2027-01-15`.

**New**

- One audience definition, `mydatahub.audience/1`, for the app, REST and MCP.
- Counts with Total, New to you and Emailable, up to three breakdowns, quality signals, a compliance summary and a content-addressed id that replays for 12 months.
- Masked samples with why each record matches and a provenance card.
- Machine quotes, signed with ES256 and valid for 24 hours.
- Orders under quote then confirm: a person's confirmation or an agent key within its limits. A flag set by a model is never consent.
- Agent keys with a monthly budget and a per-order cap.
- Signed compliance receipts and `POST /v1/compliance/receipts/verify`.
- Suppression lists, a check before every send and database-wide objections that reach every licensee.
- Webhooks under Standard Webhooks, with 11 event types and a 30 day replay.
- A CRM push that starts as a dry run.
- 22 MCP tools in a fixed order, with resources and prompts.
- RFC 9457 problem details with `next_step` and `did_you_mean` on every error.

**Changed**

- Saved lists become audiences with `aud_` ids in the same organisation.
- The 29 export bundles become named field sets. At launch there are three: `standard`, `standard_telephone` and `full`, each 1 credit a record. The test bundles are removed.
- `create_data_extract` ignores its `confirmed` flag and goes through the same quote and confirmation as `create_order`.
- Credit balances carry over one for one, with licence dates unchanged.

**Deprecated**

- The 13 session-bound MCP tools, the `X-Api-Key` header and `POST /api/RunExtract`, all for 12 months from launch.

**Not in 2.0.0**

- Partner and Irish data. `ie_contacts` and `global_contacts` are listed but not served.
- Five tools reserved for phase 2 behind scopes and not listed: `verify_emails`, `list_signals`, `create_alert`, `refresh_audience` and `delete_audience`.
- Machine Payments Protocol on the order endpoint.

## Dataset versions

Data changes ship as weekly dataset versions, not API versions. Each version has its own changelog at `GET /v1/datasets/{dataset}/versions/{version}`. See [Versions and reproducibility](https://emailmovers.com/mydatahub/docs/versions.md).

## Next steps

- Move from today's surface with the [Migration guide](https://emailmovers.com/mydatahub/docs/migrate.md).
- Check which version you are on with [Versions and reproducibility](https://emailmovers.com/mydatahub/docs/versions.md).
