telegram-crawler/data/web/corefork.telegram.org/methods.html
2023-04-18 17:42:17 +00:00

2864 lines
117 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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="Full list of MTProto API methods">
<meta property="og:title" content="Methods">
<meta property="og:image" content="">
<meta property="og:description" content="Full list of MTProto API methods">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
<link rel="alternate icon" href="/img/favicon.ico" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?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.getAppChangelog">help.getAppChangelog</a></td>
<td>Get changelog of current app. <br>Typically, an <a href="/constructor/updates">updates</a> constructor will be returned, containing one or more <a href="/constructor/updateServiceNotification">updateServiceNotification</a> updates with app-specific changelogs.</td>
</tr>
<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="#registrationauthorization" id="registrationauthorization" name="registrationauthorization"><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.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 authorization settings</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 with a SafetyNet/Firebase attestation.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-gdpr-export" id="working-with-gdpr-export" name="working-with-gdpr-export"><i class="anchor-icon"></i></a>Working with GDPR export</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 account takeout session</td>
</tr>
<tr>
<td><a href="/method/account.finishTakeoutSession">account.finishTakeoutSession</a></td>
<td>Finish account takeout session</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</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 takeout session</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>Internal use</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-channelssupergroupsgeogroups" id="working-with-channelssupergroupsgeogroups" name="working-with-channelssupergroupsgeogroups"><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</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-chatssupergroupschannels" id="working-with-chatssupergroupschannels" name="working-with-chatssupergroupschannels"><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.getAllChats">messages.getAllChats</a></td>
<td>Get all chats, channels and supergroups</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 themes</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-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/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.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.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>
</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>Associate or dissociate a purchased <a href="https://fragment.com">fragment.com</a> username to the currently logged-in user.</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>Associate or dissociate a purchased <a href="https://fragment.com">fragment.com</a> username to a <a href="/api/channel">supergroup or channel</a>.</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-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</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-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-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.uninstallStickerSet">messages.uninstallStickerSet</a></td>
<td>Uninstall a stickerset</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>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-web-app-bots-" id="working-with-web-app-bots-" name="working-with-web-app-bots-"><i class="anchor-icon"></i></a>Working with <a href="/bots/webapps">web app bots »</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 web 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 web 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 web 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 web app</a> from a <a href="/api/links#named-bot-web-app-links">named bot web 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#named-bot-web-apps">named bot web app</a></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 a chosen peer, 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 our about text and description (bots only)</td>
</tr>
<tr>
<td><a href="/method/bots.getBotInfo">bots.getBotInfo</a></td>
<td>Get our about text and description (bots only)<br><br>Returns a vector of strings: the first string will be the about text, the second string will be the description.</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="/constructor/peerSettings">peer settings</a> of a new user allow us to add them as contact, 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 the user to the blacklist.</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 contact by telegram IDs</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 contacts near you</td>
</tr>
<tr>
<td><a href="/method/contacts.getSaved">contacts.getSaved</a></td>
<td>Get all contacts</td>
</tr>
<tr>
<td><a href="/method/contacts.getStatuses">contacts.getStatuses</a></td>
<td>Returns the list of contact statuses.</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>Delete saved contacts</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 the user from the blacklist.</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 report spam/add as contact bar of a new chat, effectively prevents the user from executing the actions specified in the <a href="/constructor/peerSettings">peer's settings</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-emoji-keywords" id="working-with-emoji-keywords" name="working-with-emoji-keywords"><i class="anchor-icon"></i></a>Working with emoji keywords</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 emoji keywords</td>
</tr>
<tr>
<td><a href="/method/messages.getEmojiKeywordsDifference">messages.getEmojiKeywordsDifference</a></td>
<td>Get changed emoji keywords</td>
</tr>
<tr>
<td><a href="/method/messages.getEmojiKeywordsLanguages">messages.getEmojiKeywordsLanguages</a></td>
<td>Get info about an emoji keyword localization</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 emoji replacements. The URL will be valid for 30 seconds after generation</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.deleteFolder">folders.deleteFolder</a></td>
<td>Delete a <a href="/api/folders#peer-folders">peer 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>
</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--live-streaming" id="working-with-group-calls--live-streaming" name="working-with-group-calls--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-chatlivestream-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/threads">thread 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>Returns found 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 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></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>
</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 statistics</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>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-the-attachment-menu--of-web-app-bots-" id="working-with-the-attachment-menu--of-web-app-bots-" name="working-with-the-attachment-menu--of-web-app-bots-"><i class="anchor-icon"></i></a>Working with the <a href="/bots/webapps#launching-web-apps-from-the-attachment-menu">attachment menu »</a> of <a href="/bots/webapps">web app bots »</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 web 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 web 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-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-web-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 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>
<h3><a class="anchor" href="#other" id="other" name="other"><i class="anchor-icon"></i></a>Other</h3>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/method/messages.getExtendedMedia">messages.getExtendedMedia</a></td>
<td> </td>
</tr>
<tr>
<td><a href="/method/auth.importWebTokenAuthorization">auth.importWebTokenAuthorization</a></td>
<td> </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="//core.telegram.org/">Platform</a></h5>
<ul>
<li><a href="//core.telegram.org/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="//core.telegram.org/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)">Twitter</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?47"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>