telegram-crawler/data/web/corefork.telegram.org/methods.html
2022-08-21 14:14:55 +00:00

2576 lines
102 KiB
HTML

<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Methods</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="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?231" 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/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>
</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.</td>
</tr>
<tr>
<td><a href="/method/help.getPremiumPromo">help.getPremiumPromo</a></td>
<td>Get Telegram Premim 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</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</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>
</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 <code>chat_read_mark_size_threshold</code> members, read receipts will be stored for <code>chat_read_mark_expire_period</code> seconds after the message was sent, 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.</td>
</tr>
<tr>
<td><a href="/method/messages.createChat">messages.createChat</a></td>
<td>Creates a new chat.</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-deep-links" id="working-with-deep-links" name="working-with-deep-links"><i class="anchor-icon"></i></a>Working with <a href="/bots#deep-linking">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</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 an HTTP file or a part, by proxying the request through telegram.</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-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="/api/config#client-configuration">help.getAppConfig, <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>
</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.</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.sendVerifyEmailCode">account.sendVerifyEmailCode</a></td>
<td>Send the verification email code for telegram <a href="/passport">passport</a>.</td>
</tr>
<tr>
<td><a href="/method/account.verifyEmail">account.verifyEmail</a></td>
<td>Verify an email address for telegram <a href="/passport">passport</a>.</td>
</tr>
<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-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-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.</td>
</tr>
<tr>
<td><a href="/method/messages.requestSimpleWebView">messages.requestSimpleWebView</a></td>
<td>Open a <a href="/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="/bots/webapps">reply keyboard bot web app</a> to the bot that owns it.</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 suggested admin rights for bots being added as admins to channels.</td>
</tr>
<tr>
<td><a href="/method/bots.setBotGroupDefaultAdminRights">bots.setBotGroupDefaultAdminRights</a></td>
<td>Set the default suggested admin rights for bots being added as admins to groups.</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>
</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>
</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-cloud-themes" id="working-with-cloud-themes" name="working-with-cloud-themes"><i class="anchor-icon"></i></a>Working with cloud themes</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-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-custom-animated-emojis" id="working-with-custom-animated-emojis" name="working-with-custom-animated-emojis"><i class="anchor-icon"></i></a>Working with custom animated emojis</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 info about custom emojis.<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 custom emoji stickersets.</td>
</tr>
<tr>
<td><a href="/method/messages.getFeaturedEmojiStickers">messages.getFeaturedEmojiStickers</a></td>
<td>Gets featured custom emoji stickersets.</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>Save get all message <a href="/api/drafts">drafts</a>.</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#voice-chat-video-chat-livestream-links">invite link</a> for a group call or livestream</td>
</tr>
<tr>
<td><a href="/method/phone.getGroupCallJoinAs">phone.getGroupCallJoinAs</a></td>
<td>Get a list of peers that can be used to join a group call, presenting yourself as a specific user/channel.</td>
</tr>
<tr>
<td><a href="/method/phone.editGroupCallParticipant">phone.editGroupCallParticipant</a></td>
<td>Edit information about a given group call participant<br><br>Note: <a href="/mtproto/TL-combinators#conditional-fields">flags</a>.N?<a href="/type/Bool">Bool</a> parameters can have three possible values:<br><br>- If the <a href="/mtproto/TL-combinators#conditional-fields">TL flag</a> is not set, the previous value will not be changed.<br>- If the <a href="/mtproto/TL-combinators#conditional-fields">TL flag</a> is set and contains a <a href="/constructor/boolTrue">boolTrue</a>, the previous value will be overwritten to <code>true</code>.<br>- If the <a href="/mtproto/TL-combinators#conditional-fields">TL flag</a> is set and contains a <a href="/constructor/boolFalse">boolFalse</a>, the previous value will be overwritten to <code>false</code>.</td>
</tr>
<tr>
<td><a href="/method/phone.toggleGroupCallRecord">phone.toggleGroupCallRecord</a></td>
<td>Start or stop recording a group call: the recorded audio and video streams will be automatically sent to <code>Saved messages</code> (the chat with ourselves).</td>
</tr>
<tr>
<td><a href="/method/phone.editGroupCallTitle">phone.editGroupCallTitle</a></td>
<td>Edit the title of a group call or livestream</td>
</tr>
<tr>
<td><a href="/method/phone.getGroupParticipants">phone.getGroupParticipants</a></td>
<td>Get group call participants</td>
</tr>
<tr>
<td><a href="/method/phone.checkGroupCall">phone.checkGroupCall</a></td>
<td>Check whether the group call Server Forwarding Unit is currently receiving the streams with the specified WebRTC source IDs</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-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/messages.translateText">messages.translateText</a></td>
<td>Translate a given text</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>Export invoice</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-stickers" id="working-with-stickers" name="working-with-stickers"><i class="anchor-icon"></i></a>Working with stickers</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.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-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="/bots/webapps#launching-web-apps-from-the-attachment-menu">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="/bots/webapps#launching-web-apps-from-the-attachment-menu">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="/bots/webapps#launching-web-apps-from-the-attachment-menu">web bot attachment menu »</a></td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#working-with-the-bot-menu-button-" id="working-with-the-bot-menu-button-" name="working-with-the-bot-menu-button-"><i class="anchor-icon"></i></a>Working with the bot <a href="/bots/webapps#launching-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 menu button action 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>
</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.</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.</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="#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 voice message transcription</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>Transcribe voice message</td>
</tr>
<tr>
<td><a href="/method/messages.rateTranscribedAudio">messages.rateTranscribedAudio</a></td>
<td>Rate transcribed voice message</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/blog">Blog</a></li>
<li><a href="//telegram.org/jobs">Jobs</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/dl/android">Android</a></li>
<li><a href="//telegram.org/dl/wp">Windows Phone</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="//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?46"></script>
<script>backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>