Skip to Content
ResourcesIntegrationsSocial & CommunicationTelegram

Telegram

Service domainMESSAGING
Telegram icon
Arcade Optimized

Arcade.dev LLM tools for Telegram

Author:Arcade
Version:1.1.1
Auth:No authentication required
7tools
7require secrets

Telegram Toolkit

The Arcade Telegram toolkit provides LLM tools for interacting with the Telegram Bot API, enabling bots to send and receive messages, poll for user input, and deliver AI-generated audio in Telegram chats.

Capabilities

  • Bot identity & chat metadata: Retrieve the bot's own profile and inspect details (type, title, description, member count) for chats, groups, or channels the bot belongs to.
  • Messaging: Send text messages to any chat, group, or channel the bot can access; attach inline buttons to prompt structured user responses and optionally block until a tap is received.
  • Long-polling for input: Wait for the next private-chat message or for an inline button press using bounded getUpdates polls, with timeout and cursor (next_offset) support for resuming without re-sending.
  • Message retrieval: Fetch pending (unacknowledged) private-chat messages via getUpdates; note that acknowledging updates is permanent and group/channel messages are excluded for security.
  • Text-to-speech audio: Convert text to speech via OpenAI TTS (MP3) and deliver the audio file directly into a Telegram chat.

Secrets

TELEGRAM_BOT_TOKEN — The authentication token for your Telegram bot, issued by Telegram's @BotFather. Create a new bot with /newbot in BotFather, or retrieve the token for an existing bot with /mybots → select bot → API Token. The token takes the form 123456:ABC-DEF.... Keep it private; anyone with this token can send and receive messages as your bot. Note: the bot must not have an active webhook configured if you use the polling-based tools (GetMessages, WaitForNewMessage, WaitForButtonPress), since getUpdates and webhooks are mutually exclusive.

OPENAI_API_KEY — An OpenAI API key required by Telegram.SendTtsAudio to call OpenAI's text-to-speech API. Obtain it from the OpenAI API keys page in your OpenAI account dashboard (Dashboard → API keys → Create new secret key). The key requires an account with active billing credits; no special scopes beyond default API access are needed. Store the key securely and do not expose it in client-side code.

For managing secrets in Arcade, see Tool Secrets and the Arcade secrets dashboard.

Available tools(7)

7 of 7 tools
Operations
Behavior
Tool nameDescriptionSecrets
Get metadata about a Telegram chat, group, or channel. Returns information including the chat type, title, description, and member count. The bot must be a member of the chat to retrieve its information.
1
Get recent private-chat messages sent to the bot via Telegram's getUpdates API. Returns messages from private (1:1) chats only. Group and channel messages are excluded for security — any group member could inject content into the response. Only pending (unacknowledged) updates are returned. The limit parameter controls how many raw Telegram updates are fetched, not how many messages are returned. After filtering to private-chat messages for the requested chat_id, the result may contain fewer items. has_more indicates whether more updates exist on the server, not whether more messages exist for this chat. Note: This retrieves updates delivered to the bot, not the full history of a chat. Passing a non-zero offset permanently confirms all earlier updates — they cannot be retrieved again. Returns newest messages last.
1
Send a text message to a Telegram chat, group, or channel. The bot must be a member of the target chat or have permission to send messages to the specified channel. When the message asks the recipient a question, prefer attaching the possible answers as inline `buttons` rather than asking in free text. With buttons and wait_for_response (the default), this call waits for the user to tap one and returns it as `selected_option` — the toolkit collapses the keyboard to the choice automatically, so you do not react to the tap yourself. If no tap arrives in the wait window, `timed_out` is true and `next_offset` lets you resume waiting without re-sending. Reserve a plain (button-less) message for statements or genuinely open-ended questions.
1
Convert text to speech using OpenAI TTS and send it as an audio message on Telegram. Generates an MP3 audio file from the provided text using OpenAI's text-to-speech API, then sends it to the specified Telegram chat.
2
Resume waiting for an inline-button tap on a message that was already sent with buttons. Use this only to keep waiting after an earlier attempt's wait window elapsed without a tap — it does NOT send anything. It is a bounded long-poll on Telegram's getUpdates: it waits a short window for a tap on the given message, and when one happens the toolkit acknowledges it and collapses the keyboard to the chosen option (no agent round-trip), returning the choice as selected_option. If the window elapses with no tap, it returns timed_out=true with a next_offset cursor to resume from again. Cannot be used while the bot has an active webhook, because getUpdates and webhooks are mutually exclusive.
1
Wait for the next new message in a Telegram private chat, returning as soon as one arrives. This is a bounded long-poll built on Telegram's getUpdates: it waits up to timeout_seconds for a new message in the given chat. If one or more arrive, they are returned immediately with timed_out set to false. If the budget elapses with nothing, it returns an empty message list with timed_out set to true and a next_offset cursor, so you can call again with that next_offset to keep waiting. On the first call, leave offset at 0: the tool skips any already-pending backlog and waits for messages that arrive after the call begins. To read pending messages without waiting, retrieve the chat's recent messages instead. Returns messages from private (1:1) chats only — group and channel messages are excluded for security, since any group member could inject content. This tool cannot be used while the bot has an active webhook, because getUpdates and webhooks are mutually exclusive.
1
Get information about the Telegram bot. Returns the bot's identity including its ID, username, and capabilities.
1
Last updated on