telegram-crawler/data/web/blogfork.telegram.org/api/config.html
2024-08-02 00:44:36 +00:00

766 lines
85 KiB
HTML

<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Client configuration</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="The MTProto API has multiple configuration parameters that can be fetched with the appropriate methods.">
<meta property="og:title" content="Client configuration">
<meta property="og:image" content="">
<meta property="og:description" content="The MTProto API has multiple configuration parameters that can be fetched with the appropriate methods.">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
<link rel="alternate icon" href="/img/favicon.ico" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?240" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/api/config" >Client configuration</a></li></ul></div>
<h1 id="dev_page_title">Client configuration</h1>
<div id="dev_page_content"><!-- scroll_nav -->
<p>The MTProto API has multiple configuration parameters that can be fetched with the appropriate methods. </p>
<h3><a class="anchor" href="#mtproto-configuration" id="mtproto-configuration" name="mtproto-configuration"><i class="anchor-icon"></i></a>MTProto configuration</h3>
<pre><code><a href='/constructor/config'>config</a>#cc1a241e flags:<a href='/type/%23'>#</a> default_p2p_contacts:flags.3?<a href='/constructor/true'>true</a> preload_featured_stickers:flags.4?<a href='/constructor/true'>true</a> revoke_pm_inbox:flags.6?<a href='/constructor/true'>true</a> blocked_mode:flags.8?<a href='/constructor/true'>true</a> force_try_ipv6:flags.14?<a href='/constructor/true'>true</a> date:<a href='/type/int'>int</a> expires:<a href='/type/int'>int</a> test_mode:<a href='/type/Bool'>Bool</a> this_dc:<a href='/type/int'>int</a> dc_options:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/DcOption'>DcOption</a>&gt; dc_txt_domain_name:<a href='/type/string'>string</a> chat_size_max:<a href='/type/int'>int</a> megagroup_size_max:<a href='/type/int'>int</a> forwarded_count_max:<a href='/type/int'>int</a> online_update_period_ms:<a href='/type/int'>int</a> offline_blur_timeout_ms:<a href='/type/int'>int</a> offline_idle_timeout_ms:<a href='/type/int'>int</a> online_cloud_timeout_ms:<a href='/type/int'>int</a> notify_cloud_delay_ms:<a href='/type/int'>int</a> notify_default_delay_ms:<a href='/type/int'>int</a> push_chat_period_ms:<a href='/type/int'>int</a> push_chat_limit:<a href='/type/int'>int</a> edit_time_limit:<a href='/type/int'>int</a> revoke_time_limit:<a href='/type/int'>int</a> revoke_pm_time_limit:<a href='/type/int'>int</a> rating_e_decay:<a href='/type/int'>int</a> stickers_recent_limit:<a href='/type/int'>int</a> channels_read_media_period:<a href='/type/int'>int</a> tmp_sessions:flags.0?<a href='/type/int'>int</a> call_receive_timeout_ms:<a href='/type/int'>int</a> call_ring_timeout_ms:<a href='/type/int'>int</a> call_connect_timeout_ms:<a href='/type/int'>int</a> call_packet_timeout_ms:<a href='/type/int'>int</a> me_url_prefix:<a href='/type/string'>string</a> autoupdate_url_prefix:flags.7?<a href='/type/string'>string</a> gif_search_username:flags.9?<a href='/type/string'>string</a> venue_search_username:flags.10?<a href='/type/string'>string</a> img_search_username:flags.11?<a href='/type/string'>string</a> static_maps_provider:flags.12?<a href='/type/string'>string</a> caption_length_max:<a href='/type/int'>int</a> message_length_max:<a href='/type/int'>int</a> webfile_dc_id:<a href='/type/int'>int</a> suggested_lang_code:flags.2?<a href='/type/string'>string</a> lang_pack_version:flags.2?<a href='/type/int'>int</a> base_lang_pack_version:flags.2?<a href='/type/int'>int</a> reactions_default:flags.15?<a href='/type/Reaction'>Reaction</a> autologin_token:flags.16?<a href='/type/string'>string</a> = <a href='/type/Config'>Config</a>;
<a href='/constructor/nearestDc'>nearestDc</a>#8e1a1775 country:<a href='/type/string'>string</a> this_dc:<a href='/type/int'>int</a> nearest_dc:<a href='/type/int'>int</a> = <a href='/type/NearestDc'>NearestDc</a>;
---functions---
<a href='/method/help.getConfig'>help.getConfig</a>#c4f9186b = <a href='/type/Config'>Config</a>;
<a href='/method/help.getNearestDc'>help.getNearestDc</a>#1fb33026 = <a href='/type/NearestDc'>NearestDc</a>;</code></pre>
<p>The huge <a href="/constructor/config">config</a> constructor contains lots of useful information, from chat and message size limitations, to privacy settings, online status refresh interval and timeout, VoIP configuration, default inline bot usernames for GIF, image and venue lookup, and lots of other global and user-specific information, check out the <a href="/constructor/config">constructor page</a> for more information.</p>
<h3><a class="anchor" href="#client-configuration" id="client-configuration" name="client-configuration"><i class="anchor-icon"></i></a>Client configuration</h3>
<pre><code><a href='/constructor/jsonObjectValue'>jsonObjectValue</a>#c0de1bd9 key:<a href='/type/string'>string</a> value:<a href='/type/JSONValue'>JSONValue</a> = <a href='/type/JSONObjectValue'>JSONObjectValue</a>;
<a href='/constructor/jsonNull'>jsonNull</a>#3f6d7b68 = <a href='/type/JSONValue'>JSONValue</a>;
<a href='/constructor/jsonBool'>jsonBool</a>#c7345e6a value:<a href='/type/Bool'>Bool</a> = <a href='/type/JSONValue'>JSONValue</a>;
<a href='/constructor/jsonNumber'>jsonNumber</a>#2be0dfa4 value:<a href='/type/double'>double</a> = <a href='/type/JSONValue'>JSONValue</a>;
<a href='/constructor/jsonString'>jsonString</a>#b71e767a value:<a href='/type/string'>string</a> = <a href='/type/JSONValue'>JSONValue</a>;
<a href='/constructor/jsonArray'>jsonArray</a>#f7444763 value:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/JSONValue'>JSONValue</a>&gt; = <a href='/type/JSONValue'>JSONValue</a>;
<a href='/constructor/jsonObject'>jsonObject</a>#99c1d49d value:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/JSONObjectValue'>JSONObjectValue</a>&gt; = <a href='/type/JSONValue'>JSONValue</a>;
<a href='/constructor/help.appConfigNotModified'>help.appConfigNotModified</a>#7cde641d = <a href='/type/help.AppConfig'>help.AppConfig</a>;
<a href='/constructor/help.appConfig'>help.appConfig</a>#dd18782e hash:<a href='/type/int'>int</a> config:<a href='/type/JSONValue'>JSONValue</a> = <a href='/type/help.AppConfig'>help.AppConfig</a>;
---functions---
<a href='/method/help.getAppConfig'>help.getAppConfig</a>#61e3f854 hash:<a href='/type/int'>int</a> = <a href='/type/help.AppConfig'>help.AppConfig</a>;</code></pre>
<p>The <a href="/method/help.getAppConfig">help.getAppConfig</a> method returns a JSON object containing rapidly evolving, client-specific configuration parameters.<br>
While <a href="/method/help.getConfig">help.getConfig</a> returns MTProto-specific configuration with information about server-side limitations and other MTProto-related information, <a href="/method/help.getAppConfig">help.getAppConfig</a> returns configuration parameters useful for graphical Telegram clients.</p>
<p>When first invoking <a href="/method/help.getAppConfig">help.getAppConfig</a>, pass <code>0</code> to hash; in future calls, use the <code>hash</code> contained in the previously returned <a href="/constructor/help.appConfig">help.appConfig</a>; if the configuration hasn't changed, a <a href="/constructor/help.appConfigNotModified">help.appConfigNotModified</a> will be returned instead of <a href="/constructor/help.appConfig">help.appConfig</a>.</p>
<p>Example value of <a href="/constructor/help.appConfig">help.appConfig</a>.<code>config</code>: </p>
<pre><code class="language-json">{
"test": 1,
"keep_alive_service": true,
"background_connection": true,
"emojies_animated_zoom": 0.625,
"emojies_send_dice": [
"\ud83c\udfb2",
"\ud83c\udfaf",
"\ud83c\udfc0",
"\u26bd",
"\u26bd\ufe0f",
"\ud83c\udfb0",
"\ud83c\udfb3"
],
"emojies_send_dice_success": {
"\ud83c\udfaf": {
"value": 6,
"frame_start": 62
},
"\ud83c\udfc0": {
"value": 5,
"frame_start": 110
},
"\u26bd": {
"value": 5,
"frame_start": 110
},
"\u26bd\ufe0f": {
"value": 5,
"frame_start": 110
},
"\ud83c\udfb0": {
"value": 64,
"frame_start": 110
},
"\ud83c\udfb3": {
"value": 6,
"frame_start": 110
}
},
"emojies_sounds": {
"\ud83c\udf83": {
"id": "4956223179606458539",
"access_hash": "-2107001400913062971",
"file_reference_base64": ""
},
"\u26b0": {
"id": "4956223179606458540",
"access_hash": "-1498869544183595185",
"file_reference_base64": ""
},
"\ud83e\udddf\u200d\u2642": {
"id": "4960929110848176331",
"access_hash": "3986395821757915468",
"file_reference_base64": ""
},
"\ud83e\udddf": {
"id": "4960929110848176332",
"access_hash": "-8929417974289765626",
"file_reference_base64": ""
},
"\ud83e\udddf\u200d\u2640": {
"id": "4960929110848176333",
"access_hash": "9161696144162881753",
"file_reference_base64": ""
},
"\ud83c\udf51": {
"id": "4963180910661861548",
"access_hash": "-7431729439735063448",
"file_reference_base64": ""
},
"\ud83c\udf8a": {
"id": "5094064004578410732",
"access_hash": "8518192996098758509",
"file_reference_base64": ""
},
"\ud83c\udf84": {
"id": "5094064004578410733",
"access_hash": "-4142643820629256996",
"file_reference_base64": ""
},
"\ud83e\uddbe": {
"id": "5094064004578410734",
"access_hash": "-8934384022571962340",
"file_reference_base64": ""
}
},
"gif_search_branding": "tenor",
"gif_search_emojies": [
"\ud83d\udc4d",
"\ud83d\ude18",
"\ud83d\ude0d",
"\ud83d\ude21",
"\ud83e\udd73",
"\ud83d\ude02",
"\ud83d\ude2e",
"\ud83d\ude44",
"\ud83d\ude0e",
"\ud83d\udc4e"
],
"stickers_emoji_suggest_only_api": false,
"stickers_emoji_cache_time": 86400,
"groupcall_video_participants_max": 1000,
"qr_login_camera": true,
"qr_login_code": "primary",
"dialog_filters_enabled": true,
"dialog_filters_tooltip": true,
"autoarchive_setting_available": true,
"pending_suggestions": [
"AUTOARCHIVE_POPULAR",
"VALIDATE_PASSWORD",
"VALIDATE_PHONE_NUMBER",
"NEWCOMER_TICKS",
"SETUP_PASSWORD"
],
"autologin_domains": [
"instantview.telegram.org",
"translations.telegram.org",
"contest.dev",
"contest.com",
"bugs.telegram.org",
"suggestions.telegram.org",
"themes.telegram.org",
"promote.telegram.org"
],
"url_auth_domains": [],
"round_video_encoding": {
"diameter": 384,
"video_bitrate": 1000,
"audio_bitrate": 64,
"max_size": 16777216
},
"chat_read_mark_expire_period": 604800,
"chat_read_mark_size_threshold": 100,
"reactions_uniq_max": 11,
"ringtone_duration_max": 5,
"ringtone_size_max": 307200,
"ringtone_saved_count_max": 100,
"premium_purchase_blocked": false,
"channels_limit_default": 500,
"channels_limit_premium": 1000,
"saved_gifs_limit_default": 200,
"saved_gifs_limit_premium": 400,
"stickers_faved_limit_default": 5,
"stickers_faved_limit_premium": 10,
"dialog_filters_limit_default": 10,
"dialog_filters_limit_premium": 30,
"dialog_filters_chats_limit_default": 100,
"dialog_filters_chats_limit_premium": 200,
"dialogs_pinned_limit_default": 5,
"dialogs_pinned_limit_premium": 10,
"dialogs_folder_pinned_limit_default": 100,
"dialogs_folder_pinned_limit_premium": 200,
"channels_public_limit_default": 10,
"channels_public_limit_premium": 20,
"caption_length_limit_default": 1024,
"caption_length_limit_premium": 2048,
"upload_max_fileparts_default": 4000,
"upload_max_fileparts_premium": 8000,
"about_length_limit_default": 70,
"about_length_limit_premium": 140,
"stickers_premium_by_emoji_num": 0,
"stickers_normal_by_emoji_per_premium_num": 3,
"message_animated_emoji_max": 100,
"reactions_user_max_default": 1,
"reactions_user_max_premium": 3,
"reactions_in_chat_max": 100,
"default_emoji_statuses_stickerset_id": "773947703670341676",
"premium_promo_order": [
"stories",
"more_upload",
"double_limits",
"voice_to_text",
"faster_download",
"translations",
"animated_emoji",
"emoji_status",
"profile_badge",
"advanced_chat_management",
"no_ads",
"app_icons",
"infinite_reactions",
"animated_userpics",
"premium_stickers",
"wallpapers",
"peer_colors"
],
"premium_bot_username": "PremiumBot",
"whitelisted_domains": [
"telegram.dog",
"telegram.me",
"telegram.org",
"t.me",
"telesco.pe",
"fragment.com",
"translations.telegram.org"
],
"topics_pinned_limit": 5,
"telegram_antispam_user_id": "5434988373",
"telegram_antispam_group_size_min": 200,
"fragment_prefixes": [
"888"
],
"hidden_members_group_size_min": 100,
"premium_gift_attach_menu_icon": true,
"premium_gift_text_field_icon": false,
"chatlist_invites_limit_default": 3,
"chatlist_invites_limit_premium": 100,
"chatlists_joined_limit_default": 2,
"chatlists_joined_limit_premium": 20,
"chatlist_update_period": 300,
"small_queue_max_active_operations_count": 5,
"large_queue_max_active_operations_count": 2,
"story_viewers_expire_period": 86400,
"story_expiring_limit_default": 3,
"story_expiring_limit_premium": 100,
"story_caption_length_limit_premium": 2048,
"story_caption_length_limit_default": 200,
"stories_posting": "enabled",
"stories_stealth_past_period": 300,
"stories_stealth_future_period": 1500,
"stories_stealth_cooldown_period": 10800,
"stories_sent_weekly_limit_default": 7,
"stories_sent_weekly_limit_premium": 700,
"stories_sent_monthly_limit_default": 30,
"stories_sent_monthly_limit_premium": 3000,
"stories_venue_search_username": "foursquare",
"stories_entities": "premium",
"stories_changelog_user_id": 777000,
"authorization_autoconfirm_period": 604800,
"stories_suggested_reactions_limit_default": 1,
"stories_suggested_reactions_limit_premium": 5,
"giveaway_gifts_purchase_available": true,
"giveaway_add_peers_max": 10,
"giveaway_countries_max": 10,
"giveaway_boosts_per_premium": 4,
"giveaway_period_max": 2678400,
"boosts_channel_level_max": 100,
"boosts_per_sent_gift": 3,
"quote_length_max": 1024,
"transcribe_audio_trial_weekly_number": 2,
"transcribe_audio_trial_duration_max": 300,
"recommended_channels_limit_default": 10,
"recommended_channels_limit_premium": 100,
"channel_bg_icon_level_min": 4,
"channel_profile_bg_icon_level_min": 7,
"channel_emoji_status_level_min": 8,
"channel_wallpaper_level_min": 9,
"channel_custom_wallpaper_level_min": 10,
"saved_dialogs_pinned_limit_default": 5,
"saved_dialogs_pinned_limit_premium": 100,
"pm_read_date_expire_period": 604800
}</code></pre>
<p>Typical fields included in the resulting JSON object are: </p>
<h4><a class="anchor" href="#emojies-animated-zoom" id="emojies-animated-zoom" name="emojies-animated-zoom"><i class="anchor-icon"></i></a><code>emojies_animated_zoom</code></h4>
<p><a href="/api/animated-emojis">Animated emojis</a> and <a href="/api/dice">animated dice</a> should be scaled by this factor before being shown to the user (float)</p>
<h4><a class="anchor" href="#keep-alive-service" id="keep-alive-service" name="keep-alive-service"><i class="anchor-icon"></i></a><code>keep_alive_service</code></h4>
<p>Whether app clients should start a keepalive service to keep the app running and fetch updates even when the app is closed (boolean)</p>
<h4><a class="anchor" href="#background-connection" id="background-connection" name="background-connection"><i class="anchor-icon"></i></a><code>background_connection</code></h4>
<p>Whether app clients should start a background TCP connection for MTProto update fetching (boolean)</p>
<h4><a class="anchor" href="#emojies-send-dice" id="emojies-send-dice" name="emojies-send-dice"><i class="anchor-icon"></i></a><code>emojies_send_dice</code></h4>
<p>A list of supported <a href="/api/dice">animated dice</a> stickers (array of strings).</p>
<h4><a class="anchor" href="#emojies-send-dice-success" id="emojies-send-dice-success" name="emojies-send-dice-success"><i class="anchor-icon"></i></a><code>emojies_send_dice_success</code></h4>
<p>For <a href="/api/dice">animated dice</a> emojis other than the basic <img class="emoji" src="//telegram.org/img/emoji/40/F09F8EB2.png" width="20" height="20" alt="🎲" />, indicates the winning dice value and the final frame of the animated sticker, at which to show the fireworks <img class="emoji" src="//telegram.org/img/emoji/40/F09F8E86.png" width="20" height="20" alt="🎆" /> (object with emoji keys and object values, containing <code>value</code> and <code>frame_start</code> float values)</p>
<h4><a class="anchor" href="#emojies-sounds" id="emojies-sounds" name="emojies-sounds"><i class="anchor-icon"></i></a><code>emojies_sounds</code></h4>
<p>A map of soundbites to be played when the user clicks on the specified <a href="/api/animated-emojis">animated emoji</a>; the <a href="/api/file_reference">file reference field</a> should be base64-decoded before <a href="/api/files">downloading the file</a> (map of <a href="/api/files">file IDs</a> (<a href="/constructor/inputDocument">inputDocument</a>.id), with emoji string keys)</p>
<h4><a class="anchor" href="#gif-search-branding" id="gif-search-branding" name="gif-search-branding"><i class="anchor-icon"></i></a><code>gif_search_branding</code></h4>
<p>Specifies the name of the service providing GIF search through <a href="#mtproto-configuration">gif_search_username</a> (string)</p>
<h4><a class="anchor" href="#gif-search-emojies" id="gif-search-emojies" name="gif-search-emojies"><i class="anchor-icon"></i></a><code>gif_search_emojies</code></h4>
<p>Specifies a list of emojis that should be suggested as search term in a bar above the GIF search box (array of string emojis)</p>
<h4><a class="anchor" href="#stickers-emoji-suggest-only-api" id="stickers-emoji-suggest-only-api" name="stickers-emoji-suggest-only-api"><i class="anchor-icon"></i></a><code>stickers_emoji_suggest_only_api</code></h4>
<p>Specifies that the app should not display <a href="/api/stickers#sticker-suggestions">local sticker suggestions »</a> for emojis at all and just use the result of <a href="/method/messages.getStickers">messages.getStickers</a> (bool)</p>
<h4><a class="anchor" href="#stickers-emoji-cache-time" id="stickers-emoji-cache-time" name="stickers-emoji-cache-time"><i class="anchor-icon"></i></a><code>stickers_emoji_cache_time</code></h4>
<p>Specifies the validity period of the local cache of <a href="/method/messages.getStickers">messages.getStickers</a>, also relevant when generating the <a href="/api/offsets#hash-generation">pagination hash</a> when invoking the method. (integer)</p>
<h4><a class="anchor" href="#qr-login-camera" id="qr-login-camera" name="qr-login-camera"><i class="anchor-icon"></i></a><code>qr_login_camera</code></h4>
<p>Whether the Settings-&gt;Devices menu should show an option to scan a <a href="/api/qr-login">QR login code</a> (boolean)</p>
<h4><a class="anchor" href="#qr-login-code" id="qr-login-code" name="qr-login-code"><i class="anchor-icon"></i></a><code>qr_login_code</code></h4>
<p>Whether the login screen should show a <a href="/api/qr-login">QR code login option</a>, possibly as default login method (string, "disabled", "primary" or "secondary")</p>
<h4><a class="anchor" href="#dialog-filters-enabled" id="dialog-filters-enabled" name="dialog-filters-enabled"><i class="anchor-icon"></i></a><code>dialog_filters_enabled</code></h4>
<p>Whether clients should show an option for managing <a href="/api/folders">dialog filters AKA folders</a> (boolean)</p>
<h4><a class="anchor" href="#dialog-filters-tooltip" id="dialog-filters-tooltip" name="dialog-filters-tooltip"><i class="anchor-icon"></i></a><code>dialog_filters_tooltip</code></h4>
<p>Whether clients should actively show a tooltip, inviting the user to configure <a href="/api/folders">dialog filters AKA folders</a>; typically this happens when the chat list is long enough to start getting cluttered. (boolean)</p>
<h4><a class="anchor" href="#autoarchive-setting-available" id="autoarchive-setting-available" name="autoarchive-setting-available"><i class="anchor-icon"></i></a><code>autoarchive_setting_available</code></h4>
<p>Whether clients <em>can</em> invoke <a href="/method/account.setGlobalPrivacySettings">account.setGlobalPrivacySettings</a> with <a href="/constructor/globalPrivacySettings"><code>globalPrivacySettings.archive_and_mute_new_noncontact_peers = boolTrue</code></a>, to automatically archive and mute new incoming chats from non-contacts. (boolean)</p>
<h4><a class="anchor" href="#pending-suggestions" id="pending-suggestions" name="pending-suggestions"><i class="anchor-icon"></i></a><code>pending_suggestions</code></h4>
<p>Contains a list of suggestions that should be actively shown as a tooltip to the user. (Array of strings, possible values shown <a href="#suggestions">in the suggestions section »</a>. </p>
<h4><a class="anchor" href="#topics-pinned-limit" id="topics-pinned-limit" name="topics-pinned-limit"><i class="anchor-icon"></i></a><code>topics_pinned_limit</code></h4>
<p>Maximum number of <a href="/api/forum#forum-topics">topics</a> that can be pinned in a single <a href="/api/forum">forum</a>. (integer)</p>
<h4><a class="anchor" href="#telegram-antispam-user-id" id="telegram-antispam-user-id" name="telegram-antispam-user-id"><i class="anchor-icon"></i></a><code>telegram_antispam_user_id</code></h4>
<p>The ID of the official <a href="/api/antispam">native antispam bot</a>, that will automatically delete spam messages if enabled as specified in the <a href="/api/antispam">native antispam documentation »</a>.<br>
When fetching the admin list of a supergroup using <a href="/method/channels.getParticipants">channels.getParticipants</a>, if native antispam functionality in the specified supergroup, the bot should be manually added to the admin list displayed to the user. (numeric string that represents a Telegram user/bot ID, should be casted to an int64)</p>
<h4><a class="anchor" href="#telegram-antispam-group-size-min" id="telegram-antispam-group-size-min" name="telegram-antispam-group-size-min"><i class="anchor-icon"></i></a><code>telegram_antispam_group_size_min</code></h4>
<p>Minimum number of group members required to enable <a href="/api/antispam">native antispam functionality</a>. (integer)</p>
<h4><a class="anchor" href="#fragment-prefixes" id="fragment-prefixes" name="fragment-prefixes"><i class="anchor-icon"></i></a><code>fragment_prefixes</code></h4>
<p>List of phone number prefixes for anonymous <a href="https://fragment.com">Fragment</a> phone numbers. (array of strings).</p>
<h4><a class="anchor" href="#hidden-members-group-size-min" id="hidden-members-group-size-min" name="hidden-members-group-size-min"><i class="anchor-icon"></i></a><code>hidden_members_group_size_min</code></h4>
<p>Minimum number of participants required to hide the participants list of a supergroup using <a href="/method/channels.toggleParticipantsHidden">channels.toggleParticipantsHidden</a>. (integer)</p>
<h4><a class="anchor" href="#url-auth-domains" id="url-auth-domains" name="url-auth-domains"><i class="anchor-icon"></i></a><code>url_auth_domains</code></h4>
<p>A list of domains that support automatic login with manual user confirmation, <a href="/api/url-authorization#link-url-authorization">click here for more info on URL authorization »</a>. (array of strings)</p>
<h4><a class="anchor" href="#autologin-domains" id="autologin-domains" name="autologin-domains"><i class="anchor-icon"></i></a><code>autologin_domains</code></h4>
<p>A list of Telegram domains that support automatic login with no user confirmation, <a href="/api/url-authorization#link-url-authorization">click here for more info on URL authorization »</a>. (array of strings)</p>
<h4><a class="anchor" href="#whitelisted-domains" id="whitelisted-domains" name="whitelisted-domains"><i class="anchor-icon"></i></a><code>whitelisted_domains</code></h4>
<p>A list of Telegram domains that can always be opened without additional user confirmation, when clicking on in-app links where the URL is not fully displayed (i.e. <a href="/constructor/messageEntityTextUrl">messageEntityTextUrl</a> entities). (array of strings)</p>
<p>Note that when opening <a href="/api/links#direct-mini-app-links">direct Mini App links</a> for the first time, confirmation should still be requested from the user, even if the domain of the containing deep link is whitelisted (i.e. <code>t.me/&lt;bot_username&gt;/&lt;short_name&gt;?startapp=&lt;start_parameter&gt;</code>, where <code>t.me</code> is whitelisted). </p>
<p>Confirmation should <strong>always</strong> be asked, even if we already opened the <a href="/api/links#direct-mini-app-links">direct Mini App</a> before, if the link is not visible (i.e. <a href="/constructor/messageEntityTextUrl">messageEntityTextUrl</a> text links, inline buttons etc.). </p>
<h4><a class="anchor" href="#round-video-encoding" id="round-video-encoding" name="round-video-encoding"><i class="anchor-icon"></i></a><code>round_video_encoding</code></h4>
<p>Contains a set of recommended codec parameters for round videos. (object, as described in the example)</p>
<h4><a class="anchor" href="#chat-read-mark-size-threshold" id="chat-read-mark-size-threshold" name="chat-read-mark-size-threshold"><i class="anchor-icon"></i></a><code>chat_read_mark_size_threshold</code></h4>
<p>Per-user read receipts, fetchable using <a href="/method/messages.getMessageReadParticipants">messages.getMessageReadParticipants</a>, will be available in groups with an amount of participants less or equal to <code>chat_read_mark_size_threshold</code>. (integer)</p>
<h4><a class="anchor" href="#chat-read-mark-expire-period" id="chat-read-mark-expire-period" name="chat-read-mark-expire-period"><i class="anchor-icon"></i></a><code>chat_read_mark_expire_period</code></h4>
<p>To protect user privacy, read receipts for chats are only stored for <code>chat_read_mark_expire_period</code> seconds after the message was sent. (integer)</p>
<h4><a class="anchor" href="#pm-read-date-expire-period" id="pm-read-date-expire-period" name="pm-read-date-expire-period"><i class="anchor-icon"></i></a><code>pm_read_date_expire_period</code></h4>
<p>To protect user privacy, read receipts for private chats are only stored for <code>pm_read_date_expire_period</code> seconds after the message was sent. (integer)</p>
<h4><a class="anchor" href="#groupcall-video-participants-max" id="groupcall-video-participants-max" name="groupcall-video-participants-max"><i class="anchor-icon"></i></a><code>groupcall_video_participants_max</code></h4>
<p>Maximum number of participants in a group call (livestreams allow ∞ participants) (integer)</p>
<h4><a class="anchor" href="#reactions-uniq-max" id="reactions-uniq-max" name="reactions-uniq-max"><i class="anchor-icon"></i></a><code>reactions_uniq_max</code></h4>
<p>Maximum number of unique reactions for any given message: for example, if there are 2000 <img class="emoji" src="//telegram.org/img/emoji/40/F09F918D.png" width="20" height="20" alt="👍" /> and 1000 custom emoji <img class="emoji" src="//telegram.org/img/emoji/40/F09F9881.png" width="20" height="20" alt="😁" /> reactions and reactions_uniq_max = 2, you can't add a <img class="emoji" src="//telegram.org/img/emoji/40/F09F918E.png" width="20" height="20" alt="👎" /> reaction, because that would raise the number of unique reactions to 3 &gt; 2. (integer)</p>
<h4><a class="anchor" href="#reactions-in-chat-max" id="reactions-in-chat-max" name="reactions-in-chat-max"><i class="anchor-icon"></i></a><code>reactions_in_chat_max</code></h4>
<p>Maximum number of reactions that can be marked as allowed in a chat using <a href="/constructor/chatReactionsSome">chatReactionsSome</a>. (integer)</p>
<h4><a class="anchor" href="#reactions-user-max-default" id="reactions-user-max-default" name="reactions-user-max-default"><i class="anchor-icon"></i></a><code>reactions_user_max_default</code></h4>
<p>Maximum number of reactions that can be added to a single message by a non-Premium user. (integer)</p>
<h4><a class="anchor" href="#reactions-user-max-premium" id="reactions-user-max-premium" name="reactions-user-max-premium"><i class="anchor-icon"></i></a><code>reactions_user_max_premium</code></h4>
<p>Maximum number of reactions that can be added to a single message by a Premium user. (integer)</p>
<h4><a class="anchor" href="#default-emoji-statuses-stickerset-id" id="default-emoji-statuses-stickerset-id" name="default-emoji-statuses-stickerset-id"><i class="anchor-icon"></i></a><code>default_emoji_statuses_stickerset_id</code></h4>
<p>Default emoji status stickerset ID. (integer)<br>
Note that the stickerset can be fetched using <a href="/constructor/inputStickerSetEmojiDefaultStatuses">inputStickerSetEmojiDefaultStatuses</a>. </p>
<h4><a class="anchor" href="#ringtone-duration-max" id="ringtone-duration-max" name="ringtone-duration-max"><i class="anchor-icon"></i></a><code>ringtone_duration_max</code></h4>
<p>The maximum duration in seconds of <a href="/api/ringtones">uploadable notification sounds »</a> (integer)</p>
<h4><a class="anchor" href="#ringtone-size-max" id="ringtone-size-max" name="ringtone-size-max"><i class="anchor-icon"></i></a><code>ringtone_size_max</code></h4>
<p>The maximum post-conversion size in bytes of <a href="/api/ringtones">uploadable notification sounds »</a></p>
<h4><a class="anchor" href="#ringtone-saved-count-max" id="ringtone-saved-count-max" name="ringtone-saved-count-max"><i class="anchor-icon"></i></a><code>ringtone_saved_count_max</code></h4>
<p>The maximum number of <a href="/api/ringtones">saveable notification sounds »</a></p>
<h4><a class="anchor" href="#message-animated-emoji-max" id="message-animated-emoji-max" name="message-animated-emoji-max"><i class="anchor-icon"></i></a><code>message_animated_emoji_max</code></h4>
<p>The maximum number of <a href="/api/custom-emoji">custom emojis</a> that may be present in a message. (integer)</p>
<h4><a class="anchor" href="#stickers-premium-by-emoji-num" id="stickers-premium-by-emoji-num" name="stickers-premium-by-emoji-num"><i class="anchor-icon"></i></a><code>stickers_premium_by_emoji_num</code></h4>
<p>Defines how many <a href="/api/premium">Premium stickers</a> to show in the sticker suggestion popup when entering an emoji into the text field, see the <a href="/api/stickers#sticker-suggestions">sticker docs for more info</a> (integer, defaults to 0)</p>
<h4><a class="anchor" href="#stickers-normal-by-emoji-per-premium-num" id="stickers-normal-by-emoji-per-premium-num" name="stickers-normal-by-emoji-per-premium-num"><i class="anchor-icon"></i></a><code>stickers_normal_by_emoji_per_premium_num</code></h4>
<p>For <a href="/api/premium">Premium users</a>, used to define the suggested sticker list, see the <a href="/api/stickers#sticker-suggestions">sticker docs for more info</a> (integer, defaults to 2)</p>
<h4><a class="anchor" href="#premium-purchase-blocked" id="premium-purchase-blocked" name="premium-purchase-blocked"><i class="anchor-icon"></i></a><code>premium_purchase_blocked</code></h4>
<p>The user can't purchase <a href="/api/premium">Telegram Premium</a>. The app must also hide all Premium features, including stars for other users, et cetera. (boolean)</p>
<h4><a class="anchor" href="#channels-limit-default" id="channels-limit-default" name="channels-limit-default"><i class="anchor-icon"></i></a><code>channels_limit_default</code></h4>
<p>The maximum number of <a href="/api/channel">channels and supergroups</a> a non-<a href="/api/premium">Premium</a> user may join (integer)</p>
<h4><a class="anchor" href="#channels-limit-premium" id="channels-limit-premium" name="channels-limit-premium"><i class="anchor-icon"></i></a><code>channels_limit_premium</code></h4>
<p>The maximum number of <a href="/api/channel">channels and supergroups</a> a <a href="/api/premium">Premium</a> user may join (integer)</p>
<h4><a class="anchor" href="#saved-gifs-limit-default" id="saved-gifs-limit-default" name="saved-gifs-limit-default"><i class="anchor-icon"></i></a><code>saved_gifs_limit_default</code></h4>
<p>The maximum number of GIFs a non-<a href="/api/premium">Premium</a> user may save (integer)</p>
<h4><a class="anchor" href="#saved-gifs-limit-premium" id="saved-gifs-limit-premium" name="saved-gifs-limit-premium"><i class="anchor-icon"></i></a><code>saved_gifs_limit_premium</code></h4>
<p>The maximum number of GIFs a <a href="/api/premium">Premium</a> user may save (integer)</p>
<h4><a class="anchor" href="#stickers-faved-limit-default" id="stickers-faved-limit-default" name="stickers-faved-limit-default"><i class="anchor-icon"></i></a><code>stickers_faved_limit_default</code></h4>
<p>The maximum number of stickers a non-<a href="/api/premium">Premium</a> user may <a href="/api/stickers#favorite-stickersets">add to Favorites »</a> (integer)</p>
<h4><a class="anchor" href="#stickers-faved-limit-premium" id="stickers-faved-limit-premium" name="stickers-faved-limit-premium"><i class="anchor-icon"></i></a><code>stickers_faved_limit_premium</code></h4>
<p>The maximum number of stickers a <a href="/api/premium">Premium</a> user may <a href="/api/stickers#favorite-stickersets">add to Favorites »</a> (integer)</p>
<h4><a class="anchor" href="#dialog-filters-limit-default" id="dialog-filters-limit-default" name="dialog-filters-limit-default"><i class="anchor-icon"></i></a><code>dialog_filters_limit_default</code></h4>
<p>The maximum number of <a href="/api/folders">folders</a> a non-<a href="/api/premium">Premium</a> user may create (integer)</p>
<h4><a class="anchor" href="#dialog-filters-limit-premium" id="dialog-filters-limit-premium" name="dialog-filters-limit-premium"><i class="anchor-icon"></i></a><code>dialog_filters_limit_premium</code></h4>
<p>The maximum number of <a href="/api/folders">folders</a> a <a href="/api/premium">Premium</a> user may create (integer)</p>
<h4><a class="anchor" href="#dialog-filters-chats-limit-default" id="dialog-filters-chats-limit-default" name="dialog-filters-chats-limit-default"><i class="anchor-icon"></i></a><code>dialog_filters_chats_limit_default</code></h4>
<p>The maximum number of chats a non-<a href="/api/premium">Premium</a> user may add to a <a href="/api/folders">folder</a> (integer)</p>
<h4><a class="anchor" href="#dialog-filters-chats-limit-premium" id="dialog-filters-chats-limit-premium" name="dialog-filters-chats-limit-premium"><i class="anchor-icon"></i></a><code>dialog_filters_chats_limit_premium</code></h4>
<p>The maximum number of chats a <a href="/api/premium">Premium</a> user may add to a <a href="/api/folders">folder</a> (integer)</p>
<h4><a class="anchor" href="#dialogs-pinned-limit-default" id="dialogs-pinned-limit-default" name="dialogs-pinned-limit-default"><i class="anchor-icon"></i></a><code>dialogs_pinned_limit_default</code></h4>
<p>The maximum number of chats a non-<a href="/api/premium">Premium</a> user may pin (integer)</p>
<h4><a class="anchor" href="#dialogs-pinned-limit-premium" id="dialogs-pinned-limit-premium" name="dialogs-pinned-limit-premium"><i class="anchor-icon"></i></a><code>dialogs_pinned_limit_premium</code></h4>
<p>The maximum number of chats a <a href="/api/premium">Premium</a> user may pin (integer)</p>
<h4><a class="anchor" href="#dialogs-folder-pinned-limit-default" id="dialogs-folder-pinned-limit-default" name="dialogs-folder-pinned-limit-default"><i class="anchor-icon"></i></a><code>dialogs_folder_pinned_limit_default</code></h4>
<p>The maximum number of chats a non-<a href="/api/premium">Premium</a> user may pin in a folder (integer)</p>
<h4><a class="anchor" href="#dialogs-folder-pinned-limit-premium" id="dialogs-folder-pinned-limit-premium" name="dialogs-folder-pinned-limit-premium"><i class="anchor-icon"></i></a><code>dialogs_folder_pinned_limit_premium</code></h4>
<p>The maximum number of chats a <a href="/api/premium">Premium</a> user may pin in a folder (integer)</p>
<h4><a class="anchor" href="#channels-public-limit-default" id="channels-public-limit-default" name="channels-public-limit-default"><i class="anchor-icon"></i></a><code>channels_public_limit_default</code></h4>
<p>The maximum number of public <a href="/api/channel">channels or supergroups</a> a non-<a href="/api/premium">Premium</a> user may create (integer)</p>
<h4><a class="anchor" href="#channels-public-limit-premium" id="channels-public-limit-premium" name="channels-public-limit-premium"><i class="anchor-icon"></i></a><code>channels_public_limit_premium</code></h4>
<p>The maximum number of public <a href="/api/channel">channels or supergroups</a> a <a href="/api/premium">Premium</a> user may create (integer)</p>
<h4><a class="anchor" href="#caption-length-limit-default" id="caption-length-limit-default" name="caption-length-limit-default"><i class="anchor-icon"></i></a><code>caption_length_limit_default</code></h4>
<p>The maximum UTF-8 length of media captions sendable by non-<a href="/api/premium">Premium</a> users (integer)</p>
<h4><a class="anchor" href="#caption-length-limit-premium" id="caption-length-limit-premium" name="caption-length-limit-premium"><i class="anchor-icon"></i></a><code>caption_length_limit_premium</code></h4>
<p>The maximum UTF-8 length of media captions sendable by <a href="/api/premium">Premium</a> users (integer)</p>
<h4><a class="anchor" href="#upload-max-fileparts-default" id="upload-max-fileparts-default" name="upload-max-fileparts-default"><i class="anchor-icon"></i></a><code>upload_max_fileparts_default</code></h4>
<p>The maximum number of file parts uploadable by non-<a href="/api/premium">Premium</a> users (integer, the maximum file size can be extrapolated by multiplying this value by <code>524288</code>, the biggest possible chunk size)</p>
<h4><a class="anchor" href="#upload-max-fileparts-premium" id="upload-max-fileparts-premium" name="upload-max-fileparts-premium"><i class="anchor-icon"></i></a><code>upload_max_fileparts_premium</code></h4>
<p>The maximum number of file parts uploadable by <a href="/api/premium">Premium</a> users (integer, the maximum file size can be extrapolated by multiplying this value by <code>524288</code>, the biggest possible chunk size)</p>
<h4><a class="anchor" href="#about-length-limit-default" id="about-length-limit-default" name="about-length-limit-default"><i class="anchor-icon"></i></a><code>about_length_limit_default</code></h4>
<p>The maximum UTF-8 length of bios of non-<a href="/api/premium">Premium</a> users (integer)</p>
<h4><a class="anchor" href="#about-length-limit-premium" id="about-length-limit-premium" name="about-length-limit-premium"><i class="anchor-icon"></i></a><code>about_length_limit_premium</code></h4>
<p>The maximum UTF-8 length of bios of <a href="/api/premium">Premium</a> users (integer)</p>
<h4><a class="anchor" href="#premium-promo-order" id="premium-promo-order" name="premium-promo-order"><i class="anchor-icon"></i></a><code>premium_promo_order</code></h4>
<p>Array of string identifiers, indicating the order of <a href="/api/premium">Telegram Premium</a> features in the Telegram Premium promotion popup, <a href="/api/premium#telegram-premium-features">see here for the possible values »</a></p>
<h4><a class="anchor" href="#premium-bot-username" id="premium-bot-username" name="premium-bot-username"><i class="anchor-icon"></i></a><code>premium_bot_username</code></h4>
<p>Contains the username of the official <a href="/api/premium">Telegram Premium</a> bot that may be used to buy a <a href="/api/premium">Telegram Premium</a> subscription, see <a href="/api/premium">here for detailed instructions »</a> (string)</p>
<h4><a class="anchor" href="#premium-invoice-slug" id="premium-invoice-slug" name="premium-invoice-slug"><i class="anchor-icon"></i></a><code>premium_invoice_slug</code></h4>
<p>Contains an <a href="/api/payments">invoice slug</a> that may be used to buy a <a href="/api/premium">Telegram Premium</a> subscription, see <a href="/api/premium">here for detailed instructions »</a> (string)</p>
<h4><a class="anchor" href="#premium-gift-attach-menu-icon" id="premium-gift-attach-menu-icon" name="premium-gift-attach-menu-icon"><i class="anchor-icon"></i></a><code>premium_gift_attach_menu_icon</code></h4>
<p>Whether a gift icon should be shown in the attachment menu in private chats with users, offering the current user to gift a <a href="/api/premium">Telegram Premium</a> subscription to the other user in the chat. (boolean)</p>
<h4><a class="anchor" href="#premium-gift-text-field-icon" id="premium-gift-text-field-icon" name="premium-gift-text-field-icon"><i class="anchor-icon"></i></a><code>premium_gift_text_field_icon</code></h4>
<p>Whether a gift icon should be shown in the text bar in private chats with users (ie like the <code>/</code> icon in chats with bots), offering the current user to gift a <a href="/api/premium">Telegram Premium</a> subscription to the other user in the chat. Can only be true if <code>premium_gift_attach_menu_icon</code> is also true. (boolean)</p>
<h4><a class="anchor" href="#chatlist-update-period" id="chatlist-update-period" name="chatlist-update-period"><i class="anchor-icon"></i></a><code>chatlist_update_period</code></h4>
<p>Users that import a folder using a <a href="/api/links#chat-folder-links">chat folder deep link »</a> should retrieve additions made to the folder by invoking <a href="/method/chatlists.getChatlistUpdates">chatlists.getChatlistUpdates</a> at most every <code>chatlist_update_period</code> seconds. (integer)</p>
<h4><a class="anchor" href="#chatlist-invites-limit-default" id="chatlist-invites-limit-default" name="chatlist-invites-limit-default"><i class="anchor-icon"></i></a><code>chatlist_invites_limit_default</code></h4>
<p>Maximum number of per-folder <a href="/api/links#chat-folder-links">chat folder deep links »</a> that can be created by non-<a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#chatlist-invites-limit-premium" id="chatlist-invites-limit-premium" name="chatlist-invites-limit-premium"><i class="anchor-icon"></i></a><code>chatlist_invites_limit_premium</code></h4>
<p>Maximum number of per-folder <a href="/api/links#chat-folder-links">chat folder deep links »</a> that can be created by <a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#chatlists-joined-limit-default" id="chatlists-joined-limit-default" name="chatlists-joined-limit-default"><i class="anchor-icon"></i></a><code>chatlists_joined_limit_default</code></h4>
<p>Maximum number of <a href="/api/links#chat-folder-links">shareable folders</a> non-<a href="/api/premium">Premium</a> users may have. (integer)</p>
<h4><a class="anchor" href="#chatlists-joined-limit-premium" id="chatlists-joined-limit-premium" name="chatlists-joined-limit-premium"><i class="anchor-icon"></i></a><code>chatlists_joined_limit_premium</code></h4>
<p>Maximum number of <a href="/api/links#chat-folder-links">shareable folders</a> <a href="/api/premium">Premium</a> users may have. (integer)</p>
<h4><a class="anchor" href="#small-queue-max-active-operations-count" id="small-queue-max-active-operations-count" name="small-queue-max-active-operations-count"><i class="anchor-icon"></i></a><code>small_queue_max_active_operations_count</code></h4>
<p>A soft limit, specifying the maximum number of files that should be downloaded in parallel from the same DC, for files smaller than 20MB. (integer)</p>
<h4><a class="anchor" href="#large-queue-max-active-operations-count" id="large-queue-max-active-operations-count" name="large-queue-max-active-operations-count"><i class="anchor-icon"></i></a><code>large_queue_max_active_operations_count</code></h4>
<p>A soft limit, specifying the maximum number of files that should be downloaded in parallel from the same DC, for files bigger than 20MB. (integer)</p>
<h4><a class="anchor" href="#authorization-autoconfirm-period" id="authorization-autoconfirm-period" name="authorization-autoconfirm-period"><i class="anchor-icon"></i></a><code>authorization_autoconfirm_period</code></h4>
<p>An <a href="/api/auth#confirming-login">unconfirmed session »</a> will be autoconfirmed this many seconds after login. (integer)</p>
<h4><a class="anchor" href="#story-viewers-expire-period" id="story-viewers-expire-period" name="story-viewers-expire-period"><i class="anchor-icon"></i></a><code>story_viewers_expire_period</code></h4>
<p>The exact list of users that viewed the story will be hidden from the poster this many seconds after the story expires. (integer)</p>
<p>This limit applies <strong>only</strong> to non-<a href="/api/premium">Premium</a> users, <a href="/api/premium">Premium</a> users can <strong>always</strong> access the viewer list.</p>
<h4><a class="anchor" href="#story-expiring-limit-default" id="story-expiring-limit-default" name="story-expiring-limit-default"><i class="anchor-icon"></i></a><code>story_expiring_limit_default</code></h4>
<p>The maximum number of active <a href="/api/stories">stories</a> for non-<a href="/api/premium">Premium</a> users (integer).</p>
<h4><a class="anchor" href="#story-expiring-limit-premium" id="story-expiring-limit-premium" name="story-expiring-limit-premium"><i class="anchor-icon"></i></a><code>story_expiring_limit_premium</code></h4>
<p>The maximum number of active <a href="/api/stories">stories</a> for <a href="/api/premium">Premium</a> users (integer).</p>
<h4><a class="anchor" href="#story-caption-length-limit-premium" id="story-caption-length-limit-premium" name="story-caption-length-limit-premium"><i class="anchor-icon"></i></a><code>story_caption_length_limit_premium</code></h4>
<p>The maximum UTF-8 length of story captions for <a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#story-caption-length-limit-default" id="story-caption-length-limit-default" name="story-caption-length-limit-default"><i class="anchor-icon"></i></a><code>story_caption_length_limit_default</code></h4>
<p>The maximum UTF-8 length of story captions for non-<a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#stories-posting" id="stories-posting" name="stories-posting"><i class="anchor-icon"></i></a><code>stories_posting</code></h4>
<p>Indicates whether users can post stories. (string)</p>
<p>One of:</p>
<ul>
<li><code>enabled</code> - Any user can post stories.</li>
<li><code>premium</code> - Only users with a <a href="/api/premium">Premium</a> subscription can post stories.</li>
<li><code>disabled</code> - Users can't post stories.</li>
</ul>
<h4><a class="anchor" href="#stories-stealth-past-period" id="stories-stealth-past-period" name="stories-stealth-past-period"><i class="anchor-icon"></i></a><code>stories_stealth_past_period</code></h4>
<p>Enabling <a href="/api/stories#stealth-mode">stories stealth mode</a> with the <code>past</code> flag will erase views of any story opened in the past <code>stories_stealth_past_period</code> seconds. (integer)</p>
<h4><a class="anchor" href="#stories-stealth-future-period" id="stories-stealth-future-period" name="stories-stealth-future-period"><i class="anchor-icon"></i></a><code>stories_stealth_future_period</code></h4>
<p>Enabling <a href="/api/stories#stealth-mode">stories stealth mode</a> with the <code>future</code> flag will hide views of any story opened in the next <code>stories_stealth_future_period</code> seconds. (integer)</p>
<h4><a class="anchor" href="#stories-stealth-cooldown-period" id="stories-stealth-cooldown-period" name="stories-stealth-cooldown-period"><i class="anchor-icon"></i></a><code>stories_stealth_cooldown_period</code></h4>
<p>After enabling <a href="/api/stories#stealth-mode">stories stealth mode</a>, this many seconds must elapse before the user is allowed to enable it again. (integer)</p>
<h4><a class="anchor" href="#stories-sent-weekly-limit-default" id="stories-sent-weekly-limit-default" name="stories-sent-weekly-limit-default"><i class="anchor-icon"></i></a><code>stories_sent_weekly_limit_default</code></h4>
<p>Maximum number of stories that can be sent in a week by non-<a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#stories-sent-weekly-limit-premium" id="stories-sent-weekly-limit-premium" name="stories-sent-weekly-limit-premium"><i class="anchor-icon"></i></a><code>stories_sent_weekly_limit_premium</code></h4>
<p>Maximum number of stories that can be sent in a week by <a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#stories-sent-monthly-limit-default" id="stories-sent-monthly-limit-default" name="stories-sent-monthly-limit-default"><i class="anchor-icon"></i></a><code>stories_sent_monthly_limit_default</code></h4>
<p>Maximum number of stories that can be sent in a month by non-<a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#stories-sent-monthly-limit-premium" id="stories-sent-monthly-limit-premium" name="stories-sent-monthly-limit-premium"><i class="anchor-icon"></i></a><code>stories_sent_monthly_limit_premium</code></h4>
<p>Maximum number of stories that can be sent in a month by <a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#stories-suggested-reactions-limit-default" id="stories-suggested-reactions-limit-default" name="stories-suggested-reactions-limit-default"><i class="anchor-icon"></i></a><code>stories_suggested_reactions_limit_default</code></h4>
<p>Maximum number of <a href="/api/stories#media-areas">story reaction media areas »</a> that can be added to a story by non-<a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#stories-suggested-reactions-limit-premium" id="stories-suggested-reactions-limit-premium" name="stories-suggested-reactions-limit-premium"><i class="anchor-icon"></i></a><code>stories_suggested_reactions_limit_premium</code></h4>
<p>Maximum number of <a href="/api/stories#media-areas">story reaction media areas »</a> that can be added to a story by <a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#stories-venue-search-username" id="stories-venue-search-username" name="stories-venue-search-username"><i class="anchor-icon"></i></a><code>stories_venue_search_username</code></h4>
<p>Username of the inline bot to use to generate venue location tags for stories, see <a href="/api/stories#location-tags">here »</a> for more info. (string)</p>
<h4><a class="anchor" href="#stories-changelog-user-id" id="stories-changelog-user-id" name="stories-changelog-user-id"><i class="anchor-icon"></i></a><code>stories_changelog_user_id</code></h4>
<p>ID of the official Telegram user that will post stories about new Telegram features: stories posted by this user should be shown on the <a href="/api/stories#watching-stories">active or active and hidden stories bar</a> just like for contacts, even if the user was removed from the contact list. (integer, defaults to <code>777000</code>)</p>
<h4><a class="anchor" href="#stories-entities" id="stories-entities" name="stories-entities"><i class="anchor-icon"></i></a><code>stories_entities</code></h4>
<p>Whether <a href="/api/entities">styled text entities</a> and links in story text captions can be used by all users (<code>enabled</code>), only [Premium](/api/premium users) (<code>premium</code>), or no one (<code>disabled</code>). (string)</p>
<p>This field is used both when posting stories, to indicate to the user whether they can use entities, and when viewing stories, to hide entities (client-side) on stories posted by users whose <a href="/api/premium">Premium</a> subscription has expired (if <code>stories_entities == "premium"</code> and <a href="/constructor/user">user</a>.<code>premium</code> is not set, or if <code>stories_entities == "disabled"</code>). </p>
<h4><a class="anchor" href="#giveaway-gifts-purchase-available" id="giveaway-gifts-purchase-available" name="giveaway-gifts-purchase-available"><i class="anchor-icon"></i></a><code>giveaway_gifts_purchase_available</code></h4>
<p>Whether <a href="/api/giveaways">giveaways</a> can be started by the current user. (boolean)</p>
<h4><a class="anchor" href="#giveaway-add-peers-max" id="giveaway-add-peers-max" name="giveaway-add-peers-max"><i class="anchor-icon"></i></a><code>giveaway_add_peers_max</code></h4>
<p>The maximum number of users that can be specified when making a <a href="/api/giveaways">direct giveaway</a>. (integer)</p>
<h4><a class="anchor" href="#giveaway-countries-max" id="giveaway-countries-max" name="giveaway-countries-max"><i class="anchor-icon"></i></a><code>giveaway_countries_max</code></h4>
<p>The maximum number of countries that can be specified when restricting the set of participating countries in a <a href="/api/giveaways">giveaway</a>. (itneger)</p>
<h4><a class="anchor" href="#giveaway-boosts-per-premium" id="giveaway-boosts-per-premium" name="giveaway-boosts-per-premium"><i class="anchor-icon"></i></a><code>giveaway_boosts_per_premium</code></h4>
<p>The number of <a href="/api/boost">boosts</a> that will be gained by a channel for each winner of a <a href="/api/giveaways">giveaway</a>. (integer)</p>
<h4><a class="anchor" href="#giveaway-period-max" id="giveaway-period-max" name="giveaway-period-max"><i class="anchor-icon"></i></a><code>giveaway_period_max</code></h4>
<p>The maximum duration in seconds of a <a href="/api/giveaways">giveaway</a>. (integer)</p>
<h4><a class="anchor" href="#boosts-channel-level-max" id="boosts-channel-level-max" name="boosts-channel-level-max"><i class="anchor-icon"></i></a><code>boosts_channel_level_max</code></h4>
<p>Maximum <a href="/api/boost">boost level</a> for channels. (integer)</p>
<h4><a class="anchor" href="#boosts-per-sent-gift" id="boosts-per-sent-gift" name="boosts-per-sent-gift"><i class="anchor-icon"></i></a><code>boosts_per_sent_gift</code></h4>
<p>The number of additional <a href="/api/boost">boost slots</a> that the current user will receive when <a href="/api/premium#gifting-telegram-premium">gifting a Telegram Premium subscription</a>. </p>
<h4><a class="anchor" href="#transcribe-audio-trial-weekly-number" id="transcribe-audio-trial-weekly-number" name="transcribe-audio-trial-weekly-number"><i class="anchor-icon"></i></a><code>transcribe_audio_trial_weekly_number</code></h4>
<p>The maximum number of <a href="/api/transcribe">speech recognition »</a> calls per week for non-<a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#transcribe-audio-trial-duration-max" id="transcribe-audio-trial-duration-max" name="transcribe-audio-trial-duration-max"><i class="anchor-icon"></i></a><code>transcribe_audio_trial_duration_max</code></h4>
<p>The maximum allowed duration of media in seconds for <a href="/api/transcribe">speech recognition »</a> for non-<a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#recommended-channels-limit-default" id="recommended-channels-limit-default" name="recommended-channels-limit-default"><i class="anchor-icon"></i></a><code>recommended_channels_limit_default</code></h4>
<p>The maximum number of similar channels that can be recommended by <a href="/method/channels.getChannelRecommendations">channels.getChannelRecommendations»</a> to non-<a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#recommended-channels-limit-premium" id="recommended-channels-limit-premium" name="recommended-channels-limit-premium"><i class="anchor-icon"></i></a><code>recommended_channels_limit_premium</code></h4>
<p>The maximum number of similar channels that can be recommended by <a href="/method/channels.getChannelRecommendations">channels.getChannelRecommendations»</a> to <a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#quote-length-max" id="quote-length-max" name="quote-length-max"><i class="anchor-icon"></i></a><code>quote_length_max</code></h4>
<p>Maximum UTF-8 length of <a href="/constructor/inputReplyToMessage">quoted text</a>. (integer)</p>
<h4><a class="anchor" href="#channel-bg-icon-level-min" id="channel-bg-icon-level-min" name="channel-bg-icon-level-min"><i class="anchor-icon"></i></a><code>channel_bg_icon_level_min</code></h4>
<p>After reaching at least this <a href="/api/boost">boost level »</a>, channels gain the ability to change their <a href="/api/colors">message accent palette emoji »</a>. (integer)</p>
<h4><a class="anchor" href="#channel-profile-bg-icon-level-min" id="channel-profile-bg-icon-level-min" name="channel-profile-bg-icon-level-min"><i class="anchor-icon"></i></a><code>channel_profile_bg_icon_level_min</code></h4>
<p>After reaching at least this <a href="/api/boost">boost level »</a>, channels gain the ability to change their <a href="/api/colors">profile accent palette emoji »</a>. (integer)</p>
<h4><a class="anchor" href="#channel-emoji-status-level-min" id="channel-emoji-status-level-min" name="channel-emoji-status-level-min"><i class="anchor-icon"></i></a><code>channel_emoji_status_level_min</code></h4>
<p>After reaching at least this <a href="/api/boost">boost level »</a>, channels gain the ability to change their <a href="/api/emoji-status">status emoji »</a>. (integer)</p>
<h4><a class="anchor" href="#channel-wallpaper-level-min" id="channel-wallpaper-level-min" name="channel-wallpaper-level-min"><i class="anchor-icon"></i></a><code>channel_wallpaper_level_min</code></h4>
<p>After reaching at least this <a href="/api/boost">boost level »</a>, channels gain the ability to set a <a href="/api/wallpapers#channel-wallpapers">fill channel wallpaper, see here » for more info</a>. (integer)</p>
<h4><a class="anchor" href="#channel-custom-wallpaper-level-min" id="channel-custom-wallpaper-level-min" name="channel-custom-wallpaper-level-min"><i class="anchor-icon"></i></a><code>channel_custom_wallpaper_level_min</code></h4>
<p>After reaching at least this <a href="/api/boost">boost level »</a>, channels gain the ability to set any custom <a href="/api/wallpapers">wallpaper</a>, not just <a href="/api/wallpapers">fill channel wallpapers, see here » for more info</a>. (integer)</p>
<h4><a class="anchor" href="#saved-dialogs-pinned-limit-default" id="saved-dialogs-pinned-limit-default" name="saved-dialogs-pinned-limit-default"><i class="anchor-icon"></i></a><code>saved_dialogs_pinned_limit_default</code></h4>
<p>Maximum number of pinned dialogs in <a href="/api/saved-messages">saved messages</a> for non-<a href="/api/premium">Premium</a> users. (integer)</p>
<h4><a class="anchor" href="#saved-dialogs-pinned-limit-premium" id="saved-dialogs-pinned-limit-premium" name="saved-dialogs-pinned-limit-premium"><i class="anchor-icon"></i></a><code>saved_dialogs_pinned_limit_premium</code></h4>
<p>Maximum number of pinned dialogs in <a href="/api/saved-messages">saved messages</a> for <a href="/api/premium">Premium</a> users. (integer)</p>
<h3><a class="anchor" href="#suggestions" id="suggestions" name="suggestions"><i class="anchor-icon"></i></a>Suggestions</h3>
<p>The API can return a set of useful suggestions for users of graphical clients. </p>
<h4><a class="anchor" href="#basic-suggestions" id="basic-suggestions" name="basic-suggestions"><i class="anchor-icon"></i></a>Basic suggestions</h4>
<pre><code><a href='/constructor/jsonObjectValue'>jsonObjectValue</a>#c0de1bd9 key:<a href='/type/string'>string</a> value:<a href='/type/JSONValue'>JSONValue</a> = <a href='/type/JSONObjectValue'>JSONObjectValue</a>;
<a href='/constructor/jsonNull'>jsonNull</a>#3f6d7b68 = <a href='/type/JSONValue'>JSONValue</a>;
<a href='/constructor/jsonBool'>jsonBool</a>#c7345e6a value:<a href='/type/Bool'>Bool</a> = <a href='/type/JSONValue'>JSONValue</a>;
<a href='/constructor/jsonNumber'>jsonNumber</a>#2be0dfa4 value:<a href='/type/double'>double</a> = <a href='/type/JSONValue'>JSONValue</a>;
<a href='/constructor/jsonString'>jsonString</a>#b71e767a value:<a href='/type/string'>string</a> = <a href='/type/JSONValue'>JSONValue</a>;
<a href='/constructor/jsonArray'>jsonArray</a>#f7444763 value:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/JSONValue'>JSONValue</a>&gt; = <a href='/type/JSONValue'>JSONValue</a>;
<a href='/constructor/jsonObject'>jsonObject</a>#99c1d49d value:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/JSONObjectValue'>JSONObjectValue</a>&gt; = <a href='/type/JSONValue'>JSONValue</a>;
---functions---
<a href='/method/help.getAppConfig'>help.getAppConfig</a>#61e3f854 hash:<a href='/type/int'>int</a> = <a href='/type/help.AppConfig'>help.AppConfig</a>;</code></pre>
<p>The <a href="/method/help.getAppConfig">help.getAppConfig</a> method returns a JSON object containing rapidly evolving, client-specific configuration parameters.<br>
A full list of these parameters can be seen in the <a href="#client-configuration">Client Configuration section »</a>, but we're mostly interested in the <code>pending_suggestions</code> and <code>autoarchive_setting_available</code> fields of the returned JSON object: </p>
<ul>
<li><code>autoarchive_setting_available</code> - Whether clients <em>can</em> invoke <a href="/method/account.setGlobalPrivacySettings">account.setGlobalPrivacySettings</a> with <a href="/constructor/globalPrivacySettings"><code>globalPrivacySettings.archive_and_mute_new_noncontact_peers = boolTrue</code></a>, to automatically archive and mute new incoming chats from non-contacts. (boolean)</li>
<li><code>pending_suggestions</code> - Contains a list of suggestions that should be actively shown as a tooltip to the user. Array of strings, possible values shown below:<ul>
<li><code>"AUTOARCHIVE_POPULAR"</code> - Users <em>should</em> invoke <a href="/method/account.setGlobalPrivacySettings">account.setGlobalPrivacySettings</a> with <a href="/constructor/globalPrivacySettings"><code>globalPrivacySettings.archive_and_mute_new_noncontact_peers = boolTrue</code></a>, to automatically archive and mute new incoming chats from non-contacts.</li>
<li><code>"VALIDATE_PASSWORD"</code> - Users should make sure they still remember their <a href="/api/srp">2-step verification password</a>.</li>
<li><code>"VALIDATE_PHONE_NUMBER"</code> - Users should check whether their <a href="/api/auth">authorization phone number</a> is correct and change the phone number if it is inaccessible.</li>
<li><code>"NEWCOMER_TICKS"</code> - Show the user a hint about the meaning of one and two ticks on sent messages.</li>
<li><code>"SETUP_PASSWORD"</code> - Show the user a hint, asking them to check whether they still remember their <a href="/api/srp">2FA password</a></li>
<li><code>"PREMIUM_ANNUAL"</code> - Suggests the user to subscribe to the Premium subscription (with annual payments)</li>
<li><code>"PREMIUM_UPGRADE"</code> - Suggests the user to upgrade their existing Premium subscription from monthly payments to annual payments</li>
<li><code>"PREMIUM_RESTORE"</code> - Suggests the user to restore a recently expired Premium subscription</li>
</ul>
</li>
</ul>
<h4><a class="anchor" href="#channel-suggestions" id="channel-suggestions" name="channel-suggestions"><i class="anchor-icon"></i></a>Channel suggestions</h4>
<pre><code><a href='/constructor/messages.chatFull'>messages.chatFull</a>#e5d7d19c full_chat:<a href='/type/ChatFull'>ChatFull</a> chats:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Chat'>Chat</a>&gt; users:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/User'>User</a>&gt; = <a href='/type/messages.ChatFull'>messages.ChatFull</a>;
<a href='/constructor/channelFull'>channelFull</a>#f2bcb6f flags:<a href='/type/%23'>#</a> can_view_participants:flags.3?<a href='/constructor/true'>true</a> can_set_username:flags.6?<a href='/constructor/true'>true</a> can_set_stickers:flags.7?<a href='/constructor/true'>true</a> hidden_prehistory:flags.10?<a href='/constructor/true'>true</a> can_set_location:flags.16?<a href='/constructor/true'>true</a> has_scheduled:flags.19?<a href='/constructor/true'>true</a> can_view_stats:flags.20?<a href='/constructor/true'>true</a> blocked:flags.22?<a href='/constructor/true'>true</a> flags2:<a href='/type/%23'>#</a> can_delete_channel:flags2.0?<a href='/constructor/true'>true</a> antispam:flags2.1?<a href='/constructor/true'>true</a> participants_hidden:flags2.2?<a href='/constructor/true'>true</a> translations_disabled:flags2.3?<a href='/constructor/true'>true</a> stories_pinned_available:flags2.5?<a href='/constructor/true'>true</a> view_forum_as_messages:flags2.6?<a href='/constructor/true'>true</a> id:<a href='/type/long'>long</a> about:<a href='/type/string'>string</a> participants_count:flags.0?<a href='/type/int'>int</a> admins_count:flags.1?<a href='/type/int'>int</a> kicked_count:flags.2?<a href='/type/int'>int</a> banned_count:flags.2?<a href='/type/int'>int</a> online_count:flags.13?<a href='/type/int'>int</a> read_inbox_max_id:<a href='/type/int'>int</a> read_outbox_max_id:<a href='/type/int'>int</a> unread_count:<a href='/type/int'>int</a> chat_photo:<a href='/type/Photo'>Photo</a> notify_settings:<a href='/type/PeerNotifySettings'>PeerNotifySettings</a> exported_invite:flags.23?<a href='/type/ExportedChatInvite'>ExportedChatInvite</a> bot_info:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/BotInfo'>BotInfo</a>&gt; migrated_from_chat_id:flags.4?<a href='/type/long'>long</a> migrated_from_max_id:flags.4?<a href='/type/int'>int</a> pinned_msg_id:flags.5?<a href='/type/int'>int</a> stickerset:flags.8?<a href='/type/StickerSet'>StickerSet</a> available_min_id:flags.9?<a href='/type/int'>int</a> folder_id:flags.11?<a href='/type/int'>int</a> linked_chat_id:flags.14?<a href='/type/long'>long</a> location:flags.15?<a href='/type/ChannelLocation'>ChannelLocation</a> slowmode_seconds:flags.17?<a href='/type/int'>int</a> slowmode_next_send_date:flags.18?<a href='/type/int'>int</a> stats_dc:flags.12?<a href='/type/int'>int</a> pts:<a href='/type/int'>int</a> call:flags.21?<a href='/type/InputGroupCall'>InputGroupCall</a> ttl_period:flags.24?<a href='/type/int'>int</a> pending_suggestions:flags.25?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/string'>string</a>&gt; groupcall_default_join_as:flags.26?<a href='/type/Peer'>Peer</a> theme_emoticon:flags.27?<a href='/type/string'>string</a> requests_pending:flags.28?<a href='/type/int'>int</a> recent_requesters:flags.28?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/long'>long</a>&gt; default_send_as:flags.29?<a href='/type/Peer'>Peer</a> available_reactions:flags.30?<a href='/type/ChatReactions'>ChatReactions</a> stories:flags2.4?<a href='/type/PeerStories'>PeerStories</a> wallpaper:flags2.7?<a href='/type/WallPaper'>WallPaper</a> = <a href='/type/ChatFull'>ChatFull</a>;
---functions---
<a href='/method/channels.getFullChannel'>channels.getFullChannel</a>#8736a09 channel:<a href='/type/InputChannel'>InputChannel</a> = <a href='/type/messages.ChatFull'>messages.ChatFull</a>;</code></pre>
<p>Some <a href="/api/channel">channel/supergroup</a>-related suggestions can also be contained in the <code>pending_suggestions</code> field of the <a href="/constructor/channelFull">channelFull</a> constructor, returned by <a href="/method/channels.getFullChannel">channels.getFullChannel</a>.<br>
Here's a list of possible suggestions: </p>
<ul>
<li><code>CONVERT_GIGAGROUP</code> - The <a href="/api/channel">supergroup</a> has many participants: the admin should call <a href="/method/channels.convertToGigagroup">channels.convertToGigagroup</a> to convert it to a gigagroup.</li>
</ul>
<h4><a class="anchor" href="#dismissing-suggestions" id="dismissing-suggestions" name="dismissing-suggestions"><i class="anchor-icon"></i></a>Dismissing suggestions</h4>
<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>;
---functions---
<a href='/method/help.dismissSuggestion'>help.dismissSuggestion</a>#f50dbaa1 peer:<a href='/type/InputPeer'>InputPeer</a> suggestion:<a href='/type/string'>string</a> = <a href='/type/Bool'>Bool</a>;</code></pre>
<p><a href="/method/help.dismissSuggestion">help.dismissSuggestion</a> can be used to dismiss a suggestion.<br>
Pass <a href="/constructor/inputPeerEmpty">inputPeerEmpty</a> to <code>peer</code> for <a href="#basic-suggestions">basic suggestions</a> and the <a href="/api/channel">channel/supergroup</a>'s peer for <a href="#channel-suggestions">channel suggestions</a>.</p>
<h3><a class="anchor" href="#app-specific-configuration" id="app-specific-configuration" name="app-specific-configuration"><i class="anchor-icon"></i></a>App-specific configuration</h3>
<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>;
<a href='/constructor/help.noAppUpdate'>help.noAppUpdate</a>#c45a6536 = <a href='/type/help.AppUpdate'>help.AppUpdate</a>;
<a href='/constructor/updates'>updates</a>#74ae4240 updates:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Update'>Update</a>&gt; users:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/User'>User</a>&gt; chats:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Chat'>Chat</a>&gt; date:<a href='/type/int'>int</a> seq:<a href='/type/int'>int</a> = <a href='/type/Updates'>Updates</a>;
<a href='/constructor/updateServiceNotification'>updateServiceNotification</a>#ebe46819 flags:<a href='/type/%23'>#</a> popup:flags.0?<a href='/constructor/true'>true</a> invert_media:flags.2?<a href='/constructor/true'>true</a> inbox_date:flags.1?<a href='/type/int'>int</a> type:<a href='/type/string'>string</a> message:<a href='/type/string'>string</a> media:<a href='/type/MessageMedia'>MessageMedia</a> entities:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessageEntity'>MessageEntity</a>&gt; = <a href='/type/Update'>Update</a>;
<a href='/constructor/help.inviteText'>help.inviteText</a>#18cb9f78 message:<a href='/type/string'>string</a> = <a href='/type/help.InviteText'>help.InviteText</a>;
---functions---
<a href='/method/help.getAppUpdate'>help.getAppUpdate</a>#522d5a7d source:<a href='/type/string'>string</a> = <a href='/type/help.AppUpdate'>help.AppUpdate</a>;
<a href='/method/help.getInviteText'>help.getInviteText</a>#4d392343 = <a href='/type/help.InviteText'>help.InviteText</a>;</code></pre>
<ul>
<li><a href="/method/help.getAppUpdate">help.getAppUpdate</a> - Get info about an application update, can contain the updated application binary in the attached document</li>
<li><a href="/method/help.getInviteText">help.getInviteText</a> - Returns a localized invitation message that can be sent via SMS to contacts that haven't signed up to Telegram yet</li>
</ul>
<h3><a class="anchor" href="#terms-of-service" id="terms-of-service" name="terms-of-service"><i class="anchor-icon"></i></a>Terms of service</h3>
<pre><code><a href='/constructor/help.termsOfServiceUpdateEmpty'>help.termsOfServiceUpdateEmpty</a>#e3309f7f expires:<a href='/type/int'>int</a> = <a href='/type/help.TermsOfServiceUpdate'>help.TermsOfServiceUpdate</a>;
<a href='/constructor/help.termsOfServiceUpdate'>help.termsOfServiceUpdate</a>#28ecf961 expires:<a href='/type/int'>int</a> terms_of_service:<a href='/type/help.TermsOfService'>help.TermsOfService</a> = <a href='/type/help.TermsOfServiceUpdate'>help.TermsOfServiceUpdate</a>;
<a href='/constructor/help.termsOfService'>help.termsOfService</a>#780a0310 flags:<a href='/type/%23'>#</a> popup:flags.0?<a href='/constructor/true'>true</a> id:<a href='/type/DataJSON'>DataJSON</a> text:<a href='/type/string'>string</a> entities:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessageEntity'>MessageEntity</a>&gt; min_age_confirm:flags.1?<a href='/type/int'>int</a> = <a href='/type/help.TermsOfService'>help.TermsOfService</a>;
<a href='/constructor/auth.authorizationSignUpRequired'>auth.authorizationSignUpRequired</a>#44747e9a flags:<a href='/type/%23'>#</a> terms_of_service:flags.0?<a href='/type/help.TermsOfService'>help.TermsOfService</a> = <a href='/type/auth.Authorization'>auth.Authorization</a>;
---functions---
<a href='/method/help.getTermsOfServiceUpdate'>help.getTermsOfServiceUpdate</a>#2ca51fd1 = <a href='/type/help.TermsOfServiceUpdate'>help.TermsOfServiceUpdate</a>;
<a href='/method/help.acceptTermsOfService'>help.acceptTermsOfService</a>#ee72f79a id:<a href='/type/DataJSON'>DataJSON</a> = <a href='/type/Bool'>Bool</a>;
<a href='/method/auth.signIn'>auth.signIn</a>#8d52a951 flags:<a href='/type/%23'>#</a> phone_number:<a href='/type/string'>string</a> phone_code_hash:<a href='/type/string'>string</a> phone_code:flags.0?<a href='/type/string'>string</a> email_verification:flags.1?<a href='/type/EmailVerification'>EmailVerification</a> = <a href='/type/auth.Authorization'>auth.Authorization</a>;
<a href='/method/account.deleteAccount'>account.deleteAccount</a>#a2c0cf74 flags:<a href='/type/%23'>#</a> reason:<a href='/type/string'>string</a> password:flags.0?<a href='/type/InputCheckPasswordSRP'>InputCheckPasswordSRP</a> = <a href='/type/Bool'>Bool</a>;</code></pre>
<p>These methods can be used for managing consent to Telegram's <a href="https://telegram.org/tos">Terms Of Service</a>. </p>
<p>Typically, before a user <a href="/api/auth#sign-in-sign-up">signs up</a> by invoking <a href="/method/auth.signUp">auth.signUp</a>, apps should show a pop-up (if the <code>popup</code> flag of the <a href="/constructor/help.termsOfService">help.termsOfService</a> method is set), asking the user to accept Telegram's terms of service; in case of denial, the user is to be returned to the initial page of the login flow. </p>
<p>When signing up for the first time, the <a href="/constructor/help.termsOfService">help.termsOfService</a> is to be obtained from the <a href="/constructor/auth.authorizationSignUpRequired">auth.authorizationSignUpRequired</a> constructor returned by the <a href="/method/auth.signIn">auth.signIn</a>. </p>
<p>After signing up, or when logging in as an existing user, apps are supposed to call <a href="/method/help.getTermsOfServiceUpdate">help.getTermsOfServiceUpdate</a> to check for any updates to the Terms of Service; this call should be repeated after <code>expires</code> seconds have elapsed.<br>
If an update to the Terms Of Service is available, clients are supposed to show a consent popup; if accepted, clients should call <a href="/method/help.acceptTermsOfService">help.acceptTermsOfService</a>, providing the <a href="/constructor/help.termsOfService">termsOfService <code>id</code> JSON object</a>; in case of denial, clients are to delete the account using <a href="/method/account.deleteAccount">account.deleteAccount</a>, providing <code>Decline ToS update</code> as deletion <code>reason</code>. </p>
<p>Example implementation: <a href="https://github.com/DrKLO/Telegram/blob/dbf81a34affcd1c24d78e1403347ea8b3a186154/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java#L3510">android (signup)</a>, <a href="https://github.com/DrKLO/Telegram/blob/ed9e38da5b3b6ca80a7cb719a000d310d07497b0/TMessagesProj/src/main/java/org/telegram/ui/Components/TermsOfServiceView.java">android (after login)</a></p>
<h3><a class="anchor" href="#telegram-support-info" id="telegram-support-info" name="telegram-support-info"><i class="anchor-icon"></i></a>Telegram support info</h3>
<pre><code><a href='/constructor/user'>user</a>#215c4438 flags:<a href='/type/%23'>#</a> self:flags.10?<a href='/constructor/true'>true</a> contact:flags.11?<a href='/constructor/true'>true</a> mutual_contact:flags.12?<a href='/constructor/true'>true</a> deleted:flags.13?<a href='/constructor/true'>true</a> bot:flags.14?<a href='/constructor/true'>true</a> bot_chat_history:flags.15?<a href='/constructor/true'>true</a> bot_nochats:flags.16?<a href='/constructor/true'>true</a> verified:flags.17?<a href='/constructor/true'>true</a> restricted:flags.18?<a href='/constructor/true'>true</a> min:flags.20?<a href='/constructor/true'>true</a> bot_inline_geo:flags.21?<a href='/constructor/true'>true</a> support:flags.23?<a href='/constructor/true'>true</a> scam:flags.24?<a href='/constructor/true'>true</a> apply_min_photo:flags.25?<a href='/constructor/true'>true</a> fake:flags.26?<a href='/constructor/true'>true</a> bot_attach_menu:flags.27?<a href='/constructor/true'>true</a> premium:flags.28?<a href='/constructor/true'>true</a> attach_menu_enabled:flags.29?<a href='/constructor/true'>true</a> flags2:<a href='/type/%23'>#</a> bot_can_edit:flags2.1?<a href='/constructor/true'>true</a> close_friend:flags2.2?<a href='/constructor/true'>true</a> stories_hidden:flags2.3?<a href='/constructor/true'>true</a> stories_unavailable:flags2.4?<a href='/constructor/true'>true</a> id:<a href='/type/long'>long</a> access_hash:flags.0?<a href='/type/long'>long</a> first_name:flags.1?<a href='/type/string'>string</a> last_name:flags.2?<a href='/type/string'>string</a> username:flags.3?<a href='/type/string'>string</a> phone:flags.4?<a href='/type/string'>string</a> photo:flags.5?<a href='/type/UserProfilePhoto'>UserProfilePhoto</a> status:flags.6?<a href='/type/UserStatus'>UserStatus</a> bot_info_version:flags.14?<a href='/type/int'>int</a> restriction_reason:flags.18?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/RestrictionReason'>RestrictionReason</a>&gt; bot_inline_placeholder:flags.19?<a href='/type/string'>string</a> lang_code:flags.22?<a href='/type/string'>string</a> emoji_status:flags.30?<a href='/type/EmojiStatus'>EmojiStatus</a> usernames:flags2.0?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Username'>Username</a>&gt; stories_max_id:flags2.5?<a href='/type/int'>int</a> color:flags2.8?<a href='/type/PeerColor'>PeerColor</a> profile_color:flags2.9?<a href='/type/PeerColor'>PeerColor</a> = <a href='/type/User'>User</a>;
<a href='/constructor/help.support'>help.support</a>#17c6b5f6 phone_number:<a href='/type/string'>string</a> user:<a href='/type/User'>User</a> = <a href='/type/help.Support'>help.Support</a>;
<a href='/constructor/help.supportName'>help.supportName</a>#8c05f1c9 name:<a href='/type/string'>string</a> = <a href='/type/help.SupportName'>help.SupportName</a>;
---functions---
<a href='/method/help.getSupport'>help.getSupport</a>#9cdf08cd = <a href='/type/help.Support'>help.Support</a>;
<a href='/method/help.getSupportName'>help.getSupportName</a>#d360e72c = <a href='/type/help.SupportName'>help.SupportName</a>;</code></pre>
<p>These methods can be used for fetching info about Telegram's support user, that users can use to get support and ask questions about the app. </p>
<ul>
<li><a href="/method/help.getSupport">help.getSupport</a> - Will return the <a href="/constructor/user">user</a> object that can be used for contacting support.</li>
<li><a href="/method/help.getSupportName">help.getSupportName</a> - Will return a localized name for the support chat.</li>
</ul>
<h3><a class="anchor" href="#country-information-and-login-phone-patterns" id="country-information-and-login-phone-patterns" name="country-information-and-login-phone-patterns"><i class="anchor-icon"></i></a>Country information and login phone patterns</h3>
<pre><code><a href='/constructor/help.countryCode'>help.countryCode</a>#4203c5ef flags:<a href='/type/%23'>#</a> country_code:<a href='/type/string'>string</a> prefixes:flags.0?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/string'>string</a>&gt; patterns:flags.1?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/string'>string</a>&gt; = <a href='/type/help.CountryCode'>help.CountryCode</a>;
<a href='/constructor/help.country'>help.country</a>#c3878e23 flags:<a href='/type/%23'>#</a> hidden:flags.0?<a href='/constructor/true'>true</a> iso2:<a href='/type/string'>string</a> default_name:<a href='/type/string'>string</a> name:flags.1?<a href='/type/string'>string</a> country_codes:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/help.CountryCode'>help.CountryCode</a>&gt; = <a href='/type/help.Country'>help.Country</a>;
<a href='/constructor/help.countriesListNotModified'>help.countriesListNotModified</a>#93cc1f32 = <a href='/type/help.CountriesList'>help.CountriesList</a>;
<a href='/constructor/help.countriesList'>help.countriesList</a>#87d0759e countries:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/help.Country'>help.Country</a>&gt; hash:<a href='/type/int'>int</a> = <a href='/type/help.CountriesList'>help.CountriesList</a>;
---functions---
<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>;</code></pre>
<p><a href="/method/help.getCountriesList">help.getCountriesList</a> can be used to fetch a list of localized names for all available countries and phone code patterns for logging in. </p>
<p>The phone code pattern should be used when showing the <a href="/api/auth">login</a> screen, or when changing phone number: for example, a pattern value of <code>XXX XXX XXX</code> with <code>country_code</code> <code>+39</code> indicates that the phone field for login should accept a spaced pattern like <code>+39 123 456 789</code>.<br>
Also, the beginning of the national part of the phone number (<code>123 456 789</code>) should match one of the <code>prefixes</code>, if any were returned. </p>
<p>Additionally, the <code>fragment_prefixes</code> <a href="/api/config#client-configuration">client configuration parameter</a> contains a list of phone number prefixes for anonymous <a href="https://fragment.com">Fragment</a> phone numbers.</p></div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/privacy">Privacy</a></li>
<li><a href="//telegram.org/press">Press</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/android">Android</a></li>
<li><a href="//telegram.org/dl/web">Mobile Web</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="/">Platform</a></h5>
<ul>
<li><a href="/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/press">Press</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?47"></script>
<script src="/js/jquery.min.js?1"></script>
<script src="/js/bootstrap.min.js?1"></script>
<script>window.initDevPageNav&&initDevPageNav();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>