GeezerVison is showing core.telegram.org (truncated) — Layer changelog
Machine-readable version of this page: /api/layers.md.
Layer changelog
Below you will find information on schema changes. For more details on the use of layers, see Invoking API methods.
To view all changes since the last documentation refresh, start reading at layer 215.
This documentation release includes the following new and substantially overhauled articles, documenting pre-existing features:
- Group calls, video chats, live stories, conferences and livestreams »
- One-to-one calls »
- Completely overhauled the E2E conference documentation »
- Completely overhauled the file reference database schema, making it significantly easier to autogenerate the file reference database »
- Applying basic group updates »
- Applying group call updates »
- Message ID sequences »
- More detailed instructions for update gap handling (also considering gaps beyond the max message box size) »
- Parallel sessions »
- updateMessageID handling »
- Documented rate limits for live drafts »
- Content protection »
- Message views »
- Sending messages on behalf of owned channels and groups »
- Working with basic group participants »
- Leaving groups/channels (full flow) »
- Added the layer number to the RPC error DB »
- Improved the takeout documentation »
- Documented the
navigationBarColor », actionBarColor », allowScroll », siteName » event types
whitelisted_bots »
- Detailed changelogs for API configuration keys, web events, limits, suggested actions and other API constants will now be automatically listed in the appropriate layer changelog, instead of the latest layer.
- Published an aggregated, machine-readable index of all API constants and push updates » at the new /api/config.json » permalink.
- The RPC error database » is now also published as a machine-readable /api/errors.json » permalink, replacing the previous embedded file link.
- Multiple other improvements and fixes across the board.
And documenting the following new features (a brief overview of features introduced since layer 215):
- AI features: message composition », AI compose tones » and message summarization »
- Bot AI features: live drafts »
- Bot forums »
- Managed bots »
- Improved styled text entities »
- Guest mode for bots »
- Gift auctions »
- Passkeys »
- Live stories », in-call messages », paid live story comments » and paid live story donations »
- Recent story summaries »
- Repeating scheduled messages »
- Message views » and read metrics »
- Open-answer polls », unread poll votes », poll answer media attachments », replies to poll options », poll search » and poll statistics »
- Group member/admin tags »
- Group/channel ownership transfer » and leave handoff flows »
- Date styled text entities » and diff styled text entities »
- Collectible gifts »: crafting », purchase offers », hosted gifts », collectible message palettes » and collectible profile palettes ».
- Private contact notes »
- Birthdays », music profile tab », managed bot manager info », personal channels » and unofficial client warnings »
- Private chat content protection »
- Button styles »
- Peer requests for Mini Apps »
- Anonymous group admins » can now toggle checklist items »
- Removing participant reactions »
- Message effects » support for forwarded messages
- Login email setup suggestions » and passkey setup suggestions »
- OAuth login »
blur_enabled in fullscreen_changed events »
- New deep link » types:
This layer introduces the following features:
API constants
Premium limits
Telegram Premium limit identifiers ».
Web page type values
Web page type values from the webPage constructor.
New Methods
Changed Methods
New Constructors
- Added updateBotGuestChatQuery - Sent to guest bots » when a user invokes the bot as a guest in a chat. The bot should reply by invoking messages.setBotGuestChatResult, see here » for more info.
- Added updateAiComposeTones - The list of saved AI composer tones » of the current user has changed, and should be refetched using aicompose.getTones.
- Added topPeerCategoryBotsGuestChat - Top guest bots », i.e. bots most frequently invoked as guests in chats.
- Added webPageAttributeAiComposeTone - Webpage attribute attached to a webPage of type
telegram_aicomposetone, generated when previewing a shared AI composer tone » via an AI compose tone link ».
- Added stats.pollStats - Statistics for a poll sent in a message.
- Added inputAiComposeToneDefault - References a built-in, default AI composer tone » by its string identifier.
- Added inputAiComposeToneID - References a custom AI composer tone » by its ID and access hash.
- Added inputAiComposeToneSlug - References a custom AI composer tone » by its public slug, used when opening an AI compose tone link ».
- Added aiComposeTone - A custom AI composer tone », used to rephrase messages in a specific style with the AI message composer.
- Added aiComposeToneDefault - A built-in, default AI composer tone », identified by a string identifier rather than by a numeric ID.
- Added aicompose.tonesNotModified - The list of saved AI composer tones » hasn't changed since the last time it was fetched (i.e. the
hash passed to aicompose.getTones is still valid).
- Added aicompose.tones - The list of saved AI composer tones » of the current user.
- Added aiComposeToneExample - An example showing how an AI composer tone » rephrases a message, used as a preview in the tone picker.
- Added bots.accessSettings - Access restriction settings for a managed bot ».
Changed Constructors
New traversers incoming
New traversers outgoing
This layer introduces the following features:
API constants
Incoming web events
Incoming web events documented here ».
Mini app outgoing events
Outgoing mini app events documented here ».
Premium features
Telegram Premium feature identifiers ».
Premium limits
Telegram Premium limit identifiers ».
Web page type values
Web page type values from the webPage constructor.
New Methods
- Added messages.composeMessageWithAI - Invokes telegram's AI Editor that can translate, transform, fixup and/or emojify your message in a number of different ways, privately powered by Cocoon, see here » for more info!
- Added messages.reportReadMetrics - Report viewport read metrics for visible messages, indicating how long each message stayed in the chat viewport, see here » for more info on the full flow.
- Added messages.reportMusicListen - Report the listening duration of a music track (audio document without the
voice flag), see here » for more info on the full flow.
- Added messages.addPollAnswer - Add an answer option to an open-answer poll »
- Added messages.deletePollAnswer - Remove an answer option from an open-answer poll »
- Added messages.getUnreadPollVotes - Get messages containing polls with unread votes »
- Added messages.readPollVotes - Mark all unread poll votes » in a chat as read
- Added bots.checkUsername - Check whether a username is available and valid for use when creating a managed bot ».
- Added bots.createBot - Create a managed bot » owned by the current user and controlled by the specified manager bot.
- Added bots.exportBotToken - Export the bot token of a managed bot »; can only be called by the manager bot.
- Added bots.requestWebViewButton - Bots may use this method to prepare a peer request button for a Mini App, see here » for more info.
- Added bots.getRequestedWebViewButton - Fetch the peer request button a bot prepared for a Mini App with bots.requestWebViewButton, invoked when the Mini App emits a
web_app_request_chat event, see here » for more info.
Changed Methods
New Constructors
- Added messageActionPollAppendAnswer - A new answer option was added to an open-answer poll »
- Added messageActionPollDeleteAnswer - An answer option was removed from an open-answer poll »
- Added messageActionManagedBotCreated - Service message sent by a user to a manager bot when a new managed bot » is created through it, by invoking messages.sendBotRequestedPeer with a requestPeerTypeCreateBot, see here » for more info.
- Added inputMessagesFilterPoll - Filter for poll messages, see searching for polls »
- Added updateManagedBot - Manager bots only: a bot managed by the currently logged in bot was created or updated.
- Added messageEntityDiffInsert - Represents an diff addition: render it by simply underlining the specified section and coloring it in green, see here » for more info on how to render diff entities.
- Added messageEntityDiffReplace - Represents an diff replacement, render it as follows:
- Added messageEntityDiffDelete - Represents an diff deletion: render it by simply underlining the specified section and coloring it in red, see here » for more info on how to render diff entities.
- Added inputPollAnswer - An answer option to add to an open-answer poll »
- Added requestPeerTypeCreateBot - Used in a keyboardButtonRequestPeer by a manager bot to ask a user to create a new managed bot », see here » for more info.
- Added inputMessageReadMetric - Read metric for a single message exposure, describing how long the message was visible in the chat viewport.
- Added bots.exportedBotToken - The bot token of a managed bot », exported by the manager bot.
- Added bots.requestedButton - Contains the request ID a bot should pass to a Mini App after preparing a peer request button with bots.requestWebViewButton, see here » for more info.
- Added messages.composedMessageWithAI - Represents a message modified by AI.
Changed Constructors
- Added live_photo, video parameters in inputMediaUploadedPhoto
- Added live_photo, video parameters in inputMediaPhoto
- Added attached_media, solution_media parameters, changed type of correct_answers from flags.0?Vector<bytes> to flags.0?Vector<int> in inputMediaPoll
- Added bot_can_manage_bots parameter in user
- Added live_photo, video parameters in messageMediaPhoto
- Added flags, attached_media parameters in messageMediaPoll
- Added unread_poll_votes_count parameter in dialog
- Added unofficial_security_risk, bot_manager_id parameters in userFull
- Added peer, msg_id, top_msg_id parameters in updateMessagePoll
- Added positions parameter in updateMessagePollVote
- Added flags, media, added_by, date parameters in pollAnswer
- Added open_answers, revoting_disabled, shuffle_answers, hide_results_until_close, creator, hash parameters in poll
- Added recent_voters parameter, changed type of voters from int to flags.2?int in pollAnswerVoters
- Added has_unread_votes, solution_media parameters in pollResults
- Added is_app, verified_app_name parameters in urlAuthResultRequest
- Added poll_option parameter in messageReplyHeader
- Added unread_poll_votes_count parameter in forumTopic
- Added music parameter in storyItem
- Added poll_option parameter in inputReplyToMessage
- Added poll_votes_notify_from parameter in reactionsNotifySettings
New sources
New traversers incoming
- Added
traverseIncomingConstructor{predicate: messageActionPollAppendAnswer, params: [answer], type: MessageAction}
- Added
traverseIncomingConstructor{predicate: messageActionPollDeleteAnswer, params: [answer], type: MessageAction}
- Added
traverseIncomingConstructor{predicate: messageMediaPoll, params: [poll, results, attached_media], type: MessageMedia}
- Added
traverseIncomingConstructor{predicate: poll, params: [answers], type: Poll}
- Added
traverseIncomingConstructor{predicate: pollAnswer, params: [media], type: PollAnswer}
- Added
traverseIncomingConstructor{predicate: pollResults, params: [solution_media], type: PollResults}
- Added
traverseIncomingConstructor{predicate: updateMessagePoll, params: [poll, results], push_sources: [fileSourceMessage (unless messages.getScheduledMessages, updateNewScheduledMessage)], type: Update}
- Added
traverseMethodResult{name: messages.getUnreadPollVotes}
Changed traversers incoming
- Changed messageMediaPhoto traverseIncomingConstructor from
traverseIncomingConstructor{predicate: messageMediaPhoto, params: [photo], type: MessageMedia} to traverseIncomingConstructor{predicate: messageMediaPhoto, params: [photo, video], type: MessageMedia}
- Changed storyItem traverseIncomingConstructor from
traverseIncomingConstructor{predicate: storyItem, params: [media], push_sources: [fileSourceStory (needs stories.getPinnedStories), fileSourceStory (needs stories.getStoriesArchive), fileSourceStory (needs stories.getStoriesByID), fileSourceStory (needs stories.getAlbumStories), fileSourceStory (needs peerStories), fileSourceStory], type: StoryItem} to traverseIncomingConstructor{predicate: storyItem, params: [media, music], push_sources: [fileSourceStory (needs stories.getPinnedStories), fileSourceStory (needs stories.getStoriesArchive), fileSourceStory (needs stories.getStoriesByID), fileSourceStory (needs stories.getAlbumStories), fileSourceStory (needs peerStories), fileSourceStory], type: StoryItem}
New traversers outgoing
Changed traversers outgoing
- Changed stories.editStory traverseMethodCall from
traverseMethodCall{name: stories.editStory, params: [media]} to traverseMethodCall{name: stories.editStory, params: [media, music]}
- Changed stories.sendStory traverseMethodCall from
traverseMethodCall{name: stories.sendStory, params: [media]} to traverseMethodCall{name: stories.sendStory, params: [media, music]}
- Changed inputMediaPhoto traverseOutgoingConstructor from
traverseOutgoingConstructor{predicate: inputMediaPhoto, params: [id], type: InputMedia} to traverseOutgoingConstructor{predicate: inputMediaPhoto, params: [id, video], type: InputMedia}
- Changed inputMediaUploadedPhoto traverseOutgoingConstructor from
traverseOutgoingConstructor{predicate: inputMediaUploadedPhoto, params: [file, stickers], type: InputMedia} to traverseOutgoingConstructor{predicate: inputMediaUploadedPhoto, params: [file, stickers, video], type: InputMedia}
This layer introduces:
API constants
Incoming web events
Incoming web events documented here ».
Mini app outgoing events
Outgoing mini app events documented here ».
Premium features
Telegram Premium feature identifiers ».
New Methods
Changed Methods
Deleted Methods
- Removed channels.editCreator
- Removed channels.getFutureCreatorAfterLeave
New Constructors
Changed Constructors
PUSH notification changes
New PUSH notifications
This layer introduces the following features:
API constants
Post story content types
Story content types accepted by post story deep links ».
- Added
photo
- Added
video
- Added
live
New Methods
Changed Methods
New Constructors
Changed Constructors
- Added summary_from_language parameter in message
- Removed legacy_ios parameter in messageService
- Added bot_forum_can_manage_topics parameter in user
- Added flags, style parameters in keyboardButton
- Added monoforum parameter in channelForbidden
- Added flags, style parameters in keyboardButtonUrl
- Added style parameter in keyboardButtonCallback
- Added flags, style parameters in keyboardButtonRequestPhone
- Added flags, style parameters in keyboardButtonRequestGeoLocation
- Added style parameter in keyboardButtonSwitchInline
- Added flags, style parameters in keyboardButtonGame
- Added flags, style parameters in keyboardButtonBuy
- Added style parameter in keyboardButtonUrlAuth
- Added style parameter in inputKeyboardButtonUrlAuth
- Added request_phone_number, browser, platform, ip, region parameters in urlAuthResultRequest
- Added flags parameter, changed type of url from string to flags.0?string in urlAuthResultAccepted
- Added style parameter in keyboardButtonRequestPoll
- Added flags, game_outcome parameters in messageMediaDice
- Added flags, style parameters in inputKeyboardButtonUserProfile
- Added flags, style parameters in keyboardButtonUserProfile
- Added flags, style parameters in keyboardButtonWebView
- Added flags, style parameters in keyboardButtonSimpleWebView
- Added flags, style parameters in keyboardButtonRequestPeer
- Added style parameter in inputKeyboardButtonRequestPeer
- Added flags, style parameters in keyboardButtonCopy
- Added flags, crafted, rarity parameters, removed rarity_permille parameter in starGiftAttributeModel
- Added rarity parameter, removed rarity_permille parameter in starGiftAttributePattern
- Added rarity parameter, removed rarity_permille parameter in starGiftAttributeBackdrop
- Added burned, crafted, craft_chance_permille parameters in starGiftUnique
- Added craft, can_craft_at parameters in messageActionStarGiftUnique
- Added can_craft_at parameter in savedStarGift
PUSH notification changes
New PUSH notifications
New traversers incoming
This layer introduces the following features:
API constants
Premium features
Telegram Premium feature identifiers ».
Suggested actions
Basic suggestion identifiers »
New Methods
New Constructors
Changed Constructors
New skipped incoming sources
New traversers incoming
This layer introduces the following features:
New Methods
Changed Methods
New Constructors
Changed Constructors
This layer introduces the following features:
API constants
Web page type values
Web page type values from the webPage constructor.
New Methods
New Constructors
Changed Constructors
New traversers incoming
|