2022-05-14 00:37:40 +02:00
<!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" >
2022-06-17 17:53:56 +02:00
< link href = "/css/telegram.css?231" rel = "stylesheet" media = "screen" >
2022-05-14 00:37:40 +02:00
< 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 > URL 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-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 & 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/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 >
< / 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 = "/bots#deep-linking" > deep linking parameter< / a > < / td >
< / tr >
< tr >
< td > < a href = "/method/help.getDeepLinkInfo" > help.getDeepLinkInfo< / a > < / td >
< td > Get info about a < code > t.me< / code > link< / 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-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-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 & 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 invite link 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 > Gets back 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 > Gets back 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-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 >
< / 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-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. Can be used, for example, to delete the account of a user that provided the login code, but forgot the < a href = "/api/srp" > 2FA password and no recovery method is configured< / a > .< / 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-wallpapers" id = "working-with-wallpapers" name = "working-with-wallpapers" > < i class = "anchor-icon" > < / i > < / a > Working with wallpapers< / 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 wallpapers< / td >
< / tr >
< tr >
< td > < a href = "/method/account.getWallPaper" > account.getWallPaper< / a > < / td >
< td > Get info about a certain wallpaper< / td >
< / tr >
< tr >
< td > < a href = "/method/account.getWallPapers" > account.getWallPapers< / a > < / td >
< td > Returns a list of available wallpapers.< / td >
< / tr >
< tr >
< td > < a href = "/method/account.installWallPaper" > account.installWallPaper< / a > < / td >
< td > Install wallpaper< / td >
< / tr >
< tr >
< td > < a href = "/method/account.resetWallPapers" > account.resetWallPapers< / a > < / td >
< td > Delete installed wallpapers< / td >
< / tr >
< tr >
< td > < a href = "/method/account.saveWallPaper" > account.saveWallPaper< / a > < / td >
< td > Install/uninstall wallpaper< / td >
< / tr >
< tr >
< td > < a href = "/method/account.uploadWallPaper" > account.uploadWallPaper< / a > < / td >
< td > Create and upload a new wallpaper< / 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 = "/" > Platform< / a > < / h5 >
< ul >
< li > < a href = "/api" > API< / a > < / li >
< li > < a href = "//translations.telegram.org/" > Translations< / a > < / li >
< li > < a href = "//instantview.telegram.org/" > Instant View< / a > < / li >
< / ul >
< / div >
< / div >
< div class = "footer_columns_wrap footer_mobile" >
< div class = "footer_column" >
< h5 > < a href = "//telegram.org/faq" > About< / a > < / h5 >
< / div >
< div class = "footer_column" >
< h5 > < a href = "//telegram.org/blog" > Blog< / a > < / h5 >
< / div >
< div class = "footer_column" >
< h5 > < a href = "//telegram.org/apps" > Apps< / a > < / h5 >
< / div >
< div class = "footer_column" >
< h5 > < a href = "/" > Platform< / a > < / h5 >
< / div >
< div class = "footer_column" >
< h5 > < a href = "https://twitter.com/telegram" target = "_blank" data-track = "Follow/Twitter" onclick = "trackDlClick(this, event)" > Twitter< / a > < / h5 >
< / div >
< / div >
< / div >
< / div >
< script src = "/js/main.js?46" > < / script >
< script > b a c k T o T o p I n i t ( " G o u p " ) ;
removePreloadInit();
< / script >
< / body >
< / html >