Bot API methods
This page lists every HTTP method in the Buzzio Bot API the same way Telegram Bot API does: one heading per method, a short “Use this method to…” explanation, then a parameter table.
Host: https://developers.buzzio.dev/bot<token>/<method>
Also: POST /v1/<method> with Authorization: Bearer <token>
Envelope: { "ok": true, "result": … } or { "ok": false, "error_code": 400, "description": "…" }
Auth, types, webhooks, and limits: Bot API. Room grants: Worker bots. Console: developers.buzzio.dev/console.
150 names. Wave I (stories, inline, games, logOut / close) is documented here so ports can compile against the name. Those calls return 404 until that wave ships. Telegram payments / Stars / invoices are not in this catalog — those names also return 404. Bot premium APIs (setMyPremium, grantUserPremium, …) are not offered and also return 404.
chat_id is always a string. Outgoing media is an HTTPS URL you host. Incoming user media is a 7-day bzfile_…. The Worker never GETs your URL.
Index
Getting updates
Available methods
Sending messages
sendMessagesendPhotosendVideosendAudiosendDocumentsendAnimationsendVoicesendVideoNotesendStickersendLocationsendVenuesendContactsendPollsendDicesendMediaGroupsendChecklistsendLivePhotosendMessageDraftsendRichMessagesendChatActionsendScheduledMessage
Updating messages
editMessageTexteditMessageCaptioneditMessageMediaeditMessageReplyMarkupeditMessageChecklisteditMessageLiveLocationstopMessageLiveLocationstopPolldeleteMessagedeleteMessagescopyMessagecopyMessagesforwardMessageforwardMessagespinChatMessageunpinChatMessageunpinAllChatMessagessetMessageReactiondeleteMessageReactiondeleteAllMessageReactionsdeleteEphemeralMessageeditEphemeralMessageTexteditEphemeralMessageCaptioneditEphemeralMessageMediaeditEphemeralMessageReplyMarkupgetFile
Stickers
uploadStickerFilecreateNewStickerSetaddStickerToSetreplaceStickerInSetsetStickerPositionInSetdeleteStickerFromSetdeleteStickerSetgetStickerSetsetStickerSetTitlesetStickerSetThumbnailsetCustomEmojiStickerSetThumbnailsetStickerEmojiListsetStickerKeywordssetStickerMaskPositiongetCustomEmojiStickerssetChatStickerSetdeleteChatStickerSet
Inline mode, callbacks, Mini Apps
answerCallbackQueryanswerInlineQuery(not enabled)answerWebAppQuery(not enabled)answerGuestQuery(not enabled)savePreparedInlineMessage(not enabled)savePreparedKeyboardButton(not enabled)sendRichMessageDraft(not enabled)
Chat management
getChatgetChatAdministratorsgetChatMembergetChatMemberCountleaveChatsetChatTitlesetChatDescriptionsetChatPhotodeleteChatPhotosetChatPermissionssetChatAdministratorCustomTitlesetChatMemberTagbanChatMemberunbanChatMemberrestrictChatMemberkickChatMemberbanChatSenderChatunbanChatSenderChatsetMyDefaultAdministratorRightsgetMyDefaultAdministratorRights
Forum topics → community channels
getForumTopicIconStickerscreateForumTopiceditForumTopiccloseForumTopicreopenForumTopicdeleteForumTopicunpinAllForumTopicMessageseditGeneralForumTopiccloseGeneralForumTopicreopenGeneralForumTopichideGeneralForumTopicunhideGeneralForumTopicunpinAllGeneralForumTopicMessages
Invite links and join requests
createChatInviteLinkeditChatInviteLinkrevokeChatInviteLinkexportChatInviteLinkapproveChatJoinRequestdeclineChatJoinRequestanswerChatJoinRequestQuerysendChatJoinRequestWebApp
Bot profile, commands, menu button
setMyCommandsgetMyCommandsdeleteMyCommandssetChatMenuButtongetChatMenuButtonsetMyNamegetMyNamesetMyDescriptiongetMyDescriptionsetMyShortDescriptiongetMyShortDescriptionsetMyProfilePhotoremoveMyProfilePhoto
Stories
postStory(not enabled)editStory(not enabled)deleteStory(not enabled)repostStory(not enabled)
Suggested posts
approveSuggestedPost(not enabled)declineSuggestedPost(not enabled)
Games
sendGame(not enabled)setGameScore(not enabled)getGameHighScores(not enabled)
Buzzio-native methods
getMyPermissionsgetMyInstallsgetBotStatsgetWebhookDeliveriesretryWebhookgetChatHistoryresolveUsernamereportMessage
Getting updates
Use either long polling or a webhook — never both. If a webhook URL is set, getUpdates returns 409.
getUpdates
Use this method to receive incoming updates using long polling. An Array of Update objects is returned. Confirmed updates (id less than offset) are dropped.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| offset | Integer | Optional | Identifier of the first update to be returned. Confirm a batch by passing last update_id + 1. |
| limit | Integer | Optional | Limits the number of updates to be retrieved. Values 1–100. Defaults to 100. |
| timeout | Integer | Optional | Timeout in seconds for long polling. 0–25 (Worker budget). Defaults to 0 (short poll). |
| allowed_updates | Array of String | Optional | List of update types you want. Also persistable via setAllowedUpdates / setWebhook. |
Returns: Array of Update
- Returns 409 if a webhook is active. Call deleteWebhook first.
- Pending polling updates are kept about 24 hours, cap about 1000 per bot; oldest are dropped.
setWebhook
Use this method to specify a URL and receive incoming updates via an outgoing webhook. Whenever there is an update for the bot, Buzzio POSTs one Update JSON body to that URL. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | String | Yes | HTTPS URL to send updates to. Empty string removes the webhook (same as deleteWebhook). http://127.0.0.1 is allowed for local tests. |
| drop_pending_updates | Boolean | Optional | Pass True to drop all pending updates. |
| allowed_updates | Array of String | Optional | JSON-serialized list of the update types you want your bot to receive. Defaults to all types this token kind may receive. |
| secret_token | String | Optional | Ignored today. Verify X-Buzzio-Signature instead (HMAC-SHA256 of botId.timestamp.body). |
| max_connections | Integer | Optional | Ignored today. Buzzio delivers sequentially per bot. |
| ip_address | String | Optional | Ignored today. Do not rely on a fixed egress IP. |
Returns: True
- Setting a webhook stops polling. Console “save webhook” writes the same field.
- Reply HTTP 2xx quickly, then call Bot API methods asynchronously.
- Headers:
X-Buzzio-Timestamp,X-Buzzio-Bot-Id,X-Buzzio-Signature: sha256=<hex>.
deleteWebhook
Use this method to remove webhook integration if you decide to switch back to getUpdates. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| drop_pending_updates | Boolean | Optional | Pass True to drop all pending updates. |
Returns: True
- After this call, getUpdates works again.
getWebhookInfo
Use this method to get current webhook status. Requires no parameters. On success, returns a WebhookInfo object. If the bot is using getUpdates, the url field is empty.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters |
Returns: WebhookInfo (url, pending_update_count, last_error_message?, last_error_date?, allowed_updates?)
setAllowedUpdates
Use this method to persist the update types this bot receives on webhooks and getUpdates. On success, True is returned.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| allowed_updates | Array of String | Yes | Subset of: message, edited_message, callback_query, poll, poll_answer, message_reaction, message_reaction_count, chat_member, my_chat_member, chat_join_request, bot_added, bot_removed, permissions_changed, channel_post, edited_channel_post, inline_query, chosen_inline_result. Empty / omit-all-known restores the default (all types this token may receive). |
Returns: True
- Buzzio-native. Same list is accepted on setWebhook. Unknown type names return 400.
Available methods
A simple method for testing your bot’s auth token, plus session helpers that are not enabled yet.
getMe
A simple method for testing your bot's authentication token. Requires no parameters. Returns basic information about the bot in form of a User object.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters |
Returns: User: id (string), is_bot (true), first_name (display name), username, kind (service or worker), can_join_groups (true for workers).
idis a string, not a Telegram integer.
logOut
Use this method to log out from the cloud Bot API server before launching the bot locally. Buzzio will drop the webhook and the polling cursor. The Forge token stays valid until you rotate it.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters |
Returns: True
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
close
Use this method to close the bot instance before moving it from one local server to another. On Buzzio this is the same job as logOut (muscle memory for Telegram local Bot API).
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters |
Returns: True
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
Sending messages
All send* methods return Message. Service bots talk in botdm_*; workers talk in accepted rooms. Media is always an HTTPS URL you host.
sendMessage
Use this method to send text messages. On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| text | String | Yes | Text of the message to be sent, 1–4000 characters after entities parsing. Not required if you send photo/video/audio/document on this same call (legacy v1 shape). |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
| disable_notification | Boolean | Optional | Sends the message silently. Users still receive it. |
| ephemeral | Boolean | Optional | If true, the bubble vanishes (default TTL 60 seconds). Long-press still works until it expires. |
| ephemeral_ttl | Integer | Optional | Vanish TTL in seconds. 5–3600. Default 60 when ephemeral is true. |
| photo | String | Optional | Legacy: HTTPS photo URL on sendMessage. Prefer sendPhoto. |
| video | String | Optional | Legacy: HTTPS video URL. Prefer sendVideo. |
| audio | String | Optional | Legacy: HTTPS audio URL. Prefer sendAudio. |
| document | String | Optional | Legacy: HTTPS file URL. Prefer sendDocument. |
| media | InputMedia | Optional | Legacy { "type": "photo", "url": "https://…" } still accepted on /v1/sendMessage. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
- Community
@everyone/@here/@role/@usernameneed the Can tag grant. Restricted messaging needs Bypass slow mode.
sendPhoto
Use this method to send photos. On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| photo | String | Yes | HTTPS URL of the photos you host. Buzzio never GETs this URL. Localhost, raw IPs, and uploaded bytes are rejected. |
| caption | String | Optional | Caption, 0–1024 characters after entities parsing. text is also accepted. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
| disable_notification | Boolean | Optional | Sends the message silently. Users still receive it. |
| ephemeral | Boolean | Optional | If true, the bubble vanishes (default TTL 60 seconds). Long-press still works until it expires. |
| ephemeral_ttl | Integer | Optional | Vanish TTL in seconds. 5–3600. Default 60 when ephemeral is true. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected. - Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
sendVideo
Use this method to send video files. On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| video | String | Yes | HTTPS URL of the video files you host. Buzzio never GETs this URL. Localhost, raw IPs, and uploaded bytes are rejected. |
| caption | String | Optional | Caption, 0–1024 characters after entities parsing. text is also accepted. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
| disable_notification | Boolean | Optional | Sends the message silently. Users still receive it. |
| ephemeral | Boolean | Optional | If true, the bubble vanishes (default TTL 60 seconds). Long-press still works until it expires. |
| ephemeral_ttl | Integer | Optional | Vanish TTL in seconds. 5–3600. Default 60 when ephemeral is true. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected. - Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
sendAudio
Use this method to send audio files. On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| audio | String | Yes | HTTPS URL of the audio files you host. Buzzio never GETs this URL. Localhost, raw IPs, and uploaded bytes are rejected. |
| caption | String | Optional | Caption, 0–1024 characters after entities parsing. text is also accepted. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
| disable_notification | Boolean | Optional | Sends the message silently. Users still receive it. |
| ephemeral | Boolean | Optional | If true, the bubble vanishes (default TTL 60 seconds). Long-press still works until it expires. |
| ephemeral_ttl | Integer | Optional | Vanish TTL in seconds. 5–3600. Default 60 when ephemeral is true. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected. - Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
sendDocument
Use this method to send general files. On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| document | String | Yes | HTTPS URL of the general files you host. Buzzio never GETs this URL. Localhost, raw IPs, and uploaded bytes are rejected. |
| caption | String | Optional | Caption, 0–1024 characters after entities parsing. text is also accepted. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
| disable_notification | Boolean | Optional | Sends the message silently. Users still receive it. |
| ephemeral | Boolean | Optional | If true, the bubble vanishes (default TTL 60 seconds). Long-press still works until it expires. |
| ephemeral_ttl | Integer | Optional | Vanish TTL in seconds. 5–3600. Default 60 when ephemeral is true. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected. - Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
sendAnimation
Use this method to send animation files (GIF or H.264/MPEG-4 AVC video without sound). On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| animation | String | Yes | HTTPS URL of the animation files (GIF or H.264/MPEG-4 AVC video without sound) you host. Buzzio never GETs this URL. Localhost, raw IPs, and uploaded bytes are rejected. |
| caption | String | Optional | Caption, 0–1024 characters after entities parsing. text is also accepted. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
| disable_notification | Boolean | Optional | Sends the message silently. Users still receive it. |
| ephemeral | Boolean | Optional | If true, the bubble vanishes (default TTL 60 seconds). Long-press still works until it expires. |
| ephemeral_ttl | Integer | Optional | Vanish TTL in seconds. 5–3600. Default 60 when ephemeral is true. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected. - Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
sendVoice
Use this method to send voice notes (OGG / M4A URL you host). On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| voice | String | Yes | HTTPS URL of the voice notes (OGG / M4A URL you host) you host. Buzzio never GETs this URL. Localhost, raw IPs, and uploaded bytes are rejected. |
| caption | String | Optional | Caption, 0–1024 characters after entities parsing. text is also accepted. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
| disable_notification | Boolean | Optional | Sends the message silently. Users still receive it. |
| ephemeral | Boolean | Optional | If true, the bubble vanishes (default TTL 60 seconds). Long-press still works until it expires. |
| ephemeral_ttl | Integer | Optional | Vanish TTL in seconds. 5–3600. Default 60 when ephemeral is true. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected. - Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
sendVideoNote
Use this method to send video messages (round video notes). On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| video_note | String | Yes | HTTPS URL of the round video you host. Buzzio never GETs this URL. Localhost, raw IPs, and uploaded bytes are rejected. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
| disable_notification | Boolean | Optional | Sends the message silently. Users still receive it. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected.
sendSticker
Use this method to send static .WEBP, animated .TGS, or video .WEBM stickers. On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| sticker | String | Yes | HTTPS URL you host, or a bzstk_… file_id from a sticker set this bot registered with uploadStickerFile / createNewStickerSet. |
| emoji | String | Optional | Emoji associated with the sticker; stored with the message, not required. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
| disable_notification | Boolean | Optional | Sends the message silently. Users still receive it. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected. - Human pack import stays on sticker-api.buzzio.dev. This method sends one sticker into the chat.
sendLocation
Use this method to send point on the map. On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| latitude | Float | Yes | Latitude of the location. |
| longitude | Float | Yes | Longitude of the location. |
| live_period | Integer | Optional | Period in seconds for which the location will be updated. 60–28800 (8 hours). Omit for a static pin. |
| horizontal_accuracy | Float | Optional | The radius of uncertainty for the location, in meters. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
| disable_notification | Boolean | Optional | Sends the message silently. Users still receive it. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Live pins are moved with editMessageLiveLocation and frozen with stopMessageLiveLocation.
sendVenue
Use this method to send information about a venue. On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| latitude | Float | Yes | Latitude of the venue. |
| longitude | Float | Yes | Longitude of the venue. |
| title | String | Yes | Name of the venue. |
| address | String | Yes | Address of the venue. |
| foursquare_id | String | Optional | Foursquare identifier of the venue, if known. |
| google_place_id | String | Optional | Google Places identifier of the venue, if known. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id.
sendContact
Use this method to send phone contacts. On success, the sent Message is returned. Buzzio does not leak real phone numbers: this is a contact card.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| phone_number | String | Optional | Contact phone. Optional on Buzzio; omit to send a phone-less card. |
| first_name | String | Yes | Contact's first name. Use a label, not a scraped profile name. |
| last_name | String | Optional | Contact's last name. |
| user_id | String | Optional | Ghost id (ghost_…) of a Buzzio user in this chat. Do not pass sealed-person ids. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
sendPoll
Use this method to send a native poll. On success, the sent Message is returned. Votes arrive as Update poll_answer.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| question | String | Yes | Poll question, 1–300 characters. |
| options | Array of String or InputPollOption | Yes | 2–10 answer options. |
| is_anonymous | Boolean | Optional | True, if the poll needs to be anonymous. Defaults to True. |
| type | String | Optional | Poll type, quiz or regular. Defaults to regular. |
| allows_multiple_answers | Boolean | Optional | True, if the poll allows multiple answers. Ignored for quizzes. |
| correct_option_id | Integer | Optional | 0-based identifier of the correct answer option. Required for quizzes. |
| explanation | String | Optional | Text that is shown when a user chooses an incorrect answer or taps the lamp in a quiz. |
| open_period | Integer | Optional | Amount of time in seconds the poll will be active after creation, 5–600. |
| is_closed | Boolean | Optional | Pass True if the poll needs to be immediately closed. This can be useful for poll preview. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id.
sendDice
Use this method to send an animated emoji that will display a random value. On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| emoji | String | Optional | Emoji on which the dice throw animation is based. Currently 🎲, 🎯, 🎳 (1–6), 🏀, ⚽ (1–5), or 🎰 (1–64). Defaults to 🎲. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - The value is chosen server-side. Do not send a
valueof your own.
sendMediaGroup
Use this method to send a group of photos, videos, documents or audios as an album. On success, an array of Messages that were sent is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| media | Array of InputMedia | Yes | A JSON-serialized array describing messages to be sent, 2–10 items. Each item needs type and an HTTPS url you host. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
| disable_notification | Boolean | Optional | Sends the message silently. Users still receive it. |
Returns: Array of Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected.
sendChecklist
Use this method to send a checklist (chat todos). On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| title | String | Yes | Title of the checklist. |
| tasks | Array of InputChecklistTask | Yes | 1–30 tasks. Each has text. Also accepts items. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id.
sendLivePhoto
Use this method to send a live photo (still + motion pair). On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| photo | String | Yes | HTTPS URL of the still image you host. Buzzio never GETs this URL. Localhost, raw IPs, and uploaded bytes are rejected. |
| video | String | Yes | HTTPS URL of the motion video you host. Buzzio never GETs this URL. Localhost, raw IPs, and uploaded bytes are rejected. |
| caption | String | Optional | Caption, 0–1024 characters after entities parsing. text is also accepted. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected.
sendMessageDraft
Use this method to stream partial text (LLM bots). Reuse draft_id / message_id until you pass done: true. On success, the Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| text | String | Yes | Current full draft text (not a delta). Max 4000. |
| draft_id | String | Optional | Your idempotency key. Reuse to edit the same bubble. |
| message_id | String | Optional | Existing draft message to replace. Alternative to draft_id. |
| done | Boolean | Optional | Pass true to freeze the bubble as a normal message. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id.
sendRichMessage
Use this method to send a structured message rendered from blocks (headings, paragraphs, lists, tables). On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| blocks | Array of RichBlock | Yes | Up to 30 blocks. Types: heading, paragraph, list, table. Also accepted as rich / content. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
Returns: Message
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - This is not HTML parse_mode. It is a block renderer after parse_mode.
sendChatAction
Use this method when you need to tell the user that something is happening on the bot's side. The status is set for 6 seconds or until you send a message, whichever comes first. Returns True on success.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| action | String | Yes | Type of action to broadcast. One of: typing, upload_photo, record_video, upload_video, record_voice, upload_voice, upload_document, choose_sticker, find_location. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
Returns: True
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id.
sendScheduledMessage
Use this method to store a bot message and send it later. On success, a scheduled-message object is returned. Buzzio-native.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| text | String | Yes | Text to send when the timer fires, 1–4000 characters. |
| send_date | Integer | Yes | Unix time when the message should be sent. Also accepts send_at. Must be 60 seconds to 30 days from now. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| message_thread_id | String | Optional | Community channel id. Telegram forum topics are Buzzio channels. Required when chat_id is the community hub and you are posting into a specific channel. |
Returns: ScheduledMessage (id, chat_id, send_date, text)
- Works with a service token in the bot DM and with a worker token in an accepted room (Send grant).
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Max 20 pending scheduled messages per bot. Fired when the Worker is already awake (Bot API call, a user message, or the daily 04:00 UTC sweep). Not a 5-minute polling cron.
Updating messages
Edit, copy, forward, pin, react, or delete. Forward/copy from sealed surfaces returns 400.
editMessageText
Use this method to edit text and game messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| text | String | Yes | New text of the message, 1–4000 characters after entities parsing. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
Returns: Message
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Inline-mode message_id is Wave I; today this edits a chat message.
editMessageCaption
Use this method to edit captions of messages. On success, the edited Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| caption | String | Optional | Caption, 0–1024 characters after entities parsing. text is also accepted. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
Returns: Message
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id.
editMessageMedia
Use this method to edit animation, audio, document, photo, or video messages. On success, the edited Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| media | InputMedia | Yes | A JSON object with type and HTTPS url you host. Buzzio never GETs the URL. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
Returns: Message
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected.
editMessageReplyMarkup
Use this method to edit only the reply markup of messages. On success, the edited Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
Returns: Message
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id.
editMessageChecklist
Use this method to edit a checklist message. On success, the edited Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| title | String | Optional | New title. |
| tasks | Array of InputChecklistTask | Optional | Replacement task list (1–30). Also accepts items. |
Returns: Message
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id.
editMessageLiveLocation
Use this method to edit live location messages. A location can be edited until its live_period expires or stopMessageLiveLocation is called. On success, the edited Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| latitude | Float | Yes | Latitude of new location. |
| longitude | Float | Yes | Longitude of new location. |
| horizontal_accuracy | Float | Optional | The radius of uncertainty for the location, in meters. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
Returns: Message
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Live period cap is 8 hours from the original sendLocation.
stopMessageLiveLocation
Use this method to stop updating a live location message before live_period expires. On success, the edited Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
Returns: Message
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id.
stopPoll
Use this method to stop a poll which was sent by the bot. On success, the stopped Poll is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
Returns: Poll
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id.
deleteMessage
Use this method to delete a message, including service messages. Returns True on success.
Status: live · Token: service and worker · Grant: Delete messages (other people’s). Own bot bubbles: Send.
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
Returns: True
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Service: the bot may delete its own DM bubbles. Worker: deleting another member’s message needs the Delete grant (OHG) or Delete other messages (community).
deleteMessages
Use this method to delete multiple messages simultaneously. If some of the specified messages can't be found, they are skipped. Returns True on success.
Status: live · Token: service and worker · Grant: Delete messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_ids | Array of String | Yes | A JSON-serialized list of 1–100 message identifiers to delete. |
Returns: True
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id.
copyMessage
Use this method to copy messages of any kind. Service messages, paid media, giveaway, and invoice messages can't be copied. The method is analogous to the method forwardMessage, but the copied message doesn't have a link to the original message. Returns the MessageId of the sent message on success.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. |
| from_chat_id | String | Yes | Unique identifier for the chat where the original message was sent. Same-chat or another chat this bot can see. |
| message_id | String | Yes | Message identifier in the chat specified in from_chat_id. |
| caption | String | Optional | Caption, 0–1024 characters after entities parsing. text is also accepted. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
Returns: MessageId
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
- Service tokens: bot DM only.
copyMessages
Use this method to copy messages of any kind. If some of the specified messages can't be found or copied, they are skipped. Service messages, paid media, giveaway, and invoice messages can't be copied. Returns an array of MessageId of the sent messages on success.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Target chat. |
| from_chat_id | String | Yes | Source chat. |
| message_ids | Array of String | Yes | A JSON-serialized list of 1–100 message identifiers to copy. They must be in a strictly increasing order. |
Returns: Array of MessageId
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
forwardMessage
Use this method to forward messages of any kind. Service messages and messages with protected content can't be forwarded. On success, the sent Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. |
| from_chat_id | String | Yes | Chat where the original message was sent. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| disable_notification | Boolean | Optional | Sends the message silently. Users still receive it. |
Returns: Message
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
- Origin label is shown. Only bot DM and shared (open-history) rooms.
forwardMessages
Use this method to forward multiple messages of any kind. If some of the specified messages can't be found or forwarded, they are skipped. Service messages and messages with protected content can't be forwarded. Returns an array of MessageId of the sent messages.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Target chat. |
| from_chat_id | String | Yes | Source chat. |
| message_ids | Array of String | Yes | A JSON-serialized list of 1–100 message identifiers to forward. They must be in a strictly increasing order. |
Returns: Array of MessageId
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
pinChatMessage
Use this method to add a message to the list of pinned messages in a chat. Returns True on success.
Status: live · Token: worker · Grant: Pin messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| disable_notification | Boolean | Optional | Pass True if it is not necessary to send a notification to all chat members about the new pinned message. |
| snippet | String | Optional | Optional pin preview text. Falls back to the message text. |
Returns: True
- Worker token only. Service tokens return 403.
unpinChatMessage
Use this method to remove a message from the list of pinned messages in a chat. Returns True on success.
Status: live · Token: worker · Grant: Pin messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| message_id | String | Optional | Identifier of a message to unpin. If not specified, the most recent pinned message (by send date) is unpinned. |
Returns: True
- Worker token only. Service tokens return 403.
unpinAllChatMessages
Use this method to clear the list of pinned messages in a chat. Returns True on success.
Status: live · Token: worker · Grant: Pin messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
Returns: True
- Worker token only. Service tokens return 403.
setMessageReaction
Use this method to change the chosen reactions on a message. Service messages of some types can't be reacted to. Automatically forwarded messages from a channel to its discussion group have the same available reactions as messages in the channel. Bots can't use paid reactions. Returns True on success.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| reaction | Array of ReactionType or String | Optional | A JSON-serialized list of reaction objects to set on the message. Buzzio currently stores one emoji from the allowlist: 👍 👎 ❤️ 🔥 😂 😮 😢 🎉 🙏 ✅ ❌. Empty list / omit clears the bot’s own reaction. |
| is_big | Boolean | Optional | Pass True to set the reaction with a big animation. |
Returns: True
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Updates:
message_reactionandmessage_reaction_count.
deleteMessageReaction
Use this method to clear the bot’s own reaction on a message. Returns True on success.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
Returns: True
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id.
deleteAllMessageReactions
Use this method to clear every reaction on a message. Returns True on success.
Status: live · Token: service and worker · Grant: Delete messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
Returns: True
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Worker may need Delete to wipe other people’s reactions.
deleteEphemeralMessage
Use this method to delete a vanish (ephemeral) bot bubble early. Returns True on success.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
Returns: True
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - The target must be ephemeral.
editEphemeralMessageText
Use this method to edit text on a vanish (ephemeral) bot message. On success, the edited Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| text | String | Yes | New text, 1–4000 characters. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
Returns: Message
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - The target must have been sent with
ephemeral: true. Ordinary messages return 400.
editEphemeralMessageCaption
Use this method to edit caption on a vanish (ephemeral) bot message. On success, the edited Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| caption | String | Optional | Caption, 0–1024 characters after entities parsing. text is also accepted. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
Returns: Message
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - The target must have been sent with
ephemeral: true. Ordinary messages return 400.
editEphemeralMessageMedia
Use this method to swap media on a vanish (ephemeral) bot message. On success, the edited Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| media | InputMedia | Yes | JSON with type and HTTPS url. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
Returns: Message
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - The target must have been sent with
ephemeral: true. Ordinary messages return 400.
editEphemeralMessageReplyMarkup
Use this method to change buttons on a vanish (ephemeral) bot message. On success, the edited Message is returned.
Status: live · Token: service and worker · Grant: Send messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
Returns: Message
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - The target must have been sent with
ephemeral: true. Ordinary messages return 400.
getFile
Use this method to get basic information about a file and prepare it for downloading. For the moment, bots can download files of up to 20MB. On success, a File object is returned. The file can then be downloaded via the link given in the url field. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile again — until the 7-day hold ends.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| file_id | String | Yes | File identifier to get information about (bzfile_… from an incoming Update, or bzstk_… from a set this bot registered). |
Returns: File (file_id, file_size?, url, expires_at)
- Incoming user media lasts 7 days, then getFile and the signed URL are 404. This is not a public CDN for developer uploads.
- Max inbound size is 2 MB. Outgoing bot media is never fetched by Buzzio — send an HTTPS URL instead of calling getFile on your own files.
Stickers
Bot-owned sets. Art stays on your HTTPS origin. The Worker never downloads WebP. Human pack import stays on sticker-api.buzzio.dev.
uploadStickerFile
Use this method to register a sticker file for later use in createNewStickerSet, addStickerToSet, or replaceStickerInSet. Returns the uploaded File on success. Buzzio does not store pixels: this call only binds an HTTPS URL you host to a bzstk_… file_id.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | String | Optional | Unused on Buzzio (Telegram requires the owner id). Ignored if sent. |
| sticker | String | Yes | HTTPS URL of the WEBP/WEBM/TGS you host. Also accepts url / png_sticker as a string URL. |
| sticker_format | String | Optional | static, animated, or video. Inferred from the URL when omitted. |
Returns: File (file_id starts with bzstk_, plus url)
- Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected. - Rejects
png_sticker.data,file.bytes, and multipart. Same-origin rules apply when you later passcontents_urlon a set.
createNewStickerSet
Use this method to create a new sticker set owned by the bot. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | String | Yes | Short name of sticker set, 1–64 characters, a-zA-Z0-9_. Used in getStickerSet. |
| title | String | Yes | Sticker set title, 1–64 characters. |
| stickers | Array of InputSticker | Optional | JSON array of stickers (HTTPS url or bzstk_…). 1–30. Required unless contents_url is set. |
| contents_url | String | Optional | HTTPS URL of a contents.json you host. Every sticker URL in that manifest must be the same origin. |
| sticker_type | String | Optional | regular (default), custom_emoji, or mask. |
| sticker_format | String | Optional | static, animated, or video. |
Returns: True
- Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected. - Bot sets may have 1–30 stickers.
@usernameof the bot is not appended;nameis yours.
addStickerToSet
Use this method to add a new sticker to a set created by the bot. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | String | Yes | Sticker set name. |
| sticker | InputSticker or String | Yes | HTTPS URL, bzstk_…, or { url, emoji_list?, keywords?, mask_position? }. |
Returns: True
- Set must belong to this bot. Cap 30 stickers.
replaceStickerInSet
Use this method to replace an existing sticker in a sticker set with a new one. The method is equivalent to calling deleteStickerFromSet, then addStickerToSet, then setStickerPositionInSet. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | String | Yes | Sticker set name. |
| old_sticker | String | Yes | bzstk_… file_id or URL of the sticker to replace. |
| sticker | InputSticker or String | Yes | Replacement HTTPS URL or bzstk_…. |
Returns: True
setStickerPositionInSet
Use this method to move a sticker in a set created by the bot to a specific position. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| sticker | String | Yes | File identifier of the sticker. |
| position | Integer | Yes | New sticker position in the set, zero-based. |
Returns: True
deleteStickerFromSet
Use this method to delete a sticker from a set created by the bot. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| sticker | String | Yes | File identifier of the sticker (bzstk_…). |
Returns: True
deleteStickerSet
Use this method to delete a sticker set that was created by the bot. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | String | Yes | Sticker set name. |
Returns: True
getStickerSet
Use this method to get a sticker set. On success, a StickerSet object is returned.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | String | Yes | Name of the sticker set. |
Returns: StickerSet (name, title, sticker_type, stickers[] with file_id + url)
- You may read this bot’s sets. There is no global sticker CDN search.
setStickerSetTitle
Use this method to set the title of a created sticker set. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | String | Yes | Sticker set name. |
| title | String | Yes | Sticker set title, 1–64 characters. |
Returns: True
setStickerSetThumbnail
Use this method to set the thumbnail of a regular or mask sticker set. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | String | Yes | Sticker set name. |
| thumbnail | String | Yes | HTTPS URL of the thumbnail you host. Also accepts thumb. |
Returns: True
- Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected.
setCustomEmojiStickerSetThumbnail
Use this method to set the thumbnail of a custom emoji sticker set. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | String | Yes | Sticker set name. |
| custom_emoji_id | String | Optional | Custom emoji identifier of a sticker from the set; empty string drops the thumb. Also accepts thumbnail as an HTTPS URL. |
Returns: True
- Set
sticker_typemust becustom_emoji.
setStickerEmojiList
Use this method to change the list of emoji assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| sticker | String | Yes | File identifier of the sticker. |
| emoji_list | Array of String | Yes | A JSON-serialized list of 1–20 emoji associated with the sticker. |
Returns: True
- Stored for search; the phone still shows the art you host.
setStickerKeywords
Use this method to change search keywords assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| sticker | String | Yes | File identifier of the sticker. |
| keywords | Array of String | Optional | A JSON-serialized list of 0–20 search keywords for the sticker, 1–64 characters each. |
Returns: True
setStickerMaskPosition
Use this method to change the mask position of a mask sticker. The sticker must belong to a sticker set created by the bot. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| sticker | String | Yes | File identifier of the sticker. |
| mask_position | MaskPosition | Optional | A JSON-serialized object with point (forehead, eyes, mouth, chin) plus x_shift, y_shift, scale. Omit to remove. |
Returns: True
- Metadata is stored. Mask rendering on avatars is a client feature.
getCustomEmojiStickers
Use this method to get information about custom emoji stickers by their identifiers. Returns an Array of Sticker objects.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| custom_emoji_ids | Array of String | Yes | A JSON-serialized list of custom emoji identifiers. Also accepts sticker_ids of bzstk_… from this bot. |
Returns: Array of Sticker
- Only stickers from sets this bot created.
setChatStickerSet
Use this method to set a new group sticker set for a chat. Returns True on success.
Status: live · Token: worker · Grant: Manage room info / Modify description
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| sticker_set_name | String | Yes | Name of the sticker set to be set as the group sticker set. Must be a set this bot created. |
Returns: True
- Worker token only. Service tokens return 403.
- Room clients cannot write
sticker_set_namethemselves.
deleteChatStickerSet
Use this method to delete a group sticker set from a supergroup. Returns True on success.
Status: live · Token: worker · Grant: Manage room info / Modify description
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
Returns: True
- Worker token only. Service tokens return 403.
Inline mode, callbacks, Mini Apps
answerCallbackQuery is live. Inline queries, Mini App answers, and prepared messages are Wave I (404 until enabled).
answerCallbackQuery
Use this method to send answers to callback queries sent from inline keyboards. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. On success, True is returned.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| callback_query_id | String | Yes | Unique identifier for the query to be answered (from Update callback_query.id). |
| text | String | Optional | Text of the notification. If not specified, nothing will be shown to the user, 0–200 characters. |
| show_alert | Boolean | Optional | If True, an alert will be shown by the client instead of a notification at the top of the chat screen. Defaults to false. |
| url | String | Optional | HTTPS URL to open. Mini App / game URLs are Wave I; a normal https link may be shown. |
| cache_time | Integer | Optional | The maximum amount of time in seconds that the result of the callback query may be cached client-side. Defaults to 0. |
Returns: True
- Always ack a tap or the client spinner stays. Empty text still counts as an ack.
answerInlineQuery
Use this method to send answers to an inline query. On success, True is returned. No more than 50 results per query are allowed. Inline mode is only offered in bot DMs and shared rooms — never in sealed 1:1, E2E groups, Whisper private chat, or Whisper Questions.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| inline_query_id | String | Yes | Unique identifier for the answered query. |
| results | Array of InlineQueryResult | Yes | A JSON-serialized array of results for the inline query. |
| cache_time | Integer | Optional | The maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300. |
| is_personal | Boolean | Optional | Pass True if results may be cached on the server side only for the user that sent the query. |
| next_offset | String | Optional | Pass the offset that a client should send in the next query with the same text to receive more results. |
| button | InlineQueryResultsButton | Optional | A JSON-serialized object describing a button to be shown above inline query results. |
Returns: True
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
answerWebAppQuery
Use this method to set the result of an interaction with a Mini App (your HTTPS page in a Buzzio sheet) and send a corresponding message on behalf of the user to the chat from which the query originated. On success, a SentWebAppMessage object is returned.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| web_app_query_id | String | Yes | Unique identifier for the query to be answered. |
| result | InlineQueryResult | Yes | A JSON-serialized object describing the message to be sent. |
Returns: SentWebAppMessage
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
answerGuestQuery
Use this method to answer a guest (unauthenticated Mini App / web preview) query. On success, True is returned. Guests still cannot see sealed chats.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| guest_query_id | String | Yes | Unique identifier for the guest query. |
| result | InlineQueryResult | Yes | A JSON-serialized result to show. |
Returns: True
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
savePreparedInlineMessage
Use this method to store a message that can be sent by a user of a Mini App. Returns a PreparedInlineMessage object.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | String | Yes | Ghost id of the user that can use the prepared message. |
| result | InlineQueryResult | Yes | A JSON-serialized object describing the message to be sent. |
| allow_user_chats | Boolean | Optional | Pass True if the message can be sent to private chats with users. Sealed 1:1 is still denied. |
| allow_bot_chats | Boolean | Optional | Pass True if the message can be sent to private chats with bots. |
| allow_group_chats | Boolean | Optional | Pass True if the message can be sent to group and supergroup chats (OHG / community only). |
Returns: PreparedInlineMessage
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
savePreparedKeyboardButton
Use this method to store a keyboard button a Mini App may attach later. Returns True on success.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | String | Yes | Ghost id of the user. |
| button | KeyboardButton | Yes | A JSON-serialized button (text, optional web_app.url). |
Returns: True
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
sendRichMessageDraft
Use this method to stream a rich-block draft (LLM bots with headings/lists). Reuse draft_id until done: true.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| blocks | Array of RichBlock | Yes | Current full block list (not a delta). |
| draft_id | String | Optional | Idempotency key. |
| done | Boolean | Optional | Pass true to freeze the bubble. |
Returns: Message
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
Chat management
Worker methods. Room admins grant power in the Buzzio app. Your server calls these methods. Buzzio rejects the call if that room did not grant it. Ban/kick is this room only — not a global Buzzio ban.
getChat
Use this method to get up-to-date information about the chat. Returns a ChatFullInfo object on success.
Status: live · Token: service and worker · Grant: Read messages (OHG). Community: installed is enough.
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
Returns: Chat (id, type, title?, chat_id). Service DMs are type: private. OHG is group. Community is supergroup.
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
getChatAdministrators
Use this method to get a list of administrators in a chat, which aren't bots. Returns an Array of ChatMember objects.
Status: live · Token: worker · Grant: View members (if the list is hidden) / Read
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
Returns: Array of ChatMember
- Worker token only. Service tokens return 403.
- Does not return other workers.
first_nameis genericUserunless the person opted in.
getChatMember
Use this method to get information about a member of a chat. The method is only guaranteed to work for other users if the bot is an administrator in the chat (Buzzio: accepted worker with the right ticks). Returns a ChatMember object on success.
Status: live · Token: worker · Grant: Read; plus View members if the member list is hidden
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| user_id | String | Yes | Ghost id of the target user (ghost_…), from message.from.id. |
Returns: ChatMember (status: creator, administrator, member, restricted, left, or kicked)
- Worker token only. Service tokens return 403.
user.first_nameisUserby default.
getChatMemberCount
Use this method to get the number of members in a chat. Returns Int on success.
Status: live · Token: worker · Grant: Read / View members
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
Returns: Integer
- Worker token only. Service tokens return 403.
leaveChat
Use this method for your bot to leave a group, supergroup or channel. Returns True on success.
Status: live · Token: worker · Grant: Always, if installed
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
Returns: True
- Worker token only. Service tokens return 403.
- Deletes the install in that room. You then receive
bot_removed. The token still works in other accepted rooms.
setChatTitle
Use this method to change the title of a chat. Titles can't be changed for private chats. Returns True on success.
Status: live · Token: worker · Grant: Manage room info
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| title | String | Yes | New chat title, 1–128 characters. |
Returns: True
- Worker token only. Service tokens return 403.
setChatDescription
Use this method to change the description of a group, a supergroup or a channel. Returns True on success.
Status: live · Token: worker · Grant: Manage room info / Modify description
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| description | String | Optional | New chat description, 0–255 characters. Also accepts text. |
Returns: True
- Worker token only. Service tokens return 403.
setChatPhoto
Use this method to set a new profile photo for the chat. Photos can't be changed for private chats. Returns True on success.
Status: live · Token: worker · Grant: Manage room info
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| photo | String | Yes | HTTPS URL of the photo you host. Buzzio never GETs it. |
Returns: True
- Worker token only. Service tokens return 403.
- Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected.
deleteChatPhoto
Use this method to delete a chat photo. Photos can't be changed for private chats. Returns True on success.
Status: live · Token: worker · Grant: Manage room info
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
Returns: True
- Worker token only. Service tokens return 403.
setChatPermissions
Use this method to set default chat permissions for all members. Returns True on success. Buzzio only maps member send / see-members on OHG — not a full Telegram ChatPermissions dump.
Status: live · Token: worker · Grant: Manage room info
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| permissions | ChatPermissions | Yes | A JSON-serialized object describing new default chat permissions. Buzzio reads can_send_messages and can_see_members (and aliases). |
Returns: True
- Worker token only. Service tokens return 403.
- Cannot grant administrator or manage_roles to anyone via this method.
setChatAdministratorCustomTitle
Use this method to set a custom title for an administrator in a supergroup promoted by the bot. Returns True on success. On Buzzio this sets a custom label on the bot itself in that room — bots cannot promote humans.
Status: live · Token: worker · Grant: Manage room info
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| user_id | String | Optional | Must be omitted or equal the bot. Promoting a human returns 403. |
| custom_title | String | Yes | New custom title for the administrator; 0–16 characters, emoji are not allowed. |
Returns: True
- Worker token only. Service tokens return 403.
- promoteChatMember is permanently excluded.
setChatMemberTag
Use this method to set a role tag on a member if community roles allow it. Returns True on success.
Status: live · Token: worker · Grant: Community roles allow a tag; never manage_roles
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| user_id | String | Yes | Ghost id of the target user (ghost_…), from message.from.id. |
| tag | String | Yes | Role tag / label allowed by the community’s existing roles. |
Returns: True
- Worker token only. Service tokens return 403.
- Cannot assign Administrator or Manage roles.
banChatMember
Use this method to ban a user in a group, a supergroup or a channel. In the case of supergroups and channels, the user will not be able to return to the chat on their own using invite links, etc., unless unbanned first. The bot must be an administrator in the chat (Buzzio: Ban tick). Returns True on success.
Status: live · Token: worker · Grant: Ban (OHG) / Ban & remove members (community)
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| user_id | String | Yes | Ghost id of the target user (ghost_…), from message.from.id. |
| until_date | Integer | Optional | Date when the user will be unbanned; unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Optional. |
| revoke_messages | Boolean | Optional | Pass True to delete all messages from the chat for the user that is being removed. |
Returns: True
- Worker token only. Service tokens return 403.
- This room only — not a global Buzzio account ban.
- 403 if the target is the creator, a human admin, another worker, or (community) a member whose highest role sits at or above the bot’s highest assignable role.
unbanChatMember
Use this method to unban a previously banned user in a supergroup or channel. The user will not return to the group automatically, but will be able to join via link, etc. The bot must be an administrator for this to work. By default, this method guarantees that after the call the user is not a member of the chat, but will be able to join it. So if the user is a member of the chat they will also be removed from the chat. If you don't want this, use the parameter only_if_banned. Returns True on success.
Status: live · Token: worker · Grant: Ban / Ban & remove members
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| user_id | String | Yes | Ghost id of the target user (ghost_…), from message.from.id. |
| only_if_banned | Boolean | Optional | Do nothing if the user is not banned. |
Returns: True
- Worker token only. Service tokens return 403.
restrictChatMember
Use this method to restrict a user in a supergroup. The bot must be an administrator in the supergroup (Timeout tick). Returns True on success.
Status: live · Token: worker · Grant: Timeout (OHG) / Ban & remove members (community)
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| user_id | String | Yes | Ghost id of the target user (ghost_…), from message.from.id. |
| permissions | ChatPermissions | Optional | A JSON-serialized object of new user permissions. On Buzzio a mute is the default if omitted. |
| until_date | Integer | Optional | Date when restrictions will be lifted; unix seconds or ms. Default 5 minutes from now. Cap 30 days. Forever-style values follow Telegram’s 366-day rule only if you pass them; the Worker still caps at 30 days. |
Returns: True
- Worker token only. Service tokens return 403.
- This group/community only.
kickChatMember
Use this method to remove a user from a group or community without adding them to the ban list. They may rejoin via invite if the room allows it. Returns True on success. Buzzio-native name (Telegram folded this into banChatMember).
Status: live · Token: worker · Grant: Kick (OHG) / Ban & remove members (community)
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| user_id | String | Yes | Ghost id of the target user (ghost_…), from message.from.id. |
Returns: True
- Worker token only. Service tokens return 403.
- Not a global Buzzio account ban. Same hierarchy 403s as banChatMember.
banChatSenderChat
Use this method to ban a channel chat in a supergroup or a channel. Until the chat is unbanned, the owner of the banned chat won't be able to send messages on behalf of their channel. Returns True on success. On Buzzio this bans a channel/bot poster in the room, not a person account.
Status: live · Token: worker · Grant: Ban / Ban & remove members
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| sender_chat_id | String | Yes | Unique identifier of the target sender chat (community:… or a bot chat id). |
Returns: True
- Worker token only. Service tokens return 403.
unbanChatSenderChat
Use this method to unban a previously banned channel in a supergroup or channel. Returns True on success.
Status: live · Token: worker · Grant: Ban / Ban & remove members
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| sender_chat_id | String | Yes | Unique identifier of the target sender chat. |
Returns: True
- Worker token only. Service tokens return 403.
setMyDefaultAdministratorRights
Use this method to change the default administrator rights requested by the bot when it's added as an administrator to groups or channels. These rights will be suggested to chat administrators, but they are free to modify the list before adding the bot. Returns True on success. On Buzzio this stores default worker ticks for new installs. It cannot enable administrator or manage_roles.
Status: live · Token: worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| rights | ChatAdministratorRights | Optional | A JSON-serialized object describing new default administrator rights. Buzzio maps Telegram aliases onto worker ticks: read, send, delete, pin, timeout, kick, ban, view_members, approve_joins, manage_room_info. Passing administrator / manage_roles / can_promote_members returns 400. |
| for_channels | Boolean | Optional | Pass True to change the default admin rights for community installs. Pass False or omit for OHG. |
Returns: True
- Worker token only. Service tokens return 403.
- Suggested ticks only. The room admin still chooses the checklist on Accept.
getMyDefaultAdministratorRights
Use this method to get the current default administrator rights of the bot. Returns ChatAdministratorRights on success.
Status: live · Token: worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| for_channels | Boolean | Optional | Pass True to get default community ticks. Pass False or omit for OHG. |
Returns: ChatAdministratorRights (worker ticks only)
- Worker token only. Service tokens return 403.
Forum topics → community channels
Do not invent a second topic object. Telegram forum method names stay so ports compile. chat_id is the community; message_thread_id is the channel id. The general topic is the default / welcome channel.
getForumTopicIconStickers
Use this method to get custom emoji stickers, which can be used as a forum topic icon by any user. Requires no parameters. Returns an Array of Sticker objects. On Buzzio this returns the allowed icon colors (not a Telegram custom-emoji CDN).
Status: live · Token: worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters |
Returns: Array of { icon_color, emoji }
- Worker token only. Service tokens return 403.
- No chat_id required.
createForumTopic
Use this method to create a topic in a forum supergroup chat. On Buzzio this creates a community channel. Returns information about the created topic as a ForumTopic object.
Status: live · Token: worker · Grant: Create channels
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| name | String | Yes | Topic / channel name, 1–128 characters. Normalized like the app (lowercase, hyphens). |
| icon_color | Integer | Optional | Color of the topic icon in RGB format. Must be one of the values from getForumTopicIconStickers. |
| icon_custom_emoji_id | String | Optional | Ignored today — Buzzio uses icon_color, not Telegram custom emoji ids. |
Returns: ForumTopic (message_thread_id = channel id, name, chat_id = community:{communityId}:{channelId})
- Worker token only. Service tokens return 403.
- OHG returns 400.
editForumTopic
Use this method to edit name and icon of a topic in a forum supergroup chat. Returns True on success.
Status: live · Token: worker · Grant: Edit channels
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| message_thread_id | String | Yes | Channel id (Telegram message_thread_id). |
| name | String | Optional | New topic name, 0–128 characters. If not specified or empty, the current name of the topic will be kept. |
| icon_color | Integer | Optional | New icon color from getForumTopicIconStickers. Pass empty / 0 to keep. |
Returns: True or ForumTopic
- Worker token only. Service tokens return 403.
- OHG
chat_ids return 400. Missing grant returns 403, not a silent no-op.
closeForumTopic
Use this method to close an open topic in a forum supergroup chat. Returns True on success.
Status: live · Token: worker · Grant: Edit channels
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| message_thread_id | String | Yes | Channel id (Telegram message_thread_id). |
Returns: True or ForumTopic
- Worker token only. Service tokens return 403.
- OHG
chat_ids return 400. Missing grant returns 403, not a silent no-op.
reopenForumTopic
Use this method to reopen a closed topic in a forum supergroup chat. Returns True on success.
Status: live · Token: worker · Grant: Edit channels
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| message_thread_id | String | Yes | Channel id (Telegram message_thread_id). |
Returns: True or ForumTopic
- Worker token only. Service tokens return 403.
- OHG
chat_ids return 400. Missing grant returns 403, not a silent no-op.
deleteForumTopic
Use this method to delete a forum topic along with all its messages in a forum supergroup chat. Returns True on success. On Buzzio the channel is archived. The default / general channel cannot be deleted.
Status: live · Token: worker · Grant: Edit channels
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| message_thread_id | String | Yes | Channel id (Telegram message_thread_id). |
Returns: True or ForumTopic
- Worker token only. Service tokens return 403.
- OHG
chat_ids return 400. Missing grant returns 403, not a silent no-op.
unpinAllForumTopicMessages
Use this method to clear the list of pinned messages in a forum topic. Returns True on success.
Status: live · Token: worker · Grant: Pin messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| message_thread_id | String | Yes | Channel id (Telegram message_thread_id). |
Returns: True or ForumTopic
- Worker token only. Service tokens return 403.
- OHG
chat_ids return 400. Missing grant returns 403, not a silent no-op.
editGeneralForumTopic
Use this method to edit the name of the 'General' topic in a forum supergroup chat. Returns True on success. On Buzzio this renames the default / welcome channel.
Status: live · Token: worker · Grant: Edit channels
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| name | String | Yes | New topic name, 0–128 characters. |
Returns: True
- Worker token only. Service tokens return 403.
closeGeneralForumTopic
Use this method to close an open 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success.
Status: live · Token: worker · Grant: Edit channels
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
Returns: True
- Worker token only. Service tokens return 403.
reopenGeneralForumTopic
Use this method to reopen a closed 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. The topic will be automatically unhidden if it was hidden. Returns True on success.
Status: live · Token: worker · Grant: Edit channels
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
Returns: True
- Worker token only. Service tokens return 403.
hideGeneralForumTopic
Use this method to hide the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. The topic will be automatically closed if it was open. Returns True on success.
Status: live · Token: worker · Grant: Edit channels
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
Returns: True
- Worker token only. Service tokens return 403.
unhideGeneralForumTopic
Use this method to unhide the 'General' topic in a forum supergroup chat. Returns True on success.
Status: live · Token: worker · Grant: Edit channels
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
Returns: True
- Worker token only. Service tokens return 403.
unpinAllGeneralForumTopicMessages
Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success.
Status: live · Token: worker · Grant: Pin messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
Returns: True
- Worker token only. Service tokens return 403.
Invite links and join requests
Invite links are the same HTTPS URLs the app already opens (https://links.buzzio.dev/join?g= / ?c=). Extra links live in temp_invites (expiry + member limit). Pending requests deliver Update chat_join_request. from.first_name is User.
createChatInviteLink
Use this method to create an additional invite link for a chat. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. The link can be revoked using the method revokeChatInviteLink. Returns the new invite link as ChatInviteLink object.
Status: live · Token: worker · Grant: Approve joins / Create temporary invite links
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| name | String | Optional | Invite link name; 0–32 characters. |
| expire_date | Integer | Optional | Unix time when the link will expire. Alternative: duration_minutes (30, 60, 120, 180, 360, 1440, 4320, 10080). |
| member_limit | Integer | Optional | The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1–99999. Community also accepts max_uses: 1, 5, 10, 50, 100. |
| creates_join_request | Boolean | Optional | True, if users joining the chat via the link need to be approved by chat administrators. |
Returns: ChatInviteLink (invite_link, name?, expire_date?, member_limit?)
- Worker token only. Service tokens return 403.
editChatInviteLink
Use this method to edit a non-primary invite link created by the bot. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the edited invite link as a ChatInviteLink object.
Status: live · Token: worker · Grant: Approve joins / Create temporary invite links
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| invite_link | String | Yes | The invite link to edit. |
| name | String | Optional | Invite link name; 0–32 characters. |
| expire_date | Integer | Optional | Unix time when the link will expire. |
| member_limit | Integer | Optional | Maximum number of users that can be members of the chat simultaneously after joining via this link. |
| creates_join_request | Boolean | Optional | True if users joining via the link need approval. |
Returns: ChatInviteLink
- Worker token only. Service tokens return 403.
revokeChatInviteLink
Use this method to revoke an invite link created by the bot. If the primary link is revoked, a new link is automatically generated. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the revoked invite link as ChatInviteLink object.
Status: live · Token: worker · Grant: Approve joins / Invite people
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| invite_link | String | Yes | The invite link to revoke. Primary token rotation is allowed. |
Returns: ChatInviteLink
- Worker token only. Service tokens return 403.
exportChatInviteLink
Use this method to generate a new primary invite link for a chat; any previously generated primary link is revoked. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the new invite link as String on success.
Status: live · Token: worker · Grant: Invite people / Approve joins
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
Returns: String (HTTPS invite URL) or ChatInviteLink
- Worker token only. Service tokens return 403.
getChatInviteLinkis accepted as an alias and returns the existing primary token without rotating it.
approveChatJoinRequest
Use this method to approve a chat join request. The bot must be an administrator in the chat for this to work and must have the can_invite_users administrator right. Returns True on success.
Status: live · Token: worker · Grant: Approve joins
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| user_id | String | Yes | Ghost id of the target user (ghost_…), from message.from.id. |
Returns: True
- Worker token only. Service tokens return 403.
user_idisghost_….
declineChatJoinRequest
Use this method to decline a chat join request. The bot must be an administrator in the chat for this to work and must have the can_invite_users administrator right. Returns True on success.
Status: live · Token: worker · Grant: Approve joins
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| user_id | String | Yes | Ghost id of the target user (ghost_…), from message.from.id. |
Returns: True
- Worker token only. Service tokens return 403.
answerChatJoinRequestQuery
Use this method to ack a join-gate UI callback (toast / hide spinner) when the pending request was opened from a Mini App or web join screen. Returns True on success.
Status: live · Token: worker · Grant: Approve joins
| Parameter | Type | Required | Description |
|---|---|---|---|
| query_id | String | Yes | Identifier of the join-request query. Also accepts callback_query_id. |
| text | String | Optional | Optional ack text shown to the requester. |
| show_alert | Boolean | Optional | If True, show an alert instead of a toast. |
Returns: True
- Worker token only. Service tokens return 403.
sendChatJoinRequestWebApp
Use this method to attach an HTTPS Mini App to the join gate of a room that requires approval. Returns True on success.
Status: live · Token: worker · Grant: Approve joins
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
| url | String | Yes | HTTPS URL of your Mini App. Buzzio never GETs it; the phone loads the sheet. |
| text | String | Optional | Button label on the join gate, max 64 characters. |
Returns: True
- Worker token only. Service tokens return 403.
- Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected.
Bot profile, commands, menu button
Identity is API-owned after create. @username still changes only in Forge.
setMyCommands
Use this method to change the list of the bot's commands. See this manual for more details about bot commands. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| commands | Array of BotCommand | Yes | A JSON-serialized list of bot commands to be set as the list of the bot's commands. At most 100. Each command is 1–32 characters (a-z, 0-9, underscore) and description is 1–256 characters. |
| scope | BotCommandScope | Optional | A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault. Buzzio currently applies the default scope (this bot). |
| language_code | String | Optional | A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands. Stored; default language is used if unset. |
Returns: True
- Shown in the bot composer slash list.
getMyCommands
Use this method to get the current list of the bot's commands for the given scope and user language. Returns an Array of BotCommand objects. If commands aren't set, an empty list is returned.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| scope | BotCommandScope | Optional | A JSON-serialized object, describing scope of users. Defaults to BotCommandScopeDefault. |
| language_code | String | Optional | A two-letter ISO 639-1 language code or an empty string. |
Returns: Array of BotCommand
deleteMyCommands
Use this method to delete the list of the bot's commands for the given scope and user language. After deletion, higher level commands will be shown to affected users. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| scope | BotCommandScope | Optional | A JSON-serialized object, describing scope of users. Defaults to BotCommandScopeDefault. |
| language_code | String | Optional | A two-letter ISO 639-1 language code or an empty string. |
Returns: True
setChatMenuButton
Use this method to change the bot's menu button in a private chat, or the default menu button. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Optional | Unique identifier for the target private chat. If not specified, default bot's menu button will be changed. Service: botdm_…. |
| menu_button | MenuButton | Optional | A JSON-serialized object for the bot's new menu button. Types: commands, default, or web_app (text + HTTPS url, max 64). Defaults to MenuButtonDefault. |
Returns: True
- Mini App sheet loads your HTTPS URL. Buzzio never GETs it.
getChatMenuButton
Use this method to get the current value of the bot's menu button in a private chat, or the default menu button. Returns MenuButton on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Optional | Unique identifier for the target private chat. If not specified, default bot's menu button will be returned. |
Returns: MenuButton
setMyName
Use this method to change the bot's name. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | String | Optional | New bot name; 0–64 characters. Pass an empty string to remove the dedicated name for the given language. |
| language_code | String | Optional | A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name. |
Returns: True
- People-search and Forge
/mybotsshow the API-updated name.@usernamestill changes only in Forge.
getMyName
Use this method to get the current bot name for the given user language. Returns BotName on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| language_code | String | Optional | A two-letter ISO 639-1 language code or an empty string. |
Returns: BotName (name)
setMyDescription
Use this method to change the bot's description, which is shown in the chat with the bot if the chat is empty. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| description | String | Optional | New bot description; 0–512 characters. Pass an empty string to remove the dedicated description for the given language. |
| language_code | String | Optional | A two-letter ISO 639-1 language code. If empty, the description will be applied to all users for whose language there is no dedicated description. |
Returns: True
getMyDescription
Use this method to get the current bot description for the given user language. Returns BotDescription on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| language_code | String | Optional | A two-letter ISO 639-1 language code or an empty string. |
Returns: BotDescription (description)
setMyShortDescription
Use this method to change the bot's short description, which is shown on the bot's profile page and is sent together with the link when users share the bot. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| short_description | String | Optional | New short description for the bot; 0–120 characters. Pass an empty string to remove the dedicated short description for the given language. |
| language_code | String | Optional | A two-letter ISO 639-1 language code. If empty, the short description will be applied to all users for whose language there is no dedicated short description. |
Returns: True
- Shown in people search.
getMyShortDescription
Use this method to get the current bot short description for the given user language. Returns BotShortDescription on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| language_code | String | Optional | A two-letter ISO 639-1 language code or an empty string. |
Returns: BotShortDescription (short_description)
setMyProfilePhoto
Use this method to set a new profile photo for the bot. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| photo | String | Yes | HTTPS URL of the photo you host. Also accepts url. Buzzio never GETs it. |
Returns: True
- Outgoing media is an HTTPS URL you host. Buzzio never GETs the URL (SSRF lock). Multipart uploads,
file:paths, localhost, and raw IPs are rejected.
removeMyProfilePhoto
Use this method to remove the bot’s profile photo. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters |
Returns: True
Stories
Bot profile stories. Not enabled yet — Wave I. Calls return 404.
postStory
Use this method to post a story on the bot’s profile (visible to people who have started the bot). On success, a Story object is returned. Media is an HTTPS URL you host; Buzzio never GETs it.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| photo | String | Optional | HTTPS URL of a story photo you host. Pass photo or video. Buzzio never GETs the URL. |
| video | String | Optional | HTTPS URL of a story video you host. Pass photo or video. |
| caption | String | Optional | Caption for the story, 0–2048 characters. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| period | Integer | Optional | Period in seconds the story is available. Client default if omitted. |
Returns: Story
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
editStory
Use this method to edit a story previously posted by the bot. On success, a Story object is returned.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| story_id | String | Yes | Unique identifier of the story to edit. |
| caption | String | Optional | New caption. |
| parse_mode | String | Optional | HTML, Markdown, or MarkdownV2. |
| photo | String | Optional | Replacement HTTPS photo URL. |
| video | String | Optional | Replacement HTTPS video URL. |
Returns: Story
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
deleteStory
Use this method to delete a story previously posted by the bot. Returns True on success.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| story_id | String | Yes | Unique identifier of the story to delete. |
Returns: True
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
repostStory
Use this method to repost a story into a shared chat this bot may write to. Sealed surfaces return 400. On success, the sent Message is returned.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| story_id | String | Yes | Story to repost. |
Returns: Message
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
Suggested posts
Worker on a broadcast / community post-approval surface. Not enabled yet — Wave I.
approveSuggestedPost
Use this method to approve a suggested post sent to a broadcast / community channel that requires bot approval. Returns True on success.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
Returns: True
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
declineSuggestedPost
Use this method to decline a suggested post. Returns True on success.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| comment | String | Optional | Optional decline note, not shown as the user’s original text. |
Returns: True
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
Games
Hosted URL + scoreboard in the bot chat — not Telegram’s HTML5 CDN. Not enabled yet — Wave I.
sendGame
Use this method to send a game. On success, the sent Message is returned. The card opens your hosted game URL.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| game_short_name | String | Yes | Short name of the game, used as the unique identifier for the game. Set up in Console when Wave I ships. |
| reply_markup | InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply | Optional | Inline buttons, a custom reply keyboard, remove the keyboard, or force a reply. |
| reply_parameters | ReplyParameters | Optional | { "message_id": "…" } to quote a message in this chat. |
Returns: Message
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
setGameScore
Use this method to set the score of the specified user in a game message. Returns an error if the new score is not greater than the user's current score in the chat and force is False. On success, if the message is not an inline message, the Message is returned, otherwise True is returned.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | String | Yes | Ghost id of the target user (ghost_…), from message.from.id. |
| score | Integer | Yes | New score, non-negative. |
| force | Boolean | Optional | Pass True if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters. |
| disable_edit_message | Boolean | Optional | Pass True if the game message should not be automatically edited to include the current scoreboard. |
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
Returns: Message or True
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
getGameHighScores
Use this method to get data for high score tables. Will return the score of the specified user and several of their neighbors in a game. Returns an Array of GameHighScore objects.
Status: not enabled yet (Wave I) — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | String | Yes | Ghost id of the target user (ghost_…), from message.from.id. |
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
Returns: Array of GameHighScore
- Not enabled yet (Wave I). Calling this method today returns 404. The parameters below are the planned contract so ports can compile against the name.
Buzzio-native methods
Jobs Telegram does not name. kickChatMember is listed under Chat management (catalog #140). listChatInviteLinks shipped with Wave J and is documented in Community extras so the catalog stays 150 unique names.
getMyPermissions
Use this method to read the grants this bot currently has in a chat. On success, a permissions object is returned. Service tokens return send rights for that bot DM. Worker tokens return install ticks / community checklist for that room.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
Returns: Permissions object (chat_id, kind, ticks such as read, send, delete, pin, …)
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id.
getMyInstalls
Use this method to list rooms this worker is accepted in. On success, an array of installs is returned (same list as Console).
Status: live · Token: worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | Integer | Optional | 1–100. Defaults to 20. |
Returns: Array of Install (chat_id, title, kind, permissions)
- Worker token only. Service tokens return 403.
- Service tokens return 403. Pending (not accepted) requests are omitted.
getBotStats
Use this method to read Forge /stats as JSON. Counts only — no names, no message text.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters |
Returns: Stats (starters, messages_7d, pending_updates, webhook_ok, webhook_fail, installs)
- Forge analytics stay counts-only.
getWebhookDeliveries
Use this method to inspect recent webhook delivery attempts. On success, an array of delivery rows is returned.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | Integer | Optional | 1–50. Defaults to 20. |
Returns: Array of Delivery (update_id, status, error?, created_at)
- Useful when getWebhookInfo.last_error_message is not enough.
retryWebhook
Use this method to redeliver one Update to the current webhook URL. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| update_id | Integer | Yes | Identifier of the update to redeliver. |
Returns: True
- No-op useful result if that update is gone from the 24-hour queue. Requires a webhook to be set.
getChatHistory
Use this method to fetch recent messages in this chat only. On success, an array of Message objects is returned. This is not a room dump on install.
Status: live · Token: service and worker · Grant: Read messages
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| limit | Integer | Optional | 1–100. Defaults to 20. |
| offset | Integer | Optional | Skip this many newest messages (simple paging). |
Returns: Array of Message
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
- 7-day window. Messages older than 7 days are not returned. Max 100. Worker needs Read (OHG) or channel view (community).
resolveUsername
Use this method to resolve a public @username to an id and type. On success, a resolved object is returned. Never returns a hidden person or a sealed chat.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| username | String | Yes | Username to resolve, with or without leading @. 5–32 letters, numbers, or underscores. |
Returns: { id, type } where type is bot, ohg, community, or channel — not a sealed person
- Sealed 1:1, E2E groups, Whisper private chat, and Whisper Questions return 400. Bots cannot read or write those surfaces.
- Does not return Whisper sessions or question links as a bot target.
reportMessage
Use this method to report a message using the same reasons as in-app Report. Opens a staff-visible snapshot. Returns True on success.
Status: live · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Unique identifier for the target chat. Always a string: botdm_… (service 1:1), ohg:… (open-history group), or community:… / community:{communityId}:{channelId}. Read it from the Update. Integer Telegram ids are not accepted. |
| message_id | String | Yes | Identifier of the target message (from the Update or a previous send). |
| reason | String | Yes | One of: Spam, Harassment or bullying, Hate speech, Inappropriate content, Impersonation, Scam or fraud, Illegal activity, Other. |
| details | String | Optional | Optional extra text. Also accepts additional_details. |
Returns: True
- Service tokens only work on
botdm_*. Worker tokens only work on an acceptedohg:/community:chat. Wrong kind returns 403 even if you guessed achat_id. - This is a safety report, not a public moderation log.
Community extras
These names are live on the Worker but are not part of the 150 catalog count (community helpers, plus listChatInviteLinks after kickChatMember already occupied native slot #140).
listChatInviteLinks
Use this method to list the primary invite plus extra links the bot created in this room. On success, an array of ChatInviteLink objects is returned. Shipped with Wave J; not one of the 150 catalog names (kickChatMember already occupied that native slot).
Status: live · Token: worker · Grant: Approve joins / Invite people
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
Returns: Array of ChatInviteLink
- Worker token only. Service tokens return 403.
getChatInviteLink
Alias of exportChatInviteLink that returns the existing primary invite token without rotating it.
Status: live · Token: worker · Grant: Invite people
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Worker room id: ohg:{groupId} or community:{communityId} (add :{channelId} when the call is channel-scoped). |
Returns: ChatInviteLink
- Worker token only. Service tokens return 403.
createChannel
Community-native helper (same job as createForumTopic). Creates a channel in the hub.
Status: live · Token: worker · Grant: Create channels
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| name | String | Yes | Required. Normalized like the app (lowercase, hyphens). |
| visibility | String | Optional | open (default) or password. |
| password | String | Optional | Required when visibility is password. |
| category_id | String | Optional | Optional category. |
Returns: channel_id and chat_id (community:{communityId}:{channelId})
- Worker token only. Service tokens return 403.
editChannel
Community-native helper. Edits an existing channel.
Status: live · Token: worker · Grant: Edit channels
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Channel community:{communityId}:{channelId} or hub plus channel_id. |
| channel_id | String | Optional | When chat_id is the hub. |
| name | String | Optional | New name. |
| visibility | String | Optional | open or password. |
| password | String | Optional | Password when visibility is password. |
| category_id | String | Optional | Move to a category. |
| rules_text | String | Optional | Channel rules. |
| only_admins_can_send | Boolean | Optional | Lock sending to admins. |
| prevent_screenshots | Boolean | Optional | Client screenshot flag. |
Returns: True
- Worker token only. Service tokens return 403.
createCategory
Community-native helper. Creates a channel category.
Status: live · Token: worker · Grant: Create categories
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| name | String | Yes | Category name. |
Returns: Category
- Worker token only. Service tokens return 403.
createEvent
Community-native helper. Creates a community event.
Status: live · Token: worker · Grant: Create events
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| title | String | Yes | Required. Max 100. |
| description | String | Optional | Optional. Max 1000. |
| start_at | Integer or String | Yes | Unix seconds, ms, or ISO date. |
| end_at | Integer or String | Yes | Must be after start. |
| location_type | String | Optional | text (default), link, or channel. |
| location_text | String | Optional | Required for link (https URL). |
| channel_id | String | Optional | Required for channel locations. |
| frequency | String | Optional | none, daily, weekly, monthly. |
Returns: Event
- Worker token only. Service tokens return 403.
editEvent
Community-native helper. The bot that created the event may edit it with Create events. Anyone else’s event needs Manage events.
Status: live · Token: worker · Grant: Create events (own) / Manage events (others)
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| event_id | String | Yes | Event to edit. |
| title | String | Optional | New title. |
Returns: Event
- Worker token only. Service tokens return 403.
deleteEvent
Community-native helper. Deletes an event.
Status: live · Token: worker · Grant: Create events (own) / Manage events (others)
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| event_id | String | Yes | Event to delete. |
Returns: True
- Worker token only. Service tokens return 403.
getAuditLogs
Community-native helper. Returns recent audit log rows.
Status: live · Token: worker · Grant: View audit logs
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| limit | Integer | Optional | 1–100. |
| cursor | String | Optional | From the previous next_cursor. |
Returns: { items, next_cursor? }
- Worker token only. Service tokens return 403.
pinChannel
Community-native helper. Pins the channel in the hub, not a message.
Status: live · Token: worker · Grant: Can pin channel
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Channel chat_id or hub plus channel_id. |
| channel_id | String | Optional | When chat_id is the hub. |
Returns: True
- Worker token only. Service tokens return 403.
unpinChannel
Community-native helper. Unpins a hub channel.
Status: live · Token: worker · Grant: Can pin channel
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Channel chat_id or hub plus channel_id. |
| channel_id | String | Optional | When chat_id is the hub. |
Returns: True
- Worker token only. Service tokens return 403.
createChannelPassword
Community-native helper. Channel must already be password-protected. result.password is shown once.
Status: live · Token: worker · Grant: Create temporary channel passwords
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Password channel id. |
| duration_minutes | Integer | Yes | One of 15, 30, 60, 360. |
| max_uses | Integer | Yes | One of 1, 5, 10, 50, 100. |
Returns: { password, expire_date, max_uses }
- Worker token only. Service tokens return 403.
setChatRules
Community-native helper. Sets community rules text.
Status: live · Token: worker · Grant: Modify rules
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| rules | String | Yes | Rules text. Also accepts text. |
Returns: True
- Worker token only. Service tokens return 403.
setChatSlowMode
Community-native helper. Sets community restricted messaging.
Status: live · Token: worker · Grant: Slow mode
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | String | Yes | Community id: community:{communityId}. Forum methods map to community channels; OHG ids return 400. |
| level | String | Optional | none, low, medium, or high. You can also pass enabled true/false (true maps to low). |
Returns: True
- Worker token only. Service tokens return 403.
Not offered (bot premium)
Buzzio does not offer bot premium, membership flags, or developer checkout APIs. setMyPremium, grantUserPremium, and the other names below return 404. Telegram sendInvoice / Stars names also return 404. Buzzio app Premium (Play / App Store) is a separate product.
setMyPremium
Not offered. Calling this method returns 404. Buzzio does not provide bot premium, membership flags, or developer checkout APIs.
Status: not offered — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters |
Returns: 404
- Same as Telegram invoices / Stars. Not Buzzio app Premium.
getMyPremium
Not offered. Calling this method returns 404.
Status: not offered — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters |
Returns: 404
- Bot premium is not a product on Buzzio.
submitMyPremium
Not offered. Calling this method returns 404.
Status: not offered — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters |
Returns: 404
- Forge
/submitpremiumis also retired.
grantUserPremium
Not offered. Calling this method returns 404. Buzzio does not store paid-access membership on a bot.
Status: not offered — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters |
Returns: 404
- Updates do not include
from.has_premium.
revokeUserPremium
Not offered. Calling this method returns 404.
Status: not offered — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters |
Returns: 404
getUserPremium
Not offered. Calling this method returns 404.
Status: not offered — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters |
Returns: 404
getPremiumUsers
Not offered. Calling this method returns 404.
Status: not offered — calls return 404 · Token: service and worker
| Parameter | Type | Required | Description |
|---|---|---|---|
| — | — | — | No parameters |
Returns: 404