Telegram is a cloud-based messaging platform, and the Telegram Bot API lets developers build bots that read messages, send content, and manage conversations inside individual chats, groups, channels, and forum topics. Bots authenticate with a single token issued by Telegram's BotFather and communicate over a plain HTTPS interface, with no OAuth flow or app registration process required. The API supports both pulling new activity from a bot's update queue and pushing messages, media, polls, and moderation actions back into a chat, making it a common building block for support automation, alerting, and AI agent delivery channels.
Power end-to-end data operations for your Telegram API with Nexla. Our bi-directional Telegram connector is purpose-built for Telegram, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Telegram or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Telegram workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
Before creating a Telegram credential in Nexla, you need a Bot Token issued by Telegram's BotFather. Telegram bots authenticate by embedding this token directly in the request URL (https://api.telegram.org/bot<token>/METHOD_NAME) rather than through an Authorization header, and there is no separate OAuth application to register.
To obtain your Bot Token:
Open Telegram and start a chat with @BotFather, Telegram's official bot for creating and managing other bots.
Send the /newbot command and follow the prompts to choose a display name and a unique username for your bot (the username must end in bot, for example my_nexla_bot).
BotFather replies with a message confirming the bot was created, along with its authentication token — a string formatted like 123456789:AAHfisKZ8WmR2zSjiQ7_v4TMAKdiHm9T0.
Copy the token and store it securely. Anyone with the token can send messages and perform actions as your bot, so treat it like a password.
If you plan to use a source endpoint that reads messages from groups (such as Get Updates or Get Chat Messages), note that Telegram enables privacy mode by default for every new bot. In privacy mode, getUpdates only receives commands, @mentions, and replies to the bot in group chats — not every message. To receive all group messages, message @BotFather, send /setprivacy, select your bot, and choose Disable, then remove and re-add the bot to the group for the change to take effect.
To send messages to a group, supergroup, or channel, the bot must first be added as a member of that chat. Moderation actions such as deleting messages, managing chat administrators, or approving join requests additionally require the bot to be promoted to admin with the relevant permission enabled. If your Bot Token is compromised, message @BotFather, send /mybots, select the affected bot, then choose API Token > Revoke current token to invalidate it immediately and issue a new one. For the complete list of methods and parameters, see the Telegram Bot API documentation.
Authenticate using a Telegram Bot Token from @BotFather. The token is embedded in all API request URLs — no Authorization header is used.
Field
Required
Secret
Description
Bot Token
Yes
Yes
Unique authentication token for your Telegram bot. Obtain via @BotFather using /newbot. Format: {bot_id}:{secret} e.g. 7123456789:AAHfisKZ8WmR2zSjiQ7_v4TMAKdiHm9T0
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter your bot's token in the Bot Token field. This is the token you obtained from @BotFather in Prerequisites, formatted as {bot_id}:{secret}. Telegram embeds this token directly in the URL of every API request rather than sending it as an Authorization header.
If your Bot Token is compromised, message @BotFather, send /mybots, select the bot, then choose API Token > Revoke current token to invalidate it immediately and issue a new one. Update the credential in Nexla with the new token afterward.
Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Telegram connector tile, then select the credential that will be used to connect to your Telegram bot, and click Next; or, create a new Telegram credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Telegram Bot API endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.
Get Updates
Pull all incoming bot updates via POST body. Supports filtering by update type via the Allowed Update Type parameter.
Set the Limit field (optional) — Number of updates to fetch per request. Accepted values: 1–100. Defaults to 100.
Set the Allowed Update Types field (optional) — Update type to filter the queue. Leave empty to receive all types. Note: only applies to future queue entries — drain existing queue first by setting start.id.from to the latest update_id before switching filters. Options: message, callback_query, poll_answer, inline_query, channel_post, edited_message, my_chat_member.
Pull only message-type updates from the bot's update queue. Filters out callback queries, polls, inline queries, and other noise — clean message feed for downstream AI/NLP pipelines.
Set the Limit field (optional) — Number of message updates to fetch per request. Accepted values: 1–100. Defaults to 100.
Retrieve full metadata for a chat, group, supergroup, or channel. Returns name, type, description, invite link, member count, slow mode, and admin permissions.
Set the Chat ID field — Unique identifier of the target chat. Positive integers for DMs, negative for groups/supergroups (e.g. -1001234567890), or @username for public channels.
Fetch the full list of administrators in a group or supergroup. Returns user profile, custom title, and per-admin permission flags. Useful for access control and audit pipelines.
Set the Chat ID field — Unique identifier of the group or supergroup. Use a negative integer (e.g. -1001234567890) or @channel_username.
Returns the bot's own identity — id, username, first_name, and capability flags. Use as a connectivity check or to populate bot metadata in downstream systems.
No additional configuration is required beyond selecting this endpoint template.
Fetch file metadata and a temporary download path for a file by file_id. Construct the download URL as: https://api.telegram.org/file/bot{token}/{file_path}. Max 20 MB.
Set the File ID field — Unique identifier for a file received by the bot (from a message's document, photo, audio, etc. objects). Max downloadable size 20 MB.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Telegram data sources can also be manually configured to ingest data from any valid Telegram Bot API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Telegram data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the Telegram destination, and select the Send to Destination option from the menu. Select the Telegram connector from the list of available destination connectors, then select the credential that will be used to connect to your Telegram bot, and click Next; or, create a new Telegram credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Telegram Bot API endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Send Message
Send a text message. Record must supply chat_id and text. Primary AI agent delivery endpoint.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Forward a message from one chat to another. Record must contain chat_id (destination), from_chat_id (source), and message_id. Core endpoint for AI triage and message routing workflows.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Edit the text of a previously sent bot message. Record must contain chat_id, message_id, and text. Use for streaming AI responses, live status updates, and score/metric dashboards in chat.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Delete a message by chat_id and message_id. Bot must have delete_messages admin permission in groups/channels. Use for moderation pipelines and expiring bot-sent notifications.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Send a native Telegram poll. Record must contain chat_id, question, and options (JSON array of strings). Supports quiz mode, anonymous voting, multiple answers, and scheduled close time.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Copy a message without forwarding attribution. Record must contain chat_id, from_chat_id, and message_id. Returns MessageId of the copy.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Edit the caption of a media message. Record must contain chat_id, message_id, and caption. Supports parse_mode and reply_markup.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Replace the inline keyboard on a previously sent bot message. Record must contain chat_id, message_id, and reply_markup.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Send a photo by file_id, URL, or multipart upload. Record must supply chat_id and photo. Optional caption up to 1024 chars.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Send a file by file_id or URL. Record must supply chat_id and document. Optional caption up to 1024 chars. Max 50 MB.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Send a video by file_id or URL. Record must supply chat_id and video. Optional caption, duration, width, and height. Max 50 MB.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Send an audio file (MP3/M4A) by file_id or URL. Record must supply chat_id and audio. Telegram displays it in the music player. Max 50 MB.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Send a group of 2–10 photos/videos as an album. Record must supply chat_id and media (JSON array of InputMediaPhoto/Video objects).
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Respond to an inline keyboard button press. Record must contain callback_query_id. Optional text, show_alert, url, and cache_time.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Send a .WEBP, .TGS, or .WEBM sticker by file_id or URL. Record must supply chat_id and sticker.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Send a venue location card with title and address. Record must contain chat_id, latitude, longitude, title, and address.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Register an HTTPS URL to receive bot updates via webhook. Record must supply url. Mutually exclusive with getUpdates — call deleteWebhook first to switch.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Remove webhook integration to switch back to getUpdates polling. Record may include drop_pending_updates: true to clear the pending update queue.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Send a GIF or H.264/MPEG-4 AVC video without sound. Record must supply chat_id and animation (file_id or URL). Optional caption, duration, width, height.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Send an OGG audio file as a voice message. Record must supply chat_id and voice (file_id or URL). Optional caption and duration.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Send a map point by coordinates. Record must supply chat_id, latitude, and longitude. Optional live_period (60–86400 s) for live location sharing.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Send a phone contact card. Record must supply chat_id, phone_number, and first_name. Optional last_name and vcard.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Show a typing/uploading status indicator in a chat. Record must supply chat_id and action (e.g. typing, upload_photo, upload_document, record_voice).
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Replace the media content of a bot message. Record must supply chat_id, message_id, and media (InputMedia JSON object with type and media fields).
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Approve a pending join request for a chat with join-by-request enabled. Record must contain chat_id and user_id. Bot needs can_invite_users admin right.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Decline a pending join request for a chat with join-by-request enabled. Record must contain chat_id and user_id. Bot needs can_invite_users admin right.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Set a custom title (badge) for an admin promoted by the bot. Record must contain chat_id, user_id, and custom_title (0–16 chars, UTF-8).
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Generate a new secondary invite link for a chat. Record must contain chat_id. Optional name, expire_date, member_limit, and creates_join_request.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Change the description of a group, supergroup, or channel. Record must contain chat_id. Pass empty description to remove it. Bot must be an admin.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Create a new topic in a forum supergroup. Record must contain chat_id and name (1–128 chars). Optional icon_color and icon_custom_emoji_id.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Edit the name or icon of a forum topic. Record must contain chat_id and message_thread_id. Optional name and icon_custom_emoji_id.
This endpoint sends each record from your Nexset as a separate JSON POST request to the Telegram Bot API. Map the fields named in the description above from your Nexset record.
Telegram destinations can also be manually configured to send data to any valid Telegram Bot API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
Telegram Bot API endpoints expect JSON in the request body for every method listed above. For methods that modify an existing message (such as editing text, captions, or reply markup, or deleting a message), include the chat_id and message_id of the target message in the request body — Telegram does not use RESTful resource IDs in the URL path for these methods.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Telegram endpoint, open the destination resource menu, and select Activate.
The Nexset data will not be sent to the Telegram endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.