telegram-crawler/data/corefork.telegram.org/api/layers.html
2021-11-02 12:52:29 +00:00

2128 lines
376 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="Below you will find information on schema changes. For more details on the use of layers, see Invoking API methods.
Layer…">
<meta property="og:title" content="Layers">
<meta property="og:image" content="">
<meta property="og:description" content="Below you will find information on schema changes. For more details on the use of layers, see Invoking API methods.
Layer…">
<link rel="shortcut icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?214" 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-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>
<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>
<h3><a class="anchor" href="#layer-132" id="layer-132" name="layer-132"><i class="anchor-icon"></i></a><a href="/schema?layer=132">Layer 132</a></h3>
<p>Chat themes and sponsored messages, save video recordings of group calls and livestreams.</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.getChatThemes">account.getChatThemes</a> - Get all available chat themes</li>
<li>Added <a href="/method/messages.setChatTheme">messages.setChatTheme</a> - Change the chat theme of a certain chat</li>
<li>Added <a href="/method/channels.viewSponsoredMessage">channels.viewSponsoredMessage</a> - Mark a specific sponsored message as read</li>
<li>Added <a href="/method/channels.getSponsoredMessages">channels.getSponsoredMessages</a> - Get a list of sponsored messages</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>video</strong>, <strong>video_portrait</strong> parameters in <a href="/method/phone.toggleGroupCallRecord">phone.toggleGroupCallRecord</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/chatTheme">chatTheme</a> - A chat theme</li>
<li>Added <a href="/constructor/account.chatThemesNotModified">account.chatThemesNotModified</a> - The available chat themes were not modified</li>
<li>Added <a href="/constructor/account.chatThemes">account.chatThemes</a> - Available chat themes</li>
<li>Added <a href="/constructor/messageActionSetChatTheme">messageActionSetChatTheme</a> - The chat theme was changed</li>
<li>Added <a href="/constructor/sendMessageChooseStickerAction">sendMessageChooseStickerAction</a> - User is choosing a sticker</li>
<li>Added <a href="/constructor/sponsoredMessage">sponsoredMessage</a> - A sponsored message</li>
<li>Added <a href="/constructor/messages.sponsoredMessages">messages.sponsoredMessages</a> - A set of sponsored messages associated to a channel</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>theme_emoticon</strong> parameter in <a href="/constructor/chatFull">chatFull</a></li>
<li>Added <strong>theme_emoticon</strong> parameter in <a href="/constructor/userFull">userFull</a></li>
<li>Added <strong>theme_emoticon</strong> parameter in <a href="/constructor/channelFull">channelFull</a></li>
<li>Added <strong>for_chat</strong> parameter, changed type of <strong>installs_count</strong> from <strong>int</strong> to <strong>flags.4?int</strong> in <a href="/constructor/theme">theme</a></li>
<li>Added <strong>message_colors_animated</strong>, <strong>message_colors</strong> parameters, removed <strong>message_top_color</strong>, <strong>message_bottom_color</strong> parameters in <a href="/constructor/inputThemeSettings">inputThemeSettings</a></li>
<li>Added <strong>message_colors_animated</strong>, <strong>message_colors</strong> parameters, removed <strong>message_top_color</strong>, <strong>message_bottom_color</strong> parameters in <a href="/constructor/themeSettings">themeSettings</a></li>
<li>Added <strong>unread_count</strong> parameter in <a href="/constructor/messages.discussionMessage">messages.discussionMessage</a></li>
<li>Added <strong>flags</strong>, <strong>video_channel</strong>, <strong>video_quality</strong> parameters in <a href="/constructor/inputGroupCallStream">inputGroupCallStream</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>#49a0a5d9 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/int">int</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> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/userFull">userFull</a>#d697ff05 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> user:<a href="/type/User">User</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> = <a href="/type/UserFull">UserFull</a>;<br>
<a href="/constructor/channelFull">channelFull</a>#2f532f3c 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/int">int</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/int">int</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/int">int</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> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/theme">theme</a>#e802b8dc 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/ThemeSettings">ThemeSettings</a> installs_count:flags.4?<a href="/type/int">int</a> = <a href="/type/Theme">Theme</a>;<br>
<a href="/constructor/inputThemeSettings">inputThemeSettings</a>#ff38f912 flags:<a href="/type/%23">#</a> message_colors_animated:flags.2?<a href="/constructor/true">true</a> base_theme:<a href="/type/BaseTheme">BaseTheme</a> accent_color:<a href="/type/int">int</a> message_colors:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; wallpaper:flags.1?<a href="/type/InputWallPaper">InputWallPaper</a> wallpaper_settings:flags.1?<a href="/type/WallPaperSettings">WallPaperSettings</a> = <a href="/type/InputThemeSettings">InputThemeSettings</a>;<br>
<a href="/constructor/themeSettings">themeSettings</a>#8db4e76c flags:<a href="/type/%23">#</a> message_colors_animated:flags.2?<a href="/constructor/true">true</a> base_theme:<a href="/type/BaseTheme">BaseTheme</a> accent_color:<a href="/type/int">int</a> message_colors:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; wallpaper:flags.1?<a href="/type/WallPaper">WallPaper</a> = <a href="/type/ThemeSettings">ThemeSettings</a>;<br>
<a href="/constructor/messages.discussionMessage">messages.discussionMessage</a>#a6341782 flags:<a href="/type/%23">#</a> messages:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Message">Message</a>&gt; max_id:flags.0?<a href="/type/int">int</a> read_inbox_max_id:flags.1?<a href="/type/int">int</a> read_outbox_max_id:flags.2?<a href="/type/int">int</a> unread_count:<a href="/type/int">int</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.DiscussionMessage">messages.DiscussionMessage</a>;<br>
<a href="/constructor/inputGroupCallStream">inputGroupCallStream</a>#0598a92a flags:<a href="/type/%23">#</a> call:<a href="/type/InputGroupCall">InputGroupCall</a> time_ms:<a href="/type/long">long</a> scale:<a href="/type/int">int</a> video_channel:flags.0?<a href="/type/int">int</a> video_quality:flags.0?<a href="/type/int">int</a> = <a href="/type/InputFileLocation">InputFileLocation</a>;<br>
<a href="/constructor/chatTheme">chatTheme</a>#ed0b5c33 emoticon:<a href="/type/string">string</a> theme:<a href="/type/Theme">Theme</a> dark_theme:<a href="/type/Theme">Theme</a> = <a href="/type/ChatTheme">ChatTheme</a>;<br>
<a href="/constructor/account.chatThemesNotModified">account.chatThemesNotModified</a>#e011e1c4 = <a href="/type/account.ChatThemes">account.ChatThemes</a>;
<a href="/constructor/account.chatThemes">account.chatThemes</a>#fe4cbebd hash:<a href="/type/int">int</a> themes:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/ChatTheme">ChatTheme</a>&gt; = <a href="/type/account.ChatThemes">account.ChatThemes</a>;<br>
<a href="/constructor/messageActionSetChatTheme">messageActionSetChatTheme</a>#aa786345 emoticon:<a href="/type/string">string</a> = <a href="/type/MessageAction">MessageAction</a>;<br>
<a href="/constructor/sendMessageChooseStickerAction">sendMessageChooseStickerAction</a>#b05ac6b1 = <a href="/type/SendMessageAction">SendMessageAction</a>;
<a href="/constructor/sponsoredMessage">sponsoredMessage</a>#2a3c381f flags:<a href="/type/%23">#</a> random_id:<a href="/type/bytes">bytes</a> from_id:<a href="/type/Peer">Peer</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/messages.sponsoredMessages">messages.sponsoredMessages</a>#65a4c7d5 messages:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/SponsoredMessage">SponsoredMessage</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.SponsoredMessages">messages.SponsoredMessages</a>;<br>
---functions---<br>
<a href="/method/phone.toggleGroupCallRecord">phone.toggleGroupCallRecord</a>#f128c708 flags:<a href="/type/%23">#</a> start:flags.0?<a href="/constructor/true">true</a> video:flags.2?<a href="/constructor/true">true</a> call:<a href="/type/InputGroupCall">InputGroupCall</a> title:flags.1?<a href="/type/string">string</a> video_portrait:flags.2?<a href="/type/Bool">Bool</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/account.getChatThemes">account.getChatThemes</a>#d6d71d7b hash:<a href="/type/int">int</a> = <a href="/type/account.ChatThemes">account.ChatThemes</a>;<br>
<a href="/method/messages.setChatTheme">messages.setChatTheme</a>#e63be13f peer:<a href="/type/InputPeer">InputPeer</a> emoticon:<a href="/type/string">string</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/channels.viewSponsoredMessage">channels.viewSponsoredMessage</a>#beaedb94 channel:<a href="/type/InputChannel">InputChannel</a> random_id:<a href="/type/bytes">bytes</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/channels.getSponsoredMessages">channels.getSponsoredMessages</a>#ec210fbf channel:<a href="/type/InputChannel">InputChannel</a> = <a href="/type/messages.SponsoredMessages">messages.SponsoredMessages</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-131" id="layer-131" name="layer-131"><i class="anchor-icon"></i></a><a href="/schema?layer=131">Layer 131</a></h3>
<p>2FA password reset for logged-in accounts, add a method to check the validity of the e-mail recovery code before use.</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.resetPassword">account.resetPassword</a> - Initiate a 2FA password reset: can only be used if the user is already logged-in, <a href="/api/srp#password-reset">see here for more info »</a></li>
<li>Added <a href="/method/account.declinePasswordReset">account.declinePasswordReset</a> - Abort a pending 2FA password reset, <a href="/api/srp#password-reset">see here for more info »</a></li>
<li>Added <a href="/method/auth.checkRecoveryPassword">auth.checkRecoveryPassword</a> - Check if the <a href="/api/srp">2FA recovery code</a> sent using <a href="/method/auth.requestPasswordRecovery">auth.requestPasswordRecovery</a> is valid, before passing it to <a href="/method/auth.recoverPassword">auth.recoverPassword</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>new_settings</strong> parameters in <a href="/method/auth.recoverPassword">auth.recoverPassword</a></li>
<li>Added <strong>limit</strong> parameter in <a href="/method/phone.getGroupCall">phone.getGroupCall</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/account.resetPasswordFailedWait">account.resetPasswordFailedWait</a> - You recently requested a password reset that was canceled, please wait until the specified date before requesting another reset.</li>
<li>Added <a href="/constructor/account.resetPasswordRequestedWait">account.resetPasswordRequestedWait</a> - You successfully requested a password reset, please wait until the specified date before finalizing the reset.</li>
<li>Added <a href="/constructor/account.resetPasswordOk">account.resetPasswordOk</a> - The 2FA password was reset successfully.</li>
<li>Added <a href="/constructor/updateBotCommands">updateBotCommands</a> - The <a href="/bots/api#june-25-2021">command set</a> of a certain bot in a certain chat 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>pending_reset_date</strong> parameter in <a href="/constructor/account.password">account.password</a></li>
<li>Added <strong>record_video_active</strong>, <strong>unmuted_video_count</strong>, <strong>unmuted_video_limit</strong> parameters in <a href="/constructor/groupCall">groupCall</a></li>
<li>Added <strong>audio_source</strong> parameter in <a href="/constructor/groupCallParticipantVideo">groupCallParticipantVideo</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/account.password">account.password</a>#185b184f 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> = <a href="/type/account.Password">account.Password</a>;<br>
<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> 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/groupCallParticipantVideo">groupCallParticipantVideo</a>#67753ac8 flags:<a href="/type/%23">#</a> paused:flags.0?<a href="/constructor/true">true</a> endpoint:<a href="/type/string">string</a> source_groups:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/GroupCallParticipantVideoSourceGroup">GroupCallParticipantVideoSourceGroup</a>&gt; audio_source:flags.1?<a href="/type/int">int</a> = <a href="/type/GroupCallParticipantVideo">GroupCallParticipantVideo</a>;<br>
<a href="/constructor/account.resetPasswordFailedWait">account.resetPasswordFailedWait</a>#e3779861 retry_date:<a href="/type/int">int</a> = <a href="/type/account.ResetPasswordResult">account.ResetPasswordResult</a>;
<a href="/constructor/account.resetPasswordRequestedWait">account.resetPasswordRequestedWait</a>#e9effc7d until_date:<a href="/type/int">int</a> = <a href="/type/account.ResetPasswordResult">account.ResetPasswordResult</a>;
<a href="/constructor/account.resetPasswordOk">account.resetPasswordOk</a>#e926d63e = <a href="/type/account.ResetPasswordResult">account.ResetPasswordResult</a>;<br>
<a href="/constructor/updateBotCommands">updateBotCommands</a>#cf7e0873 peer:<a href="/type/Peer">Peer</a> bot_id:<a href="/type/int">int</a> commands:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotCommand">BotCommand</a>&gt; = <a href="/type/Update">Update</a>;<br>
---functions---<br>
<a href="/method/auth.recoverPassword">auth.recoverPassword</a>#37096c70 flags:<a href="/type/%23">#</a> code:<a href="/type/string">string</a> new_settings:flags.0?<a href="/type/account.PasswordInputSettings">account.PasswordInputSettings</a> = <a href="/type/auth.Authorization">auth.Authorization</a>;<br>
<a href="/method/phone.getGroupCall">phone.getGroupCall</a>#041845db call:<a href="/type/InputGroupCall">InputGroupCall</a> limit:<a href="/type/int">int</a> = <a href="/type/phone.GroupCall">phone.GroupCall</a>;<br>
<a href="/method/account.resetPassword">account.resetPassword</a>#9308ce1b = <a href="/type/account.ResetPasswordResult">account.ResetPasswordResult</a>;
<a href="/method/account.declinePasswordReset">account.declinePasswordReset</a>#4c9409f6 = <a href="/type/Bool">Bool</a>;
<a href="/method/auth.checkRecoveryPassword">auth.checkRecoveryPassword</a>#0d36bf79 code:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-130" id="layer-130" name="layer-130"><i class="anchor-icon"></i></a><a href="/schema?layer=130">Layer 130</a></h3>
<p>Custom placeholder for bot reply keyboards.</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>placeholder</strong> parameter in <a href="/constructor/replyKeyboardForceReply">replyKeyboardForceReply</a></li>
<li>Added <strong>placeholder</strong> parameter in <a href="/constructor/replyKeyboardMarkup">replyKeyboardMarkup</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/replyKeyboardForceReply">replyKeyboardForceReply</a>#86b40b08 flags:<a href="/type/%23">#</a> single_use:flags.1?<a href="/constructor/true">true</a> selective:flags.2?<a href="/constructor/true">true</a> placeholder:flags.3?<a href="/type/string">string</a> = <a href="/type/ReplyMarkup">ReplyMarkup</a>;
<a href="/constructor/replyKeyboardMarkup">replyKeyboardMarkup</a>#85dd99d1 flags:<a href="/type/%23">#</a> resize:flags.0?<a href="/constructor/true">true</a> single_use:flags.1?<a href="/constructor/true">true</a> selective:flags.2?<a href="/constructor/true">true</a> rows:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/KeyboardButtonRow">KeyboardButtonRow</a>&gt; placeholder:flags.3?<a href="/type/string">string</a> = <a href="/type/ReplyMarkup">ReplyMarkup</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-129" id="layer-129" name="layer-129"><i class="anchor-icon"></i></a><a href="/schema?layer=129">Layer 129</a></h3>
<p>Group call screen sharing, short name suggestions for stickerpacks, scoped bot commands, <a href="/import-stickers">imported stickers</a>, wallpaper and group call 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/phone.joinGroupCallPresentation">phone.joinGroupCallPresentation</a> - Start screen sharing in a call</li>
<li>Added <a href="/method/phone.leaveGroupCallPresentation">phone.leaveGroupCallPresentation</a> - Stop screen sharing in a group call</li>
<li>Added <a href="/method/stickers.checkShortName">stickers.checkShortName</a> - Check whether the given short name is available</li>
<li>Added <a href="/method/stickers.suggestShortName">stickers.suggestShortName</a> - Suggests a short name for a given stickerpack name</li>
<li>Added <a href="/method/bots.resetBotCommands">bots.resetBotCommands</a> - Clear bot commands for the specified bot scope and language code</li>
<li>Added <a href="/method/bots.getBotCommands">bots.getBotCommands</a> - Obtain a list of bot commands for the specified bot scope and language code</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>software</strong> parameter in <a href="/method/stickers.createStickerSet">stickers.createStickerSet</a></li>
<li>Added <strong>scope</strong>, <strong>lang_code</strong> parameters in <a href="/method/bots.setBotCommands">bots.setBotCommands</a></li>
<li>Changed type of <a href="/method/phone.checkGroupCall">phone.checkGroupCall</a> from <strong>Bool</strong> to <strong>Vector&lt;int&gt;</strong></li>
<li>Added <strong>sources</strong> parameter, removed <strong>source</strong> parameter in <a href="/method/phone.checkGroupCall">phone.checkGroupCall</a></li>
<li>Added <strong>video_stopped</strong>, <strong>video_paused</strong>, <strong>presentation_paused</strong> parameters, removed <strong>video_muted</strong> parameter in <a href="/method/phone.editGroupCallParticipant">phone.editGroupCallParticipant</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/groupCallParticipantVideoSourceGroup">groupCallParticipantVideoSourceGroup</a> - Describes a group of video synchronization source identifiers</li>
<li>Added <a href="/constructor/groupCallParticipantVideo">groupCallParticipantVideo</a> - Info about a video stream</li>
<li>Added <a href="/constructor/updateGroupCallConnection">updateGroupCallConnection</a> - New WebRTC parameters</li>
<li>Added <a href="/constructor/stickers.suggestedShortName">stickers.suggestedShortName</a> - A suggested short name for a stickerpack</li>
<li>Added <a href="/constructor/botCommandScopeDefault">botCommandScopeDefault</a> - The commands will be valid in all dialogs</li>
<li>Added <a href="/constructor/botCommandScopeUsers">botCommandScopeUsers</a> - The specified bot commands will only be valid in all private chats with users.</li>
<li>Added <a href="/constructor/botCommandScopeChats">botCommandScopeChats</a> - The specified bot commands will be valid in all <a href="/api/channel">groups and supergroups</a>.</li>
<li>Added <a href="/constructor/botCommandScopeChatAdmins">botCommandScopeChatAdmins</a> - The specified bot commands will be valid only for chat administrators, in all <a href="/api/channel">groups and supergroups</a>.</li>
<li>Added <a href="/constructor/botCommandScopePeer">botCommandScopePeer</a> - The specified bot commands will be valid only in a specific dialog.</li>
<li>Added <a href="/constructor/botCommandScopePeerAdmins">botCommandScopePeerAdmins</a> - The specified bot commands will be valid for all admins of the specified <a href="/api/channel">group or supergroup</a>.</li>
<li>Added <a href="/constructor/botCommandScopePeerUser">botCommandScopePeerUser</a> - The specified bot commands will be valid only for a specific user in the specified <a href="/api/channel">group or supergroup</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>sticker</strong> parameter in <a href="/constructor/help.appUpdate">help.appUpdate</a></li>
<li>Added <strong>third_background_color</strong>, <strong>fourth_background_color</strong> parameters in <a href="/constructor/wallPaperSettings">wallPaperSettings</a></li>
<li>Added <strong>id</strong> parameter in <a href="/constructor/inputWallPaperNoFile">inputWallPaperNoFile</a></li>
<li>Added <strong>id</strong> parameter in <a href="/constructor/wallPaperNoFile">wallPaperNoFile</a></li>
<li>Added <strong>qts</strong> parameter in <a href="/constructor/updateMessagePollVote">updateMessagePollVote</a></li>
<li>Added <strong>can_start_video</strong> parameter, removed <strong>params</strong> parameter in <a href="/constructor/groupCall">groupCall</a></li>
<li>Added <strong>video_joined</strong>, <strong>video</strong>, <strong>presentation</strong> parameters, removed <strong>params</strong> parameter in <a href="/constructor/groupCallParticipant">groupCallParticipant</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/help.appUpdate">help.appUpdate</a>#ccbbce30 flags:<a href="/type/%23">#</a> can_not_skip:flags.0?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> version:<a href="/type/string">string</a> text:<a href="/type/string">string</a> entities:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; document:flags.1?<a href="/type/Document">Document</a> url:flags.2?<a href="/type/string">string</a> sticker:flags.3?<a href="/type/Document">Document</a> = <a href="/type/help.AppUpdate">help.AppUpdate</a>;<br>
<a href="/constructor/wallPaperSettings">wallPaperSettings</a>#1dc1bca4 flags:<a href="/type/%23">#</a> blur:flags.1?<a href="/constructor/true">true</a> motion:flags.2?<a href="/constructor/true">true</a> background_color:flags.0?<a href="/type/int">int</a> second_background_color:flags.4?<a href="/type/int">int</a> third_background_color:flags.5?<a href="/type/int">int</a> fourth_background_color:flags.6?<a href="/type/int">int</a> intensity:flags.3?<a href="/type/int">int</a> rotation:flags.4?<a href="/type/int">int</a> = <a href="/type/WallPaperSettings">WallPaperSettings</a>;<br>
<a href="/constructor/inputWallPaperNoFile">inputWallPaperNoFile</a>#967a462e id:<a href="/type/long">long</a> = <a href="/type/InputWallPaper">InputWallPaper</a>;<br>
<a href="/constructor/wallPaperNoFile">wallPaperNoFile</a>#e0804116 id:<a href="/type/long">long</a> flags:<a href="/type/%23">#</a> default:flags.1?<a href="/constructor/true">true</a> dark:flags.4?<a href="/constructor/true">true</a> settings:flags.2?<a href="/type/WallPaperSettings">WallPaperSettings</a> = <a href="/type/WallPaper">WallPaper</a>;<br>
<a href="/constructor/updateMessagePollVote">updateMessagePollVote</a>#37f69f0b poll_id:<a href="/type/long">long</a> user_id:<a href="/type/int">int</a> options:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/bytes">bytes</a>&gt; qts:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/groupCall">groupCall</a>#653dbaad 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> 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> version:<a href="/type/int">int</a> = <a href="/type/GroupCall">GroupCall</a>;
<a href="/constructor/groupCallParticipant">groupCallParticipant</a>#eba636fe flags:<a href="/type/%23">#</a> muted:flags.0?<a href="/constructor/true">true</a> left:flags.1?<a href="/constructor/true">true</a> can_self_unmute:flags.2?<a href="/constructor/true">true</a> just_joined:flags.4?<a href="/constructor/true">true</a> versioned:flags.5?<a href="/constructor/true">true</a> min:flags.8?<a href="/constructor/true">true</a> muted_by_you:flags.9?<a href="/constructor/true">true</a> volume_by_admin:flags.10?<a href="/constructor/true">true</a> self:flags.12?<a href="/constructor/true">true</a> video_joined:flags.15?<a href="/constructor/true">true</a> peer:<a href="/type/Peer">Peer</a> date:<a href="/type/int">int</a> active_date:flags.3?<a href="/type/int">int</a> source:<a href="/type/int">int</a> volume:flags.7?<a href="/type/int">int</a> about:flags.11?<a href="/type/string">string</a> raise_hand_rating:flags.13?<a href="/type/long">long</a> video:flags.6?<a href="/type/GroupCallParticipantVideo">GroupCallParticipantVideo</a> presentation:flags.14?<a href="/type/GroupCallParticipantVideo">GroupCallParticipantVideo</a> = <a href="/type/GroupCallParticipant">GroupCallParticipant</a>;
<a href="/constructor/groupCallParticipantVideoSourceGroup">groupCallParticipantVideoSourceGroup</a>#dcb118b7 semantics:<a href="/type/string">string</a> sources:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/GroupCallParticipantVideoSourceGroup">GroupCallParticipantVideoSourceGroup</a>;
<a href="/constructor/groupCallParticipantVideo">groupCallParticipantVideo</a>#78e41663 flags:<a href="/type/%23">#</a> paused:flags.0?<a href="/constructor/true">true</a> endpoint:<a href="/type/string">string</a> source_groups:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/GroupCallParticipantVideoSourceGroup">GroupCallParticipantVideoSourceGroup</a>&gt; = <a href="/type/GroupCallParticipantVideo">GroupCallParticipantVideo</a>;<br>
<a href="/constructor/updateGroupCallConnection">updateGroupCallConnection</a>#0b783982 flags:<a href="/type/%23">#</a> presentation:flags.0?<a href="/constructor/true">true</a> params:<a href="/type/DataJSON">DataJSON</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/stickers.suggestedShortName">stickers.suggestedShortName</a>#85fea03f short_name:<a href="/type/string">string</a> = <a href="/type/stickers.SuggestedShortName">stickers.SuggestedShortName</a>;<br>
<a href="/constructor/botCommandScopeDefault">botCommandScopeDefault</a>#2f6cb2ab = <a href="/type/BotCommandScope">BotCommandScope</a>;
<a href="/constructor/botCommandScopeUsers">botCommandScopeUsers</a>#3c4f04d8 = <a href="/type/BotCommandScope">BotCommandScope</a>;
<a href="/constructor/botCommandScopeChats">botCommandScopeChats</a>#6fe1a881 = <a href="/type/BotCommandScope">BotCommandScope</a>;
<a href="/constructor/botCommandScopeChatAdmins">botCommandScopeChatAdmins</a>#b9aa606a = <a href="/type/BotCommandScope">BotCommandScope</a>;
<a href="/constructor/botCommandScopePeer">botCommandScopePeer</a>#db9d897d peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/BotCommandScope">BotCommandScope</a>;
<a href="/constructor/botCommandScopePeerAdmins">botCommandScopePeerAdmins</a>#3fd863d1 peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/BotCommandScope">BotCommandScope</a>;
<a href="/constructor/botCommandScopePeerUser">botCommandScopePeerUser</a>#0a1321f3 peer:<a href="/type/InputPeer">InputPeer</a> user_id:<a href="/type/InputUser">InputUser</a> = <a href="/type/BotCommandScope">BotCommandScope</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> 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/bots.setBotCommands">bots.setBotCommands</a>#0517165a scope:<a href="/type/BotCommandScope">BotCommandScope</a> lang_code:<a href="/type/string">string</a> commands:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotCommand">BotCommand</a>&gt; = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/phone.checkGroupCall">phone.checkGroupCall</a>#b59cf977 call:<a href="/type/InputGroupCall">InputGroupCall</a> sources:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt;;
<a href="/method/phone.editGroupCallParticipant">phone.editGroupCallParticipant</a>#a5273abf flags:<a href="/type/%23">#</a> call:<a href="/type/InputGroupCall">InputGroupCall</a> participant:<a href="/type/InputPeer">InputPeer</a> muted:flags.0?<a href="/type/Bool">Bool</a> volume:flags.1?<a href="/type/int">int</a> raise_hand:flags.2?<a href="/type/Bool">Bool</a> video_stopped:flags.3?<a href="/type/Bool">Bool</a> video_paused:flags.4?<a href="/type/Bool">Bool</a> presentation_paused:flags.5?<a href="/type/Bool">Bool</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.joinGroupCallPresentation">phone.joinGroupCallPresentation</a>#cbea6bc4 call:<a href="/type/InputGroupCall">InputGroupCall</a> params:<a href="/type/DataJSON">DataJSON</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.leaveGroupCallPresentation">phone.leaveGroupCallPresentation</a>#1c50d144 call:<a href="/type/InputGroupCall">InputGroupCall</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/stickers.checkShortName">stickers.checkShortName</a>#284b3639 short_name:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/stickers.suggestShortName">stickers.suggestShortName</a>#4dafc503 title:<a href="/type/string">string</a> = <a href="/type/stickers.SuggestedShortName">stickers.SuggestedShortName</a>;<br>
<a href="/method/bots.resetBotCommands">bots.resetBotCommands</a>#3d8de0f9 scope:<a href="/type/BotCommandScope">BotCommandScope</a> lang_code:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/bots.getBotCommands">bots.getBotCommands</a>#e34c0dd6 scope:<a href="/type/BotCommandScope">BotCommandScope</a> lang_code:<a href="/type/string">string</a> = <a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotCommand">BotCommand</a>&gt;;<br></code></pre></div>
<h3><a class="anchor" href="#layer-128" id="layer-128" name="layer-128"><i class="anchor-icon"></i></a><a href="/schema?layer=128">Layer 128</a></h3>
<p>Deprecate legacy profile picture locations, group call improvements.<br>
See the <a href="/api/files#downloading-files">file documentation article for more info on the new file constructors »</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="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Added <strong>video_muted</strong> parameter, changed type of <strong>muted</strong> from <strong>flags.0?true</strong> to <strong>flags.0?Bool</strong> in <a href="/method/phone.editGroupCallParticipant">phone.editGroupCallParticipant</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>Removed <strong>photo_small</strong>, <strong>photo_big</strong> parameters in <a href="/constructor/userProfilePhoto">userProfilePhoto</a></li>
<li>Added <strong>photo_id</strong> parameter, removed <strong>photo_small</strong>, <strong>photo_big</strong> parameters in <a href="/constructor/chatPhoto">chatPhoto</a></li>
<li>Removed <strong>location</strong> parameter in <a href="/constructor/photoSize">photoSize</a></li>
<li>Removed <strong>location</strong> parameter in <a href="/constructor/photoCachedSize">photoCachedSize</a></li>
<li>Added <strong>photo_id</strong> parameter, removed <strong>volume_id</strong>, <strong>local_id</strong> parameters in <a href="/constructor/inputPeerPhotoFileLocation">inputPeerPhotoFileLocation</a></li>
<li>Added <strong>thumb_version</strong> parameter, removed <strong>volume_id</strong>, <strong>local_id</strong> parameters in <a href="/constructor/inputStickerSetThumb">inputStickerSetThumb</a></li>
<li>Removed <strong>location</strong> parameter in <a href="/constructor/videoSize">videoSize</a></li>
<li>Removed <strong>location</strong> parameter in <a href="/constructor/photoSizeProgressive">photoSizeProgressive</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 fileLocationToBeDeprecated</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/userProfilePhoto">userProfilePhoto</a>#82d1f706 flags:<a href="/type/%23">#</a> has_video:flags.0?<a href="/constructor/true">true</a> photo_id:<a href="/type/long">long</a> stripped_thumb:flags.1?<a href="/type/bytes">bytes</a> dc_id:<a href="/type/int">int</a> = <a href="/type/UserProfilePhoto">UserProfilePhoto</a>;<br>
<a href="/constructor/chatPhoto">chatPhoto</a>#1c6e1c11 flags:<a href="/type/%23">#</a> has_video:flags.0?<a href="/constructor/true">true</a> photo_id:<a href="/type/long">long</a> stripped_thumb:flags.1?<a href="/type/bytes">bytes</a> dc_id:<a href="/type/int">int</a> = <a href="/type/ChatPhoto">ChatPhoto</a>;<br>
<a href="/constructor/photoSize">photoSize</a>#75c78e60 type:<a href="/type/string">string</a> w:<a href="/type/int">int</a> h:<a href="/type/int">int</a> size:<a href="/type/int">int</a> = <a href="/type/PhotoSize">PhotoSize</a>;
<a href="/constructor/photoCachedSize">photoCachedSize</a>#021e1ad6 type:<a href="/type/string">string</a> w:<a href="/type/int">int</a> h:<a href="/type/int">int</a> bytes:<a href="/type/bytes">bytes</a> = <a href="/type/PhotoSize">PhotoSize</a>;<br>
<a href="/constructor/inputPeerPhotoFileLocation">inputPeerPhotoFileLocation</a>#37257e99 flags:<a href="/type/%23">#</a> big:flags.0?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> photo_id:<a href="/type/long">long</a> = <a href="/type/InputFileLocation">InputFileLocation</a>;
<a href="/constructor/inputStickerSetThumb">inputStickerSetThumb</a>#9d84f3db stickerset:<a href="/type/InputStickerSet">InputStickerSet</a> thumb_version:<a href="/type/int">int</a> = <a href="/type/InputFileLocation">InputFileLocation</a>;<br>
<a href="/constructor/videoSize">videoSize</a>#de33b094 flags:<a href="/type/%23">#</a> type:<a href="/type/string">string</a> w:<a href="/type/int">int</a> h:<a href="/type/int">int</a> size:<a href="/type/int">int</a> video_start_ts:flags.0?<a href="/type/double">double</a> = <a href="/type/VideoSize">VideoSize</a>;<br>
<a href="/constructor/photoSizeProgressive">photoSizeProgressive</a>#fa3efb95 type:<a href="/type/string">string</a> w:<a href="/type/int">int</a> h:<a href="/type/int">int</a> sizes:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/PhotoSize">PhotoSize</a>;<br>
---functions---<br>
<a href="/method/phone.editGroupCallParticipant">phone.editGroupCallParticipant</a>#aec610e4 flags:<a href="/type/%23">#</a> call:<a href="/type/InputGroupCall">InputGroupCall</a> participant:<a href="/type/InputPeer">InputPeer</a> muted:flags.0?<a href="/type/Bool">Bool</a> volume:flags.1?<a href="/type/int">int</a> raise_hand:flags.2?<a href="/type/Bool">Bool</a> video_muted:flags.3?<a href="/type/Bool">Bool</a> = <a href="/type/Updates">Updates</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-127" id="layer-127" name="layer-127"><i class="anchor-icon"></i></a><a href="/schema?layer=127">Layer 127</a></h3>
<p>Scheduled group calls, payments in channels, payment tips, stripped profile picture thumbnails.</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/phone.toggleGroupCallStartSubscription">phone.toggleGroupCallStartSubscription</a> - Subscribe or unsubscribe to a scheduled group call</li>
<li>Added <a href="/method/phone.startScheduledGroupCall">phone.startScheduledGroupCall</a> - Start a scheduled group call.</li>
<li>Added <a href="/method/phone.saveDefaultGroupCallJoinAs">phone.saveDefaultGroupCallJoinAs</a> - Set the default peer that will be used to join a group call in a specific dialog.</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>peer</strong>, <strong>theme_params</strong> parameters in <a href="/method/payments.getPaymentForm">payments.getPaymentForm</a></li>
<li>Added <strong>peer</strong> parameter in <a href="/method/payments.getPaymentReceipt">payments.getPaymentReceipt</a></li>
<li>Added <strong>peer</strong> parameter in <a href="/method/payments.validateRequestedInfo">payments.validateRequestedInfo</a></li>
<li>Added <strong>form_id</strong>, <strong>peer</strong>, <strong>tip_amount</strong> parameters in <a href="/method/payments.sendPaymentForm">payments.sendPaymentForm</a></li>
<li>Added <strong>flags</strong>, <strong>title</strong>, <strong>schedule_date</strong> parameters 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/inputBotInlineMessageMediaInvoice">inputBotInlineMessageMediaInvoice</a> - An invoice</li>
<li>Added <a href="/constructor/botInlineMessageMediaInvoice">botInlineMessageMediaInvoice</a> - Send an invoice</li>
<li>Added <a href="/constructor/messageActionGroupCallScheduled">messageActionGroupCallScheduled</a> - A group call was scheduled</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>stripped_thumb</strong> parameter in <a href="/constructor/userProfilePhoto">userProfilePhoto</a></li>
<li>Added <strong>stripped_thumb</strong> parameter in <a href="/constructor/chatPhoto">chatPhoto</a></li>
<li>Added <strong>thumb_version</strong> parameter in <a href="/constructor/stickerSet">stickerSet</a></li>
<li>Added <strong>max_tip_amount</strong>, <strong>suggested_tip_amounts</strong> parameters in <a href="/constructor/invoice">invoice</a></li>
<li>Changed type of <strong>start_param</strong> from <strong>string</strong> to <strong>flags.1?string</strong> in <a href="/constructor/inputMediaInvoice">inputMediaInvoice</a></li>
<li>Added <strong>form_id</strong> parameter in <a href="/constructor/payments.paymentForm">payments.paymentForm</a></li>
<li>Added <strong>title</strong>, <strong>description</strong>, <strong>photo</strong>, <strong>tip_amount</strong> parameters in <a href="/constructor/payments.paymentReceipt">payments.paymentReceipt</a></li>
<li>Added <strong>schedule_start_subscribed</strong>, <strong>schedule_date</strong> parameters in <a href="/constructor/groupCall">groupCall</a></li>
<li>Added <strong>params</strong> parameter in <a href="/constructor/groupCallParticipant">groupCallParticipant</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/userProfilePhoto">userProfilePhoto</a>#cc656077 flags:<a href="/type/%23">#</a> has_video:flags.0?<a href="/constructor/true">true</a> photo_id:<a href="/type/long">long</a> photo_small:<a href="/type/FileLocation">FileLocation</a> photo_big:<a href="/type/FileLocation">FileLocation</a> stripped_thumb:flags.1?<a href="/type/bytes">bytes</a> dc_id:<a href="/type/int">int</a> = <a href="/type/UserProfilePhoto">UserProfilePhoto</a>;<br>
<a href="/constructor/chatPhoto">chatPhoto</a>#4790ee05 flags:<a href="/type/%23">#</a> has_video:flags.0?<a href="/constructor/true">true</a> photo_small:<a href="/type/FileLocation">FileLocation</a> photo_big:<a href="/type/FileLocation">FileLocation</a> stripped_thumb:flags.1?<a href="/type/bytes">bytes</a> dc_id:<a href="/type/int">int</a> = <a href="/type/ChatPhoto">ChatPhoto</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> 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/invoice">invoice</a>#0cd886e0 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> 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; = <a href="/type/Invoice">Invoice</a>;
<a href="/constructor/inputMediaInvoice">inputMediaInvoice</a>#d9799874 flags:<a href="/type/%23">#</a> title:<a href="/type/string">string</a> description:<a href="/type/string">string</a> photo:flags.0?<a href="/type/InputWebDocument">InputWebDocument</a> invoice:<a href="/type/Invoice">Invoice</a> payload:<a href="/type/bytes">bytes</a> provider:<a href="/type/string">string</a> provider_data:<a href="/type/DataJSON">DataJSON</a> start_param:flags.1?<a href="/type/string">string</a> = <a href="/type/InputMedia">InputMedia</a>;<br>
<a href="/constructor/payments.paymentForm">payments.paymentForm</a>#8d0b2415 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/int">int</a> invoice:<a href="/type/Invoice">Invoice</a> provider_id:<a href="/type/int">int</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>;
<a href="/constructor/payments.paymentReceipt">payments.paymentReceipt</a>#10b555d0 flags:<a href="/type/%23">#</a> date:<a href="/type/int">int</a> bot_id:<a href="/type/int">int</a> provider_id:<a href="/type/int">int</a> title:<a href="/type/string">string</a> description:<a href="/type/string">string</a> photo:flags.2?<a href="/type/WebDocument">WebDocument</a> invoice:<a href="/type/Invoice">Invoice</a> info:flags.0?<a href="/type/PaymentRequestedInfo">PaymentRequestedInfo</a> shipping:flags.1?<a href="/type/ShippingOption">ShippingOption</a> tip_amount:flags.3?<a href="/type/long">long</a> currency:<a href="/type/string">string</a> total_amount:<a href="/type/long">long</a> credentials_title:<a href="/type/string">string</a> users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/payments.PaymentReceipt">payments.PaymentReceipt</a>;<br>
<a href="/constructor/groupCall">groupCall</a>#c95c6654 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> id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> participants_count:<a href="/type/int">int</a> params:flags.0?<a href="/type/DataJSON">DataJSON</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> version:<a href="/type/int">int</a> = <a href="/type/GroupCall">GroupCall</a>;
<a href="/constructor/groupCallParticipant">groupCallParticipant</a>#b96b25ee flags:<a href="/type/%23">#</a> muted:flags.0?<a href="/constructor/true">true</a> left:flags.1?<a href="/constructor/true">true</a> can_self_unmute:flags.2?<a href="/constructor/true">true</a> just_joined:flags.4?<a href="/constructor/true">true</a> versioned:flags.5?<a href="/constructor/true">true</a> min:flags.8?<a href="/constructor/true">true</a> muted_by_you:flags.9?<a href="/constructor/true">true</a> volume_by_admin:flags.10?<a href="/constructor/true">true</a> self:flags.12?<a href="/constructor/true">true</a> peer:<a href="/type/Peer">Peer</a> date:<a href="/type/int">int</a> active_date:flags.3?<a href="/type/int">int</a> source:<a href="/type/int">int</a> volume:flags.7?<a href="/type/int">int</a> about:flags.11?<a href="/type/string">string</a> raise_hand_rating:flags.13?<a href="/type/long">long</a> params:flags.6?<a href="/type/DataJSON">DataJSON</a> = <a href="/type/GroupCallParticipant">GroupCallParticipant</a>;<br>
<a href="/constructor/inputBotInlineMessageMediaInvoice">inputBotInlineMessageMediaInvoice</a>#d7e78225 flags:<a href="/type/%23">#</a> title:<a href="/type/string">string</a> description:<a href="/type/string">string</a> photo:flags.0?<a href="/type/InputWebDocument">InputWebDocument</a> invoice:<a href="/type/Invoice">Invoice</a> payload:<a href="/type/bytes">bytes</a> provider:<a href="/type/string">string</a> provider_data:<a href="/type/DataJSON">DataJSON</a> reply_markup:flags.2?<a href="/type/ReplyMarkup">ReplyMarkup</a> = <a href="/type/InputBotInlineMessage">InputBotInlineMessage</a>;<br>
<a href="/constructor/botInlineMessageMediaInvoice">botInlineMessageMediaInvoice</a>#354a9b09 flags:<a href="/type/%23">#</a> shipping_address_requested:flags.1?<a href="/constructor/true">true</a> test:flags.3?<a href="/constructor/true">true</a> title:<a href="/type/string">string</a> description:<a href="/type/string">string</a> photo:flags.0?<a href="/type/WebDocument">WebDocument</a> currency:<a href="/type/string">string</a> total_amount:<a href="/type/long">long</a> reply_markup:flags.2?<a href="/type/ReplyMarkup">ReplyMarkup</a> = <a href="/type/BotInlineMessage">BotInlineMessage</a>;<br>
<a href="/constructor/messageActionGroupCallScheduled">messageActionGroupCallScheduled</a>#b3a07661 call:<a href="/type/InputGroupCall">InputGroupCall</a> schedule_date:<a href="/type/int">int</a> = <a href="/type/MessageAction">MessageAction</a>;<br>
---functions---<br>
<a href="/method/payments.getPaymentForm">payments.getPaymentForm</a>#8a333c8d flags:<a href="/type/%23">#</a> peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> theme_params:flags.0?<a href="/type/DataJSON">DataJSON</a> = <a href="/type/payments.PaymentForm">payments.PaymentForm</a>;
<a href="/method/payments.getPaymentReceipt">payments.getPaymentReceipt</a>#2478d1cc peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> = <a href="/type/payments.PaymentReceipt">payments.PaymentReceipt</a>;
<a href="/method/payments.validateRequestedInfo">payments.validateRequestedInfo</a>#db103170 flags:<a href="/type/%23">#</a> save:flags.0?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> info:<a href="/type/PaymentRequestedInfo">PaymentRequestedInfo</a> = <a href="/type/payments.ValidatedRequestedInfo">payments.ValidatedRequestedInfo</a>;
<a href="/method/payments.sendPaymentForm">payments.sendPaymentForm</a>#30c3bc9d flags:<a href="/type/%23">#</a> form_id:<a href="/type/long">long</a> peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</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>;
<a href="/method/phone.createGroupCall">phone.createGroupCall</a>#48cdc6d8 flags:<a href="/type/%23">#</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>;
<a href="/method/phone.toggleGroupCallStartSubscription">phone.toggleGroupCallStartSubscription</a>#219c34e6 call:<a href="/type/InputGroupCall">InputGroupCall</a> subscribed:<a href="/type/Bool">Bool</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.startScheduledGroupCall">phone.startScheduledGroupCall</a>#5680e342 call:<a href="/type/InputGroupCall">InputGroupCall</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.saveDefaultGroupCallJoinAs">phone.saveDefaultGroupCallJoinAs</a>#575e1f8c peer:<a href="/type/InputPeer">InputPeer</a> join_as:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-126" id="layer-126" name="layer-126"><i class="anchor-icon"></i></a><a href="/schema?layer=126">Layer 126</a></h3>
<p>Ban channels in chats.</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-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
<ul>
<li>Added <strong>participant</strong> parameter, removed <strong>user_id</strong> parameter in <a href="/method/channels.getParticipant">channels.getParticipant</a></li>
<li>Added <strong>participant</strong> parameter, removed <strong>user_id</strong> parameter in <a href="/method/channels.editBanned">channels.editBanned</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>chats</strong> parameter in <a href="/constructor/channels.channelParticipants">channels.channelParticipants</a></li>
<li>Added <strong>chats</strong> parameter in <a href="/constructor/channels.channelParticipant">channels.channelParticipant</a></li>
<li>Added <strong>peer</strong> parameter, removed <strong>user_id</strong> parameter in <a href="/constructor/channelParticipantBanned">channelParticipantBanned</a></li>
<li>Added <strong>peer</strong> parameter, removed <strong>user_id</strong> parameter in <a href="/constructor/channelParticipantLeft">channelParticipantLeft</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/channels.channelParticipants">channels.channelParticipants</a>#9ab0feaf count:<a href="/type/int">int</a> participants:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/ChannelParticipant">ChannelParticipant</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.ChannelParticipants">channels.ChannelParticipants</a>;
<a href="/constructor/channels.channelParticipant">channels.channelParticipant</a>#dfb80317 participant:<a href="/type/ChannelParticipant">ChannelParticipant</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/channels.ChannelParticipant">channels.ChannelParticipant</a>;
<a href="/constructor/channelParticipantBanned">channelParticipantBanned</a>#50a1dfd6 flags:<a href="/type/%23">#</a> left:flags.0?<a href="/constructor/true">true</a> peer:<a href="/type/Peer">Peer</a> kicked_by:<a href="/type/int">int</a> date:<a href="/type/int">int</a> banned_rights:<a href="/type/ChatBannedRights">ChatBannedRights</a> = <a href="/type/ChannelParticipant">ChannelParticipant</a>;
<a href="/constructor/channelParticipantLeft">channelParticipantLeft</a>#1b03f006 peer:<a href="/type/Peer">Peer</a> = <a href="/type/ChannelParticipant">ChannelParticipant</a>;<br>
---functions---<br>
<a href="/method/channels.getParticipant">channels.getParticipant</a>#a0ab6cc6 channel:<a href="/type/InputChannel">InputChannel</a> participant:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/channels.ChannelParticipant">channels.ChannelParticipant</a>;
<a href="/method/channels.editBanned">channels.editBanned</a>#96e6cd81 channel:<a href="/type/InputChannel">InputChannel</a> participant:<a href="/type/InputPeer">InputPeer</a> banned_rights:<a href="/type/ChatBannedRights">ChatBannedRights</a> = <a href="/type/Updates">Updates</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-125" id="layer-125" name="layer-125"><i class="anchor-icon"></i></a><a href="/schema?layer=125">Layer 125</a></h3>
<p>Voice chats in channels.</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/phone.toggleGroupCallRecord">phone.toggleGroupCallRecord</a> - Start or stop recording a group call: the recorded audio and video streams will be automatically sent to <code>Saved messages</code> (the chat with ourselves).</li>
<li>Added <a href="/method/phone.editGroupCallParticipant">phone.editGroupCallParticipant</a> - Edit information about a given group call participant</li>
<li>Added <a href="/method/phone.editGroupCallTitle">phone.editGroupCallTitle</a> - Edit the title of a group call or livestream</li>
<li>Added <a href="/method/phone.getGroupCallJoinAs">phone.getGroupCallJoinAs</a> - Get a list of peers that can be used to join a group call, presenting yourself as a specific user/channel.</li>
<li>Added <a href="/method/phone.exportGroupCallInvite">phone.exportGroupCallInvite</a> - Get an invite link for a group call or livestream</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>url</strong> parameters, changed type of <strong>peer</strong> from <strong>InputPeer</strong> to <strong>flags.1?InputPeer</strong>, <strong>msg_id</strong> from <strong>int</strong> to <strong>flags.1?int</strong>, <strong>button_id</strong> from <strong>int</strong> to <strong>flags.1?int</strong> in <a href="/method/messages.requestUrlAuth">messages.requestUrlAuth</a></li>
<li>Added <strong>url</strong> parameter, changed type of <strong>peer</strong> from <strong>InputPeer</strong> to <strong>flags.1?InputPeer</strong>, <strong>msg_id</strong> from <strong>int</strong> to <strong>flags.1?int</strong>, <strong>button_id</strong> from <strong>int</strong> to <strong>flags.1?int</strong> in <a href="/method/messages.acceptUrlAuth">messages.acceptUrlAuth</a></li>
<li>Added <strong>video_stopped</strong>, <strong>join_as</strong>, <strong>invite_hash</strong> parameters in <a href="/method/phone.joinGroupCall">phone.joinGroupCall</a></li>
<li>Added <strong>reset_invite_hash</strong> parameter in <a href="/method/phone.toggleGroupCallSettings">phone.toggleGroupCallSettings</a></li>
<li>Changed type of <strong>ids</strong> from <strong>Vector&lt;int&gt;</strong> to <strong>Vector&lt;InputPeer&gt;</strong> in <a href="/method/phone.getGroupParticipants">phone.getGroupParticipants</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 phone.editGroupCallMember</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/inputGroupCallStream">inputGroupCallStream</a> - Chunk of a livestream</li>
<li>Added <a href="/constructor/phone.joinAsPeers">phone.joinAsPeers</a> - A list of peers that can be used to join a group call, presenting yourself as a specific user/channel.</li>
<li>Added <a href="/constructor/phone.exportedGroupCallInvite">phone.exportedGroupCallInvite</a> - An invite to a group call or livestream</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>groupcall_default_join_as</strong> parameter in <a href="/constructor/chatFull">chatFull</a></li>
<li>Added <strong>from_id</strong> parameter, removed <strong>user_id</strong> parameter in <a href="/constructor/updateChatUserTyping">updateChatUserTyping</a></li>
<li>Added <strong>groupcall_default_join_as</strong> parameter in <a href="/constructor/channelFull">channelFull</a></li>
<li>Added <strong>from_id</strong> parameter, removed <strong>user_id</strong> parameter in <a href="/constructor/updateChannelUserTyping">updateChannelUserTyping</a></li>
<li>Added <strong>join_date_asc</strong>, <strong>title</strong>, <strong>stream_dc_id</strong>, <strong>record_start_date</strong> parameters in <a href="/constructor/groupCall">groupCall</a></li>
<li>Added <strong>self</strong>, <strong>peer</strong>, <strong>about</strong>, <strong>raise_hand_rating</strong> parameters, removed <strong>user_id</strong> parameter in <a href="/constructor/groupCallParticipant">groupCallParticipant</a></li>
<li>Added <strong>chats</strong> parameter in <a href="/constructor/phone.groupCall">phone.groupCall</a></li>
<li>Added <strong>chats</strong> parameter in <a href="/constructor/phone.groupParticipants">phone.groupParticipants</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>#8a1e2983 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/int">int</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> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/updateChatUserTyping">updateChatUserTyping</a>#86cadb6c chat_id:<a href="/type/int">int</a> from_id:<a href="/type/Peer">Peer</a> action:<a href="/type/SendMessageAction">SendMessageAction</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/channelFull">channelFull</a>#548c3f93 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/int">int</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/int">int</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/int">int</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> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/updateChannelUserTyping">updateChannelUserTyping</a>#6b171718 flags:<a href="/type/%23">#</a> channel_id:<a href="/type/int">int</a> top_msg_id:flags.0?<a href="/type/int">int</a> from_id:<a href="/type/Peer">Peer</a> action:<a href="/type/SendMessageAction">SendMessageAction</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/groupCall">groupCall</a>#c0c2052e 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> id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> participants_count:<a href="/type/int">int</a> params:flags.0?<a href="/type/DataJSON">DataJSON</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> version:<a href="/type/int">int</a> = <a href="/type/GroupCall">GroupCall</a>;
<a href="/constructor/groupCallParticipant">groupCallParticipant</a>#19adba89 flags:<a href="/type/%23">#</a> muted:flags.0?<a href="/constructor/true">true</a> left:flags.1?<a href="/constructor/true">true</a> can_self_unmute:flags.2?<a href="/constructor/true">true</a> just_joined:flags.4?<a href="/constructor/true">true</a> versioned:flags.5?<a href="/constructor/true">true</a> min:flags.8?<a href="/constructor/true">true</a> muted_by_you:flags.9?<a href="/constructor/true">true</a> volume_by_admin:flags.10?<a href="/constructor/true">true</a> self:flags.12?<a href="/constructor/true">true</a> peer:<a href="/type/Peer">Peer</a> date:<a href="/type/int">int</a> active_date:flags.3?<a href="/type/int">int</a> source:<a href="/type/int">int</a> volume:flags.7?<a href="/type/int">int</a> about:flags.11?<a href="/type/string">string</a> raise_hand_rating:flags.13?<a href="/type/long">long</a> = <a href="/type/GroupCallParticipant">GroupCallParticipant</a>;<br>
<a href="/constructor/phone.groupCall">phone.groupCall</a>#9e727aad call:<a href="/type/GroupCall">GroupCall</a> participants:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/GroupCallParticipant">GroupCallParticipant</a>&gt; participants_next_offset:<a href="/type/string">string</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/phone.GroupCall">phone.GroupCall</a>;
<a href="/constructor/phone.groupParticipants">phone.groupParticipants</a>#f47751b6 count:<a href="/type/int">int</a> participants:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/GroupCallParticipant">GroupCallParticipant</a>&gt; next_offset:<a href="/type/string">string</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; version:<a href="/type/int">int</a> = <a href="/type/phone.GroupParticipants">phone.GroupParticipants</a>;<br>
<a href="/constructor/inputGroupCallStream">inputGroupCallStream</a>#bba51639 call:<a href="/type/InputGroupCall">InputGroupCall</a> time_ms:<a href="/type/long">long</a> scale:<a href="/type/int">int</a> = <a href="/type/InputFileLocation">InputFileLocation</a>;<br>
<a href="/constructor/phone.joinAsPeers">phone.joinAsPeers</a>#afe5623f 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/phone.JoinAsPeers">phone.JoinAsPeers</a>;
<a href="/constructor/phone.exportedGroupCallInvite">phone.exportedGroupCallInvite</a>#204bd158 link:<a href="/type/string">string</a> = <a href="/type/phone.ExportedGroupCallInvite">phone.ExportedGroupCallInvite</a>;<br>
---functions---<br>
<a href="/method/messages.requestUrlAuth">messages.requestUrlAuth</a>#198fb446 flags:<a href="/type/%23">#</a> peer:flags.1?<a href="/type/InputPeer">InputPeer</a> msg_id:flags.1?<a href="/type/int">int</a> button_id:flags.1?<a href="/type/int">int</a> url:flags.2?<a href="/type/string">string</a> = <a href="/type/UrlAuthResult">UrlAuthResult</a>;
<a href="/method/messages.acceptUrlAuth">messages.acceptUrlAuth</a>#b12c7125 flags:<a href="/type/%23">#</a> write_allowed:flags.0?<a href="/constructor/true">true</a> peer:flags.1?<a href="/type/InputPeer">InputPeer</a> msg_id:flags.1?<a href="/type/int">int</a> button_id:flags.1?<a href="/type/int">int</a> url:flags.2?<a href="/type/string">string</a> = <a href="/type/UrlAuthResult">UrlAuthResult</a>;<br>
<a href="/method/phone.joinGroupCall">phone.joinGroupCall</a>#b132ff7b flags:<a href="/type/%23">#</a> muted:flags.0?<a href="/constructor/true">true</a> video_stopped:flags.2?<a href="/constructor/true">true</a> call:<a href="/type/InputGroupCall">InputGroupCall</a> join_as:<a href="/type/InputPeer">InputPeer</a> invite_hash:flags.1?<a href="/type/string">string</a> params:<a href="/type/DataJSON">DataJSON</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.toggleGroupCallSettings">phone.toggleGroupCallSettings</a>#74bbb43d flags:<a href="/type/%23">#</a> reset_invite_hash:flags.1?<a href="/constructor/true">true</a> call:<a href="/type/InputGroupCall">InputGroupCall</a> join_muted:flags.0?<a href="/type/Bool">Bool</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.getGroupParticipants">phone.getGroupParticipants</a>#c558d8ab call:<a href="/type/InputGroupCall">InputGroupCall</a> ids:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputPeer">InputPeer</a>&gt; sources:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; offset:<a href="/type/string">string</a> limit:<a href="/type/int">int</a> = <a href="/type/phone.GroupParticipants">phone.GroupParticipants</a>;
<a href="/method/phone.toggleGroupCallRecord">phone.toggleGroupCallRecord</a>#c02a66d7 flags:<a href="/type/%23">#</a> start:flags.0?<a href="/constructor/true">true</a> call:<a href="/type/InputGroupCall">InputGroupCall</a> title:flags.1?<a href="/type/string">string</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.editGroupCallParticipant">phone.editGroupCallParticipant</a>#d975eb80 flags:<a href="/type/%23">#</a> muted:flags.0?<a href="/constructor/true">true</a> call:<a href="/type/InputGroupCall">InputGroupCall</a> participant:<a href="/type/InputPeer">InputPeer</a> volume:flags.1?<a href="/type/int">int</a> raise_hand:flags.2?<a href="/type/Bool">Bool</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.editGroupCallTitle">phone.editGroupCallTitle</a>#1ca6ac0a call:<a href="/type/InputGroupCall">InputGroupCall</a> title:<a href="/type/string">string</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.getGroupCallJoinAs">phone.getGroupCallJoinAs</a>#ef7c213a peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/phone.JoinAsPeers">phone.JoinAsPeers</a>;
<a href="/method/phone.exportGroupCallInvite">phone.exportGroupCallInvite</a>#e6aa647f flags:<a href="/type/%23">#</a> can_self_unmute:flags.0?<a href="/constructor/true">true</a> call:<a href="/type/InputGroupCall">InputGroupCall</a> = <a href="/type/phone.ExportedGroupCallInvite">phone.ExportedGroupCallInvite</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-124" id="layer-124" name="layer-124"><i class="anchor-icon"></i></a><a href="/schema?layer=124">Layer 124</a></h3>
<p>Expiring invite links, self-destruction settings for all messages in a chat, gigagroups, <a href="/api/import">chat import</a> 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.getExportedChatInvites">messages.getExportedChatInvites</a> - Get info about the chat invites of a specific chat</li>
<li>Added <a href="/method/messages.getExportedChatInvite">messages.getExportedChatInvite</a> - Get info about a chat invite</li>
<li>Added <a href="/method/messages.editExportedChatInvite">messages.editExportedChatInvite</a> - Edit an exported chat invite</li>
<li>Added <a href="/method/messages.deleteRevokedExportedChatInvites">messages.deleteRevokedExportedChatInvites</a> - Delete all revoked chat invites</li>
<li>Added <a href="/method/messages.deleteExportedChatInvite">messages.deleteExportedChatInvite</a> - Delete a chat invite</li>
<li>Added <a href="/method/messages.getAdminsWithInvites">messages.getAdminsWithInvites</a> - Get info about chat invites generated by admins.</li>
<li>Added <a href="/method/messages.getChatInviteImporters">messages.getChatInviteImporters</a> - Get info about the users that joined the chat using a specific chat invite</li>
<li>Added <a href="/method/messages.setHistoryTTL">messages.setHistoryTTL</a> - Set maximum Time-To-Live of all messages in the specified chat</li>
<li>Added <a href="/method/account.reportProfilePhoto">account.reportProfilePhoto</a> - Report a profile photo of a dialog</li>
<li>Added <a href="/method/channels.convertToGigagroup">channels.convertToGigagroup</a> - Convert a <a href="/api/channel">supergroup</a> to a <a href="/api/channel">gigagroup</a>, when requested by <a href="/api/config#channel-suggestions">channel suggestions</a>.</li>
<li>Added <a href="/method/messages.checkHistoryImportPeer">messages.checkHistoryImportPeer</a> - Check whether chat history exported from another chat app can be <a href="/api/import">imported into a specific Telegram chat, click here for more info »</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>message</strong> parameter in <a href="/method/account.reportPeer">account.reportPeer</a></li>
<li>Added <strong>message</strong> parameter in <a href="/method/messages.report">messages.report</a></li>
<li>Added <strong>flags</strong>, <strong>legacy_revoke_permanent</strong>, <strong>expire_date</strong>, <strong>usage_limit</strong> parameters in <a href="/method/messages.exportChatInvite">messages.exportChatInvite</a></li>
<li>Added <strong>peer</strong> parameter in <a href="/method/help.dismissSuggestion">help.dismissSuggestion</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/messageActionSetMessagesTTL">messageActionSetMessagesTTL</a> - The Time-To-Live of messages in this chat was changed.</li>
<li>Added <a href="/constructor/updatePeerHistoryTTL">updatePeerHistoryTTL</a> - The Time-To-Live for messages sent by the current user in a specific chat has changed</li>
<li>Added <a href="/constructor/updateChatParticipant">updateChatParticipant</a> - A user has joined or left a specific chat</li>
<li>Added <a href="/constructor/updateChannelParticipant">updateChannelParticipant</a> - A participant has left, joined, was banned or admined in a <a href="/api/channel">channel or supergroup</a>.</li>
<li>Added <a href="/constructor/updateBotStopped">updateBotStopped</a> - A bot was stopped or re-started.</li>
<li>Added <a href="/constructor/chatInviteImporter">chatInviteImporter</a> - When and which user joined the chat using a chat invite</li>
<li>Added <a href="/constructor/messages.exportedChatInvites">messages.exportedChatInvites</a> - Info about chat invites exported by a certain admin.</li>
<li>Added <a href="/constructor/messages.exportedChatInvite">messages.exportedChatInvite</a> - Info about a chat invite</li>
<li>Added <a href="/constructor/messages.exportedChatInviteReplaced">messages.exportedChatInviteReplaced</a> - The specified chat invite was replaced with another one</li>
<li>Added <a href="/constructor/messages.chatInviteImporters">messages.chatInviteImporters</a> - Info about the users that joined the chat using a specific chat invite</li>
<li>Added <a href="/constructor/chatAdminWithInvites">chatAdminWithInvites</a> - Info about chat invites generated by admins.</li>
<li>Added <a href="/constructor/messages.chatAdminsWithInvites">messages.chatAdminsWithInvites</a> - Info about chat invites generated by admins.</li>
<li>Added <a href="/constructor/channelAdminLogEventActionParticipantJoinByInvite">channelAdminLogEventActionParticipantJoinByInvite</a> - A user joined the <a href="/api/channel">supergroup/channel</a> using a specific invite link</li>
<li>Added <a href="/constructor/channelAdminLogEventActionExportedInviteDelete">channelAdminLogEventActionExportedInviteDelete</a> - A chat invite was deleted</li>
<li>Added <a href="/constructor/channelAdminLogEventActionExportedInviteRevoke">channelAdminLogEventActionExportedInviteRevoke</a> - A specific invite link was revoked</li>
<li>Added <a href="/constructor/channelAdminLogEventActionExportedInviteEdit">channelAdminLogEventActionExportedInviteEdit</a> - A chat invite was edited</li>
<li>Added <a href="/constructor/channelAdminLogEventActionParticipantVolume">channelAdminLogEventActionParticipantVolume</a> - channelAdminLogEvent.user_id has set the volume of participant.peer to participant.volume</li>
<li>Added <a href="/constructor/channelAdminLogEventActionChangeHistoryTTL">channelAdminLogEventActionChangeHistoryTTL</a> - The Time-To-Live of messages in this chat was changed</li>
<li>Added <a href="/constructor/messages.checkedHistoryImportPeer">messages.checkedHistoryImportPeer</a> - Contains a confirmation text to be shown to the user, upon <a href="/api/import">importing chat history, click here 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>ttl_period</strong> parameter in <a href="/constructor/chatFull">chatFull</a></li>
<li>Added <strong>ttl_period</strong> parameter in <a href="/constructor/message">message</a></li>
<li>Added <strong>ttl_period</strong> parameter in <a href="/constructor/messageService">messageService</a></li>
<li>Removed <strong>text</strong> parameter in <a href="/constructor/inputReportReasonOther">inputReportReasonOther</a></li>
<li>Added <strong>ttl_period</strong> parameter in <a href="/constructor/userFull">userFull</a></li>
<li>Added <strong>ttl_period</strong> parameter in <a href="/constructor/updateShortMessage">updateShortMessage</a></li>
<li>Added <strong>ttl_period</strong> parameter in <a href="/constructor/updateShortChatMessage">updateShortChatMessage</a></li>
<li>Added <strong>ttl_period</strong> parameter in <a href="/constructor/updateShortSentMessage">updateShortSentMessage</a></li>
<li>Added <strong>ttl_period</strong>, <strong>pending_suggestions</strong> parameters in <a href="/constructor/channelFull">channelFull</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>#f06c4018 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/int">int</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> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/message">message</a>#bce383d2 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> 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/int">int</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>;
<a href="/constructor/messageService">messageService</a>#2b085862 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> legacy:flags.19?<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> reply_to:flags.3?<a href="/type/MessageReplyHeader">MessageReplyHeader</a> date:<a href="/type/int">int</a> action:<a href="/type/MessageAction">MessageAction</a> ttl_period:flags.25?<a href="/type/int">int</a> = <a href="/type/Message">Message</a>;<br>
<a href="/constructor/inputReportReasonOther">inputReportReasonOther</a>#c1e4a2b1 = <a href="/type/ReportReason">ReportReason</a>;<br>
<a href="/constructor/userFull">userFull</a>#139a9a77 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> user:<a href="/type/User">User</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> = <a href="/type/UserFull">UserFull</a>;
<a href="/constructor/updateShortMessage">updateShortMessage</a>#faeff833 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> id:<a href="/type/int">int</a> user_id:<a href="/type/int">int</a> message:<a href="/type/string">string</a> pts:<a href="/type/int">int</a> pts_count:<a href="/type/int">int</a> date:<a href="/type/int">int</a> fwd_from:flags.2?<a href="/type/MessageFwdHeader">MessageFwdHeader</a> via_bot_id:flags.11?<a href="/type/int">int</a> reply_to:flags.3?<a href="/type/MessageReplyHeader">MessageReplyHeader</a> entities:flags.7?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; ttl_period:flags.25?<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;
<a href="/constructor/updateShortChatMessage">updateShortChatMessage</a>#1157b858 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> id:<a href="/type/int">int</a> from_id:<a href="/type/int">int</a> chat_id:<a href="/type/int">int</a> message:<a href="/type/string">string</a> pts:<a href="/type/int">int</a> pts_count:<a href="/type/int">int</a> date:<a href="/type/int">int</a> fwd_from:flags.2?<a href="/type/MessageFwdHeader">MessageFwdHeader</a> via_bot_id:flags.11?<a href="/type/int">int</a> reply_to:flags.3?<a href="/type/MessageReplyHeader">MessageReplyHeader</a> entities:flags.7?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; ttl_period:flags.25?<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;
<a href="/constructor/updateShortSentMessage">updateShortSentMessage</a>#9015e101 flags:<a href="/type/%23">#</a> out:flags.1?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> pts:<a href="/type/int">int</a> pts_count:<a href="/type/int">int</a> date:<a href="/type/int">int</a> media:flags.9?<a href="/type/MessageMedia">MessageMedia</a> entities:flags.7?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; ttl_period:flags.25?<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/constructor/channelFull">channelFull</a>#2548c037 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/int">int</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/int">int</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/int">int</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; = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/messageActionSetMessagesTTL">messageActionSetMessagesTTL</a>#aa1afbfd period:<a href="/type/int">int</a> = <a href="/type/MessageAction">MessageAction</a>;<br>
<a href="/constructor/updatePeerHistoryTTL">updatePeerHistoryTTL</a>#bb9bb9a5 flags:<a href="/type/%23">#</a> peer:<a href="/type/Peer">Peer</a> ttl_period:flags.0?<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateChatParticipant">updateChatParticipant</a>#f3b3781f flags:<a href="/type/%23">#</a> chat_id:<a href="/type/int">int</a> date:<a href="/type/int">int</a> actor_id:<a href="/type/int">int</a> user_id:<a href="/type/int">int</a> prev_participant:flags.0?<a href="/type/ChatParticipant">ChatParticipant</a> new_participant:flags.1?<a href="/type/ChatParticipant">ChatParticipant</a> invite:flags.2?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> qts:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateChannelParticipant">updateChannelParticipant</a>#7fecb1ec flags:<a href="/type/%23">#</a> channel_id:<a href="/type/int">int</a> date:<a href="/type/int">int</a> actor_id:<a href="/type/int">int</a> user_id:<a href="/type/int">int</a> prev_participant:flags.0?<a href="/type/ChannelParticipant">ChannelParticipant</a> new_participant:flags.1?<a href="/type/ChannelParticipant">ChannelParticipant</a> invite:flags.2?<a href="/type/ExportedChatInvite">ExportedChatInvite</a> qts:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateBotStopped">updateBotStopped</a>#07f9488a user_id:<a href="/type/int">int</a> date:<a href="/type/int">int</a> stopped:<a href="/type/Bool">Bool</a> qts:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/chatInviteImporter">chatInviteImporter</a>#1e3e6680 user_id:<a href="/type/int">int</a> date:<a href="/type/int">int</a> = <a href="/type/ChatInviteImporter">ChatInviteImporter</a>;<br>
<a href="/constructor/messages.exportedChatInvites">messages.exportedChatInvites</a>#bdc62dcc count:<a href="/type/int">int</a> invites:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/ExportedChatInvite">ExportedChatInvite</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/messages.ExportedChatInvites">messages.ExportedChatInvites</a>;
<a href="/constructor/messages.exportedChatInvite">messages.exportedChatInvite</a>#1871be50 invite:<a href="/type/ExportedChatInvite">ExportedChatInvite</a> users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/messages.ExportedChatInvite">messages.ExportedChatInvite</a>;
<a href="/constructor/messages.exportedChatInviteReplaced">messages.exportedChatInviteReplaced</a>#222600ef invite:<a href="/type/ExportedChatInvite">ExportedChatInvite</a> new_invite:<a href="/type/ExportedChatInvite">ExportedChatInvite</a> users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/messages.ExportedChatInvite">messages.ExportedChatInvite</a>;
<a href="/constructor/messages.chatInviteImporters">messages.chatInviteImporters</a>#81b6b00a count:<a href="/type/int">int</a> importers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/ChatInviteImporter">ChatInviteImporter</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/messages.ChatInviteImporters">messages.ChatInviteImporters</a>;<br>
<a href="/constructor/chatAdminWithInvites">chatAdminWithInvites</a>#dfd2330f admin_id:<a href="/type/int">int</a> invites_count:<a href="/type/int">int</a> revoked_invites_count:<a href="/type/int">int</a> = <a href="/type/ChatAdminWithInvites">ChatAdminWithInvites</a>;<br>
<a href="/constructor/messages.chatAdminsWithInvites">messages.chatAdminsWithInvites</a>#b69b72d7 admins:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/ChatAdminWithInvites">ChatAdminWithInvites</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/messages.ChatAdminsWithInvites">messages.ChatAdminsWithInvites</a>;<br>
<a href="/constructor/channelAdminLogEventActionParticipantJoinByInvite">channelAdminLogEventActionParticipantJoinByInvite</a>#5cdada77 invite:<a href="/type/ExportedChatInvite">ExportedChatInvite</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;
<a href="/constructor/channelAdminLogEventActionExportedInviteDelete">channelAdminLogEventActionExportedInviteDelete</a>#5a50fca4 invite:<a href="/type/ExportedChatInvite">ExportedChatInvite</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;
<a href="/constructor/channelAdminLogEventActionExportedInviteRevoke">channelAdminLogEventActionExportedInviteRevoke</a>#410a134e invite:<a href="/type/ExportedChatInvite">ExportedChatInvite</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;
<a href="/constructor/channelAdminLogEventActionExportedInviteEdit">channelAdminLogEventActionExportedInviteEdit</a>#e90ebb59 prev_invite:<a href="/type/ExportedChatInvite">ExportedChatInvite</a> new_invite:<a href="/type/ExportedChatInvite">ExportedChatInvite</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;
<a href="/constructor/channelAdminLogEventActionParticipantVolume">channelAdminLogEventActionParticipantVolume</a>#3e7f6847 participant:<a href="/type/GroupCallParticipant">GroupCallParticipant</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;
<a href="/constructor/channelAdminLogEventActionChangeHistoryTTL">channelAdminLogEventActionChangeHistoryTTL</a>#6e941a38 prev_value:<a href="/type/int">int</a> new_value:<a href="/type/int">int</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;<br>
<a href="/constructor/messages.checkedHistoryImportPeer">messages.checkedHistoryImportPeer</a>#a24de717 confirm_text:<a href="/type/string">string</a> = <a href="/type/messages.CheckedHistoryImportPeer">messages.CheckedHistoryImportPeer</a>;<br>
---functions---<br>
<a href="/method/account.reportPeer">account.reportPeer</a>#c5ba3d86 peer:<a href="/type/InputPeer">InputPeer</a> reason:<a href="/type/ReportReason">ReportReason</a> message:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/messages.report">messages.report</a>#8953ab4e peer:<a href="/type/InputPeer">InputPeer</a> id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; reason:<a href="/type/ReportReason">ReportReason</a> message:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.exportChatInvite">messages.exportChatInvite</a>#14b9bcd7 flags:<a href="/type/%23">#</a> legacy_revoke_permanent:flags.2?<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> = <a href="/type/ExportedChatInvite">ExportedChatInvite</a>;<br>
<a href="/method/help.dismissSuggestion">help.dismissSuggestion</a>#f50dbaa1 peer:<a href="/type/InputPeer">InputPeer</a> suggestion:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/messages.getExportedChatInvites">messages.getExportedChatInvites</a>#a2b5a3f6 flags:<a href="/type/%23">#</a> revoked:flags.3?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> admin_id:<a href="/type/InputUser">InputUser</a> offset_date:flags.2?<a href="/type/int">int</a> offset_link:flags.2?<a href="/type/string">string</a> limit:<a href="/type/int">int</a> = <a href="/type/messages.ExportedChatInvites">messages.ExportedChatInvites</a>;
<a href="/method/messages.getExportedChatInvite">messages.getExportedChatInvite</a>#73746f5c peer:<a href="/type/InputPeer">InputPeer</a> link:<a href="/type/string">string</a> = <a href="/type/messages.ExportedChatInvite">messages.ExportedChatInvite</a>;
<a href="/method/messages.editExportedChatInvite">messages.editExportedChatInvite</a>#02e4ffbe 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> = <a href="/type/messages.ExportedChatInvite">messages.ExportedChatInvite</a>;
<a href="/method/messages.deleteRevokedExportedChatInvites">messages.deleteRevokedExportedChatInvites</a>#56987bd5 peer:<a href="/type/InputPeer">InputPeer</a> admin_id:<a href="/type/InputUser">InputUser</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.deleteExportedChatInvite">messages.deleteExportedChatInvite</a>#d464a42b peer:<a href="/type/InputPeer">InputPeer</a> link:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.getAdminsWithInvites">messages.getAdminsWithInvites</a>#3920e6ef peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/messages.ChatAdminsWithInvites">messages.ChatAdminsWithInvites</a>;
<a href="/method/messages.getChatInviteImporters">messages.getChatInviteImporters</a>#26fb7289 peer:<a href="/type/InputPeer">InputPeer</a> link:<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>;
<a href="/method/messages.setHistoryTTL">messages.setHistoryTTL</a>#b80e5fe4 peer:<a href="/type/InputPeer">InputPeer</a> period:<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/account.reportProfilePhoto">account.reportProfilePhoto</a>#fa8cc6f5 peer:<a href="/type/InputPeer">InputPeer</a> photo_id:<a href="/type/InputPhoto">InputPhoto</a> reason:<a href="/type/ReportReason">ReportReason</a> message:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/channels.convertToGigagroup">channels.convertToGigagroup</a>#0b290c69 channel:<a href="/type/InputChannel">InputChannel</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/messages.checkHistoryImportPeer">messages.checkHistoryImportPeer</a>#5dc60f03 peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/messages.CheckedHistoryImportPeer">messages.CheckedHistoryImportPeer</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-123" id="layer-123" name="layer-123"><i class="anchor-icon"></i></a><a href="/schema?layer=123">Layer 123</a></h3>
<p><a href="/api/import">Import messages from foreign chat apps</a>, delete history for both users upon deletion of a secret chat, delete phone call history, group call 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.deleteChat">messages.deleteChat</a> - Delete a <a href="/api/channel">chat</a></li>
<li>Added <a href="/method/messages.deletePhoneCallHistory">messages.deletePhoneCallHistory</a> - Delete the entire phone call history.</li>
<li>Added <a href="/method/messages.checkHistoryImport">messages.checkHistoryImport</a> - Obtains information about a chat export file, generated by a foreign chat app, <a href="/api/import">click here for more info about imported chats »</a>.</li>
<li>Added <a href="/method/messages.initHistoryImport">messages.initHistoryImport</a> - Import chat history from a foreign chat app into a specific Telegram chat, <a href="/api/import">click here for more info about imported chats »</a>.</li>
<li>Added <a href="/method/messages.uploadImportedMedia">messages.uploadImportedMedia</a> - Upload a media file associated with an <a href="/api/import">imported chat, click here for more info »</a>.</li>
<li>Added <a href="/method/messages.startHistoryImport">messages.startHistoryImport</a> - Complete the <a href="/api/import">history import process</a>, importing all messages into the chat. </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>revoke_history</strong> parameters in <a href="/method/messages.deleteChatUser">messages.deleteChatUser</a></li>
<li>Added <strong>flags</strong>, <strong>delete_history</strong> parameters in <a href="/method/messages.discardEncryption">messages.discardEncryption</a></li>
<li>Added <strong>volume</strong> parameter in <a href="/method/phone.editGroupCallMember">phone.editGroupCallMember</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/inputPaymentCredentialsGooglePay">inputPaymentCredentialsGooglePay</a> - Google Pay payment credentials</li>
<li>Added <a href="/constructor/messages.historyImport">messages.historyImport</a> - ID of a specific <a href="/api/import">chat import session, click here for more info »</a>.</li>
<li>Added <a href="/constructor/sendMessageHistoryImportAction">sendMessageHistoryImportAction</a> - Chat history is being imported</li>
<li>Added <a href="/constructor/messages.historyImportParsed">messages.historyImportParsed</a> - Contains information about a chat export file <a href="/api/import">generated by a foreign chat app, click here for more info</a>. </li>
<li>Added <a href="/constructor/inputReportReasonFake">inputReportReasonFake</a> - Report for impersonation</li>
<li>Added <a href="/constructor/messages.affectedFoundMessages">messages.affectedFoundMessages</a> - Messages found and affected by changes</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>exported_invite</strong> from <strong>ExportedChatInvite</strong> to <strong>flags.13?ExportedChatInvite</strong> in <a href="/constructor/chatFull">chatFull</a></li>
<li>Added <strong>flags</strong>, <strong>peer_id</strong> parameters in <a href="/constructor/messageEmpty">messageEmpty</a></li>
<li>Added <strong>flags</strong>, <strong>history_deleted</strong> parameters in <a href="/constructor/encryptedChatDiscarded">encryptedChatDiscarded</a></li>
<li>Added <strong>flags</strong>, <strong>revoked</strong>, <strong>permanent</strong>, <strong>admin_id</strong>, <strong>date</strong>, <strong>start_date</strong>, <strong>expire_date</strong>, <strong>usage_limit</strong>, <strong>usage</strong> parameters in <a href="/constructor/chatInviteExported">chatInviteExported</a></li>
<li>Added <strong>fake</strong> parameter in <a href="/constructor/user">user</a></li>
<li>Added <strong>fake</strong>, <strong>gigagroup</strong> parameters in <a href="/constructor/channel">channel</a></li>
<li>Changed type of <strong>exported_invite</strong> from <strong>ExportedChatInvite</strong> to <strong>flags.23?ExportedChatInvite</strong> in <a href="/constructor/channelFull">channelFull</a></li>
<li>Added <strong>min</strong>, <strong>muted_by_you</strong>, <strong>volume_by_admin</strong>, <strong>volume</strong> parameters in <a href="/constructor/groupCallParticipant">groupCallParticipant</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 chatInviteEmpty</li>
<li>Removed inputPaymentCredentialsAndroidPay</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>#f3474af6 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/int">int</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> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/messageEmpty">messageEmpty</a>#90a6ca84 flags:<a href="/type/%23">#</a> id:<a href="/type/int">int</a> peer_id:flags.0?<a href="/type/Peer">Peer</a> = <a href="/type/Message">Message</a>;<br>
<a href="/constructor/encryptedChatDiscarded">encryptedChatDiscarded</a>#1e1c7c45 flags:<a href="/type/%23">#</a> history_deleted:flags.0?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> = <a href="/type/EncryptedChat">EncryptedChat</a>;<br>
<a href="/constructor/chatInviteExported">chatInviteExported</a>#6e24fc9d flags:<a href="/type/%23">#</a> revoked:flags.0?<a href="/constructor/true">true</a> permanent:flags.5?<a href="/constructor/true">true</a> link:<a href="/type/string">string</a> admin_id:<a href="/type/int">int</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> = <a href="/type/ExportedChatInvite">ExportedChatInvite</a>;<br>
<a href="/constructor/user">user</a>#938458c1 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> id:<a href="/type/int">int</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/channel">channel</a>#d31a961e 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> id:<a href="/type/int">int</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> version:<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>#7a7de4f7 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/int">int</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/int">int</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/int">int</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> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/groupCallParticipant">groupCallParticipant</a>#64c62a15 flags:<a href="/type/%23">#</a> muted:flags.0?<a href="/constructor/true">true</a> left:flags.1?<a href="/constructor/true">true</a> can_self_unmute:flags.2?<a href="/constructor/true">true</a> just_joined:flags.4?<a href="/constructor/true">true</a> versioned:flags.5?<a href="/constructor/true">true</a> min:flags.8?<a href="/constructor/true">true</a> muted_by_you:flags.9?<a href="/constructor/true">true</a> volume_by_admin:flags.10?<a href="/constructor/true">true</a> user_id:<a href="/type/int">int</a> date:<a href="/type/int">int</a> active_date:flags.3?<a href="/type/int">int</a> source:<a href="/type/int">int</a> volume:flags.7?<a href="/type/int">int</a> = <a href="/type/GroupCallParticipant">GroupCallParticipant</a>;<br>
<a href="/constructor/inputPaymentCredentialsGooglePay">inputPaymentCredentialsGooglePay</a>#8ac32801 payment_token:<a href="/type/DataJSON">DataJSON</a> = <a href="/type/InputPaymentCredentials">InputPaymentCredentials</a>;<br>
<a href="/constructor/messages.historyImport">messages.historyImport</a>#1662af0b id:<a href="/type/long">long</a> = <a href="/type/messages.HistoryImport">messages.HistoryImport</a>;<br>
<a href="/constructor/sendMessageHistoryImportAction">sendMessageHistoryImportAction</a>#dbda9246 progress:<a href="/type/int">int</a> = <a href="/type/SendMessageAction">SendMessageAction</a>;<br>
<a href="/constructor/messages.historyImportParsed">messages.historyImportParsed</a>#5e0fb7b9 flags:<a href="/type/%23">#</a> pm:flags.0?<a href="/constructor/true">true</a> group:flags.1?<a href="/constructor/true">true</a> title:flags.2?<a href="/type/string">string</a> = <a href="/type/messages.HistoryImportParsed">messages.HistoryImportParsed</a>;<br>
<a href="/constructor/inputReportReasonFake">inputReportReasonFake</a>#f5ddd6e7 = <a href="/type/ReportReason">ReportReason</a>;<br>
<a href="/constructor/messages.affectedFoundMessages">messages.affectedFoundMessages</a>#ef8d3e6c pts:<a href="/type/int">int</a> pts_count:<a href="/type/int">int</a> offset:<a href="/type/int">int</a> messages:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/messages.AffectedFoundMessages">messages.AffectedFoundMessages</a>;<br>
---functions---<br>
<a href="/method/messages.deleteChatUser">messages.deleteChatUser</a>#c534459a flags:<a href="/type/%23">#</a> revoke_history:flags.0?<a href="/constructor/true">true</a> chat_id:<a href="/type/int">int</a> user_id:<a href="/type/InputUser">InputUser</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.discardEncryption">messages.discardEncryption</a>#f393aea0 flags:<a href="/type/%23">#</a> delete_history:flags.0?<a href="/constructor/true">true</a> chat_id:<a href="/type/int">int</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/phone.editGroupCallMember">phone.editGroupCallMember</a>#a5e76cd8 flags:<a href="/type/%23">#</a> muted:flags.0?<a href="/constructor/true">true</a> call:<a href="/type/InputGroupCall">InputGroupCall</a> user_id:<a href="/type/InputUser">InputUser</a> volume:flags.1?<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/messages.deleteChat">messages.deleteChat</a>#83247d11 chat_id:<a href="/type/int">int</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.deletePhoneCallHistory">messages.deletePhoneCallHistory</a>#f9cbe409 flags:<a href="/type/%23">#</a> revoke:flags.0?<a href="/constructor/true">true</a> = <a href="/type/messages.AffectedFoundMessages">messages.AffectedFoundMessages</a>;
<a href="/method/messages.checkHistoryImport">messages.checkHistoryImport</a>#43fe19f3 import_head:<a href="/type/string">string</a> = <a href="/type/messages.HistoryImportParsed">messages.HistoryImportParsed</a>;
<a href="/method/messages.initHistoryImport">messages.initHistoryImport</a>#34090c3b peer:<a href="/type/InputPeer">InputPeer</a> file:<a href="/type/InputFile">InputFile</a> media_count:<a href="/type/int">int</a> = <a href="/type/messages.HistoryImport">messages.HistoryImport</a>;
<a href="/method/messages.uploadImportedMedia">messages.uploadImportedMedia</a>#2a862092 peer:<a href="/type/InputPeer">InputPeer</a> import_id:<a href="/type/long">long</a> file_name:<a href="/type/string">string</a> media:<a href="/type/InputMedia">InputMedia</a> = <a href="/type/MessageMedia">MessageMedia</a>;
<a href="/method/messages.startHistoryImport">messages.startHistoryImport</a>#b43df344 peer:<a href="/type/InputPeer">InputPeer</a> import_id:<a href="/type/long">long</a> = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-122" id="layer-122" name="layer-122"><i class="anchor-icon"></i></a><a href="/schema?layer=122">Layer 122</a></h3>
<p>Group calls.</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/phone.createGroupCall">phone.createGroupCall</a> - Create a group call or livestream</li>
<li>Added <a href="/method/phone.joinGroupCall">phone.joinGroupCall</a> - Join a group call</li>
<li>Added <a href="/method/phone.leaveGroupCall">phone.leaveGroupCall</a> - Leave a group call</li>
<li>Added <a href="/method/phone.editGroupCallMember">phone.editGroupCallMember</a></li>
<li>Added <a href="/method/phone.inviteToGroupCall">phone.inviteToGroupCall</a> - Invite a set of users to a group call.</li>
<li>Added <a href="/method/phone.discardGroupCall">phone.discardGroupCall</a> - Terminate a group call</li>
<li>Added <a href="/method/phone.toggleGroupCallSettings">phone.toggleGroupCallSettings</a> - Change group call settings</li>
<li>Added <a href="/method/phone.getGroupCall">phone.getGroupCall</a> - Get info about a group call</li>
<li>Added <a href="/method/phone.getGroupParticipants">phone.getGroupParticipants</a> - Get group call participants</li>
<li>Added <a href="/method/phone.checkGroupCall">phone.checkGroupCall</a> - Check whether the group call Server Forwarding Unit is currently receiving the streams with the specified WebRTC source IDs</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>drop_author</strong>, <strong>drop_media_captions</strong> parameters in <a href="/method/messages.forwardMessages">messages.forwardMessages</a></li>
<li>Added <strong>for_import</strong> parameter in <a href="/method/channels.createChannel">channels.createChannel</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/speakingInGroupCallAction">speakingInGroupCallAction</a> - User is currently speaking in the group call</li>
<li>Added <a href="/constructor/groupCallDiscarded">groupCallDiscarded</a> - An ended group call</li>
<li>Added <a href="/constructor/groupCall">groupCall</a> - Info about a group call or livestream</li>
<li>Added <a href="/constructor/inputGroupCall">inputGroupCall</a> - Points to a specific group call</li>
<li>Added <a href="/constructor/messageActionGroupCall">messageActionGroupCall</a> - The group call has ended</li>
<li>Added <a href="/constructor/messageActionInviteToGroupCall">messageActionInviteToGroupCall</a> - A set of users was invited to the group call</li>
<li>Added <a href="/constructor/groupCallParticipant">groupCallParticipant</a> - Info about a group call participant</li>
<li>Added <a href="/constructor/updateChat">updateChat</a> - A new chat is available</li>
<li>Added <a href="/constructor/updateGroupCallParticipants">updateGroupCallParticipants</a> - The participant list of a certain group call has changed</li>
<li>Added <a href="/constructor/updateGroupCall">updateGroupCall</a> - A new groupcall was started</li>
<li>Added <a href="/constructor/phone.groupCall">phone.groupCall</a> - Contains info about a group call, and partial info about its participants.</li>
<li>Added <a href="/constructor/phone.groupParticipants">phone.groupParticipants</a> - Info about the participants of a group call or livestream</li>
<li>Added <a href="/constructor/inlineQueryPeerTypeSameBotPM">inlineQueryPeerTypeSameBotPM</a> - The inline query was sent in a private chat with the bot itself</li>
<li>Added <a href="/constructor/inlineQueryPeerTypePM">inlineQueryPeerTypePM</a> - The inline query was sent in a private chat</li>
<li>Added <a href="/constructor/inlineQueryPeerTypeChat">inlineQueryPeerTypeChat</a> - The inline query was sent in a <a href="/api/channel">chat</a></li>
<li>Added <a href="/constructor/inlineQueryPeerTypeMegagroup">inlineQueryPeerTypeMegagroup</a> - The inline query was sent in a <a href="/api/channel">supergroup</a></li>
<li>Added <a href="/constructor/inlineQueryPeerTypeBroadcast">inlineQueryPeerTypeBroadcast</a> - The inline query was sent in a <a href="/api/channel">channel</a></li>
<li>Added <a href="/constructor/channelAdminLogEventActionStartGroupCall">channelAdminLogEventActionStartGroupCall</a> - A group call was started</li>
<li>Added <a href="/constructor/channelAdminLogEventActionDiscardGroupCall">channelAdminLogEventActionDiscardGroupCall</a> - A group call was terminated</li>
<li>Added <a href="/constructor/channelAdminLogEventActionParticipantMute">channelAdminLogEventActionParticipantMute</a> - A group call participant was muted</li>
<li>Added <a href="/constructor/channelAdminLogEventActionParticipantUnmute">channelAdminLogEventActionParticipantUnmute</a> - A group call participant was unmuted</li>
<li>Added <a href="/constructor/channelAdminLogEventActionToggleGroupCallSetting">channelAdminLogEventActionToggleGroupCallSetting</a> - Group call settings were 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>call_active</strong>, <strong>call_not_empty</strong> parameters in <a href="/constructor/chat">chat</a></li>
<li>Added <strong>call</strong> parameter in <a href="/constructor/chatFull">chatFull</a></li>
<li>Added <strong>invite_members</strong> parameter in <a href="/constructor/peerSettings">peerSettings</a></li>
<li>Added <strong>query</strong> parameter in <a href="/constructor/inputMediaDocument">inputMediaDocument</a></li>
<li>Added <strong>thumbs</strong> parameter, removed <strong>thumb</strong> parameter in <a href="/constructor/stickerSet">stickerSet</a></li>
<li>Added <strong>call_active</strong>, <strong>call_not_empty</strong> parameters in <a href="/constructor/channel">channel</a></li>
<li>Added <strong>call</strong> parameter in <a href="/constructor/channelFull">channelFull</a></li>
<li>Added <strong>peer_type</strong> parameter in <a href="/constructor/updateBotInlineQuery">updateBotInlineQuery</a></li>
<li>Added <strong>imported</strong> parameter in <a href="/constructor/messageFwdHeader">messageFwdHeader</a></li>
<li>Added <strong>group_call</strong>, <strong>invites</strong> parameters in <a href="/constructor/channelAdminLogEventsFilter">channelAdminLogEventsFilter</a></li>
<li>Added <strong>manage_call</strong>, <strong>other</strong> parameters in <a href="/constructor/chatAdminRights">chatAdminRights</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 updateChannelParticipant</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_VOICECHAT_END</a> - <code>{1} ended a voice chat in the group {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_VOICECHAT_INVITE</a> - <code>{1} invited {3} to a voice chat in the group {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_VOICECHAT_INVITE_YOU</a> - <code>{1} invited you to a voice chat in the group {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_VOICECHAT_START</a> - <code>{1} started a voice chat in the group {2}</code></li>
</ul>
<h5><a class="anchor" href="#changed-push-notifications" id="changed-push-notifications" name="changed-push-notifications"><i class="anchor-icon"></i></a>Changed PUSH notifications</h5>
<ul>
<li>Changed template from <code>{1} posted a map</code> to <code>{1} posted a location</code> in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_GEO</a></li>
<li>Changed template from <code>{1} posted a {2}sticker</code> to <code>{1} posted a {2} sticker</code> in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_STICKER</a></li>
<li>Changed template from <code>{1} kicked {3} from the group {2}</code> to <code>{1} removed {3} from the group {2}</code> in <a href="/api/push-updates#possible-notifications">CHAT_DELETE_MEMBER</a></li>
<li>Changed template from <code>{1} kicked you from the group {2}</code> to <code>{1} removed you from the group {2}</code> in <a href="/api/push-updates#possible-notifications">CHAT_DELETE_YOU</a></li>
<li>Changed template from <code>{1} has joined the group {2}</code> to <code>{1} joined the group {2}</code> in <a href="/api/push-updates#possible-notifications">CHAT_JOINED</a></li>
<li>Changed template from <code>{1} has left the group {2}</code> to <code>{1} left the group {2}</code> in <a href="/api/push-updates#possible-notifications">CHAT_LEFT</a></li>
<li>Changed template from <code>{1} invited the group {2} to play {3}.</code> to <code>{1} invited the group {2} to play {3}</code> in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_GAME</a></li>
<li>Changed template from <code>{1} sent a map to the group {2}</code> to <code>{1} sent a location to the group {2}</code> in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_GEO</a></li>
<li>Changed template from <code>{1} started sharing their live location with {2}</code> to <code>{1} shared a live location with the group {2}</code> in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_GEOLIVE</a></li>
<li>Changed template from <code>{1} sent a {3}sticker to the group {2}</code> to <code>{1} sent a {3} sticker to the group {2}</code> in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_STICKER</a></li>
<li>Changed template from <code>{1}@{2}: {3}</code> to <code>{1} @ {2}: {3}</code> in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_TEXT</a></li>
<li>Changed template from <code>{1} edited the group's {2} photo</code> to <code>{1} changed the group photo for {2}</code> in <a href="/api/push-updates#possible-notifications">CHAT_PHOTO_EDITED</a></li>
<li>Changed template from <code>{1} has returned to the group {2}</code> to <code>{1} returned to the group {2}</code> in <a href="/api/push-updates#possible-notifications">CHAT_RETURNED</a></li>
<li>Changed template from <code>{1} edited the group's {2} name</code> to <code>{1} renamed the group {2}</code> in <a href="/api/push-updates#possible-notifications">CHAT_TITLE_EDITED</a></li>
<li>Changed template from <code>{1} sent you a map</code> to <code>{1} sent you a location</code> in <a href="/api/push-updates#possible-notifications">MESSAGE_GEO</a></li>
<li>Changed template from <code>{1} started sharing their live location</code> to <code>{1} sent you a live location</code> in <a href="/api/push-updates#possible-notifications">MESSAGE_GEOLIVE</a></li>
<li>Changed template from <code>{1} sent you a {2}sticker</code> to <code>{1} sent you a {2} sticker</code> in <a href="/api/push-updates#possible-notifications">MESSAGE_STICKER</a></li>
<li>Changed template from <code>{1} pinned a {2}sticker</code> to <code>{1} pinned a {2} sticker</code> in <a href="/api/push-updates#possible-notifications">PINNED_STICKER</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>#3bda1bde 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> id:<a href="/type/int">int</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>;
<a href="/constructor/chatFull">chatFull</a>#0dc8c181 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/int">int</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:<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> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/peerSettings">peerSettings</a>#733f2961 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> geo_distance:flags.6?<a href="/type/int">int</a> = <a href="/type/PeerSettings">PeerSettings</a>;<br>
<a href="/constructor/inputMediaDocument">inputMediaDocument</a>#33473058 flags:<a href="/type/%23">#</a> id:<a href="/type/InputDocument">InputDocument</a> ttl_seconds:flags.0?<a href="/type/int">int</a> query:flags.1?<a href="/type/string">string</a> = <a href="/type/InputMedia">InputMedia</a>;<br>
<a href="/constructor/stickerSet">stickerSet</a>#40e237a8 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> 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> count:<a href="/type/int">int</a> hash:<a href="/type/int">int</a> = <a href="/type/StickerSet">StickerSet</a>;<br>
<a href="/constructor/channel">channel</a>#d31a961e 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> id:<a href="/type/int">int</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> version:<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>#ef3a6acd 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/int">int</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:<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/int">int</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/int">int</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> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/updateBotInlineQuery">updateBotInlineQuery</a>#3f2038db flags:<a href="/type/%23">#</a> query_id:<a href="/type/long">long</a> user_id:<a href="/type/int">int</a> query:<a href="/type/string">string</a> geo:flags.0?<a href="/type/GeoPoint">GeoPoint</a> peer_type:flags.1?<a href="/type/InlineQueryPeerType">InlineQueryPeerType</a> offset:<a href="/type/string">string</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/messageFwdHeader">messageFwdHeader</a>#5f777dce flags:<a href="/type/%23">#</a> imported:flags.7?<a href="/constructor/true">true</a> from_id:flags.0?<a href="/type/Peer">Peer</a> from_name:flags.5?<a href="/type/string">string</a> date:<a href="/type/int">int</a> channel_post:flags.2?<a href="/type/int">int</a> post_author:flags.3?<a href="/type/string">string</a> saved_from_peer:flags.4?<a href="/type/Peer">Peer</a> saved_from_msg_id:flags.4?<a href="/type/int">int</a> psa_type:flags.6?<a href="/type/string">string</a> = <a href="/type/MessageFwdHeader">MessageFwdHeader</a>;<br>
<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> = <a href="/type/ChannelAdminLogEventsFilter">ChannelAdminLogEventsFilter</a>;
<a href="/constructor/chatAdminRights">chatAdminRights</a>#5fb224d5 flags:<a href="/type/%23">#</a> change_info:flags.0?<a href="/constructor/true">true</a> post_messages:flags.1?<a href="/constructor/true">true</a> edit_messages:flags.2?<a href="/constructor/true">true</a> delete_messages:flags.3?<a href="/constructor/true">true</a> ban_users:flags.4?<a href="/constructor/true">true</a> invite_users:flags.5?<a href="/constructor/true">true</a> pin_messages:flags.7?<a href="/constructor/true">true</a> add_admins:flags.9?<a href="/constructor/true">true</a> anonymous:flags.10?<a href="/constructor/true">true</a> manage_call:flags.11?<a href="/constructor/true">true</a> other:flags.12?<a href="/constructor/true">true</a> = <a href="/type/ChatAdminRights">ChatAdminRights</a>;<br>
<a href="/constructor/speakingInGroupCallAction">speakingInGroupCallAction</a>#d92c2285 = <a href="/type/SendMessageAction">SendMessageAction</a>;<br>
<a href="/constructor/groupCallDiscarded">groupCallDiscarded</a>#7780bcb4 id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> duration:<a href="/type/int">int</a> = <a href="/type/GroupCall">GroupCall</a>;
<a href="/constructor/groupCall">groupCall</a>#55903081 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> id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> participants_count:<a href="/type/int">int</a> params:flags.0?<a href="/type/DataJSON">DataJSON</a> version:<a href="/type/int">int</a> = <a href="/type/GroupCall">GroupCall</a>;<br>
<a href="/constructor/inputGroupCall">inputGroupCall</a>#d8aa840f id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> = <a href="/type/InputGroupCall">InputGroupCall</a>;<br>
<a href="/constructor/messageActionGroupCall">messageActionGroupCall</a>#7a0d7f42 flags:<a href="/type/%23">#</a> call:<a href="/type/InputGroupCall">InputGroupCall</a> duration:flags.0?<a href="/type/int">int</a> = <a href="/type/MessageAction">MessageAction</a>;
<a href="/constructor/messageActionInviteToGroupCall">messageActionInviteToGroupCall</a>#76b9f11a call:<a href="/type/InputGroupCall">InputGroupCall</a> users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/MessageAction">MessageAction</a>;<br>
<a href="/constructor/groupCallParticipant">groupCallParticipant</a>#56b087c9 flags:<a href="/type/%23">#</a> muted:flags.0?<a href="/constructor/true">true</a> left:flags.1?<a href="/constructor/true">true</a> can_self_unmute:flags.2?<a href="/constructor/true">true</a> just_joined:flags.4?<a href="/constructor/true">true</a> versioned:flags.5?<a href="/constructor/true">true</a> user_id:<a href="/type/int">int</a> date:<a href="/type/int">int</a> active_date:flags.3?<a href="/type/int">int</a> source:<a href="/type/int">int</a> = <a href="/type/GroupCallParticipant">GroupCallParticipant</a>;<br>
<a href="/constructor/updateChat">updateChat</a>#1330a196 chat_id:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateGroupCallParticipants">updateGroupCallParticipants</a>#f2ebdb4e call:<a href="/type/InputGroupCall">InputGroupCall</a> participants:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/GroupCallParticipant">GroupCallParticipant</a>&gt; version:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateGroupCall">updateGroupCall</a>#a45eb99b chat_id:<a href="/type/int">int</a> call:<a href="/type/GroupCall">GroupCall</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/phone.groupCall">phone.groupCall</a>#66ab0bfc call:<a href="/type/GroupCall">GroupCall</a> participants:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/GroupCallParticipant">GroupCallParticipant</a>&gt; participants_next_offset:<a href="/type/string">string</a> users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/phone.GroupCall">phone.GroupCall</a>;
<a href="/constructor/phone.groupParticipants">phone.groupParticipants</a>#9cfeb92d count:<a href="/type/int">int</a> participants:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/GroupCallParticipant">GroupCallParticipant</a>&gt; next_offset:<a href="/type/string">string</a> users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; version:<a href="/type/int">int</a> = <a href="/type/phone.GroupParticipants">phone.GroupParticipants</a>;<br>
<a href="/constructor/inlineQueryPeerTypeSameBotPM">inlineQueryPeerTypeSameBotPM</a>#3081ed9d = <a href="/type/InlineQueryPeerType">InlineQueryPeerType</a>;
<a href="/constructor/inlineQueryPeerTypePM">inlineQueryPeerTypePM</a>#833c0fac = <a href="/type/InlineQueryPeerType">InlineQueryPeerType</a>;
<a href="/constructor/inlineQueryPeerTypeChat">inlineQueryPeerTypeChat</a>#d766c50a = <a href="/type/InlineQueryPeerType">InlineQueryPeerType</a>;
<a href="/constructor/inlineQueryPeerTypeMegagroup">inlineQueryPeerTypeMegagroup</a>#5ec4be43 = <a href="/type/InlineQueryPeerType">InlineQueryPeerType</a>;
<a href="/constructor/inlineQueryPeerTypeBroadcast">inlineQueryPeerTypeBroadcast</a>#6334ee9a = <a href="/type/InlineQueryPeerType">InlineQueryPeerType</a>;<br>
<a href="/constructor/channelAdminLogEventActionStartGroupCall">channelAdminLogEventActionStartGroupCall</a>#23209745 call:<a href="/type/InputGroupCall">InputGroupCall</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;
<a href="/constructor/channelAdminLogEventActionDiscardGroupCall">channelAdminLogEventActionDiscardGroupCall</a>#db9f9140 call:<a href="/type/InputGroupCall">InputGroupCall</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;
<a href="/constructor/channelAdminLogEventActionParticipantMute">channelAdminLogEventActionParticipantMute</a>#f92424d2 participant:<a href="/type/GroupCallParticipant">GroupCallParticipant</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;
<a href="/constructor/channelAdminLogEventActionParticipantUnmute">channelAdminLogEventActionParticipantUnmute</a>#e64429c0 participant:<a href="/type/GroupCallParticipant">GroupCallParticipant</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;
<a href="/constructor/channelAdminLogEventActionToggleGroupCallSetting">channelAdminLogEventActionToggleGroupCallSetting</a>#56d6a247 join_muted:<a href="/type/Bool">Bool</a> = <a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a>;<br>
---functions---<br>
<a href="/method/messages.forwardMessages">messages.forwardMessages</a>#d9fee60e 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> 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> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/channels.createChannel">channels.createChannel</a>#3d5fb10f flags:<a href="/type/%23">#</a> broadcast:flags.0?<a href="/constructor/true">true</a> megagroup:flags.1?<a href="/constructor/true">true</a> for_import:flags.3?<a href="/constructor/true">true</a> title:<a href="/type/string">string</a> about:<a href="/type/string">string</a> geo_point:flags.2?<a href="/type/InputGeoPoint">InputGeoPoint</a> address:flags.2?<a href="/type/string">string</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/phone.createGroupCall">phone.createGroupCall</a>#bd3dabe0 peer:<a href="/type/InputPeer">InputPeer</a> random_id:<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.joinGroupCall">phone.joinGroupCall</a>#5f9c8e62 flags:<a href="/type/%23">#</a> muted:flags.0?<a href="/constructor/true">true</a> call:<a href="/type/InputGroupCall">InputGroupCall</a> params:<a href="/type/DataJSON">DataJSON</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.leaveGroupCall">phone.leaveGroupCall</a>#500377f9 call:<a href="/type/InputGroupCall">InputGroupCall</a> source:<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.editGroupCallMember">phone.editGroupCallMember</a>#63146ae4 flags:<a href="/type/%23">#</a> muted:flags.0?<a href="/constructor/true">true</a> call:<a href="/type/InputGroupCall">InputGroupCall</a> user_id:<a href="/type/InputUser">InputUser</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.inviteToGroupCall">phone.inviteToGroupCall</a>#7b393160 call:<a href="/type/InputGroupCall">InputGroupCall</a> users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputUser">InputUser</a>&gt; = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.discardGroupCall">phone.discardGroupCall</a>#7a777135 call:<a href="/type/InputGroupCall">InputGroupCall</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.toggleGroupCallSettings">phone.toggleGroupCallSettings</a>#74bbb43d flags:<a href="/type/%23">#</a> call:<a href="/type/InputGroupCall">InputGroupCall</a> join_muted:flags.0?<a href="/type/Bool">Bool</a> = <a href="/type/Updates">Updates</a>;
<a href="/method/phone.getGroupCall">phone.getGroupCall</a>#0c7cb017 call:<a href="/type/InputGroupCall">InputGroupCall</a> = <a href="/type/phone.GroupCall">phone.GroupCall</a>;
<a href="/method/phone.getGroupParticipants">phone.getGroupParticipants</a>#c9f1d285 call:<a href="/type/InputGroupCall">InputGroupCall</a> ids:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; sources:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; offset:<a href="/type/string">string</a> limit:<a href="/type/int">int</a> = <a href="/type/phone.GroupParticipants">phone.GroupParticipants</a>;
<a href="/method/phone.checkGroupCall">phone.checkGroupCall</a>#b74a7bea call:<a href="/type/InputGroupCall">InputGroupCall</a> source:<a href="/type/int">int</a> = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-121" id="layer-121" name="layer-121"><i class="anchor-icon"></i></a><a href="/schema?layer=121">Layer 121</a></h3>
<p>Added <a href="/api/files#vector-thumbnails">SVG path previews</a> for animated 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-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/photoPathSize">photoPathSize</a> - Messages with animated stickers can have a compressed svg (&lt; 300 bytes) to show the outline of the sticker before fetching the actual lottie animation.</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/photoPathSize">photoPathSize</a>#d8214d41 type:<a href="/type/string">string</a> bytes:<a href="/type/bytes">bytes</a> = <a href="/type/PhotoSize">PhotoSize</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-120" id="layer-120" name="layer-120"><i class="anchor-icon"></i></a><a href="/schema?layer=120">Layer 120</a></h3>
<p>Added <a href="/api/stats">message statistics</a>, and a method to unpin all pinned messages in a chat.</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/stats.getMessagePublicForwards">stats.getMessagePublicForwards</a> - Obtains a list of messages, indicating to which other public channels was a channel message forwarded. </li>
<li>Added <a href="/method/stats.getMessageStats">stats.getMessageStats</a> - Get <a href="/api/stats">message statistics</a></li>
<li>Added <a href="/method/messages.unpinAllMessages">messages.unpinAllMessages</a> - <a href="/api/pin">Unpin</a> all pinned messages</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>from_id</strong> from <strong>flags.0?InputUser</strong> to <strong>flags.0?InputPeer</strong> in <a href="/method/messages.search">messages.search</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/inputMessageCallbackQuery">inputMessageCallbackQuery</a> - Used by bots for fetching information about the message that originated a callback query</li>
<li>Added <a href="/constructor/channelParticipantLeft">channelParticipantLeft</a> - A participant that left the channel/supergroup</li>
<li>Added <a href="/constructor/channelParticipantsMentions">channelParticipantsMentions</a> - This filter is used when looking for supergroup members to mention. </li>
<li>Added <a href="/constructor/updatePinnedMessages">updatePinnedMessages</a> - Some messages were pinned in a chat</li>
<li>Added <a href="/constructor/updatePinnedChannelMessages">updatePinnedChannelMessages</a> - Messages were pinned/unpinned in a <a href="/api/channel">channel/supergroup</a></li>
<li>Added <a href="/constructor/inputMessagesFilterPinned">inputMessagesFilterPinned</a> - Fetch only pinned messages</li>
<li>Added <a href="/constructor/stats.messageStats">stats.messageStats</a> - Message statistics</li>
<li>Added <a href="/constructor/messageActionGeoProximityReached">messageActionGeoProximityReached</a> - A user of the chat is now in proximity of another user</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>flags</strong>, <strong>accuracy_radius</strong> parameters in <a href="/constructor/inputGeoPoint">inputGeoPoint</a></li>
<li>Added <strong>flags</strong>, <strong>accuracy_radius</strong> parameters in <a href="/constructor/geoPoint">geoPoint</a></li>
<li>Added <strong>offset_id_offset</strong> parameter in <a href="/constructor/messages.messagesSlice">messages.messagesSlice</a></li>
<li>Added <strong>offset_id_offset</strong> parameter in <a href="/constructor/messages.channelMessages">messages.channelMessages</a></li>
<li>Added <strong>heading</strong>, <strong>proximity_notification_radius</strong> parameters, changed type of <strong>period</strong> from <strong>int</strong> to <strong>flags.1?int</strong> in <a href="/constructor/inputBotInlineMessageMediaGeo">inputBotInlineMessageMediaGeo</a></li>
<li>Added <strong>heading</strong>, <strong>proximity_notification_radius</strong> parameters, changed type of <strong>period</strong> from <strong>int</strong> to <strong>flags.1?int</strong> in <a href="/constructor/botInlineMessageMediaGeo">botInlineMessageMediaGeo</a></li>
<li>Added <strong>heading</strong>, <strong>proximity_notification_radius</strong> parameters in <a href="/constructor/inputMediaGeoLive">inputMediaGeoLive</a></li>
<li>Added <strong>flags</strong>, <strong>heading</strong>, <strong>proximity_notification_radius</strong> parameters in <a href="/constructor/messageMediaGeoLive">messageMediaGeoLive</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 updateChannelPinnedMessage</li>
<li>Removed updateUserPinnedMessage</li>
<li>Removed updateChatPinnedMessage</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">CHANNEL_MESSAGE_DOCS</a> - <code>{1} posted {2} files</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_PLAYLIST</a> - <code>{1} posted {2} music files</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_DOCS</a> - <code>{1} sent {3} files to the group {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_PLAYLIST</a> - <code>{1} sent {3} music files to the group {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">MESSAGE_DOCS</a> - <code>{1} sent you {2} files</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">MESSAGE_PLAYLIST</a> - <code>{1} sent you {2} music files</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/inputGeoPoint">inputGeoPoint</a>#48222faf flags:<a href="/type/%23">#</a> lat:<a href="/type/double">double</a> long:<a href="/type/double">double</a> accuracy_radius:flags.0?<a href="/type/int">int</a> = <a href="/type/InputGeoPoint">InputGeoPoint</a>;<br>
<a href="/constructor/geoPoint">geoPoint</a>#b2a2f663 flags:<a href="/type/%23">#</a> long:<a href="/type/double">double</a> lat:<a href="/type/double">double</a> access_hash:<a href="/type/long">long</a> accuracy_radius:flags.0?<a href="/type/int">int</a> = <a href="/type/GeoPoint">GeoPoint</a>;<br>
<a href="/constructor/messages.messagesSlice">messages.messagesSlice</a>#3a54685e flags:<a href="/type/%23">#</a> inexact:flags.1?<a href="/constructor/true">true</a> count:<a href="/type/int">int</a> next_rate:flags.0?<a href="/type/int">int</a> offset_id_offset:flags.2?<a href="/type/int">int</a> 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.Messages">messages.Messages</a>;
<a href="/constructor/messages.channelMessages">messages.channelMessages</a>#64479808 flags:<a href="/type/%23">#</a> inexact:flags.1?<a href="/constructor/true">true</a> pts:<a href="/type/int">int</a> count:<a href="/type/int">int</a> offset_id_offset:flags.2?<a href="/type/int">int</a> 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.Messages">messages.Messages</a>;<br>
<a href="/constructor/inputBotInlineMessageMediaGeo">inputBotInlineMessageMediaGeo</a>#96929a85 flags:<a href="/type/%23">#</a> geo_point:<a href="/type/InputGeoPoint">InputGeoPoint</a> heading:flags.0?<a href="/type/int">int</a> period:flags.1?<a href="/type/int">int</a> proximity_notification_radius:flags.3?<a href="/type/int">int</a> reply_markup:flags.2?<a href="/type/ReplyMarkup">ReplyMarkup</a> = <a href="/type/InputBotInlineMessage">InputBotInlineMessage</a>;<br>
<a href="/constructor/botInlineMessageMediaGeo">botInlineMessageMediaGeo</a>#051846fd flags:<a href="/type/%23">#</a> geo:<a href="/type/GeoPoint">GeoPoint</a> heading:flags.0?<a href="/type/int">int</a> period:flags.1?<a href="/type/int">int</a> proximity_notification_radius:flags.3?<a href="/type/int">int</a> reply_markup:flags.2?<a href="/type/ReplyMarkup">ReplyMarkup</a> = <a href="/type/BotInlineMessage">BotInlineMessage</a>;<br>
<a href="/constructor/inputMediaGeoLive">inputMediaGeoLive</a>#971fa843 flags:<a href="/type/%23">#</a> stopped:flags.0?<a href="/constructor/true">true</a> geo_point:<a href="/type/InputGeoPoint">InputGeoPoint</a> heading:flags.2?<a href="/type/int">int</a> period:flags.1?<a href="/type/int">int</a> proximity_notification_radius:flags.3?<a href="/type/int">int</a> = <a href="/type/InputMedia">InputMedia</a>;<br>
<a href="/constructor/messageMediaGeoLive">messageMediaGeoLive</a>#b940c666 flags:<a href="/type/%23">#</a> geo:<a href="/type/GeoPoint">GeoPoint</a> heading:flags.0?<a href="/type/int">int</a> period:<a href="/type/int">int</a> proximity_notification_radius:flags.1?<a href="/type/int">int</a> = <a href="/type/MessageMedia">MessageMedia</a>;<br>
<a href="/constructor/inputMessageCallbackQuery">inputMessageCallbackQuery</a>#acfa1a7e id:<a href="/type/int">int</a> query_id:<a href="/type/long">long</a> = <a href="/type/InputMessage">InputMessage</a>;<br>
<a href="/constructor/channelParticipantLeft">channelParticipantLeft</a>#c3c6796b user_id:<a href="/type/int">int</a> = <a href="/type/ChannelParticipant">ChannelParticipant</a>;
<a href="/constructor/channelParticipantsMentions">channelParticipantsMentions</a>#e04b5ceb flags:<a href="/type/%23">#</a> q:flags.0?<a href="/type/string">string</a> top_msg_id:flags.1?<a href="/type/int">int</a> = <a href="/type/ChannelParticipantsFilter">ChannelParticipantsFilter</a>;<br>
<a href="/constructor/updatePinnedMessages">updatePinnedMessages</a>#ed85eab5 flags:<a href="/type/%23">#</a> pinned:flags.0?<a href="/constructor/true">true</a> peer:<a href="/type/Peer">Peer</a> messages:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; pts:<a href="/type/int">int</a> pts_count:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updatePinnedChannelMessages">updatePinnedChannelMessages</a>#8588878b flags:<a href="/type/%23">#</a> pinned:flags.0?<a href="/constructor/true">true</a> channel_id:<a href="/type/int">int</a> messages:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; pts:<a href="/type/int">int</a> pts_count:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/inputMessagesFilterPinned">inputMessagesFilterPinned</a>#1bb00451 = <a href="/type/MessagesFilter">MessagesFilter</a>;<br>
<a href="/constructor/stats.messageStats">stats.messageStats</a>#8999f295 views_graph:<a href="/type/StatsGraph">StatsGraph</a> = <a href="/type/stats.MessageStats">stats.MessageStats</a>;<br>
<a href="/constructor/messageActionGeoProximityReached">messageActionGeoProximityReached</a>#98e0d697 from_id:<a href="/type/Peer">Peer</a> to_id:<a href="/type/Peer">Peer</a> distance:<a href="/type/int">int</a> = <a href="/type/MessageAction">MessageAction</a>;<br>
---functions---<br>
<a href="/method/messages.search">messages.search</a>#0c352eec flags:<a href="/type/%23">#</a> peer:<a href="/type/InputPeer">InputPeer</a> q:<a href="/type/string">string</a> from_id:flags.0?<a href="/type/InputPeer">InputPeer</a> top_msg_id:flags.1?<a href="/type/int">int</a> filter:<a href="/type/MessagesFilter">MessagesFilter</a> min_date:<a href="/type/int">int</a> max_date:<a href="/type/int">int</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> hash:<a href="/type/int">int</a> = <a href="/type/messages.Messages">messages.Messages</a>;<br>
<a href="/method/stats.getMessagePublicForwards">stats.getMessagePublicForwards</a>#5630281b channel:<a href="/type/InputChannel">InputChannel</a> msg_id:<a href="/type/int">int</a> offset_rate:<a href="/type/int">int</a> offset_peer:<a href="/type/InputPeer">InputPeer</a> offset_id:<a href="/type/int">int</a> limit:<a href="/type/int">int</a> = <a href="/type/messages.Messages">messages.Messages</a>;
<a href="/method/stats.getMessageStats">stats.getMessageStats</a>#b6e0a3f5 flags:<a href="/type/%23">#</a> dark:flags.0?<a href="/constructor/true">true</a> channel:<a href="/type/InputChannel">InputChannel</a> msg_id:<a href="/type/int">int</a> = <a href="/type/stats.MessageStats">stats.MessageStats</a>;<br>
<a href="/method/messages.unpinAllMessages">messages.unpinAllMessages</a>#f025bc8b 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-119" id="layer-119" name="layer-119"><i class="anchor-icon"></i></a><a href="/schema?layer=119">Layer 119</a></h3>
<p>Added <a href="/api/threads">message threads</a> and <a href="/api/discussion">comment sections in channel posts</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.getReplies">messages.getReplies</a> - Get messages in a reply thread</li>
<li>Added <a href="/method/messages.getDiscussionMessage">messages.getDiscussionMessage</a> - Get <a href="/api/threads">discussion message</a> from the <a href="/api/discussion">associated discussion group</a> of a channel to show it on top of the comment section, without actually joining the group</li>
<li>Added <a href="/method/messages.readDiscussion">messages.readDiscussion</a> - Mark a <a href="/api/threads">thread</a> as read</li>
<li>Added <a href="/method/contacts.blockFromReplies">contacts.blockFromReplies</a> - Stop getting notifications about <a href="/api/threads">thread replies</a> of a certain user in <code>@replies</code></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>id</strong> from <strong>InputUser</strong> to <strong>InputPeer</strong> in <a href="/method/contacts.block">contacts.block</a></li>
<li>Changed type of <strong>id</strong> from <strong>InputUser</strong> to <strong>InputPeer</strong> in <a href="/method/contacts.unblock">contacts.unblock</a></li>
<li>Added <strong>top_msg_id</strong> parameter in <a href="/method/messages.search">messages.search</a></li>
<li>Added <strong>flags</strong>, <strong>top_msg_id</strong> parameters in <a href="/method/messages.setTyping">messages.setTyping</a></li>
<li>Changed type of <a href="/method/messages.getMessagesViews">messages.getMessagesViews</a> from <strong>Vector&lt;int&gt;</strong> to <strong>messages.MessageViews</strong></li>
<li>Added <strong>filter</strong>, <strong>min_date</strong>, <strong>max_date</strong> parameters in <a href="/method/messages.searchGlobal">messages.searchGlobal</a></li>
<li>Added <strong>flags</strong>, <strong>thread</strong> parameters, changed type of <strong>grouped</strong> from <strong>Bool</strong> to <strong>flags.0?true</strong> in <a href="/method/channels.exportMessageLink">channels.exportMessageLink</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/messageViews">messageViews</a> - View, forward counter + info about replies of a specific message</li>
<li>Added <a href="/constructor/updateChannelMessageForwards">updateChannelMessageForwards</a> - The forward counter of a message in a channel has changed</li>
<li>Added <a href="/constructor/photoSizeProgressive">photoSizeProgressive</a> - Progressively encoded photosize</li>
<li>Added <a href="/constructor/messages.messageViews">messages.messageViews</a> - View, forward counter + info about replies</li>
<li>Added <a href="/constructor/updateReadChannelDiscussionInbox">updateReadChannelDiscussionInbox</a> - Incoming comments in a <a href="/api/threads">discussion thread</a> were marked as read</li>
<li>Added <a href="/constructor/updateReadChannelDiscussionOutbox">updateReadChannelDiscussionOutbox</a> - Outgoing comments in a <a href="/api/threads">discussion thread</a> were marked as read</li>
<li>Added <a href="/constructor/messages.discussionMessage">messages.discussionMessage</a> - Information about a <a href="/api/threads">message thread</a></li>
<li>Added <a href="/constructor/messageReplyHeader">messageReplyHeader</a> - Message replies and <a href="/api/threads">thread</a> information</li>
<li>Added <a href="/constructor/messageReplies">messageReplies</a> - Info about <a href="/api/threads">the comment section of a channel post, or a simple message thread</a></li>
<li>Added <a href="/constructor/updatePeerBlocked">updatePeerBlocked</a> - A peer was blocked</li>
<li>Added <a href="/constructor/peerBlocked">peerBlocked</a> - Information about a blocked peer</li>
<li>Added <a href="/constructor/updateChannelUserTyping">updateChannelUserTyping</a> - A user is typing in a <a href="/api/channel">supergroup, channel</a> or <a href="/api/threads">message thread</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>pinned</strong>, <strong>peer_id</strong>, <strong>reply_to</strong>, <strong>forwards</strong>, <strong>replies</strong> parameters, removed <strong>to_id</strong>, <strong>reply_to_msg_id</strong> parameters, changed type of <strong>from_id</strong> from <strong>flags.8?int</strong> to <strong>flags.8?Peer</strong> in <a href="/constructor/message">message</a></li>
<li>Added <strong>peer_id</strong>, <strong>reply_to</strong> parameters, removed <strong>to_id</strong>, <strong>reply_to_msg_id</strong> parameters, changed type of <strong>from_id</strong> from <strong>flags.8?int</strong> to <strong>flags.8?Peer</strong> in <a href="/constructor/messageService">messageService</a></li>
<li>Added <strong>chats</strong> parameter, changed type of <strong>blocked</strong> from <strong>Vector&lt;ContactBlocked&gt;</strong> to <strong>Vector&lt;PeerBlocked&gt;</strong> in <a href="/constructor/contacts.blocked">contacts.blocked</a></li>
<li>Added <strong>chats</strong> parameter, changed type of <strong>blocked</strong> from <strong>Vector&lt;ContactBlocked&gt;</strong> to <strong>Vector&lt;PeerBlocked&gt;</strong> in <a href="/constructor/contacts.blockedSlice">contacts.blockedSlice</a></li>
<li>Added <strong>reply_to</strong> parameter, removed <strong>reply_to_msg_id</strong> parameter in <a href="/constructor/updateShortMessage">updateShortMessage</a></li>
<li>Added <strong>reply_to</strong> parameter, removed <strong>reply_to_msg_id</strong> parameter in <a href="/constructor/updateShortChatMessage">updateShortChatMessage</a></li>
<li>Added <strong>admin_rights</strong> parameter in <a href="/constructor/channelParticipantCreator">channelParticipantCreator</a></li>
<li>Removed <strong>channel_id</strong> parameter, changed type of <strong>from_id</strong> from <strong>flags.0?int</strong> to <strong>flags.0?Peer</strong> in <a href="/constructor/messageFwdHeader">messageFwdHeader</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 contactBlocked</li>
<li>Removed updateUserBlocked</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/message">message</a>#58ae39c9 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> 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/int">int</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; = <a href="/type/Message">Message</a>;
<a href="/constructor/messageService">messageService</a>#286fa604 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> legacy:flags.19?<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> reply_to:flags.3?<a href="/type/MessageReplyHeader">MessageReplyHeader</a> date:<a href="/type/int">int</a> action:<a href="/type/MessageAction">MessageAction</a> = <a href="/type/Message">Message</a>;<br>
<a href="/constructor/contacts.blocked">contacts.blocked</a>#0ade1591 blocked:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PeerBlocked">PeerBlocked</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/contacts.Blocked">contacts.Blocked</a>;
<a href="/constructor/contacts.blockedSlice">contacts.blockedSlice</a>#e1664194 count:<a href="/type/int">int</a> blocked:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PeerBlocked">PeerBlocked</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/contacts.Blocked">contacts.Blocked</a>;<br>
<a href="/constructor/updateShortMessage">updateShortMessage</a>#2296d2c8 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> id:<a href="/type/int">int</a> user_id:<a href="/type/int">int</a> message:<a href="/type/string">string</a> pts:<a href="/type/int">int</a> pts_count:<a href="/type/int">int</a> date:<a href="/type/int">int</a> fwd_from:flags.2?<a href="/type/MessageFwdHeader">MessageFwdHeader</a> via_bot_id:flags.11?<a href="/type/int">int</a> reply_to:flags.3?<a href="/type/MessageReplyHeader">MessageReplyHeader</a> entities:flags.7?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; = <a href="/type/Updates">Updates</a>;
<a href="/constructor/updateShortChatMessage">updateShortChatMessage</a>#402d5dbb 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> id:<a href="/type/int">int</a> from_id:<a href="/type/int">int</a> chat_id:<a href="/type/int">int</a> message:<a href="/type/string">string</a> pts:<a href="/type/int">int</a> pts_count:<a href="/type/int">int</a> date:<a href="/type/int">int</a> fwd_from:flags.2?<a href="/type/MessageFwdHeader">MessageFwdHeader</a> via_bot_id:flags.11?<a href="/type/int">int</a> reply_to:flags.3?<a href="/type/MessageReplyHeader">MessageReplyHeader</a> entities:flags.7?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; = <a href="/type/Updates">Updates</a>;<br>
<a href="/constructor/channelParticipantCreator">channelParticipantCreator</a>#447dca4b flags:<a href="/type/%23">#</a> user_id:<a href="/type/int">int</a> admin_rights:<a href="/type/ChatAdminRights">ChatAdminRights</a> rank:flags.0?<a href="/type/string">string</a> = <a href="/type/ChannelParticipant">ChannelParticipant</a>;<br>
<a href="/constructor/messageFwdHeader">messageFwdHeader</a>#5f777dce flags:<a href="/type/%23">#</a> from_id:flags.0?<a href="/type/Peer">Peer</a> from_name:flags.5?<a href="/type/string">string</a> date:<a href="/type/int">int</a> channel_post:flags.2?<a href="/type/int">int</a> post_author:flags.3?<a href="/type/string">string</a> saved_from_peer:flags.4?<a href="/type/Peer">Peer</a> saved_from_msg_id:flags.4?<a href="/type/int">int</a> psa_type:flags.6?<a href="/type/string">string</a> = <a href="/type/MessageFwdHeader">MessageFwdHeader</a>;
<a href="/constructor/messageViews">messageViews</a>#455b853d flags:<a href="/type/%23">#</a> views:flags.0?<a href="/type/int">int</a> forwards:flags.1?<a href="/type/int">int</a> replies:flags.2?<a href="/type/MessageReplies">MessageReplies</a> = <a href="/type/MessageViews">MessageViews</a>;<br>
<a href="/constructor/updateChannelMessageForwards">updateChannelMessageForwards</a>#6e8a84df channel_id:<a href="/type/int">int</a> id:<a href="/type/int">int</a> forwards:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/photoSizeProgressive">photoSizeProgressive</a>#5aa86a51 type:<a href="/type/string">string</a> location:<a href="/type/FileLocation">FileLocation</a> w:<a href="/type/int">int</a> h:<a href="/type/int">int</a> sizes:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/PhotoSize">PhotoSize</a>;<br>
<a href="/constructor/messages.messageViews">messages.messageViews</a>#b6c4f543 views:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageViews">MessageViews</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.MessageViews">messages.MessageViews</a>;<br>
<a href="/constructor/updateReadChannelDiscussionInbox">updateReadChannelDiscussionInbox</a>#1cc7de54 flags:<a href="/type/%23">#</a> channel_id:<a href="/type/int">int</a> top_msg_id:<a href="/type/int">int</a> read_max_id:<a href="/type/int">int</a> broadcast_id:flags.0?<a href="/type/int">int</a> broadcast_post:flags.0?<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateReadChannelDiscussionOutbox">updateReadChannelDiscussionOutbox</a>#4638a26c channel_id:<a href="/type/int">int</a> top_msg_id:<a href="/type/int">int</a> read_max_id:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/messages.discussionMessage">messages.discussionMessage</a>#f5dd8f9d flags:<a href="/type/%23">#</a> messages:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Message">Message</a>&gt; max_id:flags.0?<a href="/type/int">int</a> read_inbox_max_id:flags.1?<a href="/type/int">int</a> read_outbox_max_id:flags.2?<a href="/type/int">int</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.DiscussionMessage">messages.DiscussionMessage</a>;
<a href="/constructor/messageReplyHeader">messageReplyHeader</a>#a6d57763 flags:<a href="/type/%23">#</a> reply_to_msg_id:<a href="/type/int">int</a> reply_to_peer_id:flags.0?<a href="/type/Peer">Peer</a> reply_to_top_id:flags.1?<a href="/type/int">int</a> = <a href="/type/MessageReplyHeader">MessageReplyHeader</a>;
<a href="/constructor/messageReplies">messageReplies</a>#4128faac flags:<a href="/type/%23">#</a> comments:flags.0?<a href="/constructor/true">true</a> replies:<a href="/type/int">int</a> replies_pts:<a href="/type/int">int</a> recent_repliers:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Peer">Peer</a>&gt; channel_id:flags.0?<a href="/type/int">int</a> max_id:flags.2?<a href="/type/int">int</a> read_max_id:flags.3?<a href="/type/int">int</a> = <a href="/type/MessageReplies">MessageReplies</a>;<br>
<a href="/constructor/updatePeerBlocked">updatePeerBlocked</a>#246a4b22 peer_id:<a href="/type/Peer">Peer</a> blocked:<a href="/type/Bool">Bool</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/peerBlocked">peerBlocked</a>#e8fd8014 peer_id:<a href="/type/Peer">Peer</a> date:<a href="/type/int">int</a> = <a href="/type/PeerBlocked">PeerBlocked</a>;<br>
<a href="/constructor/updateChannelUserTyping">updateChannelUserTyping</a>#ff2abe9f flags:<a href="/type/%23">#</a> channel_id:<a href="/type/int">int</a> top_msg_id:flags.0?<a href="/type/int">int</a> user_id:<a href="/type/int">int</a> action:<a href="/type/SendMessageAction">SendMessageAction</a> = <a href="/type/Update">Update</a>;<br>
---functions---<br>
<a href="/method/contacts.block">contacts.block</a>#68cc1411 id:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/contacts.unblock">contacts.unblock</a>#bea65d50 id:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/messages.search">messages.search</a>#4e17810b flags:<a href="/type/%23">#</a> peer:<a href="/type/InputPeer">InputPeer</a> q:<a href="/type/string">string</a> from_id:flags.0?<a href="/type/InputUser">InputUser</a> top_msg_id:flags.1?<a href="/type/int">int</a> filter:<a href="/type/MessagesFilter">MessagesFilter</a> min_date:<a href="/type/int">int</a> max_date:<a href="/type/int">int</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> hash:<a href="/type/int">int</a> = <a href="/type/messages.Messages">messages.Messages</a>;
<a href="/method/messages.setTyping">messages.setTyping</a>#58943ee2 flags:<a href="/type/%23">#</a> peer:<a href="/type/InputPeer">InputPeer</a> top_msg_id:flags.0?<a href="/type/int">int</a> action:<a href="/type/SendMessageAction">SendMessageAction</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.getMessagesViews">messages.getMessagesViews</a>#5784d3e1 peer:<a href="/type/InputPeer">InputPeer</a> id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; increment:<a href="/type/Bool">Bool</a> = <a href="/type/messages.MessageViews">messages.MessageViews</a>;
<a href="/method/messages.searchGlobal">messages.searchGlobal</a>#4bc6589a flags:<a href="/type/%23">#</a> folder_id:flags.0?<a href="/type/int">int</a> q:<a href="/type/string">string</a> filter:<a href="/type/MessagesFilter">MessagesFilter</a> min_date:<a href="/type/int">int</a> max_date:<a href="/type/int">int</a> offset_rate:<a href="/type/int">int</a> offset_peer:<a href="/type/InputPeer">InputPeer</a> offset_id:<a href="/type/int">int</a> limit:<a href="/type/int">int</a> = <a href="/type/messages.Messages">messages.Messages</a>;<br>
<a href="/method/channels.exportMessageLink">channels.exportMessageLink</a>#e63fadeb flags:<a href="/type/%23">#</a> grouped:flags.0?<a href="/constructor/true">true</a> thread:flags.1?<a href="/constructor/true">true</a> channel:<a href="/type/InputChannel">InputChannel</a> id:<a href="/type/int">int</a> = <a href="/type/ExportedMessageLink">ExportedMessageLink</a>;<br>
<a href="/method/messages.getReplies">messages.getReplies</a>#24b581ba peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> offset_id:<a href="/type/int">int</a> offset_date:<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> hash:<a href="/type/int">int</a> = <a href="/type/messages.Messages">messages.Messages</a>;
<a href="/method/messages.getDiscussionMessage">messages.getDiscussionMessage</a>#446972fd peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> = <a href="/type/messages.DiscussionMessage">messages.DiscussionMessage</a>;
<a href="/method/messages.readDiscussion">messages.readDiscussion</a>#f731a9f4 peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> read_max_id:<a href="/type/int">int</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/contacts.blockFromReplies">contacts.blockFromReplies</a>#29a8962c flags:<a href="/type/%23">#</a> delete_message:flags.0?<a href="/constructor/true">true</a> delete_history:flags.1?<a href="/constructor/true">true</a> report_spam:flags.2?<a href="/constructor/true">true</a> msg_id:<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-118" id="layer-118" name="layer-118"><i class="anchor-icon"></i></a><a href="/schema?layer=118">Layer 118</a></h3>
<p>Added method for fetching country names and phone patterns.</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/help.getCountriesList">help.getCountriesList</a> - Get name, ISO code, localized name and phone codes/patterns of all available countries</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>silent</strong> parameters in <a href="/method/messages.sendEncrypted">messages.sendEncrypted</a></li>
<li>Added <strong>flags</strong>, <strong>silent</strong> parameters in <a href="/method/messages.sendEncryptedFile">messages.sendEncryptedFile</a></li>
<li>Added <strong>password</strong> parameter in <a href="/method/messages.getBotCallbackAnswer">messages.getBotCallbackAnswer</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/help.countryCode">help.countryCode</a> - Country code and phone number pattern of a specific country</li>
<li>Added <a href="/constructor/help.country">help.country</a> - Name, ISO code, localized name and phone codes/patterns of a specific country</li>
<li>Added <a href="/constructor/help.countriesListNotModified">help.countriesListNotModified</a> - The country list has not changed</li>
<li>Added <a href="/constructor/help.countriesList">help.countriesList</a> - Name, ISO code, localized name and phone codes/patterns of all available countries</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>flags</strong>, <strong>requires_password</strong> parameters in <a href="/constructor/keyboardButtonCallback">keyboardButtonCallback</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/keyboardButtonCallback">keyboardButtonCallback</a>#35bbdb6b flags:<a href="/type/%23">#</a> requires_password:flags.0?<a href="/constructor/true">true</a> text:<a href="/type/string">string</a> data:<a href="/type/bytes">bytes</a> = <a href="/type/KeyboardButton">KeyboardButton</a>;<br>
<a href="/constructor/help.countryCode">help.countryCode</a>#4203c5ef flags:<a href="/type/%23">#</a> country_code:<a href="/type/string">string</a> prefixes:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; patterns:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; = <a href="/type/help.CountryCode">help.CountryCode</a>;
<a href="/constructor/help.country">help.country</a>#c3878e23 flags:<a href="/type/%23">#</a> hidden:flags.0?<a href="/constructor/true">true</a> iso2:<a href="/type/string">string</a> default_name:<a href="/type/string">string</a> name:flags.1?<a href="/type/string">string</a> country_codes:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/help.CountryCode">help.CountryCode</a>&gt; = <a href="/type/help.Country">help.Country</a>;
<a href="/constructor/help.countriesListNotModified">help.countriesListNotModified</a>#93cc1f32 = <a href="/type/help.CountriesList">help.CountriesList</a>;
<a href="/constructor/help.countriesList">help.countriesList</a>#87d0759e countries:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/help.Country">help.Country</a>&gt; hash:<a href="/type/int">int</a> = <a href="/type/help.CountriesList">help.CountriesList</a>;<br>
---functions---<br>
<a href="/method/messages.sendEncrypted">messages.sendEncrypted</a>#44fa7a15 flags:<a href="/type/%23">#</a> silent:flags.0?<a href="/constructor/true">true</a> peer:<a href="/type/InputEncryptedChat">InputEncryptedChat</a> random_id:<a href="/type/long">long</a> data:<a href="/type/bytes">bytes</a> = <a href="/type/messages.SentEncryptedMessage">messages.SentEncryptedMessage</a>;
<a href="/method/messages.sendEncryptedFile">messages.sendEncryptedFile</a>#5559481d flags:<a href="/type/%23">#</a> silent:flags.0?<a href="/constructor/true">true</a> peer:<a href="/type/InputEncryptedChat">InputEncryptedChat</a> random_id:<a href="/type/long">long</a> data:<a href="/type/bytes">bytes</a> file:<a href="/type/InputEncryptedFile">InputEncryptedFile</a> = <a href="/type/messages.SentEncryptedMessage">messages.SentEncryptedMessage</a>;
<a href="/method/messages.getBotCallbackAnswer">messages.getBotCallbackAnswer</a>#9342ca07 flags:<a href="/type/%23">#</a> game:flags.1?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> msg_id:<a href="/type/int">int</a> data:flags.0?<a href="/type/bytes">bytes</a> password:flags.2?<a href="/type/InputCheckPasswordSRP">InputCheckPasswordSRP</a> = <a href="/type/messages.BotCallbackAnswer">messages.BotCallbackAnswer</a>;<br>
<a href="/method/help.getCountriesList">help.getCountriesList</a>#735787a8 lang_code:<a href="/type/string">string</a> hash:<a href="/type/int">int</a> = <a href="/type/help.CountriesList">help.CountriesList</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-117" id="layer-117" name="layer-117"><i class="anchor-icon"></i></a><a href="/schema?layer=117">Layer 117</a></h3>
<p>Added WebRTC endpoint constructors.</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-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/phoneConnectionWebrtc">phoneConnectionWebrtc</a> - WebRTC connection parameters</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/phoneConnectionWebrtc">phoneConnectionWebrtc</a>#635fe375 flags:<a href="/type/%23">#</a> turn:flags.0?<a href="/constructor/true">true</a> stun:flags.1?<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> username:<a href="/type/string">string</a> password:<a href="/type/string">string</a> = <a href="/type/PhoneConnection">PhoneConnection</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-116" id="layer-116" name="layer-116"><i class="anchor-icon"></i></a><a href="/schema?layer=116">Layer 116</a></h3>
<p>Added <a href="/api/stats">supergroup statistics</a> and global privacy settings.</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/stats.getMegagroupStats">stats.getMegagroupStats</a> - Get <a href="/api/stats">supergroup statistics</a></li>
<li>Added <a href="/method/account.getGlobalPrivacySettings">account.getGlobalPrivacySettings</a> - Get global privacy settings</li>
<li>Added <a href="/method/account.setGlobalPrivacySettings">account.setGlobalPrivacySettings</a> - Set global privacy settings</li>
<li>Added <a href="/method/help.dismissSuggestion">help.dismissSuggestion</a> - Dismiss a <a href="/api/config#suggestions">suggestion, see here for more info »</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>Changed type of <a href="/method/photos.updateProfilePhoto">photos.updateProfilePhoto</a> from <strong>UserProfilePhoto</strong> to <strong>photos.Photo</strong></li>
<li>Added <strong>flags</strong>, <strong>video</strong>, <strong>video_start_ts</strong> parameters, changed type of <strong>file</strong> from <strong>InputFile</strong> to <strong>flags.0?InputFile</strong> in <a href="/method/photos.uploadProfilePhoto">photos.uploadProfilePhoto</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/statsGroupTopPoster">statsGroupTopPoster</a> - Information about an active user in a supergroup</li>
<li>Added <a href="/constructor/statsGroupTopAdmin">statsGroupTopAdmin</a> - Information about an active admin in a supergroup</li>
<li>Added <a href="/constructor/statsGroupTopInviter">statsGroupTopInviter</a> - Information about an active supergroup inviter</li>
<li>Added <a href="/constructor/stats.megagroupStats">stats.megagroupStats</a> - Supergroup <a href="/api/stats">statistics</a></li>
<li>Added <a href="/constructor/globalPrivacySettings">globalPrivacySettings</a> - Global privacy settings</li>
<li>Added <a href="/constructor/updateChannelParticipant">updateChannelParticipant</a> - A participant has left, joined, was banned or admined in a <a href="/api/channel">channel or supergroup</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>flags</strong>, <strong>video</strong>, <strong>video_start_ts</strong> parameters, changed type of <strong>file</strong> from <strong>InputFile</strong> to <strong>flags.0?InputFile</strong> in <a href="/constructor/inputChatUploadedPhoto">inputChatUploadedPhoto</a></li>
<li>Added <strong>flags</strong>, <strong>has_video</strong> parameters in <a href="/constructor/userProfilePhoto">userProfilePhoto</a></li>
<li>Added <strong>flags</strong>, <strong>has_video</strong> parameters in <a href="/constructor/chatPhoto">chatPhoto</a></li>
<li>Added <strong>video_sizes</strong> parameter in <a href="/constructor/photo">photo</a></li>
<li>Added <strong>autoarchived</strong>, <strong>geo_distance</strong> parameters in <a href="/constructor/peerSettings">peerSettings</a></li>
<li>Added <strong>flags</strong>, <strong>folder_id</strong> parameters in <a href="/constructor/encryptedChatRequested">encryptedChatRequested</a></li>
<li>Added <strong>flags</strong>, <strong>video_start_ts</strong> parameters in <a href="/constructor/videoSize">videoSize</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/inputChatUploadedPhoto">inputChatUploadedPhoto</a>#c642724e flags:<a href="/type/%23">#</a> file:flags.0?<a href="/type/InputFile">InputFile</a> video:flags.1?<a href="/type/InputFile">InputFile</a> video_start_ts:flags.2?<a href="/type/double">double</a> = <a href="/type/InputChatPhoto">InputChatPhoto</a>;<br>
<a href="/constructor/userProfilePhoto">userProfilePhoto</a>#69d3ab26 flags:<a href="/type/%23">#</a> has_video:flags.0?<a href="/constructor/true">true</a> photo_id:<a href="/type/long">long</a> photo_small:<a href="/type/FileLocation">FileLocation</a> photo_big:<a href="/type/FileLocation">FileLocation</a> dc_id:<a href="/type/int">int</a> = <a href="/type/UserProfilePhoto">UserProfilePhoto</a>;<br>
<a href="/constructor/chatPhoto">chatPhoto</a>#d20b9f3c flags:<a href="/type/%23">#</a> has_video:flags.0?<a href="/constructor/true">true</a> photo_small:<a href="/type/FileLocation">FileLocation</a> photo_big:<a href="/type/FileLocation">FileLocation</a> dc_id:<a href="/type/int">int</a> = <a href="/type/ChatPhoto">ChatPhoto</a>;<br>
<a href="/constructor/photo">photo</a>#fb197a65 flags:<a href="/type/%23">#</a> has_stickers:flags.0?<a href="/constructor/true">true</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> sizes:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PhotoSize">PhotoSize</a>&gt; video_sizes: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> = <a href="/type/Photo">Photo</a>;
<a href="/constructor/peerSettings">peerSettings</a>#733f2961 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> geo_distance:flags.6?<a href="/type/int">int</a> = <a href="/type/PeerSettings">PeerSettings</a>;<br>
<a href="/constructor/encryptedChatRequested">encryptedChatRequested</a>#62718a82 flags:<a href="/type/%23">#</a> folder_id:flags.0?<a href="/type/int">int</a> id:<a href="/type/int">int</a> access_hash:<a href="/type/long">long</a> date:<a href="/type/int">int</a> admin_id:<a href="/type/int">int</a> participant_id:<a href="/type/int">int</a> g_a:<a href="/type/bytes">bytes</a> = <a href="/type/EncryptedChat">EncryptedChat</a>;<br>
<a href="/constructor/videoSize">videoSize</a>#e831c556 flags:<a href="/type/%23">#</a> type:<a href="/type/string">string</a> location:<a href="/type/FileLocation">FileLocation</a> w:<a href="/type/int">int</a> h:<a href="/type/int">int</a> size:<a href="/type/int">int</a> video_start_ts:flags.0?<a href="/type/double">double</a> = <a href="/type/VideoSize">VideoSize</a>;<br>
<a href="/constructor/statsGroupTopPoster">statsGroupTopPoster</a>#18f3d0f7 user_id:<a href="/type/int">int</a> messages:<a href="/type/int">int</a> avg_chars:<a href="/type/int">int</a> = <a href="/type/StatsGroupTopPoster">StatsGroupTopPoster</a>;
<a href="/constructor/statsGroupTopAdmin">statsGroupTopAdmin</a>#6014f412 user_id:<a href="/type/int">int</a> deleted:<a href="/type/int">int</a> kicked:<a href="/type/int">int</a> banned:<a href="/type/int">int</a> = <a href="/type/StatsGroupTopAdmin">StatsGroupTopAdmin</a>;
<a href="/constructor/statsGroupTopInviter">statsGroupTopInviter</a>#31962a4c user_id:<a href="/type/int">int</a> invitations:<a href="/type/int">int</a> = <a href="/type/StatsGroupTopInviter">StatsGroupTopInviter</a>;
<a href="/constructor/stats.megagroupStats">stats.megagroupStats</a>#ef7ff916 period:<a href="/type/StatsDateRangeDays">StatsDateRangeDays</a> members:<a href="/type/StatsAbsValueAndPrev">StatsAbsValueAndPrev</a> messages:<a href="/type/StatsAbsValueAndPrev">StatsAbsValueAndPrev</a> viewers:<a href="/type/StatsAbsValueAndPrev">StatsAbsValueAndPrev</a> posters:<a href="/type/StatsAbsValueAndPrev">StatsAbsValueAndPrev</a> growth_graph:<a href="/type/StatsGraph">StatsGraph</a> members_graph:<a href="/type/StatsGraph">StatsGraph</a> new_members_by_source_graph:<a href="/type/StatsGraph">StatsGraph</a> languages_graph:<a href="/type/StatsGraph">StatsGraph</a> messages_graph:<a href="/type/StatsGraph">StatsGraph</a> actions_graph:<a href="/type/StatsGraph">StatsGraph</a> top_hours_graph:<a href="/type/StatsGraph">StatsGraph</a> weekdays_graph:<a href="/type/StatsGraph">StatsGraph</a> top_posters:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/StatsGroupTopPoster">StatsGroupTopPoster</a>&gt; top_admins:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/StatsGroupTopAdmin">StatsGroupTopAdmin</a>&gt; top_inviters:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/StatsGroupTopInviter">StatsGroupTopInviter</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/stats.MegagroupStats">stats.MegagroupStats</a>;<br>
<a href="/constructor/globalPrivacySettings">globalPrivacySettings</a>#bea2f424 flags:<a href="/type/%23">#</a> archive_and_mute_new_noncontact_peers:flags.0?<a href="/type/Bool">Bool</a> = <a href="/type/GlobalPrivacySettings">GlobalPrivacySettings</a>;<br>
<a href="/constructor/updateChannelParticipant">updateChannelParticipant</a>#65d2b464 flags:<a href="/type/%23">#</a> channel_id:<a href="/type/int">int</a> date:<a href="/type/int">int</a> user_id:<a href="/type/int">int</a> prev_participant:flags.0?<a href="/type/ChannelParticipant">ChannelParticipant</a> new_participant:flags.1?<a href="/type/ChannelParticipant">ChannelParticipant</a> qts:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;<br>
---functions---<br>
<a href="/method/photos.updateProfilePhoto">photos.updateProfilePhoto</a>#72d4742c id:<a href="/type/InputPhoto">InputPhoto</a> = <a href="/type/photos.Photo">photos.Photo</a>;
<a href="/method/photos.uploadProfilePhoto">photos.uploadProfilePhoto</a>#89f30f69 flags:<a href="/type/%23">#</a> file:flags.0?<a href="/type/InputFile">InputFile</a> video:flags.1?<a href="/type/InputFile">InputFile</a> video_start_ts:flags.2?<a href="/type/double">double</a> = <a href="/type/photos.Photo">photos.Photo</a>;<br>
<a href="/method/stats.getMegagroupStats">stats.getMegagroupStats</a>#dcdf8607 flags:<a href="/type/%23">#</a> dark:flags.0?<a href="/constructor/true">true</a> channel:<a href="/type/InputChannel">InputChannel</a> = <a href="/type/stats.MegagroupStats">stats.MegagroupStats</a>;<br>
<a href="/method/account.getGlobalPrivacySettings">account.getGlobalPrivacySettings</a>#eb2b4cf6 = <a href="/type/GlobalPrivacySettings">GlobalPrivacySettings</a>;
<a href="/method/account.setGlobalPrivacySettings">account.setGlobalPrivacySettings</a>#1edaaac2 settings:<a href="/type/GlobalPrivacySettings">GlobalPrivacySettings</a> = <a href="/type/GlobalPrivacySettings">GlobalPrivacySettings</a>;<br>
<a href="/method/help.dismissSuggestion">help.dismissSuggestion</a>#077fa99f suggestion:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-115" id="layer-115" name="layer-115"><i class="anchor-icon"></i></a><a href="/schema?layer=115">Layer 115</a></h3>
<p>Added a chat invitation that also allows peeking into the group to read messages without joining it.</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-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/chatInvitePeek">chatInvitePeek</a> - A chat invitation that also allows peeking into the group to read messages without joining it.</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/chatInvitePeek">chatInvitePeek</a>#61695cb0 chat:<a href="/type/Chat">Chat</a> expires:<a href="/type/int">int</a> = <a href="/type/ChatInvite">ChatInvite</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-114" id="layer-114" name="layer-114"><i class="anchor-icon"></i></a><a href="/schema?layer=114">Layer 114</a></h3>
<p>Added WebRTC signaling methods.</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/phone.sendSignalingData">phone.sendSignalingData</a> - Send VoIP signaling data</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>Removed <strong>grouped</strong> parameter in <a href="/method/messages.forwardMessages">messages.forwardMessages</a></li>
<li>Added <strong>unpin</strong>, <strong>pm_oneside</strong> parameters in <a href="/method/messages.updatePinnedMessage">messages.updatePinnedMessage</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 messages.searchGifs</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/videoSize">videoSize</a> - <a href="/api/files#animated-profile-pictures">Animated profile picture</a> in MPEG4 format</li>
<li>Added <a href="/constructor/updatePhoneCallSignalingData">updatePhoneCallSignalingData</a> - Incoming phone call signaling payload</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>video_calls_available</strong> parameter in <a href="/constructor/userFull">userFull</a></li>
<li>Added <strong>force_file</strong> parameter in <a href="/constructor/inputMediaUploadedDocument">inputMediaUploadedDocument</a></li>
<li>Added <strong>video_thumbs</strong> parameter in <a href="/constructor/document">document</a></li>
<li>Added <strong>apply_min_photo</strong> parameter in <a href="/constructor/user">user</a></li>
<li>Added <strong>blocked</strong> parameter, changed type of <strong>can_view_stats</strong> from <strong>flags.12?true</strong> to <strong>flags.20?true</strong> in <a href="/constructor/channelFull">channelFull</a></li>
<li>Changed type of <strong>video</strong> from <strong>flags.5?true</strong> to <strong>flags.6?true</strong> in <a href="/constructor/phoneCallWaiting">phoneCallWaiting</a></li>
<li>Changed type of <strong>video</strong> from <strong>flags.5?true</strong> to <strong>flags.6?true</strong> in <a href="/constructor/phoneCallRequested">phoneCallRequested</a></li>
<li>Changed type of <strong>video</strong> from <strong>flags.5?true</strong> to <strong>flags.6?true</strong> in <a href="/constructor/phoneCallAccepted">phoneCallAccepted</a></li>
<li>Added <strong>video</strong> parameter in <a href="/constructor/phoneCall">phoneCall</a></li>
<li>Changed type of <strong>video</strong> from <strong>flags.5?true</strong> to <strong>flags.6?true</strong> in <a href="/constructor/phoneCallDiscarded">phoneCallDiscarded</a></li>
<li>Added <strong>anonymous</strong> parameter in <a href="/constructor/chatAdminRights">chatAdminRights</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 foundGif</li>
<li>Removed foundGifCached</li>
<li>Removed inputMediaGifExternal</li>
<li>Removed messages.foundGifs</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>#edf17c12 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> user:<a href="/type/User">User</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> = <a href="/type/UserFull">UserFull</a>;<br>
<a href="/constructor/inputMediaUploadedDocument">inputMediaUploadedDocument</a>#5b38c6c1 flags:<a href="/type/%23">#</a> nosound_video:flags.3?<a href="/constructor/true">true</a> force_file:flags.4?<a href="/constructor/true">true</a> file:<a href="/type/InputFile">InputFile</a> thumb:flags.2?<a href="/type/InputFile">InputFile</a> mime_type:<a href="/type/string">string</a> attributes:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/DocumentAttribute">DocumentAttribute</a>&gt; stickers:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputDocument">InputDocument</a>&gt; ttl_seconds:flags.1?<a href="/type/int">int</a> = <a href="/type/InputMedia">InputMedia</a>;<br>
<a href="/constructor/document">document</a>#1e87342b 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/int">int</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>#938458c1 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> id:<a href="/type/int">int</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/channelFull">channelFull</a>#f0e6672a 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/int">int</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:<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/int">int</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/int">int</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> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/phoneCallWaiting">phoneCallWaiting</a>#1b8f4ad1 flags:<a href="/type/%23">#</a> video:flags.6?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> date:<a href="/type/int">int</a> admin_id:<a href="/type/int">int</a> participant_id:<a href="/type/int">int</a> protocol:<a href="/type/PhoneCallProtocol">PhoneCallProtocol</a> receive_date:flags.0?<a href="/type/int">int</a> = <a href="/type/PhoneCall">PhoneCall</a>;
<a href="/constructor/phoneCallRequested">phoneCallRequested</a>#87eabb53 flags:<a href="/type/%23">#</a> video:flags.6?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> date:<a href="/type/int">int</a> admin_id:<a href="/type/int">int</a> participant_id:<a href="/type/int">int</a> g_a_hash:<a href="/type/bytes">bytes</a> protocol:<a href="/type/PhoneCallProtocol">PhoneCallProtocol</a> = <a href="/type/PhoneCall">PhoneCall</a>;
<a href="/constructor/phoneCallAccepted">phoneCallAccepted</a>#997c454a flags:<a href="/type/%23">#</a> video:flags.6?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> date:<a href="/type/int">int</a> admin_id:<a href="/type/int">int</a> participant_id:<a href="/type/int">int</a> g_b:<a href="/type/bytes">bytes</a> protocol:<a href="/type/PhoneCallProtocol">PhoneCallProtocol</a> = <a href="/type/PhoneCall">PhoneCall</a>;
<a href="/constructor/phoneCall">phoneCall</a>#8742ae7f flags:<a href="/type/%23">#</a> p2p_allowed:flags.5?<a href="/constructor/true">true</a> video:flags.6?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> date:<a href="/type/int">int</a> admin_id:<a href="/type/int">int</a> participant_id:<a href="/type/int">int</a> g_a_or_b:<a href="/type/bytes">bytes</a> key_fingerprint:<a href="/type/long">long</a> protocol:<a href="/type/PhoneCallProtocol">PhoneCallProtocol</a> connections:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PhoneConnection">PhoneConnection</a>&gt; start_date:<a href="/type/int">int</a> = <a href="/type/PhoneCall">PhoneCall</a>;
<a href="/constructor/phoneCallDiscarded">phoneCallDiscarded</a>#50ca4de1 flags:<a href="/type/%23">#</a> need_rating:flags.2?<a href="/constructor/true">true</a> need_debug:flags.3?<a href="/constructor/true">true</a> video:flags.6?<a href="/constructor/true">true</a> id:<a href="/type/long">long</a> reason:flags.0?<a href="/type/PhoneCallDiscardReason">PhoneCallDiscardReason</a> duration:flags.1?<a href="/type/int">int</a> = <a href="/type/PhoneCall">PhoneCall</a>;<br>
<a href="/constructor/chatAdminRights">chatAdminRights</a>#5fb224d5 flags:<a href="/type/%23">#</a> change_info:flags.0?<a href="/constructor/true">true</a> post_messages:flags.1?<a href="/constructor/true">true</a> edit_messages:flags.2?<a href="/constructor/true">true</a> delete_messages:flags.3?<a href="/constructor/true">true</a> ban_users:flags.4?<a href="/constructor/true">true</a> invite_users:flags.5?<a href="/constructor/true">true</a> pin_messages:flags.7?<a href="/constructor/true">true</a> add_admins:flags.9?<a href="/constructor/true">true</a> anonymous:flags.10?<a href="/constructor/true">true</a> = <a href="/type/ChatAdminRights">ChatAdminRights</a>;<br>
<a href="/constructor/videoSize">videoSize</a>#435bb987 type:<a href="/type/string">string</a> location:<a href="/type/FileLocation">FileLocation</a> w:<a href="/type/int">int</a> h:<a href="/type/int">int</a> size:<a href="/type/int">int</a> = <a href="/type/VideoSize">VideoSize</a>;<br>
<a href="/constructor/updatePhoneCallSignalingData">updatePhoneCallSignalingData</a>#2661bf09 phone_call_id:<a href="/type/long">long</a> data:<a href="/type/bytes">bytes</a> = <a href="/type/Update">Update</a>;<br>
---functions---<br>
<a href="/method/messages.forwardMessages">messages.forwardMessages</a>#d9fee60e 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> 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> = <a href="/type/Updates">Updates</a>;
<a href="/method/messages.updatePinnedMessage">messages.updatePinnedMessage</a>#d2aaf7ec flags:<a href="/type/%23">#</a> silent:flags.0?<a href="/constructor/true">true</a> unpin:flags.1?<a href="/constructor/true">true</a> pm_oneside:flags.2?<a href="/constructor/true">true</a> peer:<a href="/type/InputPeer">InputPeer</a> id:<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/phone.sendSignalingData">phone.sendSignalingData</a>#ff7a9383 peer:<a href="/type/InputPhoneCall">InputPhoneCall</a> data:<a href="/type/bytes">bytes</a> = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-113" id="layer-113" name="layer-113"><i class="anchor-icon"></i></a><a href="/schema?layer=113">Layer 113</a></h3>
<p>Public Service Announcement constructors and better PUSH notifications.<br>
Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/push-updates#possible-notifications">PUSH notifications</a> have two variants: one for groups, and one for channels.</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/help.getPromoData">help.getPromoData</a> - Get MTProxy/Public Service Announcement information</li>
<li>Added <a href="/method/help.hidePromoData">help.hidePromoData</a> - Hide MTProxy/Public Service Announcement information</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 help.getProxyData</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/help.promoDataEmpty">help.promoDataEmpty</a> - No PSA/MTProxy info is available</li>
<li>Added <a href="/constructor/help.promoData">help.promoData</a> - MTProxy/Public Service Announcement 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>Added <strong>psa_type</strong> parameter in <a href="/constructor/messageFwdHeader">messageFwdHeader</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 help.proxyDataEmpty</li>
<li>Removed help.proxyDataPromo</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">CHANNEL_MESSAGE_QUIZ</a> - <code>{1} posted a quiz {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_QUIZ</a> - <code>{1} sent a quiz {3} to the group {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">MESSAGE_QUIZ</a> - <code>{1} sent you a quiz {2}</code></li>
<li>Added <a href="/api/push-updates#possible-notifications">PINNED_QUIZ</a> - <code>{1} pinned a quiz {2}</code></li>
</ul>
<h5><a class="anchor" href="#changed-push-notifications" id="changed-push-notifications" name="changed-push-notifications"><i class="anchor-icon"></i></a>Changed PUSH notifications</h5>
<ul>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_AUDIO</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_CONTACT</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_DOC</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_GAME</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_GAME_SCORE</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_GEO</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_GEOLIVE</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_GIF</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_NOTEXT</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_PHOTO</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_POLL</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_ROUND</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_STICKER</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_TEXT</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHANNEL_MESSAGE_VIDEO</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_AUDIO</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_CONTACT</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_DOC</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_GAME</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_GAME_SCORE</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_GEO</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_GEOLIVE</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_GIF</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_INVOICE</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_NOTEXT</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_PHOTO</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_POLL</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_ROUND</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_STICKER</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_TEXT</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">CHAT_MESSAGE_VIDEO</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_AUDIO</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_CONTACT</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_DOC</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_GAME</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_GAME_SCORE</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_GEO</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_GEOLIVE</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_GIF</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_INVOICE</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_NOTEXT</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_PHOTO</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_PHOTO_SECRET</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_POLL</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_ROUND</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_SCREENSHOT</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_STICKER</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_TEXT</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_VIDEO</a></li>
<li>Added <strong>scheduled</strong> additional parameter in <a href="/api/push-updates#possible-notifications">MESSAGE_VIDEO_SECRET</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/messageFwdHeader">messageFwdHeader</a>#353a686b flags:<a href="/type/%23">#</a> from_id:flags.0?<a href="/type/int">int</a> from_name:flags.5?<a href="/type/string">string</a> date:<a href="/type/int">int</a> channel_id:flags.1?<a href="/type/int">int</a> channel_post:flags.2?<a href="/type/int">int</a> post_author:flags.3?<a href="/type/string">string</a> saved_from_peer:flags.4?<a href="/type/Peer">Peer</a> saved_from_msg_id:flags.4?<a href="/type/int">int</a> psa_type:flags.6?<a href="/type/string">string</a> = <a href="/type/MessageFwdHeader">MessageFwdHeader</a>;<br>
<a href="/constructor/help.promoDataEmpty">help.promoDataEmpty</a>#98f6ac75 expires:<a href="/type/int">int</a> = <a href="/type/help.PromoData">help.PromoData</a>;
<a href="/constructor/help.promoData">help.promoData</a>#8c39793f flags:<a href="/type/%23">#</a> proxy:flags.0?<a href="/constructor/true">true</a> expires:<a href="/type/int">int</a> peer:<a href="/type/Peer">Peer</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; psa_type:flags.1?<a href="/type/string">string</a> psa_message:flags.2?<a href="/type/string">string</a> = <a href="/type/help.PromoData">help.PromoData</a>;<br>
---functions---<br>
<a href="/method/help.getPromoData">help.getPromoData</a>#c0977421 = <a href="/type/help.PromoData">help.PromoData</a>;
<a href="/method/help.hidePromoData">help.hidePromoData</a>#1e251c95 peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-112" id="layer-112" name="layer-112"><i class="anchor-icon"></i></a><a href="/schema?layer=112">Layer 112</a></h3>
<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.getOldFeaturedStickers">messages.getOldFeaturedStickers</a> - Method for fetching previously featured stickers</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>count</strong> parameter in <a href="/constructor/messages.featuredStickersNotModified">messages.featuredStickersNotModified</a></li>
<li>Added <strong>count</strong> parameter in <a href="/constructor/messages.featuredStickers">messages.featuredStickers</a></li>
<li>Added <strong>close_period</strong>, <strong>close_date</strong> parameters in <a href="/constructor/poll">poll</a></li>
<li>Added <strong>solution</strong>, <strong>solution_entities</strong> parameters in <a href="/constructor/pollResults">pollResults</a></li>
<li>Added <strong>solution</strong>, <strong>solution_entities</strong> parameters in <a href="/constructor/inputMediaPoll">inputMediaPoll</a></li>
<li>Added <strong>emoticon</strong> parameter in <a href="/constructor/inputMediaDice">inputMediaDice</a></li>
<li>Added <strong>emoticon</strong> parameter in <a href="/constructor/messageMediaDice">messageMediaDice</a></li>
<li>Added <strong>emoticon</strong> parameter in <a href="/constructor/inputStickerSetDice">inputStickerSetDice</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/messages.featuredStickersNotModified">messages.featuredStickersNotModified</a>#c6dc0c66 count:<a href="/type/int">int</a> = <a href="/type/messages.FeaturedStickers">messages.FeaturedStickers</a>;
<a href="/constructor/messages.featuredStickers">messages.featuredStickers</a>#b6abc341 hash:<a href="/type/int">int</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/poll">poll</a>#86e18161 id:<a href="/type/long">long</a> flags:<a href="/type/%23">#</a> closed:flags.0?<a href="/constructor/true">true</a> public_voters:flags.1?<a href="/constructor/true">true</a> multiple_choice:flags.2?<a href="/constructor/true">true</a> quiz:flags.3?<a href="/constructor/true">true</a> question:<a href="/type/string">string</a> answers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PollAnswer">PollAnswer</a>&gt; close_period:flags.4?<a href="/type/int">int</a> close_date:flags.5?<a href="/type/int">int</a> = <a href="/type/Poll">Poll</a>;
<a href="/constructor/pollResults">pollResults</a>#badcc1a3 flags:<a href="/type/%23">#</a> min:flags.0?<a href="/constructor/true">true</a> results:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PollAnswerVoters">PollAnswerVoters</a>&gt; total_voters:flags.2?<a href="/type/int">int</a> recent_voters:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; solution:flags.4?<a href="/type/string">string</a> solution_entities:flags.4?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; = <a href="/type/PollResults">PollResults</a>;<br>
<a href="/constructor/inputMediaPoll">inputMediaPoll</a>#0f94e5f1 flags:<a href="/type/%23">#</a> poll:<a href="/type/Poll">Poll</a> correct_answers:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/bytes">bytes</a>&gt; solution:flags.1?<a href="/type/string">string</a> solution_entities:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageEntity">MessageEntity</a>&gt; = <a href="/type/InputMedia">InputMedia</a>;
<a href="/constructor/inputMediaDice">inputMediaDice</a>#e66fbf7b emoticon:<a href="/type/string">string</a> = <a href="/type/InputMedia">InputMedia</a>;<br>
<a href="/constructor/messageMediaDice">messageMediaDice</a>#3f7ee58b value:<a href="/type/int">int</a> emoticon:<a href="/type/string">string</a> = <a href="/type/MessageMedia">MessageMedia</a>;<br>
<a href="/constructor/inputStickerSetDice">inputStickerSetDice</a>#e67f520e emoticon:<a href="/type/string">string</a> = <a href="/type/InputStickerSet">InputStickerSet</a>;<br>
---functions---<br>
<a href="/method/initConnection">initConnection</a>#c1cd5ea9 {X:Type} flags:<a href="/type/%23">#</a> api_id:<a href="/type/int">int</a> device_model:<a href="/type/string">string</a> system_version:<a href="/type/string">string</a> app_version:<a href="/type/string">string</a> system_lang_code:<a href="/type/string">string</a> lang_pack:<a href="/type/string">string</a> lang_code:<a href="/type/string">string</a> proxy:flags.0?<a href="/type/InputClientProxy">InputClientProxy</a> params:flags.1?<a href="/type/JSONValue">JSONValue</a> query:!X = X;<br>
<a href="/method/messages.getOldFeaturedStickers">messages.getOldFeaturedStickers</a>#5fe7025b offset:<a href="/type/int">int</a> limit:<a href="/type/int">int</a> hash:<a href="/type/int">int</a> = <a href="/type/messages.FeaturedStickers">messages.FeaturedStickers</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-111" id="layer-111" name="layer-111"><i class="anchor-icon"></i></a><a href="/schema?layer=111">Layer 111</a></h3>
<p><a href="/api/folders">Folders</a>, <a href="/api/stats">channel stats</a>, bot and sticker 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.getDialogFilters">messages.getDialogFilters</a> - Get <a href="/api/folders">folders</a></li>
<li>Added <a href="/method/messages.getSuggestedDialogFilters">messages.getSuggestedDialogFilters</a> - Get <a href="/api/folders">suggested folders</a></li>
<li>Added <a href="/method/messages.updateDialogFilter">messages.updateDialogFilter</a> - Update <a href="/api/folders">folder</a></li>
<li>Added <a href="/method/messages.updateDialogFiltersOrder">messages.updateDialogFiltersOrder</a> - Reorder <a href="/api/folders">folders</a></li>
<li>Added <a href="/method/stats.getBroadcastStats">stats.getBroadcastStats</a> - Get <a href="/api/stats">channel statistics</a></li>
<li>Added <a href="/method/stats.loadAsyncGraph">stats.loadAsyncGraph</a> - Load <a href="/api/stats">channel statistics graph</a> asynchronously</li>
<li>Added <a href="/method/stickers.setStickerSetThumb">stickers.setStickerSetThumb</a> - Set stickerset thumbnail</li>
<li>Added <a href="/method/bots.setBotCommands">bots.setBotCommands</a> - Set bot command list</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>params</strong> parameter in <a href="/method/initConnection">initConnection</a></li>
<li>Added <strong>animated</strong>, <strong>thumb</strong> parameters 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/dialogFilter">dialogFilter</a> - Dialog filter AKA <a href="/api/folders">folder</a></li>
<li>Added <a href="/constructor/dialogFilterSuggested">dialogFilterSuggested</a> - Suggested <a href="/api/folders">folders</a></li>
<li>Added <a href="/constructor/updateDialogFilter">updateDialogFilter</a> - A new <a href="/api/folders">folder</a> was added</li>
<li>Added <a href="/constructor/updateDialogFilterOrder">updateDialogFilterOrder</a> - New <a href="/api/folders">folder</a> order</li>
<li>Added <a href="/constructor/updateDialogFilters">updateDialogFilters</a> - Clients should update <a href="/api/folders">folder</a> info</li>
<li>Added <a href="/constructor/statsDateRangeDays">statsDateRangeDays</a> - <a href="/api/stats">Channel statistics</a> date range</li>
<li>Added <a href="/constructor/statsAbsValueAndPrev">statsAbsValueAndPrev</a> - Statistics value couple; initial and final value for period of time currently in consideration</li>
<li>Added <a href="/constructor/statsPercentValue">statsPercentValue</a> - <a href="/api/stats">Channel statistics percentage</a>. </li>
<li>Added <a href="/constructor/statsGraphAsync">statsGraphAsync</a> - This <a href="/api/stats">channel statistics graph</a> must be generated asynchronously using <a href="/method/stats.loadAsyncGraph">stats.loadAsyncGraph</a> to reduce server load</li>
<li>Added <a href="/constructor/statsGraphError">statsGraphError</a> - An error occurred while generating the <a href="/api/stats">statistics graph</a></li>
<li>Added <a href="/constructor/statsGraph">statsGraph</a> - <a href="/api/stats">Channel statistics graph</a></li>
<li>Added <a href="/constructor/messageInteractionCounters">messageInteractionCounters</a> - Message interaction counters</li>
<li>Added <a href="/constructor/stats.broadcastStats">stats.broadcastStats</a> - <a href="/api/stats">Channel statistics</a>.</li>
<li>Added <a href="/constructor/inputMediaDice">inputMediaDice</a> - Send a <a href="/api/dice">dice-based animated sticker</a></li>
<li>Added <a href="/constructor/messageMediaDice">messageMediaDice</a> - <a href="/api/dice">Dice-based animated sticker</a></li>
<li>Added <a href="/constructor/inputStickerSetDice">inputStickerSetDice</a> - Used for fetching <a href="/api/dice">animated dice stickers</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>stats_dc</strong> parameter in <a href="/constructor/channelFull">channelFull</a></li>
<li>Added <strong>flags</strong>, <strong>cached_page_views</strong> parameters in <a href="/constructor/webPageNotModified">webPageNotModified</a></li>
<li>Added <strong>library_versions</strong> parameter in <a href="/constructor/phoneCallProtocol">phoneCallProtocol</a></li>
<li>Added <strong>views</strong> parameter in <a href="/constructor/page">page</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/channelFull">channelFull</a>#f0e6672a 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_view_stats:flags.12?<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> id:<a href="/type/int">int</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:<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/int">int</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/int">int</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> = <a href="/type/ChatFull">ChatFull</a>;<br>
<a href="/constructor/webPageNotModified">webPageNotModified</a>#7311ca11 flags:<a href="/type/%23">#</a> cached_page_views:flags.0?<a href="/type/int">int</a> = <a href="/type/WebPage">WebPage</a>;<br>
<a href="/constructor/phoneCallProtocol">phoneCallProtocol</a>#fc878fc8 flags:<a href="/type/%23">#</a> udp_p2p:flags.0?<a href="/constructor/true">true</a> udp_reflector:flags.1?<a href="/constructor/true">true</a> min_layer:<a href="/type/int">int</a> max_layer:<a href="/type/int">int</a> library_versions:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/string">string</a>&gt; = <a href="/type/PhoneCallProtocol">PhoneCallProtocol</a>;
<a href="/constructor/page">page</a>#98657f0d flags:<a href="/type/%23">#</a> part:flags.0?<a href="/constructor/true">true</a> rtl:flags.1?<a href="/constructor/true">true</a> v2:flags.2?<a href="/constructor/true">true</a> url:<a href="/type/string">string</a> blocks:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PageBlock">PageBlock</a>&gt; photos:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Photo">Photo</a>&gt; documents:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Document">Document</a>&gt; views:flags.3?<a href="/type/int">int</a> = <a href="/type/Page">Page</a>;<br>
<a href="/constructor/dialogFilter">dialogFilter</a>#7438f7e8 flags:<a href="/type/%23">#</a> contacts:flags.0?<a href="/constructor/true">true</a> non_contacts:flags.1?<a href="/constructor/true">true</a> groups:flags.2?<a href="/constructor/true">true</a> broadcasts:flags.3?<a href="/constructor/true">true</a> bots:flags.4?<a href="/constructor/true">true</a> exclude_muted:flags.11?<a href="/constructor/true">true</a> exclude_read:flags.12?<a href="/constructor/true">true</a> exclude_archived:flags.13?<a href="/constructor/true">true</a> id:<a href="/type/int">int</a> title:<a href="/type/string">string</a> emoticon:flags.25?<a href="/type/string">string</a> pinned_peers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputPeer">InputPeer</a>&gt; include_peers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputPeer">InputPeer</a>&gt; exclude_peers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputPeer">InputPeer</a>&gt; = <a href="/type/DialogFilter">DialogFilter</a>;
<a href="/constructor/dialogFilterSuggested">dialogFilterSuggested</a>#77744d4a filter:<a href="/type/DialogFilter">DialogFilter</a> description:<a href="/type/string">string</a> = <a href="/type/DialogFilterSuggested">DialogFilterSuggested</a>;<br>
<a href="/constructor/updateDialogFilter">updateDialogFilter</a>#26ffde7d flags:<a href="/type/%23">#</a> id:<a href="/type/int">int</a> filter:flags.0?<a href="/type/DialogFilter">DialogFilter</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateDialogFilterOrder">updateDialogFilterOrder</a>#a5d72105 order:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/Update">Update</a>;
<a href="/constructor/updateDialogFilters">updateDialogFilters</a>#3504914f = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/statsDateRangeDays">statsDateRangeDays</a>#b637edaf min_date:<a href="/type/int">int</a> max_date:<a href="/type/int">int</a> = <a href="/type/StatsDateRangeDays">StatsDateRangeDays</a>;
<a href="/constructor/statsAbsValueAndPrev">statsAbsValueAndPrev</a>#cb43acde current:<a href="/type/double">double</a> previous:<a href="/type/double">double</a> = <a href="/type/StatsAbsValueAndPrev">StatsAbsValueAndPrev</a>;
<a href="/constructor/statsPercentValue">statsPercentValue</a>#cbce2fe0 part:<a href="/type/double">double</a> total:<a href="/type/double">double</a> = <a href="/type/StatsPercentValue">StatsPercentValue</a>;
<a href="/constructor/statsGraphAsync">statsGraphAsync</a>#4a27eb2d token:<a href="/type/string">string</a> = <a href="/type/StatsGraph">StatsGraph</a>;
<a href="/constructor/statsGraphError">statsGraphError</a>#bedc9822 error:<a href="/type/string">string</a> = <a href="/type/StatsGraph">StatsGraph</a>;
<a href="/constructor/statsGraph">statsGraph</a>#8ea464b6 flags:<a href="/type/%23">#</a> json:<a href="/type/DataJSON">DataJSON</a> zoom_token:flags.0?<a href="/type/string">string</a> = <a href="/type/StatsGraph">StatsGraph</a>;<br>
<a href="/constructor/messageInteractionCounters">messageInteractionCounters</a>#ad4fc9bd msg_id:<a href="/type/int">int</a> views:<a href="/type/int">int</a> forwards:<a href="/type/int">int</a> = <a href="/type/MessageInteractionCounters">MessageInteractionCounters</a>;<br>
<a href="/constructor/stats.broadcastStats">stats.broadcastStats</a>#bdf78394 period:<a href="/type/StatsDateRangeDays">StatsDateRangeDays</a> followers:<a href="/type/StatsAbsValueAndPrev">StatsAbsValueAndPrev</a> views_per_post:<a href="/type/StatsAbsValueAndPrev">StatsAbsValueAndPrev</a> shares_per_post:<a href="/type/StatsAbsValueAndPrev">StatsAbsValueAndPrev</a> enabled_notifications:<a href="/type/StatsPercentValue">StatsPercentValue</a> growth_graph:<a href="/type/StatsGraph">StatsGraph</a> followers_graph:<a href="/type/StatsGraph">StatsGraph</a> mute_graph:<a href="/type/StatsGraph">StatsGraph</a> top_hours_graph:<a href="/type/StatsGraph">StatsGraph</a> interactions_graph:<a href="/type/StatsGraph">StatsGraph</a> iv_interactions_graph:<a href="/type/StatsGraph">StatsGraph</a> views_by_source_graph:<a href="/type/StatsGraph">StatsGraph</a> new_followers_by_source_graph:<a href="/type/StatsGraph">StatsGraph</a> languages_graph:<a href="/type/StatsGraph">StatsGraph</a> recent_message_interactions:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageInteractionCounters">MessageInteractionCounters</a>&gt; = <a href="/type/stats.BroadcastStats">stats.BroadcastStats</a>;<br>
<a href="/constructor/inputMediaDice">inputMediaDice</a>#aeffa807 = <a href="/type/InputMedia">InputMedia</a>;<br>
<a href="/constructor/messageMediaDice">messageMediaDice</a>#638fe46b value:<a href="/type/int">int</a> = <a href="/type/MessageMedia">MessageMedia</a>;<br>
<a href="/constructor/inputStickerSetDice">inputStickerSetDice</a>#79e21a53 = <a href="/type/InputStickerSet">InputStickerSet</a>;<br>
---functions---<br>
<a href="/method/initConnection">initConnection</a>#785188b8 {X:Type} flags:<a href="/type/%23">#</a> api_id:<a href="/type/int">int</a> device_model:<a href="/type/string">string</a> system_version:<a href="/type/string">string</a> app_version:<a href="/type/string">string</a> system_lang_code:<a href="/type/string">string</a> lang_pack:<a href="/type/string">string</a> lang_code:<a href="/type/string">string</a> proxy:flags.0?<a href="/type/InputClientProxy">InputClientProxy</a> params:flags.1?<a href="/type/JSONValue">JSONValue</a> query:!X = X;<br>
<a href="/method/stickers.createStickerSet">stickers.createStickerSet</a>#f1036780 flags:<a href="/type/%23">#</a> masks:flags.0?<a href="/constructor/true">true</a> animated:flags.1?<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; = <a href="/type/messages.StickerSet">messages.StickerSet</a>;<br>
<a href="/method/messages.getDialogFilters">messages.getDialogFilters</a>#f19ed96d = <a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/DialogFilter">DialogFilter</a>&gt;;
<a href="/method/messages.getSuggestedDialogFilters">messages.getSuggestedDialogFilters</a>#a29cd42c = <a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/DialogFilterSuggested">DialogFilterSuggested</a>&gt;;
<a href="/method/messages.updateDialogFilter">messages.updateDialogFilter</a>#1ad4a04a flags:<a href="/type/%23">#</a> id:<a href="/type/int">int</a> filter:flags.0?<a href="/type/DialogFilter">DialogFilter</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/messages.updateDialogFiltersOrder">messages.updateDialogFiltersOrder</a>#c563c1e4 order:<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/stats.getBroadcastStats">stats.getBroadcastStats</a>#ab42441a flags:<a href="/type/%23">#</a> dark:flags.0?<a href="/constructor/true">true</a> channel:<a href="/type/InputChannel">InputChannel</a> = <a href="/type/stats.BroadcastStats">stats.BroadcastStats</a>;
<a href="/method/stats.loadAsyncGraph">stats.loadAsyncGraph</a>#621d5fa0 flags:<a href="/type/%23">#</a> token:<a href="/type/string">string</a> x:flags.0?<a href="/type/long">long</a> = <a href="/type/StatsGraph">StatsGraph</a>;
<a href="/method/stickers.setStickerSetThumb">stickers.setStickerSetThumb</a>#9a364e30 stickerset:<a href="/type/InputStickerSet">InputStickerSet</a> thumb:<a href="/type/InputDocument">InputDocument</a> = <a href="/type/messages.StickerSet">messages.StickerSet</a>;<br>
<a href="/method/bots.setBotCommands">bots.setBotCommands</a>#805d46f6 commands:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BotCommand">BotCommand</a>&gt; = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-110" id="layer-110" name="layer-110"><i class="anchor-icon"></i></a><a href="/schema?layer=110">Layer 110</a></h3>
<p>Credit card information</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/payments.getBankCardData">payments.getBankCardData</a> - Get info about a credit card</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>Removed <strong>params</strong> parameter in <a href="/method/initConnection">initConnection</a></li>
<li>Added <strong>flags</strong>, <strong>background</strong>, <strong>self_expires</strong> parameters in <a href="/method/contacts.getLocated">contacts.getLocated</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/messageEntityBankCard">messageEntityBankCard</a> - Indicates a credit card number</li>
<li>Added <a href="/constructor/bankCardOpenUrl">bankCardOpenUrl</a> - Credit card info URL provided by the bank</li>
<li>Added <a href="/constructor/payments.bankCardData">payments.bankCardData</a> - Credit card info, provided by the card's bank(s)</li>
<li>Added <a href="/constructor/peerSelfLocated">peerSelfLocated</a> - Current peer</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/messageEntityBankCard">messageEntityBankCard</a>#761e6af4 offset:<a href="/type/int">int</a> length:<a href="/type/int">int</a> = <a href="/type/MessageEntity">MessageEntity</a>;<br>
<a href="/constructor/bankCardOpenUrl">bankCardOpenUrl</a>#f568028a url:<a href="/type/string">string</a> name:<a href="/type/string">string</a> = <a href="/type/BankCardOpenUrl">BankCardOpenUrl</a>;<br>
<a href="/constructor/payments.bankCardData">payments.bankCardData</a>#3e24e573 title:<a href="/type/string">string</a> open_urls:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BankCardOpenUrl">BankCardOpenUrl</a>&gt; = <a href="/type/payments.BankCardData">payments.BankCardData</a>;
<a href="/constructor/peerSelfLocated">peerSelfLocated</a>#f8ec284b expires:<a href="/type/int">int</a> = <a href="/type/PeerLocated">PeerLocated</a>;<br>
---functions---<br>
<a href="/method/initConnection">initConnection</a>#785188b8 {X:Type} flags:<a href="/type/%23">#</a> api_id:<a href="/type/int">int</a> device_model:<a href="/type/string">string</a> system_version:<a href="/type/string">string</a> app_version:<a href="/type/string">string</a> system_lang_code:<a href="/type/string">string</a> lang_pack:<a href="/type/string">string</a> lang_code:<a href="/type/string">string</a> proxy:flags.0?<a href="/type/InputClientProxy">InputClientProxy</a> query:!X = X;<br>
<a href="/method/contacts.getLocated">contacts.getLocated</a>#d348bc44 flags:<a href="/type/%23">#</a> background:flags.1?<a href="/constructor/true">true</a> geo_point:<a href="/type/InputGeoPoint">InputGeoPoint</a> self_expires:flags.0?<a href="/type/int">int</a> = <a href="/type/Updates">Updates</a>;<br>
<a href="/method/payments.getBankCardData">payments.getBankCardData</a>#2e79d779 number:<a href="/type/string">string</a> = <a href="/type/payments.BankCardData">payments.BankCardData</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-109" id="layer-109" name="layer-109"><i class="anchor-icon"></i></a><a href="/schema?layer=109">Layer 109</a></h3>
<p>Non-anonymous polls, improved sticker management</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.getPollVotes">messages.getPollVotes</a> - Get poll results for non-anonymous polls</li>
<li>Added <a href="/method/messages.toggleStickerSets">messages.toggleStickerSets</a> - Apply changes to multiple 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>params</strong> parameter in <a href="/method/initConnection">initConnection</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/updateMessagePollVote">updateMessagePollVote</a> - A specific user has voted in a poll</li>
<li>Added <a href="/constructor/messageUserVote">messageUserVote</a> - How a user voted in a poll</li>
<li>Added <a href="/constructor/messageUserVoteInputOption">messageUserVoteInputOption</a> - How a user voted in a poll (reduced constructor, returned if an <code>option</code> was provided to <a href="/method/messages.getPollVotes">messages.getPollVotes</a>)</li>
<li>Added <a href="/constructor/messageUserVoteMultiple">messageUserVoteMultiple</a> - How a user voted in a multiple-choice poll</li>
<li>Added <a href="/constructor/messages.votesList">messages.votesList</a> - How users voted in a poll</li>
<li>Added <a href="/constructor/keyboardButtonRequestPoll">keyboardButtonRequestPoll</a> - A button that allows the user to create and send a poll when pressed; available only in private</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>recent_voters</strong> parameter in <a href="/constructor/pollResults">pollResults</a></li>
<li>Added <strong>flags</strong>, <strong>correct_answers</strong> parameters in <a href="/constructor/inputMediaPoll">inputMediaPoll</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/pollResults">pollResults</a>#c87024a2 flags:<a href="/type/%23">#</a> min:flags.0?<a href="/constructor/true">true</a> results:flags.1?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PollAnswerVoters">PollAnswerVoters</a>&gt; total_voters:flags.2?<a href="/type/int">int</a> recent_voters:flags.3?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/PollResults">PollResults</a>;<br>
<a href="/constructor/inputMediaPoll">inputMediaPoll</a>#abe9ca25 flags:<a href="/type/%23">#</a> poll:<a href="/type/Poll">Poll</a> correct_answers:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/bytes">bytes</a>&gt; = <a href="/type/InputMedia">InputMedia</a>;<br>
<a href="/constructor/updateMessagePollVote">updateMessagePollVote</a>#42f88f2c poll_id:<a href="/type/long">long</a> user_id:<a href="/type/int">int</a> options:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/bytes">bytes</a>&gt; = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/messageUserVote">messageUserVote</a>#a28e5559 user_id:<a href="/type/int">int</a> option:<a href="/type/bytes">bytes</a> date:<a href="/type/int">int</a> = <a href="/type/MessageUserVote">MessageUserVote</a>;
<a href="/constructor/messageUserVoteInputOption">messageUserVoteInputOption</a>#36377430 user_id:<a href="/type/int">int</a> date:<a href="/type/int">int</a> = <a href="/type/MessageUserVote">MessageUserVote</a>;
<a href="/constructor/messageUserVoteMultiple">messageUserVoteMultiple</a>#0e8fe0de user_id:<a href="/type/int">int</a> options:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/bytes">bytes</a>&gt; date:<a href="/type/int">int</a> = <a href="/type/MessageUserVote">MessageUserVote</a>;
<a href="/constructor/messages.votesList">messages.votesList</a>#0823f649 flags:<a href="/type/%23">#</a> count:<a href="/type/int">int</a> votes:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/MessageUserVote">MessageUserVote</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.VotesList">messages.VotesList</a>;<br>
<a href="/constructor/keyboardButtonRequestPoll">keyboardButtonRequestPoll</a>#bbc7515d flags:<a href="/type/%23">#</a> quiz:flags.0?<a href="/type/Bool">Bool</a> text:<a href="/type/string">string</a> = <a href="/type/KeyboardButton">KeyboardButton</a>;<br>
---functions---<br>
<a href="/method/initConnection">initConnection</a>#785188b8 {X:Type} flags:<a href="/type/%23">#</a> api_id:<a href="/type/int">int</a> device_model:<a href="/type/string">string</a> system_version:<a href="/type/string">string</a> app_version:<a href="/type/string">string</a> system_lang_code:<a href="/type/string">string</a> lang_pack:<a href="/type/string">string</a> lang_code:<a href="/type/string">string</a> proxy:flags.0?<a href="/type/InputClientProxy">InputClientProxy</a> params:flags.1?<a href="/type/JSONValue">JSONValue</a> query:!X = X;<br>
<a href="/method/messages.getPollVotes">messages.getPollVotes</a>#b86e380e flags:<a href="/type/%23">#</a> peer:<a href="/type/InputPeer">InputPeer</a> id:<a href="/type/int">int</a> option:flags.0?<a href="/type/bytes">bytes</a> offset:flags.1?<a href="/type/string">string</a> limit:<a href="/type/int">int</a> = <a href="/type/messages.VotesList">messages.VotesList</a>;
<a href="/method/messages.toggleStickerSets">messages.toggleStickerSets</a>#b5052fea flags:<a href="/type/%23">#</a> uninstall:flags.0?<a href="/constructor/true">true</a> archive:flags.1?<a href="/constructor/true">true</a> unarchive:flags.2?<a href="/constructor/true">true</a> stickersets:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputStickerSet">InputStickerSet</a>&gt; = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-108" id="layer-108" name="layer-108"><i class="anchor-icon"></i></a><a href="/schema?layer=108">Layer 108</a></h3>
<p>Login with QR-code, sensitive content settings, quizes, multiple-choice and public polls, get inactive chats, improved wallpapers and themes.</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/auth.exportLoginToken">auth.exportLoginToken</a> - Generate a login token, for <a href="/api/qr-login">login via QR code</a>. </li>
<li>Added <a href="/method/auth.importLoginToken">auth.importLoginToken</a> - Login using a redirected login token, generated in case of DC mismatch during <a href="/api/qr-login">QR code login</a>.</li>
<li>Added <a href="/method/auth.acceptLoginToken">auth.acceptLoginToken</a> - Accept QR code login token, logging in the app that generated it.</li>
<li>Added <a href="/method/account.setContentSettings">account.setContentSettings</a> - Set sensitive content settings (for viewing or hiding NSFW content)</li>
<li>Added <a href="/method/account.getContentSettings">account.getContentSettings</a> - Get sensitive content settings</li>
<li>Added <a href="/method/channels.getInactiveChannels">channels.getInactiveChannels</a> - Get inactive channels and supergroups</li>
<li>Added <a href="/method/account.getMultiWallPapers">account.getMultiWallPapers</a> - Get info about multiple wallpapers</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>cdn_supported</strong> parameter in <a href="/method/upload.getFile">upload.getFile</a></li>
<li>Added <strong>flags</strong>, <strong>settings</strong> parameters, changed type of <strong>document</strong> from <strong>InputDocument</strong> to <strong>flags.2?InputDocument</strong> in <a href="/method/account.createTheme">account.createTheme</a></li>
<li>Added <strong>settings</strong> parameter in <a href="/method/account.updateTheme">account.updateTheme</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/inputPhotoLegacyFileLocation">inputPhotoLegacyFileLocation</a> - DEPRECATED legacy photo file location</li>
<li>Added <a href="/constructor/updateGeoLiveViewed">updateGeoLiveViewed</a> - Live geoposition message was viewed</li>
<li>Added <a href="/constructor/updateLoginToken">updateLoginToken</a> - A login token (for login via QR code) was accepted.</li>
<li>Added <a href="/constructor/auth.loginToken">auth.loginToken</a> - Login token (for <a href="/api/qr-login">QR code login</a>)</li>
<li>Added <a href="/constructor/auth.loginTokenMigrateTo">auth.loginTokenMigrateTo</a> - Repeat the query to the specified DC</li>
<li>Added <a href="/constructor/auth.loginTokenSuccess">auth.loginTokenSuccess</a> - Login via token (QR code) succeded!</li>
<li>Added <a href="/constructor/account.contentSettings">account.contentSettings</a> - Sensitive content settings</li>
<li>Added <a href="/constructor/messages.inactiveChats">messages.inactiveChats</a> - Inactive chat list</li>
<li>Added <a href="/constructor/baseThemeClassic">baseThemeClassic</a> - Classic theme</li>
<li>Added <a href="/constructor/baseThemeDay">baseThemeDay</a> - Day theme</li>
<li>Added <a href="/constructor/baseThemeNight">baseThemeNight</a> - Night theme</li>
<li>Added <a href="/constructor/baseThemeTinted">baseThemeTinted</a> - Tinted theme</li>
<li>Added <a href="/constructor/baseThemeArctic">baseThemeArctic</a> - Arctic theme</li>
<li>Added <a href="/constructor/inputWallPaperNoFile">inputWallPaperNoFile</a> - Wallpaper with no file access hash, used for example when deleting (<code>unsave=true</code>) wallpapers using <a href="/method/account.saveWallPaper">account.saveWallPaper</a>, specifying just the wallpaper ID.</li>
<li>Added <a href="/constructor/wallPaperNoFile">wallPaperNoFile</a> - Wallpaper with no file access hash, used for example when deleting (<code>unsave=true</code>) wallpapers using <a href="/method/account.saveWallPaper">account.saveWallPaper</a>, specifying just the wallpaper ID. </li>
<li>Added <a href="/constructor/inputThemeSettings">inputThemeSettings</a> - Theme settings</li>
<li>Added <a href="/constructor/themeSettings">themeSettings</a> - Theme settings</li>
<li>Added <a href="/constructor/webPageAttributeTheme">webPageAttributeTheme</a> - Page theme</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>attributes</strong> parameter, removed <strong>documents</strong> parameter in <a href="/constructor/webPage">webPage</a></li>
<li>Added <strong>public_voters</strong>, <strong>multiple_choice</strong>, <strong>quiz</strong> parameters in <a href="/constructor/poll">poll</a></li>
<li>Added <strong>correct</strong> parameter in <a href="/constructor/pollAnswerVoters">pollAnswerVoters</a></li>
<li>Added <strong>second_background_color</strong>, <strong>rotation</strong> parameters in <a href="/constructor/wallPaperSettings">wallPaperSettings</a></li>
<li>Added <strong>video_upload_maxbitrate</strong> parameter in <a href="/constructor/autoDownloadSettings">autoDownloadSettings</a></li>
<li>Added <strong>settings</strong> parameter in <a href="/constructor/theme">theme</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 themeDocumentNotModified</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/webPage">webPage</a>#e89c45b2 flags:<a href="/type/%23">#</a> id:<a href="/type/long">long</a> url:<a href="/type/string">string</a> display_url:<a href="/type/string">string</a> hash:<a href="/type/int">int</a> type:flags.0?<a href="/type/string">string</a> site_name:flags.1?<a href="/type/string">string</a> title:flags.2?<a href="/type/string">string</a> description:flags.3?<a href="/type/string">string</a> photo:flags.4?<a href="/type/Photo">Photo</a> embed_url:flags.5?<a href="/type/string">string</a> embed_type:flags.5?<a href="/type/string">string</a> embed_width:flags.6?<a href="/type/int">int</a> embed_height:flags.6?<a href="/type/int">int</a> duration:flags.7?<a href="/type/int">int</a> author:flags.8?<a href="/type/string">string</a> document:flags.9?<a href="/type/Document">Document</a> cached_page:flags.10?<a href="/type/Page">Page</a> attributes:flags.12?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/WebPageAttribute">WebPageAttribute</a>&gt; = <a href="/type/WebPage">WebPage</a>;<br>
<a href="/constructor/poll">poll</a>#d5529d06 id:<a href="/type/long">long</a> flags:<a href="/type/%23">#</a> closed:flags.0?<a href="/constructor/true">true</a> public_voters:flags.1?<a href="/constructor/true">true</a> multiple_choice:flags.2?<a href="/constructor/true">true</a> quiz:flags.3?<a href="/constructor/true">true</a> question:<a href="/type/string">string</a> answers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PollAnswer">PollAnswer</a>&gt; = <a href="/type/Poll">Poll</a>;
<a href="/constructor/pollAnswerVoters">pollAnswerVoters</a>#3b6ddad2 flags:<a href="/type/%23">#</a> chosen:flags.0?<a href="/constructor/true">true</a> correct:flags.1?<a href="/constructor/true">true</a> option:<a href="/type/bytes">bytes</a> voters:<a href="/type/int">int</a> = <a href="/type/PollAnswerVoters">PollAnswerVoters</a>;<br>
<a href="/constructor/wallPaperSettings">wallPaperSettings</a>#05086cf8 flags:<a href="/type/%23">#</a> blur:flags.1?<a href="/constructor/true">true</a> motion:flags.2?<a href="/constructor/true">true</a> background_color:flags.0?<a href="/type/int">int</a> second_background_color:flags.4?<a href="/type/int">int</a> intensity:flags.3?<a href="/type/int">int</a> rotation:flags.4?<a href="/type/int">int</a> = <a href="/type/WallPaperSettings">WallPaperSettings</a>;<br>
<a href="/constructor/autoDownloadSettings">autoDownloadSettings</a>#e04232f3 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/int">int</a> file_size_max:<a href="/type/int">int</a> video_upload_maxbitrate:<a href="/type/int">int</a> = <a href="/type/AutoDownloadSettings">AutoDownloadSettings</a>;<br>
<a href="/constructor/inputPhotoLegacyFileLocation">inputPhotoLegacyFileLocation</a>#d83466f3 id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> file_reference:<a href="/type/bytes">bytes</a> volume_id:<a href="/type/long">long</a> local_id:<a href="/type/int">int</a> secret:<a href="/type/long">long</a> = <a href="/type/InputFileLocation">InputFileLocation</a>;<br>
<a href="/constructor/theme">theme</a>#028f1114 flags:<a href="/type/%23">#</a> creator:flags.0?<a href="/constructor/true">true</a> default:flags.1?<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/ThemeSettings">ThemeSettings</a> installs_count:<a href="/type/int">int</a> = <a href="/type/Theme">Theme</a>;<br>
<a href="/constructor/updateGeoLiveViewed">updateGeoLiveViewed</a>#871fb939 peer:<a href="/type/Peer">Peer</a> msg_id:<a href="/type/int">int</a> = <a href="/type/Update">Update</a>;
<a href="/constructor/updateLoginToken">updateLoginToken</a>#564fe691 = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/auth.loginToken">auth.loginToken</a>#629f1980 expires:<a href="/type/int">int</a> token:<a href="/type/bytes">bytes</a> = <a href="/type/auth.LoginToken">auth.LoginToken</a>;
<a href="/constructor/auth.loginTokenMigrateTo">auth.loginTokenMigrateTo</a>#068e9916 dc_id:<a href="/type/int">int</a> token:<a href="/type/bytes">bytes</a> = <a href="/type/auth.LoginToken">auth.LoginToken</a>;
<a href="/constructor/auth.loginTokenSuccess">auth.loginTokenSuccess</a>#390d5c5e authorization:<a href="/type/auth.Authorization">auth.Authorization</a> = <a href="/type/auth.LoginToken">auth.LoginToken</a>;
<a href="/constructor/account.contentSettings">account.contentSettings</a>#57e28221 flags:<a href="/type/%23">#</a> sensitive_enabled:flags.0?<a href="/constructor/true">true</a> sensitive_can_change:flags.1?<a href="/constructor/true">true</a> = <a href="/type/account.ContentSettings">account.ContentSettings</a>;<br>
<a href="/constructor/messages.inactiveChats">messages.inactiveChats</a>#a927fec5 dates:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</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.InactiveChats">messages.InactiveChats</a>;<br>
<a href="/constructor/baseThemeClassic">baseThemeClassic</a>#c3a12462 = <a href="/type/BaseTheme">BaseTheme</a>;
<a href="/constructor/baseThemeDay">baseThemeDay</a>#fbd81688 = <a href="/type/BaseTheme">BaseTheme</a>;
<a href="/constructor/baseThemeNight">baseThemeNight</a>#b7b31ea8 = <a href="/type/BaseTheme">BaseTheme</a>;
<a href="/constructor/baseThemeTinted">baseThemeTinted</a>#6d5f77ee = <a href="/type/BaseTheme">BaseTheme</a>;
<a href="/constructor/baseThemeArctic">baseThemeArctic</a>#5b11125a = <a href="/type/BaseTheme">BaseTheme</a>;<br>
<a href="/constructor/inputWallPaperNoFile">inputWallPaperNoFile</a>#8427bbac = <a href="/type/InputWallPaper">InputWallPaper</a>;<br>
<a href="/constructor/wallPaperNoFile">wallPaperNoFile</a>#8af40b25 flags:<a href="/type/%23">#</a> default:flags.1?<a href="/constructor/true">true</a> dark:flags.4?<a href="/constructor/true">true</a> settings:flags.2?<a href="/type/WallPaperSettings">WallPaperSettings</a> = <a href="/type/WallPaper">WallPaper</a>;<br>
<a href="/constructor/inputThemeSettings">inputThemeSettings</a>#bd507cd1 flags:<a href="/type/%23">#</a> base_theme:<a href="/type/BaseTheme">BaseTheme</a> accent_color:<a href="/type/int">int</a> message_top_color:flags.0?<a href="/type/int">int</a> message_bottom_color:flags.0?<a href="/type/int">int</a> wallpaper:flags.1?<a href="/type/InputWallPaper">InputWallPaper</a> wallpaper_settings:flags.1?<a href="/type/WallPaperSettings">WallPaperSettings</a> = <a href="/type/InputThemeSettings">InputThemeSettings</a>;<br>
<a href="/constructor/themeSettings">themeSettings</a>#9c14984a flags:<a href="/type/%23">#</a> base_theme:<a href="/type/BaseTheme">BaseTheme</a> accent_color:<a href="/type/int">int</a> message_top_color:flags.0?<a href="/type/int">int</a> message_bottom_color:flags.0?<a href="/type/int">int</a> wallpaper:flags.1?<a href="/type/WallPaper">WallPaper</a> = <a href="/type/ThemeSettings">ThemeSettings</a>;<br>
<a href="/constructor/webPageAttributeTheme">webPageAttributeTheme</a>#54b56617 flags:<a href="/type/%23">#</a> documents:flags.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Document">Document</a>&gt; settings:flags.1?<a href="/type/ThemeSettings">ThemeSettings</a> = <a href="/type/WebPageAttribute">WebPageAttribute</a>;<br>
---functions---<br>
<a href="/method/upload.getFile">upload.getFile</a>#b15a9afc 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/int">int</a> limit:<a href="/type/int">int</a> = <a href="/type/upload.File">upload.File</a>;<br>
<a href="/method/account.createTheme">account.createTheme</a>#8432c21f 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/InputThemeSettings">InputThemeSettings</a> = <a href="/type/Theme">Theme</a>;
<a href="/method/account.updateTheme">account.updateTheme</a>#5cb367d5 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/InputThemeSettings">InputThemeSettings</a> = <a href="/type/Theme">Theme</a>;
<a href="/method/auth.exportLoginToken">auth.exportLoginToken</a>#b1b41517 api_id:<a href="/type/int">int</a> api_hash:<a href="/type/string">string</a> except_ids:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/auth.LoginToken">auth.LoginToken</a>;
<a href="/method/auth.importLoginToken">auth.importLoginToken</a>#95ac5ce4 token:<a href="/type/bytes">bytes</a> = <a href="/type/auth.LoginToken">auth.LoginToken</a>;
<a href="/method/auth.acceptLoginToken">auth.acceptLoginToken</a>#e894ad4d token:<a href="/type/bytes">bytes</a> = <a href="/type/Authorization">Authorization</a>;
<a href="/method/account.setContentSettings">account.setContentSettings</a>#b574b16b flags:<a href="/type/%23">#</a> sensitive_enabled:flags.0?<a href="/constructor/true">true</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/account.getContentSettings">account.getContentSettings</a>#8b9b4dae = <a href="/type/account.ContentSettings">account.ContentSettings</a>;<br>
<a href="/method/channels.getInactiveChannels">channels.getInactiveChannels</a>#11e831ee = <a href="/type/messages.InactiveChats">messages.InactiveChats</a>;<br>
<a href="/method/account.getMultiWallPapers">account.getMultiWallPapers</a>#65ad71dc wallpapers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputWallPaper">InputWallPaper</a>&gt; = <a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/WallPaper">WallPaper</a>&gt;;<br></code></pre></div>
<h3><a class="anchor" href="#layer-105" id="layer-105" name="layer-105"><i class="anchor-icon"></i></a><a href="/schema?layer=105">Layer 105</a></h3>
<p>The API underwent huge changes, a full reread of the <a href="https://core.telegram.org">documentation</a> is required.</p>
<h3><a class="anchor" href="#layer-23" id="layer-23" name="layer-23"><i class="anchor-icon"></i></a><a href="/schema?layer=23">Layer 23</a></h3>
<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.getPrivacy">account.getPrivacy</a> - Get privacy settings of current account</li>
<li>Added <a href="/method/account.setPrivacy">account.setPrivacy</a> - Change privacy settings of current account</li>
<li>Added <a href="/method/account.deleteAccount">account.deleteAccount</a> - Delete the user's account from the telegram servers. Can be used, for example, to delete the account of a user that provided the login code, but forgot the <a href="/api/srp">2FA password and no recovery method is configured</a>.</li>
<li>Added <a href="/method/account.getAccountTTL">account.getAccountTTL</a> - Get days to live of account</li>
<li>Added <a href="/method/account.setAccountTTL">account.setAccountTTL</a> - Set account self-destruction period</li>
<li>Added <a href="/method/invokeWithLayer">invokeWithLayer</a> - Invoke the specified query using the specified API <a href="/api/invoking#layers">layer</a></li>
<li>Added <a href="/method/contacts.resolveUsername">contacts.resolveUsername</a> - Resolve a @username to get peer info</li>
<li>Added <a href="/method/account.sendChangePhoneCode">account.sendChangePhoneCode</a> - Verify a new phone number to associate to the current account</li>
<li>Added <a href="/method/account.changePhone">account.changePhone</a> - Change the phone number of the current account</li>
<li>Added <a href="/method/messages.getStickers">messages.getStickers</a> - Get stickers by emoji</li>
<li>Added <a href="/method/messages.getAllStickers">messages.getAllStickers</a> - Get all installed stickers</li>
<li>Added <a href="/method/account.updateDeviceLocked">account.updateDeviceLocked</a> - When client-side passcode lock feature is enabled, will not show message texts in incoming <a href="/api/push-updates">PUSH notifications</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 invokeWithLayer18</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/userStatusRecently">userStatusRecently</a> - Online status: last seen recently</li>
<li>Added <a href="/constructor/userStatusLastWeek">userStatusLastWeek</a> - Online status: last seen last week</li>
<li>Added <a href="/constructor/userStatusLastMonth">userStatusLastMonth</a> - Online status: last seen last month</li>
<li>Added <a href="/constructor/updatePrivacy">updatePrivacy</a> - Privacy rules were changed</li>
<li>Added <a href="/constructor/inputPrivacyKeyStatusTimestamp">inputPrivacyKeyStatusTimestamp</a> - Whether we can see the exact last online timestamp of the user</li>
<li>Added <a href="/constructor/privacyKeyStatusTimestamp">privacyKeyStatusTimestamp</a> - Whether we can see the last online timestamp</li>
<li>Added <a href="/constructor/inputPrivacyValueAllowContacts">inputPrivacyValueAllowContacts</a> - Allow only contacts</li>
<li>Added <a href="/constructor/inputPrivacyValueAllowAll">inputPrivacyValueAllowAll</a> - Allow all users</li>
<li>Added <a href="/constructor/inputPrivacyValueAllowUsers">inputPrivacyValueAllowUsers</a> - Allow only certain users</li>
<li>Added <a href="/constructor/inputPrivacyValueDisallowContacts">inputPrivacyValueDisallowContacts</a> - Disallow only contacts</li>
<li>Added <a href="/constructor/inputPrivacyValueDisallowAll">inputPrivacyValueDisallowAll</a> - Disallow all</li>
<li>Added <a href="/constructor/inputPrivacyValueDisallowUsers">inputPrivacyValueDisallowUsers</a> - Disallow only certain users</li>
<li>Added <a href="/constructor/privacyValueAllowContacts">privacyValueAllowContacts</a> - Allow all contacts</li>
<li>Added <a href="/constructor/privacyValueAllowAll">privacyValueAllowAll</a> - Allow all users</li>
<li>Added <a href="/constructor/privacyValueAllowUsers">privacyValueAllowUsers</a> - Allow only certain users</li>
<li>Added <a href="/constructor/privacyValueDisallowContacts">privacyValueDisallowContacts</a> - Disallow only contacts</li>
<li>Added <a href="/constructor/privacyValueDisallowAll">privacyValueDisallowAll</a> - Disallow all users</li>
<li>Added <a href="/constructor/privacyValueDisallowUsers">privacyValueDisallowUsers</a> - Disallow only certain users</li>
<li>Added <a href="/constructor/account.privacyRules">account.privacyRules</a> - Privacy rules</li>
<li>Added <a href="/constructor/accountDaysTTL">accountDaysTTL</a> - Time to live in days of the current account</li>
<li>Added <a href="/constructor/account.sentChangePhoneCode">account.sentChangePhoneCode</a></li>
<li>Added <a href="/constructor/updateUserPhone">updateUserPhone</a> - A user's phone number was changed</li>
<li>Added <a href="/constructor/documentAttributeImageSize">documentAttributeImageSize</a> - Defines the width and height of an image uploaded as document</li>
<li>Added <a href="/constructor/documentAttributeAnimated">documentAttributeAnimated</a> - Defines an animated GIF</li>
<li>Added <a href="/constructor/documentAttributeSticker">documentAttributeSticker</a> - Defines a sticker</li>
<li>Added <a href="/constructor/documentAttributeVideo">documentAttributeVideo</a> - Defines a video</li>
<li>Added <a href="/constructor/documentAttributeAudio">documentAttributeAudio</a> - Represents an audio file</li>
<li>Added <a href="/constructor/documentAttributeFilename">documentAttributeFilename</a> - A simple document with a file name</li>
<li>Added <a href="/constructor/messages.stickersNotModified">messages.stickersNotModified</a> - No new stickers were found for the given query</li>
<li>Added <a href="/constructor/messages.stickers">messages.stickers</a> - Found stickers</li>
<li>Added <a href="/constructor/stickerPack">stickerPack</a> - A stickerpack is a group of stickers associated to the same emoji. </li>
<li>Added <a href="/constructor/messages.allStickersNotModified">messages.allStickersNotModified</a> - Info about all installed stickers hasn't changed</li>
<li>Added <a href="/constructor/messages.allStickers">messages.allStickers</a> - Info about all installed stickers</li>
<li>Added <a href="/constructor/disabledFeature">disabledFeature</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>status</strong> parameter, removed <strong>expires</strong> parameter in <a href="/constructor/contactStatus">contactStatus</a></li>
<li>Added <strong>expires</strong>, <strong>chat_big_size</strong>, <strong>disabled_features</strong> parameters in <a href="/constructor/config">config</a></li>
<li>Added <strong>attributes</strong> parameter, removed <strong>file_name</strong> parameter in <a href="/constructor/inputMediaUploadedDocument">inputMediaUploadedDocument</a></li>
<li>Added <strong>attributes</strong> parameter, removed <strong>file_name</strong> parameter in <a href="/constructor/inputMediaUploadedThumbDocument">inputMediaUploadedThumbDocument</a></li>
<li>Added <strong>attributes</strong> parameter, removed <strong>user_id</strong>, <strong>file_name</strong> parameters in <a href="/constructor/document">document</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/contactStatus">contactStatus</a>#d3680c61 user_id:<a href="/type/int">int</a> status:<a href="/type/UserStatus">UserStatus</a> = <a href="/type/ContactStatus">ContactStatus</a>;
<a href="/constructor/config">config</a>#7dae33e0 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; chat_big_size:<a href="/type/int">int</a> chat_size_max:<a href="/type/int">int</a> broadcast_size_max:<a href="/type/int">int</a> disabled_features:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/DisabledFeature">DisabledFeature</a>&gt; = <a href="/type/Config">Config</a>;<br>
<a href="/constructor/inputMediaUploadedDocument">inputMediaUploadedDocument</a>#ffe76b78 file:<a href="/type/InputFile">InputFile</a> mime_type:<a href="/type/string">string</a> attributes:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/DocumentAttribute">DocumentAttribute</a>&gt; = <a href="/type/InputMedia">InputMedia</a>;
<a href="/constructor/inputMediaUploadedThumbDocument">inputMediaUploadedThumbDocument</a>#41481486 file:<a href="/type/InputFile">InputFile</a> thumb:<a href="/type/InputFile">InputFile</a> mime_type:<a href="/type/string">string</a> attributes:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/DocumentAttribute">DocumentAttribute</a>&gt; = <a href="/type/InputMedia">InputMedia</a>;<br>
<a href="/constructor/document">document</a>#f9a39f4f id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> date:<a href="/type/int">int</a> mime_type:<a href="/type/string">string</a> size:<a href="/type/int">int</a> thumb:<a href="/type/PhotoSize">PhotoSize</a> 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/userStatusRecently">userStatusRecently</a>#e26f42f1 = <a href="/type/UserStatus">UserStatus</a>;
<a href="/constructor/userStatusLastWeek">userStatusLastWeek</a>#07bf09fc = <a href="/type/UserStatus">UserStatus</a>;
<a href="/constructor/userStatusLastMonth">userStatusLastMonth</a>#77ebc742 = <a href="/type/UserStatus">UserStatus</a>;
<a href="/constructor/updatePrivacy">updatePrivacy</a>#ee3b272a key:<a href="/type/PrivacyKey">PrivacyKey</a> rules:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PrivacyRule">PrivacyRule</a>&gt; = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/inputPrivacyKeyStatusTimestamp">inputPrivacyKeyStatusTimestamp</a>#4f96cb18 = <a href="/type/InputPrivacyKey">InputPrivacyKey</a>;<br>
<a href="/constructor/privacyKeyStatusTimestamp">privacyKeyStatusTimestamp</a>#bc2eab30 = <a href="/type/PrivacyKey">PrivacyKey</a>;<br>
<a href="/constructor/inputPrivacyValueAllowContacts">inputPrivacyValueAllowContacts</a>#0d09e07b = <a href="/type/InputPrivacyRule">InputPrivacyRule</a>;
<a href="/constructor/inputPrivacyValueAllowAll">inputPrivacyValueAllowAll</a>#184b35ce = <a href="/type/InputPrivacyRule">InputPrivacyRule</a>;
<a href="/constructor/inputPrivacyValueAllowUsers">inputPrivacyValueAllowUsers</a>#131cc67f users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputUser">InputUser</a>&gt; = <a href="/type/InputPrivacyRule">InputPrivacyRule</a>;
<a href="/constructor/inputPrivacyValueDisallowContacts">inputPrivacyValueDisallowContacts</a>#0ba52007 = <a href="/type/InputPrivacyRule">InputPrivacyRule</a>;
<a href="/constructor/inputPrivacyValueDisallowAll">inputPrivacyValueDisallowAll</a>#d66b66c9 = <a href="/type/InputPrivacyRule">InputPrivacyRule</a>;
<a href="/constructor/inputPrivacyValueDisallowUsers">inputPrivacyValueDisallowUsers</a>#90110467 users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputUser">InputUser</a>&gt; = <a href="/type/InputPrivacyRule">InputPrivacyRule</a>;<br>
<a href="/constructor/privacyValueAllowContacts">privacyValueAllowContacts</a>#fffe1bac = <a href="/type/PrivacyRule">PrivacyRule</a>;
<a href="/constructor/privacyValueAllowAll">privacyValueAllowAll</a>#65427b82 = <a href="/type/PrivacyRule">PrivacyRule</a>;
<a href="/constructor/privacyValueAllowUsers">privacyValueAllowUsers</a>#4d5bbe0c users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/PrivacyRule">PrivacyRule</a>;
<a href="/constructor/privacyValueDisallowContacts">privacyValueDisallowContacts</a>#f888fa1a = <a href="/type/PrivacyRule">PrivacyRule</a>;
<a href="/constructor/privacyValueDisallowAll">privacyValueDisallowAll</a>#8b73e763 = <a href="/type/PrivacyRule">PrivacyRule</a>;
<a href="/constructor/privacyValueDisallowUsers">privacyValueDisallowUsers</a>#0c7f49b7 users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; = <a href="/type/PrivacyRule">PrivacyRule</a>;<br>
<a href="/constructor/account.privacyRules">account.privacyRules</a>#554abb6f rules:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/PrivacyRule">PrivacyRule</a>&gt; users:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt; = <a href="/type/account.PrivacyRules">account.PrivacyRules</a>;
<a href="/constructor/accountDaysTTL">accountDaysTTL</a>#b8d0afdf days:<a href="/type/int">int</a> = <a href="/type/AccountDaysTTL">AccountDaysTTL</a>;
<a href="/constructor/account.sentChangePhoneCode">account.sentChangePhoneCode</a>#a4f58c4c phone_code_hash:<a href="/type/string">string</a> send_call_timeout:<a href="/type/int">int</a> = <a href="/type/account.SentChangePhoneCode">account.SentChangePhoneCode</a>;<br>
<a href="/constructor/updateUserPhone">updateUserPhone</a>#12b9417b user_id:<a href="/type/int">int</a> phone:<a href="/type/string">string</a> = <a href="/type/Update">Update</a>;<br>
<a href="/constructor/documentAttributeImageSize">documentAttributeImageSize</a>#6c37c15c w:<a href="/type/int">int</a> h:<a href="/type/int">int</a> = <a href="/type/DocumentAttribute">DocumentAttribute</a>;
<a href="/constructor/documentAttributeAnimated">documentAttributeAnimated</a>#11b58939 = <a href="/type/DocumentAttribute">DocumentAttribute</a>;
<a href="/constructor/documentAttributeSticker">documentAttributeSticker</a>#fb0a5727 = <a href="/type/DocumentAttribute">DocumentAttribute</a>;
<a href="/constructor/documentAttributeVideo">documentAttributeVideo</a>#5910cccb duration:<a href="/type/int">int</a> w:<a href="/type/int">int</a> h:<a href="/type/int">int</a> = <a href="/type/DocumentAttribute">DocumentAttribute</a>;
<a href="/constructor/documentAttributeAudio">documentAttributeAudio</a>#051448e5 duration:<a href="/type/int">int</a> = <a href="/type/DocumentAttribute">DocumentAttribute</a>;
<a href="/constructor/documentAttributeFilename">documentAttributeFilename</a>#15590068 file_name:<a href="/type/string">string</a> = <a href="/type/DocumentAttribute">DocumentAttribute</a>;<br>
<a href="/constructor/messages.stickersNotModified">messages.stickersNotModified</a>#f1749a22 = <a href="/type/messages.Stickers">messages.Stickers</a>;
<a href="/constructor/messages.stickers">messages.stickers</a>#8a8ecd32 hash:<a href="/type/string">string</a> stickers:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Document">Document</a>&gt; = <a href="/type/messages.Stickers">messages.Stickers</a>;<br>
<a href="/constructor/stickerPack">stickerPack</a>#12b299d4 emoticon:<a href="/type/string">string</a> documents:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt; = <a href="/type/StickerPack">StickerPack</a>;<br>
<a href="/constructor/messages.allStickersNotModified">messages.allStickersNotModified</a>#e86602c3 = <a href="/type/messages.AllStickers">messages.AllStickers</a>;
<a href="/constructor/messages.allStickers">messages.allStickers</a>#dcef3102 hash:<a href="/type/string">string</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/messages.AllStickers">messages.AllStickers</a>;<br>
<a href="/constructor/disabledFeature">disabledFeature</a>#ae636f24 feature:<a href="/type/string">string</a> description:<a href="/type/string">string</a> = <a href="/type/DisabledFeature">DisabledFeature</a>;<br>
---functions---<br>
<a href="/method/account.getPrivacy">account.getPrivacy</a>#dadbc950 key:<a href="/type/InputPrivacyKey">InputPrivacyKey</a> = <a href="/type/account.PrivacyRules">account.PrivacyRules</a>;
<a href="/method/account.setPrivacy">account.setPrivacy</a>#c9f81ce8 key:<a href="/type/InputPrivacyKey">InputPrivacyKey</a> rules:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputPrivacyRule">InputPrivacyRule</a>&gt; = <a href="/type/account.PrivacyRules">account.PrivacyRules</a>;
<a href="/method/account.deleteAccount">account.deleteAccount</a>#418d4e0b reason:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;
<a href="/method/account.getAccountTTL">account.getAccountTTL</a>#08fc711d = <a href="/type/AccountDaysTTL">AccountDaysTTL</a>;
<a href="/method/account.setAccountTTL">account.setAccountTTL</a>#2442485e ttl:<a href="/type/AccountDaysTTL">AccountDaysTTL</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/invokeWithLayer">invokeWithLayer</a>#da9b0d0d {X:Type} layer:<a href="/type/int">int</a> query:!X = X;<br>
<a href="/method/contacts.resolveUsername">contacts.resolveUsername</a>#0bf0131c username:<a href="/type/string">string</a> = <a href="/type/User">User</a>;<br>
<a href="/method/account.sendChangePhoneCode">account.sendChangePhoneCode</a>#a407a8f4 phone_number:<a href="/type/string">string</a> = <a href="/type/account.SentChangePhoneCode">account.SentChangePhoneCode</a>;
<a href="/method/account.changePhone">account.changePhone</a>#70c32edb phone_number:<a href="/type/string">string</a> phone_code_hash:<a href="/type/string">string</a> phone_code:<a href="/type/string">string</a> = <a href="/type/User">User</a>;<br>
<a href="/method/messages.getStickers">messages.getStickers</a>#ae22e045 emoticon:<a href="/type/string">string</a> hash:<a href="/type/string">string</a> = <a href="/type/messages.Stickers">messages.Stickers</a>;
<a href="/method/messages.getAllStickers">messages.getAllStickers</a>#aa3bc868 hash:<a href="/type/string">string</a> = <a href="/type/messages.AllStickers">messages.AllStickers</a>;<br>
<a href="/method/account.updateDeviceLocked">account.updateDeviceLocked</a>#38df3532 period:<a href="/type/int">int</a> = <a href="/type/Bool">Bool</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/decryptedMessageActionRequestKey">decryptedMessageActionRequestKey</a> - Request rekeying, see <a href="/api/end-to-end/pfs">rekeying process</a></li>
<li>Added <a href="/constructor/decryptedMessageActionAcceptKey">decryptedMessageActionAcceptKey</a> - Accept new key</li>
<li>Added <a href="/constructor/decryptedMessageActionAbortKey">decryptedMessageActionAbortKey</a> - Abort rekeying</li>
<li>Added <a href="/constructor/decryptedMessageActionCommitKey">decryptedMessageActionCommitKey</a> - Commit new key, see <a href="/api/end-to-end/pfs">rekeying process</a></li>
<li>Added <a href="/constructor/decryptedMessageActionNoop">decryptedMessageActionNoop</a> - NOOP action</li>
<li>Added <a href="/constructor/documentAttributeImageSize">documentAttributeImageSize</a> - Defines the width and height of an image uploaded as document</li>
<li>Added <a href="/constructor/documentAttributeAnimated">documentAttributeAnimated</a> - Defines an animated GIF</li>
<li>Added <a href="/constructor/documentAttributeSticker">documentAttributeSticker</a> - Defines a sticker</li>
<li>Added <a href="/constructor/documentAttributeVideo">documentAttributeVideo</a> - Defines a video</li>
<li>Added <a href="/constructor/documentAttributeAudio">documentAttributeAudio</a> - Represents an audio file</li>
<li>Added <a href="/constructor/documentAttributeFilename">documentAttributeFilename</a> - A simple document with a file name</li>
<li>Added <a href="/constructor/photoSizeEmpty">photoSizeEmpty</a> - Empty constructor. Image with this thumbnail is unavailable.</li>
<li>Added <a href="/constructor/photoSize">photoSize</a> - Image description.</li>
<li>Added <a href="/constructor/photoCachedSize">photoCachedSize</a> - Description of an image and its content.</li>
<li>Added <a href="/constructor/fileLocationUnavailable">fileLocationUnavailable</a></li>
<li>Added <a href="/constructor/fileLocation">fileLocation</a></li>
<li>Added <a href="/constructor/decryptedMessageMediaExternalDocument">decryptedMessageMediaExternalDocument</a> - Non-e2e documented forwarded from non-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>===20===<br>
<a href="/constructor/decryptedMessageActionRequestKey">decryptedMessageActionRequestKey</a>#f3c9611b exchange_id:<a href="/type/long">long</a> g_a:<a href="/type/bytes">bytes</a> = <a href="/type/DecryptedMessageAction">DecryptedMessageAction</a>;
<a href="/constructor/decryptedMessageActionAcceptKey">decryptedMessageActionAcceptKey</a>#6fe1735b exchange_id:<a href="/type/long">long</a> g_b:<a href="/type/bytes">bytes</a> key_fingerprint:<a href="/type/long">long</a> = <a href="/type/DecryptedMessageAction">DecryptedMessageAction</a>;
<a href="/constructor/decryptedMessageActionAbortKey">decryptedMessageActionAbortKey</a>#dd05ec6b exchange_id:<a href="/type/long">long</a> = <a href="/type/DecryptedMessageAction">DecryptedMessageAction</a>;
<a href="/constructor/decryptedMessageActionCommitKey">decryptedMessageActionCommitKey</a>#ec2e0b9b exchange_id:<a href="/type/long">long</a> key_fingerprint:<a href="/type/long">long</a> = <a href="/type/DecryptedMessageAction">DecryptedMessageAction</a>;
<a href="/constructor/decryptedMessageActionNoop">decryptedMessageActionNoop</a>#a82fdd63 = <a href="/type/DecryptedMessageAction">DecryptedMessageAction</a>;<br>
===23===
<a href="/constructor/documentAttributeImageSize">documentAttributeImageSize</a>#6c37c15c w:<a href="/type/int">int</a> h:<a href="/type/int">int</a> = <a href="/type/DocumentAttribute">DocumentAttribute</a>;
<a href="/constructor/documentAttributeAnimated">documentAttributeAnimated</a>#11b58939 = <a href="/type/DocumentAttribute">DocumentAttribute</a>;
<a href="/constructor/documentAttributeSticker">documentAttributeSticker</a>#fb0a5727 = <a href="/type/DocumentAttribute">DocumentAttribute</a>;
<a href="/constructor/documentAttributeVideo">documentAttributeVideo</a>#5910cccb duration:<a href="/type/int">int</a> w:<a href="/type/int">int</a> h:<a href="/type/int">int</a> = <a href="/type/DocumentAttribute">DocumentAttribute</a>;
<a href="/constructor/documentAttributeAudio">documentAttributeAudio</a>#051448e5 duration:<a href="/type/int">int</a> = <a href="/type/DocumentAttribute">DocumentAttribute</a>;
<a href="/constructor/documentAttributeFilename">documentAttributeFilename</a>#15590068 file_name:<a href="/type/string">string</a> = <a href="/type/DocumentAttribute">DocumentAttribute</a>;<br>
<a href="/constructor/photoSizeEmpty">photoSizeEmpty</a>#0e17e23c type:<a href="/type/string">string</a> = <a href="/type/PhotoSize">PhotoSize</a>;
<a href="/constructor/photoSize">photoSize</a>#77bfb61b type:<a href="/type/string">string</a> location:<a href="/type/FileLocation">FileLocation</a> w:<a href="/type/int">int</a> h:<a href="/type/int">int</a> size:<a href="/type/int">int</a> = <a href="/type/PhotoSize">PhotoSize</a>;
<a href="/constructor/photoCachedSize">photoCachedSize</a>#e9a734fa type:<a href="/type/string">string</a> location:<a href="/type/FileLocation">FileLocation</a> w:<a href="/type/int">int</a> h:<a href="/type/int">int</a> bytes:<a href="/type/bytes">bytes</a> = <a href="/type/PhotoSize">PhotoSize</a>;<br>
<a href="/constructor/fileLocationUnavailable">fileLocationUnavailable</a>#7c596b46 volume_id:<a href="/type/long">long</a> local_id:<a href="/type/int">int</a> secret:<a href="/type/long">long</a> = <a href="/type/FileLocation">FileLocation</a>;
<a href="/constructor/fileLocation">fileLocation</a>#53d69076 dc_id:<a href="/type/int">int</a> volume_id:<a href="/type/long">long</a> local_id:<a href="/type/int">int</a> secret:<a href="/type/long">long</a> = <a href="/type/FileLocation">FileLocation</a>;<br>
<a href="/constructor/decryptedMessageMediaExternalDocument">decryptedMessageMediaExternalDocument</a>#fa95b0dd id:<a href="/type/long">long</a> access_hash:<a href="/type/long">long</a> date:<a href="/type/int">int</a> mime_type:<a href="/type/string">string</a> size:<a href="/type/int">int</a> thumb:<a href="/type/PhotoSize">PhotoSize</a> 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/DecryptedMessageMedia">DecryptedMessageMedia</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-18" id="layer-18" name="layer-18"><i class="anchor-icon"></i></a><a href="/schema?layer=18">Layer 18</a></h3>
<p>Added username support and a new type of updates for service messages.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<ul>
<li>Added methods <a href="/method/account.checkUsername">account.checkUsername</a> and <a href="/method/account.updateUsername">account.updateUsername</a> for setting up a username, as well as the method <a href="/method/contacts.search">contacts.search</a> that allows searching for publicly available users by username.</li>
<li><strong>username</strong> field added to constructors of the type <a href="/type/User">User</a> and to the <a href="/constructor/updateUserName">updateUserName</a> constructor.</li>
<li>Added new update constructor <a href="/constructor/updateServiceNotification">updateServiceNotification</a> for receiving service messages.</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/contactFound'>contactFound</a> user_id:<a href='/type/int'>int</a> = <a href='/type/ContactFound'>ContactFound</a>;
<a href='/constructor/contacts.found'>contacts.found</a> results:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/ContactFound'>ContactFound</a>&gt; users:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/User'>User</a>&gt; = <a href='/type/contacts.Found'>contacts.Found</a>;
<a href='/constructor/updateUserName'>updateUserName</a> user_id:<a href='/type/int'>int</a> first_name:<a href='/type/string'>string</a> last_name:<a href='/type/string'>string</a> username:<a href='/type/string'>string</a> = <a href='/type/Update'>Update</a>;
<a href='/constructor/userSelf'>userSelf</a> id:<a href='/type/int'>int</a> first_name:<a href='/type/string'>string</a> last_name:<a href='/type/string'>string</a> username:<a href='/type/string'>string</a> phone:<a href='/type/string'>string</a> photo:<a href='/type/UserProfilePhoto'>UserProfilePhoto</a> status:<a href='/type/UserStatus'>UserStatus</a> inactive:<a href='/type/Bool'>Bool</a> = <a href='/type/User'>User</a>;
<a href='/constructor/userContact'>userContact</a> id:<a href='/type/int'>int</a> first_name:<a href='/type/string'>string</a> last_name:<a href='/type/string'>string</a> username:<a href='/type/string'>string</a> access_hash:<a href='/type/long'>long</a> phone:<a href='/type/string'>string</a> photo:<a href='/type/UserProfilePhoto'>UserProfilePhoto</a> status:<a href='/type/UserStatus'>UserStatus</a> = <a href='/type/User'>User</a>;
<a href='/constructor/userRequest'>userRequest</a> id:<a href='/type/int'>int</a> first_name:<a href='/type/string'>string</a> last_name:<a href='/type/string'>string</a> username:<a href='/type/string'>string</a> access_hash:<a href='/type/long'>long</a> phone:<a href='/type/string'>string</a> photo:<a href='/type/UserProfilePhoto'>UserProfilePhoto</a> status:<a href='/type/UserStatus'>UserStatus</a> = <a href='/type/User'>User</a>;
<a href='/constructor/userForeign'>userForeign</a> id:<a href='/type/int'>int</a> first_name:<a href='/type/string'>string</a> last_name:<a href='/type/string'>string</a> username:<a href='/type/string'>string</a> access_hash:<a href='/type/long'>long</a> photo:<a href='/type/UserProfilePhoto'>UserProfilePhoto</a> status:<a href='/type/UserStatus'>UserStatus</a> = <a href='/type/User'>User</a>;
<a href='/constructor/userDeleted'>userDeleted</a> id:<a href='/type/int'>int</a> first_name:<a href='/type/string'>string</a> last_name:<a href='/type/string'>string</a> username:<a href='/type/string'>string</a> = <a href='/type/User'>User</a>;
<a href='/constructor/updateServiceNotification'>updateServiceNotification</a> type:<a href='/type/string'>string</a> message:<a href='/type/string'>string</a> media:<a href='/type/MessageMedia'>MessageMedia</a> popup:<a href='/type/Bool'>Bool</a> = <a href='/type/Update'>Update</a>;
---functions---
<a href='/method/account.checkUsername'>account.checkUsername</a> username:<a href='/type/string'>string</a> = <a href='/type/Bool'>Bool</a>;
<a href='/method/account.updateUsername'>account.updateUsername</a> username:<a href='/type/string'>string</a> = <a href='/type/User'>User</a>;
<a href='/method/contacts.search'>contacts.search</a> q:<a href='/type/string'>string</a> limit:<a href='/type/int'>int</a> = <a href='/type/contacts.Found'>contacts.Found</a>;
invokeWithLayer18#1c900537 {X:Type} query:!X = X;</code></pre>
<h3><a class="anchor" href="#layer-17" id="layer-17" name="layer-17"><i class="anchor-icon"></i></a><a href="/schema?layer=17">Layer 17</a></h3>
<p>Added new events for recording and uploading media, selecting contacts and locations to share.</p>
<p>Read status for multimedia (messages containing <a href="/constructor/messageMediaVideo">messageMediaVideo</a> or <a href="/constructor/messageMediaAudio">messageMediaAudio</a>) was moved to the new method <a href="/method/messages.readMessageContents">messages.readMessageContents</a>. In case <strong>read_contents</strong> is not passed or <a href="/method/messages.readHistory">messages.readHistory</a> is used with an older layer, messages will be marked as read in the traditional way.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<ul>
<li>Added new type <a href="/type/SendMessageAction">SendMessageAction</a> for user actions aside from typing (recording, uploading media, etc.). It is used in updates <a href="/constructor/updateUserTyping">updateUserTyping</a>, <a href="/constructor/updateChatUserTyping">updateChatUserTyping</a>, in the method <a href="/method/messages.setTyping">messages.setTyping</a>, and in the new encrypted service message <a href="/constructor/decryptedMessageActionTyping">decryptedMessageActionTyping</a>.</li>
<li><strong>unread</strong> and <strong>out</strong> parameters in the constructors of the <a href="/type/Message">Message</a> type were joined to form the new <strong>flags</strong> parameter, containing a flag mask.</li>
<li>Added new method <a href="/method/messages.readMessageContents">messages.readMessageContents</a>, to be called once the user listened to a voice message or watched a video.</li>
<li>Added parameters for end-to-end encrypted messages <strong>in_seq_no</strong>, <strong>out_seq_no</strong> and <strong>ttl</strong>.</li>
<li>Added <strong>mime_type</strong> field to secret chat audio and video constructors.</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/sendMessageTypingAction'>sendMessageTypingAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageCancelAction'>sendMessageCancelAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageRecordVideoAction'>sendMessageRecordVideoAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageUploadVideoAction'>sendMessageUploadVideoAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageRecordAudioAction'>sendMessageRecordAudioAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageUploadAudioAction'>sendMessageUploadAudioAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageUploadPhotoAction'>sendMessageUploadPhotoAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageUploadDocumentAction'>sendMessageUploadDocumentAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageGeoLocationAction'>sendMessageGeoLocationAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageChooseContactAction'>sendMessageChooseContactAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/updateUserTyping'>updateUserTyping</a> user_id:<a href='/type/int'>int</a> action:<a href='/type/SendMessageAction'>SendMessageAction</a> = <a href='/type/Update'>Update</a>;
<a href='/constructor/updateChatUserTyping'>updateChatUserTyping</a> chat_id:<a href='/type/int'>int</a> user_id:<a href='/type/int'>int</a> action:<a href='/type/SendMessageAction'>SendMessageAction</a> = <a href='/type/Update'>Update</a>;
// Message object
<a href='/constructor/message'>message</a> flags:<a href='/type/int'>int</a> id:<a href='/type/int'>int</a> from_id:<a href='/type/int'>int</a> to_id:<a href='/type/Peer'>Peer</a> date:<a href='/type/int'>int</a> message:<a href='/type/string'>string</a> media:<a href='/type/MessageMedia'>MessageMedia</a> = <a href='/type/Message'>Message</a>;
<a href='/constructor/messageForwarded'>messageForwarded</a> flags:<a href='/type/int'>int</a> id:<a href='/type/int'>int</a> fwd_from_id:<a href='/type/int'>int</a> fwd_date:<a href='/type/int'>int</a> from_id:<a href='/type/int'>int</a> to_id:<a href='/type/Peer'>Peer</a> date:<a href='/type/int'>int</a> message:<a href='/type/string'>string</a> media:<a href='/type/MessageMedia'>MessageMedia</a> = <a href='/type/Message'>Message</a>;
<a href='/constructor/messageService'>messageService</a> flags:<a href='/type/int'>int</a> id:<a href='/type/int'>int</a> from_id:<a href='/type/int'>int</a> to_id:<a href='/type/Peer'>Peer</a> date:<a href='/type/int'>int</a> action:<a href='/type/MessageAction'>MessageAction</a> = <a href='/type/Message'>Message</a>;
---functions---
<a href='/method/messages.setTyping'>messages.setTyping</a> peer:<a href='/type/InputPeer'>InputPeer</a> action:<a href='/type/SendMessageAction'>SendMessageAction</a> = <a href='/type/Bool'>Bool</a>;
<a href='/method/messages.readHistory'>messages.readHistory</a> peer:<a href='/type/InputPeer'>InputPeer</a> max_id:<a href='/type/int'>int</a> offset:<a href='/type/int'>int</a> read_contents:<a href='/type/Bool'>Bool</a> = <a href='/type/messages.AffectedHistory'>messages.AffectedHistory</a>;
<a href='/method/messages.readMessageContents'>messages.readMessageContents</a> id:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/int'>int</a>&gt; = <a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/int'>int</a>&gt;;
invokeWithLayer17#50858a19 {X:Type} query:!X = X;</code></pre>
<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>
<pre><code>===17===
// Layer
<a href='/constructor/decryptedMessageLayer'>decryptedMessageLayer</a> random_bytes:<a href='/type/bytes'>bytes</a> layer:<a href='/type/int'>int</a> in_seq_no:<a href='/type/int'>int</a> out_seq_no:<a href='/type/int'>int</a> message:<a href='/type/DecryptedMessage'>DecryptedMessage</a> = <a href='/type/DecryptedMessageLayer'>DecryptedMessageLayer</a>;
<a href='/constructor/decryptedMessageMediaAudio'>decryptedMessageMediaAudio</a> duration:<a href='/type/int'>int</a> mime_type:<a href='/type/string'>string</a> size:<a href='/type/int'>int</a> key:<a href='/type/bytes'>bytes</a> iv:<a href='/type/bytes'>bytes</a> = <a href='/type/DecryptedMessageMedia'>DecryptedMessageMedia</a>;
<a href='/constructor/decryptedMessageMediaVideo'>decryptedMessageMediaVideo</a> thumb:<a href='/type/bytes'>bytes</a> thumb_w:<a href='/type/int'>int</a> thumb_h:<a href='/type/int'>int</a> duration:<a href='/type/int'>int</a> mime_type:<a href='/type/string'>string</a> w:<a href='/type/int'>int</a> h:<a href='/type/int'>int</a> size:<a href='/type/int'>int</a> key:<a href='/type/bytes'>bytes</a> iv:<a href='/type/bytes'>bytes</a> = <a href='/type/DecryptedMessageMedia'>DecryptedMessageMedia</a>;
<a href='/constructor/sendMessageTypingAction'>sendMessageTypingAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageCancelAction'>sendMessageCancelAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageRecordVideoAction'>sendMessageRecordVideoAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageUploadVideoAction'>sendMessageUploadVideoAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageRecordAudioAction'>sendMessageRecordAudioAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageUploadAudioAction'>sendMessageUploadAudioAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageUploadPhotoAction'>sendMessageUploadPhotoAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageUploadDocumentAction'>sendMessageUploadDocumentAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageGeoLocationAction'>sendMessageGeoLocationAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/sendMessageChooseContactAction'>sendMessageChooseContactAction</a> = <a href='/type/SendMessageAction'>SendMessageAction</a>;
<a href='/constructor/decryptedMessageActionNotifyLayer'>decryptedMessageActionNotifyLayer</a> layer:<a href='/type/int'>int</a> = <a href='/type/DecryptedMessageAction'>DecryptedMessageAction</a>;
<a href='/constructor/decryptedMessageActionTyping'>decryptedMessageActionTyping</a> action:<a href='/type/SendMessageAction'>SendMessageAction</a> = <a href='/type/DecryptedMessageAction'>DecryptedMessageAction</a>;
<a href='/constructor/decryptedMessage'>decryptedMessage</a> random_id:<a href='/type/long'>long</a> ttl:<a href='/type/int'>int</a> message:<a href='/type/string'>string</a> media:<a href='/type/DecryptedMessageMedia'>DecryptedMessageMedia</a> = <a href='/type/DecryptedMessage'>DecryptedMessage</a>;
<a href='/constructor/decryptedMessageService'>decryptedMessageService</a> random_id:<a href='/type/long'>long</a> action:<a href='/type/DecryptedMessageAction'>DecryptedMessageAction</a> = <a href='/type/DecryptedMessage'>DecryptedMessage</a>;</code></pre>
<h3><a class="anchor" href="#layer-16" id="layer-16" name="layer-16"><i class="anchor-icon"></i></a><a href="/schema?layer=16">Layer 16</a></h3>
<p>Added new <strong>sms_type</strong> = <code>5</code> in the method <a href="/method/auth.sendCode">auth.sendCode</a>.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<ul>
<li>Added new constructor: <a href="/constructor/auth.sentAppCode">auth.sentAppCode</a> to determine whether a code was sent via Telegram.</li>
<li>Added new method <a href="/method/auth.sendSms">auth.sendSms</a> to force re-sending a code via SMS.</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/auth.sentAppCode'>auth.sentAppCode</a> phone_registered:<a href='/type/Bool'>Bool</a> phone_code_hash:<a href='/type/string'>string</a> send_call_timeout:<a href='/type/int'>int</a> is_password:<a href='/type/Bool'>Bool</a> = <a href='/type/auth.SentCode'>auth.SentCode</a>;
---functions---
<a href='/method/auth.sendSms'>auth.sendSms</a> phone_number:<a href='/type/string'>string</a> phone_code_hash:<a href='/type/string'>string</a> = <a href='/type/Bool'>Bool</a>;
invokeWithLayer16#cf5f0987 {X:Type} query:!X = X;</code></pre>
<h3><a class="anchor" href="#layer-15" id="layer-15" name="layer-15"><i class="anchor-icon"></i></a><a href="/schema?layer=15">Layer 15</a></h3>
<p>Modified behavior of the <strong>offset</strong> parameter in the method <a href="/method/messages.getHistory">messages.getHistory</a>. From now on it's possible to combine message_id offset and a numeric offset.</p>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code>invokeWithLayer15#b4418b64 {X:Type} query:!X = X;</code></pre>
<h3><a class="anchor" href="#layer-14" id="layer-14" name="layer-14"><i class="anchor-icon"></i></a><a href="/schema?layer=14">Layer 14</a></h3>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<ul>
<li>Added new update constructors: <a href="/constructor/updateUserBlocked">updateUserBlocked</a> and <a href="/constructor/updateNotifySettings">updateNotifySettings</a> to sync notification settings and blacklists between devices.</li>
<li>Added <strong>notify_settings</strong> field to the <a href="/constructor/dialog">dialog</a> constructor.</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/notifyPeer'>notifyPeer</a> peer:<a href='/type/Peer'>Peer</a> = <a href='/type/NotifyPeer'>NotifyPeer</a>;
<a href='/constructor/notifyUsers'>notifyUsers</a> = <a href='/type/NotifyPeer'>NotifyPeer</a>;
<a href='/constructor/notifyChats'>notifyChats</a> = <a href='/type/NotifyPeer'>NotifyPeer</a>;
<a href='/constructor/notifyAll'>notifyAll</a> = <a href='/type/NotifyPeer'>NotifyPeer</a>;
<a href='/constructor/dialog'>dialog</a> peer:<a href='/type/Peer'>Peer</a> top_message:<a href='/type/int'>int</a> unread_count:<a href='/type/int'>int</a> notify_settings:<a href='/type/PeerNotifySettings'>PeerNotifySettings</a> = <a href='/type/Dialog'>Dialog</a>;
<a href='/constructor/updateUserBlocked'>updateUserBlocked</a> user_id:<a href='/type/int'>int</a> blocked:<a href='/type/Bool'>Bool</a> = <a href='/type/Update'>Update</a>;
<a href='/constructor/updateNotifySettings'>updateNotifySettings</a> peer:<a href='/type/NotifyPeer'>NotifyPeer</a> notify_settings:<a href='/type/PeerNotifySettings'>PeerNotifySettings</a> = <a href='/type/Update'>Update</a>;
---functions---
invokeWithLayer14#2b9b08fa {X:Type} query:!X = X;</code></pre>
<h3><a class="anchor" href="#layer-13" id="layer-13" name="layer-13"><i class="anchor-icon"></i></a><a href="/schema?layer=13">Layer 13</a></h3>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<ul>
<li>Added <strong>mime_type</strong> field to all audio and video constructors.</li>
<li>Added new <a href="/type/DecryptedMessageAction">service message types</a> in secret chats: messages read, messages deleted, screenshot taken, chat history cleared and API layer used by client notifications.</li>
<li>Added <strong>retry_contacts</strong> field to the <a href="/constructor/contacts.importedContacts">contacts.importedContacts</a> constructor: ids of contacts, that will have to be imported at a later date.</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/contacts.importedContacts'>contacts.importedContacts</a> imported:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/ImportedContact'>ImportedContact</a>&gt; retry_contacts:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/long'>long</a>&gt; users:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/User'>User</a>&gt; = <a href='/type/contacts.ImportedContacts'>contacts.ImportedContacts</a>;
<a href='/constructor/inputMediaUploadedAudio'>inputMediaUploadedAudio</a> file:<a href='/type/InputFile'>InputFile</a> duration:<a href='/type/int'>int</a> mime_type:<a href='/type/string'>string</a> = <a href='/type/InputMedia'>InputMedia</a>;
<a href='/constructor/inputMediaUploadedVideo'>inputMediaUploadedVideo</a> file:<a href='/type/InputFile'>InputFile</a> duration:<a href='/type/int'>int</a> w:<a href='/type/int'>int</a> h:<a href='/type/int'>int</a> mime_type:<a href='/type/string'>string</a> = <a href='/type/InputMedia'>InputMedia</a>;
<a href='/constructor/inputMediaUploadedThumbVideo'>inputMediaUploadedThumbVideo</a> file:<a href='/type/InputFile'>InputFile</a> thumb:<a href='/type/InputFile'>InputFile</a> duration:<a href='/type/int'>int</a> w:<a href='/type/int'>int</a> h:<a href='/type/int'>int</a> mime_type:<a href='/type/string'>string</a> = <a href='/type/InputMedia'>InputMedia</a>;
<a href='/constructor/audio'>audio</a> id:<a href='/type/long'>long</a> access_hash:<a href='/type/long'>long</a> user_id:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> duration:<a href='/type/int'>int</a> mime_type:<a href='/type/string'>string</a> size:<a href='/type/int'>int</a> dc_id:<a href='/type/int'>int</a> = <a href='/type/Audio'>Audio</a>;
<a href='/constructor/video'>video</a> id:<a href='/type/long'>long</a> access_hash:<a href='/type/long'>long</a> user_id:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> caption:<a href='/type/string'>string</a> duration:<a href='/type/int'>int</a> mime_type:<a href='/type/string'>string</a> size:<a href='/type/int'>int</a> thumb:<a href='/type/PhotoSize'>PhotoSize</a> dc_id:<a href='/type/int'>int</a> w:<a href='/type/int'>int</a> h:<a href='/type/int'>int</a> = <a href='/type/Video'>Video</a>;
---functions---
invokeWithLayer13#427c8ea2 {X:Type} query:!X = X;</code></pre>
<h3><a class="anchor" href="#layer-12" id="layer-12" name="layer-12"><i class="anchor-icon"></i></a><a href="/schema?layer=12">Layer 12</a></h3>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<ul>
<li>Added method <a href="/method/help.getSupport">help.getSupport</a> for obtaining support user id.</li>
<li>Added <strong>broadcast_size_max</strong> field to the constructor <a href="/constructor/config">config</a>, contaning maximum number of broadcast recipients.</li>
<li>Added <strong>send_call_timeout</strong> field to the constructor <a href="/constructor/auth.sentCode">auth.sentCode</a>, containing required delay before calling <a href="/method/auth.sendCall">auth.sendCall</a>. New field <strong>is_password</strong> in the same constructor.</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/auth.sentCode'>auth.sentCode</a> phone_registered:<a href='/type/Bool'>Bool</a> phone_code_hash:<a href='/type/string'>string</a> send_call_timeout:<a href='/type/int'>int</a> is_password:<a href='/type/Bool'>Bool</a> = <a href='/type/auth.SentCode'>auth.SentCode</a>;
<a href='/constructor/config'>config</a> date:<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; chat_size_max:<a href='/type/int'>int</a> broadcast_size_max:<a href='/type/int'>int</a> = <a href='/type/Config'>Config</a>;
<a href='/constructor/help.support'>help.support</a> phone_number:<a href='/type/string'>string</a> user:<a href='/type/User'>User</a> = <a href='/type/help.Support'>help.Support</a>;
---functions---
<a href='/method/help.getSupport'>help.getSupport</a> = <a href='/type/help.Support'>help.Support</a>;
invokeWithLayer12#dda60d3c {X:Type} query:!X = X;</code></pre>
<h3><a class="anchor" href="#layer-11" id="layer-11" name="layer-11"><i class="anchor-icon"></i></a><a href="/schema?layer=11">Layer 11</a></h3>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<ul>
<li>The <strong>nonce</strong> parameter was removed from secret chat constructors. For purposes of backward compatibility, in all previous layers this field will contain empty bytes.</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/encryptedChatRequested'>encryptedChatRequested</a> id:<a href='/type/int'>int</a> access_hash:<a href='/type/long'>long</a> date:<a href='/type/int'>int</a> admin_id:<a href='/type/int'>int</a> participant_id:<a href='/type/int'>int</a> g_a:<a href='/type/bytes'>bytes</a> = <a href='/type/EncryptedChat'>EncryptedChat</a>;
<a href='/constructor/encryptedChat'>encryptedChat</a> id:<a href='/type/int'>int</a> access_hash:<a href='/type/long'>long</a> date:<a href='/type/int'>int</a> admin_id:<a href='/type/int'>int</a> participant_id:<a href='/type/int'>int</a> g_a_or_b:<a href='/type/bytes'>bytes</a> key_fingerprint:<a href='/type/long'>long</a> = <a href='/type/EncryptedChat'>EncryptedChat</a>;
---functions---
invokeWithLayer11#a6b88fdf {X:Type} query:!X = X;</code></pre>
<h3><a class="anchor" href="#layer-10" id="layer-10" name="layer-10"><i class="anchor-icon"></i></a><a href="/schema?layer=10">Layer 10</a></h3>
<p>Added brief constructors for editing group members. Added new attachment types for ordinary and secret chats.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<ul>
<li>Added new update contructors: <a href="/constructor/updateChatParticipantAdd">updateChatParticipantAdd</a> and <a href="/constructor/updateChatParticipantDelete">updateChatParticipantDelete</a>.</li>
<li>Added new media types: <a href="/type/Document">Document</a>, <a href="/type/Audio">Audio</a>, along with rescpective attachment constructors.</li>
<li>If the client doesn't support Layer 10, it will receive <a href="/constructor/messageMediaUnsupported">messageMediaUnsupported</a> constructors instead of the <a href="/constructor/messageMediaDocument">messageMediaDocument</a> and <a href="/constructor/messageMediaAudio">messageMediaAudio</a> constructors.</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/updateChatParticipantAdd'>updateChatParticipantAdd</a> chat_id:<a href='/type/int'>int</a> user_id:<a href='/type/int'>int</a> inviter_id:<a href='/type/int'>int</a> version:<a href='/type/int'>int</a> = <a href='/type/Update'>Update</a>;
<a href='/constructor/updateChatParticipantDelete'>updateChatParticipantDelete</a> chat_id:<a href='/type/int'>int</a> user_id:<a href='/type/int'>int</a> version:<a href='/type/int'>int</a> = <a href='/type/Update'>Update</a>;
<a href='/constructor/inputMediaUploadedAudio'>inputMediaUploadedAudio</a> file:<a href='/type/InputFile'>InputFile</a> duration:<a href='/type/int'>int</a> = <a href='/type/InputMedia'>InputMedia</a>;
<a href='/constructor/inputMediaAudio'>inputMediaAudio</a> id:<a href='/type/InputAudio'>InputAudio</a> = <a href='/type/InputMedia'>InputMedia</a>;
<a href='/constructor/inputMediaUploadedDocument'>inputMediaUploadedDocument</a> 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/InputMedia'>InputMedia</a>;
<a href='/constructor/inputMediaUploadedThumbDocument'>inputMediaUploadedThumbDocument</a> file:<a href='/type/InputFile'>InputFile</a> thumb:<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/InputMedia'>InputMedia</a>;
<a href='/constructor/inputMediaDocument'>inputMediaDocument</a> id:<a href='/type/InputDocument'>InputDocument</a> = <a href='/type/InputMedia'>InputMedia</a>;
<a href='/constructor/messageMediaDocument'>messageMediaDocument</a> document:<a href='/type/Document'>Document</a> = <a href='/type/MessageMedia'>MessageMedia</a>;
<a href='/constructor/messageMediaAudio'>messageMediaAudio</a> audio:<a href='/type/Audio'>Audio</a> = <a href='/type/MessageMedia'>MessageMedia</a>;
// Input Audio
<a href='/constructor/inputAudioEmpty'>inputAudioEmpty</a> = <a href='/type/InputAudio'>InputAudio</a>;
<a href='/constructor/inputAudio'>inputAudio</a> id:<a href='/type/long'>long</a> access_hash:<a href='/type/long'>long</a> = <a href='/type/InputAudio'>InputAudio</a>;
// Input Document
<a href='/constructor/inputDocumentEmpty'>inputDocumentEmpty</a> = <a href='/type/InputDocument'>InputDocument</a>;
<a href='/constructor/inputDocument'>inputDocument</a> id:<a href='/type/long'>long</a> access_hash:<a href='/type/long'>long</a> = <a href='/type/InputDocument'>InputDocument</a>;
// Input location
<a href='/constructor/inputAudioFileLocation'>inputAudioFileLocation</a> id:<a href='/type/long'>long</a> access_hash:<a href='/type/long'>long</a> = <a href='/type/InputFileLocation'>InputFileLocation</a>;
<a href='/constructor/inputDocumentFileLocation'>inputDocumentFileLocation</a> id:<a href='/type/long'>long</a> access_hash:<a href='/type/long'>long</a> = <a href='/type/InputFileLocation'>InputFileLocation</a>;
<a href='/constructor/decryptedMessageMediaDocument'>decryptedMessageMediaDocument</a> thumb:<a href='/type/bytes'>bytes</a> thumb_w:<a href='/type/int'>int</a> thumb_h:<a href='/type/int'>int</a> file_name:<a href='/type/string'>string</a> mime_type:<a href='/type/string'>string</a> size:<a href='/type/int'>int</a> key:<a href='/type/bytes'>bytes</a> iv:<a href='/type/bytes'>bytes</a> = <a href='/type/DecryptedMessageMedia'>DecryptedMessageMedia</a>;
<a href='/constructor/decryptedMessageMediaAudio'>decryptedMessageMediaAudio</a> duration:<a href='/type/int'>int</a> size:<a href='/type/int'>int</a> key:<a href='/type/bytes'>bytes</a> iv:<a href='/type/bytes'>bytes</a> = <a href='/type/DecryptedMessageMedia'>DecryptedMessageMedia</a>;
// Audio object
<a href='/constructor/audioEmpty'>audioEmpty</a> id:<a href='/type/long'>long</a> = <a href='/type/Audio'>Audio</a>;
<a href='/constructor/audio'>audio</a> id:<a href='/type/long'>long</a> access_hash:<a href='/type/long'>long</a> user_id:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> duration:<a href='/type/int'>int</a> size:<a href='/type/int'>int</a> dc_id:<a href='/type/int'>int</a> = <a href='/type/Audio'>Audio</a>;
// Video object
<a href='/constructor/documentEmpty'>documentEmpty</a> id:<a href='/type/long'>long</a> = <a href='/type/Document'>Document</a>;
<a href='/constructor/document'>document</a> id:<a href='/type/long'>long</a> access_hash:<a href='/type/long'>long</a> user_id:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> file_name:<a href='/type/string'>string</a> mime_type:<a href='/type/string'>string</a> size:<a href='/type/int'>int</a> thumb:<a href='/type/PhotoSize'>PhotoSize</a> dc_id:<a href='/type/int'>int</a> = <a href='/type/Document'>Document</a>;
---functions---
invokeWithLayer10#39620c41 {X:Type} query:!X = X;</code></pre>
<h4><a class="anchor" href="#push-notifications" id="push-notifications" name="push-notifications"><i class="anchor-icon"></i></a>Push-notifications</h4>
<p>Added MESSAGE_DOC, MESSAGE_AUDIO notifications — a message with document or audio received Added CHAT_MESSAGE_DOC, CHAT_MESSAGE_AUDIO notifications — a message with document or audio received in a group</p>
<h3><a class="anchor" href="#layer-9" id="layer-9" name="layer-9"><i class="anchor-icon"></i></a><a href="/schema?layer=9">Layer 9</a></h3>
<p>Increased efficiency when loading big files. Added important checks for certain methods.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<ul>
<li>Added new <a href="/method/upload.saveBigFilePart">upload.saveBigFilePart</a> method, constructors <a href="/constructor/inputFileBig">inputFileBig</a>, <a href="/constructor/inputEncryptedFileBigUploaded">inputEncryptedFileBigUploaded</a> to optimize saving parts of big files. See the updated article on <a href="/api/files#uploading-files">Uploading files</a> for details.</li>
<li>Added a check whether the <a href="/method/initConnection">initConnection</a> method was called with all required parameters before making other API calls. See the updated article on <a href="/api/invoking#saving-client-info">Calling methods</a> for details.</li>
<li>Added availability check for <strong>lang_code</strong> parameters when calling methods <a href="/method/auth.sendCode">auth.sendCode</a>, <a href="/method/account.registerDevice">account.registerDevice</a></li>
<li>Added availability check for <strong>random_id</strong> parameters in all message sending methods: <a href="/method/messages.sendMessage">messages.sendMessage</a>, <a href="/method/messages.sendMedia">messages.sendMedia</a>, <a href="/method/messages.forwardMessage">messages.forwardMessage</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/inputFileBig'>inputFileBig</a> id:<a href='/type/long'>long</a> parts:<a href='/type/int'>int</a> name:<a href='/type/string'>string</a> = <a href='/type/InputFile'>InputFile</a>;
<a href='/constructor/inputEncryptedFileBigUploaded'>inputEncryptedFileBigUploaded</a> id:<a href='/type/long'>long</a> parts:<a href='/type/int'>int</a> key_fingerprint:<a href='/type/int'>int</a> = <a href='/type/InputEncryptedFile'>InputEncryptedFile</a>;
---functions---
<a href='/method/upload.saveBigFilePart'>upload.saveBigFilePart</a> file_id:<a href='/type/long'>long</a> file_part:<a href='/type/int'>int</a> file_total_parts:<a href='/type/int'>int</a> bytes:<a href='/type/bytes'>bytes</a> = <a href='/type/Bool'>Bool</a>;
initConnection#69796de9 {X:Type} api_id:int device_model:string system_version:string app_version:string lang_code:string query:!X = X;
invokeWithLayer9#76715a63 {X:Type} query:!X = X;</code></pre>
<h3><a class="anchor" href="#layer-8" id="layer-8" name="layer-8"><i class="anchor-icon"></i></a><a href="/schema?layer=8">Layer 8</a></h3>
<p>Added support for end-to-end encryption in secret chats. <a href="/api/end-to-end">More...</a></p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<ul>
<li>Added many constructors and methods for secret chats.</li>
<li>Added <strong>qts</strong> field in constructor <a href="/constructor/updates.state">updates.state</a>.</li>
<li>Added 4 new constructors of <a href="/type/Update">Update</a> type</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/updateNewEncryptedMessage'>updateNewEncryptedMessage</a> message:<a href='/type/EncryptedMessage'>EncryptedMessage</a> qts:<a href='/type/int'>int</a> = <a href='/type/Update'>Update</a>;
<a href='/constructor/updateEncryptedChatTyping'>updateEncryptedChatTyping</a> chat_id:<a href='/type/int'>int</a> = <a href='/type/Update'>Update</a>;
<a href='/constructor/updateEncryption'>updateEncryption</a> chat:<a href='/type/EncryptedChat'>EncryptedChat</a> date:<a href='/type/int'>int</a> = <a href='/type/Update'>Update</a>;
<a href='/constructor/updateEncryptedMessagesRead'>updateEncryptedMessagesRead</a> chat_id:<a href='/type/int'>int</a> max_date:<a href='/type/int'>int</a> = <a href='/type/Update'>Update</a>;
// EncryptedChat object
<a href='/constructor/encryptedChatEmpty'>encryptedChatEmpty</a> id:<a href='/type/int'>int</a> = <a href='/type/EncryptedChat'>EncryptedChat</a>;
<a href='/constructor/encryptedChatWaiting'>encryptedChatWaiting</a> id:<a href='/type/int'>int</a> access_hash:<a href='/type/long'>long</a> date:<a href='/type/int'>int</a> admin_id:<a href='/type/int'>int</a> participant_id:<a href='/type/int'>int</a> = <a href='/type/EncryptedChat'>EncryptedChat</a>;
<a href='/constructor/encryptedChatRequested'>encryptedChatRequested</a> id:<a href='/type/int'>int</a> access_hash:<a href='/type/long'>long</a> date:<a href='/type/int'>int</a> admin_id:<a href='/type/int'>int</a> participant_id:<a href='/type/int'>int</a> g_a:<a href='/type/bytes'>bytes</a> = <a href='/type/EncryptedChat'>EncryptedChat</a>;
<a href='/constructor/encryptedChat'>encryptedChat</a> id:<a href='/type/int'>int</a> access_hash:<a href='/type/long'>long</a> date:<a href='/type/int'>int</a> admin_id:<a href='/type/int'>int</a> participant_id:<a href='/type/int'>int</a> g_a_or_b:<a href='/type/bytes'>bytes</a> key_fingerprint:<a href='/type/long'>long</a> = <a href='/type/EncryptedChat'>EncryptedChat</a>;
<a href='/constructor/encryptedChatDiscarded'>encryptedChatDiscarded</a> id:<a href='/type/int'>int</a> = <a href='/type/EncryptedChat'>EncryptedChat</a>;
<a href='/constructor/inputEncryptedChat'>inputEncryptedChat</a> chat_id:<a href='/type/int'>int</a> access_hash:<a href='/type/long'>long</a> = <a href='/type/InputEncryptedChat'>InputEncryptedChat</a>;
// EncryptedFile object
<a href='/constructor/encryptedFileEmpty'>encryptedFileEmpty</a> = <a href='/type/EncryptedFile'>EncryptedFile</a>;
<a href='/constructor/encryptedFile'>encryptedFile</a> id:<a href='/type/long'>long</a> access_hash:<a href='/type/long'>long</a> size:<a href='/type/int'>int</a> dc_id:<a href='/type/int'>int</a> key_fingerprint:<a href='/type/int'>int</a> = <a href='/type/EncryptedFile'>EncryptedFile</a>;
<a href='/constructor/inputEncryptedFileEmpty'>inputEncryptedFileEmpty</a> = <a href='/type/InputEncryptedFile'>InputEncryptedFile</a>;
<a href='/constructor/inputEncryptedFileUploaded'>inputEncryptedFileUploaded</a> id:<a href='/type/long'>long</a> parts:<a href='/type/int'>int</a> md5_checksum:<a href='/type/string'>string</a> key_fingerprint:<a href='/type/int'>int</a> = <a href='/type/InputEncryptedFile'>InputEncryptedFile</a>;
<a href='/constructor/inputEncryptedFile'>inputEncryptedFile</a> id:<a href='/type/long'>long</a> access_hash:<a href='/type/long'>long</a> = <a href='/type/InputEncryptedFile'>InputEncryptedFile</a>;
<a href='/constructor/inputEncryptedFileLocation'>inputEncryptedFileLocation</a> id:<a href='/type/long'>long</a> access_hash:<a href='/type/long'>long</a> = <a href='/type/InputFileLocation'>InputFileLocation</a>;
// Encrypted message
<a href='/constructor/encryptedMessage'>encryptedMessage</a> random_id:<a href='/type/long'>long</a> chat_id:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> bytes:<a href='/type/bytes'>bytes</a> file:<a href='/type/EncryptedFile'>EncryptedFile</a> = <a href='/type/EncryptedMessage'>EncryptedMessage</a>;
<a href='/constructor/encryptedMessageService'>encryptedMessageService</a> random_id:<a href='/type/long'>long</a> chat_id:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> bytes:<a href='/type/bytes'>bytes</a> = <a href='/type/EncryptedMessage'>EncryptedMessage</a>;
// Diffie-Hellman config
<a href='/constructor/messages.dhConfigNotModified'>messages.dhConfigNotModified</a> random:<a href='/type/bytes'>bytes</a> = <a href='/type/messages.DhConfig'>messages.DhConfig</a>;
<a href='/constructor/messages.dhConfig'>messages.dhConfig</a> g:<a href='/type/int'>int</a> p:<a href='/type/bytes'>bytes</a> version:<a href='/type/int'>int</a> random:<a href='/type/bytes'>bytes</a> = <a href='/type/messages.DhConfig'>messages.DhConfig</a>;
<a href='/constructor/messages.sentEncryptedMessage'>messages.sentEncryptedMessage</a> date:<a href='/type/int'>int</a> = <a href='/type/messages.SentEncryptedMessage'>messages.SentEncryptedMessage</a>;
<a href='/constructor/messages.sentEncryptedFile'>messages.sentEncryptedFile</a> date:<a href='/type/int'>int</a> file:<a href='/type/EncryptedFile'>EncryptedFile</a> = <a href='/type/messages.SentEncryptedMessage'>messages.SentEncryptedMessage</a>;
// Updated state with qts
<a href='/constructor/updates.state'>updates.state</a> pts:<a href='/type/int'>int</a> qts:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> seq:<a href='/type/int'>int</a> unread_count:<a href='/type/int'>int</a> = <a href='/type/updates.State'>updates.State</a>;
<a href='/constructor/updates.difference'>updates.difference</a> new_messages:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Message'>Message</a>&gt; new_encrypted_messages:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/EncryptedMessage'>EncryptedMessage</a>&gt; other_updates:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Update'>Update</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; state:<a href='/type/updates.State'>updates.State</a> = <a href='/type/updates.Difference'>updates.Difference</a>;
<a href='/constructor/updates.differenceSlice'>updates.differenceSlice</a> new_messages:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Message'>Message</a>&gt; new_encrypted_messages:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/EncryptedMessage'>EncryptedMessage</a>&gt; other_updates:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Update'>Update</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; intermediate_state:<a href='/type/updates.State'>updates.State</a> = <a href='/type/updates.Difference'>updates.Difference</a>;
---functions---
<a href='/method/messages.getDhConfig'>messages.getDhConfig</a> version:<a href='/type/int'>int</a> random_length:<a href='/type/int'>int</a> = <a href='/type/messages.DhConfig'>messages.DhConfig</a>;
<a href='/method/messages.requestEncryption'>messages.requestEncryption</a> user_id:<a href='/type/InputUser'>InputUser</a> random_id:<a href='/type/int'>int</a> g_a:<a href='/type/bytes'>bytes</a> = <a href='/type/EncryptedChat'>EncryptedChat</a>;
<a href='/method/messages.acceptEncryption'>messages.acceptEncryption</a> peer:<a href='/type/InputEncryptedChat'>InputEncryptedChat</a> g_b:<a href='/type/bytes'>bytes</a> key_fingerprint:<a href='/type/long'>long</a> = <a href='/type/EncryptedChat'>EncryptedChat</a>;
<a href='/method/messages.discardEncryption'>messages.discardEncryption</a> chat_id:<a href='/type/int'>int</a> = <a href='/type/Bool'>Bool</a>;
<a href='/method/messages.setEncryptedTyping'>messages.setEncryptedTyping</a> peer:<a href='/type/InputEncryptedChat'>InputEncryptedChat</a> typing:<a href='/type/Bool'>Bool</a> = <a href='/type/Bool'>Bool</a>;
<a href='/method/messages.readEncryptedHistory'>messages.readEncryptedHistory</a> peer:<a href='/type/InputEncryptedChat'>InputEncryptedChat</a> max_date:<a href='/type/int'>int</a> = <a href='/type/Bool'>Bool</a>;
<a href='/method/messages.sendEncrypted'>messages.sendEncrypted</a> peer:<a href='/type/InputEncryptedChat'>InputEncryptedChat</a> random_id:<a href='/type/long'>long</a> data:<a href='/type/bytes'>bytes</a> = <a href='/type/messages.SentEncryptedMessage'>messages.SentEncryptedMessage</a>;
<a href='/method/messages.sendEncryptedFile'>messages.sendEncryptedFile</a> peer:<a href='/type/InputEncryptedChat'>InputEncryptedChat</a> random_id:<a href='/type/long'>long</a> data:<a href='/type/bytes'>bytes</a> file:<a href='/type/InputEncryptedFile'>InputEncryptedFile</a> = <a href='/type/messages.SentEncryptedMessage'>messages.SentEncryptedMessage</a>;
<a href='/method/messages.sendEncryptedService'>messages.sendEncryptedService</a> peer:<a href='/type/InputEncryptedChat'>InputEncryptedChat</a> random_id:<a href='/type/long'>long</a> data:<a href='/type/bytes'>bytes</a> = <a href='/type/messages.SentEncryptedMessage'>messages.SentEncryptedMessage</a>;
<a href='/method/messages.receivedQueue'>messages.receivedQueue</a> max_qts:<a href='/type/int'>int</a> = <a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/long'>long</a>&gt;;
<a href='/method/updates.getDifference'>updates.getDifference</a> pts:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> qts:<a href='/type/int'>int</a> = <a href='/type/updates.Difference'>updates.Difference</a>;
invokeWithLayer8#e9abd9fd {X:Type} query:!X = X;</code></pre>
<h4><a class="anchor" href="#push-notifications" id="push-notifications" name="push-notifications"><i class="anchor-icon"></i></a>Push-notifications</h4>
<ul>
<li>Added notification of <a href="/api/push-updates#possible-notifications">ENCRYPTION_REQUEST</a> type -- a contact requested secret chat creation</li>
<li>Added notification of <a href="/api/push-updates#possible-notifications">ENCRYPTION_ACCEPT</a> type -- a contact confirmed secret chat creation</li>
<li>Added notification of <a href="/api/push-updates#possible-notifications">ENCRYPTED_MESSAGE</a> type -- a contact sent 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>
<pre><code>===8===
<a href='/constructor/decryptedMessage'>decryptedMessage</a> random_id:<a href='/type/long'>long</a> random_bytes:<a href='/type/bytes'>bytes</a> message:<a href='/type/string'>string</a> media:<a href='/type/DecryptedMessageMedia'>DecryptedMessageMedia</a> = <a href='/type/DecryptedMessage'>DecryptedMessage</a>;
<a href='/constructor/decryptedMessageService'>decryptedMessageService</a> random_id:<a href='/type/long'>long</a> random_bytes:<a href='/type/bytes'>bytes</a> action:<a href='/type/DecryptedMessageAction'>DecryptedMessageAction</a> = <a href='/type/DecryptedMessage'>DecryptedMessage</a>;
<a href='/constructor/decryptedMessageMediaEmpty'>decryptedMessageMediaEmpty</a> = <a href='/type/DecryptedMessageMedia'>DecryptedMessageMedia</a>;
<a href='/constructor/decryptedMessageMediaPhoto'>decryptedMessageMediaPhoto</a> thumb:<a href='/type/bytes'>bytes</a> thumb_w:<a href='/type/int'>int</a> thumb_h:<a href='/type/int'>int</a> w:<a href='/type/int'>int</a> h:<a href='/type/int'>int</a> size:<a href='/type/int'>int</a> key:<a href='/type/bytes'>bytes</a> iv:<a href='/type/bytes'>bytes</a> = <a href='/type/DecryptedMessageMedia'>DecryptedMessageMedia</a>;
<a href='/constructor/decryptedMessageMediaVideo'>decryptedMessageMediaVideo</a> thumb:<a href='/type/bytes'>bytes</a> thumb_w:<a href='/type/int'>int</a> thumb_h:<a href='/type/int'>int</a> duration:<a href='/type/int'>int</a> w:<a href='/type/int'>int</a> h:<a href='/type/int'>int</a> size:<a href='/type/int'>int</a> key:<a href='/type/bytes'>bytes</a> iv:<a href='/type/bytes'>bytes</a> = <a href='/type/DecryptedMessageMedia'>DecryptedMessageMedia</a>;
<a href='/constructor/decryptedMessageMediaGeoPoint'>decryptedMessageMediaGeoPoint</a> lat:<a href='/type/double'>double</a> long:<a href='/type/double'>double</a> = <a href='/type/DecryptedMessageMedia'>DecryptedMessageMedia</a>;
<a href='/constructor/decryptedMessageMediaContact'>decryptedMessageMediaContact</a> phone_number:<a href='/type/string'>string</a> first_name:<a href='/type/string'>string</a> last_name:<a href='/type/string'>string</a> user_id:<a href='/type/int'>int</a> = <a href='/type/DecryptedMessageMedia'>DecryptedMessageMedia</a>;
<a href='/constructor/decryptedMessageActionSetMessageTTL'>decryptedMessageActionSetMessageTTL</a> ttl_seconds:<a href='/type/int'>int</a> = <a href='/type/DecryptedMessageAction'>DecryptedMessageAction</a>;
<a href='/constructor/decryptedMessageMediaDocument'>decryptedMessageMediaDocument</a> thumb:<a href='/type/bytes'>bytes</a> thumb_w:<a href='/type/int'>int</a> thumb_h:<a href='/type/int'>int</a> file_name:<a href='/type/string'>string</a> mime_type:<a href='/type/string'>string</a> size:<a href='/type/int'>int</a> key:<a href='/type/bytes'>bytes</a> iv:<a href='/type/bytes'>bytes</a> = <a href='/type/DecryptedMessageMedia'>DecryptedMessageMedia</a>;
<a href='/constructor/decryptedMessageMediaAudio'>decryptedMessageMediaAudio</a> duration:<a href='/type/int'>int</a> size:<a href='/type/int'>int</a> key:<a href='/type/bytes'>bytes</a> iv:<a href='/type/bytes'>bytes</a> = <a href='/type/DecryptedMessageMedia'>DecryptedMessageMedia</a>;
<a href='/constructor/decryptedMessageActionReadMessages'>decryptedMessageActionReadMessages</a> random_ids:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/long'>long</a>&gt; = <a href='/type/DecryptedMessageAction'>DecryptedMessageAction</a>;
<a href='/constructor/decryptedMessageActionDeleteMessages'>decryptedMessageActionDeleteMessages</a> random_ids:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/long'>long</a>&gt; = <a href='/type/DecryptedMessageAction'>DecryptedMessageAction</a>;
<a href='/constructor/decryptedMessageActionScreenshotMessages'>decryptedMessageActionScreenshotMessages</a> random_ids:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/long'>long</a>&gt; = <a href='/type/DecryptedMessageAction'>DecryptedMessageAction</a>;
<a href='/constructor/decryptedMessageActionFlushHistory'>decryptedMessageActionFlushHistory</a> = <a href='/type/DecryptedMessageAction'>DecryptedMessageAction</a>;</code></pre>
<h3><a class="anchor" href="#layer-7" id="layer-7" name="layer-7"><i class="anchor-icon"></i></a><a href="/schema?layer=7">Layer 7</a></h3>
<p>Added wallpaper constructor <a href="/constructor/wallPaperSolid">wallPaperSolid</a>.</p>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/wallPaperSolid'>wallPaperSolid</a> id:<a href='/type/int'>int</a> title:<a href='/type/string'>string</a> bg_color:<a href='/type/int'>int</a> color:<a href='/type/int'>int</a> = <a href='/type/WallPaper'>WallPaper</a>;
---functions---
invokeWithLayer7#a5be56d3 {X:Type} query:!X = X;</code></pre>
<h3><a class="anchor" href="#layer-6" id="layer-6" name="layer-6"><i class="anchor-icon"></i></a><a href="/schema?layer=6">Layer 6</a></h3>
<p>Added location identifiers from foursquare.</p>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/geoChat'>geoChat</a> id:<a href='/type/int'>int</a> access_hash:<a href='/type/long'>long</a> title:<a href='/type/string'>string</a> address:<a href='/type/string'>string</a> venue:<a href='/type/string'>string</a> geo:<a href='/type/GeoPoint'>GeoPoint</a> photo:<a href='/type/ChatPhoto'>ChatPhoto</a> participants_count:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> checked_in:<a href='/type/Bool'>Bool</a> version:<a href='/type/int'>int</a> = <a href='/type/Chat'>Chat</a>;
---functions---
<a href='/method/geochats.createGeoChat'>geochats.createGeoChat</a> title:<a href='/type/string'>string</a> geo_point:<a href='/type/InputGeoPoint'>InputGeoPoint</a> address:<a href='/type/string'>string</a> venue:<a href='/type/string'>string</a> = <a href='/type/geochats.StatedMessage'>geochats.StatedMessage</a>;
invokeWithLayer6#3a64d54d {X:Type} query:!X = X;</code></pre>
<h3><a class="anchor" href="#layer-5" id="layer-5" name="layer-5"><i class="anchor-icon"></i></a><a href="/schema?layer=5">Layer 5</a></h3>
<p>Added parameters for internationalization.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<ul>
<li>Added parameter lang_code to methods <a href="/method/auth.sendCode">auth.sendCode</a>, <a href="/method/account.registerDevice">account.registerDevice</a></li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code>---functions---
<a href='/method/auth.sendCode'>auth.sendCode</a> phone_number:<a href='/type/string'>string</a> sms_type:<a href='/type/int'>int</a> api_id:<a href='/type/int'>int</a> api_hash:<a href='/type/string'>string</a> lang_code:<a href='/type/string'>string</a> = <a href='/type/auth.SentCode'>auth.SentCode</a>;
<a href='/method/account.registerDevice'>account.registerDevice</a> token_type:<a href='/type/int'>int</a> token:<a href='/type/string'>string</a> device_model:<a href='/type/string'>string</a> system_version:<a href='/type/string'>string</a> app_version:<a href='/type/string'>string</a> app_sandbox:<a href='/type/Bool'>Bool</a> lang_code:<a href='/type/string'>string</a> = <a href='/type/Bool'>Bool</a>;
invokeWithLayer5#417a57ae {X:Type} query:!X = X;</code></pre>
<h3><a class="anchor" href="#layer-4" id="layer-4" name="layer-4"><i class="anchor-icon"></i></a><a href="/schema?layer=4">Layer 4</a></h3>
<p>Added geochats. <a href="/api/geochats">More...</a></p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<ul>
<li>Added many constructors and methods for geochats.</li>
<li>Added friends_unread_count field to constructor <a href="/constructor/updates.state">updates.state</a>.</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/inputGeoChat'>inputGeoChat</a> chat_id:<a href='/type/int'>int</a> access_hash:<a href='/type/long'>long</a> = <a href='/type/InputGeoChat'>InputGeoChat</a>;
<a href='/constructor/geoChat'>geoChat</a> id:<a href='/type/int'>int</a> access_hash:<a href='/type/long'>long</a> title:<a href='/type/string'>string</a> address:<a href='/type/string'>string</a> geo:<a href='/type/GeoPoint'>GeoPoint</a> photo:<a href='/type/ChatPhoto'>ChatPhoto</a> participants_count:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> left:<a href='/type/Bool'>Bool</a> version:<a href='/type/int'>int</a> = <a href='/type/Chat'>Chat</a>;
<a href='/constructor/geoChatMessageEmpty'>geoChatMessageEmpty</a> chat_id:<a href='/type/int'>int</a> id:<a href='/type/int'>int</a> = <a href='/type/GeoChatMessage'>GeoChatMessage</a>;
<a href='/constructor/geoChatMessage'>geoChatMessage</a> chat_id:<a href='/type/int'>int</a> id:<a href='/type/int'>int</a> from_id:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> message:<a href='/type/string'>string</a> media:<a href='/type/MessageMedia'>MessageMedia</a> = <a href='/type/GeoChatMessage'>GeoChatMessage</a>;
<a href='/constructor/geoChatMessageService'>geoChatMessageService</a> chat_id:<a href='/type/int'>int</a> id:<a href='/type/int'>int</a> from_id:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> action:<a href='/type/MessageAction'>MessageAction</a> = <a href='/type/GeoChatMessage'>GeoChatMessage</a>;
<a href='/constructor/geochats.statedMessage'>geochats.statedMessage</a> message:<a href='/type/GeoChatMessage'>GeoChatMessage</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; seq:<a href='/type/int'>int</a> = <a href='/type/geochats.StatedMessage'>geochats.StatedMessage</a>;
<a href='/constructor/geochats.located'>geochats.located</a> results:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/ChatLocated'>ChatLocated</a>&gt; messages:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/GeoChatMessage'>GeoChatMessage</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/geochats.Located'>geochats.Located</a>;
<a href='/constructor/geochats.messages'>geochats.messages</a> messages:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/GeoChatMessage'>GeoChatMessage</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/geochats.Messages'>geochats.Messages</a>;
<a href='/constructor/geochats.messagesSlice'>geochats.messagesSlice</a> count:<a href='/type/int'>int</a> messages:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/GeoChatMessage'>GeoChatMessage</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/geochats.Messages'>geochats.Messages</a>;
<a href='/constructor/messageActionGeoChatCreate'>messageActionGeoChatCreate</a> title:<a href='/type/string'>string</a> address:<a href='/type/string'>string</a> = <a href='/type/MessageAction'>MessageAction</a>;
<a href='/constructor/messageActionGeoChatCheckin'>messageActionGeoChatCheckin</a> = <a href='/type/MessageAction'>MessageAction</a>;
<a href='/constructor/updateNewGeoChatMessage'>updateNewGeoChatMessage</a> message:<a href='/type/GeoChatMessage'>GeoChatMessage</a> = <a href='/type/Update'>Update</a>;
<a href='/constructor/updates.state'>updates.state</a> pts:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> seq:<a href='/type/int'>int</a> unread_count:<a href='/type/int'>int</a> friends_unread_count:<a href='/type/int'>int</a> = <a href='/type/updates.State'>updates.State</a>;
---functions---
<a href='/method/geochats.getLocated'>geochats.getLocated</a> geo_point:<a href='/type/InputGeoPoint'>InputGeoPoint</a> radius:<a href='/type/int'>int</a> limit:<a href='/type/int'>int</a> = <a href='/type/geochats.Located'>geochats.Located</a>;
<a href='/method/geochats.checkin'>geochats.checkin</a> peer:<a href='/type/InputGeoChat'>InputGeoChat</a> = <a href='/type/geochats.StatedMessage'>geochats.StatedMessage</a>;
<a href='/method/geochats.getFullChat'>geochats.getFullChat</a> peer:<a href='/type/InputGeoChat'>InputGeoChat</a> = <a href='/type/messages.ChatFull'>messages.ChatFull</a>;
<a href='/method/geochats.editChatTitle'>geochats.editChatTitle</a> peer:<a href='/type/InputGeoChat'>InputGeoChat</a> title:<a href='/type/string'>string</a> address:<a href='/type/string'>string</a> = <a href='/type/geochats.StatedMessage'>geochats.StatedMessage</a>;
<a href='/method/geochats.editChatPhoto'>geochats.editChatPhoto</a> peer:<a href='/type/InputGeoChat'>InputGeoChat</a> photo:<a href='/type/InputChatPhoto'>InputChatPhoto</a> = <a href='/type/geochats.StatedMessage'>geochats.StatedMessage</a>;
<a href='/method/geochats.search'>geochats.search</a> peer:<a href='/type/InputGeoChat'>InputGeoChat</a> q:<a href='/type/string'>string</a> filter:<a href='/type/MessagesFilter'>MessagesFilter</a> min_date:<a href='/type/int'>int</a> max_date:<a href='/type/int'>int</a> offset:<a href='/type/int'>int</a> max_id:<a href='/type/int'>int</a> limit:<a href='/type/int'>int</a> = <a href='/type/geochats.Messages'>geochats.Messages</a>;
<a href='/method/geochats.getHistory'>geochats.getHistory</a> peer:<a href='/type/InputGeoChat'>InputGeoChat</a> offset:<a href='/type/int'>int</a> max_id:<a href='/type/int'>int</a> limit:<a href='/type/int'>int</a> = <a href='/type/geochats.Messages'>geochats.Messages</a>;
<a href='/method/geochats.setTyping'>geochats.setTyping</a> peer:<a href='/type/InputGeoChat'>InputGeoChat</a> typing:<a href='/type/Bool'>Bool</a> = <a href='/type/Bool'>Bool</a>;
<a href='/method/geochats.sendMessage'>geochats.sendMessage</a> peer:<a href='/type/InputGeoChat'>InputGeoChat</a> message:<a href='/type/string'>string</a> random_id:<a href='/type/long'>long</a> = <a href='/type/geochats.StatedMessage'>geochats.StatedMessage</a>;
<a href='/method/geochats.sendMedia'>geochats.sendMedia</a> peer:<a href='/type/InputGeoChat'>InputGeoChat</a> media:<a href='/type/InputMedia'>InputMedia</a> random_id:<a href='/type/long'>long</a> = <a href='/type/geochats.StatedMessage'>geochats.StatedMessage</a>;
<a href='/method/geochats.createGeoChat'>geochats.createGeoChat</a> title:<a href='/type/string'>string</a> geo_point:<a href='/type/InputGeoPoint'>InputGeoPoint</a> address:<a href='/type/string'>string</a> = <a href='/type/geochats.StatedMessage'>geochats.StatedMessage</a>;
invokeWithLayer4#dea0d430 {X:Type} query:!X = X;</code></pre>
<h4><a class="anchor" href="#push-notifications" id="push-notifications" name="push-notifications"><i class="anchor-icon"></i></a>Push-notifications</h4>
<ul>
<li>Added notification of <a href="/api/push-updates#possible-notifications">GEOCHAT_CHECKIN</a> type -- a user has checked-in in a geochat.</li>
</ul>
<h3><a class="anchor" href="#layer-3" id="layer-3" name="layer-3"><i class="anchor-icon"></i></a><a href="/schema?layer=3">Layer 3</a></h3>
<p>Support for link changes for a contact when a message is sent. Now, if user X has user Y in the contact list and if user Y writes a message to user X, number X will become available for him.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<ul>
<li>Added constructors <a href="/constructor/messages.statedMessagesLinks">messages.statedMessagesLinks</a>, <a href="/constructor/messages.statedMessageLink">messages.statedMessageLink</a>, <a href="/constructor/messages.sentMessageLink">messages.sentMessageLink</a>. They are completely similar to previous ones except for the links field containing changed links.</li>
<li>Added events_mask field to constructors <a href="/constructor/inputPeerNotifySettings">inputPeerNotifySettings</a>, <a href="/constructor/peerNotifySettings">peerNotifySettings</a> making possible turning-off PUSH-notifications on image changes.</li>
<li>Added method <a href="/method/messages.forwardMessage">messages.forwardMessage</a> for sending single messages.</li>
<li>Added method <a href="/method/messages.sendBroadcast">messages.sendBroadcast</a> for bulky messaging.</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/messages.statedMessagesLinks'>messages.statedMessagesLinks</a> 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; links:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/contacts.Link'>contacts.Link</a>&gt; pts:<a href='/type/int'>int</a> seq:<a href='/type/int'>int</a> = <a href='/type/messages.StatedMessages'>messages.StatedMessages</a>;
<a href='/constructor/messages.statedMessageLink'>messages.statedMessageLink</a> message:<a href='/type/Message'>Message</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; links:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/contacts.Link'>contacts.Link</a>&gt; pts:<a href='/type/int'>int</a> seq:<a href='/type/int'>int</a> = <a href='/type/messages.StatedMessage'>messages.StatedMessage</a>;
<a href='/constructor/messages.sentMessageLink'>messages.sentMessageLink</a> id:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> pts:<a href='/type/int'>int</a> seq:<a href='/type/int'>int</a> links:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/contacts.Link'>contacts.Link</a>&gt; = <a href='/type/messages.SentMessage'>messages.SentMessage</a>;
---functions---
<a href='/method/messages.forwardMessage'>messages.forwardMessage</a> peer:<a href='/type/InputPeer'>InputPeer</a> id:<a href='/type/int'>int</a> random_id:<a href='/type/long'>long</a> = <a href='/type/messages.StatedMessage'>messages.StatedMessage</a>;
<a href='/method/messages.sendBroadcast'>messages.sendBroadcast</a> contacts:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/InputUser'>InputUser</a>&gt; message:<a href='/type/string'>string</a> media:<a href='/type/InputMedia'>InputMedia</a> = <a href='/type/messages.StatedMessages'>messages.StatedMessages</a>;
invokeWithLayer3#b7475268 {X:Type} query:!X = X;</code></pre>
<h3><a class="anchor" href="#layer-2" id="layer-2" name="layer-2"><i class="anchor-icon"></i></a><a href="/schema?layer=2">Layer 2</a></h3>
<p>Support for notifications on changes of contact profile images. It is assumed that receiving such image changed notification a client will add a record on this event in the message history with this contact.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<ul>
<li>Added date and previous fields to constructor <a href="/constructor/updateUserPhoto">updateUserPhoto</a>.</li>
<li>Added events_mask field to constructors <a href="/constructor/inputPeerNotifySettings">inputPeerNotifySettings</a>, <a href="/constructor/peerNotifySettings">peerNotifySettings</a> making possible turning-off PUSH-notifications on image change.</li>
<li>Added identifier for relevant image to constructor <a href="/constructor/userProfilePhoto">userProfilePhoto</a>.</li>
<li>Added method <a href="/method/photos.getUserPhotos">photos.getUserPhotos</a> to get a history of previous profile images.</li>
</ul>
<h4><a class="anchor" href="#schema" id="schema" name="schema"><i class="anchor-icon"></i></a>Schema</h4>
<pre><code><a href='/constructor/inputPeerNotifySettings'>inputPeerNotifySettings</a> mute_until:<a href='/type/int'>int</a> sound:<a href='/type/string'>string</a> show_previews:<a href='/type/Bool'>Bool</a> events_mask:<a href='/type/int'>int</a> = <a href='/type/InputPeerNotifySettings'>InputPeerNotifySettings</a>;
<a href='/constructor/peerNotifySettings'>peerNotifySettings</a> mute_until:<a href='/type/int'>int</a> sound:<a href='/type/string'>string</a> show_previews:<a href='/type/Bool'>Bool</a> events_mask:<a href='/type/int'>int</a> = <a href='/type/PeerNotifySettings'>PeerNotifySettings</a>;
<a href='/constructor/updateUserPhoto'>updateUserPhoto</a> user_id:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> photo:<a href='/type/UserProfilePhoto'>UserProfilePhoto</a> previous:<a href='/type/Bool'>Bool</a> = <a href='/type/Update'>Update</a>;
<a href='/constructor/userProfilePhoto'>userProfilePhoto</a> photo_id:<a href='/type/long'>long</a> photo_small:<a href='/type/FileLocation'>FileLocation</a> photo_big:<a href='/type/FileLocation'>FileLocation</a> = <a href='/type/UserProfilePhoto'>UserProfilePhoto</a>;
---functions---
<a href='/method/photos.getUserPhotos'>photos.getUserPhotos</a> user_id:<a href='/type/InputUser'>InputUser</a> offset:<a href='/type/int'>int</a> max_id:<a href='/type/int'>int</a> limit:<a href='/type/int'>int</a> = <a href='/type/photos.Photos'>photos.Photos</a>;
invokeWithLayer2#289dd1f6 {X:Type} query:!X = X;</code></pre>
<h4><a class="anchor" href="#push-notifications" id="push-notifications" name="push-notifications"><i class="anchor-icon"></i></a>Push-notifications</h4>
<ul>
<li>Added notification of <a href="/api/push-updates#possible-notifications">CONTACT_PHOTO</a> type -- a contact has changed profile image.</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/blog">Blog</a></li>
<li><a href="//telegram.org/jobs">Jobs</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/dl/android">Android</a></li>
<li><a href="//telegram.org/dl/wp">Windows Phone</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="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/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="//core.telegram.org/">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?42"></script>
<script src="/js/jquery.min.js?1"></script>
<script src="/js/bootstrap.min.js"></script>
<script>window.initDevPageNav&&initDevPageNav();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>