BuzzioDocs

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

Updating messages

Stickers

Inline mode, callbacks, Mini Apps

Chat management

Forum topics → community channels

Bot profile, commands, menu button

Stories

Suggested posts

Games

Buzzio-native methods

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).

  • id is 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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 / @username need 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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_id.
  • The value is chosen server-side. Do not send a value of 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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_id.
  • Updates: message_reaction and message_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 pass contents_url on 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. @username of the bot is not appended; name is 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_type must be custom_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_name themselves.

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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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_name is generic User unless 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_name is User by 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 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.

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.

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.

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.

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.
  • getChatInviteLink is 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_id is ghost_….

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 /mybots show the API-updated name. @username still 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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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 accepted ohg: / community: chat. Wrong kind returns 403 even if you guessed a chat_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).

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.

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 /submitpremium is 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