---
title: "Declare a channel to be an alias of another channel (operator)"
method: PUT
path: "/link/mablnet/channels/{channel}/alias"
tags: ["LinkMablnet"]
---

# Declare a channel to be an alias of another channel (operator)

`PUT /link/mablnet/channels/{channel}/alias`

Makes `{channel}` an alias of the body's `target`: `GET /link/mablnet/manifest` (and the operator rollout endpoints) resolve a request for `{channel}` to `target`'s manifest and rollout, transparently to clients — the global, publisher-level generalization of the per-tenant `worker_release_override` redirect. Used to rename a channel without breaking older clients that still send the old name (alias `dev` → `latest`), or to neutralize a legacy channel default (`prod` → `stable`). Replaces any existing alias on `{channel}`; a target equal to the channel, or one that would create a cycle, is rejected. Operator-only (mabl global / support admin). See design doc `release-channel-aliasing-and-selection.md in link/mablnet/docs`.

## Path parameters

- `channel` string, required

## Request body

- MablnetChannelAlias — Declares one release channel to be an alias of another. When set, the api resolves every request for the alias channel (manifest resolution + the operator rollout ops) to the `target` channel's state, so a client that still sends the old name keeps working after a rename. The alias name is the `{channel}` path segment; the body carries only `target`. See design doc `release-channel-aliasing-and-selection.md in link/mablnet/docs`.
  - `id` string — Datastore key for this entity — equals the alias channel name. Server-set.
  - `target` string, required — The channel the alias resolves to. May itself be an alias (chains are followed), but must not equal the alias name and must not form a cycle.

## Response `200`

The alias was set; the stored alias is returned.

- MablnetChannelAlias — Declares one release channel to be an alias of another. When set, the api resolves every request for the alias channel (manifest resolution + the operator rollout ops) to the `target` channel's state, so a client that still sends the old name keeps working after a rename. The alias name is the `{channel}` path segment; the body carries only `target`. See design doc `release-channel-aliasing-and-selection.md in link/mablnet/docs`.
  - `id` string — Datastore key for this entity — equals the alias channel name. Server-set.
  - `target` string, required — The channel the alias resolves to. May itself be an alias (chains are followed), but must not equal the alias name and must not form a cycle.

## Other responses

- `400` — The target is missing, equals the channel, or would create an alias cycle.
- `401` — User not authenticated
- `403` — User not authorized
- `default` — Unknown error

---

[API](https://skmtc.net/mabl/apis/mabl-api.md) · [All operations](https://skmtc.net/mabl/apis/mabl-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mabl/mabl-api/revisions/d0fc0114da66/schema)
