Update content of files

This commit is contained in:
GitHub Action 2021-10-26 16:20:35 +00:00
parent 59ff9843a8
commit c8fd38b3a1
10 changed files with 71 additions and 70 deletions

View file

@ -59,7 +59,7 @@ You can visit <a href="/schema">the schema</a> for an updated list of constructo
</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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -92,7 +92,7 @@ You can visit <a href="/schema">the schema</a> for an updated list of constructo
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>
@ -116,7 +116,7 @@ You can visit <a href="/schema">the schema</a> for an updated list of constructo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -145,7 +145,7 @@ You can visit <a href="/schema">the schema</a> for an updated list of constructo
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>
@ -161,18 +161,18 @@ You can visit <a href="/schema">the schema</a> for an updated list of constructo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -214,7 +214,7 @@ You can visit <a href="/schema">the schema</a> for an updated list of constructo
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>
@ -247,7 +247,7 @@ You can visit <a href="/schema">the schema</a> for an updated list of constructo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -267,7 +267,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<ul>
<li>Removed fileLocationToBeDeprecated</li>
</ul>
<h4><a class="anchor" href="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>;
@ -280,7 +280,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -313,7 +313,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>
@ -337,7 +337,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -350,7 +350,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>;
@ -360,7 +360,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -398,7 +398,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>
@ -423,7 +423,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -479,7 +479,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>
@ -526,7 +526,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -567,7 +567,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<li>Removed chatInviteEmpty</li>
<li>Removed inputPaymentCredentialsAndroidPay</li>
</ul>
<h4><a class="anchor" href="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>
@ -594,7 +594,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -656,7 +656,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<ul>
<li>Removed updateChannelParticipant</li>
</ul>
<h4><a class="anchor" href="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>
@ -705,16 +705,16 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -763,7 +763,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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">CHANNEL_MESSAGE_DOCS</a> - <code>{1} posted {2} files</code></li>
</ul>
<h4><a class="anchor" href="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>;
@ -787,7 +787,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -836,7 +836,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<li>Removed contactBlocked</li>
<li>Removed updateUserBlocked</li>
</ul>
<h4><a class="anchor" href="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>;
@ -871,7 +871,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -893,7 +893,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>;
@ -906,16 +906,16 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -947,7 +947,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>
@ -970,16 +970,16 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -1019,7 +1019,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<li>Removed inputMediaGifExternal</li>
<li>Removed messages.foundGifs</li>
</ul>
<h4><a class="anchor" href="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>
@ -1040,7 +1040,7 @@ See the <a href="/api/files#downloading-files">file documentation article for mo
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -1125,7 +1125,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<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_INVOICE</a></li>
</ul>
<h4><a class="anchor" href="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>
@ -1133,7 +1133,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -1149,7 +1149,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>;
@ -1163,7 +1163,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -1206,7 +1206,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>;
@ -1240,7 +1240,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -1257,7 +1257,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>;
@ -1268,7 +1268,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -1292,7 +1292,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>
@ -1307,7 +1307,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -1358,7 +1358,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<ul>
<li>Removed themeDocumentNotModified</li>
</ul>
<h4><a class="anchor" href="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>
@ -1397,7 +1397,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<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="#scheme-changes" id="scheme-changes" name="scheme-changes"><i class="anchor-icon"></i></a>Scheme changes</h4>
<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>
@ -1462,7 +1462,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<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="#scheme" id="scheme" name="scheme"><i class="anchor-icon"></i></a>Scheme</h4>
<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>;
@ -1515,7 +1515,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<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-scheme-changes" id="end-to-end-scheme-changes" name="end-to-end-scheme-changes"><i class="anchor-icon"></i></a>End-to-end scheme changes</h4>
<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>
@ -1536,7 +1536,7 @@ Notice that all <code>PINNED_*</code> <a href="https://core.telegram.org/api/pus
<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-scheme" id="end-to-end-scheme" name="end-to-end-scheme"><i class="anchor-icon"></i></a>End-to-end scheme</h4>
<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>;

View file

