telegram-crawler/data/core.telegram.org/constructor/config.html
2021-08-21 22:04:52 +00:00

420 lines
24 KiB
HTML

<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>config</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Current configuration">
<meta property="og:title" content="config">
<meta property="og:image" content="">
<meta property="og:description" content="Current configuration">
<link rel="shortcut icon" href="/favicon.ico?4" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?212" 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=""><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class="active"><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="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/config" >config</a></li></ul></div>
<h1 id="dev_page_title">config</h1>
<div id="dev_page_content"><p>Current configuration</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 121 <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="?layer=1">1 &ndash; Base layer</a></li><li><a href="?layer=2">2 &ndash; New userpic notifications</a></li><li><a href="?layer=3">3 &ndash; Send message can trigger link change</a></li><li><a href="?layer=4">4 &ndash; Check-in chats</a></li><li><a href="?layer=5">5 &ndash; Localized SMS, localized notifications</a></li><li><a href="?layer=6">6 &ndash; Foursquare integration</a></li><li><a href="?layer=7">7 &ndash; Added wallPaperSolid</a></li><li><a href="?layer=8">8 &ndash; Added end-to-end encryption</a></li><li><a href="?layer=9">9 &ndash; Improved big files upload perfomance</a></li><li><a href="?layer=10">10 &ndash; Improved chat participants updates</a></li><li><a href="?layer=11">11 &ndash; Improved secret chats</a></li><li><a href="?layer=12">12 &ndash; New dynamic support</a></li><li><a href="?layer=13">13 &ndash; Audio, video MIME; contacts import retry; new secret actions</a></li><li><a href="?layer=14">14 &ndash; Notify settings sync, blacklist sync</a></li><li><a href="?layer=15">15 &ndash; Modified getHistory offset behaviour</a></li><li><a href="?layer=16">16 &ndash; Split sendCode into 2 parts</a></li><li><a href="?layer=17">17 &ndash; Added custom typing, introduced message flags</a></li><li><a href="?layer=18">18 &ndash; Added usernames</a></li><li><a href="?layer=23">23 &ndash; Stickers for secret chats</a></li><li><a href="?layer=105">105 &ndash; Scheduled messages, Cloud themes</a></li><li><a href="?layer=108">108 &ndash; Login with QR code</a></li><li><a href="?layer=109">109 &ndash; Polls v2</a></li><li><a href="?layer=110">110 &ndash; People Nearby 2.0, Bank card entity</a></li><li><a href="?layer=111">111 &ndash; Folders, Broadcast Stats</a></li><li><a href="?layer=112">112 &ndash; Old featured stickers, generic dice, poll timer, poll solution</a></li><li><a href="?layer=113">113 &ndash; PSA</a></li><li><a href="?layer=114">114 &ndash; Video thumbs for GIFs</a></li><li><a href="?layer=115">115 &ndash; Peek Channel Invite</a></li><li><a href="?layer=116">116 &ndash; Group Stats, Profile Videos</a></li><li><a href="?layer=117">117 &ndash; WebRTC Phone Calls</a></li><li><a href="?layer=118">118 &ndash; Callback with 2FA, Countries list</a></li><li><a href="?layer=119">119 &ndash; Comments in channels, Threads, Anonymous Admins</a></li><li><a href="?layer=120">120 &ndash; Multipins, Message Stats, GeoLive v2</a></li><li><a href="?layer=121"><strong>121 &ndash; SVG-based Outlines for Stickers</strong></a></li>
<li class="divider"></li>
<li><a href="/api/layers">More...</a></li>
</ul>
</li>
</ul>
</div>
<pre class="page_scheme"><code><a href="/constructor/config" class="current_page_link" >config</a>#330b4067 flags:<a href="/type/%23" >#</a> phonecalls_enabled:flags.1?true default_p2p_contacts:flags.3?true preload_featured_stickers:flags.4?true ignore_phone_entities:flags.5?true revoke_pm_inbox:flags.6?true blocked_mode:flags.8?true pfs_enabled:flags.13?true date:<a href="/type/int" >int</a> expires:<a href="/type/int" >int</a> test_mode:<a href="/type/Bool" >Bool</a> this_dc:<a href="/type/int" >int</a> dc_options:<a href="/type/Vector%20t" >Vector</a>&lt;<a href="/type/DcOption" >DcOption</a>&gt; dc_txt_domain_name:<a href="/type/string" >string</a> chat_size_max:<a href="/type/int" >int</a> megagroup_size_max:<a href="/type/int" >int</a> forwarded_count_max:<a href="/type/int" >int</a> online_update_period_ms:<a href="/type/int" >int</a> offline_blur_timeout_ms:<a href="/type/int" >int</a> offline_idle_timeout_ms:<a href="/type/int" >int</a> online_cloud_timeout_ms:<a href="/type/int" >int</a> notify_cloud_delay_ms:<a href="/type/int" >int</a> notify_default_delay_ms:<a href="/type/int" >int</a> push_chat_period_ms:<a href="/type/int" >int</a> push_chat_limit:<a href="/type/int" >int</a> saved_gifs_limit:<a href="/type/int" >int</a> edit_time_limit:<a href="/type/int" >int</a> revoke_time_limit:<a href="/type/int" >int</a> revoke_pm_time_limit:<a href="/type/int" >int</a> rating_e_decay:<a href="/type/int" >int</a> stickers_recent_limit:<a href="/type/int" >int</a> stickers_faved_limit:<a href="/type/int" >int</a> channels_read_media_period:<a href="/type/int" >int</a> tmp_sessions:flags.0?<a href="/type/int" >int</a> pinned_dialogs_count_max:<a href="/type/int" >int</a> pinned_infolder_count_max:<a href="/type/int" >int</a> call_receive_timeout_ms:<a href="/type/int" >int</a> call_ring_timeout_ms:<a href="/type/int" >int</a> call_connect_timeout_ms:<a href="/type/int" >int</a> call_packet_timeout_ms:<a href="/type/int" >int</a> me_url_prefix:<a href="/type/string" >string</a> autoupdate_url_prefix:flags.7?<a href="/type/string" >string</a> gif_search_username:flags.9?<a href="/type/string" >string</a> venue_search_username:flags.10?<a href="/type/string" >string</a> img_search_username:flags.11?<a href="/type/string" >string</a> static_maps_provider:flags.12?<a href="/type/string" >string</a> caption_length_max:<a href="/type/int" >int</a> message_length_max:<a href="/type/int" >int</a> webfile_dc_id:<a href="/type/int" >int</a> suggested_lang_code:flags.2?<a href="/type/string" >string</a> lang_pack_version:flags.2?<a href="/type/int" >int</a> base_lang_pack_version:flags.2?<a href="/type/int" >int</a> = <a href="/type/Config" >Config</a>;</code></pre></p>
<h3><a class="anchor" href="#parameters" id="parameters" name="parameters"><i class="anchor-icon"></i></a>Parameters</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th style="text-align: center;">Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>flags</strong></td>
<td style="text-align: center;"><a href="/type/%23">#</a></td>
<td>Flags, see <a href="/mtproto/TL-combinators#conditional-fields">TL conditional fields</a></td>
</tr>
<tr>
<td><strong>phonecalls_enabled</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.1?<a href="/constructor/true">true</a></td>
<td>Whether phone calls can be used</td>
</tr>
<tr>
<td><strong>default_p2p_contacts</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.3?<a href="/constructor/true">true</a></td>
<td>Whether the client should use P2P by default for phone calls with contacts</td>
</tr>
<tr>
<td><strong>preload_featured_stickers</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.4?<a href="/constructor/true">true</a></td>
<td>Whether the client should preload featured stickers</td>
</tr>
<tr>
<td><strong>ignore_phone_entities</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.5?<a href="/constructor/true">true</a></td>
<td>Whether the client should ignore phone <a href="/api/entities">entities</a></td>
</tr>
<tr>
<td><strong>revoke_pm_inbox</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.6?<a href="/constructor/true">true</a></td>
<td>Whether incoming private messages can be deleted for both participants</td>
</tr>
<tr>
<td><strong>blocked_mode</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.8?<a href="/constructor/true">true</a></td>
<td>Indicates that telegram is <em>probably</em> censored by governments/ISPs in the current region</td>
</tr>
<tr>
<td><strong>pfs_enabled</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.13?<a href="/constructor/true">true</a></td>
<td>Whether <a href="/api/pfs">pfs</a> was used</td>
</tr>
<tr>
<td><strong>date</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Current date at the server</td>
</tr>
<tr>
<td><strong>expires</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Expiration date of this config: when it expires it'll have to be refetched using <a href="/method/help.getConfig">help.getConfig</a></td>
</tr>
<tr>
<td><strong>test_mode</strong></td>
<td style="text-align: center;"><a href="/type/Bool">Bool</a></td>
<td>Whether we're connected to the test DCs</td>
</tr>
<tr>
<td><strong>this_dc</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>ID of the DC that returned the reply</td>
</tr>
<tr>
<td><strong>dc_options</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/DcOption">DcOption</a>&gt;</td>
<td>DC IP list</td>
</tr>
<tr>
<td><strong>dc_txt_domain_name</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td>Domain name for fetching encrypted DC list from DNS TXT record</td>
</tr>
<tr>
<td><strong>chat_size_max</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Maximum member count for normal <a href="/api/channel">groups</a></td>
</tr>
<tr>
<td><strong>megagroup_size_max</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Maximum member count for <a href="/api/channel">supergroups</a></td>
</tr>
<tr>
<td><strong>forwarded_count_max</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Maximum number of messages that can be forwarded at once using <a href="/method/messages.forwardMessages">messages.forwardMessages</a>.</td>
</tr>
<tr>
<td><strong>online_update_period_ms</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>The client should <a href="/method/account.updateStatus">update its online status</a> every N milliseconds</td>
</tr>
<tr>
<td><strong>offline_blur_timeout_ms</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Delay before offline status needs to be sent to the server</td>
</tr>
<tr>
<td><strong>offline_idle_timeout_ms</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Time without any user activity after which it should be treated offline</td>
</tr>
<tr>
<td><strong>online_cloud_timeout_ms</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>If we are offline, but were online from some other client in last <code>online_cloud_timeout_ms</code> milliseconds after we had gone offline, then delay offline notification for <code>notify_cloud_delay_ms</code> milliseconds.</td>
</tr>
<tr>
<td><strong>notify_cloud_delay_ms</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>If we are offline, but online from some other client then delay sending the offline notification for <code>notify_cloud_delay_ms</code> milliseconds.</td>
</tr>
<tr>
<td><strong>notify_default_delay_ms</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>If some other client is online, then delay notification for <code>notification_default_delay_ms</code> milliseconds</td>
</tr>
<tr>
<td><strong>push_chat_period_ms</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Not for client use</td>
</tr>
<tr>
<td><strong>push_chat_limit</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Not for client use</td>
</tr>
<tr>
<td><strong>saved_gifs_limit</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Maximum count of saved gifs</td>
</tr>
<tr>
<td><strong>edit_time_limit</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Only messages with age smaller than the one specified can be edited</td>
</tr>
<tr>
<td><strong>revoke_time_limit</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Only channel/supergroup messages with age smaller than the specified can be deleted</td>
</tr>
<tr>
<td><strong>revoke_pm_time_limit</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Only private messages with age smaller than the specified can be deleted</td>
</tr>
<tr>
<td><strong>rating_e_decay</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Exponential decay rate for computing <a href="/api/top-rating">top peer rating</a></td>
</tr>
<tr>
<td><strong>stickers_recent_limit</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Maximum number of recent stickers</td>
</tr>
<tr>
<td><strong>stickers_faved_limit</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Maximum number of faved stickers</td>
</tr>
<tr>
<td><strong>channels_read_media_period</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Indicates that round videos (video notes) and voice messages sent in channels and older than the specified period must be marked as read</td>
</tr>
<tr>
<td><strong>tmp_sessions</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/type/int">int</a></td>
<td>Temporary <a href="/passport">passport</a> sessions</td>
</tr>
<tr>
<td><strong>pinned_dialogs_count_max</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Maximum count of pinned dialogs</td>
</tr>
<tr>
<td><strong>pinned_infolder_count_max</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Maximum count of dialogs per folder</td>
</tr>
<tr>
<td><strong>call_receive_timeout_ms</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Maximum allowed outgoing ring time in VoIP calls: if the user we're calling doesn't reply within the specified time (in milliseconds), we should hang up the call</td>
</tr>
<tr>
<td><strong>call_ring_timeout_ms</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Maximum allowed incoming ring time in VoIP calls: if the current user doesn't reply within the specified time (in milliseconds), the call will be automatically refused</td>
</tr>
<tr>
<td><strong>call_connect_timeout_ms</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>VoIP connection timeout: if the instance of libtgvoip on the other side of the call doesn't connect to our instance of libtgvoip within the specified time (in milliseconds), the call must be aborted</td>
</tr>
<tr>
<td><strong>call_packet_timeout_ms</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>If during a VoIP call a packet isn't received for the specified period of time, the call must be aborted</td>
</tr>
<tr>
<td><strong>me_url_prefix</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td>The domain to use to parse in-app links.<br>For example t.me indicates that t.me/username links should parsed to @username, t.me/addsticker/name should be parsed to the appropriate stickerset and so on...</td>
</tr>
<tr>
<td><strong>autoupdate_url_prefix</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.7?<a href="/type/string">string</a></td>
<td>URL to use to auto-update the current app</td>
</tr>
<tr>
<td><strong>gif_search_username</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.9?<a href="/type/string">string</a></td>
<td>Username of the bot to use to search for GIFs</td>
</tr>
<tr>
<td><strong>venue_search_username</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.10?<a href="/type/string">string</a></td>
<td>Username of the bot to use to search for venues</td>
</tr>
<tr>
<td><strong>img_search_username</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.11?<a href="/type/string">string</a></td>
<td>Username of the bot to use for image search</td>
</tr>
<tr>
<td><strong>static_maps_provider</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.12?<a href="/type/string">string</a></td>
<td>ID of the map provider to use for venues</td>
</tr>
<tr>
<td><strong>caption_length_max</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Maximum length of caption (length in utf8 codepoints)</td>
</tr>
<tr>
<td><strong>message_length_max</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>Maximum length of messages (length in utf8 codepoints)</td>
</tr>
<tr>
<td><strong>webfile_dc_id</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td>DC ID to use to download <a href="/api/files">webfiles</a></td>
</tr>
<tr>
<td><strong>suggested_lang_code</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.2?<a href="/type/string">string</a></td>
<td>Suggested language code</td>
</tr>
<tr>
<td><strong>lang_pack_version</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.2?<a href="/type/int">int</a></td>
<td>Language pack version</td>
</tr>
<tr>
<td><strong>base_lang_pack_version</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.2?<a href="/type/int">int</a></td>
<td>Basic language pack version</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
<p><a href="/type/Config">Config</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="#styled-text-with-message-entities" id="styled-text-with-message-entities" name="styled-text-with-message-entities"><i class="anchor-icon"></i></a><a href="/api/entities">Styled text with message entities</a></h4>
<p>How to create styled text with message entities</p>
<h4><a class="anchor" href="#perfect-forward-secrecy" id="perfect-forward-secrecy" name="perfect-forward-secrecy"><i class="anchor-icon"></i></a><a href="/api/pfs">Perfect Forward Secrecy</a></h4>
<p>Binding temporary authorization key to permanent ones.</p>
<h4><a class="anchor" href="#helpgetconfig" id="helpgetconfig" name="helpgetconfig"><i class="anchor-icon"></i></a><a href="/method/help.getConfig">help.getConfig</a></h4>
<p>Returns current configuration, including data center configuration.</p>
<h4><a class="anchor" href="#channels" id="channels" name="channels"><i class="anchor-icon"></i></a><a href="/api/channel">Channels</a></h4>
<p>How to handle channels, supergroups, groups, and what's the difference between them.</p>
<h4><a class="anchor" href="#messagesforwardmessages" id="messagesforwardmessages" name="messagesforwardmessages"><i class="anchor-icon"></i></a><a href="/method/messages.forwardMessages">messages.forwardMessages</a></h4>
<p>Forwards messages by their IDs.</p>
<h4><a class="anchor" href="#accountupdatestatus" id="accountupdatestatus" name="accountupdatestatus"><i class="anchor-icon"></i></a><a href="/method/account.updateStatus">account.updateStatus</a></h4>
<p>Updates online user status.</p>
<h4><a class="anchor" href="#top-peer-rating" id="top-peer-rating" name="top-peer-rating"><i class="anchor-icon"></i></a><a href="/api/top-rating">Top peer rating</a></h4>
<p>If enabled, the rating of top peers indicates the relevance of a frequently used peer in a certain category (frequently messaged users, frequently used bots, inline bots, frequently visited channels and so on).</p>
<h4><a class="anchor" href="#telegram-passport-manual" id="telegram-passport-manual" name="telegram-passport-manual"><i class="anchor-icon"></i></a><a href="/passport">Telegram Passport Manual</a></h4>
<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></div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/blog">Blog</a></li>
<li><a href="//telegram.org/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/dl/android">Android</a></li>
<li><a href="//telegram.org/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="/">Platform</a></h5>
<ul>
<li><a href="/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?42"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>