Telegram
Telegram Bot API. Tenants connect by uploading their bot token; Vendo verifies via getMe, registers a webhook, and forwards inbound updates to the deployment.
Bring your own bot from BotFather. Vendo stores the token encrypted, proxies api.telegram.org calls so the real token never lives in your deployment, and registers the webhook so inbound messages flow into your app. Each connection is its own dedicated bot — no shared rate limits, no co-tenants.
Auth modes
| Profile | Default | How it works |
|---|---|---|
byok_static (Bring your own key) | Yes | Tenant uploads a static credential (token / API key). Vendo stores it encrypted and uses it at request time. |
Environment variables
These are the env vars Vendo injects into your deployment at boot when this integration is bound. Source values are resolved by resolveConnectionEnvVars in packages/integrations/lib/ from the connection record (credential, metadata) and deployment context (proxy URL, Vendo-issued API key).
| Variable | Profiles | Source | Secret |
|---|---|---|---|
TELEGRAM_BOT_ID | all | connection metadata: telegram_bot_id | No |
TELEGRAM_BOT_TOKEN | all | connection credential (encrypted at rest) | Yes |
TELEGRAM_BOT_USERNAME | all | connection metadata: telegram_bot_username | No |
TELEGRAM_SIGNING_SECRET | all | connection metadata: webhook.signing_secret | Yes |
Reading the credential at runtime
Vendo writes TELEGRAM_BOT_TOKEN (and any companion vars above) into your deployment's environment at boot — the official Telegram SDK auto-discovers it, so most code just instantiates the client with no extra wiring. vendo.token(slug) is the resolution-chain-aware alternative that reads the same value in Vendo mode and falls back to whatever you set in OSS mode; use whichever fits your style. See Two modes for the full resolution chain.
Proxy endpoint
Calls to Telegram are brokered through Vendo's proxy at:
https://telegram-proxy.vendo.runPoint the official Telegram SDK at this base URL; Vendo authenticates, meters per call, and forwards upstream. Your code never sees the upstream credential.
Quickstart
import vendo
# Give your app a Telegram bot — receive DMs, group messages, and reply with full Bot API access.
token = vendo.token("telegram")
# Use `token` wherever you would have used the provider's API key —
# pass it to the official SDK or set it as the env var the SDK reads.
print(token)import { Vendo } from "@vendodev/sdk";
const vendo = new Vendo();
// Give your app a Telegram bot — receive DMs, group messages, and reply with full Bot API access.
const telegramToken = await vendo.token("telegram");
// Use `telegramToken` wherever you would have used the provider's API
// key — pass it to the official SDK or read it as the env var the SDK expects.
console.log(telegramToken);import VendoSDK
let vendo = Vendo()
// Give your app a Telegram bot — receive DMs, group messages, and reply with full Bot API access.
let token = try await vendo.token("telegram")
// Use `token` wherever you would have used the provider's API key.
print(token)Learn more
-
Concepts: connections & integrations — how connections, bindings, and credentials fit together.
-
Build a tool: SDK — full
vendo.tokenandvendo.data.executesemantics.