@ -78,7 +78,7 @@ Look at the <a href="/passport">Passport Manual</a> to see how to request passpo
<h4><a class="anchor" href="#requesting-information" id="requesting-information" name="requesting-information"><i class="anchor-icon"></i></a>Requesting Information</h4>
<p><a href="/passport#requesting-information">As per the bot API</a>.</p>
<h4><a class="anchor" href="#receiving-information" id="receiving-information" name="receiving-information"><i class="anchor-icon"></i></a>Receiving information</h4>
<p>Scheme:</p>
<p>Schema:</p>
<pre><code><a href='/constructor/secureData'>secureData</a>#8aeabec3 data:<a href='/type/bytes'>bytes</a> data_hash:<a href='/type/bytes'>bytes</a> secret:<a href='/type/bytes'>bytes</a> = <a href='/type/SecureData'>SecureData</a>;
<a href='/constructor/securePlainPhone'>securePlainPhone</a>#7d6099dd phone:<a href='/type/string'>string</a> = <a href='/type/SecurePlainData'>SecurePlainData</a>;

View file

@ -43,7 +43,7 @@
<p>Telegram offers detailed channel statistics for channels and supergroups. </p>
<h3><a class="anchor" href="#channel-statistics" id="channel-statistics" name="channel-statistics"><i class="anchor-icon"></i></a>Channel statistics</h3>
<p>Scheme:</p>
<p>Schema:</p>
<pre><code><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>;
@ -80,7 +80,7 @@ Note that in this case, <code>current</code> refers to the <code>period</code> i
<li>Graphs: <a href="#graph-visualization">graphs are described below »</a>. </li>
</ul>
<h3><a class="anchor" href="#supergroup-statistics" id="supergroup-statistics" name="supergroup-statistics"><i class="anchor-icon"></i></a>Supergroup statistics</h3>
<p>Scheme:</p>
<p>Schema:</p>
<pre><code><a href='/constructor/statsGroupTopPoster'>statsGroupTopPoster</a>#9d04af9b user_id:<a href='/type/long'>long</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/statsGroupTopInviter'>statsGroupTopInviter</a>#535f779d user_id:<a href='/type/long'>long</a> invitations:<a href='/type/int'>int</a> = <a href='/type/StatsGroupTopInviter'>StatsGroupTopInviter</a>;
<a href='/constructor/statsGroupTopAdmin'>statsGroupTopAdmin</a>#d7584c87 user_id:<a href='/type/long'>long</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>;

View file

@ -91,7 +91,7 @@
<h4><a class="anchor" href="#userfull" id="userfull" name="userfull"><i class="anchor-icon"></i></a><a href="/constructor/userFull">userFull</a></h4>
<p>Extended user info</p>
<h4><a class="anchor" href="#layers" id="layers" name="layers"><i class="anchor-icon"></i></a><a href="/api/layers">Layers</a></h4>
<p>Below you will find information on scheme changes. For more details on the use of layers, see <a href="/api/invoking#layers">Invoking API methods</a>.</p></div>
<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></div>
</div>

View file

@ -79,7 +79,7 @@
<p><a href="/type/Update">Update</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#layers" id="layers" name="layers"><i class="anchor-icon"></i></a><a href="/api/layers">Layers</a></h4>
<p>Below you will find information on scheme changes. For more details on the use of layers, see <a href="/api/invoking#layers">Invoking API methods</a>.</p></div>
<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></div>
</div>

View file

@ -96,7 +96,7 @@
<h4><a class="anchor" href="#end-to-end-encryption-secret-chats" id="end-to-end-encryption-secret-chats" name="end-to-end-encryption-secret-chats"><i class="anchor-icon"></i></a><a href="/api/end-to-end">End-to-End Encryption, Secret Chats</a></h4>
<p>New feature for end-to-end-encrypted messaging.</p>
<h4><a class="anchor" href="#layers" id="layers" name="layers"><i class="anchor-icon"></i></a><a href="/api/layers">Layers</a></h4>
<p>Below you will find information on scheme changes. For more details on the use of layers, see <a href="/api/invoking#layers">Invoking API methods</a>.</p></div>
<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></div>
</div>

View file

@ -96,7 +96,7 @@
<h4><a class="anchor" href="#uploading-and-downloading-files" id="uploading-and-downloading-files" name="uploading-and-downloading-files"><i class="anchor-icon"></i></a><a href="/api/files">Uploading and Downloading Files</a></h4>
<p>How to transfer large data batches correctly.</p>
<h4><a class="anchor" href="#layers" id="layers" name="layers"><i class="anchor-icon"></i></a><a href="/api/layers">Layers</a></h4>
<p>Below you will find information on scheme changes. For more details on the use of layers, see <a href="/api/invoking#layers">Invoking API methods</a>.</p></div>
<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></div>
</div>

View file

