---
title: "Start the shared-bot Telegram connect flow"
method: POST
path: "/api/v1/channels/connect/telegram/link"
tags: ["channels"]
---

# Start the shared-bot Telegram connect flow

`POST /api/v1/channels/connect/telegram/link`

## Request

- Base URL: `https://api.cadencz.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.cadencz.com/api/v1/channels/connect/telegram/link`
- Auth: HTTP bearer

Returns a t.me deep link that opens a private chat with the shared Cadencz bot, carrying a signed, short-lived token that identifies the workspace. Telegram only ever echoes deep-link payloads back on a private /start — there's no equivalent for adding a bot to a channel — so the user is asked to add the bot to their channel afterward, from Telegram's own Administrators screen. Our webhook links the two events by the Telegram user id common to both.

## Response `200`

Successful Response

- TelegramLinkResponse: Deep link that adds the shared Cadencz bot to a channel.
  - `bot_username` string, required
  - `deep_link` string, required
  - `token` string, required

## Other responses

- `401`: Missing or invalid Supabase bearer token.
- `502`: The upstream provider rejected the request.

---

[API](https://skmtc.dev/cadencz/apis/cadencz-api.md) · [All operations](https://skmtc.dev/cadencz/apis/cadencz-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cadencz/apis/cadencz-api/revisions/3392fe5e93db?raw)
