All integrations

Telegram

MESSAGING · MESSAGING

Conversations read and replied to from the Telegram account they pair.

Connecting Telegram in practice

Telegram’s bot limits live in the FAQ rather than the API reference, and they are per-scope rather than global: roughly one message per second in a single chat, no more than 20 per minute in a group, and about 30 per second for bulk broadcasts. The download ceiling is also tighter than the upload one — getFile only works for files up to 20 MB, while a bot can send files up to 50 MB.

Scopes that draw scrutiny

  • Bot token The only credential, of the form 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11, issued by @BotFather. There are no scopes; what the bot can see in a group depends on privacy mode, and getMe is the only place that reports whether it is disabled.

Rate limits

  • In a single chat, "avoid sending more than one message per second". Short bursts are tolerated, "but eventually you’ll begin receiving 429 errors".
  • In a group, bots "are not be able to send more than 20 messages per minute".
  • For bulk notifications, bots are "not able to broadcast more than about 30 messages per second" unless paid broadcasts are enabled.
  • Paid broadcasts raise the ceiling to 1,000 messages per second at 0.1 Stars per message above the free 30 per second, and require at least 100,000 Stars on the bot’s balance and at least 100,000 monthly active users.
  • getUpdates `limit` accepts 1–100 and defaults to 100; a webhook’s `max_connections` accepts 1–100 and defaults to 40.

Worth knowing

  • getUpdates and webhooks are mutually exclusive: "You will not be able to receive updates using getUpdates for as long as an outgoing webhook is set up."
  • Webhooks are only accepted on ports 443, 80, 88 and 8443, which rules out most default application ports.
  • getFile "will only work with files of up to 20 MB in size", so a bot can send a 50 MB file it cannot then fetch back through the same API.
  • Running a self-hosted Local Bot API Server changes the physics: downloads lose their size limit entirely and uploads rise to 2000 MB, so behaviour differs between the cloud API and a local server.

Checked against Telegram Bot API (2026-09-29), Telegram bots FAQ (2026-09-29)

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

telegram_delete_chats_by_chat_idWRITE

Delete a chat. DELETE /api/v1/chats/{chat_id}. Delete a chat. Supported for WhatsApp and LinkedIn only.

delete
telegram_delete_messages_by_message_idWRITE

Delete a message. DELETE /api/v1/messages/{message_id}. Delete a message. Supported for WhatsApp and LinkedIn only. For LinkedIn, it is only possible within the first 60 minutes after the message is sent.

delete
telegram_get_chat_attendeesREAD

List all attendees. GET /api/v1/chat_attendees. Returns a list of messaging attendees. Some optional parameters are available to filter the results.

read
telegram_get_chat_attendees_by_attendee_id_chatsREAD

List all 1to1 chats for a given attendee. GET /api/v1/chat_attendees/{attendee_id}/chats. Returns a list of chats where a given attendee is involved.

read
telegram_get_chat_attendees_by_attendee_id_syncREAD

Resynchronize chats for a given attendee. GET /api/v1/chat_attendees/{attendee_id}/sync. Starts or monitors the synchronization of all chats for a given attendee.

read
telegram_get_chat_attendees_by_idREAD

Retrieve an attendee. GET /api/v1/chat_attendees/{id}. The id of the wanted attendee.

read
telegram_get_chat_attendees_by_id_pictureREAD

Download a chat attendee picture. GET /api/v1/chat_attendees/{id}/picture. Download the profile picture of an attendee or picture of a group chat.

read
telegram_get_chat_attendees_by_sender_id_messagesREAD

List all messages for a given attendee. GET /api/v1/chat_attendees/{sender_id}/messages. Returns a list of messages where a given attendee is involved.

read
telegram_get_chatsREAD

List all chats. GET /api/v1/chats. Returns a list of chats. Some optional parameters are available to filter the results.

read
telegram_get_chats_by_chat_idREAD

Retrieve a chat. GET /api/v1/chats/{chat_id}. Retrieve the details of a chat.

read
telegram_get_chats_by_chat_id_attendeesREAD

List all attendees from a chat. GET /api/v1/chats/{chat_id}/attendees. Returns a list of messaging attendees related to a given chat. Some optional parameters are available to filter the results.

read
telegram_get_chats_by_chat_id_messagesREAD

List all messages from a chat. GET /api/v1/chats/{chat_id}/messages. Returns a list of messages related to the given chat. Some parameters are available to filter the results.

read
telegram_get_chats_by_chat_id_syncREAD

Synchronize a conversation from its beginning. GET /api/v1/chats/{chat_id}/sync. This route can be used both to initiate a synchronization process and to monitor its status via regular polling.

read
telegram_get_messagesREAD

List all messages. GET /api/v1/messages. Returns a list of messages. Some optional parameters are available to filter the results.

read
telegram_get_messages_by_message_idREAD

Retrieve a message. GET /api/v1/messages/{message_id}. Retrieve the details of a message.

read
telegram_get_messages_by_message_id_attachments_by_attachment_idREAD

Retrieve an attachment from a message. GET /api/v1/messages/{message_id}/attachments/{attachment_id}. Retrieve one of the attachment linked to a message. The provider answers this route with the file's raw bytes. This connection has no artifact transport, so the tool returns the file's content type and byte length instead of its contents.

read
telegram_patch_chats_by_chat_idWRITE

Perform an action on a given chat. PATCH /api/v1/chats/{chat_id}. Perform an action like changing the read status, muting the chat, retrieving a group invite link, etc.

write
telegram_patch_messages_by_message_idWRITE

Edit a message. PATCH /api/v1/messages/{message_id}. Edit a message. Supported for WhatsApp and LinkedIn Classic only. WhatsApp may reject edits after an indicative 15-minute window following the original send time. LinkedIn Classic edits are only possible within the first 60 minutes after the message is sent.

write
telegram_post_chatsWRITE

Start a new chat. POST /api/v1/chats. IRREVERSIBLE OUTWARD ACTION: this is visible to someone other than the account owner and cannot be undone through this API. Start a new conversation with one or more attendee. Attachments are not supported on this connection: the messaging provider accepts this operation only as multipart/form-data, and its file properties (attachments, linkedin.follow_up.attachments, video_message, voice_message) are omitted from this tool's schema because unbounded bytes must not enter a tool argument. Every text field is available and is sent as a multipart text part.

write
telegram_post_chats_by_chat_id_messagesWRITE

Send a message in a chat. POST /api/v1/chats/{chat_id}/messages. IRREVERSIBLE OUTWARD ACTION: this is visible to someone other than the account owner and cannot be undone through this API. Send a message to the given chat with the possibility to link some attachments. Attachments are not supported on this connection: the messaging provider accepts this operation only as multipart/form-data, and its file properties (attachments, video_message, voice_message) are omitted from this tool's schema because unbounded bytes must not enter a tool argument. Every text field is available and is sent as a multipart text part.

write
telegram_post_messages_by_message_id_forwardWRITE

Forward a message. POST /api/v1/messages/{message_id}/forward. IRREVERSIBLE OUTWARD ACTION: this is visible to someone other than the account owner and cannot be undone through this API. Forward a message to a chat. (Whatsapp only)

write
telegram_post_messages_by_message_id_reactionWRITE

Add a reaction to a message. POST /api/v1/messages/{message_id}/reaction. IRREVERSIBLE OUTWARD ACTION: this is visible to someone other than the account owner and cannot be undone through this API. Add a reaction to a message. (Whatsapp, LinkedIn, Telegram, Instagram)

write

Put Telegram behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.