telegram-crawler/data/web/blogfork.telegram.org/methods.html
2024-02-14 18:50:34 +00:00

3226 lines
137 KiB
HTML

<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Methods</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Accepting the Terms of Service
Name
Description
help.getTermsOfServiceUpdate
Look for updates of telegram&#39;s terms of service…">
<meta property="og:title" content="Methods">
<meta property="og:image" content="">
<meta property="og:description" content="Accepting the Terms of Service
Name
Description
help.getTermsOfServiceUpdate
Look for updates of telegram&#39;s terms of service…">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
<link rel="alternate icon" href="/img/favicon.ico" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?236" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >Methods</a></li></ul></div>
<h1 id="dev_page_title">Methods</h1>
<div id="dev_page_content"><h3><a class="anchor" href="#accepting-the-terms-of-service" id="accepting-the-terms-of-service" name="accepting-the-terms-of-service"><i class="anchor-icon"></i></a>Accepting the <a href="https://telegram.org/tos">Terms of Service</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/help.getTermsOfServiceUpdate">help.getTermsOfServiceUpdate</a></td>
<td>Look for updates of telegram's terms of service</td>
</tr>
<tr>
<td><a href="/method/help.acceptTermsOfService">help.acceptTermsOfService</a></td>
<td>Accept the new terms of service</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#dealing-with-spam-and-tos-violations" id="dealing-with-spam-and-tos-violations" name="dealing-with-spam-and-tos-violations"><i class="anchor-icon"></i></a>Dealing with spam and ToS violations</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.reportPeer">account.reportPeer</a></td>
<td>Report a peer for violation of telegram's Terms of Service</td>
</tr>
<tr>
<td><a href="/method/account.reportProfilePhoto">account.reportProfilePhoto</a></td>
<td>Report a profile photo of a dialog</td>
</tr>
<tr>
<td><a href="/method/channels.reportSpam">channels.reportSpam</a></td>
<td>Reports some messages from a user in a supergroup as spam; requires administrator rights in the supergroup</td>
</tr>
<tr>
<td><a href="/method/messages.report">messages.report</a></td>
<td>Report a message in a chat for violation of telegram's Terms of Service</td>
</tr>
<tr>
<td><a href="/method/messages.reportSpam">messages.reportSpam</a></td>
<td>Report a new incoming chat for spam, if the <a href="/constructor/peerSettings">peer settings</a> of the chat allow us to do that</td>
</tr>
<tr>
<td><a href="/method/messages.reportEncryptedSpam">messages.reportEncryptedSpam</a></td>
<td>Report a secret chat for spam</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#fetching-configuration" id="fetching-configuration" name="fetching-configuration"><i class="anchor-icon"></i></a>Fetching <a href="/api/config">configuration</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/help.getAppConfig">help.getAppConfig</a></td>
<td>Get app-specific configuration, see <a href="/api/config#client-configuration">client configuration</a> for more info on the result.</td>
</tr>
<tr>
<td><a href="/method/help.getAppUpdate">help.getAppUpdate</a></td>
<td>Returns information on update availability for the current application.</td>
</tr>
<tr>
<td><a href="/method/help.getConfig">help.getConfig</a></td>
<td>Returns current configuration, including data center configuration.</td>
</tr>
<tr>
<td><a href="/method/help.getInviteText">help.getInviteText</a></td>
<td>Returns localized text of a text message with an invitation.</td>
</tr>
<tr>
<td><a href="/method/help.getNearestDc">help.getNearestDc</a></td>
<td>Returns info on data center nearest to the user.</td>
</tr>
<tr>
<td><a href="/method/help.getSupport">help.getSupport</a></td>
<td>Returns the support user for the "ask a question" feature.</td>
</tr>
<tr>
<td><a href="/method/help.getSupportName">help.getSupportName</a></td>
<td>Get localized name of the telegram support user</td>
</tr>
<tr>
<td><a href="/method/help.getCountriesList">help.getCountriesList</a></td>
<td>Get name, ISO code, localized name and phone codes/patterns of all available countries</td>
</tr>
<tr>
<td><a href="/method/help.dismissSuggestion">help.dismissSuggestion</a></td>
<td>Dismiss a <a href="/api/config#suggestions">suggestion, see here for more info »</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#login-via-qr-code" id="login-via-qr-code" name="login-via-qr-code"><i class="anchor-icon"></i></a>Login via <a href="/api/qr-login">QR code</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/auth.exportLoginToken">auth.exportLoginToken</a></td>
<td>Generate a login token, for <a href="/api/qr-login">login via QR code</a>. <br>The generated login token should be encoded using base64url, then shown as a <code>tg://login?token=base64encodedtoken</code> <a href="/api/links#qr-code-login-links">deep link »</a> in the QR code.<br><br>For more info, see <a href="/api/qr-login">login via QR code</a>.</td>
</tr>
<tr>
<td><a href="/method/auth.acceptLoginToken">auth.acceptLoginToken</a></td>
<td>Accept QR code login token, logging in the app that generated it.<br><br>Returns info about the new session.<br><br>For more info, see <a href="/api/qr-login">login via QR code</a>.</td>
</tr>
<tr>
<td><a href="/method/auth.importLoginToken">auth.importLoginToken</a></td>
<td>Login using a redirected login token, generated in case of DC mismatch during <a href="/api/qr-login">QR code login</a>.<br><br>For more info, see <a href="/api/qr-login">login via QR code</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#miscellaneous" id="miscellaneous" name="miscellaneous"><i class="anchor-icon"></i></a>Miscellaneous</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/help.saveAppLog">help.saveAppLog</a></td>
<td>Saves logs of application on the server.</td>
</tr>
<tr>
<td><a href="/method/initConnection">initConnection</a></td>
<td>Initialize connection</td>
</tr>
<tr>
<td><a href="/method/invokeAfterMsg">invokeAfterMsg</a></td>
<td>Invokes a query after successful completion of one of the previous queries.</td>
</tr>
<tr>
<td><a href="/method/invokeAfterMsgs">invokeAfterMsgs</a></td>
<td>Invokes a query after a successful completion of previous queries</td>
</tr>
<tr>
<td><a href="/method/invokeWithLayer">invokeWithLayer</a></td>
<td>Invoke the specified query using the specified API <a href="/api/invoking#layers">layer</a></td>
</tr>
<tr>
<td><a href="/method/invokeWithoutUpdates">invokeWithoutUpdates</a></td>
<td>Invoke a request without subscribing the used connection for <a href="/api/updates">updates</a> (this is enabled by default for <a href="/api/files">file queries</a>).</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#registration-authorization" id="registration-authorization" name="registration-authorization"><i class="anchor-icon"></i></a>Registration/Authorization</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/auth.bindTempAuthKey">auth.bindTempAuthKey</a></td>
<td>Binds a temporary authorization key <code>temp_auth_key_id</code> to the permanent authorization key <code>perm_auth_key_id</code>. Each permanent key may only be bound to one temporary key at a time, binding a new temporary key overwrites the previous one.<br><br>For more information, see <a href="/api/pfs">Perfect Forward Secrecy</a>.</td>
</tr>
<tr>
<td><a href="/method/auth.cancelCode">auth.cancelCode</a></td>
<td>Cancel the login verification code</td>
</tr>
<tr>
<td><a href="/method/account.sendVerifyEmailCode">account.sendVerifyEmailCode</a></td>
<td>Send an email verification code.</td>
</tr>
<tr>
<td><a href="/method/account.verifyEmail">account.verifyEmail</a></td>
<td>Verify an email address.</td>
</tr>
<tr>
<td><a href="/method/auth.resetLoginEmail">auth.resetLoginEmail</a></td>
<td>Reset the <a href="https://core.telegram.org/api/auth#email-verification">login email »</a>.</td>
</tr>
<tr>
<td><a href="/method/auth.checkPassword">auth.checkPassword</a></td>
<td>Try logging to an account protected by a <a href="/api/srp">2FA password</a>.</td>
</tr>
<tr>
<td><a href="/method/account.resetPassword">account.resetPassword</a></td>
<td>Initiate a 2FA password reset: can only be used if the user is already logged-in, <a href="/api/srp#password-reset">see here for more info »</a></td>
</tr>
<tr>
<td><a href="/method/auth.checkRecoveryPassword">auth.checkRecoveryPassword</a></td>
<td>Check if the <a href="/api/srp">2FA recovery code</a> sent using <a href="/method/auth.requestPasswordRecovery">auth.requestPasswordRecovery</a> is valid, before passing it to <a href="/method/auth.recoverPassword">auth.recoverPassword</a>.</td>
</tr>
<tr>
<td><a href="/method/auth.dropTempAuthKeys">auth.dropTempAuthKeys</a></td>
<td>Delete all temporary authorization keys <strong>except for</strong> the ones specified</td>
</tr>
<tr>
<td><a href="/method/auth.exportAuthorization">auth.exportAuthorization</a></td>
<td>Returns data for copying authorization to another data-center.</td>
</tr>
<tr>
<td><a href="/method/auth.importAuthorization">auth.importAuthorization</a></td>
<td>Logs in a user using a key transmitted from his native data-center.</td>
</tr>
<tr>
<td><a href="/method/auth.importBotAuthorization">auth.importBotAuthorization</a></td>
<td>Login as a bot</td>
</tr>
<tr>
<td><a href="/method/account.changeAuthorizationSettings">account.changeAuthorizationSettings</a></td>
<td>Change settings related to a session.</td>
</tr>
<tr>
<td><a href="/method/account.setAuthorizationTTL">account.setAuthorizationTTL</a></td>
<td>Set time-to-live of current session</td>
</tr>
<tr>
<td><a href="/method/auth.logOut">auth.logOut</a></td>
<td>Logs out the user.</td>
</tr>
<tr>
<td><a href="/method/auth.recoverPassword">auth.recoverPassword</a></td>
<td>Reset the <a href="/api/srp">2FA password</a> using the recovery code sent using <a href="/method/auth.requestPasswordRecovery">auth.requestPasswordRecovery</a>.</td>
</tr>
<tr>
<td><a href="/method/auth.requestPasswordRecovery">auth.requestPasswordRecovery</a></td>
<td>Request recovery code of a <a href="/api/srp">2FA password</a>, only for accounts with a <a href="/api/srp#email-verification">recovery email configured</a>.</td>
</tr>
<tr>
<td><a href="/method/auth.resendCode">auth.resendCode</a></td>
<td>Resend the login code via another medium, the phone code type is determined by the return value of the previous auth.sendCode/auth.resendCode: see <a href="/api/auth">login</a> for more info.</td>
</tr>
<tr>
<td><a href="/method/auth.resetAuthorizations">auth.resetAuthorizations</a></td>
<td>Terminates all user's authorized sessions except for the current one.<br><br>After calling this method it is necessary to reregister the current device using the method <a href="/method/account.registerDevice">account.registerDevice</a></td>
</tr>
<tr>
<td><a href="/method/auth.sendCode">auth.sendCode</a></td>
<td>Send the verification code for login</td>
</tr>
<tr>
<td><a href="/method/auth.signIn">auth.signIn</a></td>
<td>Signs in a user with a validated phone number.</td>
</tr>
<tr>
<td><a href="/method/auth.signUp">auth.signUp</a></td>
<td>Registers a validated phone number in the system.</td>
</tr>
<tr>
<td><a href="/method/auth.requestFirebaseSms">auth.requestFirebaseSms</a></td>
<td>Request an SMS code via Firebase.</td>
</tr>
<tr>
<td><a href="/method/auth.importWebTokenAuthorization">auth.importWebTokenAuthorization</a></td>
<td>Login by importing an authorization token</td>
</tr>
<tr>
<td><a href="/method/account.invalidateSignInCodes">account.invalidateSignInCodes</a></td>
<td>Invalidate the specified login codes, see <a href="/api/auth#invalidating-login-codes">here »</a> for more info.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-gifs-actually-mpeg4-gifs" id="working-with-gifs-actually-mpeg4-gifs" name="working-with-gifs-actually-mpeg4-gifs"><i class="anchor-icon"></i></a>Working with GIFs (actually MPEG4 GIFs)</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.getSavedGifs">messages.getSavedGifs</a></td>
<td>Get saved GIFs</td>
</tr>
<tr>
<td><a href="/method/messages.saveGif">messages.saveGif</a></td>
<td>Add GIF to saved gifs list</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-public-service-announcement-and-mtproxy-channels" id="working-with-public-service-announcement-and-mtproxy-channels" name="working-with-public-service-announcement-and-mtproxy-channels"><i class="anchor-icon"></i></a>Working with Public Service Announcement and MTProxy channels</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/help.hidePromoData">help.hidePromoData</a></td>
<td>Hide MTProxy/Public Service Announcement information</td>
</tr>
<tr>
<td><a href="/method/help.getPromoData">help.getPromoData</a></td>
<td>Get MTProxy/Public Service Announcement information</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-tsf-internal-use-only" id="working-with-tsf-internal-use-only" name="working-with-tsf-internal-use-only"><i class="anchor-icon"></i></a>Working with TSF (internal use only)</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/help.editUserInfo">help.editUserInfo</a></td>
<td>Internal use</td>
</tr>
<tr>
<td><a href="/method/help.getUserInfo">help.getUserInfo</a></td>
<td>Can only be used by TSF members to obtain internal information.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-telegram-premium" id="working-with-telegram-premium" name="working-with-telegram-premium"><i class="anchor-icon"></i></a>Working with Telegram Premium</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/payments.canPurchasePremium">payments.canPurchasePremium</a></td>
<td>Checks whether Telegram Premium purchase is possible. Must be called before in-store Premium purchase, official apps only.</td>
</tr>
<tr>
<td><a href="/method/help.getPremiumPromo">help.getPremiumPromo</a></td>
<td>Get Telegram Premium promotion information</td>
</tr>
<tr>
<td><a href="/method/payments.assignAppStoreTransaction">payments.assignAppStoreTransaction</a></td>
<td>Informs server about a purchase made through the App Store: for official applications only.</td>
</tr>
<tr>
<td><a href="/method/payments.assignPlayMarketTransaction">payments.assignPlayMarketTransaction</a></td>
<td>Informs server about a purchase made through the Play Store: for official applications only.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-2fa-login" id="working-with-2fa-login" name="working-with-2fa-login"><i class="anchor-icon"></i></a>Working with <a href="/api/srp">2FA login</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.confirmPasswordEmail">account.confirmPasswordEmail</a></td>
<td>Verify an email to use as <a href="/api/srp">2FA recovery method</a>.</td>
</tr>
<tr>
<td><a href="/method/account.resendPasswordEmail">account.resendPasswordEmail</a></td>
<td>Resend the code to verify an email to use as <a href="/api/srp">2FA recovery method</a>.</td>
</tr>
<tr>
<td><a href="/method/account.cancelPasswordEmail">account.cancelPasswordEmail</a></td>
<td>Cancel the code that was sent to verify an email to use as <a href="/api/srp">2FA recovery method</a>.</td>
</tr>
<tr>
<td><a href="/method/account.getPassword">account.getPassword</a></td>
<td>Obtain configuration for two-factor authorization with password</td>
</tr>
<tr>
<td><a href="/method/account.getPasswordSettings">account.getPasswordSettings</a></td>
<td>Get private info associated to the password info (recovery email, telegram <a href="/passport">passport</a> info &amp; so on)</td>
</tr>
<tr>
<td><a href="/method/account.updatePasswordSettings">account.updatePasswordSettings</a></td>
<td>Set a new 2FA password</td>
</tr>
<tr>
<td><a href="/method/account.declinePasswordReset">account.declinePasswordReset</a></td>
<td>Abort a pending 2FA password reset, <a href="/api/srp#password-reset">see here for more info »</a></td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-seamless-telegram-login" id="working-with-seamless-telegram-login" name="working-with-seamless-telegram-login"><i class="anchor-icon"></i></a>Working with <a href="/api/url-authorization">Seamless Telegram Login</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.requestUrlAuth">messages.requestUrlAuth</a></td>
<td>Get more info about a Seamless Telegram Login authorization request, for more info <a href="/api/url-authorization">click here »</a></td>
</tr>
<tr>
<td><a href="/method/messages.acceptUrlAuth">messages.acceptUrlAuth</a></td>
<td>Use this to accept a Seamless Telegram Login authorization request, for more info <a href="/api/url-authorization">click here »</a></td>
</tr>
<tr>
<td><a href="/method/account.getWebAuthorizations">account.getWebAuthorizations</a></td>
<td>Get web <a href="/widgets/login">login widget</a> authorizations</td>
</tr>
<tr>
<td><a href="/method/account.resetWebAuthorization">account.resetWebAuthorization</a></td>
<td>Log out an active web <a href="/widgets/login">telegram login</a> session</td>
</tr>
<tr>
<td><a href="/method/account.resetWebAuthorizations">account.resetWebAuthorizations</a></td>
<td>Reset all active web <a href="/widgets/login">telegram login</a> sessions</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-voip-calls" id="working-with-voip-calls" name="working-with-voip-calls"><i class="anchor-icon"></i></a>Working with <a href="/api/end-to-end/voice-calls">VoIP calls</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/phone.acceptCall">phone.acceptCall</a></td>
<td>Accept incoming call</td>
</tr>
<tr>
<td><a href="/method/phone.confirmCall">phone.confirmCall</a></td>
<td><a href="/api/end-to-end/voice-calls">Complete phone call E2E encryption key exchange »</a></td>
</tr>
<tr>
<td><a href="/method/phone.discardCall">phone.discardCall</a></td>
<td>Refuse or end running call</td>
</tr>
<tr>
<td><a href="/method/phone.getCallConfig">phone.getCallConfig</a></td>
<td>Get phone call configuration to be passed to libtgvoip's shared config</td>
</tr>
<tr>
<td><a href="/method/phone.receivedCall">phone.receivedCall</a></td>
<td>Optional: notify the server that the user is currently busy in a call: this will automatically refuse all incoming phone calls until the current phone call is ended.</td>
</tr>
<tr>
<td><a href="/method/phone.requestCall">phone.requestCall</a></td>
<td>Start a telegram phone call</td>
</tr>
<tr>
<td><a href="/method/phone.saveCallDebug">phone.saveCallDebug</a></td>
<td>Send phone call debug data to server</td>
</tr>
<tr>
<td><a href="/method/phone.sendSignalingData">phone.sendSignalingData</a></td>
<td>Send VoIP signaling data</td>
</tr>
<tr>
<td><a href="/method/phone.setCallRating">phone.setCallRating</a></td>
<td>Rate a call, returns info about the rating message sent to the official VoIP bot.</td>
</tr>
<tr>
<td><a href="/method/phone.saveCallLog">phone.saveCallLog</a></td>
<td>Save phone call debug information</td>
</tr>
<tr>
<td><a href="/method/messages.deletePhoneCallHistory">messages.deletePhoneCallHistory</a></td>
<td>Delete the entire phone call history.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-accent-colors-" id="working-with-accent-colors-" name="working-with-accent-colors-"><i class="anchor-icon"></i></a>Working with <a href="/api/colors">accent colors »</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/help.getPeerColors">help.getPeerColors</a></td>
<td>Get the set of <a href="/api/colors">accent color palettes »</a> that can be used for message accents.</td>
</tr>
<tr>
<td><a href="/method/help.getPeerProfileColors">help.getPeerProfileColors</a></td>
<td>Get the set of <a href="/api/colors">accent color palettes »</a> that can be used in profile page backgrounds.</td>
</tr>
<tr>
<td><a href="/method/account.updateColor">account.updateColor</a></td>
<td>Update the <a href="/api/colors">accent color and background custom emoji »</a> of the current account.</td>
</tr>
<tr>
<td><a href="/method/channels.updateColor">channels.updateColor</a></td>
<td>Update the <a href="/api/colors">accent color and background custom emoji »</a> of a channel.</td>
</tr>
<tr>
<td><a href="/method/account.getDefaultBackgroundEmojis">account.getDefaultBackgroundEmojis</a></td>
<td>Get a set of suggested <a href="/api/custom-emoji">custom emoji stickers</a> that can be used in an <a href="/api/colors">accent color pattern</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-boosts-" id="working-with-boosts-" name="working-with-boosts-"><i class="anchor-icon"></i></a>Working with <a href="/api/boost">boosts »</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/premium.getBoostsList">premium.getBoostsList</a></td>
<td>Obtains info about the boosts that were applied to a certain channel (admins only)</td>
</tr>
<tr>
<td><a href="/method/premium.getMyBoosts">premium.getMyBoosts</a></td>
<td>Obtain which peers are we currently <a href="/api/boost">boosting</a>, and how many <a href="/api/boost">boost slots</a> we have left.</td>
</tr>
<tr>
<td><a href="/method/premium.applyBoost">premium.applyBoost</a></td>
<td>Apply one or more <a href="/api/boost">boosts »</a> to a peer.</td>
</tr>
<tr>
<td><a href="/method/premium.getBoostsStatus">premium.getBoostsStatus</a></td>
<td>Gets the current <a href="/api/boost">number of boosts</a> of a channel.</td>
</tr>
<tr>
<td><a href="/method/premium.getUserBoosts">premium.getUserBoosts</a></td>
<td>Returns the lists of boost that were applied to a channel by a specific user (admins only)</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-channel-recommendations-" id="working-with-channel-recommendations-" name="working-with-channel-recommendations-"><i class="anchor-icon"></i></a>Working with <a href="/api/recommend">channel recommendations »</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/channels.getChannelRecommendations">channels.getChannelRecommendations</a></td>
<td>Obtain a list of similarly themed public channels, selected based on similarities in their <strong>subscriber bases</strong>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-channels-supergroups-geogroups" id="working-with-channels-supergroups-geogroups" name="working-with-channels-supergroups-geogroups"><i class="anchor-icon"></i></a>Working with <a href="/api/channel">channels/supergroups/geogroups</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/channels.createChannel">channels.createChannel</a></td>
<td>Create a <a href="/api/channel">supergroup/channel</a>.</td>
</tr>
<tr>
<td><a href="/method/channels.getInactiveChannels">channels.getInactiveChannels</a></td>
<td>Get inactive channels and supergroups</td>
</tr>
<tr>
<td><a href="/method/channels.deleteChannel">channels.deleteChannel</a></td>
<td>Delete a <a href="/api/channel">channel/supergroup</a></td>
</tr>
<tr>
<td><a href="/method/channels.deleteHistory">channels.deleteHistory</a></td>
<td>Delete the history of a <a href="/api/channel">supergroup</a></td>
</tr>
<tr>
<td><a href="/method/channels.deleteMessages">channels.deleteMessages</a></td>
<td>Delete messages in a <a href="/api/channel">channel/supergroup</a></td>
</tr>
<tr>
<td><a href="/method/channels.deleteParticipantHistory">channels.deleteParticipantHistory</a></td>
<td>Delete all messages sent by a specific participant of a given supergroup</td>
</tr>
<tr>
<td><a href="/method/channels.editAdmin">channels.editAdmin</a></td>
<td>Modify the admin rights of a user in a <a href="/api/channel">supergroup/channel</a>.</td>
</tr>
<tr>
<td><a href="/method/channels.editBanned">channels.editBanned</a></td>
<td>Ban/unban/kick a user in a <a href="/api/channel">supergroup/channel</a>.</td>
</tr>
<tr>
<td><a href="/method/channels.editCreator">channels.editCreator</a></td>
<td>Transfer channel ownership</td>
</tr>
<tr>
<td><a href="/method/channels.editLocation">channels.editLocation</a></td>
<td>Edit location of geogroup, see <a href="/api/nearby">here »</a> for more info on geogroups.</td>
</tr>
<tr>
<td><a href="/method/channels.editPhoto">channels.editPhoto</a></td>
<td>Change the photo of a <a href="/api/channel">channel/supergroup</a></td>
</tr>
<tr>
<td><a href="/method/channels.editTitle">channels.editTitle</a></td>
<td>Edit the name of a <a href="/api/channel">channel/supergroup</a></td>
</tr>
<tr>
<td><a href="/method/channels.exportMessageLink">channels.exportMessageLink</a></td>
<td>Get link and embed info of a message in a <a href="/api/channel">channel/supergroup</a></td>
</tr>
<tr>
<td><a href="/method/channels.getAdminLog">channels.getAdminLog</a></td>
<td>Get the admin log of a <a href="/api/channel">channel/supergroup</a></td>
</tr>
<tr>
<td><a href="/method/channels.getAdminedPublicChannels">channels.getAdminedPublicChannels</a></td>
<td>Get <a href="/api/channel">channels/supergroups/geogroups</a> we're admin in. Usually called when the user exceeds the <a href="/constructor/config">limit</a> for owned public <a href="/api/channel">channels/supergroups/geogroups</a>, and the user is given the choice to remove one of his channels/supergroups/geogroups.</td>
</tr>
<tr>
<td><a href="/method/channels.getChannels">channels.getChannels</a></td>
<td>Get info about <a href="/api/channel">channels/supergroups</a></td>
</tr>
<tr>
<td><a href="/method/channels.getFullChannel">channels.getFullChannel</a></td>
<td>Get full info about a <a href="/api/channel#supergroups">supergroup</a>, <a href="/api/channel#gigagroups">gigagroup</a> or <a href="/api/channel#channels">channel</a></td>
</tr>
<tr>
<td><a href="/method/channels.getGroupsForDiscussion">channels.getGroupsForDiscussion</a></td>
<td>Get all groups that can be used as <a href="/api/discussion">discussion groups</a>.<br><br>Returned <a href="/api/channel#basic-groups">basic group chats</a> must be first upgraded to <a href="/api/channel#supergroups">supergroups</a> before they can be set as a discussion group. <br>To set a returned supergroup as a discussion group, access to its old messages must be enabled using <a href="/method/channels.togglePreHistoryHidden">channels.togglePreHistoryHidden</a>, first.</td>
</tr>
<tr>
<td><a href="/method/channels.getMessages">channels.getMessages</a></td>
<td>Get <a href="/api/channel">channel/supergroup</a> messages</td>
</tr>
<tr>
<td><a href="/method/channels.getParticipant">channels.getParticipant</a></td>
<td>Get info about a <a href="/api/channel">channel/supergroup</a> participant</td>
</tr>
<tr>
<td><a href="/method/channels.getParticipants">channels.getParticipants</a></td>
<td>Get the participants of a <a href="/api/channel">supergroup/channel</a></td>
</tr>
<tr>
<td><a href="/method/channels.inviteToChannel">channels.inviteToChannel</a></td>
<td>Invite users to a channel/supergroup<br><br>May also return 0-N updates of type <a href="/constructor/updateGroupInvitePrivacyForbidden">updateGroupInvitePrivacyForbidden</a>: it indicates we couldn't add a user to a chat because of their privacy settings; if required, an <a href="/api/invites">invite link</a> can be shared with the user, instead.</td>
</tr>
<tr>
<td><a href="/method/channels.joinChannel">channels.joinChannel</a></td>
<td>Join a channel/supergroup</td>
</tr>
<tr>
<td><a href="/method/channels.leaveChannel">channels.leaveChannel</a></td>
<td>Leave a <a href="/api/channel">channel/supergroup</a></td>
</tr>
<tr>
<td><a href="/method/channels.readHistory">channels.readHistory</a></td>
<td>Mark <a href="/api/channel">channel/supergroup</a> history as read</td>
</tr>
<tr>
<td><a href="/method/channels.readMessageContents">channels.readMessageContents</a></td>
<td>Mark <a href="/api/channel">channel/supergroup</a> message contents as read</td>
</tr>
<tr>
<td><a href="/method/channels.setDiscussionGroup">channels.setDiscussionGroup</a></td>
<td>Associate a group to a channel as <a href="/api/discussion">discussion group</a> for that channel</td>
</tr>
<tr>
<td><a href="/method/channels.setStickers">channels.setStickers</a></td>
<td>Associate a stickerset to the supergroup</td>
</tr>
<tr>
<td><a href="/method/channels.togglePreHistoryHidden">channels.togglePreHistoryHidden</a></td>
<td>Hide/unhide message history for new channel/supergroup users</td>
</tr>
<tr>
<td><a href="/method/channels.toggleSignatures">channels.toggleSignatures</a></td>
<td>Enable/disable message signatures in channels</td>
</tr>
<tr>
<td><a href="/method/channels.toggleSlowMode">channels.toggleSlowMode</a></td>
<td>Toggle supergroup slow mode: if enabled, users will only be able to send one message every <code>seconds</code> seconds</td>
</tr>
<tr>
<td><a href="/method/channels.toggleParticipantsHidden">channels.toggleParticipantsHidden</a></td>
<td>Hide or display the participants list in a <a href="/api/channel">supergroup</a>.<br><br>The supergroup must have at least <code>hidden_members_group_size_min</code> participants in order to use this method, as specified by the <a href="/api/config#client-configuration">client configuration parameters »</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-chat-invites-and-join-requests" id="working-with-chat-invites-and-join-requests" name="working-with-chat-invites-and-join-requests"><i class="anchor-icon"></i></a>Working with <a href="/api/invites">chat invites and join requests</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.exportChatInvite">messages.exportChatInvite</a></td>
<td>Export an invite link for a chat</td>
</tr>
<tr>
<td><a href="/method/messages.getExportedChatInvite">messages.getExportedChatInvite</a></td>
<td>Get info about a chat invite</td>
</tr>
<tr>
<td><a href="/method/messages.getExportedChatInvites">messages.getExportedChatInvites</a></td>
<td>Get info about the chat invites of a specific chat</td>
</tr>
<tr>
<td><a href="/method/messages.editExportedChatInvite">messages.editExportedChatInvite</a></td>
<td>Edit an exported chat invite</td>
</tr>
<tr>
<td><a href="/method/messages.deleteRevokedExportedChatInvites">messages.deleteRevokedExportedChatInvites</a></td>
<td>Delete all revoked chat invites</td>
</tr>
<tr>
<td><a href="/method/messages.deleteExportedChatInvite">messages.deleteExportedChatInvite</a></td>
<td>Delete a chat invite</td>
</tr>
<tr>
<td><a href="/method/messages.getAdminsWithInvites">messages.getAdminsWithInvites</a></td>
<td>Get info about chat invites generated by admins.</td>
</tr>
<tr>
<td><a href="/method/messages.getChatInviteImporters">messages.getChatInviteImporters</a></td>
<td>Get info about the users that joined the chat using a specific chat invite</td>
</tr>
<tr>
<td><a href="/method/messages.checkChatInvite">messages.checkChatInvite</a></td>
<td>Check the validity of a chat invite link and get basic info about it</td>
</tr>
<tr>
<td><a href="/method/messages.importChatInvite">messages.importChatInvite</a></td>
<td>Import a chat invite and join a private chat/supergroup/channel</td>
</tr>
<tr>
<td><a href="/method/messages.hideChatJoinRequest">messages.hideChatJoinRequest</a></td>
<td>Dismiss or approve a chat <a href="/api/invites#join-requests">join request</a> related to a specific chat or channel.</td>
</tr>
<tr>
<td><a href="/method/messages.hideAllChatJoinRequests">messages.hideAllChatJoinRequests</a></td>
<td>Dismiss or approve all <a href="/api/invites#join-requests">join requests</a> related to a specific chat or channel.</td>
</tr>
<tr>
<td><a href="/method/channels.toggleJoinToSend">channels.toggleJoinToSend</a></td>
<td>Set whether all users <a href="/api/discussion#requiring-users-to-join-the-group">should join a discussion group in order to comment on a post »</a></td>
</tr>
<tr>
<td><a href="/method/channels.toggleJoinRequest">channels.toggleJoinRequest</a></td>
<td>Set whether all users should <a href="/api/invites#join-requests">request admin approval to join the group »</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-chats-supergroups-channels" id="working-with-chats-supergroups-channels" name="working-with-chats-supergroups-channels"><i class="anchor-icon"></i></a>Working with <a href="/api/channel">chats/supergroups/channels</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.getMessageReadParticipants">messages.getMessageReadParticipants</a></td>
<td>Get which users read a specific message: only available for groups and supergroups with less than <a href="/api/config#chat-read-mark-size-threshold"><code>chat_read_mark_size_threshold</code> members</a>, read receipts will be stored for <a href="/api/config#chat-read-mark-expire-period"><code>chat_read_mark_expire_period</code> seconds after the message was sent</a>, see <a href="/api/config#client-configuration">client configuration for more info »</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.addChatUser">messages.addChatUser</a></td>
<td>Adds a user to a chat and sends a service message on it.<br><br>May also return 0-N updates of type <a href="/constructor/updateGroupInvitePrivacyForbidden">updateGroupInvitePrivacyForbidden</a>: it indicates we couldn't add a user to a chat because of their privacy settings; if required, an <a href="/api/invites">invite link</a> can be shared with the user, instead.</td>
</tr>
<tr>
<td><a href="/method/messages.createChat">messages.createChat</a></td>
<td>Creates a new chat.<br><br>May also return 0-N updates of type <a href="/constructor/updateGroupInvitePrivacyForbidden">updateGroupInvitePrivacyForbidden</a>: it indicates we couldn't add a user to a chat because of their privacy settings; if required, an <a href="/api/invites">invite link</a> can be shared with the user, instead.</td>
</tr>
<tr>
<td><a href="/method/messages.deleteChatUser">messages.deleteChatUser</a></td>
<td>Deletes a user from a chat and sends a service message on it.</td>
</tr>
<tr>
<td><a href="/method/messages.editChatAbout">messages.editChatAbout</a></td>
<td>Edit the description of a <a href="/api/channel">group/supergroup/channel</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.editChatAdmin">messages.editChatAdmin</a></td>
<td>Make a user admin in a <a href="/api/channel#basic-groups">basic group</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.editChatDefaultBannedRights">messages.editChatDefaultBannedRights</a></td>
<td>Edit the default banned rights of a <a href="/api/channel">channel/supergroup/group</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.editChatPhoto">messages.editChatPhoto</a></td>
<td>Changes chat photo and sends a service message on it</td>
</tr>
<tr>
<td><a href="/method/messages.editChatTitle">messages.editChatTitle</a></td>
<td>Changes chat name and sends a service message on it.</td>
</tr>
<tr>
<td><a href="/method/messages.getChats">messages.getChats</a></td>
<td>Returns chat basic info on their IDs.</td>
</tr>
<tr>
<td><a href="/method/messages.deleteChat">messages.deleteChat</a></td>
<td>Delete a <a href="/api/channel">chat</a></td>
</tr>
<tr>
<td><a href="/method/messages.getCommonChats">messages.getCommonChats</a></td>
<td>Get chats in common with a user</td>
</tr>
<tr>
<td><a href="/method/messages.getFullChat">messages.getFullChat</a></td>
<td>Get full info about a <a href="/api/channel#basic-groups">basic group</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.migrateChat">messages.migrateChat</a></td>
<td>Turn a <a href="/api/channel#migration">basic group into a supergroup</a></td>
</tr>
<tr>
<td><a href="/method/channels.convertToGigagroup">channels.convertToGigagroup</a></td>
<td>Convert a <a href="/api/channel">supergroup</a> to a <a href="/api/channel">gigagroup</a>, when requested by <a href="/api/config#channel-suggestions">channel suggestions</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-cloud-themes" id="working-with-cloud-themes" name="working-with-cloud-themes"><i class="anchor-icon"></i></a>Working with <a href="/api/themes">cloud themes</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.updateTheme">account.updateTheme</a></td>
<td>Update theme</td>
</tr>
<tr>
<td><a href="/method/account.uploadTheme">account.uploadTheme</a></td>
<td>Upload theme</td>
</tr>
<tr>
<td><a href="/method/account.getThemes">account.getThemes</a></td>
<td>Get installed themes</td>
</tr>
<tr>
<td><a href="/method/account.createTheme">account.createTheme</a></td>
<td>Create a theme</td>
</tr>
<tr>
<td><a href="/method/account.installTheme">account.installTheme</a></td>
<td>Install a theme</td>
</tr>
<tr>
<td><a href="/method/account.saveTheme">account.saveTheme</a></td>
<td>Save a theme</td>
</tr>
<tr>
<td><a href="/method/account.getTheme">account.getTheme</a></td>
<td>Get theme information</td>
</tr>
<tr>
<td><a href="/method/account.getChatThemes">account.getChatThemes</a></td>
<td>Get all available chat <a href="/api/themes">themes »</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.setChatTheme">messages.setChatTheme</a></td>
<td>Change the chat theme of a certain chat</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-custom-animated-emojis" id="working-with-custom-animated-emojis" name="working-with-custom-animated-emojis"><i class="anchor-icon"></i></a>Working with <a href="/api/custom-emoji">custom animated emojis</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.getCustomEmojiDocuments">messages.getCustomEmojiDocuments</a></td>
<td>Fetch <a href="/api/custom-emoji">custom emoji stickers »</a>.<br><br>Returns a list of <a href="/constructor/document">documents</a> with the animated custom emoji in TGS format, and a <a href="/constructor/documentAttributeCustomEmoji">documentAttributeCustomEmoji</a> attribute with the original emoji and info about the emoji stickerset this custom emoji belongs to.</td>
</tr>
<tr>
<td><a href="/method/messages.getEmojiStickers">messages.getEmojiStickers</a></td>
<td>Gets the list of currently installed <a href="/api/custom-emoji">custom emoji stickersets</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.getFeaturedEmojiStickers">messages.getFeaturedEmojiStickers</a></td>
<td>Gets featured custom emoji stickersets.</td>
</tr>
<tr>
<td><a href="/method/messages.getEmojiGroups">messages.getEmojiGroups</a></td>
<td>Represents a list of <a href="/api/custom-emoji#emoji-categories">emoji categories</a>, to be used when selecting <a href="/api/custom-emoji">custom emojis</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.getEmojiStatusGroups">messages.getEmojiStatusGroups</a></td>
<td>Represents a list of <a href="/api/custom-emoji#emoji-categories">emoji categories</a>, to be used when selecting custom emojis to set as <a href="/api">custom emoji status</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.getEmojiProfilePhotoGroups">messages.getEmojiProfilePhotoGroups</a></td>
<td>Represents a list of <a href="/api/custom-emoji#emoji-categories">emoji categories</a>, to be used when selecting custom emojis to set as <a href="/api/files#sticker-profile-pictures">profile picture</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.searchCustomEmoji">messages.searchCustomEmoji</a></td>
<td>Look for <a href="/api/custom-emoji">custom emojis</a> associated to a UTF8 emoji</td>
</tr>
<tr>
<td><a href="/method/account.getDefaultProfilePhotoEmojis">account.getDefaultProfilePhotoEmojis</a></td>
<td>Get a set of suggested <a href="/api/custom-emoji">custom emoji stickers</a> that can be <a href="/api/files#sticker-profile-pictures">used as profile picture</a></td>
</tr>
<tr>
<td><a href="/method/account.getDefaultGroupPhotoEmojis">account.getDefaultGroupPhotoEmojis</a></td>
<td>Get a set of suggested <a href="/api/custom-emoji">custom emoji stickers</a> that can be <a href="/api/files#sticker-profile-pictures">used as group picture</a></td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-deep-links" id="working-with-deep-links" name="working-with-deep-links"><i class="anchor-icon"></i></a>Working with <a href="/api/links">deep links</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.startBot">messages.startBot</a></td>
<td>Start a conversation with a bot using a <a href="/api/links#bot-links">deep linking parameter</a></td>
</tr>
<tr>
<td><a href="/method/help.getDeepLinkInfo">help.getDeepLinkInfo</a></td>
<td>Get info about an unsupported deep link, see <a href="/api/links#unsupported-links">here for more info »</a>.</td>
</tr>
<tr>
<td><a href="/method/help.getRecentMeUrls">help.getRecentMeUrls</a></td>
<td>Get recently used <code>t.me</code> links.<br><br>When installing official applications from "Download Telegram" buttons present in <a href="https://t.me">t.me</a> pages, a referral parameter is passed to applications after installation. <br>If, after downloading the application, the user creates a new account (instead of logging into an existing one), the referral parameter should be imported using this method, which returns the <a href="https://t.me">t.me</a> pages the user recently opened, before installing Telegram.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-emoji-keywords" id="working-with-emoji-keywords" name="working-with-emoji-keywords"><i class="anchor-icon"></i></a>Working with <a href="/api/custom-emoji#emoji-keywords">emoji keywords</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.getEmojiKeywords">messages.getEmojiKeywords</a></td>
<td>Get localized <a href="/api/custom-emoji#emoji-keywords">emoji keywords »</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.getEmojiKeywordsDifference">messages.getEmojiKeywordsDifference</a></td>
<td>Get changed <a href="/api/custom-emoji#emoji-keywords">emoji keywords »</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.getEmojiKeywordsLanguages">messages.getEmojiKeywordsLanguages</a></td>
<td>Obtain a list of related languages that must be used when fetching <a href="/api/custom-emoji#emoji-keywords">emoji keyword lists »</a>.<br><br>Usually the method will return the passed language codes (if localized) + <code>en</code> + some language codes for similar languages (if applicable).</td>
</tr>
<tr>
<td><a href="/method/messages.getEmojiURL">messages.getEmojiURL</a></td>
<td>Returns an HTTP URL which can be used to automatically log in into translation platform and suggest new <a href="/api/custom-emoji#emoji-keywords">emoji keywords »</a>. The URL will be valid for 30 seconds after generation.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-emoji-statuses" id="working-with-emoji-statuses" name="working-with-emoji-statuses"><i class="anchor-icon"></i></a>Working with <a href="/api/emoji-status">emoji statuses</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.updateEmojiStatus">account.updateEmojiStatus</a></td>
<td>Set an <a href="/api/emoji-status">emoji status</a></td>
</tr>
<tr>
<td><a href="/method/channels.updateEmojiStatus">channels.updateEmojiStatus</a></td>
<td>Set an <a href="/api/emoji-status">emoji status</a> for a channel.</td>
</tr>
<tr>
<td><a href="/method/account.getDefaultEmojiStatuses">account.getDefaultEmojiStatuses</a></td>
<td>Get a list of default suggested <a href="/api/emoji-status">emoji statuses</a></td>
</tr>
<tr>
<td><a href="/method/account.getChannelDefaultEmojiStatuses">account.getChannelDefaultEmojiStatuses</a></td>
<td>Get a list of default suggested <a href="/api/emoji-status">channel emoji statuses</a>.</td>
</tr>
<tr>
<td><a href="/method/account.getChannelRestrictedStatusEmojis">account.getChannelRestrictedStatusEmojis</a></td>
<td>Returns fetch the full list of <a href="/api/custom-emoji">custom emoji IDs »</a> that cannot be used in <a href="/api/emoji-status">channel emoji statuses »</a>.</td>
</tr>
<tr>
<td><a href="/method/account.getRecentEmojiStatuses">account.getRecentEmojiStatuses</a></td>
<td>Get recently used <a href="/api/emoji-status">emoji statuses</a></td>
</tr>
<tr>
<td><a href="/method/account.clearRecentEmojiStatuses">account.clearRecentEmojiStatuses</a></td>
<td>Clears list of recently used <a href="/api/emoji-status">emoji statuses</a></td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-files" id="working-with-files" name="working-with-files"><i class="anchor-icon"></i></a>Working with <a href="/api/files">files</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/help.getCdnConfig">help.getCdnConfig</a></td>
<td>Get configuration for <a href="/cdn">CDN</a> file downloads.</td>
</tr>
<tr>
<td><a href="/method/upload.getCdnFile">upload.getCdnFile</a></td>
<td>Download a <a href="/cdn">CDN</a> file.</td>
</tr>
<tr>
<td><a href="/method/upload.getCdnFileHashes">upload.getCdnFileHashes</a></td>
<td>Get SHA256 hashes for verifying downloaded <a href="/cdn">CDN</a> files</td>
</tr>
<tr>
<td><a href="/method/upload.reuploadCdnFile">upload.reuploadCdnFile</a></td>
<td>Request a reupload of a certain file to a <a href="/cdn">CDN DC</a>.</td>
</tr>
<tr>
<td><a href="/method/upload.getFile">upload.getFile</a></td>
<td>Returns content of a whole file or its part.</td>
</tr>
<tr>
<td><a href="/method/upload.getFileHashes">upload.getFileHashes</a></td>
<td>Get SHA256 hashes for verifying downloaded files</td>
</tr>
<tr>
<td><a href="/method/upload.getWebFile">upload.getWebFile</a></td>
<td>Returns content of a web file, by proxying the request through telegram, see the <a href="/api/files#downloading-webfiles">webfile docs for more info</a>.<br><br><strong>Note</strong>: the query must be sent to the DC specified in the <code>webfile_dc_id</code> <a href="/api/config#mtproto-configuration">MTProto configuration field</a>.</td>
</tr>
<tr>
<td><a href="/method/upload.saveBigFilePart">upload.saveBigFilePart</a></td>
<td>Saves a part of a large file (over 10 MB in size) to be later passed to one of the methods.</td>
</tr>
<tr>
<td><a href="/method/upload.saveFilePart">upload.saveFilePart</a></td>
<td>Saves a part of file for further sending to one of the methods.</td>
</tr>
<tr>
<td><a href="/method/messages.uploadEncryptedFile">messages.uploadEncryptedFile</a></td>
<td>Upload encrypted file and associate it to a secret chat</td>
</tr>
<tr>
<td><a href="/method/messages.uploadMedia">messages.uploadMedia</a></td>
<td>Upload a file and associate it to a chat (without actually sending it to the chat)</td>
</tr>
<tr>
<td><a href="/method/messages.getExtendedMedia">messages.getExtendedMedia</a></td>
<td>Get information about extended media</td>
</tr>
<tr>
<td><a href="/method/messages.getDocumentByHash">messages.getDocumentByHash</a></td>
<td>Get a document by its SHA256 hash, mainly used for gifs</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-forums" id="working-with-forums" name="working-with-forums"><i class="anchor-icon"></i></a>Working with <a href="/api/forum">forums</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/channels.toggleForum">channels.toggleForum</a></td>
<td>Enable or disable <a href="/api/forum">forum functionality</a> in a supergroup.</td>
</tr>
<tr>
<td><a href="/method/channels.createForumTopic">channels.createForumTopic</a></td>
<td>Create a <a href="/api/forum">forum topic</a>; requires <a href="/api/rights"><code>manage_topics</code> rights</a>.</td>
</tr>
<tr>
<td><a href="/method/channels.getForumTopics">channels.getForumTopics</a></td>
<td>Get <a href="/api/forum">topics of a forum</a></td>
</tr>
<tr>
<td><a href="/method/channels.getForumTopicsByID">channels.getForumTopicsByID</a></td>
<td>Get forum topics by their ID</td>
</tr>
<tr>
<td><a href="/method/channels.editForumTopic">channels.editForumTopic</a></td>
<td>Edit <a href="/api/forum">forum topic</a>; requires <a href="/api/rights"><code>manage_topics</code> rights</a>.</td>
</tr>
<tr>
<td><a href="/method/channels.updatePinnedForumTopic">channels.updatePinnedForumTopic</a></td>
<td>Pin or unpin <a href="/api/forum">forum topics</a></td>
</tr>
<tr>
<td><a href="/method/channels.reorderPinnedForumTopics">channels.reorderPinnedForumTopics</a></td>
<td>Reorder pinned forum topics</td>
</tr>
<tr>
<td><a href="/method/channels.deleteTopicHistory">channels.deleteTopicHistory</a></td>
<td>Delete message history of a <a href="/api/forum">forum topic</a></td>
</tr>
<tr>
<td><a href="/method/channels.toggleViewForumAsMessages">channels.toggleViewForumAsMessages</a></td>
<td>Users may also choose to display messages from all topics of a <a href="/api/forum">forum</a> as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method.<br><br>Invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a> and emit an <a href="/constructor/updateChannelViewForumAsMessages">updateChannelViewForumAsMessages</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-fragmentcom-usernames" id="working-with-fragmentcom-usernames" name="working-with-fragmentcom-usernames"><i class="anchor-icon"></i></a>Working with <a href="/api/fragment">fragment.com usernames</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.reorderUsernames">account.reorderUsernames</a></td>
<td>Reorder usernames associated with the currently logged-in user.</td>
</tr>
<tr>
<td><a href="/method/account.toggleUsername">account.toggleUsername</a></td>
<td>Activate or deactivate a purchased <a href="https://fragment.com">fragment.com</a> username associated to the currently logged-in user.</td>
</tr>
<tr>
<td><a href="/method/bots.reorderUsernames">bots.reorderUsernames</a></td>
<td>Reorder usernames associated to a bot we own.</td>
</tr>
<tr>
<td><a href="/method/bots.toggleUsername">bots.toggleUsername</a></td>
<td>Activate or deactivate a purchased <a href="https://fragment.com">fragment.com</a> username associated to a bot we own.</td>
</tr>
<tr>
<td><a href="/method/channels.reorderUsernames">channels.reorderUsernames</a></td>
<td>Reorder active usernames</td>
</tr>
<tr>
<td><a href="/method/channels.toggleUsername">channels.toggleUsername</a></td>
<td>Activate or deactivate a purchased <a href="https://fragment.com">fragment.com</a> username associated to a <a href="/api/channel">supergroup or channel</a> we own.</td>
</tr>
<tr>
<td><a href="/method/channels.deactivateAllUsernames">channels.deactivateAllUsernames</a></td>
<td>Disable all purchased usernames of a supergroup or channel</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-gift-codes" id="working-with-gift-codes" name="working-with-gift-codes"><i class="anchor-icon"></i></a>Working with <a href="/api/links#premium-giftcode-links">gift codes</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/payments.checkGiftCode">payments.checkGiftCode</a></td>
<td>Obtain information about a <a href="/api/giveaways">Telegram Premium giftcode »</a></td>
</tr>
<tr>
<td><a href="/method/payments.applyGiftCode">payments.applyGiftCode</a></td>
<td>Apply a <a href="/api/giveaways">Telegram Premium giftcode »</a></td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-giveaways-amp-gifts" id="working-with-giveaways-amp-gifts" name="working-with-giveaways-amp-gifts"><i class="anchor-icon"></i></a>Working with <a href="/api/giveaways">giveaways &amp; gifts</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/payments.getPremiumGiftCodeOptions">payments.getPremiumGiftCodeOptions</a></td>
<td>Obtain a list of Telegram Premium <a href="/api/giveaways">giveaway/gift code »</a> options.</td>
</tr>
<tr>
<td><a href="/method/payments.getGiveawayInfo">payments.getGiveawayInfo</a></td>
<td>Obtain information about a <a href="/api/giveaways">Telegram Premium giveaway »</a>.</td>
</tr>
<tr>
<td><a href="/method/payments.launchPrepaidGiveaway">payments.launchPrepaidGiveaway</a></td>
<td>Launch a <a href="/api/giveaways">prepaid giveaway »</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-instant-view-pages" id="working-with-instant-view-pages" name="working-with-instant-view-pages"><i class="anchor-icon"></i></a>Working with <a href="https://instantview.telegram.org">instant view pages</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.getWebPage">messages.getWebPage</a></td>
<td>Get <a href="https://instantview.telegram.org">instant view</a> page</td>
</tr>
<tr>
<td><a href="/method/messages.getWebPagePreview">messages.getWebPagePreview</a></td>
<td>Get preview of webpage</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-message-reactions" id="working-with-message-reactions" name="working-with-message-reactions"><i class="anchor-icon"></i></a>Working with <a href="/api/reactions">message reactions</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.setDefaultReaction">messages.setDefaultReaction</a></td>
<td>Change default emoji reaction to use in the quick reaction menu: the value is synced across devices and can be fetched using <a href="/method/help.getConfig">help.getConfig, <code>reactions_default</code> field</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.getMessagesReactions">messages.getMessagesReactions</a></td>
<td>Get <a href="/api/reactions">message reactions »</a></td>
</tr>
<tr>
<td><a href="/method/messages.sendReaction">messages.sendReaction</a></td>
<td>React to message.<br><br>Starting from layer 159, the reaction will be sent from the peer specified using <a href="/method/messages.saveDefaultSendAs">messages.saveDefaultSendAs</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.getAvailableReactions">messages.getAvailableReactions</a></td>
<td>Obtain available <a href="/api/reactions">message reactions »</a></td>
</tr>
<tr>
<td><a href="/method/messages.getUnreadReactions">messages.getUnreadReactions</a></td>
<td>Get unread reactions to messages you sent</td>
</tr>
<tr>
<td><a href="/method/messages.readReactions">messages.readReactions</a></td>
<td>Mark <a href="/api/reactions">message reactions »</a> as read</td>
</tr>
<tr>
<td><a href="/method/messages.setChatAvailableReactions">messages.setChatAvailableReactions</a></td>
<td>Change the set of <a href="/api/reactions">message reactions »</a> that can be used in a certain group, supergroup or channel</td>
</tr>
<tr>
<td><a href="/method/messages.getMessageReactionsList">messages.getMessageReactionsList</a></td>
<td>Get <a href="/api/reactions">message reaction</a> list, along with the sender of each reaction.</td>
</tr>
<tr>
<td><a href="/method/messages.reportReaction">messages.reportReaction</a></td>
<td>Report a <a href="/api/reactions">message reaction</a></td>
</tr>
<tr>
<td><a href="/method/messages.getTopReactions">messages.getTopReactions</a></td>
<td>Got popular <a href="/api/reactions">message reactions</a></td>
</tr>
<tr>
<td><a href="/method/messages.getRecentReactions">messages.getRecentReactions</a></td>
<td>Get recently used <a href="/api/reactions">message reactions</a></td>
</tr>
<tr>
<td><a href="/method/messages.clearRecentReactions">messages.clearRecentReactions</a></td>
<td>Clear recently used <a href="/api/reactions">message reactions</a></td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-message-translation" id="working-with-message-translation" name="working-with-message-translation"><i class="anchor-icon"></i></a>Working with <a href="/api/translation">message translation</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.translateText">messages.translateText</a></td>
<td>Translate a given text.<br><br><a href="/api/entities">Styled text entities</a> will only be preserved for <a href="/api/premium">Telegram Premium</a> users.</td>
</tr>
<tr>
<td><a href="/method/messages.togglePeerTranslations">messages.togglePeerTranslations</a></td>
<td>Show or hide the <a href="/api/translation">real-time chat translation popup</a> for a certain chat</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-mini-bot-apps-" id="working-with-mini-bot-apps-" name="working-with-mini-bot-apps-"><i class="anchor-icon"></i></a>Working with <a href="/bots/webapps">mini bot apps »</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.requestWebView">messages.requestWebView</a></td>
<td>Open a <a href="/bots/webapps">bot mini app</a>, sending over user information after user confirmation.<br><br>After calling this method, until the user closes the webview, <a href="/method/messages.prolongWebView">messages.prolongWebView</a> must be called every 60 seconds.</td>
</tr>
<tr>
<td><a href="/method/messages.prolongWebView">messages.prolongWebView</a></td>
<td>Indicate to the server (from the user side) that the user is still using a web app.<br><br>If the method returns a <code>QUERY_ID_INVALID</code> error, the webview must be closed.</td>
</tr>
<tr>
<td><a href="/method/messages.requestSimpleWebView">messages.requestSimpleWebView</a></td>
<td>Open a <a href="/api/bots/webapps">bot mini app</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.sendWebViewResultMessage">messages.sendWebViewResultMessage</a></td>
<td>Terminate webview interaction started with <a href="/method/messages.requestWebView">messages.requestWebView</a>, sending the specified message to the chat on behalf of the user.</td>
</tr>
<tr>
<td><a href="/method/messages.sendWebViewData">messages.sendWebViewData</a></td>
<td>Used by the user to relay data from an opened <a href="/api/bots/webapps">reply keyboard bot mini app</a> to the bot that owns it.</td>
</tr>
<tr>
<td><a href="/method/messages.requestAppWebView">messages.requestAppWebView</a></td>
<td>Open a <a href="/bots/webapps">bot mini app</a> from a <a href="/api/links#direct-mini-app-links">direct Mini App deep link</a>, sending over user information after user confirmation.<br><br>After calling this method, until the user closes the webview, <a href="/method/messages.prolongWebView">messages.prolongWebView</a> must be called every 60 seconds.</td>
</tr>
<tr>
<td><a href="/method/messages.getBotApp">messages.getBotApp</a></td>
<td>Obtain information about a <a href="/api/bots/webapps#direct-link-mini-apps">direct link Mini App</a></td>
</tr>
<tr>
<td><a href="/method/bots.canSendMessage">bots.canSendMessage</a></td>
<td>Check whether the specified bot can send us messages</td>
</tr>
<tr>
<td><a href="/method/bots.allowSendMessage">bots.allowSendMessage</a></td>
<td>Allow the specified bot to send us messages</td>
</tr>
<tr>
<td><a href="/method/bots.invokeWebViewCustomMethod">bots.invokeWebViewCustomMethod</a></td>
<td>Send a custom request from a <a href="/api/bots/webapps">mini bot app</a>, triggered by a <a href="/api/web-events#web-app-invoke-custom-method">web_app_invoke_custom_method event »</a>.<br><br>The response should be sent using a <a href="/api/bots/webapps#custom-method-invoked">custom_method_invoked</a> event, <a href="/api/web-events#web-app-invoke-custom-method">see here »</a> for more info on the flow.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-saved-message-dialogs-" id="working-with-saved-message-dialogs-" name="working-with-saved-message-dialogs-"><i class="anchor-icon"></i></a>Working with <a href="/api/saved-messages">saved message dialogs »</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.getSavedDialogs">messages.getSavedDialogs</a></td>
<td>Returns the current saved dialog list, see <a href="/api/saved-messages">here »</a> for more info.</td>
</tr>
<tr>
<td><a href="/method/messages.getSavedHistory">messages.getSavedHistory</a></td>
<td>Returns <a href="/api/saved-messages">saved messages »</a> forwarded from a specific peer</td>
</tr>
<tr>
<td><a href="/method/messages.deleteSavedHistory">messages.deleteSavedHistory</a></td>
<td>Deletes messages forwarded from a specific peer to <a href="/api/saved-messages">saved messages »</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.getPinnedSavedDialogs">messages.getPinnedSavedDialogs</a></td>
<td>Get pinned <a href="/api/saved-messages">saved dialogs, see here »</a> for more info.</td>
</tr>
<tr>
<td><a href="/method/messages.toggleSavedDialogPin">messages.toggleSavedDialogPin</a></td>
<td>Pin or unpin a <a href="/api/saved-messages">saved message dialog »</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.reorderPinnedSavedDialogs">messages.reorderPinnedSavedDialogs</a></td>
<td>Reorder pinned <a href="/api/saved-messages">saved message dialogs »</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-secret-chats" id="working-with-secret-chats" name="working-with-secret-chats"><i class="anchor-icon"></i></a>Working with <a href="/api/end-to-end">secret chats</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.setEncryptedTyping">messages.setEncryptedTyping</a></td>
<td>Send typing event by the current user to a secret chat.</td>
</tr>
<tr>
<td><a href="/method/messages.readEncryptedHistory">messages.readEncryptedHistory</a></td>
<td>Marks message history within a secret chat as read.</td>
</tr>
<tr>
<td><a href="/method/messages.acceptEncryption">messages.acceptEncryption</a></td>
<td>Confirms creation of a secret chat</td>
</tr>
<tr>
<td><a href="/method/messages.discardEncryption">messages.discardEncryption</a></td>
<td>Cancels a request for creation and/or delete info on secret chat.</td>
</tr>
<tr>
<td><a href="/method/messages.requestEncryption">messages.requestEncryption</a></td>
<td>Sends a request to start a secret chat to the user.</td>
</tr>
<tr>
<td><a href="/method/messages.sendEncrypted">messages.sendEncrypted</a></td>
<td>Sends a text message to a secret chat.</td>
</tr>
<tr>
<td><a href="/method/messages.sendEncryptedFile">messages.sendEncryptedFile</a></td>
<td>Sends a message with a file attachment to a secret chat</td>
</tr>
<tr>
<td><a href="/method/messages.sendEncryptedService">messages.sendEncryptedService</a></td>
<td>Sends a service message to a secret chat.</td>
</tr>
<tr>
<td><a href="/method/messages.getDhConfig">messages.getDhConfig</a></td>
<td>Returns configuration parameters for Diffie-Hellman key generation. Can also return a random sequence of bytes of required length.</td>
</tr>
<tr>
<td><a href="/method/messages.receivedQueue">messages.receivedQueue</a></td>
<td>Confirms receipt of messages in a secret chat by client, cancels push notifications. <br>The method returns a list of <strong>random_id</strong>s of messages for which push notifications were cancelled.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-statistics" id="working-with-statistics" name="working-with-statistics"><i class="anchor-icon"></i></a>Working with <a href="/api/stats">statistics</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/stats.loadAsyncGraph">stats.loadAsyncGraph</a></td>
<td>Load <a href="/api/stats">channel statistics graph</a> asynchronously</td>
</tr>
<tr>
<td><a href="/method/stats.getBroadcastStats">stats.getBroadcastStats</a></td>
<td>Get <a href="/api/stats">channel statistics</a></td>
</tr>
<tr>
<td><a href="/method/stats.getMessagePublicForwards">stats.getMessagePublicForwards</a></td>
<td>Obtains a list of messages, indicating to which other public channels was a channel message forwarded. <br>Will return a list of <a href="/constructor/message">messages</a> with <code>peer_id</code> equal to the public channel to which this message was forwarded.</td>
</tr>
<tr>
<td><a href="/method/stats.getMegagroupStats">stats.getMegagroupStats</a></td>
<td>Get <a href="/api/stats">supergroup statistics</a></td>
</tr>
<tr>
<td><a href="/method/stats.getMessageStats">stats.getMessageStats</a></td>
<td>Get <a href="/api/stats">message statistics</a></td>
</tr>
<tr>
<td><a href="/method/stats.getStoryStats">stats.getStoryStats</a></td>
<td>Get <a href="/api/stats">statistics</a> for a certain <a href="/api/stories">story</a>.</td>
</tr>
<tr>
<td><a href="/method/stats.getStoryPublicForwards">stats.getStoryPublicForwards</a></td>
<td>Obtain forwards of a <a href="/api/stories">story</a> as a message to public chats and reposts by public channels.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-stickers-" id="working-with-stickers-" name="working-with-stickers-"><i class="anchor-icon"></i></a>Working with <a href="/api/stickers">stickers »</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.getOldFeaturedStickers">messages.getOldFeaturedStickers</a></td>
<td>Method for fetching previously featured stickers</td>
</tr>
<tr>
<td><a href="/method/messages.toggleStickerSets">messages.toggleStickerSets</a></td>
<td>Apply changes to multiple stickersets</td>
</tr>
<tr>
<td><a href="/method/stickers.suggestShortName">stickers.suggestShortName</a></td>
<td>Suggests a short name for a given stickerpack name</td>
</tr>
<tr>
<td><a href="/method/stickers.checkShortName">stickers.checkShortName</a></td>
<td>Check whether the given short name is available</td>
</tr>
<tr>
<td><a href="/method/stickers.setStickerSetThumb">stickers.setStickerSetThumb</a></td>
<td>Set stickerset thumbnail</td>
</tr>
<tr>
<td><a href="/method/stickers.addStickerToSet">stickers.addStickerToSet</a></td>
<td>Add a sticker to a stickerset, bots only. The sticker set must have been created by the bot.</td>
</tr>
<tr>
<td><a href="/method/stickers.changeStickerPosition">stickers.changeStickerPosition</a></td>
<td>Changes the absolute position of a sticker in the set to which it belongs; for bots only. The sticker set must have been created by the bot</td>
</tr>
<tr>
<td><a href="/method/stickers.createStickerSet">stickers.createStickerSet</a></td>
<td>Create a stickerset, bots only.</td>
</tr>
<tr>
<td><a href="/method/stickers.changeSticker">stickers.changeSticker</a></td>
<td>Update the keywords, emojis or <a href="/api/stickers#mask-stickers">mask coordinates</a> of a sticker, bots only.</td>
</tr>
<tr>
<td><a href="/method/stickers.renameStickerSet">stickers.renameStickerSet</a></td>
<td>Renames a stickerset, bots only.</td>
</tr>
<tr>
<td><a href="/method/stickers.deleteStickerSet">stickers.deleteStickerSet</a></td>
<td>Deletes a stickerset we created, bots only.</td>
</tr>
<tr>
<td><a href="/method/stickers.removeStickerFromSet">stickers.removeStickerFromSet</a></td>
<td>Remove a sticker from the set where it belongs, bots only. The sticker set must have been created by the bot.</td>
</tr>
<tr>
<td><a href="/method/messages.clearRecentStickers">messages.clearRecentStickers</a></td>
<td>Clear recent stickers</td>
</tr>
<tr>
<td><a href="/method/messages.faveSticker">messages.faveSticker</a></td>
<td>Mark or unmark a sticker as favorite</td>
</tr>
<tr>
<td><a href="/method/messages.getAllStickers">messages.getAllStickers</a></td>
<td>Get all installed stickers</td>
</tr>
<tr>
<td><a href="/method/messages.getArchivedStickers">messages.getArchivedStickers</a></td>
<td>Get all archived stickers</td>
</tr>
<tr>
<td><a href="/method/messages.getAttachedStickers">messages.getAttachedStickers</a></td>
<td>Get stickers attached to a photo or video</td>
</tr>
<tr>
<td><a href="/method/messages.getFavedStickers">messages.getFavedStickers</a></td>
<td>Get faved stickers</td>
</tr>
<tr>
<td><a href="/method/messages.getFeaturedStickers">messages.getFeaturedStickers</a></td>
<td>Get featured stickers</td>
</tr>
<tr>
<td><a href="/method/messages.getMaskStickers">messages.getMaskStickers</a></td>
<td>Get installed mask stickers</td>
</tr>
<tr>
<td><a href="/method/messages.getRecentStickers">messages.getRecentStickers</a></td>
<td>Get recent stickers</td>
</tr>
<tr>
<td><a href="/method/messages.getStickerSet">messages.getStickerSet</a></td>
<td>Get info about a stickerset</td>
</tr>
<tr>
<td><a href="/method/messages.getStickers">messages.getStickers</a></td>
<td>Get stickers by emoji</td>
</tr>
<tr>
<td><a href="/method/messages.saveRecentSticker">messages.saveRecentSticker</a></td>
<td>Add/remove sticker from recent stickers list</td>
</tr>
<tr>
<td><a href="/method/messages.installStickerSet">messages.installStickerSet</a></td>
<td>Install a stickerset</td>
</tr>
<tr>
<td><a href="/method/messages.readFeaturedStickers">messages.readFeaturedStickers</a></td>
<td>Mark new featured stickers as read</td>
</tr>
<tr>
<td><a href="/method/messages.reorderStickerSets">messages.reorderStickerSets</a></td>
<td>Reorder installed stickersets</td>
</tr>
<tr>
<td><a href="/method/messages.searchStickerSets">messages.searchStickerSets</a></td>
<td>Search for stickersets</td>
</tr>
<tr>
<td><a href="/method/messages.searchEmojiStickerSets">messages.searchEmojiStickerSets</a></td>
<td>Search for <a href="/api/custom-emoji">custom emoji stickersets »</a></td>
</tr>
<tr>
<td><a href="/method/messages.uninstallStickerSet">messages.uninstallStickerSet</a></td>
<td>Uninstall a stickerset</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-stories" id="working-with-stories" name="working-with-stories"><i class="anchor-icon"></i></a>Working with <a href="/api/stories">stories</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/stories.canSendStory">stories.canSendStory</a></td>
<td>Check whether we can post stories as the specified peer.</td>
</tr>
<tr>
<td><a href="/method/stories.sendStory">stories.sendStory</a></td>
<td>Uploads a <a href="/api/stories">Telegram Story</a>.</td>
</tr>
<tr>
<td><a href="/method/stories.editStory">stories.editStory</a></td>
<td>Edit an uploaded <a href="/api/stories">story</a></td>
</tr>
<tr>
<td><a href="/method/stories.deleteStories">stories.deleteStories</a></td>
<td>Deletes some posted <a href="/api/stories">stories</a>.</td>
</tr>
<tr>
<td><a href="/method/stories.togglePinned">stories.togglePinned</a></td>
<td>Pin or unpin one or more stories</td>
</tr>
<tr>
<td><a href="/method/stories.getAllStories">stories.getAllStories</a></td>
<td>Fetch the List of active (or active and hidden) stories, see <a href="/api/stories#watching-stories">here »</a> for more info on watching stories.</td>
</tr>
<tr>
<td><a href="/method/stories.getPinnedStories">stories.getPinnedStories</a></td>
<td>Fetch the <a href="/api/stories#pinned-or-archived-stories">stories</a> pinned on a peer's profile.</td>
</tr>
<tr>
<td><a href="/method/stories.getStoriesArchive">stories.getStoriesArchive</a></td>
<td>Fetch the <a href="/api/stories#pinned-or-archived-stories">story archive »</a> of a peer we control.</td>
</tr>
<tr>
<td><a href="/method/stories.getStoriesByID">stories.getStoriesByID</a></td>
<td>Obtain full info about a set of <a href="/api/stories">stories</a> by their IDs.</td>
</tr>
<tr>
<td><a href="/method/stories.toggleAllStoriesHidden">stories.toggleAllStoriesHidden</a></td>
<td>Hide the active stories of a specific peer, preventing them from being displayed on the action bar on the homescreen.</td>
</tr>
<tr>
<td><a href="/method/stories.readStories">stories.readStories</a></td>
<td>Mark all stories up to a certain ID as read, for a given peer; will emit an <a href="/constructor/updateReadStories">updateReadStories</a> update to all logged-in sessions.</td>
</tr>
<tr>
<td><a href="/method/stories.incrementStoryViews">stories.incrementStoryViews</a></td>
<td>Increment the view counter of one or more stories.</td>
</tr>
<tr>
<td><a href="/method/stories.getStoryViewsList">stories.getStoryViewsList</a></td>
<td>Obtain the list of users that have viewed a specific <a href="/api/stories">story we posted</a></td>
</tr>
<tr>
<td><a href="/method/stories.getStoryReactionsList">stories.getStoryReactionsList</a></td>
<td>Get the <a href="/api/reactions">reaction</a> and interaction list of a <a href="/api/stories">story</a> posted to a channel, along with the sender of each reaction.<br><br>Can only be used by channel admins.</td>
</tr>
<tr>
<td><a href="/method/stories.getStoriesViews">stories.getStoriesViews</a></td>
<td>Obtain info about the view count, forward count, reactions and recent viewers of one or more <a href="/api/stories">stories</a>.</td>
</tr>
<tr>
<td><a href="/method/stories.exportStoryLink">stories.exportStoryLink</a></td>
<td>Generate a <a href="/api/links#story-links">story deep link</a> for a specific story</td>
</tr>
<tr>
<td><a href="/method/stories.report">stories.report</a></td>
<td>Report a story.</td>
</tr>
<tr>
<td><a href="/method/stories.activateStealthMode">stories.activateStealthMode</a></td>
<td>Activates <a href="/api/stories#stealth-mode">stories stealth mode</a>, see <a href="/api/stories#stealth-mode">here »</a> for more info.<br><br>Will return an <a href="/constructor/updateStoriesStealthMode">updateStoriesStealthMode</a>.</td>
</tr>
<tr>
<td><a href="/method/stories.getPeerStories">stories.getPeerStories</a></td>
<td>Fetch the full active <a href="/api/stories#watching-stories">story list</a> of a specific peer.</td>
</tr>
<tr>
<td><a href="/method/stories.getAllReadPeerStories">stories.getAllReadPeerStories</a></td>
<td>Obtain the latest read story ID for all peers when first logging in, returned as a list of <a href="/constructor/updateReadStories">updateReadStories</a> updates, see <a href="/api/stories#watching-stories">here »</a> for more info.</td>
</tr>
<tr>
<td><a href="/method/stories.getPeerMaxIDs">stories.getPeerMaxIDs</a></td>
<td>Get the IDs of the maximum read stories for a set of peers.</td>
</tr>
<tr>
<td><a href="/method/stories.getChatsToSend">stories.getChatsToSend</a></td>
<td>Obtain a list of channels where the user can post <a href="/api/stories">stories</a></td>
</tr>
<tr>
<td><a href="/method/stories.togglePeerStoriesHidden">stories.togglePeerStoriesHidden</a></td>
<td>Hide the active stories of a user, preventing them from being displayed on the action bar on the homescreen, see <a href="/api/stories#hiding-stories-of-other-users">here »</a> for more info.</td>
</tr>
<tr>
<td><a href="/method/stories.sendReaction">stories.sendReaction</a></td>
<td>React to a story.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-telegram-passport" id="working-with-telegram-passport" name="working-with-telegram-passport"><i class="anchor-icon"></i></a>Working with <a href="/passport">telegram passport</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.sendVerifyPhoneCode">account.sendVerifyPhoneCode</a></td>
<td>Send the verification phone code for telegram <a href="/passport">passport</a>.</td>
</tr>
<tr>
<td><a href="/method/account.verifyPhone">account.verifyPhone</a></td>
<td>Verify a phone number for telegram <a href="/passport">passport</a>.</td>
</tr>
<tr>
<td><a href="/method/account.acceptAuthorization">account.acceptAuthorization</a></td>
<td>Sends a Telegram Passport authorization form, effectively sharing data with the service</td>
</tr>
<tr>
<td><a href="/method/account.getAuthorizationForm">account.getAuthorizationForm</a></td>
<td>Returns a Telegram Passport authorization form for sharing data with a service</td>
</tr>
<tr>
<td><a href="/method/account.getAuthorizations">account.getAuthorizations</a></td>
<td>Get logged-in sessions</td>
</tr>
<tr>
<td><a href="/method/account.deleteSecureValue">account.deleteSecureValue</a></td>
<td>Delete stored <a href="/passport">Telegram Passport</a> documents, <a href="/passport/encryption#encryption">for more info see the passport docs »</a></td>
</tr>
<tr>
<td><a href="/method/account.getAllSecureValues">account.getAllSecureValues</a></td>
<td>Get all saved <a href="/passport">Telegram Passport</a> documents, <a href="/passport/encryption#encryption">for more info see the passport docs »</a></td>
</tr>
<tr>
<td><a href="/method/account.getSecureValue">account.getSecureValue</a></td>
<td>Get saved <a href="/passport">Telegram Passport</a> document, <a href="/passport/encryption#encryption">for more info see the passport docs »</a></td>
</tr>
<tr>
<td><a href="/method/account.saveSecureValue">account.saveSecureValue</a></td>
<td>Securely save <a href="/passport">Telegram Passport</a> document, <a href="/passport/encryption#encryption">for more info see the passport docs »</a></td>
</tr>
<tr>
<td><a href="/method/help.getPassportConfig">help.getPassportConfig</a></td>
<td>Get <a href="/passport">passport</a> configuration</td>
</tr>
<tr>
<td><a href="/method/users.setSecureValueErrors">users.setSecureValueErrors</a></td>
<td>Notify the user that the sent <a href="/passport">passport</a> data contains some errors The user will not be able to re-submit their Passport data to you until the errors are fixed (the contents of the field for which you returned the error must change).<br><br>Use this if the data submitted by the user doesn't satisfy the standards your service requires for any reason. For example, if a birthday date seems invalid, a submitted document is blurry, a scan shows evidence of tampering, etc. Supply some details in the error message to make sure the user knows how to correct the issues.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-temporary-profile-links" id="working-with-temporary-profile-links" name="working-with-temporary-profile-links"><i class="anchor-icon"></i></a>Working with <a href="/api/links#temporary-profile-links">temporary profile links</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/contacts.exportContactToken">contacts.exportContactToken</a></td>
<td>Generates a <a href="/api/links#temporary-profile-links">temporary profile link</a> for the currently logged-in user.</td>
</tr>
<tr>
<td><a href="/method/contacts.importContactToken">contacts.importContactToken</a></td>
<td>Obtain user info from a <a href="/api/links#temporary-profile-links">temporary profile link</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-updates" id="working-with-updates" name="working-with-updates"><i class="anchor-icon"></i></a>Working with <a href="/api/updates">updates</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/updates.getChannelDifference">updates.getChannelDifference</a></td>
<td>Returns the difference between the current state of updates of a certain channel and transmitted.</td>
</tr>
<tr>
<td><a href="/method/updates.getDifference">updates.getDifference</a></td>
<td>Get new <a href="/api/updates">updates</a>.</td>
</tr>
<tr>
<td><a href="/method/updates.getState">updates.getState</a></td>
<td>Returns a current state of updates.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-voice-message-transcription" id="working-with-voice-message-transcription" name="working-with-voice-message-transcription"><i class="anchor-icon"></i></a>Working with <a href="/api/transcribe">voice message transcription</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.transcribeAudio">messages.transcribeAudio</a></td>
<td><a href="/api/transcribe">Transcribe voice message</a></td>
</tr>
<tr>
<td><a href="/method/messages.rateTranscribedAudio">messages.rateTranscribedAudio</a></td>
<td>Rate <a href="/api/transcribe">transcribed voice message</a></td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-wallpapers-" id="working-with-wallpapers-" name="working-with-wallpapers-"><i class="anchor-icon"></i></a>Working with <a href="/api/wallpapers">wallpapers »</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.getMultiWallPapers">account.getMultiWallPapers</a></td>
<td>Get info about multiple <a href="/api/wallpapers">wallpapers</a></td>
</tr>
<tr>
<td><a href="/method/account.getWallPaper">account.getWallPaper</a></td>
<td>Get info about a certain <a href="/api/wallpapers">wallpaper</a></td>
</tr>
<tr>
<td><a href="/method/account.getWallPapers">account.getWallPapers</a></td>
<td>Returns a list of available <a href="/api/wallpapers">wallpapers</a>.</td>
</tr>
<tr>
<td><a href="/method/account.installWallPaper">account.installWallPaper</a></td>
<td>Install <a href="/api/wallpapers">wallpaper</a></td>
</tr>
<tr>
<td><a href="/method/account.resetWallPapers">account.resetWallPapers</a></td>
<td>Delete all installed <a href="/api/wallpapers">wallpapers</a>, reverting to the default wallpaper set.</td>
</tr>
<tr>
<td><a href="/method/account.saveWallPaper">account.saveWallPaper</a></td>
<td>Install/uninstall <a href="/api/wallpapers">wallpaper</a></td>
</tr>
<tr>
<td><a href="/method/account.uploadWallPaper">account.uploadWallPaper</a></td>
<td>Create and upload a new <a href="/api/wallpapers">wallpaper</a></td>
</tr>
<tr>
<td><a href="/method/messages.setChatWallPaper">messages.setChatWallPaper</a></td>
<td>Set a custom <a href="/api/wallpapers">wallpaper »</a> in a specific private chat with another user.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-bot-admin-right-suggestions" id="working-with-bot-admin-right-suggestions" name="working-with-bot-admin-right-suggestions"><i class="anchor-icon"></i></a>Working with bot admin right suggestions</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/bots.setBotBroadcastDefaultAdminRights">bots.setBotBroadcastDefaultAdminRights</a></td>
<td>Set the default <a href="/api/rights#suggested-bot-rights">suggested admin rights</a> for bots being added as admins to channels, see <a href="/api/rights#suggested-bot-rights">here for more info on how to handle them »</a>.</td>
</tr>
<tr>
<td><a href="/method/bots.setBotGroupDefaultAdminRights">bots.setBotGroupDefaultAdminRights</a></td>
<td>Set the default <a href="/api/rights#suggested-bot-rights">suggested admin rights</a> for bots being added as admins to groups, see <a href="/api/rights#suggested-bot-rights">here for more info on how to handle them »</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-bot-inline-queries-and-callback-buttons" id="working-with-bot-inline-queries-and-callback-buttons" name="working-with-bot-inline-queries-and-callback-buttons"><i class="anchor-icon"></i></a>Working with bot inline queries and callback buttons</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.getInlineBotResults">messages.getInlineBotResults</a></td>
<td>Query an inline bot</td>
</tr>
<tr>
<td><a href="/method/messages.setInlineBotResults">messages.setInlineBotResults</a></td>
<td>Answer an inline query, for bots only</td>
</tr>
<tr>
<td><a href="/method/messages.sendInlineBotResult">messages.sendInlineBotResult</a></td>
<td>Send a result obtained using <a href="/method/messages.getInlineBotResults">messages.getInlineBotResults</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.getBotCallbackAnswer">messages.getBotCallbackAnswer</a></td>
<td>Press an inline callback button and get a callback answer from the bot</td>
</tr>
<tr>
<td><a href="/method/messages.setBotCallbackAnswer">messages.setBotCallbackAnswer</a></td>
<td>Set the callback answer to a user button press (bots only)</td>
</tr>
<tr>
<td><a href="/method/messages.editInlineBotMessage">messages.editInlineBotMessage</a></td>
<td>Edit an inline bot message</td>
</tr>
<tr>
<td><a href="/method/messages.sendBotRequestedPeer">messages.sendBotRequestedPeer</a></td>
<td>Send one or more chosen peers, as requested by a <a href="/constructor/keyboardButtonRequestPeer">keyboardButtonRequestPeer</a> button.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-bots" id="working-with-bots" name="working-with-bots"><i class="anchor-icon"></i></a>Working with bots</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/bots.resetBotCommands">bots.resetBotCommands</a></td>
<td>Clear bot commands for the specified bot scope and language code</td>
</tr>
<tr>
<td><a href="/method/bots.getBotCommands">bots.getBotCommands</a></td>
<td>Obtain a list of bot commands for the specified bot scope and language code</td>
</tr>
<tr>
<td><a href="/method/bots.setBotCommands">bots.setBotCommands</a></td>
<td>Set bot command list</td>
</tr>
<tr>
<td><a href="/method/bots.setBotInfo">bots.setBotInfo</a></td>
<td>Set localized name, about text and description of a bot (or of the current account, if called by a bot).</td>
</tr>
<tr>
<td><a href="/method/bots.getBotInfo">bots.getBotInfo</a></td>
<td>Get localized name, about text and description of a bot (or of the current account, if called by a bot).</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-bots-internal-bot-api-use" id="working-with-bots-internal-bot-api-use" name="working-with-bots-internal-bot-api-use"><i class="anchor-icon"></i></a>Working with bots (internal bot API use)</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/bots.answerWebhookJSONQuery">bots.answerWebhookJSONQuery</a></td>
<td>Answers a custom query; for bots only</td>
</tr>
<tr>
<td><a href="/method/bots.sendCustomRequest">bots.sendCustomRequest</a></td>
<td>Sends a custom request; for bots only</td>
</tr>
<tr>
<td><a href="/method/help.setBotUpdatesStatus">help.setBotUpdatesStatus</a></td>
<td>Informs the server about the number of pending bot updates if they haven't been processed for a long time; for bots only</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-contacts-and-top-peers" id="working-with-contacts-and-top-peers" name="working-with-contacts-and-top-peers"><i class="anchor-icon"></i></a>Working with contacts and <a href="/api/top-rating">top peers</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.getContactSignUpNotification">account.getContactSignUpNotification</a></td>
<td>Whether the user will receive notifications when contacts sign up</td>
</tr>
<tr>
<td><a href="/method/account.setContactSignUpNotification">account.setContactSignUpNotification</a></td>
<td>Toggle contact sign up notifications</td>
</tr>
<tr>
<td><a href="/method/contacts.acceptContact">contacts.acceptContact</a></td>
<td>If the <a href="/api/action-bar#add-contact">add contact action bar is active</a>, add that user as contact</td>
</tr>
<tr>
<td><a href="/method/contacts.addContact">contacts.addContact</a></td>
<td>Add an existing telegram user as contact.<br><br>Use <a href="/method/contacts.importContacts">contacts.importContacts</a> to add contacts by phone number, without knowing their Telegram ID.</td>
</tr>
<tr>
<td><a href="/method/contacts.block">contacts.block</a></td>
<td>Adds a peer to a blocklist, see <a href="/api/block">here »</a> for more info.</td>
</tr>
<tr>
<td><a href="/method/contacts.deleteByPhones">contacts.deleteByPhones</a></td>
<td>Delete contacts by phone number</td>
</tr>
<tr>
<td><a href="/method/contacts.deleteContacts">contacts.deleteContacts</a></td>
<td>Deletes several contacts from the list.</td>
</tr>
<tr>
<td><a href="/method/contacts.getBlocked">contacts.getBlocked</a></td>
<td>Returns the list of blocked users.</td>
</tr>
<tr>
<td><a href="/method/contacts.getContactIDs">contacts.getContactIDs</a></td>
<td>Get the telegram IDs of all contacts. <br>Returns an array of Telegram user IDs for all contacts (0 if a contact does not have an associated Telegram account or have hidden their account using privacy settings).</td>
</tr>
<tr>
<td><a href="/method/contacts.getContacts">contacts.getContacts</a></td>
<td>Returns the current user's contact list.</td>
</tr>
<tr>
<td><a href="/method/contacts.getLocated">contacts.getLocated</a></td>
<td>Get users and geochats near you, see <a href="/api/nearby">here »</a> for more info.</td>
</tr>
<tr>
<td><a href="/method/contacts.getSaved">contacts.getSaved</a></td>
<td>Get all contacts, requires a <a href="/api/takeout">takeout session, see here » for more info</a>.</td>
</tr>
<tr>
<td><a href="/method/contacts.getStatuses">contacts.getStatuses</a></td>
<td>Use this method to obtain the online statuses of all contacts with an accessible Telegram account.</td>
</tr>
<tr>
<td><a href="/method/contacts.getTopPeers">contacts.getTopPeers</a></td>
<td>Get most used peers</td>
</tr>
<tr>
<td><a href="/method/contacts.importContacts">contacts.importContacts</a></td>
<td>Imports contacts: saves a full list on the server, adds already registered contacts to the contact list, returns added contacts and their info.<br><br>Use <a href="/method/contacts.addContact">contacts.addContact</a> to add Telegram contacts without actually using their phone number.</td>
</tr>
<tr>
<td><a href="/method/contacts.resetSaved">contacts.resetSaved</a></td>
<td>Removes all contacts without an associated Telegram account.</td>
</tr>
<tr>
<td><a href="/method/contacts.resetTopPeerRating">contacts.resetTopPeerRating</a></td>
<td>Reset <a href="/api/top-rating">rating</a> of top peer</td>
</tr>
<tr>
<td><a href="/method/contacts.search">contacts.search</a></td>
<td>Returns users found by username substring.</td>
</tr>
<tr>
<td><a href="/method/contacts.toggleTopPeers">contacts.toggleTopPeers</a></td>
<td>Enable/disable <a href="/api/top-rating">top peers</a></td>
</tr>
<tr>
<td><a href="/method/contacts.unblock">contacts.unblock</a></td>
<td>Deletes a peer from a blocklist, see <a href="/api/block">here »</a> for more info.</td>
</tr>
<tr>
<td><a href="/method/contacts.setBlocked">contacts.setBlocked</a></td>
<td>Replace the contents of an entire <a href="/api/block">blocklist, see here for more info »</a>.</td>
</tr>
<tr>
<td><a href="/method/contacts.editCloseFriends">contacts.editCloseFriends</a></td>
<td>Edit the <a href="/api/privacy">close friends list, see here »</a> for more info.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-credit-cards" id="working-with-credit-cards" name="working-with-credit-cards"><i class="anchor-icon"></i></a>Working with credit cards</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/payments.getBankCardData">payments.getBankCardData</a></td>
<td>Get info about a credit card</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-dialogs" id="working-with-dialogs" name="working-with-dialogs"><i class="anchor-icon"></i></a>Working with dialogs</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.getDialogs">messages.getDialogs</a></td>
<td>Returns the current user dialog list.</td>
</tr>
<tr>
<td><a href="/method/messages.getPeerDialogs">messages.getPeerDialogs</a></td>
<td>Get dialog info of specified peers</td>
</tr>
<tr>
<td><a href="/method/messages.getPinnedDialogs">messages.getPinnedDialogs</a></td>
<td>Get pinned dialogs</td>
</tr>
<tr>
<td><a href="/method/messages.toggleDialogPin">messages.toggleDialogPin</a></td>
<td>Pin/unpin a dialog</td>
</tr>
<tr>
<td><a href="/method/messages.reorderPinnedDialogs">messages.reorderPinnedDialogs</a></td>
<td>Reorder pinned dialogs</td>
</tr>
<tr>
<td><a href="/method/messages.getDialogUnreadMarks">messages.getDialogUnreadMarks</a></td>
<td>Get dialogs manually marked as unread</td>
</tr>
<tr>
<td><a href="/method/messages.markDialogUnread">messages.markDialogUnread</a></td>
<td>Manually mark dialog as unread</td>
</tr>
<tr>
<td><a href="/method/messages.getPeerSettings">messages.getPeerSettings</a></td>
<td>Get peer settings</td>
</tr>
<tr>
<td><a href="/method/messages.hidePeerSettingsBar">messages.hidePeerSettingsBar</a></td>
<td>Should be called after the user hides the <a href="/api/action-bar">report spam/add as contact bar</a> of a new chat, effectively prevents the user from executing the actions specified in the <a href="/api/action-bar">action bar »</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.getOnlines">messages.getOnlines</a></td>
<td>Get count of online users in a chat</td>
</tr>
<tr>
<td><a href="/method/messages.sendScreenshotNotification">messages.sendScreenshotNotification</a></td>
<td>Notify the other user in a private chat that a screenshot of the chat was taken</td>
</tr>
<tr>
<td><a href="/method/messages.setTyping">messages.setTyping</a></td>
<td>Sends a current user typing event (see <a href="/type/SendMessageAction">SendMessageAction</a> for all event types) to a conversation partner or group.</td>
</tr>
<tr>
<td><a href="/method/messages.setHistoryTTL">messages.setHistoryTTL</a></td>
<td>Set maximum Time-To-Live of all messages in the specified chat</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-drafts" id="working-with-drafts" name="working-with-drafts"><i class="anchor-icon"></i></a>Working with drafts</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.clearAllDrafts">messages.clearAllDrafts</a></td>
<td>Clear all <a href="/api/drafts">drafts</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.getAllDrafts">messages.getAllDrafts</a></td>
<td>Return all message <a href="/api/drafts">drafts</a>. <br>Returns all the latest <a href="/constructor/updateDraftMessage">updateDraftMessage</a> updates related to all chats with drafts.</td>
</tr>
<tr>
<td><a href="/method/messages.saveDraft">messages.saveDraft</a></td>
<td>Save a message <a href="/api/drafts">draft</a> associated to a chat.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-folders" id="working-with-folders" name="working-with-folders"><i class="anchor-icon"></i></a>Working with folders</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.updateDialogFiltersOrder">messages.updateDialogFiltersOrder</a></td>
<td>Reorder <a href="/api/folders">folders</a></td>
</tr>
<tr>
<td><a href="/method/messages.getDialogFilters">messages.getDialogFilters</a></td>
<td>Get <a href="/api/folders">folders</a></td>
</tr>
<tr>
<td><a href="/method/messages.getSuggestedDialogFilters">messages.getSuggestedDialogFilters</a></td>
<td>Get <a href="/api/folders">suggested folders</a></td>
</tr>
<tr>
<td><a href="/method/messages.updateDialogFilter">messages.updateDialogFilter</a></td>
<td>Update <a href="/api/folders">folder</a></td>
</tr>
<tr>
<td><a href="/method/folders.editPeerFolders">folders.editPeerFolders</a></td>
<td>Edit peers in <a href="/api/folders#peer-folders">peer folder</a></td>
</tr>
<tr>
<td><a href="/method/chatlists.exportChatlistInvite">chatlists.exportChatlistInvite</a></td>
<td>Export a <a href="/api/folders">folder »</a>, creating a <a href="/api/links#chat-folder-links">chat folder deep link »</a>.</td>
</tr>
<tr>
<td><a href="/method/chatlists.deleteExportedInvite">chatlists.deleteExportedInvite</a></td>
<td>Delete a previously created <a href="/api/links#chat-folder-links">chat folder deep link »</a>.</td>
</tr>
<tr>
<td><a href="/method/chatlists.editExportedInvite">chatlists.editExportedInvite</a></td>
<td>Edit a <a href="/api/links#chat-folder-links">chat folder deep link »</a>.</td>
</tr>
<tr>
<td><a href="/method/chatlists.getExportedInvites">chatlists.getExportedInvites</a></td>
<td>List all <a href="/api/links#chat-folder-links">chat folder deep links »</a> associated to a folder</td>
</tr>
<tr>
<td><a href="/method/chatlists.checkChatlistInvite">chatlists.checkChatlistInvite</a></td>
<td>Obtain information about a <a href="/api/links#chat-folder-links">chat folder deep link »</a>.</td>
</tr>
<tr>
<td><a href="/method/chatlists.joinChatlistInvite">chatlists.joinChatlistInvite</a></td>
<td>Import a <a href="/api/links#chat-folder-links">chat folder deep link »</a>, joining some or all the chats in the folder.</td>
</tr>
<tr>
<td><a href="/method/chatlists.getChatlistUpdates">chatlists.getChatlistUpdates</a></td>
<td>Fetch new chats associated with an imported <a href="/api/links#chat-folder-links">chat folder deep link »</a>. Must be invoked at most every <code>chatlist_update_period</code> seconds (as per the related <a href="/api/config#chatlist-update-period">client configuration parameter »</a>).</td>
</tr>
<tr>
<td><a href="/method/chatlists.joinChatlistUpdates">chatlists.joinChatlistUpdates</a></td>
<td>Join channels and supergroups recently added to a <a href="/api/links#chat-folder-links">chat folder deep link »</a>.</td>
</tr>
<tr>
<td><a href="/method/chatlists.hideChatlistUpdates">chatlists.hideChatlistUpdates</a></td>
<td>Dismiss new pending peers recently added to a <a href="/api/links#chat-folder-links">chat folder deep link »</a>.</td>
</tr>
<tr>
<td><a href="/method/chatlists.getLeaveChatlistSuggestions">chatlists.getLeaveChatlistSuggestions</a></td>
<td>Returns identifiers of pinned or always included chats from a chat folder imported using a <a href="/api/links#chat-folder-links">chat folder deep link »</a>, which are suggested to be left when the chat folder is deleted.</td>
</tr>
<tr>
<td><a href="/method/chatlists.leaveChatlist">chatlists.leaveChatlist</a></td>
<td>Delete a folder imported using a <a href="/api/links#chat-folder-links">chat folder deep link »</a></td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-games" id="working-with-games" name="working-with-games"><i class="anchor-icon"></i></a>Working with games</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.getGameHighScores">messages.getGameHighScores</a></td>
<td>Get highscores of a game</td>
</tr>
<tr>
<td><a href="/method/messages.getInlineGameHighScores">messages.getInlineGameHighScores</a></td>
<td>Get highscores of a game sent using an inline bot</td>
</tr>
<tr>
<td><a href="/method/messages.setGameScore">messages.setGameScore</a></td>
<td>Use this method to set the score of the specified user in a game sent as a normal message (bots only).</td>
</tr>
<tr>
<td><a href="/method/messages.setInlineGameScore">messages.setInlineGameScore</a></td>
<td>Use this method to set the score of the specified user in a game sent as an inline message (bots only).</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-group-calls-amp-live-streaming" id="working-with-group-calls-amp-live-streaming" name="working-with-group-calls-amp-live-streaming"><i class="anchor-icon"></i></a>Working with group calls &amp; live streaming</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/phone.exportGroupCallInvite">phone.exportGroupCallInvite</a></td>
<td>Get an <a href="/api/links#video-chat-livestream-links">invite link</a> for a group call or livestream</td>
</tr>
<tr>
<td><a href="/method/phone.getGroupCallJoinAs">phone.getGroupCallJoinAs</a></td>
<td>Get a list of peers that can be used to join a group call, presenting yourself as a specific user/channel.</td>
</tr>
<tr>
<td><a href="/method/phone.editGroupCallParticipant">phone.editGroupCallParticipant</a></td>
<td>Edit information about a given group call participant<br><br>Note: <a href="/mtproto/TL-combinators#conditional-fields">flags</a>.N?<a href="/type/Bool">Bool</a> parameters can have three possible values:<br><br>- If the <a href="/mtproto/TL-combinators#conditional-fields">TL flag</a> is not set, the previous value will not be changed.<br>- If the <a href="/mtproto/TL-combinators#conditional-fields">TL flag</a> is set and contains a <a href="/constructor/boolTrue">boolTrue</a>, the previous value will be overwritten to <code>true</code>.<br>- If the <a href="/mtproto/TL-combinators#conditional-fields">TL flag</a> is set and contains a <a href="/constructor/boolFalse">boolFalse</a>, the previous value will be overwritten to <code>false</code>.</td>
</tr>
<tr>
<td><a href="/method/phone.toggleGroupCallRecord">phone.toggleGroupCallRecord</a></td>
<td>Start or stop recording a group call: the recorded audio and video streams will be automatically sent to <code>Saved messages</code> (the chat with ourselves).</td>
</tr>
<tr>
<td><a href="/method/phone.editGroupCallTitle">phone.editGroupCallTitle</a></td>
<td>Edit the title of a group call or livestream</td>
</tr>
<tr>
<td><a href="/method/phone.getGroupParticipants">phone.getGroupParticipants</a></td>
<td>Get group call participants</td>
</tr>
<tr>
<td><a href="/method/phone.checkGroupCall">phone.checkGroupCall</a></td>
<td>Check whether the group call Server Forwarding Unit is currently receiving the streams with the specified WebRTC source IDs. <br>Returns an intersection of the source IDs specified in <code>sources</code>, and the source IDs currently being forwarded by the SFU.</td>
</tr>
<tr>
<td><a href="/method/phone.createGroupCall">phone.createGroupCall</a></td>
<td>Create a group call or livestream</td>
</tr>
<tr>
<td><a href="/method/phone.toggleGroupCallStartSubscription">phone.toggleGroupCallStartSubscription</a></td>
<td>Subscribe or unsubscribe to a scheduled group call</td>
</tr>
<tr>
<td><a href="/method/phone.leaveGroupCall">phone.leaveGroupCall</a></td>
<td>Leave a group call</td>
</tr>
<tr>
<td><a href="/method/phone.toggleGroupCallSettings">phone.toggleGroupCallSettings</a></td>
<td>Change group call settings</td>
</tr>
<tr>
<td><a href="/method/phone.inviteToGroupCall">phone.inviteToGroupCall</a></td>
<td>Invite a set of users to a group call.</td>
</tr>
<tr>
<td><a href="/method/phone.getGroupCall">phone.getGroupCall</a></td>
<td>Get info about a group call</td>
</tr>
<tr>
<td><a href="/method/phone.joinGroupCall">phone.joinGroupCall</a></td>
<td>Join a group call</td>
</tr>
<tr>
<td><a href="/method/phone.leaveGroupCallPresentation">phone.leaveGroupCallPresentation</a></td>
<td>Stop screen sharing in a group call</td>
</tr>
<tr>
<td><a href="/method/phone.discardGroupCall">phone.discardGroupCall</a></td>
<td>Terminate a group call</td>
</tr>
<tr>
<td><a href="/method/phone.joinGroupCallPresentation">phone.joinGroupCallPresentation</a></td>
<td>Start screen sharing in a call</td>
</tr>
<tr>
<td><a href="/method/phone.startScheduledGroupCall">phone.startScheduledGroupCall</a></td>
<td>Start a scheduled group call.</td>
</tr>
<tr>
<td><a href="/method/phone.saveDefaultGroupCallJoinAs">phone.saveDefaultGroupCallJoinAs</a></td>
<td>Set the default peer that will be used to join a group call in a specific dialog.</td>
</tr>
<tr>
<td><a href="/method/phone.getGroupCallStreamChannels">phone.getGroupCallStreamChannels</a></td>
<td>Get info about RTMP streams in a group call or livestream. <br>This method should be invoked to the same group/channel-related DC used for <a href="/api/files#downloading-files">downloading livestream chunks</a>. <br>As usual, the media DC is preferred, if available.</td>
</tr>
<tr>
<td><a href="/method/phone.getGroupCallStreamRtmpUrl">phone.getGroupCallStreamRtmpUrl</a></td>
<td>Get RTMP URL and stream key for RTMP livestreams. Can be used even before creating the actual RTMP livestream with <a href="/method/phone.createGroupCall">phone.createGroupCall</a> (the <code>rtmp_stream</code> flag must be set).</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-imported-chats" id="working-with-imported-chats" name="working-with-imported-chats"><i class="anchor-icon"></i></a>Working with imported chats</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.uploadImportedMedia">messages.uploadImportedMedia</a></td>
<td>Upload a media file associated with an <a href="/api/import">imported chat, click here for more info »</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.startHistoryImport">messages.startHistoryImport</a></td>
<td>Complete the <a href="/api/import">history import process</a>, importing all messages into the chat. <br>To be called only after initializing the import with <a href="/method/messages.initHistoryImport">messages.initHistoryImport</a> and uploading all files using <a href="/method/messages.uploadImportedMedia">messages.uploadImportedMedia</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.checkHistoryImportPeer">messages.checkHistoryImportPeer</a></td>
<td>Check whether chat history exported from another chat app can be <a href="/api/import">imported into a specific Telegram chat, click here for more info »</a>.<br><br>If the check succeeds, and no RPC errors are returned, a <a href="/type/messages.CheckedHistoryImportPeer">messages.CheckedHistoryImportPeer</a> constructor will be returned, with a confirmation text to be shown to the user, before actually initializing the import.</td>
</tr>
<tr>
<td><a href="/method/messages.checkHistoryImport">messages.checkHistoryImport</a></td>
<td>Obtains information about a chat export file, generated by a foreign chat app, <a href="/api/import">click here for more info about imported chats »</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.initHistoryImport">messages.initHistoryImport</a></td>
<td>Import chat history from a foreign chat app into a specific Telegram chat, <a href="/api/import">click here for more info about imported chats »</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-localization-packs" id="working-with-localization-packs" name="working-with-localization-packs"><i class="anchor-icon"></i></a>Working with localization packs</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/langpack.getDifference">langpack.getDifference</a></td>
<td>Get new strings in language pack</td>
</tr>
<tr>
<td><a href="/method/langpack.getLangPack">langpack.getLangPack</a></td>
<td>Get localization pack strings</td>
</tr>
<tr>
<td><a href="/method/langpack.getLanguage">langpack.getLanguage</a></td>
<td>Get information about a language in a localization pack</td>
</tr>
<tr>
<td><a href="/method/langpack.getLanguages">langpack.getLanguages</a></td>
<td>Get information about all languages in a localization pack</td>
</tr>
<tr>
<td><a href="/method/langpack.getStrings">langpack.getStrings</a></td>
<td>Get strings from a language pack</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-media-autodownload-settings" id="working-with-media-autodownload-settings" name="working-with-media-autodownload-settings"><i class="anchor-icon"></i></a>Working with media autodownload settings</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.getAutoDownloadSettings">account.getAutoDownloadSettings</a></td>
<td>Get media autodownload settings</td>
</tr>
<tr>
<td><a href="/method/account.saveAutoDownloadSettings">account.saveAutoDownloadSettings</a></td>
<td>Change media autodownload settings</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-media-autosave-settings" id="working-with-media-autosave-settings" name="working-with-media-autosave-settings"><i class="anchor-icon"></i></a>Working with media autosave settings</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.getAutoSaveSettings">account.getAutoSaveSettings</a></td>
<td>Get autosave settings</td>
</tr>
<tr>
<td><a href="/method/account.saveAutoSaveSettings">account.saveAutoSaveSettings</a></td>
<td>Modify autosave settings</td>
</tr>
<tr>
<td><a href="/method/account.deleteAutoSaveExceptions">account.deleteAutoSaveExceptions</a></td>
<td>Clear all peer-specific autosave settings.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-message-threads" id="working-with-message-threads" name="working-with-message-threads"><i class="anchor-icon"></i></a>Working with message <a href="/api/threads">threads</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.getReplies">messages.getReplies</a></td>
<td>Get messages in a reply thread</td>
</tr>
<tr>
<td><a href="/method/contacts.blockFromReplies">contacts.blockFromReplies</a></td>
<td>Stop getting notifications about <a href="/api/discussion">discussion replies</a> of a certain user in <code>@replies</code></td>
</tr>
<tr>
<td><a href="/method/messages.getDiscussionMessage">messages.getDiscussionMessage</a></td>
<td>Get <a href="/api/threads">discussion message</a> from the <a href="/api/discussion">associated discussion group</a> of a channel to show it on top of the comment section, without actually joining the group</td>
</tr>
<tr>
<td><a href="/method/messages.readDiscussion">messages.readDiscussion</a></td>
<td>Mark a <a href="/api/threads">thread</a> as read</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-messages" id="working-with-messages" name="working-with-messages"><i class="anchor-icon"></i></a>Working with messages</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.deleteHistory">messages.deleteHistory</a></td>
<td>Deletes communication history.</td>
</tr>
<tr>
<td><a href="/method/messages.deleteMessages">messages.deleteMessages</a></td>
<td>Deletes messages by their identifiers.</td>
</tr>
<tr>
<td><a href="/method/messages.editMessage">messages.editMessage</a></td>
<td>Edit message</td>
</tr>
<tr>
<td><a href="/method/messages.forwardMessages">messages.forwardMessages</a></td>
<td>Forwards messages by their IDs.</td>
</tr>
<tr>
<td><a href="/method/messages.getHistory">messages.getHistory</a></td>
<td>Returns the conversation history with one interlocutor / within a chat</td>
</tr>
<tr>
<td><a href="/method/messages.getSearchResultsPositions">messages.getSearchResultsPositions</a></td>
<td>Returns sparse positions of messages of the specified type in the chat to be used for shared media scroll implementation.<br><br>Returns the results in reverse chronological order (i.e., in order of decreasing message_id).</td>
</tr>
<tr>
<td><a href="/method/messages.getMessageEditData">messages.getMessageEditData</a></td>
<td>Find out if a media message's caption can be edited</td>
</tr>
<tr>
<td><a href="/method/messages.getMessages">messages.getMessages</a></td>
<td>Returns the list of messages by their IDs.</td>
</tr>
<tr>
<td><a href="/method/messages.getMessagesViews">messages.getMessagesViews</a></td>
<td>Get and increase the view counter of a message sent or forwarded from a <a href="/api/channel">channel</a></td>
</tr>
<tr>
<td><a href="/method/messages.getRecentLocations">messages.getRecentLocations</a></td>
<td>Get live location history of a certain user</td>
</tr>
<tr>
<td><a href="/method/messages.getSearchCounters">messages.getSearchCounters</a></td>
<td>Get the number of results that would be found by a <a href="/method/messages.search">messages.search</a> call with the same parameters</td>
</tr>
<tr>
<td><a href="/method/messages.getUnreadMentions">messages.getUnreadMentions</a></td>
<td>Get unread messages where we were mentioned</td>
</tr>
<tr>
<td><a href="/method/messages.readHistory">messages.readHistory</a></td>
<td>Marks message history as read.</td>
</tr>
<tr>
<td><a href="/method/messages.readMentions">messages.readMentions</a></td>
<td>Mark mentions as read</td>
</tr>
<tr>
<td><a href="/method/messages.readMessageContents">messages.readMessageContents</a></td>
<td>Notifies the sender about the recipient having listened a voice message or watched a video.</td>
</tr>
<tr>
<td><a href="/method/messages.receivedMessages">messages.receivedMessages</a></td>
<td>Confirms receipt of messages by a client, cancels PUSH-notification sending.</td>
</tr>
<tr>
<td><a href="/method/messages.search">messages.search</a></td>
<td>Search for messages.</td>
</tr>
<tr>
<td><a href="/method/messages.getSearchResultsCalendar">messages.getSearchResultsCalendar</a></td>
<td>Returns information about the next messages of the specified type in the chat split by days.<br><br>Returns the results in reverse chronological order. <br>Can return partial results for the last returned day.</td>
</tr>
<tr>
<td><a href="/method/messages.searchGlobal">messages.searchGlobal</a></td>
<td>Search for messages and peers globally</td>
</tr>
<tr>
<td><a href="/method/messages.searchSentMedia">messages.searchSentMedia</a></td>
<td>View and search recently sent media. <br>This method does not support pagination.</td>
</tr>
<tr>
<td><a href="/method/messages.sendMedia">messages.sendMedia</a></td>
<td>Send a media</td>
</tr>
<tr>
<td><a href="/method/messages.sendMessage">messages.sendMessage</a></td>
<td>Sends a message to a chat</td>
</tr>
<tr>
<td><a href="/method/messages.sendMultiMedia">messages.sendMultiMedia</a></td>
<td>Send an <a href="/api/files#albums-grouped-media">album or grouped media</a></td>
</tr>
<tr>
<td><a href="/method/messages.updatePinnedMessage">messages.updatePinnedMessage</a></td>
<td>Pin a message</td>
</tr>
<tr>
<td><a href="/method/messages.unpinAllMessages">messages.unpinAllMessages</a></td>
<td><a href="/api/pin">Unpin</a> all pinned messages</td>
</tr>
<tr>
<td><a href="/method/messages.toggleNoForwards">messages.toggleNoForwards</a></td>
<td>Enable or disable <a href="https://telegram.org/blog/protected-content-delete-by-date-and-more">content protection</a> on a channel or chat</td>
</tr>
<tr>
<td><a href="/method/messages.saveDefaultSendAs">messages.saveDefaultSendAs</a></td>
<td>Change the default peer that should be used when sending messages, reactions, poll votes to a specific group</td>
</tr>
<tr>
<td><a href="/method/channels.getSendAs">channels.getSendAs</a></td>
<td>Obtains a list of peers that can be used to send messages in a specific group</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-notification-settings" id="working-with-notification-settings" name="working-with-notification-settings"><i class="anchor-icon"></i></a>Working with notification settings</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.registerDevice">account.registerDevice</a></td>
<td>Register device to receive <a href="/api/push-updates">PUSH notifications</a></td>
</tr>
<tr>
<td><a href="/method/account.unregisterDevice">account.unregisterDevice</a></td>
<td>Deletes a device by its token, stops sending PUSH-notifications to it.</td>
</tr>
<tr>
<td><a href="/method/account.updateDeviceLocked">account.updateDeviceLocked</a></td>
<td>When client-side passcode lock feature is enabled, will not show message texts in incoming <a href="/api/push-updates">PUSH notifications</a>.</td>
</tr>
<tr>
<td><a href="/method/account.getNotifyExceptions">account.getNotifyExceptions</a></td>
<td>Returns list of chats with non-default notification settings</td>
</tr>
<tr>
<td><a href="/method/account.getNotifySettings">account.getNotifySettings</a></td>
<td>Gets current notification settings for a given user/group, from all users/all groups.</td>
</tr>
<tr>
<td><a href="/method/account.updateNotifySettings">account.updateNotifySettings</a></td>
<td>Edits notification settings from a given user/group, from all users/all groups.</td>
</tr>
<tr>
<td><a href="/method/account.resetNotifySettings">account.resetNotifySettings</a></td>
<td>Resets all notification settings from users and groups.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-notification-sounds" id="working-with-notification-sounds" name="working-with-notification-sounds"><i class="anchor-icon"></i></a>Working with notification sounds</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.getSavedRingtones">account.getSavedRingtones</a></td>
<td>Fetch saved notification sounds</td>
</tr>
<tr>
<td><a href="/method/account.saveRingtone">account.saveRingtone</a></td>
<td>Save or remove saved notification sound.<br><br>If the notification sound is already in MP3 format, <a href="/constructor/account.savedRingtone">account.savedRingtone</a> will be returned. <br>Otherwise, it will be automatically converted and a <a href="/constructor/account.savedRingtoneConverted">account.savedRingtoneConverted</a> will be returned, containing a new <a href="/constructor/document">document</a> object that should be used to refer to the ringtone from now on (ie when deleting it using the <code>unsave</code> parameter, or when downloading it).</td>
</tr>
<tr>
<td><a href="/method/account.uploadRingtone">account.uploadRingtone</a></td>
<td>Upload notification sound, use <a href="/method/account.saveRingtone">account.saveRingtone</a> to convert it and add it to the list of saved notification sounds.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-other-users" id="working-with-other-users" name="working-with-other-users"><i class="anchor-icon"></i></a>Working with other users</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/users.getFullUser">users.getFullUser</a></td>
<td>Returns extended user info by ID.</td>
</tr>
<tr>
<td><a href="/method/users.getUsers">users.getUsers</a></td>
<td>Returns basic user info according to their identifiers.</td>
</tr>
<tr>
<td><a href="/method/contacts.resolvePhone">contacts.resolvePhone</a></td>
<td>Resolve a phone number to get user info, if their privacy settings allow it.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-payments" id="working-with-payments" name="working-with-payments"><i class="anchor-icon"></i></a>Working with payments</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/payments.getSavedInfo">payments.getSavedInfo</a></td>
<td>Get saved payment information</td>
</tr>
<tr>
<td><a href="/method/payments.clearSavedInfo">payments.clearSavedInfo</a></td>
<td>Clear saved payment information</td>
</tr>
<tr>
<td><a href="/method/payments.getPaymentForm">payments.getPaymentForm</a></td>
<td>Get a payment form</td>
</tr>
<tr>
<td><a href="/method/payments.validateRequestedInfo">payments.validateRequestedInfo</a></td>
<td>Submit requested order information for validation</td>
</tr>
<tr>
<td><a href="/method/messages.setBotShippingResults">messages.setBotShippingResults</a></td>
<td>If you sent an invoice requesting a shipping address and the parameter is_flexible was specified, the bot will receive an <a href="/constructor/updateBotShippingQuery">updateBotShippingQuery</a> update. Use this method to reply to shipping queries.</td>
</tr>
<tr>
<td><a href="/method/account.getTmpPassword">account.getTmpPassword</a></td>
<td>Get temporary payment password</td>
</tr>
<tr>
<td><a href="/method/payments.sendPaymentForm">payments.sendPaymentForm</a></td>
<td>Send compiled payment form</td>
</tr>
<tr>
<td><a href="/method/messages.setBotPrecheckoutResults">messages.setBotPrecheckoutResults</a></td>
<td>Once the user has confirmed their payment and shipping details, the bot receives an <a href="/constructor/updateBotPrecheckoutQuery">updateBotPrecheckoutQuery</a> update. <br>Use this method to respond to such pre-checkout queries. <br><strong>Note</strong>: Telegram must receive an answer within 10 seconds after the pre-checkout query was sent.</td>
</tr>
<tr>
<td><a href="/method/payments.getPaymentReceipt">payments.getPaymentReceipt</a></td>
<td>Get payment receipt</td>
</tr>
<tr>
<td><a href="/method/payments.exportInvoice">payments.exportInvoice</a></td>
<td>Generate an <a href="/api/links#invoice-links">invoice deep link</a></td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-polls" id="working-with-polls" name="working-with-polls"><i class="anchor-icon"></i></a>Working with polls</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.getPollResults">messages.getPollResults</a></td>
<td>Get poll results</td>
</tr>
<tr>
<td><a href="/method/messages.getPollVotes">messages.getPollVotes</a></td>
<td>Get poll results for non-anonymous polls</td>
</tr>
<tr>
<td><a href="/method/messages.sendVote">messages.sendVote</a></td>
<td>Vote in a <a href="/constructor/poll">poll</a><br><br>Starting from layer 159, the vote will be sent from the peer specified using <a href="/method/messages.saveDefaultSendAs">messages.saveDefaultSendAs</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-scheduled-messages" id="working-with-scheduled-messages" name="working-with-scheduled-messages"><i class="anchor-icon"></i></a>Working with scheduled messages</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.sendScheduledMessages">messages.sendScheduledMessages</a></td>
<td>Send scheduled messages right away</td>
</tr>
<tr>
<td><a href="/method/messages.getScheduledHistory">messages.getScheduledHistory</a></td>
<td>Get scheduled messages</td>
</tr>
<tr>
<td><a href="/method/messages.deleteScheduledMessages">messages.deleteScheduledMessages</a></td>
<td>Delete scheduled messages</td>
</tr>
<tr>
<td><a href="/method/messages.getScheduledMessages">messages.getScheduledMessages</a></td>
<td>Get scheduled messages</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-sensitive-content-nsfw" id="working-with-sensitive-content-nsfw" name="working-with-sensitive-content-nsfw"><i class="anchor-icon"></i></a>Working with sensitive content (NSFW)</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.getContentSettings">account.getContentSettings</a></td>
<td>Get sensitive content settings</td>
</tr>
<tr>
<td><a href="/method/account.setContentSettings">account.setContentSettings</a></td>
<td>Set sensitive content settings (for viewing or hiding NSFW content)</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-sponsored-messages" id="working-with-sponsored-messages" name="working-with-sponsored-messages"><i class="anchor-icon"></i></a>Working with sponsored messages</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/channels.getSponsoredMessages">channels.getSponsoredMessages</a></td>
<td>Get a list of sponsored messages</td>
</tr>
<tr>
<td><a href="/method/channels.viewSponsoredMessage">channels.viewSponsoredMessage</a></td>
<td>Mark a specific sponsored message as read</td>
</tr>
<tr>
<td><a href="/method/channels.clickSponsoredMessage">channels.clickSponsoredMessage</a></td>
<td>Informs the server that the user has either:<br><br>- Clicked on a link in the sponsored message<br>- Has opened a sponsored chat or a sponsored website via the associated button<br>- Has opened the sponsored chat via the sponsored message name, the sponsored message photo, or a mention in the sponsored message</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-the-attachment-menu--of-mini-bot-apps-" id="working-with-the-attachment-menu--of-mini-bot-apps-" name="working-with-the-attachment-menu--of-mini-bot-apps-"><i class="anchor-icon"></i></a>Working with the <a href="/bots/webapps#launching-mini-apps-from-the-attachment-menu">attachment menu »</a> of <a href="/bots/webapps">mini bot apps »</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.getAttachMenuBots">messages.getAttachMenuBots</a></td>
<td>Returns installed attachment menu <a href="/api/bots/attach">bot mini apps »</a></td>
</tr>
<tr>
<td><a href="/method/messages.getAttachMenuBot">messages.getAttachMenuBot</a></td>
<td>Returns attachment menu entry for a <a href="/api/bots/attach">bot mini app that can be launched from the attachment menu »</a></td>
</tr>
<tr>
<td><a href="/method/messages.toggleBotInAttachMenu">messages.toggleBotInAttachMenu</a></td>
<td>Enable or disable <a href="/api/bots/attach">web bot attachment menu »</a></td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-the-native-anti-spam-system" id="working-with-the-native-anti-spam-system" name="working-with-the-native-anti-spam-system"><i class="anchor-icon"></i></a>Working with the <a href="/api/antispam">native anti-spam system</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/channels.toggleAntiSpam">channels.toggleAntiSpam</a></td>
<td>Enable or disable the <a href="/api/antispam">native antispam system</a>.</td>
</tr>
<tr>
<td><a href="/method/channels.reportAntiSpamFalsePositive">channels.reportAntiSpamFalsePositive</a></td>
<td>Report a <a href="/api/antispam">native antispam</a> false positive</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-the-takeout-api-see-here--for-more-info" id="working-with-the-takeout-api-see-here--for-more-info" name="working-with-the-takeout-api-see-here--for-more-info"><i class="anchor-icon"></i></a>Working with the <a href="/api/takeout">takeout API, see here » for more info</a>.</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.initTakeoutSession">account.initTakeoutSession</a></td>
<td>Initialize a <a href="/api/takeout">takeout session, see here » for more info</a>.</td>
</tr>
<tr>
<td><a href="/method/account.finishTakeoutSession">account.finishTakeoutSession</a></td>
<td>Terminate a <a href="/api/takeout">takeout session, see here » for more info</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.getSplitRanges">messages.getSplitRanges</a></td>
<td>Get message ranges for saving the user's chat history</td>
</tr>
<tr>
<td><a href="/method/channels.getLeftChannels">channels.getLeftChannels</a></td>
<td>Get a list of <a href="/api/channel">channels/supergroups</a> we left, requires a <a href="/api/takeout">takeout session, see here » for more info</a>.</td>
</tr>
<tr>
<td><a href="/method/invokeWithMessagesRange">invokeWithMessagesRange</a></td>
<td>Invoke with the given message range</td>
</tr>
<tr>
<td><a href="/method/invokeWithTakeout">invokeWithTakeout</a></td>
<td>Invoke a method within a <a href="/api/takeout">takeout session, see here » for more info</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-the-bot-menu-button-" id="working-with-the-bot-menu-button-" name="working-with-the-bot-menu-button-"><i class="anchor-icon"></i></a>Working with the bot <a href="/bots/webapps#launching-mini-apps-from-the-menu-button">menu button »</a></h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/bots.setBotMenuButton">bots.setBotMenuButton</a></td>
<td>Sets the <a href="/api/bots/menu">menu button action »</a> for a given user or for all users</td>
</tr>
<tr>
<td><a href="/method/bots.getBotMenuButton">bots.getBotMenuButton</a></td>
<td>Gets the menu button action for a given user or for all users, previously set using <a href="/method/bots.setBotMenuButton">bots.setBotMenuButton</a>; users can see this information in the <a href="/constructor/botInfo">botInfo</a> constructor.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-the-users-account" id="working-with-the-users-account" name="working-with-the-users-account"><i class="anchor-icon"></i></a>Working with the user's account</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/account.changePhone">account.changePhone</a></td>
<td>Change the phone number of the current account</td>
</tr>
<tr>
<td><a href="/method/account.confirmPhone">account.confirmPhone</a></td>
<td>Confirm a phone number to cancel account deletion, for more info <a href="/api/account-deletion">click here »</a></td>
</tr>
<tr>
<td><a href="/method/account.deleteAccount">account.deleteAccount</a></td>
<td>Delete the user's account from the telegram servers.<br><br>Can also be used to delete the account of a user that provided the login code, but forgot the 2FA password and no recovery method is configured, see <a href="/api/srp#password-recovery">here »</a> for more info on password recovery, and <a href="/api/account-deletion">here »</a> for more info on account deletion.</td>
</tr>
<tr>
<td><a href="/method/account.getAccountTTL">account.getAccountTTL</a></td>
<td>Get days to live of account</td>
</tr>
<tr>
<td><a href="/method/account.getPrivacy">account.getPrivacy</a></td>
<td>Get privacy settings of current account</td>
</tr>
<tr>
<td><a href="/method/account.resetAuthorization">account.resetAuthorization</a></td>
<td>Log out an active <a href="/api/auth">authorized session</a> by its hash</td>
</tr>
<tr>
<td><a href="/method/account.sendChangePhoneCode">account.sendChangePhoneCode</a></td>
<td>Verify a new phone number to associate to the current account</td>
</tr>
<tr>
<td><a href="/method/account.sendConfirmPhoneCode">account.sendConfirmPhoneCode</a></td>
<td>Send confirmation code to cancel account deletion, for more info <a href="/api/account-deletion">click here »</a></td>
</tr>
<tr>
<td><a href="/method/account.setAccountTTL">account.setAccountTTL</a></td>
<td>Set account self-destruction period</td>
</tr>
<tr>
<td><a href="/method/account.setPrivacy">account.setPrivacy</a></td>
<td>Change privacy settings of current account</td>
</tr>
<tr>
<td><a href="/method/account.setGlobalPrivacySettings">account.setGlobalPrivacySettings</a></td>
<td>Set global privacy settings</td>
</tr>
<tr>
<td><a href="/method/account.getGlobalPrivacySettings">account.getGlobalPrivacySettings</a></td>
<td>Get global privacy settings</td>
</tr>
<tr>
<td><a href="/method/account.updateProfile">account.updateProfile</a></td>
<td>Updates user profile.</td>
</tr>
<tr>
<td><a href="/method/account.updateStatus">account.updateStatus</a></td>
<td>Updates online user status.</td>
</tr>
<tr>
<td><a href="/method/messages.setDefaultHistoryTTL">messages.setDefaultHistoryTTL</a></td>
<td>Changes the default value of the Time-To-Live setting, applied to all new chats.</td>
</tr>
<tr>
<td><a href="/method/messages.getDefaultHistoryTTL">messages.getDefaultHistoryTTL</a></td>
<td>Gets the default value of the Time-To-Live setting, applied to all new chats.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-user-profile-pictures" id="working-with-user-profile-pictures" name="working-with-user-profile-pictures"><i class="anchor-icon"></i></a>Working with user profile pictures</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/photos.deletePhotos">photos.deletePhotos</a></td>
<td>Deletes profile photos. The method returns a list of successfully deleted photo IDs.</td>
</tr>
<tr>
<td><a href="/method/photos.getUserPhotos">photos.getUserPhotos</a></td>
<td>Returns the list of user photos.</td>
</tr>
<tr>
<td><a href="/method/photos.updateProfilePhoto">photos.updateProfilePhoto</a></td>
<td>Installs a previously uploaded photo as a profile photo.</td>
</tr>
<tr>
<td><a href="/method/photos.uploadProfilePhoto">photos.uploadProfilePhoto</a></td>
<td>Updates current user profile photo.<br><br>The <code>file</code>, <code>video</code> and <code>video_emoji_markup</code> flags are mutually exclusive.</td>
</tr>
<tr>
<td><a href="/method/photos.uploadContactProfilePhoto">photos.uploadContactProfilePhoto</a></td>
<td>Upload a custom profile picture for a contact, or suggest a new profile picture to a contact.<br><br>The <code>file</code>, <code>video</code> and <code>video_emoji_markup</code> flags are mutually exclusive.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-usernames" id="working-with-usernames" name="working-with-usernames"><i class="anchor-icon"></i></a>Working with usernames</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/channels.checkUsername">channels.checkUsername</a></td>
<td>Check if a username is free and can be assigned to a channel/supergroup</td>
</tr>
<tr>
<td><a href="/method/channels.updateUsername">channels.updateUsername</a></td>
<td>Change or remove the username of a supergroup/channel</td>
</tr>
<tr>
<td><a href="/method/account.updateUsername">account.updateUsername</a></td>
<td>Changes username for the current user.</td>
</tr>
<tr>
<td><a href="/method/account.checkUsername">account.checkUsername</a></td>
<td>Validates a username and checks availability.</td>
</tr>
<tr>
<td><a href="/method/contacts.resolveUsername">contacts.resolveUsername</a></td>
<td>Resolve a @username to get peer info</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/privacy">Privacy</a></li>
<li><a href="//telegram.org/press">Press</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/android">Android</a></li>
<li><a href="//telegram.org/dl/web">Mobile Web</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="/">Platform</a></h5>
<ul>
<li><a href="/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?47"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>