Telegram Bot API Changes, May to August 2026: Four Releases

Telegram Bot API Changes, May to August 2026: Four Releases

Four Bot API releases shipped between May and August 2026 — 10.0 through 10.3. One of them changes parameters your existing code may be passing.

VersionDateHeadline
10.08 May 2026Guest Mode, chat management, poll media
10.111 June 2026Rich Messages — text classes
10.214 July 2026Rich Messages — input classes; ephemeral messages
10.324 August 2026Rich Messages — buttons; compact tables; ephemeral message parameters

Three more releases shipped earlier in 2026 and are outside this page: 9.4 (9 February), 9.5 (1 March) and 9.6 (3 April). 9.6 matters if you send quizzes — it "Replaced the parameter correct_option_id with the parameter correct_option_ids in the method sendPoll", and made the same replacement on the Poll class.

The change to check first

Bot API 10.3 replaced the parameters receiver_user_id and callback_query_id with a single ephemeral_message_parameters across thirteen methods:

sendMessage, sendAnimation, sendAudio, sendDocument, sendLivePhoto, sendPhoto, sendSticker, sendVideo, sendVideoNote, sendVoice, sendContact, sendLocation, sendVenue.

If your code passes either of those, that is the thing to look at. It is not the only 2026 change that breaks things: Bot API 9.6 (3 April 2026) replaced correct_option_id with correct_option_ids on both the Poll class and the sendPoll method, and Bot API 10.2 hardened Mini Apps by "disallowing the usage of Mini App methods from origins different from the original Mini App domain" — automatically enabled for all Mini Apps on 20 July 2026, with an opt-out through the @BotFather Mini App.

Bot API 10.0 — Guest Mode

The most conceptually significant change of the year: bots can now receive certain messages and issue replies within chats they are not a member of.

The supporting surface:

That is a real shift, but not the first one. Inline mode has let users summon a bot into a chat it is not a member of since January 2016, and guest mode reuses that machinery — answerGuestQuery takes a required result of type InlineQueryResult, "A JSON-serialized object describing the message to be sent". What is new is that the bot receives a full Message via Update.guest_message"New guest message. The bot can use the field Message.guest_query_id and the method answerGuestQuery to send a message in response." — rather than only an inline query string.

If you build tools people want to summon into conversations — a converter, a lookup, a utility — guest mode gives that pattern a richer API surface than the inline mode that has always supported it.

10.0 also added, under chat management:

And for polls: InputMediaSticker, InputMediaLocation, InputMediaVenue, plus PollMedia — polls can now carry media in options and explanations.

10.1 through 10.3 — Rich Messages

Three consecutive releases built out one feature, which tells you how central Telegram considers it.

10.1 introduced the rich text classes: RichTextBold, RichTextItalic, RichTextUnderline, RichTextStrikethrough, RichTextSpoiler, RichTextDateTime, RichTextTextMention and others.

10.2 added the input side — InputRichMessageMedia, InputMediaVoiceNote, the media and blocks fields on InputRichMessage (the class itself arrived in 10.1), and the InputRichBlock* types for paragraphs, list items, section headings and nineteen more.

10.3 completed it with RichMessageButton, RichTextButton, RichBlockButtons and InputRichBlockButtons, an is_compact field on the existing RichBlockTable and InputRichBlockTable (the output-side RichBlockTable arrived in 10.1, the input side in 10.2), RichBlockExpandableBlockQuotation, and RichBlockDocument — plus tg://document?id= links for file uploads inside rich messages.

The practical upshot: structured documents inside a chat message. Headings, lists, tables, quotations, embedded buttons. If you have been formatting with Markdown and hoping, this is the supported path — and tables in particular are worth a look for anything reporting-shaped.

Ephemeral messages

Ephemeral messages arrived in 10.2 — "allowing bots to send group messages and receive commands that are visible only to a specific user and the bot", along with is_ephemeral, receiver_user, ephemeral_message_id, the four editEphemeralMessage* methods and deleteEphemeralMessage. 10.3 consolidated their parameters, which is where the breaking change above comes from.

EphemeralMessageParameters consolidates ephemeral message handling. Notably it includes replace_callback_query_message, "which allows bots to show an ephemeral message in place of the original message" — useful for confirmations and transient UI that should not clutter a chat permanently.

Supporting edits: editEphemeralMessageMedia now supports uploading new files, editEphemeralMessageCaption gained show_caption_above_media, and editEphemeralMessageText gained a rich_message parameter.

Smaller changes worth knowing

can_send_welcome_messages — a new administrator right, added to ChatAdministratorRights, ChatMemberAdministrator and promoteChatMember. It covers Telegram's native chat welcome messages — "True, if the administrator can manage chat welcome messages or directly send them in the case of bots". It is new, not a new requirement: a bot that posts its own greeting with sendMessage on a join event is unaffected.

DisabledButton and disabled on InlineKeyboardButton — you can now show a button in a disabled state instead of removing it. Better UX for "already claimed" or "not yet available" than silently dropping the button.

force_reply on InlineKeyboardMarkup and ReplyKeyboardMarkup.

sendMessageDraft / sendRichMessageDraft gained can_stop and keep_on_stop, and there are now updates for a user stopping message generation. That is streaming-response machinery — relevant if your bot generates long replies.

What to do

  1. Search for receiver_user_id and callback_query_id in your send calls. That is the breaking parameter change in the 10.x releases.
  2. can_send_welcome_messages is new, not a new requirement. It is an administrator right over Telegram's native welcome messages. If your bot sends its own greeting with sendMessage, nothing changes and no new grant is needed.
  3. Look at can_react_to_messages if you restrict new members. Reactions are now separately controllable.
  4. Consider Rich Messages for anything you currently fake with Markdown, especially tables.
  5. Consider Guest Mode if your bot is a utility people would want to summon into other chats.

Within 10.0–10.3 that is the only parameter replacement, but it is not the only thing that breaks: 10.2's Mini App origin restriction auto-enabled on 20 July 2026, so check any Mini App that calls Mini App methods from a second domain. If you are also coming from before 9.6, check correct_option_id on your quiz code.


Every version, date and class name above verified directly against Telegram's Bot API changelog and Bot API documentation, September 2026. Follow @BotNews for releases.