telegram-crawler/data/web/blogfork.telegram.org/api/layers.html
2023-03-20 11:08:32 +00:00

1031 lines
218 KiB
HTML

<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Layers</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="API schema changelog">
<meta property="og:title" content="Layers">
<meta property="og:image" content="">
<meta property="og:description" content="API schema changelog">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
<link rel="alternate icon" href="/img/favicon.ico" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?236" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/api/layers" >Layers</a></li></ul></div>
<h1 id="dev_page_title">Layers</h1>
<div id="dev_page_content"><!-- scroll_nav -->
<p>Below you will find information on schema changes. For more details on the use of layers, see <a href="/api/invoking#layers">Invoking API methods</a>.</p>
<h3><a class="anchor" href="#layer-145" id="layer-145" name="layer-145"><i class="anchor-icon"></i></a><a href="/schema?layer=145">Layer 145</a></h3>
<p><a href="/api/emoji-status">Custom emoji statuses</a>, <a href="/api/reactions">custom emoji &amp; multiple message reactions</a>, <a href="/api/auth#email-verification">login via email</a>, <a href="/api/stickers#recent-stickersets">recent stickersets</a>, <a href="/api/premium">Telegram Premium</a> and <a href="/api/bots/webapps">bot web app</a> improvements.</p>
<p>Added the following brand new documentation articles:</p>
<ul>
<li><a href="/api/links">Deep links</a></li>
<li><a href="/api/stickers">Stickers</a></li>
<li><a href="/api/themes">Themes</a></li>
<li><a href="/api/wallpapers">Wallpapers</a></li>
</ul>
<p>Also added more details on <a href="/api/entities#entity-length">entity length calculation</a> and <a href="/api/errors#406-not-acceptable"><code>AUTH_KEY_DUPLICATED</code> errors</a>.</p>
<p>The <a href="/api/errors#error-database">RPC error database »</a> was also updated.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/account.updateEmojiStatus">account.updateEmojiStatus</a> - Set an <a href="/api/emoji-status">emoji status</a></li>
<li>Added <a href="/method/account.getDefaultEmojiStatuses">account.getDefaultEmojiStatuses</a> - Get a list of default suggested <a href="/api/emoji-status">emoji statuses</a></li>
<li>Added <a href="/method/account.getRecentEmojiStatuses">account.getRecentEmojiStatuses</a> - Get recently used <a href="/api/emoji-status">emoji statuses</a></li>
<li>Added <a href="/method/account.clearRecentEmojiStatuses">account.clearRecentEmojiStatuses</a> - Clears list of recently used <a href="/api/emoji-status">emoji statuses</a></li>
<li>Added <a href="/method/messages.reportReaction">messages.reportReaction</a> - Report a <a href="/api/reactions">message reaction</a></li>
<li>Added <a href="/method/messages.getTopReactions">messages.getTopReactions</a> - Got popular <a href="/api/reactions">message reactions</a></li>
<li>Added <a href="/method/messages.getRecentReactions">messages.getRecentReactions</a> - Get recently used <a href="/api/reactions">message reactions</a></li>
<li>Added <a href="/method/messages.clearRecentReactions">messages.clearRecentReactions</a> - Clear recently used <a href="/api/reactions">message reactions</a></li>
</ul>
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Added <strong>flags</strong>, <strong>email_verification</strong> parameters, changed type of <strong>phone_code</strong> from <strong>string</strong> to <strong>flags.0?string</strong> in <a href="/method/auth.signIn">auth.signIn</a></li>
<li>Added <strong>update_stickersets_order</strong> parameter in <a href="/method/messages.sendMessage">messages.sendMessage</a></li>
<li>Added <strong>update_stickersets_order</strong> parameter in <a href="/method/messages.sendMedia">messages.sendMedia</a></li>
<li>Added <strong>update_stickersets_order</strong> parameter in <a href="/method/messages.sendMultiMedia">messages.sendMultiMedia</a></li>
<li>Added <strong>purpose</strong> parameter in <a href="/method/account.sendVerifyEmailCode">account.sendVerifyEmailCode</a></li>
<li>Changed type of <a href="/method/account.verifyEmail">account.verifyEmail</a> from <strong>Bool</strong> to <strong>account.EmailVerified</strong></li>
<li>Added <strong>purpose</strong>, <strong>verification</strong> parameters, removed <strong>email</strong>, <strong>code</strong> parameters in <a href="/method/account.verifyEmail">account.verifyEmail</a></li>
<li>Added <strong>add_to_recent</strong> parameter, changed type of <strong>reaction</strong> from <strong>flags.0?string</strong> to <strong>flags.0?Vector&lt;Reaction&gt;</strong> in <a href="/method/messages.sendReaction">messages.sendReaction</a></li>
<li>Changed type of <strong>reaction</strong> from <strong>flags.0?string</strong> to <strong>flags.0?Reaction</strong> in <a href="/method/messages.getMessageReactionsList">messages.getMessageReactionsList</a></li>
<li>Changed type of <strong>available_reactions</strong> from <strong>Vector&lt;string&gt;</strong> to <strong>ChatReactions</strong> in <a href="/method/messages.setChatAvailableReactions">messages.setChatAvailableReactions</a></li>
<li>Changed type of <strong>reaction</strong> from <strong>string</strong> to <strong>Reaction</strong> in <a href="/method/messages.setDefaultReaction">messages.setDefaultReaction</a></li>
<li>Added <strong>platform</strong> parameter in <a href="/method/messages.requestWebView">messages.requestWebView</a></li>
<li>Added <strong>platform</strong> parameter in <a href="/method/messages.requestSimpleWebView">messages.requestSimpleWebView</a></li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/emojiStatusEmpty">emojiStatusEmpty</a> - No emoji status is set</li>
<li>Added <a href="/constructor/emojiStatus">emojiStatus</a> - An <a href="/api/emoji-status">emoji status</a></li>
<li>Added <a href="/constructor/emojiStatusUntil">emojiStatusUntil</a> - An <a href="/api/emoji-status">emoji status</a> valid until the specified date</li>
<li>Added <a href="/constructor/updateUserEmojiStatus">updateUserEmojiStatus</a> - The <a href="/api/emoji-status">emoji status</a> of a certain user has changed</li>
<li>Added <a href="/constructor/updateRecentEmojiStatuses">updateRecentEmojiStatuses</a> - The list of recent <a href="/api/emoji-status">emoji statuses</a> has changed</li>
<li>Added <a href="/constructor/account.emojiStatusesNotModified">account.emojiStatusesNotModified</a> - The server-side list of <a href="/api/emoji-status">emoji statuses</a> hasn't changed</li>
<li>Added <a href="/constructor/account.emojiStatuses">account.emojiStatuses</a> - A list of <a href="/api/emoji-status">emoji statuses</a></li>
<li>Added <a href="/constructor/reactionEmpty">reactionEmpty</a> - No reaction</li>
<li>Added <a href="/constructor/reactionEmoji">reactionEmoji</a> - Normal emoji message reaction</li>
<li>Added <a href="/constructor/reactionCustomEmoji">reactionCustomEmoji</a> - <a href="/api/custom-emoji">Custom emoji</a> message reaction</li>
<li>Added <a href="/constructor/chatReactionsNone">chatReactionsNone</a> - No reactions are allowed</li>
<li>Added <a href="/constructor/chatReactionsAll">chatReactionsAll</a> - All reactions or all non-custom reactions are allowed</li>
<li>Added <a href="/constructor/chatReactionsSome">chatReactionsSome</a> - Some reactions are allowed</li>
<li>Added <a href="/constructor/messages.reactionsNotModified">messages.reactionsNotModified</a> - The server-side list of <a href="/api/reactions">message reactions</a> hasn't changed</li>
<li>Added <a href="/constructor/messages.reactions">messages.reactions</a> - List of <a href="/api/reactions">message reactions</a></li>
<li>Added <a href="/constructor/updateRecentReactions">updateRecentReactions</a> - The list of recent <a href="/api/reactions">message reactions</a> has changed</li>
<li>Added <a href="/constructor/updateMoveStickerSetToTop">updateMoveStickerSetToTop</a> - A stickerset was just moved to top, <a href="/api/stickers#recent-stickersets">see here for more info »</a></li>
<li>Added <a href="/constructor/auth.sentCodeTypeEmailCode">auth.sentCodeTypeEmailCode</a> - The code was sent via the <a href="/api/auth#email-verification">previously configured login email »</a></li>
<li>Added <a href="/constructor/auth.sentCodeTypeSetUpEmailRequired">auth.sentCodeTypeSetUpEmailRequired</a> - The user should add and verify an email address in order to login as described <a href="/api/auth#email-verification">here »</a>.</li>
<li>Added <a href="/constructor/emailVerifyPurposeLoginSetup">emailVerifyPurposeLoginSetup</a> - Email verification purpose: setup login email</li>
<li>Added <a href="/constructor/emailVerifyPurposeLoginChange">emailVerifyPurposeLoginChange</a> - Email verification purpose: change login email</li>
<li>Added <a href="/constructor/emailVerifyPurposePassport">emailVerifyPurposePassport</a> - Verify an email for use in <a href="/api/passport">telegram passport</a></li>
<li>Added <a href="/constructor/emailVerificationCode">emailVerificationCode</a> - Email verification code</li>
<li>Added <a href="/constructor/emailVerificationGoogle">emailVerificationGoogle</a> - Google ID email verification token</li>
<li>Added <a href="/constructor/emailVerificationApple">emailVerificationApple</a> - Apple ID email verification token</li>
<li>Added <a href="/constructor/account.emailVerified">account.emailVerified</a> - The email was verified correctly.</li>
<li>Added <a href="/constructor/account.emailVerifiedLogin">account.emailVerifiedLogin</a> - The email was verified correctly, and a login code was just sent to it.</li>
<li>Added <a href="/constructor/premiumSubscriptionOption">premiumSubscriptionOption</a> - Describes a Telegram Premium subscription option</li>
<li>Added <a href="/constructor/inputStickerSetEmojiGenericAnimations">inputStickerSetEmojiGenericAnimations</a> - Generic animation stickerset containing animations to play when <a href="/api/reactions">reacting to messages using a normal emoji without a custom animation</a></li>
<li>Added <a href="/constructor/inputStickerSetEmojiDefaultStatuses">inputStickerSetEmojiDefaultStatuses</a> - Default <a href="/api/emoji-status">custom emoji status</a> stickerset</li>
<li>Added <a href="/constructor/sendAsPeer">sendAsPeer</a> - Indicates a peer that can be used to send messages</li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Changed type of <strong>available_reactions</strong> from <strong>flags.18?Vector&lt;string&gt;</strong> to <strong>flags.18?ChatReactions</strong> in <a href="/constructor/chatFull">chatFull</a></li>
<li>Added <strong>reactions_default</strong> parameter in <a href="/constructor/config">config</a></li>
<li>Added <strong>login_email_pattern</strong> parameter in <a href="/constructor/account.password">account.password</a></li>
<li>Added <strong>emoji_status</strong> parameter in <a href="/constructor/user">user</a></li>
<li>Changed type of <strong>available_reactions</strong> from <strong>flags.30?Vector&lt;string&gt;</strong> to <strong>flags.30?ChatReactions</strong> in <a href="/constructor/channelFull">channelFull</a></li>
<li>Added <strong>flags</strong>, <strong>masks</strong>, <strong>emojis</strong> parameters in <a href="/constructor/updateStickerSets">updateStickerSets</a></li>
<li>Changed type of <strong>peers</strong> from <strong>Vector&lt;Peer&gt;</strong> to <strong>Vector&lt;SendAsPeer&gt;</strong> in <a href="/constructor/channels.sendAsPeers">channels.sendAsPeers</a></li>
<li>Added <strong>chosen_order</strong> parameter, removed <strong>chosen</strong> parameter, changed type of <strong>reaction</strong> from <strong>string</strong> to <strong>Reaction</strong> in <a href="/constructor/reactionCount">reactionCount</a></li>
<li>Changed type of <strong>prev_value</strong> from <strong>Vector&lt;string&gt;</strong> to <strong>ChatReactions</strong>, <strong>new_value</strong> from <strong>Vector&lt;string&gt;</strong> to <strong>ChatReactions</strong> in <a href="/constructor/channelAdminLogEventActionChangeAvailableReactions">channelAdminLogEventActionChangeAvailableReactions</a></li>
<li>Changed type of <strong>reaction</strong> from <strong>string</strong> to <strong>Reaction</strong> in <a href="/constructor/messagePeerReaction">messagePeerReaction</a></li>
<li>Added <strong>period_options</strong> parameter, removed <strong>currency</strong>, <strong>monthly_amount</strong> parameters in <a href="/constructor/help.premiumPromo">help.premiumPromo</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/chatFull">chatFull</a>#c9d31138 flags:<a href="/type/%23">#</a> can_set_username:flags.7?<a href="/constructor/true">true</a> has_scheduled:flags.8?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:<a href="/type/string">string</a> participants:<a href="/type/ChatParticipants">ChatParticipants</a> chat_photo:flags.2?<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> exported_invite:flags.13?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> bot_info:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotInfo">BotInfo</a>&gt; pinned_msg_id:flags.6?<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> call:flags.12?<a href="/type/InputGroupCall">InputGroupCall</a> ttl_period:flags.14?<a href="/type/int">int</a> groupcall_default_join_as:flags.15?<a href="/type/Peer">Peer</a> theme_emoticon:flags.16?<a href="/type/string">string</a> requests_pending:flags.17?<a href="/type/int">int</a> recent_requesters:flags.17?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; available_reactions:flags.18?<a href="/type/ChatReactions">ChatReactions</a> = <a href="/type/ChatFull">ChatFull</a>;
<a href="/constructor/config">config</a>#232566ac flags:<a href="/type/%23">#</a> phonecalls_enabled:flags.1?<a href="/constructor/true">true</a> default_p2p_contacts:flags.3?<a href="/constructor/true">true</a> preload_featured_stickers:flags.4?<a href="/constructor/true">true</a> ignore_phone_entities:flags.5?<a href="/constructor/true">true</a> revoke_pm_inbox:flags.6?<a href="/constructor/true">true</a> blocked_mode:flags.8?<a href="/constructor/true">true</a> pfs_enabled:flags.13?<a href="/constructor/true">true</a> force_try_ipv6:flags.14?<a href="/constructor/true">true</a> date:<a href="/type/int">int</a> expires:<a href="/type/int">int</a> test_mode:<a href="/type/Bool">Bool</a> this_dc:<a href="/type/int">int</a> dc_options:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/DcOption">DcOption</a>&gt; dc_txt_domain_name:<a href="/type/string">string</a> chat_size_max:<a href="/type/int">int</a> megagroup_size_max:<a href="/type/int">int</a> forwarded_count_max:<a href="/type/int">int</a> online_update_period_ms:<a href="/type/int">int</a> offline_blur_timeout_ms:<a href="/type/int">int</a> offline_idle_timeout_ms:<a href="/type/int">int</a> online_cloud_timeout_ms:<a href="/type/int">int</a> notify_cloud_delay_ms:<a href="/type/int">int</a> notify_default_delay_ms:<a href="/type/int">int</a> push_chat_period_ms:<a href="/type/int">int</a> push_chat_limit:<a href="/type/int">int</a> saved_gifs_limit:<a href="/type/int">int</a> edit_time_limit:<a href="/type/int">int</a> revoke_time_limit:<a href="/type/int">int</a> revoke_pm_time_limit:<a href="/type/int">int</a> rating_e_decay:<a href="/type/int">int</a> stickers_recent_limit:<a href="/type/int">int</a> stickers_faved_limit:<a href="/type/int">int</a> channels_read_media_period:<a href="/type/int">int</a> tmp_sessions:flags.0?<a href="/type/int">int</a> pinned_dialogs_count_max:<a href="/type/int">int</a> pinned_infolder_count_max:<a href="/type/int">int</a> call_receive_timeout_ms:<a href="/type/int">int</a> call_ring_timeout_ms:<a href="/type/int">int</a> call_connect_timeout_ms:<a href="/type/int">int</a> call_packet_timeout_ms:<a href="/type/int">int</a> me_url_prefix:<a href="/type/string">string</a> autoupdate_url_prefix:flags.7?<a href="/type/string">string</a> gif_search_username:flags.9?<a href="/type/string">string</a> venue_search_username:flags.10?<a href="/type/string">string</a> img_search_username:flags.11?<a href="/type/string">string</a> static_maps_provider:flags.12?<a href="/type/string">string</a> caption_length_max:<a href="/type/int">int</a> message_length_max:<a href="/type/int">int</a> webfile_dc_id:<a href="/type/int">int</a> suggested_lang_code:flags.2?<a href="/type/string">string</a> lang_pack_version:flags.2?<a href="/type/int">int</a> base_lang_pack_version:flags.2?<a href="/type/int">int</a> reactions_default:flags.15?<a href="/type/Reaction">Reaction</a> = <a href="/type/Config">Config</a>;<br>
<a href="/constructor/account.password">account.password</a>#957b50fb flags:<a href="/type/%23">#</a> has_recovery:flags.0?<a href="/constructor/true">true</a> has_secure_values:flags.1?<a href="/constructor/true">true</a> has_password:flags.2?<a href="/constructor/true">true</a> current_algo:flags.2?<a href="/type/PasswordKdfAlgo">PasswordKdfAlgo</a> srp_B:flags.2?<a href="/type/bytes">bytes</a> srp_id:flags.2?<a href="/type/long">long</a> hint:flags.3?<a href="/type/string">string</a> email_unconfirmed_pattern:flags.4?<a href="/type/string">string</a> new_algo:<a href="/type/PasswordKdfAlgo">PasswordKdfAlgo</a> new_secure_algo:<a href="/type/SecurePasswordKdfAlgo">SecurePasswordKdfAlgo</a> secure_random:<a href="/type/bytes">bytes</a> pending_reset_date:flags.5?<a href="/type/int">int</a> login_email_pattern:flags.6?<a href="/type/string">string</a> = <a href="/type/account.Password">account.Password</a>;<br>
<a href="/constructor/user">user</a>#5d99adee flags:<a href="/type/%23">#</a> self:flags.10?<a href="/constructor/true">true</a> contact:flags.11?<a href="/constructor/true">true</a> mutual_contact:flags.12?<a href="/constructor/true">true</a> deleted:flags.13?<a href="/constructor/true">true</a> bot:flags.14?<a href="/constructor/true">true</a> bot_chat_history:flags.15?<a href="/constructor/true">true</a> bot_nochats:flags.16?<a href="/constructor/true">true</a> verified:flags.17?<a href="/constructor/true">true</a> restricted:flags.18?<a href="/constructor/true">true</a> min:flags.20?<a href="/constructor/true">true</a> bot_inline_geo:flags.21?<a href="/constructor/true">true</a> support:flags.23?<a href="/constructor/true">true</a> scam:flags.24?<a href="/constructor/true">true</a> apply_min_photo:flags.25?<a href="/constructor/true">true</a> fake:flags.26?<a href="/constructor/true">true</a> bot_attach_menu:flags.27?<a href="/constructor/true">true</a> premium:flags.28?<a href="/constructor/true">true</a> attach_menu_enabled:flags.29?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> access_hash:flags.0?<a href="/type/long">long</a> first_name:flags.1?<a href="/type/string">string</a> last_name:flags.2?<a href="/type/string">string</a> username:flags.3?<a href="/type/string">string</a> phone:flags.4?<a href="/type/string">string</a> photo:flags.5?<a href="/type/UserProfilePhoto">UserProfilePhoto</a> status:flags.6?<a href="/type/UserStatus">UserStatus</a> bot_info_version:flags.14?<a href="/type/int">int</a> restriction_reason:flags.18?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RestrictionReason">RestrictionReason</a>&gt; bot_inline_placeholder:flags.19?<a href="/type/string">string</a> lang_code:flags.22?<a href="/type/string">string</a> emoji_status:flags.30?<a href="/type/EmojiStatus">EmojiStatus</a> = <a href="/type/User">User</a>;<br>
<a href="/constructor/channelFull">channelFull</a>#f2355507 flags:<a href="/type/%23">#</a> can_view_participants:flags.3?<a href="/constructor/true">true</a> can_set_username:flags.6?<a href="/constructor/true">true</a> can_set_stickers:flags.7?<a href="/constructor/true">true</a> hidden_prehistory:flags.10?<a href="/constructor/true">true</a> can_set_location:flags.16?<a href="/constructor/true">true</a> has_scheduled:flags.19?<a href="/constructor/true">true</a> can_view_stats:flags.20?<a href="/constructor/true">true</a> blocked:flags.22?<a href="/constructor/true">true</a> flags2:<a href="/type/%23">#</a> can_delete_channel:flags2.0?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:<a href="/type/string">string</a> participants_count:flags.0?<a href="/type/int">int</a> admins_count:flags.1?<a href="/type/int">int</a> kicked_count:flags.2?<a href="/type/int">int</a> banned_count:flags.2?<a href="/type/int">int</a> online_count:flags.13?<a href="/type/int">int</a> read_inbox_max_id:<a href="/type/int">int</a> read_outbox_max_id:<a href="/type/int">int</a> unread_count:<a href="/type/int">int</a> chat_photo:<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> exported_invite:flags.23?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> bot_info:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotInfo">BotInfo</a>&gt; migrated_from_chat_id:flags.4?<a href="/type/long">long</a> migrated_from_max_id:flags.4?<a href="/type/int">int</a> pinned_msg_id:flags.5?<a href="/type/int">int</a> stickerset:flags.8?<a href="/type/StickerSet">StickerSet</a> available_min_id:flags.9?<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> linked_chat_id:flags.14?<a href="/type/long">long</a> location:flags.15?<a href="/type/ChannelLocation">ChannelLocation</a> slowmode_seconds:flags.17?<a href="/type/int">int</a> slowmode_next_send_date:flags.18?<a href="/type/int">int</a> stats_dc:flags.12?<a href="/type/int">int</a> pts:<a href="/type/int">int</a> call:flags.21?<a href="/type/InputGroupCall">InputGroupCall</a> ttl_period:flags.24?<a href="/type/int">int</a> pending_suggestions:flags.25?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; groupcall_default_join_as:flags.26?<a href="/type/Peer">Peer</a> theme_emoticon:flags.27?<a href="/type/string">string</a> requests_pending:flags.28?<a href="/type/int">int</a> recent_requesters:flags.28?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; default_send_as:flags.29?<a href="/type/Peer">Peer</a> available_reactions:flags.30?<a href="/type/ChatReactions">ChatReactions</a> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/updateStickerSets">updateStickerSets</a>#31c24808 flags:<a href="/type/%23">#</a> masks:flags.0?<a href="/constructor/true">true</a> emojis:flags.1?<a href="/constructor/true">true</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/channels.sendAsPeers">channels.sendAsPeers</a>#f496b0c6 peers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/SendAsPeer">SendAsPeer</a>&gt; chats:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Chat">Chat</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/channels.SendAsPeers">channels.SendAsPeers</a>;<br>
<a href="/constructor/reactionCount">reactionCount</a>#a3d1cb80 flags:<a href="/type/%23">#</a> chosen_order:flags.0?<a href="/type/int">int</a> reaction:<a href="/type/Reaction">Reaction</a> count:<a href="/type/int">int</a> = <a href="/type/ReactionCount">ReactionCount</a>;<br>
<a href="/constructor/channelAdminLogEventActionChangeAvailableReactions">channelAdminLogEventActionChangeAvailableReactions</a>#be4e0ef8 prev_value:<a href="/type/ChatReactions">ChatReactions</a> new_value:<a href="/type/ChatReactions">ChatReactions</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;<br>
<a href="/constructor/messagePeerReaction">messagePeerReaction</a>#b156fe9c flags:<a href="/type/%23">#</a> big:flags.0?<a href="/constructor/true">true</a> unread:flags.1?<a href="/constructor/true">true</a> peer_id:<a href="/type/Peer">Peer</a> reaction:<a href="/type/Reaction">Reaction</a> = <a href="/type/MessagePeerReaction">MessagePeerReaction</a>;<br>
<a href="/constructor/help.premiumPromo">help.premiumPromo</a>#5334759c status_text:<a href="/type/string">string</a> status_entities:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; video_sections:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; videos:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Document">Document</a>&gt; period_options:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PremiumSubscriptionOption">PremiumSubscriptionOption</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/help.PremiumPromo">help.PremiumPromo</a>;<br>
<a href="/constructor/emojiStatusEmpty">emojiStatusEmpty</a>#2de11aae = <a href="/type/EmojiStatus">EmojiStatus</a>;
<a href="/constructor/emojiStatus">emojiStatus</a>#929b619d document_id:<a href="/type/long">long</a> = <a href="/type/EmojiStatus">EmojiStatus</a>;
<a href="/constructor/emojiStatusUntil">emojiStatusUntil</a>#fa30a8c7 document_id:<a href="/type/long">long</a> until:<a href="/type/int">int</a> = <a href="/type/EmojiStatus">EmojiStatus</a>;<br>
<a href="/constructor/updateUserEmojiStatus">updateUserEmojiStatus</a>#28373599 user_id:<a href="/type/long">long</a> emoji_status:<a href="/type/EmojiStatus">EmojiStatus</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateRecentEmojiStatuses">updateRecentEmojiStatuses</a>#30f443db = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/account.emojiStatusesNotModified">account.emojiStatusesNotModified</a>#d08ce645 = <a href="/type/account.EmojiStatuses">account.EmojiStatuses</a>;
<a href="/constructor/account.emojiStatuses">account.emojiStatuses</a>#90c467d1 hash:<a href="/type/long">long</a> statuses:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/EmojiStatus">EmojiStatus</a>&gt; = <a href="/type/account.EmojiStatuses">account.EmojiStatuses</a>;<br>
<a href="/constructor/reactionEmpty">reactionEmpty</a>#79f5d419 = <a href="/type/Reaction">Reaction</a>;
<a href="/constructor/reactionEmoji">reactionEmoji</a>#1b2286b8 emoticon:<a href="/type/string">string</a> = <a href="/type/Reaction">Reaction</a>;
<a href="/constructor/reactionCustomEmoji">reactionCustomEmoji</a>#8935fc73 document_id:<a href="/type/long">long</a> = <a href="/type/Reaction">Reaction</a>;<br>
<a href="/constructor/chatReactionsNone">chatReactionsNone</a>#eafc32bc = <a href="/type/ChatReactions">ChatReactions</a>;
<a href="/constructor/chatReactionsAll">chatReactionsAll</a>#52928bca flags:<a href="/type/%23">#</a> allow_custom:flags.0?<a href="/constructor/true">true</a> = <a href="/type/ChatReactions">ChatReactions</a>;
<a href="/constructor/chatReactionsSome">chatReactionsSome</a>#661d4037 reactions:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Reaction">Reaction</a>&gt; = <a href="/type/ChatReactions">ChatReactions</a>;<br>
<a href="/constructor/messages.reactionsNotModified">messages.reactionsNotModified</a>#b06fdbdf = <a href="/type/messages.Reactions">messages.Reactions</a>;
<a href="/constructor/messages.reactions">messages.reactions</a>#eafdf716 hash:<a href="/type/long">long</a> reactions:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Reaction">Reaction</a>&gt; = <a href="/type/messages.Reactions">messages.Reactions</a>;<br>
<a href="/constructor/updateRecentReactions">updateRecentReactions</a>#6f7863f4 = <a href="/type/Update">Update</a>;
<a href="/constructor/updateMoveStickerSetToTop">updateMoveStickerSetToTop</a>#86fccf85 flags:<a href="/type/%23">#</a> masks:flags.0?<a href="/constructor/true">true</a> emojis:flags.1?<a href="/constructor/true">true</a> stickerset:<a href="/type/long">long</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/auth.sentCodeTypeEmailCode">auth.sentCodeTypeEmailCode</a>#5a159841 flags:<a href="/type/%23">#</a> apple_signin_allowed:flags.0?<a href="/constructor/true">true</a> google_signin_allowed:flags.1?<a href="/constructor/true">true</a> email_pattern:<a href="/type/string">string</a> length:<a href="/type/int">int</a> next_phone_login_date:flags.2?<a href="/type/int">int</a> = <a href="/type/auth.SentCodeType">auth.SentCodeType</a>;
<a href="/constructor/auth.sentCodeTypeSetUpEmailRequired">auth.sentCodeTypeSetUpEmailRequired</a>#a5491dea flags:<a href="/type/%23">#</a> apple_signin_allowed:flags.0?<a href="/constructor/true">true</a> google_signin_allowed:flags.1?<a href="/constructor/true">true</a> = <a href="/type/auth.SentCodeType">auth.SentCodeType</a>;<br>
<a href="/constructor/emailVerifyPurposeLoginSetup">emailVerifyPurposeLoginSetup</a>#4345be73 phone_number:<a href="/type/string">string</a> phone_code_hash:<a href="/type/string">string</a> = <a href="/type/EmailVerifyPurpose">EmailVerifyPurpose</a>;
<a href="/constructor/emailVerifyPurposeLoginChange">emailVerifyPurposeLoginChange</a>#527d22eb = <a href="/type/EmailVerifyPurpose">EmailVerifyPurpose</a>;
<a href="/constructor/emailVerifyPurposePassport">emailVerifyPurposePassport</a>#bbf51685 = <a href="/type/EmailVerifyPurpose">EmailVerifyPurpose</a>;
<a href="/constructor/emailVerificationCode">emailVerificationCode</a>#922e55a9 code:<a href="/type/string">string</a> = <a href="/type/EmailVerification">EmailVerification</a>;
<a href="/constructor/emailVerificationGoogle">emailVerificationGoogle</a>#db909ec2 token:<a href="/type/string">string</a> = <a href="/type/EmailVerification">EmailVerification</a>;
<a href="/constructor/emailVerificationApple">emailVerificationApple</a>#96d074fd token:<a href="/type/string">string</a> = <a href="/type/EmailVerification">EmailVerification</a>;<br>
<a href="/constructor/account.emailVerified">account.emailVerified</a>#2b96cd1b email:<a href="/type/string">string</a> = <a href="/type/account.EmailVerified">account.EmailVerified</a>;
<a href="/constructor/account.emailVerifiedLogin">account.emailVerifiedLogin</a>#e1bb0d61 email:<a href="/type/string">string</a> sent_code:<a href="/type/auth.SentCode">auth.SentCode</a> = <a href="/type/account.EmailVerified">account.EmailVerified</a>;<br>
<a href="/constructor/premiumSubscriptionOption">premiumSubscriptionOption</a>#b6f11ebe flags:<a href="/type/%23">#</a> months:<a href="/type/int">int</a> currency:<a href="/type/string">string</a> amount:<a href="/type/long">long</a> bot_url:<a href="/type/string">string</a> store_product:flags.0?<a href="/type/string">string</a> = <a href="/type/PremiumSubscriptionOption">PremiumSubscriptionOption</a>;<br>
<a href="/constructor/inputStickerSetEmojiGenericAnimations">inputStickerSetEmojiGenericAnimations</a>#04c4d4ce = <a href="/type/InputStickerSet">InputStickerSet</a>;
<a href="/constructor/inputStickerSetEmojiDefaultStatuses">inputStickerSetEmojiDefaultStatuses</a>#29d0f5ee = <a href="/type/InputStickerSet">InputStickerSet</a>;<br>
<a href="/constructor/sendAsPeer">sendAsPeer</a>#b81c7034 flags:<a href="/type/%23">#</a> premium_required:flags.0?<a href="/constructor/true">true</a> peer:<a href="/type/Peer">Peer</a> = <a href="/type/SendAsPeer">SendAsPeer</a>;<br>
---functions---<br>
<a href="/method/auth.signIn">auth.signIn</a>#8d52a951 flags:<a href="/type/%23">#</a> phone_number:<a href="/type/string">string</a> phone_code_hash:<a href="/type/string">string</a> phone_code:flags.0?<a href="/type/string">string</a> email_verification:flags.1?<a href="/type/EmailVerification">EmailVerification</a> = <a href="/type/auth.Authorization">auth.Authorization</a>;<br>
<a href="/method/messages.sendMessage">messages.sendMessage</a>#0d9d75a4 flags:<a href="/type/%23">#</a> no_webpage:flags.1?<a href="/constructor/true">true</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> clear_draft:flags.7?<a href="/constructor/true">true</a> noforwards:flags.14?<a href="/constructor/true">true</a> update_stickersets_order:flags.15?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> reply_to_msg_id:flags.0?<a href="/type/int">int</a> message:<a href="/type/string">string</a> random_id:<a href="/type/long">long</a> reply_markup:flags.2?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.sendMedia">messages.sendMedia</a>#e25ff8e0 flags:<a href="/type/%23">#</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> clear_draft:flags.7?<a href="/constructor/true">true</a> noforwards:flags.14?<a href="/constructor/true">true</a> update_stickersets_order:flags.15?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> reply_to_msg_id:flags.0?<a href="/type/int">int</a> media:<a href="/type/InputMedia">InputMedia</a> message:<a href="/type/string">string</a> random_id:<a href="/type/long">long</a> reply_markup:flags.2?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.sendMultiMedia">messages.sendMultiMedia</a>#f803138f flags:<a href="/type/%23">#</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> clear_draft:flags.7?<a href="/constructor/true">true</a> noforwards:flags.14?<a href="/constructor/true">true</a> update_stickersets_order:flags.15?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> reply_to_msg_id:flags.0?<a href="/type/int">int</a> multi_media:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputSingleMedia">InputSingleMedia</a>&gt; schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/account.sendVerifyEmailCode">account.sendVerifyEmailCode</a>#98e037bb purpose:<a href="/type/EmailVerifyPurpose">EmailVerifyPurpose</a> email:<a href="/type/string">string</a> = <a href="/type/account.SentEmailCode">account.SentEmailCode</a>;
<a href="/method/account.verifyEmail">account.verifyEmail</a>#032da4cf purpose:<a href="/type/EmailVerifyPurpose">EmailVerifyPurpose</a> verification:<a href="/type/EmailVerification">EmailVerification</a> = <a href="/type/account.EmailVerified">account.EmailVerified</a>;<br>
<a href="/method/messages.sendReaction">messages.sendReaction</a>#d30d78d4 flags:<a href="/type/%23">#</a> big:flags.1?<a href="/constructor/true">true</a> add_to_recent:flags.2?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> reaction:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Reaction">Reaction</a>&gt; = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.getMessageReactionsList">messages.getMessageReactionsList</a>#461b3f48 flags:<a href="/type/%23">#</a> peer:<a href="/type/InputPeer">InputPeer</a> id:<a href="/type/int">int</a> reaction:flags.0?<a href="/type/Reaction">Reaction</a> offset:flags.1?<a href="/type/string">string</a> limit:<a href="/type/int">int</a> = <a href="/type/messages.MessageReactionsList">messages.MessageReactionsList</a>;
<a href="/method/messages.setChatAvailableReactions">messages.setChatAvailableReactions</a>#feb16771 peer:<a href="/type/InputPeer">InputPeer</a> available_reactions:<a href="/type/ChatReactions">ChatReactions</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.setDefaultReaction">messages.setDefaultReaction</a>#4f47a016 reaction:<a href="/type/Reaction">Reaction</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.requestWebView">messages.requestWebView</a>#fc87a53c flags:<a href="/type/%23">#</a> from_bot_menu:flags.4?<a href="/constructor/true">true</a> silent:flags.5?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> bot:<a href="/type/InputUser">InputUser</a> url:flags.1?<a href="/type/string">string</a> start_param:flags.3?<a href="/type/string">string</a> theme_params:flags.2?<a href="/type/DataJSON">DataJSON</a> platform:<a href="/type/string">string</a> reply_to_msg_id:flags.0?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> = <a href="/type/WebViewResult">WebViewResult</a>;
<a href="/method/messages.requestSimpleWebView">messages.requestSimpleWebView</a>#299bec8e flags:<a href="/type/%23">#</a> bot:<a href="/type/InputUser">InputUser</a> url:<a href="/type/string">string</a> theme_params:flags.0?<a href="/type/DataJSON">DataJSON</a> platform:<a href="/type/string">string</a> = <a href="/type/SimpleWebViewResult">SimpleWebViewResult</a>;<br>
<a href="/method/account.updateEmojiStatus">account.updateEmojiStatus</a>#fbd3de6b emoji_status:<a href="/type/EmojiStatus">EmojiStatus</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/account.getDefaultEmojiStatuses">account.getDefaultEmojiStatuses</a>#d6753386 hash:<a href="/type/long">long</a> = <a href="/type/account.EmojiStatuses">account.EmojiStatuses</a>;
<a href="/method/account.getRecentEmojiStatuses">account.getRecentEmojiStatuses</a>#0f578105 hash:<a href="/type/long">long</a> = <a href="/type/account.EmojiStatuses">account.EmojiStatuses</a>;
<a href="/method/account.clearRecentEmojiStatuses">account.clearRecentEmojiStatuses</a>#18201aae = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/messages.reportReaction">messages.reportReaction</a>#3f64c076 peer:<a href="/type/InputPeer">InputPeer</a> id:<a href="/type/int">int</a> reaction_peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.getTopReactions">messages.getTopReactions</a>#bb8125ba limit:<a href="/type/int">int</a> hash:<a href="/type/long">long</a> = <a href="/type/messages.Reactions">messages.Reactions</a>;
<a href="/method/messages.getRecentReactions">messages.getRecentReactions</a>#39461db2 limit:<a href="/type/int">int</a> hash:<a href="/type/long">long</a> = <a href="/type/messages.Reactions">messages.Reactions</a>;
<a href="/method/messages.clearRecentReactions">messages.clearRecentReactions</a>#9dfeefb4 = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-144" id="layer-144" name="layer-144"><i class="anchor-icon"></i></a><a href="/schema?layer=144">Layer 144</a></h3>
<p>Users can now send <a href="/api/custom-emoji">custom emojis</a>, <a href="/api/premium#gifting-telegram-premium">gift Telegram Premium</a> to other users, and <a href="/constructor/inputWebFileAudioAlbumThumbLocation">download album covers for any music file</a>.<br>
Also introducing new <a href="https://telegram.org/blog/custom-emoji#privacy-settings-for-voice-messages">voice message privacy settings</a> and support for additional <a href="/api/payments">payment methods</a>.</p>
<p>The <a href="/schema/end-to-end">E2E schema</a> was updated to account for previous changes in the main schema (<a href="/api/custom-emoji">custom emojis</a>+<a href="/api/entities">spoiler entities</a>).</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/messages.getCustomEmojiDocuments">messages.getCustomEmojiDocuments</a> - Fetch <a href="/api/custom-emoji">custom emoji stickers »</a>.</li>
<li>Added <a href="/method/messages.getEmojiStickers">messages.getEmojiStickers</a> - Gets the list of currently installed <a href="/api/custom-emoji">custom emoji stickersets</a>.</li>
<li>Added <a href="/method/messages.getFeaturedEmojiStickers">messages.getFeaturedEmojiStickers</a> - Gets featured custom emoji stickersets.</li>
</ul>
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Added <strong>emojis</strong> parameter in <a href="/method/messages.reorderStickerSets">messages.reorderStickerSets</a></li>
<li>Added <strong>emojis</strong> parameter in <a href="/method/messages.getArchivedStickers">messages.getArchivedStickers</a></li>
<li>Added <strong>purpose</strong> parameter, removed <strong>flags</strong>, <strong>restore</strong> parameters in <a href="/method/payments.assignAppStoreTransaction">payments.assignAppStoreTransaction</a></li>
<li>Added <strong>receipt</strong>, <strong>purpose</strong> parameters, removed <strong>purchase_token</strong> parameter in <a href="/method/payments.assignPlayMarketTransaction">payments.assignPlayMarketTransaction</a></li>
<li>Added <strong>purpose</strong> parameter in <a href="/method/payments.canPurchasePremium">payments.canPurchasePremium</a></li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/messageEntityCustomEmoji">messageEntityCustomEmoji</a> - Represents a custom emoji. </li>
<li>Added <a href="/constructor/documentAttributeCustomEmoji">documentAttributeCustomEmoji</a> - Info about a custom emoji</li>
<li>Added <a href="/constructor/stickerSetFullCovered">stickerSetFullCovered</a> - Stickerset preview with all stickers of the stickerset included. </li>
<li>Added <a href="/constructor/inputStorePaymentPremiumSubscription">inputStorePaymentPremiumSubscription</a> - Info about a Telegram Premium purchase</li>
<li>Added <a href="/constructor/inputStorePaymentGiftPremium">inputStorePaymentGiftPremium</a> - Info about a gifted Telegram Premium purchase</li>
<li>Added <a href="/constructor/messageActionGiftPremium">messageActionGiftPremium</a> - Info about a gifted Telegram Premium subscription</li>
<li>Added <a href="/constructor/premiumGiftOption">premiumGiftOption</a> - Telegram Premium gift option</li>
<li>Added <a href="/constructor/inputStickerSetPremiumGifts">inputStickerSetPremiumGifts</a> - Stickers to show when receiving a gifted Telegram Premium subscription</li>
<li>Added <a href="/constructor/updateReadFeaturedEmojiStickers">updateReadFeaturedEmojiStickers</a> - Some featured <a href="/api/custom-emoji">custom emoji stickers</a> were marked as read</li>
<li>Added <a href="/constructor/inputPrivacyKeyVoiceMessages">inputPrivacyKeyVoiceMessages</a> - Whether people can send you voice messages</li>
<li>Added <a href="/constructor/privacyKeyVoiceMessages">privacyKeyVoiceMessages</a> - Whether the user accepts voice messages</li>
<li>Added <a href="/constructor/paymentFormMethod">paymentFormMethod</a> - Represents an additional payment method</li>
<li>Added <a href="/constructor/inputWebFileAudioAlbumThumbLocation">inputWebFileAudioAlbumThumbLocation</a> - Used to download an album cover for any music file using <a href="/method/upload.getWebFile">upload.getWebFile</a>, see the <a href="/api/files#downloading-webfiles">webfile docs for more info »</a>.</li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>voice_messages_forbidden</strong>, <strong>premium_gifts</strong> parameters in <a href="/constructor/userFull">userFull</a></li>
<li>Added <strong>emojis</strong>, <strong>thumb_document_id</strong> parameters in <a href="/constructor/stickerSet">stickerSet</a></li>
<li>Added <strong>emojis</strong> parameter in <a href="/constructor/updateStickerSetsOrder">updateStickerSetsOrder</a></li>
<li>Added <strong>additional_methods</strong> parameter, changed type of <strong>saved_credentials</strong> from <strong>flags.1?PaymentSavedCredentials</strong> to <strong>flags.1?Vector&lt;PaymentSavedCredentials&gt;</strong> in <a href="/constructor/payments.paymentForm">payments.paymentForm</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/userFull">userFull</a>#c4b1fc3f flags:<a href="/type/%23">#</a> blocked:flags.0?<a href="/constructor/true">true</a> phone_calls_available:flags.4?<a href="/constructor/true">true</a> phone_calls_private:flags.5?<a href="/constructor/true">true</a> can_pin_message:flags.7?<a href="/constructor/true">true</a> has_scheduled:flags.12?<a href="/constructor/true">true</a> video_calls_available:flags.13?<a href="/constructor/true">true</a> voice_messages_forbidden:flags.20?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:flags.1?<a href="/type/string">string</a> settings:<a href="/type/PeerSettings">PeerSettings</a> profile_photo:flags.2?<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> bot_info:flags.3?<a href="/type/BotInfo">BotInfo</a> pinned_msg_id:flags.6?<a href="/type/int">int</a> common_chats_count:<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> ttl_period:flags.14?<a href="/type/int">int</a> theme_emoticon:flags.15?<a href="/type/string">string</a> private_forward_name:flags.16?<a href="/type/string">string</a> bot_group_admin_rights:flags.17?<a href="/type/ChatAdminRights">ChatAdminRights</a> bot_broadcast_admin_rights:flags.18?<a href="/type/ChatAdminRights">ChatAdminRights</a> premium_gifts:flags.19?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PremiumGiftOption">PremiumGiftOption</a>&gt; = <a href="/type/UserFull">UserFull</a>;<br>
<a href="/constructor/stickerSet">stickerSet</a>#2dd14edc flags:<a href="/type/%23">#</a> archived:flags.1?<a href="/constructor/true">true</a> official:flags.2?<a href="/constructor/true">true</a> masks:flags.3?<a href="/constructor/true">true</a> animated:flags.5?<a href="/constructor/true">true</a> videos:flags.6?<a href="/constructor/true">true</a> emojis:flags.7?<a href="/constructor/true">true</a> installed_date:flags.0?<a href="/type/int">int</a> id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> title:<a href="/type/string">string</a> short_name:<a href="/type/string">string</a> thumbs:flags.4?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PhotoSize">PhotoSize</a>&gt; thumb_dc_id:flags.4?<a href="/type/int">int</a> thumb_version:flags.4?<a href="/type/int">int</a> thumb_document_id:flags.8?<a href="/type/long">long</a> count:<a href="/type/int">int</a> hash:<a href="/type/int">int</a> = <a href="/type/StickerSet">StickerSet</a>;<br>
<a href="/constructor/updateStickerSetsOrder">updateStickerSetsOrder</a>#0bb2d201 flags:<a href="/type/%23">#</a> masks:flags.0?<a href="/constructor/true">true</a> emojis:flags.1?<a href="/constructor/true">true</a> order:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/payments.paymentForm">payments.paymentForm</a>#a0058751 flags:<a href="/type/%23">#</a> can_save_credentials:flags.2?<a href="/constructor/true">true</a> password_missing:flags.3?<a href="/constructor/true">true</a> form_id:<a href="/type/long">long</a> bot_id:<a href="/type/long">long</a> title:<a href="/type/string">string</a> description:<a href="/type/string">string</a> photo:flags.5?<a href="/type/WebDocument">WebDocument</a> invoice:<a href="/type/Invoice">Invoice</a> provider_id:<a href="/type/long">long</a> url:<a href="/type/string">string</a> native_provider:flags.4?<a href="/type/string">string</a> native_params:flags.4?<a href="/type/DataJSON">DataJSON</a> additional_methods:flags.6?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PaymentFormMethod">PaymentFormMethod</a>&gt; saved_info:flags.0?<a href="/type/PaymentRequestedInfo">PaymentRequestedInfo</a> saved_credentials:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PaymentSavedCredentials">PaymentSavedCredentials</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/payments.PaymentForm">payments.PaymentForm</a>;<br>
<a href="/constructor/messageEntityCustomEmoji">messageEntityCustomEmoji</a>#c8cf05f8 offset:<a href="/type/int">int</a> length:<a href="/type/int">int</a> document_id:<a href="/type/long">long</a> = <a href="/type/MessageEntity">MessageEntity</a>;<br>
<a href="/constructor/documentAttributeCustomEmoji">documentAttributeCustomEmoji</a>#fd149899 flags:<a href="/type/%23">#</a> free:flags.0?<a href="/constructor/true">true</a> alt:<a href="/type/string">string</a> stickerset:<a href="/type/InputStickerSet">InputStickerSet</a> = <a href="/type/DocumentAttribute">DocumentAttribute</a>;<br>
<a href="/constructor/stickerSetFullCovered">stickerSetFullCovered</a>#1aed5ee5 set:<a href="/type/StickerSet">StickerSet</a> packs:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/StickerPack">StickerPack</a>&gt; documents:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Document">Document</a>&gt; = <a href="/type/StickerSetCovered">StickerSetCovered</a>;<br>
<a href="/constructor/inputStorePaymentPremiumSubscription">inputStorePaymentPremiumSubscription</a>#a6751e66 flags:<a href="/type/%23">#</a> restore:flags.0?<a href="/constructor/true">true</a> = <a href="/type/InputStorePaymentPurpose">InputStorePaymentPurpose</a>;
<a href="/constructor/inputStorePaymentGiftPremium">inputStorePaymentGiftPremium</a>#616f7fe8 user_id:<a href="/type/InputUser">InputUser</a> currency:<a href="/type/string">string</a> amount:<a href="/type/long">long</a> = <a href="/type/InputStorePaymentPurpose">InputStorePaymentPurpose</a>;<br>
<a href="/constructor/messageActionGiftPremium">messageActionGiftPremium</a>#aba0f5c6 currency:<a href="/type/string">string</a> amount:<a href="/type/long">long</a> months:<a href="/type/int">int</a> = <a href="/type/MessageAction">MessageAction</a>;<br>
<a href="/constructor/premiumGiftOption">premiumGiftOption</a>#74c34319 flags:<a href="/type/%23">#</a> months:<a href="/type/int">int</a> currency:<a href="/type/string">string</a> amount:<a href="/type/long">long</a> bot_url:<a href="/type/string">string</a> store_product:flags.0?<a href="/type/string">string</a> = <a href="/type/PremiumGiftOption">PremiumGiftOption</a>;<br>
<a href="/constructor/inputStickerSetPremiumGifts">inputStickerSetPremiumGifts</a>#c88b3b02 = <a href="/type/InputStickerSet">InputStickerSet</a>;<br>
<a href="/constructor/updateReadFeaturedEmojiStickers">updateReadFeaturedEmojiStickers</a>#fb4c496c = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/inputPrivacyKeyVoiceMessages">inputPrivacyKeyVoiceMessages</a>#aee69d68 = <a href="/type/InputPrivacyKey">InputPrivacyKey</a>;<br>
<a href="/constructor/privacyKeyVoiceMessages">privacyKeyVoiceMessages</a>#0697f414 = <a href="/type/PrivacyKey">PrivacyKey</a>;
<a href="/constructor/paymentFormMethod">paymentFormMethod</a>#88f8f21b url:<a href="/type/string">string</a> title:<a href="/type/string">string</a> = <a href="/type/PaymentFormMethod">PaymentFormMethod</a>;<br>
<a href="/constructor/inputWebFileAudioAlbumThumbLocation">inputWebFileAudioAlbumThumbLocation</a>#f46fe924 flags:<a href="/type/%23">#</a> small:flags.2?<a href="/constructor/true">true</a> document:flags.0?<a href="/type/InputDocument">InputDocument</a> title:flags.1?<a href="/type/string">string</a> performer:flags.1?<a href="/type/string">string</a> = <a href="/type/InputWebFileLocation">InputWebFileLocation</a>;<br>
---functions---<br>
<a href="/method/messages.reorderStickerSets">messages.reorderStickerSets</a>#78337739 flags:<a href="/type/%23">#</a> masks:flags.0?<a href="/constructor/true">true</a> emojis:flags.1?<a href="/constructor/true">true</a> order:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.getArchivedStickers">messages.getArchivedStickers</a>#57f17692 flags:<a href="/type/%23">#</a> masks:flags.0?<a href="/constructor/true">true</a> emojis:flags.1?<a href="/constructor/true">true</a> offset_id:<a href="/type/long">long</a> limit:<a href="/type/int">int</a> = <a href="/type/messages.ArchivedStickers">messages.ArchivedStickers</a>;<br>
<a href="/method/payments.assignAppStoreTransaction">payments.assignAppStoreTransaction</a>#80ed747d receipt:<a href="/type/bytes">bytes</a> purpose:<a href="/type/InputStorePaymentPurpose">InputStorePaymentPurpose</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/payments.assignPlayMarketTransaction">payments.assignPlayMarketTransaction</a>#dffd50d3 receipt:<a href="/type/DataJSON">DataJSON</a> purpose:<a href="/type/InputStorePaymentPurpose">InputStorePaymentPurpose</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/payments.canPurchasePremium">payments.canPurchasePremium</a>#9fc19eb6 purpose:<a href="/type/InputStorePaymentPurpose">InputStorePaymentPurpose</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/messages.getCustomEmojiDocuments">messages.getCustomEmojiDocuments</a>#d9ab0f54 document_id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; = <a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Document">Document</a>&gt;;
<a href="/method/messages.getEmojiStickers">messages.getEmojiStickers</a>#fbfca18f hash:<a href="/type/long">long</a> = <a href="/type/messages.AllStickers">messages.AllStickers</a>;
<a href="/method/messages.getFeaturedEmojiStickers">messages.getFeaturedEmojiStickers</a>#0ecf6736 hash:<a href="/type/long">long</a> = <a href="/type/messages.FeaturedStickers">messages.FeaturedStickers</a>;<br></code></pre></div>
<h4><a class="anchor" href="#end-to-end-schema-changes" id="end-to-end-schema-changes" name="end-to-end-schema-changes"><i class="anchor-icon"></i></a>End-to-end schema changes</h4>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/messageEntitySpoiler">messageEntitySpoiler</a> - Message entity representing a spoiler</li>
<li>Added <a href="/constructor/messageEntityCustomEmoji">messageEntityCustomEmoji</a> - Represents a custom emoji.</li>
</ul>
<h4><a class="anchor" href="#end-to-end-schema" id="end-to-end-schema" name="end-to-end-schema"><i class="anchor-icon"></i></a>End-to-end schema</h4>
<div><pre><code>===144===<br>
<a href="/constructor/messageEntitySpoiler">messageEntitySpoiler</a>#32ca960f offset:<a href="/type/int">int</a> length:<a href="/type/int">int</a> = <a href="/type/MessageEntity">MessageEntity</a>;
<a href="/constructor/messageEntityCustomEmoji">messageEntityCustomEmoji</a>#c8cf05f8 offset:<a href="/type/int">int</a> length:<a href="/type/int">int</a> document_id:<a href="/type/long">long</a> = <a href="/type/MessageEntity">MessageEntity</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-143" id="layer-143" name="layer-143"><i class="anchor-icon"></i></a><a href="/schema?layer=143">Layer 143</a></h3>
<p><a href="/api/premium">Telegram Premium</a>, <a href="/api/transcribe">voice message transcription</a>, <a href="/api/links#invoice-links">invoices</a>, bot description photos/animations, immediate <a href="/api/account-deletion">account deletion</a>, recurring <a href="/api/payments">payments</a> and <a href="/api/bots/attach">attachment menu</a> improvements.<br>
Also, discussion group admins can now <a href="/api/discussion#requiring-users-to-join-the-group">require users to join</a> before commenting.</p>
<p>The main and E2E schemes were also modified to eventually support uploading and downloading files bigger than 4GB: the current supported maximum filesize is dynamically specified, and can be fetched from the new <a href="/api/config#upload-max-fileparts-default">upload_max_fileparts_default »</a> and <a href="/api/config#upload-max-fileparts-premium">upload_max_fileparts_premium »</a> app configuration fields.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/channels.toggleJoinToSend">channels.toggleJoinToSend</a> - Set whether all users <a href="/api/discussion#requiring-users-to-join-the-group">should join a discussion group in order to comment on a post »</a></li>
<li>Added <a href="/method/channels.toggleJoinRequest">channels.toggleJoinRequest</a> - Set whether all users should <a href="/api/invites#join-requests">request admin approval to join the group »</a>.</li>
<li>Added <a href="/method/payments.exportInvoice">payments.exportInvoice</a> - Generate an <a href="/api/links#invoice-links">invoice deep link</a></li>
<li>Added <a href="/method/messages.transcribeAudio">messages.transcribeAudio</a> - <a href="/api/transcribe">Transcribe voice message</a></li>
<li>Added <a href="/method/messages.rateTranscribedAudio">messages.rateTranscribedAudio</a> - Rate <a href="/api/transcribe">transcribed voice message</a></li>
<li>Added <a href="/method/payments.assignAppStoreTransaction">payments.assignAppStoreTransaction</a> - Informs server about a purchase made through the App Store: for official applications only.</li>
<li>Added <a href="/method/payments.assignPlayMarketTransaction">payments.assignPlayMarketTransaction</a> - Informs server about a purchase made through the Play Store: for official applications only.</li>
<li>Added <a href="/method/payments.canPurchasePremium">payments.canPurchasePremium</a> - Checks whether Telegram Premium purchase is possible. Must be called before in-store Premium purchase, official apps only.</li>
<li>Added <a href="/method/help.getPremiumPromo">help.getPremiumPromo</a> - Get Telegram Premium promotion information</li>
</ul>
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Changed type of <strong>offset</strong> from <strong>int</strong> to <strong>long</strong> in <a href="/method/upload.getFile">upload.getFile</a></li>
<li>Added <strong>flags</strong>, <strong>password</strong> parameters in <a href="/method/account.deleteAccount">account.deleteAccount</a></li>
<li>Changed type of <strong>size</strong> from <strong>int</strong> to <strong>long</strong> in <a href="/method/messages.getDocumentByHash">messages.getDocumentByHash</a></li>
<li>Added <strong>invoice</strong> parameter, removed <strong>peer</strong>, <strong>msg_id</strong> parameters in <a href="/method/payments.getPaymentForm">payments.getPaymentForm</a></li>
<li>Added <strong>invoice</strong> parameter, removed <strong>peer</strong>, <strong>msg_id</strong> parameters in <a href="/method/payments.validateRequestedInfo">payments.validateRequestedInfo</a></li>
<li>Added <strong>invoice</strong> parameter, removed <strong>peer</strong>, <strong>msg_id</strong> parameters in <a href="/method/payments.sendPaymentForm">payments.sendPaymentForm</a></li>
<li>Changed type of <strong>offset</strong> from <strong>int</strong> to <strong>long</strong> in <a href="/method/upload.getCdnFile">upload.getCdnFile</a></li>
<li>Changed type of <strong>offset</strong> from <strong>int</strong> to <strong>long</strong> in <a href="/method/upload.getCdnFileHashes">upload.getCdnFileHashes</a></li>
<li>Changed type of <strong>offset</strong> from <strong>int</strong> to <strong>long</strong> in <a href="/method/upload.getFileHashes">upload.getFileHashes</a></li>
<li>Changed type of <strong>file_max_size</strong> from <strong>flags.5?int</strong> to <strong>flags.5?long</strong> in <a href="/method/account.initTakeoutSession">account.initTakeoutSession</a></li>
<li>Added <strong>send_as</strong> parameter in <a href="/method/messages.requestWebView">messages.requestWebView</a></li>
<li>Added <strong>send_as</strong> parameter in <a href="/method/messages.prolongWebView">messages.prolongWebView</a></li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/attachMenuPeerTypeSameBotPM">attachMenuPeerTypeSameBotPM</a> - The bot attachment menu entry is available in the chat with the bot that offers it</li>
<li>Added <a href="/constructor/attachMenuPeerTypeBotPM">attachMenuPeerTypeBotPM</a> - The bot attachment menu entry is available in private chats with other bots (excluding the bot that offers the current attachment menu)</li>
<li>Added <a href="/constructor/attachMenuPeerTypePM">attachMenuPeerTypePM</a> - The bot attachment menu entry is available in private chats with other users (not bots)</li>
<li>Added <a href="/constructor/attachMenuPeerTypeChat">attachMenuPeerTypeChat</a> - The bot attachment menu entry is available in <a href="/api/channel">groups and supergroups</a></li>
<li>Added <a href="/constructor/attachMenuPeerTypeBroadcast">attachMenuPeerTypeBroadcast</a> - The bot attachment menu entry is available in channels</li>
<li>Added <a href="/constructor/chatInvitePublicJoinRequests">chatInvitePublicJoinRequests</a> - Used in updates and in the channel log to indicate when a user is requesting to join or has joined a <a href="/api/discussion#requiring-users-to-join-the-group">discussion group</a></li>
<li>Added <a href="/constructor/inputInvoiceMessage">inputInvoiceMessage</a> - An invoice contained in a <a href="/constructor/messageMediaInvoice">messageMediaInvoice</a> message.</li>
<li>Added <a href="/constructor/inputInvoiceSlug">inputInvoiceSlug</a> - An invoice slug taken from an <a href="/api/links#invoice-links">invoice deep link</a> or from the <a href="/api/config#premium-invoice-slug"><code>premium_invoice_slug</code> app config parameter »</a></li>
<li>Added <a href="/constructor/payments.exportedInvoice">payments.exportedInvoice</a> - Exported <a href="/api/links#invoice-links">invoice deep link</a></li>
<li>Added <a href="/constructor/updateTranscribedAudio">updateTranscribedAudio</a> - A pending <a href="/api/transcribe">voice message transcription »</a> initiated with <a href="/method/messages.transcribeAudio">messages.transcribeAudio</a> was updated.</li>
<li>Added <a href="/constructor/messages.transcribedAudio">messages.transcribedAudio</a> - <a href="/api/transcribe">Transcribed text from a voice message »</a></li>
<li>Added <a href="/constructor/dialogFilterDefault">dialogFilterDefault</a> - Used only when reordering folders to indicate the default (all chats) folder.</li>
<li>Added <a href="/constructor/help.premiumPromo">help.premiumPromo</a> - Telegram Premium promotion information</li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Changed type of <strong>size</strong> from <strong>int</strong> to <strong>long</strong> in <a href="/constructor/encryptedFile">encryptedFile</a></li>
<li>Added <strong>nopremium</strong> parameter in <a href="/constructor/messageMediaDocument">messageMediaDocument</a></li>
<li>Changed type of <strong>size</strong> from <strong>int</strong> to <strong>long</strong> in <a href="/constructor/document">document</a></li>
<li>Added <strong>premium</strong>, <strong>attach_menu_enabled</strong> parameters in <a href="/constructor/user">user</a></li>
<li>Added <strong>flags</strong>, <strong>description_photo</strong>, <strong>description_document</strong> parameters, changed type of <strong>user_id</strong> from <strong>long</strong> to <strong>flags.0?long</strong>, <strong>description</strong> from <strong>string</strong> to <strong>flags.1?string</strong>, <strong>commands</strong> from <strong>Vector&lt;BotCommand&gt;</strong> to <strong>flags.2?Vector&lt;BotCommand&gt;</strong>, <strong>menu_button</strong> from <strong>BotMenuButton</strong> to <strong>flags.3?BotMenuButton</strong> in <a href="/constructor/botInfo">botInfo</a></li>
<li>Added <strong>join_to_send</strong>, <strong>join_request</strong> parameters in <a href="/constructor/channel">channel</a></li>
<li>Added <strong>flags</strong>, <strong>premium</strong> parameters in <a href="/constructor/messages.featuredStickers">messages.featuredStickers</a></li>
<li>Added <strong>recurring</strong>, <strong>recurring_terms_url</strong> parameters in <a href="/constructor/invoice">invoice</a></li>
<li>Added <strong>recurring_init</strong>, <strong>recurring_used</strong> parameters in <a href="/constructor/messageActionPaymentSentMe">messageActionPaymentSentMe</a></li>
<li>Added <strong>flags</strong>, <strong>recurring_init</strong>, <strong>recurring_used</strong>, <strong>invoice_slug</strong> parameters in <a href="/constructor/messageActionPaymentSent">messageActionPaymentSent</a></li>
<li>Added <strong>title</strong>, <strong>description</strong>, <strong>photo</strong> parameters in <a href="/constructor/payments.paymentForm">payments.paymentForm</a></li>
<li>Changed type of <strong>offset</strong> from <strong>int</strong> to <strong>long</strong> in <a href="/constructor/fileHash">fileHash</a></li>
<li>Changed type of <strong>size</strong> from <strong>int</strong> to <strong>long</strong> in <a href="/constructor/secureFile">secureFile</a></li>
<li>Changed type of <strong>video_size_max</strong> from <strong>int</strong> to <strong>long</strong>, <strong>file_size_max</strong> from <strong>int</strong> to <strong>long</strong> in <a href="/constructor/autoDownloadSettings">autoDownloadSettings</a></li>
<li>Added <strong>premium</strong> parameter in <a href="/constructor/availableReaction">availableReaction</a></li>
<li>Added <strong>has_settings</strong>, <strong>peer_types</strong> parameters in <a href="/constructor/attachMenuBot">attachMenuBot</a></li>
</ul>
<h4><a class="anchor" href="#push-notification-changes" id="push-notification-changes" name="push-notification-changes"><i class="anchor-icon"></i></a>PUSH notification changes</h4>
<h5><a class="anchor" href="#new-push-notifications" id="new-push-notifications" name="new-push-notifications"><i class="anchor-icon"></i></a>New PUSH notifications</h5>
<ul>
<li>Added <a href="/api/push-updates#possible-notifications">MESSAGE_RECURRING_PAY</a> - <code>You were charged {2} by {1}</code></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/encryptedFile">encryptedFile</a>#a8008cd8 id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> size:<a href="/type/long">long</a> dc_id:<a href="/type/int">int</a> key_fingerprint:<a href="/type/int">int</a> = <a href="/type/EncryptedFile">EncryptedFile</a>;<br>
<a href="/constructor/messageMediaDocument">messageMediaDocument</a>#9cb070d7 flags:<a href="/type/%23">#</a> nopremium:flags.3?<a href="/constructor/true">true</a> document:flags.0?<a href="/type/Document">Document</a> ttl_seconds:flags.2?<a href="/type/int">int</a> = <a href="/type/MessageMedia">MessageMedia</a>;<br>
<a href="/constructor/document">document</a>#8fd4c4d8 flags:<a href="/type/%23">#</a> id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> file_reference:<a href="/type/bytes">bytes</a> date:<a href="/type/int">int</a> mime_type:<a href="/type/string">string</a> size:<a href="/type/long">long</a> thumbs:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PhotoSize">PhotoSize</a>&gt; video_thumbs:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/VideoSize">VideoSize</a>&gt; dc_id:<a href="/type/int">int</a> attributes:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/DocumentAttribute">DocumentAttribute</a>&gt; = <a href="/type/Document">Document</a>;<br>
<a href="/constructor/user">user</a>#3ff6ecb0 flags:<a href="/type/%23">#</a> self:flags.10?<a href="/constructor/true">true</a> contact:flags.11?<a href="/constructor/true">true</a> mutual_contact:flags.12?<a href="/constructor/true">true</a> deleted:flags.13?<a href="/constructor/true">true</a> bot:flags.14?<a href="/constructor/true">true</a> bot_chat_history:flags.15?<a href="/constructor/true">true</a> bot_nochats:flags.16?<a href="/constructor/true">true</a> verified:flags.17?<a href="/constructor/true">true</a> restricted:flags.18?<a href="/constructor/true">true</a> min:flags.20?<a href="/constructor/true">true</a> bot_inline_geo:flags.21?<a href="/constructor/true">true</a> support:flags.23?<a href="/constructor/true">true</a> scam:flags.24?<a href="/constructor/true">true</a> apply_min_photo:flags.25?<a href="/constructor/true">true</a> fake:flags.26?<a href="/constructor/true">true</a> bot_attach_menu:flags.27?<a href="/constructor/true">true</a> premium:flags.28?<a href="/constructor/true">true</a> attach_menu_enabled:flags.29?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> access_hash:flags.0?<a href="/type/long">long</a> first_name:flags.1?<a href="/type/string">string</a> last_name:flags.2?<a href="/type/string">string</a> username:flags.3?<a href="/type/string">string</a> phone:flags.4?<a href="/type/string">string</a> photo:flags.5?<a href="/type/UserProfilePhoto">UserProfilePhoto</a> status:flags.6?<a href="/type/UserStatus">UserStatus</a> bot_info_version:flags.14?<a href="/type/int">int</a> restriction_reason:flags.18?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RestrictionReason">RestrictionReason</a>&gt; bot_inline_placeholder:flags.19?<a href="/type/string">string</a> lang_code:flags.22?<a href="/type/string">string</a> = <a href="/type/User">User</a>;<br>
<a href="/constructor/botInfo">botInfo</a>#8f300b57 flags:<a href="/type/%23">#</a> user_id:flags.0?<a href="/type/long">long</a> description:flags.1?<a href="/type/string">string</a> description_photo:flags.4?<a href="/type/Photo">Photo</a> description_document:flags.5?<a href="/type/Document">Document</a> commands:flags.2?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotCommand">BotCommand</a>&gt; menu_button:flags.3?<a href="/type/BotMenuButton">BotMenuButton</a> = <a href="/type/BotInfo">BotInfo</a>;<br>
<a href="/constructor/channel">channel</a>#8261ac61 flags:<a href="/type/%23">#</a> creator:flags.0?<a href="/constructor/true">true</a> left:flags.2?<a href="/constructor/true">true</a> broadcast:flags.5?<a href="/constructor/true">true</a> verified:flags.7?<a href="/constructor/true">true</a> megagroup:flags.8?<a href="/constructor/true">true</a> restricted:flags.9?<a href="/constructor/true">true</a> signatures:flags.11?<a href="/constructor/true">true</a> min:flags.12?<a href="/constructor/true">true</a> scam:flags.19?<a href="/constructor/true">true</a> has_link:flags.20?<a href="/constructor/true">true</a> has_geo:flags.21?<a href="/constructor/true">true</a> slowmode_enabled:flags.22?<a href="/constructor/true">true</a> call_active:flags.23?<a href="/constructor/true">true</a> call_not_empty:flags.24?<a href="/constructor/true">true</a> fake:flags.25?<a href="/constructor/true">true</a> gigagroup:flags.26?<a href="/constructor/true">true</a> noforwards:flags.27?<a href="/constructor/true">true</a> join_to_send:flags.28?<a href="/constructor/true">true</a> join_request:flags.29?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> access_hash:flags.13?<a href="/type/long">long</a> title:<a href="/type/string">string</a> username:flags.6?<a href="/type/string">string</a> photo:<a href="/type/ChatPhoto">ChatPhoto</a> date:<a href="/type/int">int</a> restriction_reason:flags.9?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RestrictionReason">RestrictionReason</a>&gt; admin_rights:flags.14?<a href="/type/ChatAdminRights">ChatAdminRights</a> banned_rights:flags.15?<a href="/type/ChatBannedRights">ChatBannedRights</a> default_banned_rights:flags.18?<a href="/type/ChatBannedRights">ChatBannedRights</a> participants_count:flags.17?<a href="/type/int">int</a> = <a href="/type/Chat">Chat</a>;<br>
<a href="/constructor/messages.featuredStickers">messages.featuredStickers</a>#be382906 flags:<a href="/type/%23">#</a> premium:flags.0?<a href="/constructor/true">true</a> hash:<a href="/type/long">long</a> count:<a href="/type/int">int</a> sets:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/StickerSetCovered">StickerSetCovered</a>&gt; unread:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; = <a href="/type/messages.FeaturedStickers">messages.FeaturedStickers</a>;<br>
<a href="/constructor/invoice">invoice</a>#3e85a91b flags:<a href="/type/%23">#</a> test:flags.0?<a href="/constructor/true">true</a> name_requested:flags.1?<a href="/constructor/true">true</a> phone_requested:flags.2?<a href="/constructor/true">true</a> email_requested:flags.3?<a href="/constructor/true">true</a> shipping_address_requested:flags.4?<a href="/constructor/true">true</a> flexible:flags.5?<a href="/constructor/true">true</a> phone_to_provider:flags.6?<a href="/constructor/true">true</a> email_to_provider:flags.7?<a href="/constructor/true">true</a> recurring:flags.9?<a href="/constructor/true">true</a> currency:<a href="/type/string">string</a> prices:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/LabeledPrice">LabeledPrice</a>&gt; max_tip_amount:flags.8?<a href="/type/long">long</a> suggested_tip_amounts:flags.8?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; recurring_terms_url:flags.9?<a href="/type/string">string</a> = <a href="/type/Invoice">Invoice</a>;<br>
<a href="/constructor/messageActionPaymentSentMe">messageActionPaymentSentMe</a>#8f31b327 flags:<a href="/type/%23">#</a> recurring_init:flags.2?<a href="/constructor/true">true</a> recurring_used:flags.3?<a href="/constructor/true">true</a> currency:<a href="/type/string">string</a> total_amount:<a href="/type/long">long</a> payload:<a href="/type/bytes">bytes</a> info:flags.0?<a href="/type/PaymentRequestedInfo">PaymentRequestedInfo</a> shipping_option_id:flags.1?<a href="/type/string">string</a> charge:<a href="/type/PaymentCharge">PaymentCharge</a> = <a href="/type/MessageAction">MessageAction</a>;
<a href="/constructor/messageActionPaymentSent">messageActionPaymentSent</a>#96163f56 flags:<a href="/type/%23">#</a> recurring_init:flags.2?<a href="/constructor/true">true</a> recurring_used:flags.3?<a href="/constructor/true">true</a> currency:<a href="/type/string">string</a> total_amount:<a href="/type/long">long</a> invoice_slug:flags.0?<a href="/type/string">string</a> = <a href="/type/MessageAction">MessageAction</a>;<br>
<a href="/constructor/payments.paymentForm">payments.paymentForm</a>#b0133b37 flags:<a href="/type/%23">#</a> can_save_credentials:flags.2?<a href="/constructor/true">true</a> password_missing:flags.3?<a href="/constructor/true">true</a> form_id:<a href="/type/long">long</a> bot_id:<a href="/type/long">long</a> title:<a href="/type/string">string</a> description:<a href="/type/string">string</a> photo:flags.5?<a href="/type/WebDocument">WebDocument</a> invoice:<a href="/type/Invoice">Invoice</a> provider_id:<a href="/type/long">long</a> url:<a href="/type/string">string</a> native_provider:flags.4?<a href="/type/string">string</a> native_params:flags.4?<a href="/type/DataJSON">DataJSON</a> saved_info:flags.0?<a href="/type/PaymentRequestedInfo">PaymentRequestedInfo</a> saved_credentials:flags.1?<a href="/type/PaymentSavedCredentials">PaymentSavedCredentials</a> users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/payments.PaymentForm">payments.PaymentForm</a>;<br>
<a href="/constructor/fileHash">fileHash</a>#f39b035c offset:<a href="/type/long">long</a> limit:<a href="/type/int">int</a> hash:<a href="/type/bytes">bytes</a> = <a href="/type/FileHash">FileHash</a>;<br>
<a href="/constructor/secureFile">secureFile</a>#7d09c27e id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> size:<a href="/type/long">long</a> dc_id:<a href="/type/int">int</a> date:<a href="/type/int">int</a> file_hash:<a href="/type/bytes">bytes</a> secret:<a href="/type/bytes">bytes</a> = <a href="/type/SecureFile">SecureFile</a>;<br>
<a href="/constructor/autoDownloadSettings">autoDownloadSettings</a>#8efab953 flags:<a href="/type/%23">#</a> disabled:flags.0?<a href="/constructor/true">true</a> video_preload_large:flags.1?<a href="/constructor/true">true</a> audio_preload_next:flags.2?<a href="/constructor/true">true</a> phonecalls_less_data:flags.3?<a href="/constructor/true">true</a> photo_size_max:<a href="/type/int">int</a> video_size_max:<a href="/type/long">long</a> file_size_max:<a href="/type/long">long</a> video_upload_maxbitrate:<a href="/type/int">int</a> = <a href="/type/AutoDownloadSettings">AutoDownloadSettings</a>;
<a href="/constructor/availableReaction">availableReaction</a>#c077ec01 flags:<a href="/type/%23">#</a> inactive:flags.0?<a href="/constructor/true">true</a> premium:flags.2?<a href="/constructor/true">true</a> reaction:<a href="/type/string">string</a> title:<a href="/type/string">string</a> static_icon:<a href="/type/Document">Document</a> appear_animation:<a href="/type/Document">Document</a> select_animation:<a href="/type/Document">Document</a> activate_animation:<a href="/type/Document">Document</a> effect_animation:<a href="/type/Document">Document</a> around_animation:flags.1?<a href="/type/Document">Document</a> center_icon:flags.1?<a href="/type/Document">Document</a> = <a href="/type/AvailableReaction">AvailableReaction</a>;
<a href="/constructor/attachMenuBot">attachMenuBot</a>#c8aa2cd2 flags:<a href="/type/%23">#</a> inactive:flags.0?<a href="/constructor/true">true</a> has_settings:flags.1?<a href="/constructor/true">true</a> bot_id:<a href="/type/long">long</a> short_name:<a href="/type/string">string</a> peer_types:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/AttachMenuPeerType">AttachMenuPeerType</a>&gt; icons:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/AttachMenuBotIcon">AttachMenuBotIcon</a>&gt; = <a href="/type/AttachMenuBot">AttachMenuBot</a>;
<a href="/constructor/attachMenuPeerTypeSameBotPM">attachMenuPeerTypeSameBotPM</a>#7d6be90e = <a href="/type/AttachMenuPeerType">AttachMenuPeerType</a>;
<a href="/constructor/attachMenuPeerTypeBotPM">attachMenuPeerTypeBotPM</a>#c32bfa1a = <a href="/type/AttachMenuPeerType">AttachMenuPeerType</a>;
<a href="/constructor/attachMenuPeerTypePM">attachMenuPeerTypePM</a>#f146d31f = <a href="/type/AttachMenuPeerType">AttachMenuPeerType</a>;
<a href="/constructor/attachMenuPeerTypeChat">attachMenuPeerTypeChat</a>#0509113f = <a href="/type/AttachMenuPeerType">AttachMenuPeerType</a>;
<a href="/constructor/attachMenuPeerTypeBroadcast">attachMenuPeerTypeBroadcast</a>#7bfbdefc = <a href="/type/AttachMenuPeerType">AttachMenuPeerType</a>;<br>
<a href="/constructor/chatInvitePublicJoinRequests">chatInvitePublicJoinRequests</a>#ed107ab7 = <a href="/type/ExportedChatInvite">ExportedChatInvite</a>;<br>
<a href="/constructor/inputInvoiceMessage">inputInvoiceMessage</a>#c5b56859 peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> = <a href="/type/InputInvoice">InputInvoice</a>;
<a href="/constructor/inputInvoiceSlug">inputInvoiceSlug</a>#c326caef slug:<a href="/type/string">string</a> = <a href="/type/InputInvoice">InputInvoice</a>;<br>
<a href="/constructor/payments.exportedInvoice">payments.exportedInvoice</a>#aed0cbd9 url:<a href="/type/string">string</a> = <a href="/type/payments.ExportedInvoice">payments.ExportedInvoice</a>;<br>
<a href="/constructor/updateTranscribedAudio">updateTranscribedAudio</a>#0084cd5a flags:<a href="/type/%23">#</a> pending:flags.0?<a href="/constructor/true">true</a> peer:<a href="/type/Peer">Peer</a> msg_id:<a href="/type/int">int</a> transcription_id:<a href="/type/long">long</a> text:<a href="/type/string">string</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/messages.transcribedAudio">messages.transcribedAudio</a>#93752c52 flags:<a href="/type/%23">#</a> pending:flags.0?<a href="/constructor/true">true</a> transcription_id:<a href="/type/long">long</a> text:<a href="/type/string">string</a> = <a href="/type/messages.TranscribedAudio">messages.TranscribedAudio</a>;<br>
<a href="/constructor/dialogFilterDefault">dialogFilterDefault</a>#363293ae = <a href="/type/DialogFilter">DialogFilter</a>;<br>
<a href="/constructor/help.premiumPromo">help.premiumPromo</a>#8a4f3c29 status_text:<a href="/type/string">string</a> status_entities:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; video_sections:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; videos:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Document">Document</a>&gt; currency:<a href="/type/string">string</a> monthly_amount:<a href="/type/long">long</a> users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/help.PremiumPromo">help.PremiumPromo</a>;<br>
---functions---<br>
<a href="/method/upload.getFile">upload.getFile</a>#be5335be flags:<a href="/type/%23">#</a> precise:flags.0?<a href="/constructor/true">true</a> cdn_supported:flags.1?<a href="/constructor/true">true</a> location:<a href="/type/InputFileLocation">InputFileLocation</a> offset:<a href="/type/long">long</a> limit:<a href="/type/int">int</a> = <a href="/type/upload.File">upload.File</a>;<br>
<a href="/method/account.deleteAccount">account.deleteAccount</a>#a2c0cf74 flags:<a href="/type/%23">#</a> reason:<a href="/type/string">string</a> password:flags.0?<a href="/type/InputCheckPasswordSRP">InputCheckPasswordSRP</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/messages.getDocumentByHash">messages.getDocumentByHash</a>#b1f2061f sha256:<a href="/type/bytes">bytes</a> size:<a href="/type/long">long</a> mime_type:<a href="/type/string">string</a> = <a href="/type/Document">Document</a>;<br>
<a href="/method/payments.getPaymentForm">payments.getPaymentForm</a>#37148dbb flags:<a href="/type/%23">#</a> invoice:<a href="/type/InputInvoice">InputInvoice</a> theme_params:flags.0?<a href="/type/DataJSON">DataJSON</a> = <a href="/type/payments.PaymentForm">payments.PaymentForm</a>;
<a href="/method/payments.validateRequestedInfo">payments.validateRequestedInfo</a>#b6c8f12b flags:<a href="/type/%23">#</a> save:flags.0?<a href="/constructor/true">true</a> invoice:<a href="/type/InputInvoice">InputInvoice</a> info:<a href="/type/PaymentRequestedInfo">PaymentRequestedInfo</a> = <a href="/type/payments.ValidatedRequestedInfo">payments.ValidatedRequestedInfo</a>;
<a href="/method/payments.sendPaymentForm">payments.sendPaymentForm</a>#2d03522f flags:<a href="/type/%23">#</a> form_id:<a href="/type/long">long</a> invoice:<a href="/type/InputInvoice">InputInvoice</a> requested_info_id:flags.0?<a href="/type/string">string</a> shipping_option_id:flags.1?<a href="/type/string">string</a> credentials:<a href="/type/InputPaymentCredentials">InputPaymentCredentials</a> tip_amount:flags.2?<a href="/type/long">long</a> = <a href="/type/payments.PaymentResult">payments.PaymentResult</a>;<br>
<a href="/method/upload.getCdnFile">upload.getCdnFile</a>#395f69da file_token:<a href="/type/bytes">bytes</a> offset:<a href="/type/long">long</a> limit:<a href="/type/int">int</a> = <a href="/type/upload.CdnFile">upload.CdnFile</a>;
<a href="/method/upload.getCdnFileHashes">upload.getCdnFileHashes</a>#91dc3f31 file_token:<a href="/type/bytes">bytes</a> offset:<a href="/type/long">long</a> = <a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/FileHash">FileHash</a>&gt;;
<a href="/method/upload.getFileHashes">upload.getFileHashes</a>#9156982a location:<a href="/type/InputFileLocation">InputFileLocation</a> offset:<a href="/type/long">long</a> = <a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/FileHash">FileHash</a>&gt;;<br>
<a href="/method/account.initTakeoutSession">account.initTakeoutSession</a>#8ef3eab0 flags:<a href="/type/%23">#</a> contacts:flags.0?<a href="/constructor/true">true</a> message_users:flags.1?<a href="/constructor/true">true</a> message_chats:flags.2?<a href="/constructor/true">true</a> message_megagroups:flags.3?<a href="/constructor/true">true</a> message_channels:flags.4?<a href="/constructor/true">true</a> files:flags.5?<a href="/constructor/true">true</a> file_max_size:flags.5?<a href="/type/long">long</a> = <a href="/type/account.Takeout">account.Takeout</a>;<br>
<a href="/method/messages.requestWebView">messages.requestWebView</a>#91b15831 flags:<a href="/type/%23">#</a> from_bot_menu:flags.4?<a href="/constructor/true">true</a> silent:flags.5?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> bot:<a href="/type/InputUser">InputUser</a> url:flags.1?<a href="/type/string">string</a> start_param:flags.3?<a href="/type/string">string</a> theme_params:flags.2?<a href="/type/DataJSON">DataJSON</a> reply_to_msg_id:flags.0?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> = <a href="/type/WebViewResult">WebViewResult</a>;
<a href="/method/messages.prolongWebView">messages.prolongWebView</a>#ea5fbcce flags:<a href="/type/%23">#</a> silent:flags.5?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> bot:<a href="/type/InputUser">InputUser</a> query_id:<a href="/type/long">long</a> reply_to_msg_id:flags.0?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/channels.toggleJoinToSend">channels.toggleJoinToSend</a>#e4cb9580 channel:<a href="/type/InputChannel">InputChannel</a> enabled:<a href="/type/Bool">Bool</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/channels.toggleJoinRequest">channels.toggleJoinRequest</a>#4c2985b6 channel:<a href="/type/InputChannel">InputChannel</a> enabled:<a href="/type/Bool">Bool</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/payments.exportInvoice">payments.exportInvoice</a>#0f91b065 invoice_media:<a href="/type/InputMedia">InputMedia</a> = <a href="/type/payments.ExportedInvoice">payments.ExportedInvoice</a>;<br>
<a href="/method/messages.transcribeAudio">messages.transcribeAudio</a>#269e9a49 peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> = <a href="/type/messages.TranscribedAudio">messages.TranscribedAudio</a>;
<a href="/method/messages.rateTranscribedAudio">messages.rateTranscribedAudio</a>#7f1d072f peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> transcription_id:<a href="/type/long">long</a> good:<a href="/type/Bool">Bool</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/payments.assignAppStoreTransaction">payments.assignAppStoreTransaction</a>#0d5ccfd0 flags:<a href="/type/%23">#</a> restore:flags.0?<a href="/constructor/true">true</a> receipt:<a href="/type/bytes">bytes</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/payments.assignPlayMarketTransaction">payments.assignPlayMarketTransaction</a>#4faa4aed purchase_token:<a href="/type/string">string</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/payments.canPurchasePremium">payments.canPurchasePremium</a>#aa6a90c8 = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/help.getPremiumPromo">help.getPremiumPromo</a>#b81b93d4 = <a href="/type/help.PremiumPromo">help.PremiumPromo</a>;<br></code></pre></div>
<h4><a class="anchor" href="#end-to-end-schema-changes" id="end-to-end-schema-changes" name="end-to-end-schema-changes"><i class="anchor-icon"></i></a>End-to-end schema changes</h4>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/decryptedMessageMediaDocument">decryptedMessageMediaDocument</a> - Document attached to a message in a secret chat.</li>
</ul>
<h4><a class="anchor" href="#end-to-end-schema" id="end-to-end-schema" name="end-to-end-schema"><i class="anchor-icon"></i></a>End-to-end schema</h4>
<div><pre><code>===143===<br>
<a href="/constructor/decryptedMessageMediaDocument">decryptedMessageMediaDocument</a>#8e4c064c thumb:<a href="/type/bytes">bytes</a> thumb_w:<a href="/type/int">int</a> thumb_h:<a href="/type/int">int</a> mime_type:<a href="/type/string">string</a> size:<a href="/type/long">long</a> key:<a href="/type/bytes">bytes</a> iv:<a href="/type/bytes">bytes</a> attributes:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/DocumentAttribute">DocumentAttribute</a>&gt; caption:<a href="/type/string">string</a> = <a href="/type/DecryptedMessageMedia">DecryptedMessageMedia</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-142" id="layer-142" name="layer-142"><i class="anchor-icon"></i></a><a href="/schema?layer=142">Layer 142</a></h3>
<p>Allow TCP WebRTC connections.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>flags</strong>, <strong>tcp</strong> parameters in <a href="/constructor/phoneConnection">phoneConnection</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/phoneConnection">phoneConnection</a>#9cc123c7 flags:<a href="/type/%23">#</a> tcp:flags.0?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> ip:<a href="/type/string">string</a> ipv6:<a href="/type/string">string</a> port:<a href="/type/int">int</a> peer_tag:<a href="/type/bytes">bytes</a> = <a href="/type/PhoneConnection">PhoneConnection</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-140" id="layer-140" name="layer-140"><i class="anchor-icon"></i></a><a href="/schema?layer=140">Layer 140</a></h3>
<p>Introducing:</p>
<ul>
<li><a href="/api/bots/attach">Attachment menus</a></li>
<li><a href="/api/bots/webapps">Bot web apps</a></li>
<li><a href="/api/bots/menu">Custom bot menu buttons</a></li>
<li><a href="/api/rights#suggested-bot-rights">Suggested bot admin rights</a></li>
<li><a href="/api/ringtones">Ringtones</a></li>
<li><a href="/method/channels.deleteHistory">Deletion of all our supergroup messages for everyone</a></li>
<li><a href="/constructor/sponsoredMessage">Recommended sponsored messages</a></li>
<li>A <a href="/constructor/config"><code>force_try_ipv6</code> config flag</a> indicating that clients must prioritize IPv6 over IPv4 for all MTProto transports, even if an IPv4 connection is available.</li>
<li>A <a href="/constructor/dcOption"><code>this_port_only</code> DC port flag</a> indicating that clients must use only the specified port, without trying any other port as specified in the <a href="/mtproto/transports#tcp">transport docs</a>.</li>
<li>A <a href="/constructor/channelFull"><code>can_delete_channel</code> channelFull flag</a> indicating whether the current user can delete a channel or supergroup.</li>
</ul>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/messages.getAttachMenuBots">messages.getAttachMenuBots</a> - Returns installed attachment menu <a href="/api/bots/attach">bot web apps »</a></li>
<li>Added <a href="/method/messages.getAttachMenuBot">messages.getAttachMenuBot</a> - Returns attachment menu entry for a <a href="/api/bots/attach">bot web app that can be launched from the attachment menu »</a></li>
<li>Added <a href="/method/messages.toggleBotInAttachMenu">messages.toggleBotInAttachMenu</a> - Enable or disable <a href="/api/bots/attach">web bot attachment menu »</a></li>
<li>Added <a href="/method/messages.requestWebView">messages.requestWebView</a> - Open a <a href="/bots/webapps">bot web app</a>, sending over user information after user confirmation.</li>
<li>Added <a href="/method/messages.prolongWebView">messages.prolongWebView</a> - Indicate to the server (from the user side) that the user is still using a web app.</li>
<li>Added <a href="/method/messages.requestSimpleWebView">messages.requestSimpleWebView</a> - Open a <a href="/api/bots/webapps">bot web app</a>.</li>
<li>Added <a href="/method/messages.sendWebViewResultMessage">messages.sendWebViewResultMessage</a> - Terminate webview interaction started with <a href="/method/messages.requestWebView">messages.requestWebView</a>, sending the specified message to the chat on behalf of the user.</li>
<li>Added <a href="/method/messages.sendWebViewData">messages.sendWebViewData</a> - Used by the user to relay data from an opened <a href="/api/bots/webapps">reply keyboard bot web app</a> to the bot that owns it.</li>
<li>Added <a href="/method/bots.setBotMenuButton">bots.setBotMenuButton</a> - Sets the <a href="/api/bots/menu">menu button action »</a> for a given user or for all users</li>
<li>Added <a href="/method/bots.getBotMenuButton">bots.getBotMenuButton</a> - Gets the menu button action for a given user or for all users, previously set using <a href="/method/bots.setBotMenuButton">bots.setBotMenuButton</a>; users can see this information in the <a href="/constructor/botInfo">botInfo</a> constructor.</li>
<li>Added <a href="/method/account.getSavedRingtones">account.getSavedRingtones</a> - Fetch saved notification sounds</li>
<li>Added <a href="/method/account.saveRingtone">account.saveRingtone</a> - Save or remove saved notification sound.</li>
<li>Added <a href="/method/account.uploadRingtone">account.uploadRingtone</a> - Upload notification sound, use <a href="/method/account.saveRingtone">account.saveRingtone</a> to convert it and add it to the list of saved notification sounds.</li>
<li>Added <a href="/method/bots.setBotBroadcastDefaultAdminRights">bots.setBotBroadcastDefaultAdminRights</a> - Set the default <a href="/api/rights#suggested-bot-rights">suggested admin rights</a> for bots being added as admins to channels, see <a href="/api/rights#suggested-bot-rights">here for more info on how to handle them »</a>.</li>
<li>Added <a href="/method/bots.setBotGroupDefaultAdminRights">bots.setBotGroupDefaultAdminRights</a> - Set the default <a href="/api/rights#suggested-bot-rights">suggested admin rights</a> for bots being added as admins to groups, see <a href="/api/rights#suggested-bot-rights">here for more info on how to handle them »</a>.</li>
<li>Added <a href="/method/phone.saveCallLog">phone.saveCallLog</a> - Save phone call debug information</li>
</ul>
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Changed type of <a href="/method/channels.deleteHistory">channels.deleteHistory</a> from <strong>Bool</strong> to <strong>Updates</strong></li>
<li>Added <strong>flags</strong>, <strong>for_everyone</strong> parameters in <a href="/method/channels.deleteHistory">channels.deleteHistory</a></li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/attachMenuBotIconColor">attachMenuBotIconColor</a> - Represents an attachment menu icon color for <a href="/api/bots/attach">bot web apps »</a></li>
<li>Added <a href="/constructor/attachMenuBotIcon">attachMenuBotIcon</a> - Represents an attachment menu icon for <a href="/api/bots/attach">bot web apps »</a></li>
<li>Added <a href="/constructor/attachMenuBot">attachMenuBot</a> - Represents a <a href="/api/bots/attach">bot web app that can be launched from the attachment menu »</a></li>
<li>Added <a href="/constructor/attachMenuBotsNotModified">attachMenuBotsNotModified</a> - The list of bot web apps hasn't changed</li>
<li>Added <a href="/constructor/attachMenuBots">attachMenuBots</a> - Represents a list of <a href="/api/bots/attach">bot web apps that can be launched from the attachment menu »</a></li>
<li>Added <a href="/constructor/attachMenuBotsBot">attachMenuBotsBot</a> - Represents a <a href="/api/bots/attach">bot web app that can be launched from the attachment menu »</a></li>
<li>Added <a href="/constructor/updateAttachMenuBots">updateAttachMenuBots</a> - The list of installed <a href="/api/bots/attach">attachment menu entries »</a> has changed, use <a href="/method/messages.getAttachMenuBots">messages.getAttachMenuBots</a> to fetch the updated list.</li>
<li>Added <a href="/constructor/webViewResultUrl">webViewResultUrl</a> - Contains the webview URL with appropriate theme and user info parameters added</li>
<li>Added <a href="/constructor/simpleWebViewResultUrl">simpleWebViewResultUrl</a> - Contains the webview URL with appropriate theme parameters added</li>
<li>Added <a href="/constructor/webViewMessageSent">webViewMessageSent</a> - Info about a sent inline webview message</li>
<li>Added <a href="/constructor/updateWebViewResultSent">updateWebViewResultSent</a> - Indicates to a bot that a webview was closed and an inline message was sent on behalf of the user using <a href="/method/messages.sendWebViewResultMessage">messages.sendWebViewResultMessage</a></li>
<li>Added <a href="/constructor/keyboardButtonWebView">keyboardButtonWebView</a> - Button to open a <a href="/api/bots/webapps">bot web app</a> using <a href="/method/messages.requestWebView">messages.requestWebView</a>, sending over user information after user confirmation.</li>
<li>Added <a href="/constructor/keyboardButtonSimpleWebView">keyboardButtonSimpleWebView</a> - Button to open a <a href="/api/bots/webapps">bot web app</a> using <a href="/method/messages.requestSimpleWebView">messages.requestSimpleWebView</a>, without sending user information to the web app.</li>
<li>Added <a href="/constructor/messageActionWebViewDataSentMe">messageActionWebViewDataSentMe</a> - Data from an opened <a href="/api/bots/webapps">reply keyboard bot web app</a> was relayed to the bot that owns it (bot side service message).</li>
<li>Added <a href="/constructor/messageActionWebViewDataSent">messageActionWebViewDataSent</a> - Data from an opened <a href="/api/bots/webapps">reply keyboard bot web app</a> was relayed to the bot that owns it (user side service message).</li>
<li>Added <a href="/constructor/updateBotMenuButton">updateBotMenuButton</a> - The menu button behavior for the specified bot has changed</li>
<li>Added <a href="/constructor/botMenuButtonDefault">botMenuButtonDefault</a> - Placeholder <a href="/api/bots/menu">bot menu button</a> never returned to users: see <a href="/api/bots/menu">the docs for more info</a>.</li>
<li>Added <a href="/constructor/botMenuButtonCommands">botMenuButtonCommands</a> - <a href="/api/bots/menu">Bot menu button</a> that opens the bot command list when clicked.</li>
<li>Added <a href="/constructor/botMenuButton">botMenuButton</a> - <a href="/api/bots/menu">Bot menu button</a> that opens a <a href="/api/bots/webapps">web app</a> when clicked.</li>
<li>Added <a href="/constructor/account.savedRingtonesNotModified">account.savedRingtonesNotModified</a> - The notification sound list hasn't changed.</li>
<li>Added <a href="/constructor/account.savedRingtones">account.savedRingtones</a> - A list of saved notification sounds</li>
<li>Added <a href="/constructor/updateSavedRingtones">updateSavedRingtones</a> - The list of saved notification sounds has changed, use <a href="/method/account.getSavedRingtones">account.getSavedRingtones</a> to fetch the new list.</li>
<li>Added <a href="/constructor/notificationSoundDefault">notificationSoundDefault</a> - Indicates the default notification sound should be used</li>
<li>Added <a href="/constructor/notificationSoundNone">notificationSoundNone</a> - No notification sound should be used</li>
<li>Added <a href="/constructor/notificationSoundLocal">notificationSoundLocal</a> - Indicates a specific local notification sound should be used</li>
<li>Added <a href="/constructor/notificationSoundRingtone">notificationSoundRingtone</a> - A specific previously uploaded notification sound should be used</li>
<li>Added <a href="/constructor/account.savedRingtone">account.savedRingtone</a> - The notification sound was already in MP3 format and was saved without any modification</li>
<li>Added <a href="/constructor/account.savedRingtoneConverted">account.savedRingtoneConverted</a> - The notification sound was not in MP3 format and was successfully converted and saved, use the returned <a href="/type/Document">Document</a> to refer to the notification sound from now on</li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Removed <strong>kicked</strong> parameter in <a href="/constructor/chat">chat</a></li>
<li>Changed type of <strong>sound</strong> from <strong>flags.3?string</strong> to <strong>flags.3?NotificationSound</strong> in <a href="/constructor/inputPeerNotifySettings">inputPeerNotifySettings</a></li>
<li>Added <strong>ios_sound</strong>, <strong>android_sound</strong>, <strong>other_sound</strong> parameters, removed <strong>sound</strong> parameter in <a href="/constructor/peerNotifySettings">peerNotifySettings</a></li>
<li>Added <strong>bot_group_admin_rights</strong>, <strong>bot_broadcast_admin_rights</strong> parameters in <a href="/constructor/userFull">userFull</a></li>
<li>Added <strong>this_port_only</strong> parameter in <a href="/constructor/dcOption">dcOption</a></li>
<li>Added <strong>force_try_ipv6</strong> parameter in <a href="/constructor/config">config</a></li>
<li>Added <strong>bot_attach_menu</strong> parameter in <a href="/constructor/user">user</a></li>
<li>Added <strong>menu_button</strong> parameter in <a href="/constructor/botInfo">botInfo</a></li>
<li>Added <strong>flags2</strong>, <strong>can_delete_channel</strong> parameters in <a href="/constructor/channelFull">channelFull</a></li>
<li>Added <strong>recommended</strong> parameter in <a href="/constructor/sponsoredMessage">sponsoredMessage</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/chat">chat</a>#41cbf256 flags:<a href="/type/%23">#</a> creator:flags.0?<a href="/constructor/true">true</a> left:flags.2?<a href="/constructor/true">true</a> deactivated:flags.5?<a href="/constructor/true">true</a> call_active:flags.23?<a href="/constructor/true">true</a> call_not_empty:flags.24?<a href="/constructor/true">true</a> noforwards:flags.25?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> title:<a href="/type/string">string</a> photo:<a href="/type/ChatPhoto">ChatPhoto</a> participants_count:<a href="/type/int">int</a> date:<a href="/type/int">int</a> version:<a href="/type/int">int</a> migrated_to:flags.6?<a href="/type/InputChannel">InputChannel</a> admin_rights:flags.14?<a href="/type/ChatAdminRights">ChatAdminRights</a> default_banned_rights:flags.18?<a href="/type/ChatBannedRights">ChatBannedRights</a> = <a href="/type/Chat">Chat</a>;<br>
<a href="/constructor/inputPeerNotifySettings">inputPeerNotifySettings</a>#df1f002b flags:<a href="/type/%23">#</a> show_previews:flags.0?<a href="/type/Bool">Bool</a> silent:flags.1?<a href="/type/Bool">Bool</a> mute_until:flags.2?<a href="/type/int">int</a> sound:flags.3?<a href="/type/NotificationSound">NotificationSound</a> = <a href="/type/InputPeerNotifySettings">InputPeerNotifySettings</a>;<br>
<a href="/constructor/peerNotifySettings">peerNotifySettings</a>#a83b0426 flags:<a href="/type/%23">#</a> show_previews:flags.0?<a href="/type/Bool">Bool</a> silent:flags.1?<a href="/type/Bool">Bool</a> mute_until:flags.2?<a href="/type/int">int</a> ios_sound:flags.3?<a href="/type/NotificationSound">NotificationSound</a> android_sound:flags.4?<a href="/type/NotificationSound">NotificationSound</a> other_sound:flags.5?<a href="/type/NotificationSound">NotificationSound</a> = <a href="/type/PeerNotifySettings">PeerNotifySettings</a>;<br>
<a href="/constructor/userFull">userFull</a>#8c72ea81 flags:<a href="/type/%23">#</a> blocked:flags.0?<a href="/constructor/true">true</a> phone_calls_available:flags.4?<a href="/constructor/true">true</a> phone_calls_private:flags.5?<a href="/constructor/true">true</a> can_pin_message:flags.7?<a href="/constructor/true">true</a> has_scheduled:flags.12?<a href="/constructor/true">true</a> video_calls_available:flags.13?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:flags.1?<a href="/type/string">string</a> settings:<a href="/type/PeerSettings">PeerSettings</a> profile_photo:flags.2?<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> bot_info:flags.3?<a href="/type/BotInfo">BotInfo</a> pinned_msg_id:flags.6?<a href="/type/int">int</a> common_chats_count:<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> ttl_period:flags.14?<a href="/type/int">int</a> theme_emoticon:flags.15?<a href="/type/string">string</a> private_forward_name:flags.16?<a href="/type/string">string</a> bot_group_admin_rights:flags.17?<a href="/type/ChatAdminRights">ChatAdminRights</a> bot_broadcast_admin_rights:flags.18?<a href="/type/ChatAdminRights">ChatAdminRights</a> = <a href="/type/UserFull">UserFull</a>;<br>
<a href="/constructor/dcOption">dcOption</a>#18b7a10d flags:<a href="/type/%23">#</a> ipv6:flags.0?<a href="/constructor/true">true</a> media_only:flags.1?<a href="/constructor/true">true</a> tcpo_only:flags.2?<a href="/constructor/true">true</a> cdn:flags.3?<a href="/constructor/true">true</a> static:flags.4?<a href="/constructor/true">true</a> this_port_only:flags.5?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> ip_address:<a href="/type/string">string</a> port:<a href="/type/int">int</a> secret:flags.10?<a href="/type/bytes">bytes</a> = <a href="/type/DcOption">DcOption</a>;<br>
<a href="/constructor/config">config</a>#330b4067 flags:<a href="/type/%23">#</a> phonecalls_enabled:flags.1?<a href="/constructor/true">true</a> default_p2p_contacts:flags.3?<a href="/constructor/true">true</a> preload_featured_stickers:flags.4?<a href="/constructor/true">true</a> ignore_phone_entities:flags.5?<a href="/constructor/true">true</a> revoke_pm_inbox:flags.6?<a href="/constructor/true">true</a> blocked_mode:flags.8?<a href="/constructor/true">true</a> pfs_enabled:flags.13?<a href="/constructor/true">true</a> force_try_ipv6:flags.14?<a href="/constructor/true">true</a> date:<a href="/type/int">int</a> expires:<a href="/type/int">int</a> test_mode:<a href="/type/Bool">Bool</a> this_dc:<a href="/type/int">int</a> dc_options:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/DcOption">DcOption</a>&gt; dc_txt_domain_name:<a href="/type/string">string</a> chat_size_max:<a href="/type/int">int</a> megagroup_size_max:<a href="/type/int">int</a> forwarded_count_max:<a href="/type/int">int</a> online_update_period_ms:<a href="/type/int">int</a> offline_blur_timeout_ms:<a href="/type/int">int</a> offline_idle_timeout_ms:<a href="/type/int">int</a> online_cloud_timeout_ms:<a href="/type/int">int</a> notify_cloud_delay_ms:<a href="/type/int">int</a> notify_default_delay_ms:<a href="/type/int">int</a> push_chat_period_ms:<a href="/type/int">int</a> push_chat_limit:<a href="/type/int">int</a> saved_gifs_limit:<a href="/type/int">int</a> edit_time_limit:<a href="/type/int">int</a> revoke_time_limit:<a href="/type/int">int</a> revoke_pm_time_limit:<a href="/type/int">int</a> rating_e_decay:<a href="/type/int">int</a> stickers_recent_limit:<a href="/type/int">int</a> stickers_faved_limit:<a href="/type/int">int</a> channels_read_media_period:<a href="/type/int">int</a> tmp_sessions:flags.0?<a href="/type/int">int</a> pinned_dialogs_count_max:<a href="/type/int">int</a> pinned_infolder_count_max:<a href="/type/int">int</a> call_receive_timeout_ms:<a href="/type/int">int</a> call_ring_timeout_ms:<a href="/type/int">int</a> call_connect_timeout_ms:<a href="/type/int">int</a> call_packet_timeout_ms:<a href="/type/int">int</a> me_url_prefix:<a href="/type/string">string</a> autoupdate_url_prefix:flags.7?<a href="/type/string">string</a> gif_search_username:flags.9?<a href="/type/string">string</a> venue_search_username:flags.10?<a href="/type/string">string</a> img_search_username:flags.11?<a href="/type/string">string</a> static_maps_provider:flags.12?<a href="/type/string">string</a> caption_length_max:<a href="/type/int">int</a> message_length_max:<a href="/type/int">int</a> webfile_dc_id:<a href="/type/int">int</a> suggested_lang_code:flags.2?<a href="/type/string">string</a> lang_pack_version:flags.2?<a href="/type/int">int</a> base_lang_pack_version:flags.2?<a href="/type/int">int</a> = <a href="/type/Config">Config</a>;<br>
<a href="/constructor/user">user</a>#3ff6ecb0 flags:<a href="/type/%23">#</a> self:flags.10?<a href="/constructor/true">true</a> contact:flags.11?<a href="/constructor/true">true</a> mutual_contact:flags.12?<a href="/constructor/true">true</a> deleted:flags.13?<a href="/constructor/true">true</a> bot:flags.14?<a href="/constructor/true">true</a> bot_chat_history:flags.15?<a href="/constructor/true">true</a> bot_nochats:flags.16?<a href="/constructor/true">true</a> verified:flags.17?<a href="/constructor/true">true</a> restricted:flags.18?<a href="/constructor/true">true</a> min:flags.20?<a href="/constructor/true">true</a> bot_inline_geo:flags.21?<a href="/constructor/true">true</a> support:flags.23?<a href="/constructor/true">true</a> scam:flags.24?<a href="/constructor/true">true</a> apply_min_photo:flags.25?<a href="/constructor/true">true</a> fake:flags.26?<a href="/constructor/true">true</a> bot_attach_menu:flags.27?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> access_hash:flags.0?<a href="/type/long">long</a> first_name:flags.1?<a href="/type/string">string</a> last_name:flags.2?<a href="/type/string">string</a> username:flags.3?<a href="/type/string">string</a> phone:flags.4?<a href="/type/string">string</a> photo:flags.5?<a href="/type/UserProfilePhoto">UserProfilePhoto</a> status:flags.6?<a href="/type/UserStatus">UserStatus</a> bot_info_version:flags.14?<a href="/type/int">int</a> restriction_reason:flags.18?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RestrictionReason">RestrictionReason</a>&gt; bot_inline_placeholder:flags.19?<a href="/type/string">string</a> lang_code:flags.22?<a href="/type/string">string</a> = <a href="/type/User">User</a>;<br>
<a href="/constructor/botInfo">botInfo</a>#e4169b5d user_id:<a href="/type/long">long</a> description:<a href="/type/string">string</a> commands:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotCommand">BotCommand</a>&gt; menu_button:<a href="/type/BotMenuButton">BotMenuButton</a> = <a href="/type/BotInfo">BotInfo</a>;<br>
<a href="/constructor/channelFull">channelFull</a>#ea68a619 flags:<a href="/type/%23">#</a> can_view_participants:flags.3?<a href="/constructor/true">true</a> can_set_username:flags.6?<a href="/constructor/true">true</a> can_set_stickers:flags.7?<a href="/constructor/true">true</a> hidden_prehistory:flags.10?<a href="/constructor/true">true</a> can_set_location:flags.16?<a href="/constructor/true">true</a> has_scheduled:flags.19?<a href="/constructor/true">true</a> can_view_stats:flags.20?<a href="/constructor/true">true</a> blocked:flags.22?<a href="/constructor/true">true</a> flags2:<a href="/type/%23">#</a> can_delete_channel:flags2.0?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:<a href="/type/string">string</a> participants_count:flags.0?<a href="/type/int">int</a> admins_count:flags.1?<a href="/type/int">int</a> kicked_count:flags.2?<a href="/type/int">int</a> banned_count:flags.2?<a href="/type/int">int</a> online_count:flags.13?<a href="/type/int">int</a> read_inbox_max_id:<a href="/type/int">int</a> read_outbox_max_id:<a href="/type/int">int</a> unread_count:<a href="/type/int">int</a> chat_photo:<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> exported_invite:flags.23?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> bot_info:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotInfo">BotInfo</a>&gt; migrated_from_chat_id:flags.4?<a href="/type/long">long</a> migrated_from_max_id:flags.4?<a href="/type/int">int</a> pinned_msg_id:flags.5?<a href="/type/int">int</a> stickerset:flags.8?<a href="/type/StickerSet">StickerSet</a> available_min_id:flags.9?<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> linked_chat_id:flags.14?<a href="/type/long">long</a> location:flags.15?<a href="/type/ChannelLocation">ChannelLocation</a> slowmode_seconds:flags.17?<a href="/type/int">int</a> slowmode_next_send_date:flags.18?<a href="/type/int">int</a> stats_dc:flags.12?<a href="/type/int">int</a> pts:<a href="/type/int">int</a> call:flags.21?<a href="/type/InputGroupCall">InputGroupCall</a> ttl_period:flags.24?<a href="/type/int">int</a> pending_suggestions:flags.25?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; groupcall_default_join_as:flags.26?<a href="/type/Peer">Peer</a> theme_emoticon:flags.27?<a href="/type/string">string</a> requests_pending:flags.28?<a href="/type/int">int</a> recent_requesters:flags.28?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; default_send_as:flags.29?<a href="/type/Peer">Peer</a> available_reactions:flags.30?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/sponsoredMessage">sponsoredMessage</a>#3a836df8 flags:<a href="/type/%23">#</a> recommended:flags.5?<a href="/constructor/true">true</a> random_id:<a href="/type/bytes">bytes</a> from_id:flags.3?<a href="/type/Peer">Peer</a> chat_invite:flags.4?<a href="/type/ChatInvite">ChatInvite</a> chat_invite_hash:flags.4?<a href="/type/string">string</a> channel_post:flags.2?<a href="/type/int">int</a> start_param:flags.0?<a href="/type/string">string</a> message:<a href="/type/string">string</a> entities:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; = <a href="/type/SponsoredMessage">SponsoredMessage</a>;<br>
<a href="/constructor/attachMenuBotIconColor">attachMenuBotIconColor</a>#4576f3f0 name:<a href="/type/string">string</a> color:<a href="/type/int">int</a> = <a href="/type/AttachMenuBotIconColor">AttachMenuBotIconColor</a>;
<a href="/constructor/attachMenuBotIcon">attachMenuBotIcon</a>#b2a7386b flags:<a href="/type/%23">#</a> name:<a href="/type/string">string</a> icon:<a href="/type/Document">Document</a> colors:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/AttachMenuBotIconColor">AttachMenuBotIconColor</a>&gt; = <a href="/type/AttachMenuBotIcon">AttachMenuBotIcon</a>;
<a href="/constructor/attachMenuBot">attachMenuBot</a>#e93cb772 flags:<a href="/type/%23">#</a> inactive:flags.0?<a href="/constructor/true">true</a> bot_id:<a href="/type/long">long</a> short_name:<a href="/type/string">string</a> icons:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/AttachMenuBotIcon">AttachMenuBotIcon</a>&gt; = <a href="/type/AttachMenuBot">AttachMenuBot</a>;
<a href="/constructor/attachMenuBotsNotModified">attachMenuBotsNotModified</a>#f1d88a5c = <a href="/type/AttachMenuBots">AttachMenuBots</a>;
<a href="/constructor/attachMenuBots">attachMenuBots</a>#3c4301c0 hash:<a href="/type/long">long</a> bots:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/AttachMenuBot">AttachMenuBot</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/AttachMenuBots">AttachMenuBots</a>;
<a href="/constructor/attachMenuBotsBot">attachMenuBotsBot</a>#93bf667f bot:<a href="/type/AttachMenuBot">AttachMenuBot</a> users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/AttachMenuBotsBot">AttachMenuBotsBot</a>;<br>
<a href="/constructor/updateAttachMenuBots">updateAttachMenuBots</a>#17b7a20b = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/webViewResultUrl">webViewResultUrl</a>#0c14557c query_id:<a href="/type/long">long</a> url:<a href="/type/string">string</a> = <a href="/type/WebViewResult">WebViewResult</a>;<br>
<a href="/constructor/simpleWebViewResultUrl">simpleWebViewResultUrl</a>#882f76bb url:<a href="/type/string">string</a> = <a href="/type/SimpleWebViewResult">SimpleWebViewResult</a>;<br>
<a href="/constructor/webViewMessageSent">webViewMessageSent</a>#0c94511c flags:<a href="/type/%23">#</a> msg_id:flags.0?<a href="/type/InputBotInlineMessageID">InputBotInlineMessageID</a> = <a href="/type/WebViewMessageSent">WebViewMessageSent</a>;<br>
<a href="/constructor/updateWebViewResultSent">updateWebViewResultSent</a>#1592b79d query_id:<a href="/type/long">long</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/keyboardButtonWebView">keyboardButtonWebView</a>#13767230 text:<a href="/type/string">string</a> url:<a href="/type/string">string</a> = <a href="/type/KeyboardButton">KeyboardButton</a>;
<a href="/constructor/keyboardButtonSimpleWebView">keyboardButtonSimpleWebView</a>#a0c0505c text:<a href="/type/string">string</a> url:<a href="/type/string">string</a> = <a href="/type/KeyboardButton">KeyboardButton</a>;<br>
<a href="/constructor/messageActionWebViewDataSentMe">messageActionWebViewDataSentMe</a>#47dd8079 text:<a href="/type/string">string</a> data:<a href="/type/string">string</a> = <a href="/type/MessageAction">MessageAction</a>;
<a href="/constructor/messageActionWebViewDataSent">messageActionWebViewDataSent</a>#b4c38cb5 text:<a href="/type/string">string</a> = <a href="/type/MessageAction">MessageAction</a>;<br>
<a href="/constructor/updateBotMenuButton">updateBotMenuButton</a>#14b85813 bot_id:<a href="/type/long">long</a> button:<a href="/type/BotMenuButton">BotMenuButton</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/botMenuButtonDefault">botMenuButtonDefault</a>#7533a588 = <a href="/type/BotMenuButton">BotMenuButton</a>;
<a href="/constructor/botMenuButtonCommands">botMenuButtonCommands</a>#4258c205 = <a href="/type/BotMenuButton">BotMenuButton</a>;
<a href="/constructor/botMenuButton">botMenuButton</a>#c7b57ce6 text:<a href="/type/string">string</a> url:<a href="/type/string">string</a> = <a href="/type/BotMenuButton">BotMenuButton</a>;<br>
<a href="/constructor/account.savedRingtonesNotModified">account.savedRingtonesNotModified</a>#fbf6e8b1 = <a href="/type/account.SavedRingtones">account.SavedRingtones</a>;
<a href="/constructor/account.savedRingtones">account.savedRingtones</a>#c1e92cc5 hash:<a href="/type/long">long</a> ringtones:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Document">Document</a>&gt; = <a href="/type/account.SavedRingtones">account.SavedRingtones</a>;<br>
<a href="/constructor/updateSavedRingtones">updateSavedRingtones</a>#74d8be99 = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/notificationSoundDefault">notificationSoundDefault</a>#97e8bebe = <a href="/type/NotificationSound">NotificationSound</a>;
<a href="/constructor/notificationSoundNone">notificationSoundNone</a>#6f0c34df = <a href="/type/NotificationSound">NotificationSound</a>;
<a href="/constructor/notificationSoundLocal">notificationSoundLocal</a>#830b9ae4 title:<a href="/type/string">string</a> data:<a href="/type/string">string</a> = <a href="/type/NotificationSound">NotificationSound</a>;
<a href="/constructor/notificationSoundRingtone">notificationSoundRingtone</a>#ff6c8049 id:<a href="/type/long">long</a> = <a href="/type/NotificationSound">NotificationSound</a>;<br>
<a href="/constructor/account.savedRingtone">account.savedRingtone</a>#b7263f6d = <a href="/type/account.SavedRingtone">account.SavedRingtone</a>;
<a href="/constructor/account.savedRingtoneConverted">account.savedRingtoneConverted</a>#1f307eb7 document:<a href="/type/Document">Document</a> = <a href="/type/account.SavedRingtone">account.SavedRingtone</a>;<br>
---functions---<br>
<a href="/method/channels.deleteHistory">channels.deleteHistory</a>#9baa9647 flags:<a href="/type/%23">#</a> for_everyone:flags.0?<a href="/constructor/true">true</a> channel:<a href="/type/InputChannel">InputChannel</a> max_id:<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/messages.getAttachMenuBots">messages.getAttachMenuBots</a>#16fcc2cb hash:<a href="/type/long">long</a> = <a href="/type/AttachMenuBots">AttachMenuBots</a>;
<a href="/method/messages.getAttachMenuBot">messages.getAttachMenuBot</a>#77216192 bot:<a href="/type/InputUser">InputUser</a> = <a href="/type/AttachMenuBotsBot">AttachMenuBotsBot</a>;
<a href="/method/messages.toggleBotInAttachMenu">messages.toggleBotInAttachMenu</a>#1aee33af bot:<a href="/type/InputUser">InputUser</a> enabled:<a href="/type/Bool">Bool</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.requestWebView">messages.requestWebView</a>#0fa04dff flags:<a href="/type/%23">#</a> from_bot_menu:flags.4?<a href="/constructor/true">true</a> silent:flags.5?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> bot:<a href="/type/InputUser">InputUser</a> url:flags.1?<a href="/type/string">string</a> start_param:flags.3?<a href="/type/string">string</a> theme_params:flags.2?<a href="/type/DataJSON">DataJSON</a> reply_to_msg_id:flags.0?<a href="/type/int">int</a> = <a href="/type/WebViewResult">WebViewResult</a>;
<a href="/method/messages.prolongWebView">messages.prolongWebView</a>#d22ad148 flags:<a href="/type/%23">#</a> silent:flags.5?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> bot:<a href="/type/InputUser">InputUser</a> query_id:<a href="/type/long">long</a> reply_to_msg_id:flags.0?<a href="/type/int">int</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.requestSimpleWebView">messages.requestSimpleWebView</a>#6abb2f73 flags:<a href="/type/%23">#</a> bot:<a href="/type/InputUser">InputUser</a> url:<a href="/type/string">string</a> theme_params:flags.0?<a href="/type/DataJSON">DataJSON</a> = <a href="/type/SimpleWebViewResult">SimpleWebViewResult</a>;
<a href="/method/messages.sendWebViewResultMessage">messages.sendWebViewResultMessage</a>#0a4314f5 bot_query_id:<a href="/type/string">string</a> result:<a href="/type/InputBotInlineResult">InputBotInlineResult</a> = <a href="/type/WebViewMessageSent">WebViewMessageSent</a>;
<a href="/method/messages.sendWebViewData">messages.sendWebViewData</a>#dc0242c8 bot:<a href="/type/InputUser">InputUser</a> random_id:<a href="/type/long">long</a> button_text:<a href="/type/string">string</a> data:<a href="/type/string">string</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/bots.setBotMenuButton">bots.setBotMenuButton</a>#4504d54f user_id:<a href="/type/InputUser">InputUser</a> button:<a href="/type/BotMenuButton">BotMenuButton</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/bots.getBotMenuButton">bots.getBotMenuButton</a>#9c60eb28 user_id:<a href="/type/InputUser">InputUser</a> = <a href="/type/BotMenuButton">BotMenuButton</a>;<br>
<a href="/method/account.getSavedRingtones">account.getSavedRingtones</a>#e1902288 hash:<a href="/type/long">long</a> = <a href="/type/account.SavedRingtones">account.SavedRingtones</a>;
<a href="/method/account.saveRingtone">account.saveRingtone</a>#3dea5b03 id:<a href="/type/InputDocument">InputDocument</a> unsave:<a href="/type/Bool">Bool</a> = <a href="/type/account.SavedRingtone">account.SavedRingtone</a>;
<a href="/method/account.uploadRingtone">account.uploadRingtone</a>#831a83a2 file:<a href="/type/InputFile">InputFile</a> file_name:<a href="/type/string">string</a> mime_type:<a href="/type/string">string</a> = <a href="/type/Document">Document</a>;<br>
<a href="/method/bots.setBotBroadcastDefaultAdminRights">bots.setBotBroadcastDefaultAdminRights</a>#788464e1 admin_rights:<a href="/type/ChatAdminRights">ChatAdminRights</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/bots.setBotGroupDefaultAdminRights">bots.setBotGroupDefaultAdminRights</a>#925ec9ea admin_rights:<a href="/type/ChatAdminRights">ChatAdminRights</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/phone.saveCallLog">phone.saveCallLog</a>#41248786 peer:<a href="/type/InputPhoneCall">InputPhoneCall</a> file:<a href="/type/InputFile">InputFile</a> = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-139" id="layer-139" name="layer-139"><i class="anchor-icon"></i></a><a href="/schema?layer=139">Layer 139</a></h3>
<p><a href="https://telegram.org/blog/downloads-attachments-streaming#live-streaming-with-other-apps">RTMP streams in group calls and livestreams</a>, <a href="https://telegram.org/blog/downloads-attachments-streaming#phone-number-links">link to users by their phone number</a>, <a href="https://telegram.org/blog/downloads-attachments-streaming#new-attachment-menu">browse recently sent media</a> and new report options for illegal drugs and personal details.</p>
<p>The <a href="/api/errors#error-database">RPC error database »</a> was also updated.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/contacts.resolvePhone">contacts.resolvePhone</a> - Resolve a phone number to get user info, if their privacy settings allow it.</li>
<li>Added <a href="/method/phone.getGroupCallStreamChannels">phone.getGroupCallStreamChannels</a> - Get info about RTMP streams in a group call or livestream. </li>
<li>Added <a href="/method/phone.getGroupCallStreamRtmpUrl">phone.getGroupCallStreamRtmpUrl</a> - Get RTMP URL and stream key for RTMP livestreams. Can be used even before creating the actual RTMP livestream with <a href="/method/phone.createGroupCall">phone.createGroupCall</a> (the <code>rtmp_stream</code> flag must be set).</li>
<li>Added <a href="/method/messages.searchSentMedia">messages.searchSentMedia</a> - View and search recently sent media. </li>
</ul>
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Added <strong>rtmp_stream</strong> parameter in <a href="/method/phone.createGroupCall">phone.createGroupCall</a></li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/groupCallStreamChannel">groupCallStreamChannel</a> - Info about an RTMP stream in a group call or livestream</li>
<li>Added <a href="/constructor/phone.groupCallStreamChannels">phone.groupCallStreamChannels</a> - Info about RTMP streams in a group call or livestream</li>
<li>Added <a href="/constructor/inputReportReasonIllegalDrugs">inputReportReasonIllegalDrugs</a> - Report for illegal drugs</li>
<li>Added <a href="/constructor/inputReportReasonPersonalDetails">inputReportReasonPersonalDetails</a> - Report for divulgation of personal details</li>
<li>Added <a href="/constructor/phone.groupCallStreamRtmpUrl">phone.groupCallStreamRtmpUrl</a> - RTMP URL and stream key to be used in streaming software</li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>rtmp_stream</strong>, <strong>listeners_hidden</strong> parameters in <a href="/constructor/groupCall">groupCall</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/groupCall">groupCall</a>#d597650c flags:<a href="/type/%23">#</a> join_muted:flags.1?<a href="/constructor/true">true</a> can_change_join_muted:flags.2?<a href="/constructor/true">true</a> join_date_asc:flags.6?<a href="/constructor/true">true</a> schedule_start_subscribed:flags.8?<a href="/constructor/true">true</a> can_start_video:flags.9?<a href="/constructor/true">true</a> record_video_active:flags.11?<a href="/constructor/true">true</a> rtmp_stream:flags.12?<a href="/constructor/true">true</a> listeners_hidden:flags.13?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> participants_count:<a href="/type/int">int</a> title:flags.3?<a href="/type/string">string</a> stream_dc_id:flags.4?<a href="/type/int">int</a> record_start_date:flags.5?<a href="/type/int">int</a> schedule_date:flags.7?<a href="/type/int">int</a> unmuted_video_count:flags.10?<a href="/type/int">int</a> unmuted_video_limit:<a href="/type/int">int</a> version:<a href="/type/int">int</a> = <a href="/type/GroupCall">GroupCall</a>;
<a href="/constructor/groupCallStreamChannel">groupCallStreamChannel</a>#80eb48af channel:<a href="/type/int">int</a> scale:<a href="/type/int">int</a> last_timestamp_ms:<a href="/type/long">long</a> = <a href="/type/GroupCallStreamChannel">GroupCallStreamChannel</a>;<br>
<a href="/constructor/phone.groupCallStreamChannels">phone.groupCallStreamChannels</a>#d0e482b2 channels:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/GroupCallStreamChannel">GroupCallStreamChannel</a>&gt; = <a href="/type/phone.GroupCallStreamChannels">phone.GroupCallStreamChannels</a>;<br>
<a href="/constructor/inputReportReasonIllegalDrugs">inputReportReasonIllegalDrugs</a>#0a8eb2be = <a href="/type/ReportReason">ReportReason</a>;
<a href="/constructor/inputReportReasonPersonalDetails">inputReportReasonPersonalDetails</a>#9ec7863d = <a href="/type/ReportReason">ReportReason</a>;<br>
<a href="/constructor/phone.groupCallStreamRtmpUrl">phone.groupCallStreamRtmpUrl</a>#2dbf3432 url:<a href="/type/string">string</a> key:<a href="/type/string">string</a> = <a href="/type/phone.GroupCallStreamRtmpUrl">phone.GroupCallStreamRtmpUrl</a>;<br>
---functions---<br>
<a href="/method/phone.createGroupCall">phone.createGroupCall</a>#48cdc6d8 flags:<a href="/type/%23">#</a> rtmp_stream:flags.2?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> random_id:<a href="/type/int">int</a> title:flags.0?<a href="/type/string">string</a> schedule_date:flags.1?<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/contacts.resolvePhone">contacts.resolvePhone</a>#8af94344 phone:<a href="/type/string">string</a> = <a href="/type/contacts.ResolvedPeer">contacts.ResolvedPeer</a>;<br>
<a href="/method/phone.getGroupCallStreamChannels">phone.getGroupCallStreamChannels</a>#1ab21940 call:<a href="/type/InputGroupCall">InputGroupCall</a> = <a href="/type/phone.GroupCallStreamChannels">phone.GroupCallStreamChannels</a>;
<a href="/method/phone.getGroupCallStreamRtmpUrl">phone.getGroupCallStreamRtmpUrl</a>#deb3abbf peer:<a href="/type/InputPeer">InputPeer</a> revoke:<a href="/type/Bool">Bool</a> = <a href="/type/phone.GroupCallStreamRtmpUrl">phone.GroupCallStreamRtmpUrl</a>;<br>
<a href="/method/messages.searchSentMedia">messages.searchSentMedia</a>#107e31a0 q:<a href="/type/string">string</a> filter:<a href="/type/MessagesFilter">MessagesFilter</a> limit:<a href="/type/int">int</a> = <a href="/type/messages.Messages">messages.Messages</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-138" id="layer-138" name="layer-138"><i class="anchor-icon"></i></a><a href="/schema?layer=138">Layer 138</a></h3>
<p><a href="https://telegram.org/blog/video-stickers-better-reactions#video-stickers">Video stickers</a>, <a href="https://telegram.org/blog/video-stickers-better-reactions#better-reactions">better reactions</a>.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/messages.getUnreadReactions">messages.getUnreadReactions</a> - Get unread reactions to messages you sent</li>
<li>Added <a href="/method/messages.readReactions">messages.readReactions</a> - Mark <a href="/api/reactions">message reactions »</a> as read</li>
</ul>
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Added <strong>videos</strong> parameter in <a href="/method/stickers.createStickerSet">stickers.createStickerSet</a></li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/messagePeerReaction">messagePeerReaction</a> - How a certain peer reacted to the message</li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>unread_reactions_count</strong> parameter in <a href="/constructor/dialog">dialog</a></li>
<li>Added <strong>videos</strong> parameter in <a href="/constructor/stickerSet">stickerSet</a></li>
<li>Added <strong>recent_reactions</strong> parameter, removed <strong>recent_reactons</strong> parameter in <a href="/constructor/messageReactions">messageReactions</a></li>
<li>Added <strong>chats</strong> parameter, changed type of <strong>reactions</strong> from <strong>Vector&lt;MessageUserReaction&gt;</strong> to <strong>Vector&lt;MessagePeerReaction&gt;</strong> in <a href="/constructor/messages.messageReactionsList">messages.messageReactionsList</a></li>
</ul>
<h5><a class="anchor" href="#deleted-constructors" id="deleted-constructors" name="deleted-constructors"><i class="anchor-icon"></i></a>Deleted Constructors</h5>
<ul>
<li>Removed messageUserReaction</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/dialog">dialog</a>#a8edd0f5 flags:<a href="/type/%23">#</a> pinned:flags.2?<a href="/constructor/true">true</a> unread_mark:flags.3?<a href="/constructor/true">true</a> peer:<a href="/type/Peer">Peer</a> top_message:<a href="/type/int">int</a> read_inbox_max_id:<a href="/type/int">int</a> read_outbox_max_id:<a href="/type/int">int</a> unread_count:<a href="/type/int">int</a> unread_mentions_count:<a href="/type/int">int</a> unread_reactions_count:<a href="/type/int">int</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> pts:flags.0?<a href="/type/int">int</a> draft:flags.1?<a href="/type/DraftMessage">DraftMessage</a> folder_id:flags.4?<a href="/type/int">int</a> = <a href="/type/Dialog">Dialog</a>;<br>
<a href="/constructor/stickerSet">stickerSet</a>#d7df217a flags:<a href="/type/%23">#</a> archived:flags.1?<a href="/constructor/true">true</a> official:flags.2?<a href="/constructor/true">true</a> masks:flags.3?<a href="/constructor/true">true</a> animated:flags.5?<a href="/constructor/true">true</a> videos:flags.6?<a href="/constructor/true">true</a> installed_date:flags.0?<a href="/type/int">int</a> id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> title:<a href="/type/string">string</a> short_name:<a href="/type/string">string</a> thumbs:flags.4?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PhotoSize">PhotoSize</a>&gt; thumb_dc_id:flags.4?<a href="/type/int">int</a> thumb_version:flags.4?<a href="/type/int">int</a> count:<a href="/type/int">int</a> hash:<a href="/type/int">int</a> = <a href="/type/StickerSet">StickerSet</a>;<br>
<a href="/constructor/messageReactions">messageReactions</a>#4f2b9479 flags:<a href="/type/%23">#</a> min:flags.0?<a href="/constructor/true">true</a> can_see_list:flags.2?<a href="/constructor/true">true</a> results:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/ReactionCount">ReactionCount</a>&gt; recent_reactions:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessagePeerReaction">MessagePeerReaction</a>&gt; = <a href="/type/MessageReactions">MessageReactions</a>;
<a href="/constructor/messages.messageReactionsList">messages.messageReactionsList</a>#31bd492d flags:<a href="/type/%23">#</a> count:<a href="/type/int">int</a> reactions:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessagePeerReaction">MessagePeerReaction</a>&gt; chats:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Chat">Chat</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; next_offset:flags.0?<a href="/type/string">string</a> = <a href="/type/messages.MessageReactionsList">messages.MessageReactionsList</a>;
<a href="/constructor/messagePeerReaction">messagePeerReaction</a>#51b67eff flags:<a href="/type/%23">#</a> big:flags.0?<a href="/constructor/true">true</a> unread:flags.1?<a href="/constructor/true">true</a> peer_id:<a href="/type/Peer">Peer</a> reaction:<a href="/type/string">string</a> = <a href="/type/MessagePeerReaction">MessagePeerReaction</a>;<br>
---functions---<br>
<a href="/method/stickers.createStickerSet">stickers.createStickerSet</a>#9021ab67 flags:<a href="/type/%23">#</a> masks:flags.0?<a href="/constructor/true">true</a> animated:flags.1?<a href="/constructor/true">true</a> videos:flags.4?<a href="/constructor/true">true</a> user_id:<a href="/type/InputUser">InputUser</a> title:<a href="/type/string">string</a> short_name:<a href="/type/string">string</a> thumb:flags.2?<a href="/type/InputDocument">InputDocument</a> stickers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputStickerSetItem">InputStickerSetItem</a>&gt; software:flags.3?<a href="/type/string">string</a> = <a href="/type/messages.StickerSet">messages.StickerSet</a>;<br>
<a href="/method/messages.getUnreadReactions">messages.getUnreadReactions</a>#e85bae1a peer:<a href="/type/InputPeer">InputPeer</a> offset_id:<a href="/type/int">int</a> add_offset:<a href="/type/int">int</a> limit:<a href="/type/int">int</a> max_id:<a href="/type/int">int</a> min_id:<a href="/type/int">int</a> = <a href="/type/messages.Messages">messages.Messages</a>;
<a href="/method/messages.readReactions">messages.readReactions</a>#82e251d7 peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/messages.AffectedHistory">messages.AffectedHistory</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-137" id="layer-137" name="layer-137"><i class="anchor-icon"></i></a><a href="/schema?layer=137">Layer 137</a></h3>
<p><a href="https://telegram.org/blog/reactions-spoilers-translations#spoilers">Message translation</a>.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/messages.translateText">messages.translateText</a> - Translate a given text</li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/messages.translateNoResult">messages.translateNoResult</a> - No translation is available</li>
<li>Added <a href="/constructor/messages.translateResultText">messages.translateResultText</a> - Translated text</li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>around_animation</strong>, <strong>center_icon</strong> parameters in <a href="/constructor/availableReaction">availableReaction</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/availableReaction">availableReaction</a>#c077ec01 flags:<a href="/type/%23">#</a> inactive:flags.0?<a href="/constructor/true">true</a> reaction:<a href="/type/string">string</a> title:<a href="/type/string">string</a> static_icon:<a href="/type/Document">Document</a> appear_animation:<a href="/type/Document">Document</a> select_animation:<a href="/type/Document">Document</a> activate_animation:<a href="/type/Document">Document</a> effect_animation:<a href="/type/Document">Document</a> around_animation:flags.1?<a href="/type/Document">Document</a> center_icon:flags.1?<a href="/type/Document">Document</a> = <a href="/type/AvailableReaction">AvailableReaction</a>;<br>
<a href="/constructor/messages.translateNoResult">messages.translateNoResult</a>#67ca4737 = <a href="/type/messages.TranslatedText">messages.TranslatedText</a>;
<a href="/constructor/messages.translateResultText">messages.translateResultText</a>#a214f7d0 text:<a href="/type/string">string</a> = <a href="/type/messages.TranslatedText">messages.TranslatedText</a>;<br>
---functions---<br>
<a href="/method/messages.translateText">messages.translateText</a>#24ce6dee flags:<a href="/type/%23">#</a> peer:flags.0?<a href="/type/InputPeer">InputPeer</a> msg_id:flags.0?<a href="/type/int">int</a> text:flags.1?<a href="/type/string">string</a> from_lang:flags.2?<a href="/type/string">string</a> to_lang:<a href="/type/string">string</a> = <a href="/type/messages.TranslatedText">messages.TranslatedText</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-136" id="layer-136" name="layer-136"><i class="anchor-icon"></i></a><a href="/schema?layer=136">Layer 136</a></h3>
<p><a href="https://telegram.org/blog/reactions-spoilers-translations#reactions">Reactions</a>, <a href="https://telegram.org/blog/reactions-spoilers-translations#spoilers">spoilers</a> and sponsored message improvements.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/messages.sendReaction">messages.sendReaction</a> - React to message</li>
<li>Added <a href="/method/messages.getMessagesReactions">messages.getMessagesReactions</a> - Get <a href="/api/reactions">message reactions »</a></li>
<li>Added <a href="/method/messages.getMessageReactionsList">messages.getMessageReactionsList</a> - Get <a href="/api/reactions">message reaction</a> list, along with the sender of each reaction.</li>
<li>Added <a href="/method/messages.setChatAvailableReactions">messages.setChatAvailableReactions</a> - Change the set of <a href="/api/reactions">message reactions »</a> that can be used in a certain group, supergroup or channel</li>
<li>Added <a href="/method/messages.getAvailableReactions">messages.getAvailableReactions</a> - Obtain available <a href="/api/reactions">message reactions »</a></li>
<li>Added <a href="/method/messages.setDefaultReaction">messages.setDefaultReaction</a> - Change default emoji reaction to use in the quick reaction menu: the value is synced across devices and can be fetched using <a href="/method/help.getConfig">help.getConfig, <code>reactions_default</code> field</a>.</li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/updateMessageReactions">updateMessageReactions</a> - New <a href="/api/reactions">message reactions »</a> are available</li>
<li>Added <a href="/constructor/reactionCount">reactionCount</a> - Reactions</li>
<li>Added <a href="/constructor/messageReactions">messageReactions</a> - <a href="/api/reactions">Message reactions »</a></li>
<li>Added <a href="/constructor/messageUserReaction">messageUserReaction</a> - Message reaction</li>
<li>Added <a href="/constructor/messages.messageReactionsList">messages.messageReactionsList</a> - List of peers that reacted to a specific message</li>
<li>Added <a href="/constructor/availableReaction">availableReaction</a> - Animations associated with a message reaction</li>
<li>Added <a href="/constructor/messages.availableReactionsNotModified">messages.availableReactionsNotModified</a> - No new reactions are available</li>
<li>Added <a href="/constructor/messages.availableReactions">messages.availableReactions</a> - Animations and metadata associated with <a href="/api/reactions">message reactions »</a></li>
<li>Added <a href="/constructor/messageEntitySpoiler">messageEntitySpoiler</a> - Message entity representing a spoiler</li>
<li>Added <a href="/constructor/channelAdminLogEventActionChangeAvailableReactions">channelAdminLogEventActionChangeAvailableReactions</a> - The set of allowed <a href="/api/reactions">message reactions »</a> for this channel has changed</li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>available_reactions</strong> parameter in <a href="/constructor/chatFull">chatFull</a></li>
<li>Added <strong>reactions</strong> parameter in <a href="/constructor/message">message</a></li>
<li>Added <strong>available_reactions</strong> parameter in <a href="/constructor/channelFull">channelFull</a></li>
<li>Added <strong>chat_invite</strong>, <strong>chat_invite_hash</strong> parameters, changed type of <strong>from_id</strong> from <strong>Peer</strong> to <strong>flags.3?Peer</strong> in <a href="/constructor/sponsoredMessage">sponsoredMessage</a></li>
</ul>
<h4><a class="anchor" href="#push-notification-changes" id="push-notification-changes" name="push-notification-changes"><i class="anchor-icon"></i></a>PUSH notification changes</h4>
<h5><a class="anchor" href="#new-push-notifications" id="new-push-notifications" name="new-push-notifications"><i class="anchor-icon"></i></a>New PUSH notifications</h5>
<ul>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_AUDIO</a> - <code>{1}: {3} to your voice message in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_CONTACT</a> - <code>{1}: {3} to your contact {4} in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_DOC</a> - <code>{1}: {3} to your file in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_GAME</a> - <code>{1}: {3} to your game in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_GEO</a> - <code>{1}: {3} to your map in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_GEOLIVE</a> - <code>{1}: {3} to your live location in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_GIF</a> - <code>{1}: {3} to your GIF in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_INVOICE</a> - <code>{1}: {3} to your invoice in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_NOTEXT</a> - <code>{1}: {3} to your message in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_PHOTO</a> - <code>{1}: {3} to your photo in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_POLL</a> - <code>{1}: {3} to your poll {4} in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_QUIZ</a> - <code>{1}: {3} to your quiz {4} in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_ROUND</a> - <code>{1}: {3} to your video message in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_STICKER</a> - <code>{1}: {3} to your {4} sticker in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_TEXT</a> - <code>{1}: {3} in {2} to your "{4}"</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REACT_VIDEO</a> - <code>{1}: {3} to your video in {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_AUDIO</a> - <code>{1}: {2} to your voice message</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_CONTACT</a> - <code>{1}: {2} to your contact {3}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_DOC</a> - <code>{1}: {2} to your file</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_GAME</a> - <code>{1}: {2} to your game</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_GEO</a> - <code>{1}: {2} to your map</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_GEOLIVE</a> - <code>{1}: {2} to your live location</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_GIF</a> - <code>{1}: {2} to your GIF</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_INVOICE</a> - <code>{1}: {2} to your invoice</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_NOTEXT</a> - <code>{1}: {2} to your message</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_PHOTO</a> - <code>{1}: {2} to your photo</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_POLL</a> - <code>{1}: {2} to your poll {3}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_QUIZ</a> - <code>{1}: {2} to your quiz {3}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_ROUND</a> - <code>{1}: {2} to your video message</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_STICKER</a> - <code>{1}: {2} to your {3} sticker</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_TEXT</a> - <code>{1}: {2} to your "{3}"</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">REACT_VIDEO</a> - <code>{1}: {2} to your video</code></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/chatFull">chatFull</a>#d18ee226 flags:<a href="/type/%23">#</a> can_set_username:flags.7?<a href="/constructor/true">true</a> has_scheduled:flags.8?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:<a href="/type/string">string</a> participants:<a href="/type/ChatParticipants">ChatParticipants</a> chat_photo:flags.2?<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> exported_invite:flags.13?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> bot_info:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotInfo">BotInfo</a>&gt; pinned_msg_id:flags.6?<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> call:flags.12?<a href="/type/InputGroupCall">InputGroupCall</a> ttl_period:flags.14?<a href="/type/int">int</a> groupcall_default_join_as:flags.15?<a href="/type/Peer">Peer</a> theme_emoticon:flags.16?<a href="/type/string">string</a> requests_pending:flags.17?<a href="/type/int">int</a> recent_requesters:flags.17?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; available_reactions:flags.18?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/message">message</a>#38116ee0 flags:<a href="/type/%23">#</a> out:flags.1?<a href="/constructor/true">true</a> mentioned:flags.4?<a href="/constructor/true">true</a> media_unread:flags.5?<a href="/constructor/true">true</a> silent:flags.13?<a href="/constructor/true">true</a> post:flags.14?<a href="/constructor/true">true</a> from_scheduled:flags.18?<a href="/constructor/true">true</a> legacy:flags.19?<a href="/constructor/true">true</a> edit_hide:flags.21?<a href="/constructor/true">true</a> pinned:flags.24?<a href="/constructor/true">true</a> noforwards:flags.26?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> from_id:flags.8?<a href="/type/Peer">Peer</a> peer_id:<a href="/type/Peer">Peer</a> fwd_from:flags.2?<a href="/type/MessageFwdHeader">MessageFwdHeader</a> via_bot_id:flags.11?<a href="/type/long">long</a> reply_to:flags.3?<a href="/type/MessageReplyHeader">MessageReplyHeader</a> date:<a href="/type/int">int</a> message:<a href="/type/string">string</a> media:flags.9?<a href="/type/MessageMedia">MessageMedia</a> reply_markup:flags.6?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.7?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; views:flags.10?<a href="/type/int">int</a> forwards:flags.10?<a href="/type/int">int</a> replies:flags.23?<a href="/type/MessageReplies">MessageReplies</a> edit_date:flags.15?<a href="/type/int">int</a> post_author:flags.16?<a href="/type/string">string</a> grouped_id:flags.17?<a href="/type/long">long</a> reactions:flags.20?<a href="/type/MessageReactions">MessageReactions</a> restriction_reason:flags.22?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RestrictionReason">RestrictionReason</a>&gt; ttl_period:flags.25?<a href="/type/int">int</a> = <a href="/type/Message">Message</a>;<br>
<a href="/constructor/channelFull">channelFull</a>#e13c3d20 flags:<a href="/type/%23">#</a> can_view_participants:flags.3?<a href="/constructor/true">true</a> can_set_username:flags.6?<a href="/constructor/true">true</a> can_set_stickers:flags.7?<a href="/constructor/true">true</a> hidden_prehistory:flags.10?<a href="/constructor/true">true</a> can_set_location:flags.16?<a href="/constructor/true">true</a> has_scheduled:flags.19?<a href="/constructor/true">true</a> can_view_stats:flags.20?<a href="/constructor/true">true</a> blocked:flags.22?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:<a href="/type/string">string</a> participants_count:flags.0?<a href="/type/int">int</a> admins_count:flags.1?<a href="/type/int">int</a> kicked_count:flags.2?<a href="/type/int">int</a> banned_count:flags.2?<a href="/type/int">int</a> online_count:flags.13?<a href="/type/int">int</a> read_inbox_max_id:<a href="/type/int">int</a> read_outbox_max_id:<a href="/type/int">int</a> unread_count:<a href="/type/int">int</a> chat_photo:<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> exported_invite:flags.23?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> bot_info:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotInfo">BotInfo</a>&gt; migrated_from_chat_id:flags.4?<a href="/type/long">long</a> migrated_from_max_id:flags.4?<a href="/type/int">int</a> pinned_msg_id:flags.5?<a href="/type/int">int</a> stickerset:flags.8?<a href="/type/StickerSet">StickerSet</a> available_min_id:flags.9?<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> linked_chat_id:flags.14?<a href="/type/long">long</a> location:flags.15?<a href="/type/ChannelLocation">ChannelLocation</a> slowmode_seconds:flags.17?<a href="/type/int">int</a> slowmode_next_send_date:flags.18?<a href="/type/int">int</a> stats_dc:flags.12?<a href="/type/int">int</a> pts:<a href="/type/int">int</a> call:flags.21?<a href="/type/InputGroupCall">InputGroupCall</a> ttl_period:flags.24?<a href="/type/int">int</a> pending_suggestions:flags.25?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; groupcall_default_join_as:flags.26?<a href="/type/Peer">Peer</a> theme_emoticon:flags.27?<a href="/type/string">string</a> requests_pending:flags.28?<a href="/type/int">int</a> recent_requesters:flags.28?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; default_send_as:flags.29?<a href="/type/Peer">Peer</a> available_reactions:flags.30?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/sponsoredMessage">sponsoredMessage</a>#3a836df8 flags:<a href="/type/%23">#</a> random_id:<a href="/type/bytes">bytes</a> from_id:flags.3?<a href="/type/Peer">Peer</a> chat_invite:flags.4?<a href="/type/ChatInvite">ChatInvite</a> chat_invite_hash:flags.4?<a href="/type/string">string</a> channel_post:flags.2?<a href="/type/int">int</a> start_param:flags.0?<a href="/type/string">string</a> message:<a href="/type/string">string</a> entities:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; = <a href="/type/SponsoredMessage">SponsoredMessage</a>;<br>
<a href="/constructor/updateMessageReactions">updateMessageReactions</a>#154798c3 peer:<a href="/type/Peer">Peer</a> msg_id:<a href="/type/int">int</a> reactions:<a href="/type/MessageReactions">MessageReactions</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/reactionCount">reactionCount</a>#6fb250d1 flags:<a href="/type/%23">#</a> chosen:flags.0?<a href="/constructor/true">true</a> reaction:<a href="/type/string">string</a> count:<a href="/type/int">int</a> = <a href="/type/ReactionCount">ReactionCount</a>;<br>
<a href="/constructor/messageReactions">messageReactions</a>#087b6e36 flags:<a href="/type/%23">#</a> min:flags.0?<a href="/constructor/true">true</a> can_see_list:flags.2?<a href="/constructor/true">true</a> results:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/ReactionCount">ReactionCount</a>&gt; recent_reactons:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageUserReaction">MessageUserReaction</a>&gt; = <a href="/type/MessageReactions">MessageReactions</a>;
<a href="/constructor/messageUserReaction">messageUserReaction</a>#932844fa user_id:<a href="/type/long">long</a> reaction:<a href="/type/string">string</a> = <a href="/type/MessageUserReaction">MessageUserReaction</a>;
<a href="/constructor/messages.messageReactionsList">messages.messageReactionsList</a>#a366923c flags:<a href="/type/%23">#</a> count:<a href="/type/int">int</a> reactions:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageUserReaction">MessageUserReaction</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; next_offset:flags.0?<a href="/type/string">string</a> = <a href="/type/messages.MessageReactionsList">messages.MessageReactionsList</a>;<br>
<a href="/constructor/availableReaction">availableReaction</a>#021d7c4b flags:<a href="/type/%23">#</a> inactive:flags.0?<a href="/constructor/true">true</a> reaction:<a href="/type/string">string</a> title:<a href="/type/string">string</a> static_icon:<a href="/type/Document">Document</a> appear_animation:<a href="/type/Document">Document</a> select_animation:<a href="/type/Document">Document</a> activate_animation:<a href="/type/Document">Document</a> effect_animation:<a href="/type/Document">Document</a> = <a href="/type/AvailableReaction">AvailableReaction</a>;<br>
<a href="/constructor/messages.availableReactionsNotModified">messages.availableReactionsNotModified</a>#9f071957 = <a href="/type/messages.AvailableReactions">messages.AvailableReactions</a>;
<a href="/constructor/messages.availableReactions">messages.availableReactions</a>#768e3aad hash:<a href="/type/int">int</a> reactions:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/AvailableReaction">AvailableReaction</a>&gt; = <a href="/type/messages.AvailableReactions">messages.AvailableReactions</a>;
<a href="/constructor/messageEntitySpoiler">messageEntitySpoiler</a>#32ca960f offset:<a href="/type/int">int</a> length:<a href="/type/int">int</a> = <a href="/type/MessageEntity">MessageEntity</a>;<br>
<a href="/constructor/channelAdminLogEventActionChangeAvailableReactions">channelAdminLogEventActionChangeAvailableReactions</a>#9cf7f76a prev_value:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; new_value:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;<br>
---functions---<br>
<a href="/method/messages.sendReaction">messages.sendReaction</a>#25690ce4 flags:<a href="/type/%23">#</a> big:flags.1?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> reaction:flags.0?<a href="/type/string">string</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.getMessagesReactions">messages.getMessagesReactions</a>#8bba90e6 peer:<a href="/type/InputPeer">InputPeer</a> id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.getMessageReactionsList">messages.getMessageReactionsList</a>#e0ee6b77 flags:<a href="/type/%23">#</a> peer:<a href="/type/InputPeer">InputPeer</a> id:<a href="/type/int">int</a> reaction:flags.0?<a href="/type/string">string</a> offset:flags.1?<a href="/type/string">string</a> limit:<a href="/type/int">int</a> = <a href="/type/messages.MessageReactionsList">messages.MessageReactionsList</a>;
<a href="/method/messages.setChatAvailableReactions">messages.setChatAvailableReactions</a>#14050ea6 peer:<a href="/type/InputPeer">InputPeer</a> available_reactions:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.getAvailableReactions">messages.getAvailableReactions</a>#18dea0ac hash:<a href="/type/int">int</a> = <a href="/type/messages.AvailableReactions">messages.AvailableReactions</a>;
<a href="/method/messages.setDefaultReaction">messages.setDefaultReaction</a>#d960c4d4 reaction:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-135" id="layer-135" name="layer-135"><i class="anchor-icon"></i></a><a href="/schema?layer=135">Layer 135</a></h3>
<p><a href="https://telegram.org/blog/protected-content-delete-by-date-and-more#anonymous-posting-in-public-groups">Anonymous posting in public groups</a>, <a href="https://telegram.org/blog/protected-content-delete-by-date-and-more#protected-content-in-groups-and-channels">protected content</a>, <a href="https://telegram.org/blog/protected-content-delete-by-date-and-more#manage-connected-devices">device management</a>, <a href="https://telegram.org/blog/protected-content-delete-by-date-and-more#new-ways-to-log-in-via-call">login via missed call</a>, <a href="/constructor/inputKeyboardButtonUserProfile">mention users in inline buttons even if they don't have a username</a>, <a href="/api/auth#logout-tokens">logout tokens</a>, improvements to join requests and stickers.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/messages.hideAllChatJoinRequests">messages.hideAllChatJoinRequests</a> - Dismiss or approve all <a href="/api/invites#join-requests">join requests</a> related to a specific chat or channel.</li>
<li>Added <a href="/method/messages.toggleNoForwards">messages.toggleNoForwards</a> - Enable or disable <a href="https://telegram.org/blog/protected-content-delete-by-date-and-more">content protection</a> on a channel or chat</li>
<li>Added <a href="/method/messages.saveDefaultSendAs">messages.saveDefaultSendAs</a> - Change the default peer that should be used when sending messages to a specific group</li>
<li>Added <a href="/method/channels.getSendAs">channels.getSendAs</a> - Obtains a list of peers that can be used to send messages in a specific group</li>
<li>Added <a href="/method/account.setAuthorizationTTL">account.setAuthorizationTTL</a> - Set time-to-live of current session</li>
<li>Added <a href="/method/account.changeAuthorizationSettings">account.changeAuthorizationSettings</a> - Change authorization settings</li>
<li>Added <a href="/method/channels.deleteParticipantHistory">channels.deleteParticipantHistory</a> - Delete all messages sent by a specific participant of a given supergroup</li>
</ul>
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Changed type of <a href="/method/auth.logOut">auth.logOut</a> from <strong>Bool</strong> to <strong>auth.LoggedOut</strong></li>
<li>Changed type of <a href="/method/users.getFullUser">users.getFullUser</a> from <strong>UserFull</strong> to <strong>users.UserFull</strong></li>
<li>Added <strong>noforwards</strong>, <strong>send_as</strong> parameters in <a href="/method/messages.sendMessage">messages.sendMessage</a></li>
<li>Added <strong>noforwards</strong>, <strong>send_as</strong> parameters in <a href="/method/messages.sendMedia">messages.sendMedia</a></li>
<li>Added <strong>noforwards</strong>, <strong>send_as</strong> parameters in <a href="/method/messages.forwardMessages">messages.forwardMessages</a></li>
<li>Changed type of <a href="/method/messages.getPeerSettings">messages.getPeerSettings</a> from <strong>PeerSettings</strong> to <strong>messages.PeerSettings</strong></li>
<li>Added <strong>hash</strong> parameter in <a href="/method/messages.getStickerSet">messages.getStickerSet</a></li>
<li>Added <strong>participant</strong> parameter, removed <strong>user_id</strong> parameter in <a href="/method/channels.reportSpam">channels.reportSpam</a></li>
<li>Added <strong>send_as</strong> parameter in <a href="/method/messages.sendInlineBotResult">messages.sendInlineBotResult</a></li>
<li>Added <strong>noforwards</strong>, <strong>send_as</strong> parameters in <a href="/method/messages.sendMultiMedia">messages.sendMultiMedia</a></li>
</ul>
<h5><a class="anchor" href="#deleted-methods" id="deleted-methods" name="deleted-methods"><i class="anchor-icon"></i></a>Deleted Methods</h5>
<ul>
<li>Removed channels.deleteUserHistory</li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/inputKeyboardButtonUserProfile">inputKeyboardButtonUserProfile</a> - Button that links directly to a user profile</li>
<li>Added <a href="/constructor/keyboardButtonUserProfile">keyboardButtonUserProfile</a> - Button that links directly to a user profile</li>
<li>Added <a href="/constructor/channels.sendAsPeers">channels.sendAsPeers</a> - A list of peers that can be used to send messages in a specific group</li>
<li>Added <a href="/constructor/channelAdminLogEventActionToggleNoForwards">channelAdminLogEventActionToggleNoForwards</a> - Forwards were enabled or disabled</li>
<li>Added <a href="/constructor/messages.stickerSetNotModified">messages.stickerSetNotModified</a> - The stickerset hasn't changed</li>
<li>Added <a href="/constructor/users.userFull">users.userFull</a> - Full user information</li>
<li>Added <a href="/constructor/messages.peerSettings">messages.peerSettings</a> - Peer settings</li>
<li>Added <a href="/constructor/channelAdminLogEventActionSendMessage">channelAdminLogEventActionSendMessage</a> - A message was posted in a channel</li>
<li>Added <a href="/constructor/auth.codeTypeMissedCall">auth.codeTypeMissedCall</a> - The next time, the authentication code will be delivered via an immediately canceled incoming call, handled manually by the user.</li>
<li>Added <a href="/constructor/auth.sentCodeTypeMissedCall">auth.sentCodeTypeMissedCall</a> - The code will be sent via a flash phone call, that will be closed immediately. The last digits of the phone number that calls are the code that must be entered manually by the user.</li>
<li>Added <a href="/constructor/auth.loggedOut">auth.loggedOut</a> - <a href="/api/auth#logout-tokens">Logout token »</a> to be used on subsequent authorizations</li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>noforwards</strong> parameter in <a href="/constructor/chat">chat</a></li>
<li>Added <strong>noforwards</strong> parameter in <a href="/constructor/message">message</a></li>
<li>Added <strong>setup_password_required</strong>, <strong>otherwise_relogin_days</strong> parameters in <a href="/constructor/auth.authorization">auth.authorization</a></li>
<li>Added <strong>request_chat_broadcast</strong>, <strong>request_chat_title</strong>, <strong>request_chat_date</strong> parameters in <a href="/constructor/peerSettings">peerSettings</a></li>
<li>Added <strong>id</strong>, <strong>private_forward_name</strong> parameters, removed <strong>user</strong> parameter in <a href="/constructor/userFull">userFull</a></li>
<li>Added <strong>encrypted_requests_disabled</strong>, <strong>call_requests_disabled</strong> parameters in <a href="/constructor/authorization">authorization</a></li>
<li>Added <strong>authorization_ttl_days</strong> parameter in <a href="/constructor/account.authorizations">account.authorizations</a></li>
<li>Added <strong>noforwards</strong> parameter in <a href="/constructor/channel">channel</a></li>
<li>Added <strong>default_send_as</strong> parameter in <a href="/constructor/channelFull">channelFull</a></li>
<li>Added <strong>allow_missed_call</strong>, <strong>logout_tokens</strong> parameters in <a href="/constructor/codeSettings">codeSettings</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/chat">chat</a>#41cbf256 flags:<a href="/type/%23">#</a> creator:flags.0?<a href="/constructor/true">true</a> kicked:flags.1?<a href="/constructor/true">true</a> left:flags.2?<a href="/constructor/true">true</a> deactivated:flags.5?<a href="/constructor/true">true</a> call_active:flags.23?<a href="/constructor/true">true</a> call_not_empty:flags.24?<a href="/constructor/true">true</a> noforwards:flags.25?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> title:<a href="/type/string">string</a> photo:<a href="/type/ChatPhoto">ChatPhoto</a> participants_count:<a href="/type/int">int</a> date:<a href="/type/int">int</a> version:<a href="/type/int">int</a> migrated_to:flags.6?<a href="/type/InputChannel">InputChannel</a> admin_rights:flags.14?<a href="/type/ChatAdminRights">ChatAdminRights</a> default_banned_rights:flags.18?<a href="/type/ChatBannedRights">ChatBannedRights</a> = <a href="/type/Chat">Chat</a>;<br>
<a href="/constructor/message">message</a>#85d6cbe2 flags:<a href="/type/%23">#</a> out:flags.1?<a href="/constructor/true">true</a> mentioned:flags.4?<a href="/constructor/true">true</a> media_unread:flags.5?<a href="/constructor/true">true</a> silent:flags.13?<a href="/constructor/true">true</a> post:flags.14?<a href="/constructor/true">true</a> from_scheduled:flags.18?<a href="/constructor/true">true</a> legacy:flags.19?<a href="/constructor/true">true</a> edit_hide:flags.21?<a href="/constructor/true">true</a> pinned:flags.24?<a href="/constructor/true">true</a> noforwards:flags.26?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> from_id:flags.8?<a href="/type/Peer">Peer</a> peer_id:<a href="/type/Peer">Peer</a> fwd_from:flags.2?<a href="/type/MessageFwdHeader">MessageFwdHeader</a> via_bot_id:flags.11?<a href="/type/long">long</a> reply_to:flags.3?<a href="/type/MessageReplyHeader">MessageReplyHeader</a> date:<a href="/type/int">int</a> message:<a href="/type/string">string</a> media:flags.9?<a href="/type/MessageMedia">MessageMedia</a> reply_markup:flags.6?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.7?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; views:flags.10?<a href="/type/int">int</a> forwards:flags.10?<a href="/type/int">int</a> replies:flags.23?<a href="/type/MessageReplies">MessageReplies</a> edit_date:flags.15?<a href="/type/int">int</a> post_author:flags.16?<a href="/type/string">string</a> grouped_id:flags.17?<a href="/type/long">long</a> restriction_reason:flags.22?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RestrictionReason">RestrictionReason</a>&gt; ttl_period:flags.25?<a href="/type/int">int</a> = <a href="/type/Message">Message</a>;<br>
<a href="/constructor/auth.authorization">auth.authorization</a>#33fb7bb8 flags:<a href="/type/%23">#</a> setup_password_required:flags.1?<a href="/constructor/true">true</a> otherwise_relogin_days:flags.1?<a href="/type/int">int</a> tmp_sessions:flags.0?<a href="/type/int">int</a> user:<a href="/type/User">User</a> = <a href="/type/auth.Authorization">auth.Authorization</a>;<br>
<a href="/constructor/peerSettings">peerSettings</a>#a518110d flags:<a href="/type/%23">#</a> report_spam:flags.0?<a href="/constructor/true">true</a> add_contact:flags.1?<a href="/constructor/true">true</a> block_contact:flags.2?<a href="/constructor/true">true</a> share_contact:flags.3?<a href="/constructor/true">true</a> need_contacts_exception:flags.4?<a href="/constructor/true">true</a> report_geo:flags.5?<a href="/constructor/true">true</a> autoarchived:flags.7?<a href="/constructor/true">true</a> invite_members:flags.8?<a href="/constructor/true">true</a> request_chat_broadcast:flags.10?<a href="/constructor/true">true</a> geo_distance:flags.6?<a href="/type/int">int</a> request_chat_title:flags.9?<a href="/type/string">string</a> request_chat_date:flags.9?<a href="/type/int">int</a> = <a href="/type/PeerSettings">PeerSettings</a>;<br>
<a href="/constructor/userFull">userFull</a>#cf366521 flags:<a href="/type/%23">#</a> blocked:flags.0?<a href="/constructor/true">true</a> phone_calls_available:flags.4?<a href="/constructor/true">true</a> phone_calls_private:flags.5?<a href="/constructor/true">true</a> can_pin_message:flags.7?<a href="/constructor/true">true</a> has_scheduled:flags.12?<a href="/constructor/true">true</a> video_calls_available:flags.13?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:flags.1?<a href="/type/string">string</a> settings:<a href="/type/PeerSettings">PeerSettings</a> profile_photo:flags.2?<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> bot_info:flags.3?<a href="/type/BotInfo">BotInfo</a> pinned_msg_id:flags.6?<a href="/type/int">int</a> common_chats_count:<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> ttl_period:flags.14?<a href="/type/int">int</a> theme_emoticon:flags.15?<a href="/type/string">string</a> private_forward_name:flags.16?<a href="/type/string">string</a> = <a href="/type/UserFull">UserFull</a>;<br>
<a href="/constructor/authorization">authorization</a>#ad01d61d flags:<a href="/type/%23">#</a> current:flags.0?<a href="/constructor/true">true</a> official_app:flags.1?<a href="/constructor/true">true</a> password_pending:flags.2?<a href="/constructor/true">true</a> encrypted_requests_disabled:flags.3?<a href="/constructor/true">true</a> call_requests_disabled:flags.4?<a href="/constructor/true">true</a> hash:<a href="/type/long">long</a> device_model:<a href="/type/string">string</a> platform:<a href="/type/string">string</a> system_version:<a href="/type/string">string</a> api_id:<a href="/type/int">int</a> app_name:<a href="/type/string">string</a> app_version:<a href="/type/string">string</a> date_created:<a href="/type/int">int</a> date_active:<a href="/type/int">int</a> ip:<a href="/type/string">string</a> country:<a href="/type/string">string</a> region:<a href="/type/string">string</a> = <a href="/type/Authorization">Authorization</a>;
<a href="/constructor/account.authorizations">account.authorizations</a>#4bff8ea0 authorization_ttl_days:<a href="/type/int">int</a> authorizations:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Authorization">Authorization</a>&gt; = <a href="/type/account.Authorizations">account.Authorizations</a>;<br>
<a href="/constructor/channel">channel</a>#8261ac61 flags:<a href="/type/%23">#</a> creator:flags.0?<a href="/constructor/true">true</a> left:flags.2?<a href="/constructor/true">true</a> broadcast:flags.5?<a href="/constructor/true">true</a> verified:flags.7?<a href="/constructor/true">true</a> megagroup:flags.8?<a href="/constructor/true">true</a> restricted:flags.9?<a href="/constructor/true">true</a> signatures:flags.11?<a href="/constructor/true">true</a> min:flags.12?<a href="/constructor/true">true</a> scam:flags.19?<a href="/constructor/true">true</a> has_link:flags.20?<a href="/constructor/true">true</a> has_geo:flags.21?<a href="/constructor/true">true</a> slowmode_enabled:flags.22?<a href="/constructor/true">true</a> call_active:flags.23?<a href="/constructor/true">true</a> call_not_empty:flags.24?<a href="/constructor/true">true</a> fake:flags.25?<a href="/constructor/true">true</a> gigagroup:flags.26?<a href="/constructor/true">true</a> noforwards:flags.27?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> access_hash:flags.13?<a href="/type/long">long</a> title:<a href="/type/string">string</a> username:flags.6?<a href="/type/string">string</a> photo:<a href="/type/ChatPhoto">ChatPhoto</a> date:<a href="/type/int">int</a> restriction_reason:flags.9?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/RestrictionReason">RestrictionReason</a>&gt; admin_rights:flags.14?<a href="/type/ChatAdminRights">ChatAdminRights</a> banned_rights:flags.15?<a href="/type/ChatBannedRights">ChatBannedRights</a> default_banned_rights:flags.18?<a href="/type/ChatBannedRights">ChatBannedRights</a> participants_count:flags.17?<a href="/type/int">int</a> = <a href="/type/Chat">Chat</a>;
<a href="/constructor/channelFull">channelFull</a>#56662e2e flags:<a href="/type/%23">#</a> can_view_participants:flags.3?<a href="/constructor/true">true</a> can_set_username:flags.6?<a href="/constructor/true">true</a> can_set_stickers:flags.7?<a href="/constructor/true">true</a> hidden_prehistory:flags.10?<a href="/constructor/true">true</a> can_set_location:flags.16?<a href="/constructor/true">true</a> has_scheduled:flags.19?<a href="/constructor/true">true</a> can_view_stats:flags.20?<a href="/constructor/true">true</a> blocked:flags.22?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:<a href="/type/string">string</a> participants_count:flags.0?<a href="/type/int">int</a> admins_count:flags.1?<a href="/type/int">int</a> kicked_count:flags.2?<a href="/type/int">int</a> banned_count:flags.2?<a href="/type/int">int</a> online_count:flags.13?<a href="/type/int">int</a> read_inbox_max_id:<a href="/type/int">int</a> read_outbox_max_id:<a href="/type/int">int</a> unread_count:<a href="/type/int">int</a> chat_photo:<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> exported_invite:flags.23?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> bot_info:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotInfo">BotInfo</a>&gt; migrated_from_chat_id:flags.4?<a href="/type/long">long</a> migrated_from_max_id:flags.4?<a href="/type/int">int</a> pinned_msg_id:flags.5?<a href="/type/int">int</a> stickerset:flags.8?<a href="/type/StickerSet">StickerSet</a> available_min_id:flags.9?<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> linked_chat_id:flags.14?<a href="/type/long">long</a> location:flags.15?<a href="/type/ChannelLocation">ChannelLocation</a> slowmode_seconds:flags.17?<a href="/type/int">int</a> slowmode_next_send_date:flags.18?<a href="/type/int">int</a> stats_dc:flags.12?<a href="/type/int">int</a> pts:<a href="/type/int">int</a> call:flags.21?<a href="/type/InputGroupCall">InputGroupCall</a> ttl_period:flags.24?<a href="/type/int">int</a> pending_suggestions:flags.25?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; groupcall_default_join_as:flags.26?<a href="/type/Peer">Peer</a> theme_emoticon:flags.27?<a href="/type/string">string</a> requests_pending:flags.28?<a href="/type/int">int</a> recent_requesters:flags.28?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; default_send_as:flags.29?<a href="/type/Peer">Peer</a> = <a href="/type/ChatFull">ChatFull</a>;
<a href="/constructor/codeSettings">codeSettings</a>#8a6469c2 flags:<a href="/type/%23">#</a> allow_flashcall:flags.0?<a href="/constructor/true">true</a> current_number:flags.1?<a href="/constructor/true">true</a> allow_app_hash:flags.4?<a href="/constructor/true">true</a> allow_missed_call:flags.5?<a href="/constructor/true">true</a> logout_tokens:flags.6?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/bytes">bytes</a>&gt; = <a href="/type/CodeSettings">CodeSettings</a>;<br>
<a href="/constructor/inputKeyboardButtonUserProfile">inputKeyboardButtonUserProfile</a>#e988037b text:<a href="/type/string">string</a> user_id:<a href="/type/InputUser">InputUser</a> = <a href="/type/KeyboardButton">KeyboardButton</a>;<br>
<a href="/constructor/keyboardButtonUserProfile">keyboardButtonUserProfile</a>#308660c1 text:<a href="/type/string">string</a> user_id:<a href="/type/long">long</a> = <a href="/type/KeyboardButton">KeyboardButton</a>;<br>
<a href="/constructor/channels.sendAsPeers">channels.sendAsPeers</a>#8356cda9 peers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Peer">Peer</a>&gt; chats:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Chat">Chat</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/channels.SendAsPeers">channels.SendAsPeers</a>;
<a href="/constructor/channelAdminLogEventActionToggleNoForwards">channelAdminLogEventActionToggleNoForwards</a>#cb2ac766 new_value:<a href="/type/Bool">Bool</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;<br>
<a href="/constructor/messages.stickerSetNotModified">messages.stickerSetNotModified</a>#d3f924eb = <a href="/type/messages.StickerSet">messages.StickerSet</a>;<br>
<a href="/constructor/users.userFull">users.userFull</a>#3b6d152e full_user:<a href="/type/UserFull">UserFull</a> chats:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Chat">Chat</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/users.UserFull">users.UserFull</a>;<br>
<a href="/constructor/messages.peerSettings">messages.peerSettings</a>#6880b94d settings:<a href="/type/PeerSettings">PeerSettings</a> chats:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Chat">Chat</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/messages.PeerSettings">messages.PeerSettings</a>;<br>
<a href="/constructor/channelAdminLogEventActionSendMessage">channelAdminLogEventActionSendMessage</a>#278f2868 message:<a href="/type/Message">Message</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;<br>
<a href="/constructor/auth.codeTypeMissedCall">auth.codeTypeMissedCall</a>#d61ad6ee = <a href="/type/auth.CodeType">auth.CodeType</a>;
<a href="/constructor/auth.sentCodeTypeMissedCall">auth.sentCodeTypeMissedCall</a>#82006484 prefix:<a href="/type/string">string</a> length:<a href="/type/int">int</a> = <a href="/type/auth.SentCodeType">auth.SentCodeType</a>;
<a href="/constructor/auth.loggedOut">auth.loggedOut</a>#c3a2835f flags:<a href="/type/%23">#</a> future_auth_token:flags.0?<a href="/type/bytes">bytes</a> = <a href="/type/auth.LoggedOut">auth.LoggedOut</a>;<br>
---functions---<br>
<a href="/method/auth.logOut">auth.logOut</a>#3e72ba19 = <a href="/type/auth.LoggedOut">auth.LoggedOut</a>;<br>
<a href="/method/users.getFullUser">users.getFullUser</a>#b60f5918 id:<a href="/type/InputUser">InputUser</a> = <a href="/type/users.UserFull">users.UserFull</a>;<br>
<a href="/method/messages.sendMessage">messages.sendMessage</a>#0d9d75a4 flags:<a href="/type/%23">#</a> no_webpage:flags.1?<a href="/constructor/true">true</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> clear_draft:flags.7?<a href="/constructor/true">true</a> noforwards:flags.14?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> reply_to_msg_id:flags.0?<a href="/type/int">int</a> message:<a href="/type/string">string</a> random_id:<a href="/type/long">long</a> reply_markup:flags.2?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.sendMedia">messages.sendMedia</a>#e25ff8e0 flags:<a href="/type/%23">#</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> clear_draft:flags.7?<a href="/constructor/true">true</a> noforwards:flags.14?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> reply_to_msg_id:flags.0?<a href="/type/int">int</a> media:<a href="/type/InputMedia">InputMedia</a> message:<a href="/type/string">string</a> random_id:<a href="/type/long">long</a> reply_markup:flags.2?<a href="/type/ReplyMarkup">ReplyMarkup</a> entities:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.forwardMessages">messages.forwardMessages</a>#cc30290b flags:<a href="/type/%23">#</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> with_my_score:flags.8?<a href="/constructor/true">true</a> drop_author:flags.11?<a href="/constructor/true">true</a> drop_media_captions:flags.12?<a href="/constructor/true">true</a> noforwards:flags.14?<a href="/constructor/true">true</a> from_peer:<a href="/type/InputPeer">InputPeer</a> id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; random_id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; to_peer:<a href="/type/InputPeer">InputPeer</a> schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.getPeerSettings">messages.getPeerSettings</a>#efd9a6a2 peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/messages.PeerSettings">messages.PeerSettings</a>;
<a href="/method/messages.getStickerSet">messages.getStickerSet</a>#c8a0ec74 stickerset:<a href="/type/InputStickerSet">InputStickerSet</a> hash:<a href="/type/int">int</a> = <a href="/type/messages.StickerSet">messages.StickerSet</a>;<br>
<a href="/method/channels.reportSpam">channels.reportSpam</a>#f44a8315 channel:<a href="/type/InputChannel">InputChannel</a> participant:<a href="/type/InputPeer">InputPeer</a> id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/messages.sendInlineBotResult">messages.sendInlineBotResult</a>#7aa11297 flags:<a href="/type/%23">#</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> clear_draft:flags.7?<a href="/constructor/true">true</a> hide_via:flags.11?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> reply_to_msg_id:flags.0?<a href="/type/int">int</a> random_id:<a href="/type/long">long</a> query_id:<a href="/type/long">long</a> id:<a href="/type/string">string</a> schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.sendMultiMedia">messages.sendMultiMedia</a>#f803138f flags:<a href="/type/%23">#</a> silent:flags.5?<a href="/constructor/true">true</a> background:flags.6?<a href="/constructor/true">true</a> clear_draft:flags.7?<a href="/constructor/true">true</a> noforwards:flags.14?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> reply_to_msg_id:flags.0?<a href="/type/int">int</a> multi_media:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputSingleMedia">InputSingleMedia</a>&gt; schedule_date:flags.10?<a href="/type/int">int</a> send_as:flags.13?<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.hideAllChatJoinRequests">messages.hideAllChatJoinRequests</a>#e085f4ea flags:<a href="/type/%23">#</a> approved:flags.0?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> link:flags.1?<a href="/type/string">string</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.toggleNoForwards">messages.toggleNoForwards</a>#b11eafa2 peer:<a href="/type/InputPeer">InputPeer</a> enabled:<a href="/type/Bool">Bool</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.saveDefaultSendAs">messages.saveDefaultSendAs</a>#ccfddf96 peer:<a href="/type/InputPeer">InputPeer</a> send_as:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/channels.getSendAs">channels.getSendAs</a>#0dc770ee peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/channels.SendAsPeers">channels.SendAsPeers</a>;<br>
<a href="/method/account.setAuthorizationTTL">account.setAuthorizationTTL</a>#bf899aa0 authorization_ttl_days:<a href="/type/int">int</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/account.changeAuthorizationSettings">account.changeAuthorizationSettings</a>#40f48462 flags:<a href="/type/%23">#</a> hash:<a href="/type/long">long</a> encrypted_requests_disabled:flags.0?<a href="/type/Bool">Bool</a> call_requests_disabled:flags.1?<a href="/type/Bool">Bool</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/channels.deleteParticipantHistory">channels.deleteParticipantHistory</a>#367544db channel:<a href="/type/InputChannel">InputChannel</a> participant:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/messages.AffectedHistory">messages.AffectedHistory</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-134" id="layer-134" name="layer-134"><i class="anchor-icon"></i></a><a href="/schema?layer=134">Layer 134</a></h3>
<p><a href="/api/invites#join-requests">Join requests</a>, <a href="https://telegram.org/blog/protected-content-delete-by-date-and-more#delete-messages-by-date">delete by date</a>, <a href="https://telegram.org/blog/shared-media-scrolling-calendar-join-requests-and-more#global-chat-themes-on-ios">global chat themes</a>, <a href="https://telegram.org/blog/shared-media-scrolling-calendar-join-requests-and-more">hyper-speed scrolling and calendar view for shared media</a>, sponsored channel posts.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/messages.getSearchResultsCalendar">messages.getSearchResultsCalendar</a> - Returns information about the next messages of the specified type in the chat split by days.</li>
<li>Added <a href="/method/messages.getSearchResultsPositions">messages.getSearchResultsPositions</a> - Returns sparse positions of messages of the specified type in the chat to be used for shared media scroll implementation.</li>
<li>Added <a href="/method/messages.hideChatJoinRequest">messages.hideChatJoinRequest</a> - Dismiss or approve a chat <a href="/api/invites#join-requests">join request</a> related to a specific chat or channel.</li>
</ul>
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Added <strong>min_date</strong>, <strong>max_date</strong> parameters in <a href="/method/messages.deleteHistory">messages.deleteHistory</a></li>
<li>Added <strong>request_needed</strong>, <strong>title</strong> parameters in <a href="/method/messages.exportChatInvite">messages.exportChatInvite</a></li>
<li>Changed type of <strong>settings</strong> from <strong>flags.3?InputThemeSettings</strong> to <strong>flags.3?Vector&lt;InputThemeSettings&gt;</strong> in <a href="/method/account.createTheme">account.createTheme</a></li>
<li>Changed type of <strong>settings</strong> from <strong>flags.3?InputThemeSettings</strong> to <strong>flags.3?Vector&lt;InputThemeSettings&gt;</strong> in <a href="/method/account.updateTheme">account.updateTheme</a></li>
<li>Added <strong>base_theme</strong> parameter, changed type of <strong>format</strong> from <strong>flags.1?string</strong> to <strong>flags.2?string</strong> in <a href="/method/account.installTheme">account.installTheme</a></li>
<li>Added <strong>request_needed</strong>, <strong>title</strong> parameters in <a href="/method/messages.editExportedChatInvite">messages.editExportedChatInvite</a></li>
<li>Added <strong>flags</strong>, <strong>requested</strong>, <strong>q</strong> parameters, changed type of <strong>link</strong> from <strong>string</strong> to <strong>flags.1?string</strong> in <a href="/method/messages.getChatInviteImporters">messages.getChatInviteImporters</a></li>
<li>Changed type of <a href="/method/account.getChatThemes">account.getChatThemes</a> from <strong>account.ChatThemes</strong> to <strong>account.Themes</strong></li>
<li>Changed type of <strong>hash</strong> from <strong>int</strong> to <strong>long</strong> in <a href="/method/account.getChatThemes">account.getChatThemes</a></li>
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/searchResultsCalendarPeriod">searchResultsCalendarPeriod</a> - Information about found messages sent on a specific day, used to split the <code>messages</code> in <a href="/constructor/messages.searchResultsCalendar">messages.searchResultsCalendar</a> constructors by days.</li>
<li>Added <a href="/constructor/messages.searchResultsCalendar">messages.searchResultsCalendar</a> - Information about found messages sent on a specific day</li>
<li>Added <a href="/constructor/searchResultPosition">searchResultPosition</a> - Information about a message in a specific position</li>
<li>Added <a href="/constructor/messages.searchResultsPositions">messages.searchResultsPositions</a> - Information about sparse positions of messages</li>
<li>Added <a href="/constructor/messageActionChatJoinedByRequest">messageActionChatJoinedByRequest</a> - A user was accepted into the group by an admin</li>
<li>Added <a href="/constructor/updatePendingJoinRequests">updatePendingJoinRequests</a> - Someone has requested to join a chat or channel</li>
<li>Added <a href="/constructor/updateBotChatInviteRequester">updateBotChatInviteRequester</a> - Someone has requested to join a chat or channel (bots only, users will receive an <a href="/constructor/updatePendingJoinRequests">updatePendingJoinRequests</a>, instead)</li>
<li>Added <a href="/constructor/channelAdminLogEventActionParticipantJoinByRequest">channelAdminLogEventActionParticipantJoinByRequest</a> - A new member was accepted to the chat by an admin</li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
<ul>
<li>Added <strong>requests_pending</strong>, <strong>recent_requesters</strong> parameters in <a href="/constructor/chatFull">chatFull</a></li>
<li>Added <strong>request_needed</strong>, <strong>requested</strong>, <strong>title</strong> parameters in <a href="/constructor/chatInviteExported">chatInviteExported</a></li>
<li>Added <strong>request_needed</strong>, <strong>about</strong> parameters in <a href="/constructor/chatInvite">chatInvite</a></li>
<li>Added <strong>requests_pending</strong>, <strong>recent_requesters</strong> parameters in <a href="/constructor/channelFull">channelFull</a></li>
<li>Added <strong>flags</strong>, <strong>via_request</strong> parameters in <a href="/constructor/channelParticipantSelf">channelParticipantSelf</a></li>
<li>Added <strong>send</strong> parameter in <a href="/constructor/channelAdminLogEventsFilter">channelAdminLogEventsFilter</a></li>
<li>Added <strong>emoticon</strong> parameter, changed type of <strong>settings</strong> from <strong>flags.3?ThemeSettings</strong> to <strong>flags.3?Vector&lt;ThemeSettings&gt;</strong> in <a href="/constructor/theme">theme</a></li>
<li>Added <strong>flags</strong>, <strong>requested</strong>, <strong>about</strong>, <strong>approved_by</strong> parameters in <a href="/constructor/chatInviteImporter">chatInviteImporter</a></li>
<li>Added <strong>channel_post</strong> parameter in <a href="/constructor/sponsoredMessage">sponsoredMessage</a></li>
</ul>
<h5><a class="anchor" href="#deleted-constructors" id="deleted-constructors" name="deleted-constructors"><i class="anchor-icon"></i></a>Deleted Constructors</h5>
<ul>
<li>Removed chatTheme</li>
<li>Removed account.chatThemesNotModified</li>
<li>Removed account.chatThemes</li>
</ul>
<h4><a class="anchor" href="#push-notification-changes" id="push-notification-changes" name="push-notification-changes"><i class="anchor-icon"></i></a>PUSH notification changes</h4>
<h5><a class="anchor" href="#new-push-notifications" id="new-push-notifications" name="new-push-notifications"><i class="anchor-icon"></i></a>New PUSH notifications</h5>
<ul>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_REQ_JOINED</a> - <code>{2}|{1} was accepted into the group</code></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<div><pre><code><a href="/constructor/chatFull">chatFull</a>#46a6ffb4 flags:<a href="/type/%23">#</a> can_set_username:flags.7?<a href="/constructor/true">true</a> has_scheduled:flags.8?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:<a href="/type/string">string</a> participants:<a href="/type/ChatParticipants">ChatParticipants</a> chat_photo:flags.2?<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> exported_invite:flags.13?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> bot_info:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotInfo">BotInfo</a>&gt; pinned_msg_id:flags.6?<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> call:flags.12?<a href="/type/InputGroupCall">InputGroupCall</a> ttl_period:flags.14?<a href="/type/int">int</a> groupcall_default_join_as:flags.15?<a href="/type/Peer">Peer</a> theme_emoticon:flags.16?<a href="/type/string">string</a> requests_pending:flags.17?<a href="/type/int">int</a> recent_requesters:flags.17?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; = <a href="/type/ChatFull">ChatFull</a>;
<a href="/constructor/chatInviteExported">chatInviteExported</a>#0ab4a819 flags:<a href="/type/%23">#</a> revoked:flags.0?<a href="/constructor/true">true</a> permanent:flags.5?<a href="/constructor/true">true</a> request_needed:flags.6?<a href="/constructor/true">true</a> link:<a href="/type/string">string</a> admin_id:<a href="/type/long">long</a> date:<a href="/type/int">int</a> start_date:flags.4?<a href="/type/int">int</a> expire_date:flags.1?<a href="/type/int">int</a> usage_limit:flags.2?<a href="/type/int">int</a> usage:flags.3?<a href="/type/int">int</a> requested:flags.7?<a href="/type/int">int</a> title:flags.8?<a href="/type/string">string</a> = <a href="/type/ExportedChatInvite">ExportedChatInvite</a>;
<a href="/constructor/chatInvite">chatInvite</a>#300c44c1 flags:<a href="/type/%23">#</a> channel:flags.0?<a href="/constructor/true">true</a> broadcast:flags.1?<a href="/constructor/true">true</a> public:flags.2?<a href="/constructor/true">true</a> megagroup:flags.3?<a href="/constructor/true">true</a> request_needed:flags.6?<a href="/constructor/true">true</a> title:<a href="/type/string">string</a> about:flags.5?<a href="/type/string">string</a> photo:<a href="/type/Photo">Photo</a> participants_count:<a href="/type/int">int</a> participants:flags.4?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/ChatInvite">ChatInvite</a>;
<a href="/constructor/channelFull">channelFull</a>#59cff963 flags:<a href="/type/%23">#</a> can_view_participants:flags.3?<a href="/constructor/true">true</a> can_set_username:flags.6?<a href="/constructor/true">true</a> can_set_stickers:flags.7?<a href="/constructor/true">true</a> hidden_prehistory:flags.10?<a href="/constructor/true">true</a> can_set_location:flags.16?<a href="/constructor/true">true</a> has_scheduled:flags.19?<a href="/constructor/true">true</a> can_view_stats:flags.20?<a href="/constructor/true">true</a> blocked:flags.22?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> about:<a href="/type/string">string</a> participants_count:flags.0?<a href="/type/int">int</a> admins_count:flags.1?<a href="/type/int">int</a> kicked_count:flags.2?<a href="/type/int">int</a> banned_count:flags.2?<a href="/type/int">int</a> online_count:flags.13?<a href="/type/int">int</a> read_inbox_max_id:<a href="/type/int">int</a> read_outbox_max_id:<a href="/type/int">int</a> unread_count:<a href="/type/int">int</a> chat_photo:<a href="/type/Photo">Photo</a> notify_settings:<a href="/type/PeerNotifySettings">PeerNotifySettings</a> exported_invite:flags.23?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> bot_info:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotInfo">BotInfo</a>&gt; migrated_from_chat_id:flags.4?<a href="/type/long">long</a> migrated_from_max_id:flags.4?<a href="/type/int">int</a> pinned_msg_id:flags.5?<a href="/type/int">int</a> stickerset:flags.8?<a href="/type/StickerSet">StickerSet</a> available_min_id:flags.9?<a href="/type/int">int</a> folder_id:flags.11?<a href="/type/int">int</a> linked_chat_id:flags.14?<a href="/type/long">long</a> location:flags.15?<a href="/type/ChannelLocation">ChannelLocation</a> slowmode_seconds:flags.17?<a href="/type/int">int</a> slowmode_next_send_date:flags.18?<a href="/type/int">int</a> stats_dc:flags.12?<a href="/type/int">int</a> pts:<a href="/type/int">int</a> call:flags.21?<a href="/type/InputGroupCall">InputGroupCall</a> ttl_period:flags.24?<a href="/type/int">int</a> pending_suggestions:flags.25?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; groupcall_default_join_as:flags.26?<a href="/type/Peer">Peer</a> theme_emoticon:flags.27?<a href="/type/string">string</a> requests_pending:flags.28?<a href="/type/int">int</a> recent_requesters:flags.28?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; = <a href="/type/ChatFull">ChatFull</a>;
<a href="/constructor/channelParticipantSelf">channelParticipantSelf</a>#35a8bfa7 flags:<a href="/type/%23">#</a> via_request:flags.0?<a href="/constructor/true">true</a> user_id:<a href="/type/long">long</a> inviter_id:<a href="/type/long">long</a> date:<a href="/type/int">int</a> = <a href="/type/ChannelParticipant">ChannelParticipant</a>;
<a href="/constructor/channelAdminLogEventsFilter">channelAdminLogEventsFilter</a>#ea107ae4 flags:<a href="/type/%23">#</a> join:flags.0?<a href="/constructor/true">true</a> leave:flags.1?<a href="/constructor/true">true</a> invite:flags.2?<a href="/constructor/true">true</a> ban:flags.3?<a href="/constructor/true">true</a> unban:flags.4?<a href="/constructor/true">true</a> kick:flags.5?<a href="/constructor/true">true</a> unkick:flags.6?<a href="/constructor/true">true</a> promote:flags.7?<a href="/constructor/true">true</a> demote:flags.8?<a href="/constructor/true">true</a> info:flags.9?<a href="/constructor/true">true</a> settings:flags.10?<a href="/constructor/true">true</a> pinned:flags.11?<a href="/constructor/true">true</a> edit:flags.12?<a href="/constructor/true">true</a> delete:flags.13?<a href="/constructor/true">true</a> group_call:flags.14?<a href="/constructor/true">true</a> invites:flags.15?<a href="/constructor/true">true</a> send:flags.16?<a href="/constructor/true">true</a> = <a href="/type/ChannelAdminLogEventsFilter">ChannelAdminLogEventsFilter</a>;<br>
<a href="/constructor/theme">theme</a>#a00e67d6 flags:<a href="/type/%23">#</a> creator:flags.0?<a href="/constructor/true">true</a> default:flags.1?<a href="/constructor/true">true</a> for_chat:flags.5?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> slug:<a href="/type/string">string</a> title:<a href="/type/string">string</a> document:flags.2?<a href="/type/Document">Document</a> settings:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/ThemeSettings">ThemeSettings</a>&gt; emoticon:flags.6?<a href="/type/string">string</a> installs_count:flags.4?<a href="/type/int">int</a> = <a href="/type/Theme">Theme</a>;<br>
<a href="/constructor/chatInviteImporter">chatInviteImporter</a>#8c5adfd9 flags:<a href="/type/%23">#</a> requested:flags.0?<a href="/constructor/true">true</a> user_id:<a href="/type/long">long</a> date:<a href="/type/int">int</a> about:flags.2?<a href="/type/string">string</a> approved_by:flags.1?<a href="/type/long">long</a> = <a href="/type/ChatInviteImporter">ChatInviteImporter</a>;<br>
<a href="/constructor/sponsoredMessage">sponsoredMessage</a>#d151e19a flags:<a href="/type/%23">#</a> random_id:<a href="/type/bytes">bytes</a> from_id:<a href="/type/Peer">Peer</a> channel_post:flags.2?<a href="/type/int">int</a> start_param:flags.0?<a href="/type/string">string</a> message:<a href="/type/string">string</a> entities:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; = <a href="/type/SponsoredMessage">SponsoredMessage</a>;
<a href="/constructor/searchResultsCalendarPeriod">searchResultsCalendarPeriod</a>#c9b0539f date:<a href="/type/int">int</a> min_msg_id:<a href="/type/int">int</a> max_msg_id:<a href="/type/int">int</a> count:<a href="/type/int">int</a> = <a href="/type/SearchResultsCalendarPeriod">SearchResultsCalendarPeriod</a>;<br>
<a href="/constructor/messages.searchResultsCalendar">messages.searchResultsCalendar</a>#147ee23c flags:<a href="/type/%23">#</a> inexact:flags.0?<a href="/constructor/true">true</a> count:<a href="/type/int">int</a> min_date:<a href="/type/int">int</a> min_msg_id:<a href="/type/int">int</a> offset_id_offset:flags.1?<a href="/type/int">int</a> periods:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/SearchResultsCalendarPeriod">SearchResultsCalendarPeriod</a>&gt; messages:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Message">Message</a>&gt; chats:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Chat">Chat</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/messages.SearchResultsCalendar">messages.SearchResultsCalendar</a>;<br>
<a href="/constructor/searchResultPosition">searchResultPosition</a>#7f648b67 msg_id:<a href="/type/int">int</a> date:<a href="/type/int">int</a> offset:<a href="/type/int">int</a> = <a href="/type/SearchResultsPosition">SearchResultsPosition</a>;<br>
<a href="/constructor/messages.searchResultsPositions">messages.searchResultsPositions</a>#53b22baf count:<a href="/type/int">int</a> positions:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/SearchResultsPosition">SearchResultsPosition</a>&gt; = <a href="/type/messages.SearchResultsPositions">messages.SearchResultsPositions</a>;
<a href="/constructor/messageActionChatJoinedByRequest">messageActionChatJoinedByRequest</a>#ebbca3cb = <a href="/type/MessageAction">MessageAction</a>;<br>
<a href="/constructor/updatePendingJoinRequests">updatePendingJoinRequests</a>#7063c3db peer:<a href="/type/Peer">Peer</a> requests_pending:<a href="/type/int">int</a> recent_requesters:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; = <a href="/type/Update">Update</a>;
<a href="/constructor/updateBotChatInviteRequester">updateBotChatInviteRequester</a>#11dfa986 peer:<a href="/type/Peer">Peer</a> date:<a href="/type/int">int</a> user_id:<a href="/type/long">long</a> about:<a href="/type/string">string</a> invite:<a href="/type/ExportedChatInvite">ExportedChatInvite</a> qts:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/channelAdminLogEventActionParticipantJoinByRequest">channelAdminLogEventActionParticipantJoinByRequest</a>#afb6144a invite:<a href="/type/ExportedChatInvite">ExportedChatInvite</a> approved_by:<a href="/type/long">long</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;<br>
---functions---<br>
<a href="/method/messages.deleteHistory">messages.deleteHistory</a>#b08f922a flags:<a href="/type/%23">#</a> just_clear:flags.0?<a href="/constructor/true">true</a> revoke:flags.1?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> max_id:<a href="/type/int">int</a> min_date:flags.2?<a href="/type/int">int</a> max_date:flags.3?<a href="/type/int">int</a> = <a href="/type/messages.AffectedHistory">messages.AffectedHistory</a>;
<a href="/method/messages.exportChatInvite">messages.exportChatInvite</a>#a02ce5d5 flags:<a href="/type/%23">#</a> legacy_revoke_permanent:flags.2?<a href="/constructor/true">true</a> request_needed:flags.3?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> expire_date:flags.0?<a href="/type/int">int</a> usage_limit:flags.1?<a href="/type/int">int</a> title:flags.4?<a href="/type/string">string</a> = <a href="/type/ExportedChatInvite">ExportedChatInvite</a>;<br>
<a href="/method/account.createTheme">account.createTheme</a>#652e4400 flags:<a href="/type/%23">#</a> slug:<a href="/type/string">string</a> title:<a href="/type/string">string</a> document:flags.2?<a href="/type/InputDocument">InputDocument</a> settings:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputThemeSettings">InputThemeSettings</a>&gt; = <a href="/type/Theme">Theme</a>;
<a href="/method/account.updateTheme">account.updateTheme</a>#2bf40ccc flags:<a href="/type/%23">#</a> format:<a href="/type/string">string</a> theme:<a href="/type/InputTheme">InputTheme</a> slug:flags.0?<a href="/type/string">string</a> title:flags.1?<a href="/type/string">string</a> document:flags.2?<a href="/type/InputDocument">InputDocument</a> settings:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputThemeSettings">InputThemeSettings</a>&gt; = <a href="/type/Theme">Theme</a>;
<a href="/method/account.installTheme">account.installTheme</a>#c727bb3b flags:<a href="/type/%23">#</a> dark:flags.0?<a href="/constructor/true">true</a> theme:flags.1?<a href="/type/InputTheme">InputTheme</a> format:flags.2?<a href="/type/string">string</a> base_theme:flags.3?<a href="/type/BaseTheme">BaseTheme</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/messages.editExportedChatInvite">messages.editExportedChatInvite</a>#bdca2f75 flags:<a href="/type/%23">#</a> revoked:flags.2?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> link:<a href="/type/string">string</a> expire_date:flags.0?<a href="/type/int">int</a> usage_limit:flags.1?<a href="/type/int">int</a> request_needed:flags.3?<a href="/type/Bool">Bool</a> title:flags.4?<a href="/type/string">string</a> = <a href="/type/messages.ExportedChatInvite">messages.ExportedChatInvite</a>;
<a href="/method/messages.getChatInviteImporters">messages.getChatInviteImporters</a>#df04dd4e flags:<a href="/type/%23">#</a> requested:flags.0?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> link:flags.1?<a href="/type/string">string</a> q:flags.2?<a href="/type/string">string</a> offset_date:<a href="/type/int">int</a> offset_user:<a href="/type/InputUser">InputUser</a> limit:<a href="/type/int">int</a> = <a href="/type/messages.ChatInviteImporters">messages.ChatInviteImporters</a>;<br>
<a href="/method/account.getChatThemes">account.getChatThemes</a>#d638de89 hash:<a href="/type/long">long</a> = <a href="/type/account.Themes">account.Themes</a>;<br>
<a href="/method/messages.getSearchResultsCalendar">messages.getSearchResultsCalendar</a>#49f0bde9 peer:<a href="/type/InputPeer">InputPeer</a> filter:<a href="/type/MessagesFilter">MessagesFilter</a> offset_id:<a href="/type/int">int</a> offset_date:<a href="/type/int">int</a> = <a href="/type/messages.SearchResultsCalendar">messages.SearchResultsCalendar</a>;
<a href="/method/messages.getSearchResultsPositions">messages.getSearchResultsPositions</a>#6e9583a3 peer:<a href="/type/InputPeer">InputPeer</a> filter:<a href="/type/MessagesFilter">MessagesFilter</a> offset_id:<a href="/type/int">int</a> limit:<a href="/type/int">int</a> = <a href="/type/messages.SearchResultsPositions">messages.SearchResultsPositions</a>;
<a href="/method/messages.hideChatJoinRequest">messages.hideChatJoinRequest</a>#7fe7e815 flags:<a href="/type/%23">#</a> approved:flags.0?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> user_id:<a href="/type/InputUser">InputUser</a> = <a href="/type/Updates">Updates</a>;<br></code></pre></div>
<h4><a class="anchor" href="#end-to-end-schema-changes" id="end-to-end-schema-changes" name="end-to-end-schema-changes"><i class="anchor-icon"></i></a>End-to-end schema changes</h4>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/messageEntityUnderline">messageEntityUnderline</a> - Message entity representing underlined text.</li>
<li>Added <a href="/constructor/messageEntityStrike">messageEntityStrike</a> - Message entity representing <del>strikethrough</del> text.</li>
<li>Added <a href="/constructor/messageEntityBlockquote">messageEntityBlockquote</a> - Message entity representing a block quote.</li>
</ul>
<h4><a class="anchor" href="#end-to-end-schema" id="end-to-end-schema" name="end-to-end-schema"><i class="anchor-icon"></i></a>End-to-end schema</h4>
<div><pre><code>===101===<br>
<a href="/constructor/messageEntityUnderline">messageEntityUnderline</a>#9c4e7e8b offset:<a href="/type/int">int</a> length:<a href="/type/int">int</a> = <a href="/type/MessageEntity">MessageEntity</a>;
<a href="/constructor/messageEntityStrike">messageEntityStrike</a>#bf0693d4 offset:<a href="/type/int">int</a> length:<a href="/type/int">int</a> = <a href="/type/MessageEntity">MessageEntity</a>;
<a href="/constructor/messageEntityBlockquote">messageEntityBlockquote</a>#020df5d0 offset:<a href="/type/int">int</a> length:<a href="/type/int">int</a> = <a href="/type/MessageEntity">MessageEntity</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-133" id="layer-133" name="layer-133"><i class="anchor-icon"></i></a><a href="/schema?layer=133">Layer 133</a></h3>
<p>Group message receipts, <a href="/api/animated-emojis#emoji-reactions">animated emoji reactions »</a> and switch to 64-bit identifiers for users, groups, supergroups and channels.</p>
<p>Over 160 constructors and methods were changed, changing parameter types from <a href="/type/int">int</a> to <a href="/type/long">long</a>, including <a href="/constructor/user">user</a>, <a href="/constructor/chat">chat</a> and <a href="/constructor/channel">channel</a>: the full changelog is elided for space reasons.<br>
You can visit <a href="/schema">the schema</a> for an updated list of constructors.</p>
<p>Also note that the <a href="/api/offsets#hash-generation">hashing algorithm for pagination</a> was also changed to account for 64-bit IDs.</p>
<p>All layers 1-132 are deprecated due to impossible backwards compatibility between 32-bit and 64-bit IDs.</p>
<h4><a class="anchor" href="#changes" id="changes" name="changes"><i class="anchor-icon"></i></a>Changes</h4>
<ul>
<li>Added <a href="/method/messages.getMessageReadParticipants">messages.getMessageReadParticipants</a> - Get which users read a specific message</li>
<li>Added <a href="/constructor/inputStickerSetAnimatedEmojiAnimations">inputStickerSetAnimatedEmojiAnimations</a> - Animated emoji reaction stickerset (contains animations to play when a user clicks on a given animated emoji)</li>
<li>Added <a href="/constructor/sendMessageEmojiInteraction">sendMessageEmojiInteraction</a> - User has clicked on an animated emoji triggering a <a href="/api/animated-emojis#emoji-reactions">reaction, click here for more info »</a>.</li>
<li>Added <a href="/constructor/sendMessageEmojiInteractionSeen">sendMessageEmojiInteractionSeen</a> - User is watching an animated emoji reaction triggered by another user, <a href="/api/animated-emojis#emoji-reactions">click here for more info »</a>.</li>
<li>Added <a href="/constructor/inputBotInlineMessageID64">inputBotInlineMessageID64</a> - Represents a sent inline message from the perspective of a bot</li>
</ul></div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/privacy">Privacy</a></li>
<li><a href="//telegram.org/press">Press</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/android">Android</a></li>
<li><a href="//telegram.org/dl/web">Mobile Web</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="/">Platform</a></h5>
<ul>
<li><a href="/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?47"></script>
<script src="/js/jquery.min.js?1"></script>
<script src="/js/bootstrap.min.js?1"></script>
<script>window.initDevPageNav&&initDevPageNav();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>