legacy_promotion_link_delete
[Migration map](../reference/tool-name-migration.md).
# legacy_promotion_link_delete
This implementation is a dependency of the documentation branch.
Delete one selected, non-default legacy promotion link after a fresh revision and explicit confirmation. The operation does not delete or verify cleanup of associated page/membership objects or uploaded images.
## Access and input
Requires OWNER or DELEGATEE with MANAGE_CONVERSION_LINKS for the selected channel. Hosted source rules expose these tools and legacy-promotion-link recovery only on the exact selected-channel resource, not account resources. This is not deployed authorization evidence.
channelCode is a string of 1–512 characters, excluding literal dot/double dot, slash, backslash, ASCII controls and DEL. Selected input IDs are positive safe integers from authorized results. Strict inputs reject unknown fields. These legacy links are separate from [conversion links](../guides/conversion-links.md); do not exchange their IDs, revisions, share bases or task types.
| Input | Contract |
| --- | --- |
| channelCode | Required selected channel. |
| id | Required selected positive safe-integer link ID. |
| requestId | Required 8–80 ASCII letters, digits, underscores or hyphens. |
| expectedRevision | Required 64 lowercase hexadecimal characters from the selected detail. |
| confirmation | Required literal DELETE_LEGACY_PROMOTION_LINK. |
| dryRun | Optional boolean, default false; use true to inspect the plan before the intended deletion. |
There is no action, target array, activation or bulk option. Positive IDs explicitly marked as default are also rejected with LEGACY_DEFAULT_LINK_READ_ONLY. Existing-link cleanup is not blocked by creation quota.
```json
{
"channelCode": "selected-channel-code",
"id": 123,
"requestId": "legacy-delete-01",
"expectedRevision": "0000000000000000000000000000000000000000000000000000000000000000",
"confirmation": "DELETE_LEGACY_PROMOTION_LINK",
"dryRun": true
}
```
## Inputs
| Field | Required here | Contract |
| --- | --- | --- |
| `id` | Yes | integer; greater than 0 |
| `confirmToken` | No | string; pattern `^ct[a-f\d]{32}$`; The confirmToken from this tool's preview result. Omit it to preview; repeat the same input with it to execute. |