update_link
Change a Smart Link's name, address, destination or expiry. Only the arguments present move; the code, the bot link and the attribution cookie survive every edit.
Rename a link, point it somewhere else or give it an end date. Omitted arguments keep their stored
value; an empty expires_at clears the expiry so the link runs until archived.
link.updated emits with the fields that moved.
Renaming the slug moves the web address and nothing else: the old address stops answering, and a printed QR or a shared bot link keeps attributing because they carry the code.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Runs the same action as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Fires one event
Delivered to every endpoint subscribed to it once the change is made.
Annotations
Sending the same arguments twice changes nothing the second time.
Arguments
project_id*stringUUID of the project the link belongs to.
link_id*stringUUID of the Smart Link to change.
namestringoptionalA new creator-facing label, 2 to 120 characters.
slugstringoptionalA new address segment, 2 to 32 letters, digits and hyphens; the old address stops answering.
destinationstringoptional"portal", "plan" (send plan_id unless one is stored) or "bot".
plan_idstringoptionalUUID of the plan a "plan" destination opens.
expires_atstringoptionalISO 8601 instant after which the link stops counting, or an empty string to run until archived.
What it returns
{ "data": { "id": "7c2e5a90-3f41-4b8d-9e62-1a0d4c8b7f35", "name": "YouTube description", "slug": "youtube", "code": "K7PMQ2X", "destination": { "type": "portal", "plan_id": null, "plan_name": null }, "urls": { "web": "https://my.subscriby.net/jane/go/youtube", "bot": "https://t.me/JaneBot?start=via_K7PMQ2X", "embed": "https://my.subscriby.net/jane/embed/plans?via=K7PMQ2X" }, "state": "live", "expires_at": null, "archived_at": null, "clicks": { "total": 48, "last_at": "2026-11-21T09:58:12+00:00" }, "updated_at": "2026-11-21T10:02:40+00:00" }}The link as it now reads, in the same shape as get_link.
How it fails
VALIDATION_FAILEDa reserved or taken slug, a bad slug or name, a plan destination with no plan sent or stored, a plan of another project, or an expires_at in the past.
RESOURCE_NOT_FOUNDunknown project_id or link_id, or a link of another project.
AUTHENTICATION_REQUIREDno authenticated user on the request.
TOKEN_MISSING_ABILITYtoken lacks project-link:update.
How is this guide?
Last updated on
list_links
List a project's Smart Links with their three addresses, state and lifetime clicks. Read-only. Paginated, optionally narrowed to archived links or searched by name or address.
Subscription Tools
A subscription is one member's purchase of one plan, and it is never created through a tool: checkout and access codes do that.