@ -162,7 +162,7 @@
<h4><a class="anchor" href="#threads" id="threads" name="threads"><i class="anchor-icon"></i></a><a href="/api/threads">Threads</a></h4>
<p>Telegram allows commenting on a <a href="/api/channel">channel post</a> or on a generic <a href="/api/channel">supergroup message</a>, thanks to message threads.</p>
<h4><a class="anchor" href="#layers" id="layers" name="layers"><i class="anchor-icon"></i></a><a href="/api/layers">Layers</a></h4>
<p>Below you will find information on scheme changes. For more details on the use of layers, see <a href="/api/invoking#layers">Invoking API methods</a>.</p>
<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>
<h4><a class="anchor" href="#sendmessageaction" id="sendmessageaction" name="sendmessageaction"><i class="anchor-icon"></i></a><a href="/type/SendMessageAction">SendMessageAction</a></h4>
<p>User actions. Use this to provide users with detailed info about their chat partners' actions: typing or sending attachments of all kinds.</p></div>

View file

@ -50,7 +50,7 @@
<p>When using Telegram Passport normally, it must be downloaded and decrypted for use as described in <a href="#passport-secret-decryption">Passport Secret Decryption</a>.</p>
<p>The passport secret must also be downloaded, re-encrypted and re-uploaded as described in <a href="#passport-secret-encryption">Passport Secret Encryption</a> if a new, more secure encryption algorithm is defined in a newer version of Telegram or the 2FA password is updated.</p>
<h4><a class="anchor" href="#passport-secret-encryption" id="passport-secret-encryption" name="passport-secret-encryption"><i class="anchor-icon"></i></a>Passport Secret Encryption</h4>
<p>First of all, server-side passport parameters are fetched, scheme:</p>
<p>First of all, server-side passport parameters are fetched, schema:</p>
<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>;
<a href='/constructor/securePasswordKdfAlgoUnknown'>securePasswordKdfAlgoUnknown</a>#4a8537 = <a href='/type/SecurePasswordKdfAlgo'>SecurePasswordKdfAlgo</a>;
@ -62,7 +62,7 @@
<a href='/method/account.getPassword'>account.getPassword</a>#548a30f5 = <a href='/type/account.Password'>account.Password</a>;</code></pre>
<p>When Telegram Passport is first used, the client generates a <em>passport_secret</em> (a 32-byte number with the modulo 255 sum of bytes equal to 239), using a part of server-generated random <em>secure_random</em> from <a href="/constructor/account.password">account.password</a> as an additional source of entropy for OpenSSL (when re-encrypting the <em>passport_secret</em> with a more secure algorithm or after a 2FA password change, the previous <em>passport_secret</em> is used, instead).
Then <em>passport_secret</em> is then encrypted using the user's password and hashed using the scheme and parameters specified in the <em>new_algo</em> field of <a href="/constructor/account.password">account.password</a>.</p>
Then <em>passport_secret</em> is then encrypted using the user's password and hashed using the schema and parameters specified in the <em>new_algo</em> field of <a href="/constructor/account.password">account.password</a>.</p>
<p>The server should <strong>always</strong> return a <code>securePasswordKdfAlgoPBKDF2HMACSHA512iter100000</code> constructor in the <code>new_algo</code> field.
If <code>securePasswordKdfAlgoUnknown</code> is returned, the remotely stored secret is encrypted using a new algorithm, not supported by the current client: the user should update their app.</p>
<p>The other constructors may be used <strong>only</strong> when <a href="#passport-secret-decryption"><strong>decrypting</strong> old passport parameters</a> generated by a legacy client; in this case, the passport secret should be re-encrypted and updated using <code>new_algo</code>.</p>
@ -102,7 +102,7 @@ iv = slice( password_hash, 32, 16 )</code></pre>
</li>
<li>
<p>The <em>encrypted_passport_secret</em> is stored on the server together with the <em>passport_secret_salt</em> and the fingerprint of the secret <em>passport_secret_fingerprint</em>:
Scheme: </p>
Schema: </p>
<pre><code><a href='/constructor/boolFalse'>boolFalse</a>#bc799737 = <a href='/type/Bool'>Bool</a>;
<a href='/constructor/boolTrue'>boolTrue</a>#997275b5 = <a href='/type/Bool'>Bool</a>;
@ -134,7 +134,7 @@ Scheme: </p>
<p>In case the password is changed or a more secure algorithm is introduced in an update of the API, the client re-encrypts the <em>passport_secret</em> using the new password.
If the password is disabled, all Telegram Passport data is lost.</p>
<h4><a class="anchor" href="#passport-secret-decryption" id="passport-secret-decryption" name="passport-secret-decryption"><i class="anchor-icon"></i></a>Passport Secret Decryption</h4>
<p>Scheme:</p>
<p>Schema:</p>
<pre><code><a href='/constructor/securePasswordKdfAlgoUnknown'>securePasswordKdfAlgoUnknown</a>#4a8537 = <a href='/type/SecurePasswordKdfAlgo'>SecurePasswordKdfAlgo</a>;
<a href='/constructor/securePasswordKdfAlgoPBKDF2HMACSHA512iter100000'>securePasswordKdfAlgoPBKDF2HMACSHA512iter100000</a>#bbf2dda0 salt:<a href='/type/bytes'>bytes</a> = <a href='/type/SecurePasswordKdfAlgo'>SecurePasswordKdfAlgo</a>;
<a href='/constructor/securePasswordKdfAlgoSHA512'>securePasswordKdfAlgoSHA512</a>#86471d92 salt:<a href='/type/bytes'>bytes</a> = <a href='/type/SecurePasswordKdfAlgo'>SecurePasswordKdfAlgo</a>;
@ -219,7 +219,7 @@ iv = slice( secret_hash, 32, 16 )</code></pre>
</li>
<li>
<p><em>encrypted_data</em> together with the <em>encrypted_data_secret</em> and <em>data_hash</em> are saved on the server:</p>
<p>Scheme:</p>
<p>Schema:</p>
<pre><code><a href='/constructor/inputSecureFileUploaded'>inputSecureFileUploaded</a>#3334b0f0 id:<a href='/type/long'>long</a> parts:<a href='/type/int'>int</a> md5_checksum:<a href='/type/string'>string</a> file_hash:<a href='/type/bytes'>bytes</a> secret:<a href='/type/bytes'>bytes</a> = <a href='/type/InputSecureFile'>InputSecureFile</a>;
<a href='/constructor/inputSecureFile'>inputSecureFile</a>#5367e5be id:<a href='/type/long'>long</a> access_hash:<a href='/type/long'>long</a> = <a href='/type/InputSecureFile'>InputSecureFile</a>;
@ -365,7 +365,7 @@ To verify a phone number or email and use it in Telegram Passport, use the appro
<a href='/constructor/secureData'>secureData</a>#8aeabec3 data:<a href='/type/bytes'>bytes</a> data_hash:<a href='/type/bytes'>bytes</a> secret:<a href='/type/bytes'>bytes</a> = <a href='/type/SecureData'>SecureData</a>;
<a href='/constructor/inputSecureValue'>inputSecureValue</a>#db21d0a7 flags:<a href='/type/%23'>#</a> type:<a href='/type/SecureValueType'>SecureValueType</a> data:flags.0?<a href='/type/SecureData'>SecureData</a> front_side:flags.1?<a href='/type/InputSecureFile'>InputSecureFile</a> reverse_side:flags.2?<a href='/type/InputSecureFile'>InputSecureFile</a> selfie:flags.3?<a href='/type/InputSecureFile'>InputSecureFile</a> translation:flags.6?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/InputSecureFile'>InputSecureFile</a>&gt; files:flags.4?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/InputSecureFile'>InputSecureFile</a>&gt; plain_data:flags.5?<a href='/type/SecurePlainData'>SecurePlainData</a> = <a href='/type/InputSecureValue'>InputSecureValue</a>;</code></pre>
<p>The scheme for the <a href="/constructor/inputSecureValue">inputSecureValue</a> constructor defines the constructor to use for each field.</p>
<p>The schema for the <a href="/constructor/inputSecureValue">inputSecureValue</a> constructor defines the constructor to use for each field.</p>
<table class="table">
<thead>
<tr>

View file

@ -46,8 +46,9 @@ End-to-end encryption in MTProto,…">
<div id="dev_page_content"><blockquote>
<p>Below you will find the current end-to-end TL-schema. <a href="/mtproto/TL">More details on TL »</a></p>
</blockquote>
<p>See also:<br><a href="/api/end-to-end">End-to-end encryption in MTProto, Secret Chats</a><br><a href="/schema/end-to-end-json">Detailed schema in JSON</a></p>
</div>
<p>See also:
<a href="/api/end-to-end">End-to-end encryption in MTProto, Secret Chats</a>
<a href="/schema/end-to-end-json">Detailed schema in JSON</a></p></div>
<div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">