diff --git a/_schema/170.json b/_schema/170.json new file mode 100644 index 0000000..3c7289f --- /dev/null +++ b/_schema/170.json @@ -0,0 +1,58887 @@ +{ + "index": { + "layer": 170, + "categories": [ + { + "name": "constructor", + "values": [ + "account.authorizationForm", + "account.authorizations", + "account.autoDownloadSettings", + "account.autoSaveSettings", + "account.contentSettings", + "account.emailVerified", + "account.emailVerifiedLogin", + "account.emojiStatuses", + "account.emojiStatusesNotModified", + "account.password", + "account.passwordInputSettings", + "account.passwordSettings", + "account.privacyRules", + "account.resetPasswordFailedWait", + "account.resetPasswordOk", + "account.resetPasswordRequestedWait", + "account.savedRingtone", + "account.savedRingtoneConverted", + "account.savedRingtones", + "account.savedRingtonesNotModified", + "account.sentEmailCode", + "account.takeout", + "account.themes", + "account.themesNotModified", + "account.tmpPassword", + "account.wallPapers", + "account.wallPapersNotModified", + "account.webAuthorizations", + "accountDaysTTL", + "appWebViewResultUrl", + "attachMenuBot", + "attachMenuBotIcon", + "attachMenuBotIconColor", + "attachMenuBots", + "attachMenuBotsBot", + "attachMenuBotsNotModified", + "attachMenuPeerTypeBotPM", + "attachMenuPeerTypeBroadcast", + "attachMenuPeerTypeChat", + "attachMenuPeerTypePM", + "attachMenuPeerTypeSameBotPM", + "auth.authorization", + "auth.authorizationSignUpRequired", + "auth.codeTypeCall", + "auth.codeTypeFlashCall", + "auth.codeTypeFragmentSms", + "auth.codeTypeMissedCall", + "auth.codeTypeSms", + "auth.exportedAuthorization", + "auth.loggedOut", + "auth.loginToken", + "auth.loginTokenMigrateTo", + "auth.loginTokenSuccess", + "auth.passwordRecovery", + "auth.sentCode", + "auth.sentCodeSuccess", + "auth.sentCodeTypeApp", + "auth.sentCodeTypeCall", + "auth.sentCodeTypeEmailCode", + "auth.sentCodeTypeFirebaseSms", + "auth.sentCodeTypeFlashCall", + "auth.sentCodeTypeFragmentSms", + "auth.sentCodeTypeMissedCall", + "auth.sentCodeTypeSetUpEmailRequired", + "auth.sentCodeTypeSms", + "authorization", + "autoDownloadSettings", + "autoSaveException", + "autoSaveSettings", + "availableReaction", + "bankCardOpenUrl", + "baseThemeArctic", + "baseThemeClassic", + "baseThemeDay", + "baseThemeNight", + "baseThemeTinted", + "boolFalse", + "boolTrue", + "boost", + "botApp", + "botAppNotModified", + "botCommand", + "botCommandScopeChatAdmins", + "botCommandScopeChats", + "botCommandScopeDefault", + "botCommandScopePeer", + "botCommandScopePeerAdmins", + "botCommandScopePeerUser", + "botCommandScopeUsers", + "botInfo", + "botInlineMediaResult", + "botInlineMessageMediaAuto", + "botInlineMessageMediaContact", + "botInlineMessageMediaGeo", + "botInlineMessageMediaInvoice", + "botInlineMessageMediaVenue", + "botInlineMessageMediaWebPage", + "botInlineMessageText", + "botInlineResult", + "botMenuButton", + "botMenuButtonCommands", + "botMenuButtonDefault", + "bots.botInfo", + "cdnConfig", + "cdnPublicKey", + "channel", + "channelAdminLogEvent", + "channelAdminLogEventActionChangeAbout", + "channelAdminLogEventActionChangeAvailableReactions", + "channelAdminLogEventActionChangeEmojiStatus", + "channelAdminLogEventActionChangeHistoryTTL", + "channelAdminLogEventActionChangeLinkedChat", + "channelAdminLogEventActionChangeLocation", + "channelAdminLogEventActionChangePeerColor", + "channelAdminLogEventActionChangePhoto", + "channelAdminLogEventActionChangeProfilePeerColor", + "channelAdminLogEventActionChangeStickerSet", + "channelAdminLogEventActionChangeTitle", + "channelAdminLogEventActionChangeUsername", + "channelAdminLogEventActionChangeUsernames", + "channelAdminLogEventActionChangeWallpaper", + "channelAdminLogEventActionCreateTopic", + "channelAdminLogEventActionDefaultBannedRights", + "channelAdminLogEventActionDeleteMessage", + "channelAdminLogEventActionDeleteTopic", + "channelAdminLogEventActionDiscardGroupCall", + "channelAdminLogEventActionEditMessage", + "channelAdminLogEventActionEditTopic", + "channelAdminLogEventActionExportedInviteDelete", + "channelAdminLogEventActionExportedInviteEdit", + "channelAdminLogEventActionExportedInviteRevoke", + "channelAdminLogEventActionParticipantInvite", + "channelAdminLogEventActionParticipantJoin", + "channelAdminLogEventActionParticipantJoinByInvite", + "channelAdminLogEventActionParticipantJoinByRequest", + "channelAdminLogEventActionParticipantLeave", + "channelAdminLogEventActionParticipantMute", + "channelAdminLogEventActionParticipantToggleAdmin", + "channelAdminLogEventActionParticipantToggleBan", + "channelAdminLogEventActionParticipantUnmute", + "channelAdminLogEventActionParticipantVolume", + "channelAdminLogEventActionPinTopic", + "channelAdminLogEventActionSendMessage", + "channelAdminLogEventActionStartGroupCall", + "channelAdminLogEventActionStopPoll", + "channelAdminLogEventActionToggleAntiSpam", + "channelAdminLogEventActionToggleForum", + "channelAdminLogEventActionToggleGroupCallSetting", + "channelAdminLogEventActionToggleInvites", + "channelAdminLogEventActionToggleNoForwards", + "channelAdminLogEventActionTogglePreHistoryHidden", + "channelAdminLogEventActionToggleSignatures", + "channelAdminLogEventActionToggleSlowMode", + "channelAdminLogEventActionUpdatePinned", + "channelAdminLogEventsFilter", + "channelForbidden", + "channelFull", + "channelLocation", + "channelLocationEmpty", + "channelMessagesFilter", + "channelMessagesFilterEmpty", + "channelParticipant", + "channelParticipantAdmin", + "channelParticipantBanned", + "channelParticipantCreator", + "channelParticipantLeft", + "channelParticipantSelf", + "channelParticipantsAdmins", + "channelParticipantsBanned", + "channelParticipantsBots", + "channelParticipantsContacts", + "channelParticipantsKicked", + "channelParticipantsMentions", + "channelParticipantsRecent", + "channelParticipantsSearch", + "channels.adminLogResults", + "channels.channelParticipant", + "channels.channelParticipants", + "channels.channelParticipantsNotModified", + "channels.sendAsPeers", + "chat", + "chatAdminRights", + "chatAdminWithInvites", + "chatBannedRights", + "chatEmpty", + "chatForbidden", + "chatFull", + "chatInvite", + "chatInviteAlready", + "chatInviteExported", + "chatInviteImporter", + "chatInvitePeek", + "chatInvitePublicJoinRequests", + "chatOnlines", + "chatParticipant", + "chatParticipantAdmin", + "chatParticipantCreator", + "chatParticipants", + "chatParticipantsForbidden", + "chatPhoto", + "chatPhotoEmpty", + "chatReactionsAll", + "chatReactionsNone", + "chatReactionsSome", + "chatlists.chatlistInvite", + "chatlists.chatlistInviteAlready", + "chatlists.chatlistUpdates", + "chatlists.exportedChatlistInvite", + "chatlists.exportedInvites", + "codeSettings", + "config", + "contact", + "contactStatus", + "contacts.blocked", + "contacts.blockedSlice", + "contacts.contacts", + "contacts.contactsNotModified", + "contacts.found", + "contacts.importedContacts", + "contacts.resolvedPeer", + "contacts.topPeers", + "contacts.topPeersDisabled", + "contacts.topPeersNotModified", + "dataJSON", + "dcOption", + "defaultHistoryTTL", + "dialog", + "dialogFilter", + "dialogFilterChatlist", + "dialogFilterDefault", + "dialogFilterSuggested", + "dialogFolder", + "dialogPeer", + "dialogPeerFolder", + "document", + "documentAttributeAnimated", + "documentAttributeAudio", + "documentAttributeCustomEmoji", + "documentAttributeFilename", + "documentAttributeHasStickers", + "documentAttributeImageSize", + "documentAttributeSticker", + "documentAttributeVideo", + "documentEmpty", + "draftMessage", + "draftMessageEmpty", + "emailVerificationApple", + "emailVerificationCode", + "emailVerificationGoogle", + "emailVerifyPurposeLoginChange", + "emailVerifyPurposeLoginSetup", + "emailVerifyPurposePassport", + "emojiGroup", + "emojiKeyword", + "emojiKeywordDeleted", + "emojiKeywordsDifference", + "emojiLanguage", + "emojiList", + "emojiListNotModified", + "emojiStatus", + "emojiStatusEmpty", + "emojiStatusUntil", + "emojiURL", + "encryptedChat", + "encryptedChatDiscarded", + "encryptedChatEmpty", + "encryptedChatRequested", + "encryptedChatWaiting", + "encryptedFile", + "encryptedFileEmpty", + "encryptedMessage", + "encryptedMessageService", + "error", + "exportedChatlistInvite", + "exportedContactToken", + "exportedMessageLink", + "exportedStoryLink", + "fileHash", + "folder", + "folderPeer", + "forumTopic", + "forumTopicDeleted", + "game", + "geoPoint", + "geoPointEmpty", + "globalPrivacySettings", + "groupCall", + "groupCallDiscarded", + "groupCallParticipant", + "groupCallParticipantVideo", + "groupCallParticipantVideoSourceGroup", + "groupCallStreamChannel", + "help.appConfig", + "help.appConfigNotModified", + "help.appUpdate", + "help.countriesList", + "help.countriesListNotModified", + "help.country", + "help.countryCode", + "help.deepLinkInfo", + "help.deepLinkInfoEmpty", + "help.inviteText", + "help.noAppUpdate", + "help.passportConfig", + "help.passportConfigNotModified", + "help.peerColorOption", + "help.peerColorProfileSet", + "help.peerColorSet", + "help.peerColors", + "help.peerColorsNotModified", + "help.premiumPromo", + "help.promoData", + "help.promoDataEmpty", + "help.recentMeUrls", + "help.support", + "help.supportName", + "help.termsOfService", + "help.termsOfServiceUpdate", + "help.termsOfServiceUpdateEmpty", + "help.userInfo", + "help.userInfoEmpty", + "highScore", + "importedContact", + "inlineBotSwitchPM", + "inlineBotWebView", + "inlineQueryPeerTypeBotPM", + "inlineQueryPeerTypeBroadcast", + "inlineQueryPeerTypeChat", + "inlineQueryPeerTypeMegagroup", + "inlineQueryPeerTypePM", + "inlineQueryPeerTypeSameBotPM", + "inputAppEvent", + "inputBotAppID", + "inputBotAppShortName", + "inputBotInlineMessageGame", + "inputBotInlineMessageID", + "inputBotInlineMessageID64", + "inputBotInlineMessageMediaAuto", + "inputBotInlineMessageMediaContact", + "inputBotInlineMessageMediaGeo", + "inputBotInlineMessageMediaInvoice", + "inputBotInlineMessageMediaVenue", + "inputBotInlineMessageMediaWebPage", + "inputBotInlineMessageText", + "inputBotInlineResult", + "inputBotInlineResultDocument", + "inputBotInlineResultGame", + "inputBotInlineResultPhoto", + "inputChannel", + "inputChannelEmpty", + "inputChannelFromMessage", + "inputChatPhoto", + "inputChatPhotoEmpty", + "inputChatUploadedPhoto", + "inputChatlistDialogFilter", + "inputCheckPasswordEmpty", + "inputCheckPasswordSRP", + "inputClientProxy", + "inputDialogPeer", + "inputDialogPeerFolder", + "inputDocument", + "inputDocumentEmpty", + "inputDocumentFileLocation", + "inputEncryptedChat", + "inputEncryptedFile", + "inputEncryptedFileBigUploaded", + "inputEncryptedFileEmpty", + "inputEncryptedFileLocation", + "inputEncryptedFileUploaded", + "inputFile", + "inputFileBig", + "inputFileLocation", + "inputFolderPeer", + "inputGameID", + "inputGameShortName", + "inputGeoPoint", + "inputGeoPointEmpty", + "inputGroupCall", + "inputGroupCallStream", + "inputInvoiceMessage", + "inputInvoicePremiumGiftCode", + "inputInvoiceSlug", + "inputKeyboardButtonUrlAuth", + "inputKeyboardButtonUserProfile", + "inputMediaAreaChannelPost", + "inputMediaAreaVenue", + "inputMediaContact", + "inputMediaDice", + "inputMediaDocument", + "inputMediaDocumentExternal", + "inputMediaEmpty", + "inputMediaGame", + "inputMediaGeoLive", + "inputMediaGeoPoint", + "inputMediaInvoice", + "inputMediaPhoto", + "inputMediaPhotoExternal", + "inputMediaPoll", + "inputMediaStory", + "inputMediaUploadedDocument", + "inputMediaUploadedPhoto", + "inputMediaVenue", + "inputMediaWebPage", + "inputMessageCallbackQuery", + "inputMessageEntityMentionName", + "inputMessageID", + "inputMessagePinned", + "inputMessageReplyTo", + "inputMessagesFilterChatPhotos", + "inputMessagesFilterContacts", + "inputMessagesFilterDocument", + "inputMessagesFilterEmpty", + "inputMessagesFilterGeo", + "inputMessagesFilterGif", + "inputMessagesFilterMusic", + "inputMessagesFilterMyMentions", + "inputMessagesFilterPhoneCalls", + "inputMessagesFilterPhotoVideo", + "inputMessagesFilterPhotos", + "inputMessagesFilterPinned", + "inputMessagesFilterRoundVideo", + "inputMessagesFilterRoundVoice", + "inputMessagesFilterUrl", + "inputMessagesFilterVideo", + "inputMessagesFilterVoice", + "inputNotifyBroadcasts", + "inputNotifyChats", + "inputNotifyForumTopic", + "inputNotifyPeer", + "inputNotifyUsers", + "inputPaymentCredentials", + "inputPaymentCredentialsApplePay", + "inputPaymentCredentialsGooglePay", + "inputPaymentCredentialsSaved", + "inputPeerChannel", + "inputPeerChannelFromMessage", + "inputPeerChat", + "inputPeerEmpty", + "inputPeerNotifySettings", + "inputPeerPhotoFileLocation", + "inputPeerSelf", + "inputPeerUser", + "inputPeerUserFromMessage", + "inputPhoneCall", + "inputPhoneContact", + "inputPhoto", + "inputPhotoEmpty", + "inputPhotoFileLocation", + "inputPhotoLegacyFileLocation", + "inputPrivacyKeyAbout", + "inputPrivacyKeyAddedByPhone", + "inputPrivacyKeyChatInvite", + "inputPrivacyKeyForwards", + "inputPrivacyKeyPhoneCall", + "inputPrivacyKeyPhoneNumber", + "inputPrivacyKeyPhoneP2P", + "inputPrivacyKeyProfilePhoto", + "inputPrivacyKeyStatusTimestamp", + "inputPrivacyKeyVoiceMessages", + "inputPrivacyValueAllowAll", + "inputPrivacyValueAllowChatParticipants", + "inputPrivacyValueAllowCloseFriends", + "inputPrivacyValueAllowContacts", + "inputPrivacyValueAllowUsers", + "inputPrivacyValueDisallowAll", + "inputPrivacyValueDisallowChatParticipants", + "inputPrivacyValueDisallowContacts", + "inputPrivacyValueDisallowUsers", + "inputReplyToMessage", + "inputReplyToStory", + "inputReportReasonChildAbuse", + "inputReportReasonCopyright", + "inputReportReasonFake", + "inputReportReasonGeoIrrelevant", + "inputReportReasonIllegalDrugs", + "inputReportReasonOther", + "inputReportReasonPersonalDetails", + "inputReportReasonPornography", + "inputReportReasonSpam", + "inputReportReasonViolence", + "inputSecureFile", + "inputSecureFileLocation", + "inputSecureFileUploaded", + "inputSecureValue", + "inputSingleMedia", + "inputStickerSetAnimatedEmoji", + "inputStickerSetAnimatedEmojiAnimations", + "inputStickerSetDice", + "inputStickerSetEmojiChannelDefaultStatuses", + "inputStickerSetEmojiDefaultStatuses", + "inputStickerSetEmojiDefaultTopicIcons", + "inputStickerSetEmojiGenericAnimations", + "inputStickerSetEmpty", + "inputStickerSetID", + "inputStickerSetItem", + "inputStickerSetPremiumGifts", + "inputStickerSetShortName", + "inputStickerSetThumb", + "inputStickeredMediaDocument", + "inputStickeredMediaPhoto", + "inputStorePaymentGiftPremium", + "inputStorePaymentPremiumGiftCode", + "inputStorePaymentPremiumGiveaway", + "inputStorePaymentPremiumSubscription", + "inputTakeoutFileLocation", + "inputTheme", + "inputThemeSettings", + "inputThemeSlug", + "inputUser", + "inputUserEmpty", + "inputUserFromMessage", + "inputUserSelf", + "inputWallPaper", + "inputWallPaperNoFile", + "inputWallPaperSlug", + "inputWebDocument", + "inputWebFileAudioAlbumThumbLocation", + "inputWebFileGeoPointLocation", + "inputWebFileLocation", + "invoice", + "jsonArray", + "jsonBool", + "jsonNull", + "jsonNumber", + "jsonObject", + "jsonObjectValue", + "jsonString", + "keyboardButton", + "keyboardButtonBuy", + "keyboardButtonCallback", + "keyboardButtonGame", + "keyboardButtonRequestGeoLocation", + "keyboardButtonRequestPeer", + "keyboardButtonRequestPhone", + "keyboardButtonRequestPoll", + "keyboardButtonRow", + "keyboardButtonSimpleWebView", + "keyboardButtonSwitchInline", + "keyboardButtonUrl", + "keyboardButtonUrlAuth", + "keyboardButtonUserProfile", + "keyboardButtonWebView", + "labeledPrice", + "langPackDifference", + "langPackLanguage", + "langPackString", + "langPackStringDeleted", + "langPackStringPluralized", + "maskCoords", + "mediaAreaChannelPost", + "mediaAreaCoordinates", + "mediaAreaGeoPoint", + "mediaAreaSuggestedReaction", + "mediaAreaVenue", + "message", + "messageActionBotAllowed", + "messageActionChannelCreate", + "messageActionChannelMigrateFrom", + "messageActionChatAddUser", + "messageActionChatCreate", + "messageActionChatDeletePhoto", + "messageActionChatDeleteUser", + "messageActionChatEditPhoto", + "messageActionChatEditTitle", + "messageActionChatJoinedByLink", + "messageActionChatJoinedByRequest", + "messageActionChatMigrateTo", + "messageActionContactSignUp", + "messageActionCustomAction", + "messageActionEmpty", + "messageActionGameScore", + "messageActionGeoProximityReached", + "messageActionGiftCode", + "messageActionGiftPremium", + "messageActionGiveawayLaunch", + "messageActionGiveawayResults", + "messageActionGroupCall", + "messageActionGroupCallScheduled", + "messageActionHistoryClear", + "messageActionInviteToGroupCall", + "messageActionPaymentSent", + "messageActionPaymentSentMe", + "messageActionPhoneCall", + "messageActionPinMessage", + "messageActionRequestedPeer", + "messageActionScreenshotTaken", + "messageActionSecureValuesSent", + "messageActionSecureValuesSentMe", + "messageActionSetChatTheme", + "messageActionSetChatWallPaper", + "messageActionSetMessagesTTL", + "messageActionSuggestProfilePhoto", + "messageActionTopicCreate", + "messageActionTopicEdit", + "messageActionWebViewDataSent", + "messageActionWebViewDataSentMe", + "messageEmpty", + "messageEntityBankCard", + "messageEntityBlockquote", + "messageEntityBold", + "messageEntityBotCommand", + "messageEntityCashtag", + "messageEntityCode", + "messageEntityCustomEmoji", + "messageEntityEmail", + "messageEntityHashtag", + "messageEntityItalic", + "messageEntityMention", + "messageEntityMentionName", + "messageEntityPhone", + "messageEntityPre", + "messageEntitySpoiler", + "messageEntityStrike", + "messageEntityTextUrl", + "messageEntityUnderline", + "messageEntityUnknown", + "messageEntityUrl", + "messageExtendedMedia", + "messageExtendedMediaPreview", + "messageFwdHeader", + "messageMediaContact", + "messageMediaDice", + "messageMediaDocument", + "messageMediaEmpty", + "messageMediaGame", + "messageMediaGeo", + "messageMediaGeoLive", + "messageMediaGiveaway", + "messageMediaGiveawayResults", + "messageMediaInvoice", + "messageMediaPhoto", + "messageMediaPoll", + "messageMediaStory", + "messageMediaUnsupported", + "messageMediaVenue", + "messageMediaWebPage", + "messagePeerReaction", + "messagePeerVote", + "messagePeerVoteInputOption", + "messagePeerVoteMultiple", + "messageRange", + "messageReactions", + "messageReplies", + "messageReplyHeader", + "messageReplyStoryHeader", + "messageService", + "messageViews", + "messages.affectedFoundMessages", + "messages.affectedHistory", + "messages.affectedMessages", + "messages.allStickers", + "messages.allStickersNotModified", + "messages.archivedStickers", + "messages.availableReactions", + "messages.availableReactionsNotModified", + "messages.botApp", + "messages.botCallbackAnswer", + "messages.botResults", + "messages.channelMessages", + "messages.chatAdminsWithInvites", + "messages.chatFull", + "messages.chatInviteImporters", + "messages.chats", + "messages.chatsSlice", + "messages.checkedHistoryImportPeer", + "messages.dhConfig", + "messages.dhConfigNotModified", + "messages.dialogs", + "messages.dialogsNotModified", + "messages.dialogsSlice", + "messages.discussionMessage", + "messages.emojiGroups", + "messages.emojiGroupsNotModified", + "messages.exportedChatInvite", + "messages.exportedChatInviteReplaced", + "messages.exportedChatInvites", + "messages.favedStickers", + "messages.favedStickersNotModified", + "messages.featuredStickers", + "messages.featuredStickersNotModified", + "messages.forumTopics", + "messages.foundStickerSets", + "messages.foundStickerSetsNotModified", + "messages.highScores", + "messages.historyImport", + "messages.historyImportParsed", + "messages.inactiveChats", + "messages.messageEditData", + "messages.messageReactionsList", + "messages.messageViews", + "messages.messages", + "messages.messagesNotModified", + "messages.messagesSlice", + "messages.peerDialogs", + "messages.peerSettings", + "messages.reactions", + "messages.reactionsNotModified", + "messages.recentStickers", + "messages.recentStickersNotModified", + "messages.savedDialogs", + "messages.savedDialogsNotModified", + "messages.savedDialogsSlice", + "messages.savedGifs", + "messages.savedGifsNotModified", + "messages.searchCounter", + "messages.searchResultsCalendar", + "messages.searchResultsPositions", + "messages.sentEncryptedFile", + "messages.sentEncryptedMessage", + "messages.sponsoredMessages", + "messages.sponsoredMessagesEmpty", + "messages.stickerSet", + "messages.stickerSetInstallResultArchive", + "messages.stickerSetInstallResultSuccess", + "messages.stickerSetNotModified", + "messages.stickers", + "messages.stickersNotModified", + "messages.transcribedAudio", + "messages.translateResult", + "messages.votesList", + "messages.webPage", + "myBoost", + "nearestDc", + "notificationSoundDefault", + "notificationSoundLocal", + "notificationSoundNone", + "notificationSoundRingtone", + "notifyBroadcasts", + "notifyChats", + "notifyForumTopic", + "notifyPeer", + "notifyUsers", + "null", + "page", + "pageBlockAnchor", + "pageBlockAudio", + "pageBlockAuthorDate", + "pageBlockBlockquote", + "pageBlockChannel", + "pageBlockCollage", + "pageBlockCover", + "pageBlockDetails", + "pageBlockDivider", + "pageBlockEmbed", + "pageBlockEmbedPost", + "pageBlockFooter", + "pageBlockHeader", + "pageBlockKicker", + "pageBlockList", + "pageBlockMap", + "pageBlockOrderedList", + "pageBlockParagraph", + "pageBlockPhoto", + "pageBlockPreformatted", + "pageBlockPullquote", + "pageBlockRelatedArticles", + "pageBlockSlideshow", + "pageBlockSubheader", + "pageBlockSubtitle", + "pageBlockTable", + "pageBlockTitle", + "pageBlockUnsupported", + "pageBlockVideo", + "pageCaption", + "pageListItemBlocks", + "pageListItemText", + "pageListOrderedItemBlocks", + "pageListOrderedItemText", + "pageRelatedArticle", + "pageTableCell", + "pageTableRow", + "passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow", + "passwordKdfAlgoUnknown", + "paymentCharge", + "paymentFormMethod", + "paymentRequestedInfo", + "paymentSavedCredentialsCard", + "payments.bankCardData", + "payments.checkedGiftCode", + "payments.exportedInvoice", + "payments.giveawayInfo", + "payments.giveawayInfoResults", + "payments.paymentForm", + "payments.paymentReceipt", + "payments.paymentResult", + "payments.paymentVerificationNeeded", + "payments.savedInfo", + "payments.validatedRequestedInfo", + "peerBlocked", + "peerChannel", + "peerChat", + "peerColor", + "peerLocated", + "peerNotifySettings", + "peerSelfLocated", + "peerSettings", + "peerStories", + "peerUser", + "phone.exportedGroupCallInvite", + "phone.groupCall", + "phone.groupCallStreamChannels", + "phone.groupCallStreamRtmpUrl", + "phone.groupParticipants", + "phone.joinAsPeers", + "phone.phoneCall", + "phoneCall", + "phoneCallAccepted", + "phoneCallDiscardReasonBusy", + "phoneCallDiscardReasonDisconnect", + "phoneCallDiscardReasonHangup", + "phoneCallDiscardReasonMissed", + "phoneCallDiscarded", + "phoneCallEmpty", + "phoneCallProtocol", + "phoneCallRequested", + "phoneCallWaiting", + "phoneConnection", + "phoneConnectionWebrtc", + "photo", + "photoCachedSize", + "photoEmpty", + "photoPathSize", + "photoSize", + "photoSizeEmpty", + "photoSizeProgressive", + "photoStrippedSize", + "photos.photo", + "photos.photos", + "photos.photosSlice", + "poll", + "pollAnswer", + "pollAnswerVoters", + "pollResults", + "popularContact", + "postAddress", + "postInteractionCountersMessage", + "postInteractionCountersStory", + "premium.boostsList", + "premium.boostsStatus", + "premium.myBoosts", + "premiumGiftCodeOption", + "premiumGiftOption", + "premiumSubscriptionOption", + "prepaidGiveaway", + "privacyKeyAbout", + "privacyKeyAddedByPhone", + "privacyKeyChatInvite", + "privacyKeyForwards", + "privacyKeyPhoneCall", + "privacyKeyPhoneNumber", + "privacyKeyPhoneP2P", + "privacyKeyProfilePhoto", + "privacyKeyStatusTimestamp", + "privacyKeyVoiceMessages", + "privacyValueAllowAll", + "privacyValueAllowChatParticipants", + "privacyValueAllowCloseFriends", + "privacyValueAllowContacts", + "privacyValueAllowUsers", + "privacyValueDisallowAll", + "privacyValueDisallowChatParticipants", + "privacyValueDisallowContacts", + "privacyValueDisallowUsers", + "publicForwardMessage", + "publicForwardStory", + "reactionCount", + "reactionCustomEmoji", + "reactionEmoji", + "reactionEmpty", + "readParticipantDate", + "receivedNotifyMessage", + "recentMeUrlChat", + "recentMeUrlChatInvite", + "recentMeUrlStickerSet", + "recentMeUrlUnknown", + "recentMeUrlUser", + "replyInlineMarkup", + "replyKeyboardForceReply", + "replyKeyboardHide", + "replyKeyboardMarkup", + "requestPeerTypeBroadcast", + "requestPeerTypeChat", + "requestPeerTypeUser", + "restrictionReason", + "savedDialog", + "savedPhoneContact", + "searchResultPosition", + "searchResultsCalendarPeriod", + "secureCredentialsEncrypted", + "secureData", + "secureFile", + "secureFileEmpty", + "securePasswordKdfAlgoPBKDF2HMACSHA512iter100000", + "securePasswordKdfAlgoSHA512", + "securePasswordKdfAlgoUnknown", + "securePlainEmail", + "securePlainPhone", + "secureRequiredType", + "secureRequiredTypeOneOf", + "secureSecretSettings", + "secureValue", + "secureValueError", + "secureValueErrorData", + "secureValueErrorFile", + "secureValueErrorFiles", + "secureValueErrorFrontSide", + "secureValueErrorReverseSide", + "secureValueErrorSelfie", + "secureValueErrorTranslationFile", + "secureValueErrorTranslationFiles", + "secureValueHash", + "secureValueTypeAddress", + "secureValueTypeBankStatement", + "secureValueTypeDriverLicense", + "secureValueTypeEmail", + "secureValueTypeIdentityCard", + "secureValueTypeInternalPassport", + "secureValueTypePassport", + "secureValueTypePassportRegistration", + "secureValueTypePersonalDetails", + "secureValueTypePhone", + "secureValueTypeRentalAgreement", + "secureValueTypeTemporaryRegistration", + "secureValueTypeUtilityBill", + "sendAsPeer", + "sendMessageCancelAction", + "sendMessageChooseContactAction", + "sendMessageChooseStickerAction", + "sendMessageEmojiInteraction", + "sendMessageEmojiInteractionSeen", + "sendMessageGamePlayAction", + "sendMessageGeoLocationAction", + "sendMessageHistoryImportAction", + "sendMessageRecordAudioAction", + "sendMessageRecordRoundAction", + "sendMessageRecordVideoAction", + "sendMessageTypingAction", + "sendMessageUploadAudioAction", + "sendMessageUploadDocumentAction", + "sendMessageUploadPhotoAction", + "sendMessageUploadRoundAction", + "sendMessageUploadVideoAction", + "shippingOption", + "simpleWebViewResultUrl", + "speakingInGroupCallAction", + "sponsoredMessage", + "sponsoredWebPage", + "stats.broadcastStats", + "stats.megagroupStats", + "stats.messageStats", + "stats.publicForwards", + "stats.storyStats", + "statsAbsValueAndPrev", + "statsDateRangeDays", + "statsGraph", + "statsGraphAsync", + "statsGraphError", + "statsGroupTopAdmin", + "statsGroupTopInviter", + "statsGroupTopPoster", + "statsPercentValue", + "statsURL", + "stickerKeyword", + "stickerPack", + "stickerSet", + "stickerSetCovered", + "stickerSetFullCovered", + "stickerSetMultiCovered", + "stickerSetNoCovered", + "stickers.suggestedShortName", + "storage.fileGif", + "storage.fileJpeg", + "storage.fileMov", + "storage.fileMp3", + "storage.fileMp4", + "storage.filePartial", + "storage.filePdf", + "storage.filePng", + "storage.fileUnknown", + "storage.fileWebp", + "stories.allStories", + "stories.allStoriesNotModified", + "stories.peerStories", + "stories.stories", + "stories.storyReactionsList", + "stories.storyViews", + "stories.storyViewsList", + "storiesStealthMode", + "storyFwdHeader", + "storyItem", + "storyItemDeleted", + "storyItemSkipped", + "storyReaction", + "storyReactionPublicForward", + "storyReactionPublicRepost", + "storyView", + "storyViewPublicForward", + "storyViewPublicRepost", + "storyViews", + "textAnchor", + "textBold", + "textConcat", + "textEmail", + "textEmpty", + "textFixed", + "textImage", + "textItalic", + "textMarked", + "textPhone", + "textPlain", + "textStrike", + "textSubscript", + "textSuperscript", + "textUnderline", + "textUrl", + "textWithEntities", + "theme", + "themeSettings", + "topPeer", + "topPeerCategoryBotsInline", + "topPeerCategoryBotsPM", + "topPeerCategoryChannels", + "topPeerCategoryCorrespondents", + "topPeerCategoryForwardChats", + "topPeerCategoryForwardUsers", + "topPeerCategoryGroups", + "topPeerCategoryPeers", + "topPeerCategoryPhoneCalls", + "true", + "updateAttachMenuBots", + "updateAutoSaveSettings", + "updateBotCallbackQuery", + "updateBotChatBoost", + "updateBotChatInviteRequester", + "updateBotCommands", + "updateBotInlineQuery", + "updateBotInlineSend", + "updateBotMenuButton", + "updateBotMessageReaction", + "updateBotMessageReactions", + "updateBotPrecheckoutQuery", + "updateBotShippingQuery", + "updateBotStopped", + "updateBotWebhookJSON", + "updateBotWebhookJSONQuery", + "updateChannel", + "updateChannelAvailableMessages", + "updateChannelMessageForwards", + "updateChannelMessageViews", + "updateChannelParticipant", + "updateChannelPinnedTopic", + "updateChannelPinnedTopics", + "updateChannelReadMessagesContents", + "updateChannelTooLong", + "updateChannelUserTyping", + "updateChannelViewForumAsMessages", + "updateChannelWebPage", + "updateChat", + "updateChatDefaultBannedRights", + "updateChatParticipant", + "updateChatParticipantAdd", + "updateChatParticipantAdmin", + "updateChatParticipantDelete", + "updateChatParticipants", + "updateChatUserTyping", + "updateConfig", + "updateContactsReset", + "updateDcOptions", + "updateDeleteChannelMessages", + "updateDeleteMessages", + "updateDeleteScheduledMessages", + "updateDialogFilter", + "updateDialogFilterOrder", + "updateDialogFilters", + "updateDialogPinned", + "updateDialogUnreadMark", + "updateDraftMessage", + "updateEditChannelMessage", + "updateEditMessage", + "updateEncryptedChatTyping", + "updateEncryptedMessagesRead", + "updateEncryption", + "updateFavedStickers", + "updateFolderPeers", + "updateGeoLiveViewed", + "updateGroupCall", + "updateGroupCallConnection", + "updateGroupCallParticipants", + "updateGroupInvitePrivacyForbidden", + "updateInlineBotCallbackQuery", + "updateLangPack", + "updateLangPackTooLong", + "updateLoginToken", + "updateMessageExtendedMedia", + "updateMessageID", + "updateMessagePoll", + "updateMessagePollVote", + "updateMessageReactions", + "updateMoveStickerSetToTop", + "updateNewAuthorization", + "updateNewChannelMessage", + "updateNewEncryptedMessage", + "updateNewMessage", + "updateNewScheduledMessage", + "updateNewStickerSet", + "updateNotifySettings", + "updatePeerBlocked", + "updatePeerHistoryTTL", + "updatePeerLocated", + "updatePeerSettings", + "updatePeerWallpaper", + "updatePendingJoinRequests", + "updatePhoneCall", + "updatePhoneCallSignalingData", + "updatePinnedChannelMessages", + "updatePinnedDialogs", + "updatePinnedMessages", + "updatePinnedSavedDialogs", + "updatePrivacy", + "updatePtsChanged", + "updateReadChannelDiscussionInbox", + "updateReadChannelDiscussionOutbox", + "updateReadChannelInbox", + "updateReadChannelOutbox", + "updateReadFeaturedEmojiStickers", + "updateReadFeaturedStickers", + "updateReadHistoryInbox", + "updateReadHistoryOutbox", + "updateReadMessagesContents", + "updateReadStories", + "updateRecentEmojiStatuses", + "updateRecentReactions", + "updateRecentStickers", + "updateSavedDialogPinned", + "updateSavedGifs", + "updateSavedRingtones", + "updateSentStoryReaction", + "updateServiceNotification", + "updateShort", + "updateShortChatMessage", + "updateShortMessage", + "updateShortSentMessage", + "updateStickerSets", + "updateStickerSetsOrder", + "updateStoriesStealthMode", + "updateStory", + "updateStoryID", + "updateTheme", + "updateTranscribedAudio", + "updateUser", + "updateUserEmojiStatus", + "updateUserName", + "updateUserPhone", + "updateUserStatus", + "updateUserTyping", + "updateWebPage", + "updateWebViewResultSent", + "updates", + "updates.channelDifference", + "updates.channelDifferenceEmpty", + "updates.channelDifferenceTooLong", + "updates.difference", + "updates.differenceEmpty", + "updates.differenceSlice", + "updates.differenceTooLong", + "updates.state", + "updatesCombined", + "updatesTooLong", + "upload.cdnFile", + "upload.cdnFileReuploadNeeded", + "upload.file", + "upload.fileCdnRedirect", + "upload.webFile", + "urlAuthResultAccepted", + "urlAuthResultDefault", + "urlAuthResultRequest", + "user", + "userEmpty", + "userFull", + "userProfilePhoto", + "userProfilePhotoEmpty", + "userStatusEmpty", + "userStatusLastMonth", + "userStatusLastWeek", + "userStatusOffline", + "userStatusOnline", + "userStatusRecently", + "username", + "users.userFull", + "vector", + "videoSize", + "videoSizeEmojiMarkup", + "videoSizeStickerMarkup", + "wallPaper", + "wallPaperNoFile", + "wallPaperSettings", + "webAuthorization", + "webDocument", + "webDocumentNoProxy", + "webPage", + "webPageAttributeStory", + "webPageAttributeTheme", + "webPageEmpty", + "webPageNotModified", + "webPagePending", + "webViewMessageSent", + "webViewResultUrl" + ] + }, + { + "name": "method", + "values": [ + "account.acceptAuthorization", + "account.cancelPasswordEmail", + "account.changeAuthorizationSettings", + "account.changePhone", + "account.checkUsername", + "account.clearRecentEmojiStatuses", + "account.confirmPasswordEmail", + "account.confirmPhone", + "account.createTheme", + "account.declinePasswordReset", + "account.deleteAccount", + "account.deleteAutoSaveExceptions", + "account.deleteSecureValue", + "account.finishTakeoutSession", + "account.getAccountTTL", + "account.getAllSecureValues", + "account.getAuthorizationForm", + "account.getAuthorizations", + "account.getAutoDownloadSettings", + "account.getAutoSaveSettings", + "account.getChannelDefaultEmojiStatuses", + "account.getChannelRestrictedStatusEmojis", + "account.getChatThemes", + "account.getContactSignUpNotification", + "account.getContentSettings", + "account.getDefaultBackgroundEmojis", + "account.getDefaultEmojiStatuses", + "account.getDefaultGroupPhotoEmojis", + "account.getDefaultProfilePhotoEmojis", + "account.getGlobalPrivacySettings", + "account.getMultiWallPapers", + "account.getNotifyExceptions", + "account.getNotifySettings", + "account.getPassword", + "account.getPasswordSettings", + "account.getPrivacy", + "account.getRecentEmojiStatuses", + "account.getSavedRingtones", + "account.getSecureValue", + "account.getTheme", + "account.getThemes", + "account.getTmpPassword", + "account.getWallPaper", + "account.getWallPapers", + "account.getWebAuthorizations", + "account.initTakeoutSession", + "account.installTheme", + "account.installWallPaper", + "account.invalidateSignInCodes", + "account.registerDevice", + "account.reorderUsernames", + "account.reportPeer", + "account.reportProfilePhoto", + "account.resendPasswordEmail", + "account.resetAuthorization", + "account.resetNotifySettings", + "account.resetPassword", + "account.resetWallPapers", + "account.resetWebAuthorization", + "account.resetWebAuthorizations", + "account.saveAutoDownloadSettings", + "account.saveAutoSaveSettings", + "account.saveRingtone", + "account.saveSecureValue", + "account.saveTheme", + "account.saveWallPaper", + "account.sendChangePhoneCode", + "account.sendConfirmPhoneCode", + "account.sendVerifyEmailCode", + "account.sendVerifyPhoneCode", + "account.setAccountTTL", + "account.setAuthorizationTTL", + "account.setContactSignUpNotification", + "account.setContentSettings", + "account.setGlobalPrivacySettings", + "account.setPrivacy", + "account.toggleUsername", + "account.unregisterDevice", + "account.updateColor", + "account.updateDeviceLocked", + "account.updateEmojiStatus", + "account.updateNotifySettings", + "account.updatePasswordSettings", + "account.updateProfile", + "account.updateStatus", + "account.updateTheme", + "account.updateUsername", + "account.uploadRingtone", + "account.uploadTheme", + "account.uploadWallPaper", + "account.verifyEmail", + "account.verifyPhone", + "auth.acceptLoginToken", + "auth.bindTempAuthKey", + "auth.cancelCode", + "auth.checkPassword", + "auth.checkRecoveryPassword", + "auth.dropTempAuthKeys", + "auth.exportAuthorization", + "auth.exportLoginToken", + "auth.importAuthorization", + "auth.importBotAuthorization", + "auth.importLoginToken", + "auth.importWebTokenAuthorization", + "auth.logOut", + "auth.recoverPassword", + "auth.requestFirebaseSms", + "auth.requestPasswordRecovery", + "auth.resendCode", + "auth.resetAuthorizations", + "auth.resetLoginEmail", + "auth.sendCode", + "auth.signIn", + "auth.signUp", + "bots.allowSendMessage", + "bots.answerWebhookJSONQuery", + "bots.canSendMessage", + "bots.getBotCommands", + "bots.getBotInfo", + "bots.getBotMenuButton", + "bots.invokeWebViewCustomMethod", + "bots.reorderUsernames", + "bots.resetBotCommands", + "bots.sendCustomRequest", + "bots.setBotBroadcastDefaultAdminRights", + "bots.setBotCommands", + "bots.setBotGroupDefaultAdminRights", + "bots.setBotInfo", + "bots.setBotMenuButton", + "bots.toggleUsername", + "channels.checkUsername", + "channels.clickSponsoredMessage", + "channels.convertToGigagroup", + "channels.createChannel", + "channels.createForumTopic", + "channels.deactivateAllUsernames", + "channels.deleteChannel", + "channels.deleteHistory", + "channels.deleteMessages", + "channels.deleteParticipantHistory", + "channels.deleteTopicHistory", + "channels.editAdmin", + "channels.editBanned", + "channels.editCreator", + "channels.editForumTopic", + "channels.editLocation", + "channels.editPhoto", + "channels.editTitle", + "channels.exportMessageLink", + "channels.getAdminLog", + "channels.getAdminedPublicChannels", + "channels.getChannelRecommendations", + "channels.getChannels", + "channels.getForumTopics", + "channels.getForumTopicsByID", + "channels.getFullChannel", + "channels.getGroupsForDiscussion", + "channels.getInactiveChannels", + "channels.getLeftChannels", + "channels.getMessages", + "channels.getParticipant", + "channels.getParticipants", + "channels.getSendAs", + "channels.getSponsoredMessages", + "channels.inviteToChannel", + "channels.joinChannel", + "channels.leaveChannel", + "channels.readHistory", + "channels.readMessageContents", + "channels.reorderPinnedForumTopics", + "channels.reorderUsernames", + "channels.reportAntiSpamFalsePositive", + "channels.reportSpam", + "channels.setDiscussionGroup", + "channels.setStickers", + "channels.toggleAntiSpam", + "channels.toggleForum", + "channels.toggleJoinRequest", + "channels.toggleJoinToSend", + "channels.toggleParticipantsHidden", + "channels.togglePreHistoryHidden", + "channels.toggleSignatures", + "channels.toggleSlowMode", + "channels.toggleUsername", + "channels.toggleViewForumAsMessages", + "channels.updateColor", + "channels.updateEmojiStatus", + "channels.updatePinnedForumTopic", + "channels.updateUsername", + "channels.viewSponsoredMessage", + "chatlists.checkChatlistInvite", + "chatlists.deleteExportedInvite", + "chatlists.editExportedInvite", + "chatlists.exportChatlistInvite", + "chatlists.getChatlistUpdates", + "chatlists.getExportedInvites", + "chatlists.getLeaveChatlistSuggestions", + "chatlists.hideChatlistUpdates", + "chatlists.joinChatlistInvite", + "chatlists.joinChatlistUpdates", + "chatlists.leaveChatlist", + "contacts.acceptContact", + "contacts.addContact", + "contacts.block", + "contacts.blockFromReplies", + "contacts.deleteByPhones", + "contacts.deleteContacts", + "contacts.editCloseFriends", + "contacts.exportContactToken", + "contacts.getBlocked", + "contacts.getContactIDs", + "contacts.getContacts", + "contacts.getLocated", + "contacts.getSaved", + "contacts.getStatuses", + "contacts.getTopPeers", + "contacts.importContactToken", + "contacts.importContacts", + "contacts.resetSaved", + "contacts.resetTopPeerRating", + "contacts.resolvePhone", + "contacts.resolveUsername", + "contacts.search", + "contacts.setBlocked", + "contacts.toggleTopPeers", + "contacts.unblock", + "folders.editPeerFolders", + "help.acceptTermsOfService", + "help.dismissSuggestion", + "help.editUserInfo", + "help.getAppConfig", + "help.getAppUpdate", + "help.getCdnConfig", + "help.getConfig", + "help.getCountriesList", + "help.getDeepLinkInfo", + "help.getInviteText", + "help.getNearestDc", + "help.getPassportConfig", + "help.getPeerColors", + "help.getPeerProfileColors", + "help.getPremiumPromo", + "help.getPromoData", + "help.getRecentMeUrls", + "help.getSupport", + "help.getSupportName", + "help.getTermsOfServiceUpdate", + "help.getUserInfo", + "help.hidePromoData", + "help.saveAppLog", + "help.setBotUpdatesStatus", + "initConnection", + "invokeAfterMsg", + "invokeAfterMsgs", + "invokeWithLayer", + "invokeWithMessagesRange", + "invokeWithTakeout", + "invokeWithoutUpdates", + "langpack.getDifference", + "langpack.getLangPack", + "langpack.getLanguage", + "langpack.getLanguages", + "langpack.getStrings", + "messages.acceptEncryption", + "messages.acceptUrlAuth", + "messages.addChatUser", + "messages.checkChatInvite", + "messages.checkHistoryImport", + "messages.checkHistoryImportPeer", + "messages.clearAllDrafts", + "messages.clearRecentReactions", + "messages.clearRecentStickers", + "messages.createChat", + "messages.deleteChat", + "messages.deleteChatUser", + "messages.deleteExportedChatInvite", + "messages.deleteHistory", + "messages.deleteMessages", + "messages.deletePhoneCallHistory", + "messages.deleteRevokedExportedChatInvites", + "messages.deleteSavedHistory", + "messages.deleteScheduledMessages", + "messages.discardEncryption", + "messages.editChatAbout", + "messages.editChatAdmin", + "messages.editChatDefaultBannedRights", + "messages.editChatPhoto", + "messages.editChatTitle", + "messages.editExportedChatInvite", + "messages.editInlineBotMessage", + "messages.editMessage", + "messages.exportChatInvite", + "messages.faveSticker", + "messages.forwardMessages", + "messages.getAdminsWithInvites", + "messages.getAllDrafts", + "messages.getAllStickers", + "messages.getArchivedStickers", + "messages.getAttachMenuBot", + "messages.getAttachMenuBots", + "messages.getAttachedStickers", + "messages.getAvailableReactions", + "messages.getBotApp", + "messages.getBotCallbackAnswer", + "messages.getChatInviteImporters", + "messages.getChats", + "messages.getCommonChats", + "messages.getCustomEmojiDocuments", + "messages.getDefaultHistoryTTL", + "messages.getDhConfig", + "messages.getDialogFilters", + "messages.getDialogUnreadMarks", + "messages.getDialogs", + "messages.getDiscussionMessage", + "messages.getDocumentByHash", + "messages.getEmojiGroups", + "messages.getEmojiKeywords", + "messages.getEmojiKeywordsDifference", + "messages.getEmojiKeywordsLanguages", + "messages.getEmojiProfilePhotoGroups", + "messages.getEmojiStatusGroups", + "messages.getEmojiStickers", + "messages.getEmojiURL", + "messages.getExportedChatInvite", + "messages.getExportedChatInvites", + "messages.getExtendedMedia", + "messages.getFavedStickers", + "messages.getFeaturedEmojiStickers", + "messages.getFeaturedStickers", + "messages.getFullChat", + "messages.getGameHighScores", + "messages.getHistory", + "messages.getInlineBotResults", + "messages.getInlineGameHighScores", + "messages.getMaskStickers", + "messages.getMessageEditData", + "messages.getMessageReactionsList", + "messages.getMessageReadParticipants", + "messages.getMessages", + "messages.getMessagesReactions", + "messages.getMessagesViews", + "messages.getOldFeaturedStickers", + "messages.getOnlines", + "messages.getPeerDialogs", + "messages.getPeerSettings", + "messages.getPinnedDialogs", + "messages.getPinnedSavedDialogs", + "messages.getPollResults", + "messages.getPollVotes", + "messages.getRecentLocations", + "messages.getRecentReactions", + "messages.getRecentStickers", + "messages.getReplies", + "messages.getSavedDialogs", + "messages.getSavedGifs", + "messages.getSavedHistory", + "messages.getScheduledHistory", + "messages.getScheduledMessages", + "messages.getSearchCounters", + "messages.getSearchResultsCalendar", + "messages.getSearchResultsPositions", + "messages.getSplitRanges", + "messages.getStickerSet", + "messages.getStickers", + "messages.getSuggestedDialogFilters", + "messages.getTopReactions", + "messages.getUnreadMentions", + "messages.getUnreadReactions", + "messages.getWebPage", + "messages.getWebPagePreview", + "messages.hideAllChatJoinRequests", + "messages.hideChatJoinRequest", + "messages.hidePeerSettingsBar", + "messages.importChatInvite", + "messages.initHistoryImport", + "messages.installStickerSet", + "messages.markDialogUnread", + "messages.migrateChat", + "messages.prolongWebView", + "messages.rateTranscribedAudio", + "messages.readDiscussion", + "messages.readEncryptedHistory", + "messages.readFeaturedStickers", + "messages.readHistory", + "messages.readMentions", + "messages.readMessageContents", + "messages.readReactions", + "messages.receivedMessages", + "messages.receivedQueue", + "messages.reorderPinnedDialogs", + "messages.reorderPinnedSavedDialogs", + "messages.reorderStickerSets", + "messages.report", + "messages.reportEncryptedSpam", + "messages.reportReaction", + "messages.reportSpam", + "messages.requestAppWebView", + "messages.requestEncryption", + "messages.requestSimpleWebView", + "messages.requestUrlAuth", + "messages.requestWebView", + "messages.saveDefaultSendAs", + "messages.saveDraft", + "messages.saveGif", + "messages.saveRecentSticker", + "messages.search", + "messages.searchCustomEmoji", + "messages.searchEmojiStickerSets", + "messages.searchGlobal", + "messages.searchSentMedia", + "messages.searchStickerSets", + "messages.sendBotRequestedPeer", + "messages.sendEncrypted", + "messages.sendEncryptedFile", + "messages.sendEncryptedService", + "messages.sendInlineBotResult", + "messages.sendMedia", + "messages.sendMessage", + "messages.sendMultiMedia", + "messages.sendReaction", + "messages.sendScheduledMessages", + "messages.sendScreenshotNotification", + "messages.sendVote", + "messages.sendWebViewData", + "messages.sendWebViewResultMessage", + "messages.setBotCallbackAnswer", + "messages.setBotPrecheckoutResults", + "messages.setBotShippingResults", + "messages.setChatAvailableReactions", + "messages.setChatTheme", + "messages.setChatWallPaper", + "messages.setDefaultHistoryTTL", + "messages.setDefaultReaction", + "messages.setEncryptedTyping", + "messages.setGameScore", + "messages.setHistoryTTL", + "messages.setInlineBotResults", + "messages.setInlineGameScore", + "messages.setTyping", + "messages.startBot", + "messages.startHistoryImport", + "messages.toggleBotInAttachMenu", + "messages.toggleDialogPin", + "messages.toggleNoForwards", + "messages.togglePeerTranslations", + "messages.toggleSavedDialogPin", + "messages.toggleStickerSets", + "messages.transcribeAudio", + "messages.translateText", + "messages.uninstallStickerSet", + "messages.unpinAllMessages", + "messages.updateDialogFilter", + "messages.updateDialogFiltersOrder", + "messages.updatePinnedMessage", + "messages.uploadEncryptedFile", + "messages.uploadImportedMedia", + "messages.uploadMedia", + "payments.applyGiftCode", + "payments.assignAppStoreTransaction", + "payments.assignPlayMarketTransaction", + "payments.canPurchasePremium", + "payments.checkGiftCode", + "payments.clearSavedInfo", + "payments.exportInvoice", + "payments.getBankCardData", + "payments.getGiveawayInfo", + "payments.getPaymentForm", + "payments.getPaymentReceipt", + "payments.getPremiumGiftCodeOptions", + "payments.getSavedInfo", + "payments.launchPrepaidGiveaway", + "payments.sendPaymentForm", + "payments.validateRequestedInfo", + "phone.acceptCall", + "phone.checkGroupCall", + "phone.confirmCall", + "phone.createGroupCall", + "phone.discardCall", + "phone.discardGroupCall", + "phone.editGroupCallParticipant", + "phone.editGroupCallTitle", + "phone.exportGroupCallInvite", + "phone.getCallConfig", + "phone.getGroupCall", + "phone.getGroupCallJoinAs", + "phone.getGroupCallStreamChannels", + "phone.getGroupCallStreamRtmpUrl", + "phone.getGroupParticipants", + "phone.inviteToGroupCall", + "phone.joinGroupCall", + "phone.joinGroupCallPresentation", + "phone.leaveGroupCall", + "phone.leaveGroupCallPresentation", + "phone.receivedCall", + "phone.requestCall", + "phone.saveCallDebug", + "phone.saveCallLog", + "phone.saveDefaultGroupCallJoinAs", + "phone.sendSignalingData", + "phone.setCallRating", + "phone.startScheduledGroupCall", + "phone.toggleGroupCallRecord", + "phone.toggleGroupCallSettings", + "phone.toggleGroupCallStartSubscription", + "photos.deletePhotos", + "photos.getUserPhotos", + "photos.updateProfilePhoto", + "photos.uploadContactProfilePhoto", + "photos.uploadProfilePhoto", + "premium.applyBoost", + "premium.getBoostsList", + "premium.getBoostsStatus", + "premium.getMyBoosts", + "premium.getUserBoosts", + "stats.getBroadcastStats", + "stats.getMegagroupStats", + "stats.getMessagePublicForwards", + "stats.getMessageStats", + "stats.getStoryPublicForwards", + "stats.getStoryStats", + "stats.loadAsyncGraph", + "stickers.addStickerToSet", + "stickers.changeSticker", + "stickers.changeStickerPosition", + "stickers.checkShortName", + "stickers.createStickerSet", + "stickers.deleteStickerSet", + "stickers.removeStickerFromSet", + "stickers.renameStickerSet", + "stickers.setStickerSetThumb", + "stickers.suggestShortName", + "stories.activateStealthMode", + "stories.canSendStory", + "stories.deleteStories", + "stories.editStory", + "stories.exportStoryLink", + "stories.getAllReadPeerStories", + "stories.getAllStories", + "stories.getChatsToSend", + "stories.getPeerMaxIDs", + "stories.getPeerStories", + "stories.getPinnedStories", + "stories.getStoriesArchive", + "stories.getStoriesByID", + "stories.getStoriesViews", + "stories.getStoryReactionsList", + "stories.getStoryViewsList", + "stories.incrementStoryViews", + "stories.readStories", + "stories.report", + "stories.sendReaction", + "stories.sendStory", + "stories.toggleAllStoriesHidden", + "stories.togglePeerStoriesHidden", + "stories.togglePinned", + "updates.getChannelDifference", + "updates.getDifference", + "updates.getState", + "upload.getCdnFile", + "upload.getCdnFileHashes", + "upload.getFile", + "upload.getFileHashes", + "upload.getWebFile", + "upload.reuploadCdnFile", + "upload.saveBigFilePart", + "upload.saveFilePart", + "users.getFullUser", + "users.getUsers", + "users.setSecureValueErrors" + ] + }, + { + "name": "type", + "values": [ + "#", + "AccountDaysTTL", + "AppWebViewResult", + "AttachMenuBot", + "AttachMenuBotIcon", + "AttachMenuBotIconColor", + "AttachMenuBots", + "AttachMenuBotsBot", + "AttachMenuPeerType", + "Authorization", + "AutoDownloadSettings", + "AutoSaveException", + "AutoSaveSettings", + "AvailableReaction", + "BankCardOpenUrl", + "BaseTheme", + "Bool", + "Boost", + "BotApp", + "BotCommand", + "BotCommandScope", + "BotInfo", + "BotInlineMessage", + "BotInlineResult", + "BotMenuButton", + "CdnConfig", + "CdnPublicKey", + "ChannelAdminLogEvent", + "ChannelAdminLogEventAction", + "ChannelAdminLogEventsFilter", + "ChannelLocation", + "ChannelMessagesFilter", + "ChannelParticipant", + "ChannelParticipantsFilter", + "Chat", + "ChatAdminRights", + "ChatAdminWithInvites", + "ChatBannedRights", + "ChatFull", + "ChatInvite", + "ChatInviteImporter", + "ChatOnlines", + "ChatParticipant", + "ChatParticipants", + "ChatPhoto", + "ChatReactions", + "CodeSettings", + "Config", + "Contact", + "ContactStatus", + "DataJSON", + "DcOption", + "DefaultHistoryTTL", + "Dialog", + "DialogFilter", + "DialogFilterSuggested", + "DialogPeer", + "Document", + "DocumentAttribute", + "DraftMessage", + "EmailVerification", + "EmailVerifyPurpose", + "EmojiGroup", + "EmojiKeyword", + "EmojiKeywordsDifference", + "EmojiLanguage", + "EmojiList", + "EmojiStatus", + "EmojiURL", + "EncryptedChat", + "EncryptedFile", + "EncryptedMessage", + "Error", + "ExportedChatInvite", + "ExportedChatlistInvite", + "ExportedContactToken", + "ExportedMessageLink", + "ExportedStoryLink", + "FileHash", + "Folder", + "FolderPeer", + "ForumTopic", + "Game", + "GeoPoint", + "GlobalPrivacySettings", + "GroupCall", + "GroupCallParticipant", + "GroupCallParticipantVideo", + "GroupCallParticipantVideoSourceGroup", + "GroupCallStreamChannel", + "HighScore", + "ImportedContact", + "InlineBotSwitchPM", + "InlineBotWebView", + "InlineQueryPeerType", + "InputAppEvent", + "InputBotApp", + "InputBotInlineMessage", + "InputBotInlineMessageID", + "InputBotInlineResult", + "InputChannel", + "InputChatPhoto", + "InputChatlist", + "InputCheckPasswordSRP", + "InputClientProxy", + "InputContact", + "InputDialogPeer", + "InputDocument", + "InputEncryptedChat", + "InputEncryptedFile", + "InputFile", + "InputFileLocation", + "InputFolderPeer", + "InputGame", + "InputGeoPoint", + "InputGroupCall", + "InputInvoice", + "InputMedia", + "InputMessage", + "InputNotifyPeer", + "InputPaymentCredentials", + "InputPeer", + "InputPeerNotifySettings", + "InputPhoneCall", + "InputPhoto", + "InputPrivacyKey", + "InputPrivacyRule", + "InputReplyTo", + "InputSecureFile", + "InputSecureValue", + "InputSingleMedia", + "InputStickerSet", + "InputStickerSetItem", + "InputStickeredMedia", + "InputStorePaymentPurpose", + "InputTheme", + "InputThemeSettings", + "InputUser", + "InputWallPaper", + "InputWebDocument", + "InputWebFileLocation", + "Invoice", + "JSONObjectValue", + "JSONValue", + "KeyboardButton", + "KeyboardButtonRow", + "LabeledPrice", + "LangPackDifference", + "LangPackLanguage", + "LangPackString", + "MaskCoords", + "MediaArea", + "MediaAreaCoordinates", + "Message", + "MessageAction", + "MessageEntity", + "MessageExtendedMedia", + "MessageFwdHeader", + "MessageMedia", + "MessagePeerReaction", + "MessagePeerVote", + "MessageRange", + "MessageReactions", + "MessageReplies", + "MessageReplyHeader", + "MessageViews", + "MessagesFilter", + "MyBoost", + "NearestDc", + "NotificationSound", + "NotifyPeer", + "Null", + "Page", + "PageBlock", + "PageCaption", + "PageListItem", + "PageListOrderedItem", + "PageRelatedArticle", + "PageTableCell", + "PageTableRow", + "PasswordKdfAlgo", + "PaymentCharge", + "PaymentFormMethod", + "PaymentRequestedInfo", + "PaymentSavedCredentials", + "Peer", + "PeerBlocked", + "PeerColor", + "PeerLocated", + "PeerNotifySettings", + "PeerSettings", + "PeerStories", + "PhoneCall", + "PhoneCallDiscardReason", + "PhoneCallProtocol", + "PhoneConnection", + "Photo", + "PhotoSize", + "Poll", + "PollAnswer", + "PollAnswerVoters", + "PollResults", + "PopularContact", + "PostAddress", + "PostInteractionCounters", + "PremiumGiftCodeOption", + "PremiumGiftOption", + "PremiumSubscriptionOption", + "PrepaidGiveaway", + "PrivacyKey", + "PrivacyRule", + "PublicForward", + "Reaction", + "ReactionCount", + "ReadParticipantDate", + "ReceivedNotifyMessage", + "RecentMeUrl", + "ReplyMarkup", + "ReportReason", + "RequestPeerType", + "RestrictionReason", + "RichText", + "SavedContact", + "SavedDialog", + "SearchResultsCalendarPeriod", + "SearchResultsPosition", + "SecureCredentialsEncrypted", + "SecureData", + "SecureFile", + "SecurePasswordKdfAlgo", + "SecurePlainData", + "SecureRequiredType", + "SecureSecretSettings", + "SecureValue", + "SecureValueError", + "SecureValueHash", + "SecureValueType", + "SendAsPeer", + "SendMessageAction", + "ShippingOption", + "SimpleWebViewResult", + "SponsoredMessage", + "SponsoredWebPage", + "StatsAbsValueAndPrev", + "StatsDateRangeDays", + "StatsGraph", + "StatsGroupTopAdmin", + "StatsGroupTopInviter", + "StatsGroupTopPoster", + "StatsPercentValue", + "StatsURL", + "StickerKeyword", + "StickerPack", + "StickerSet", + "StickerSetCovered", + "StoriesStealthMode", + "StoryFwdHeader", + "StoryItem", + "StoryReaction", + "StoryView", + "StoryViews", + "TextWithEntities", + "Theme", + "ThemeSettings", + "TopPeer", + "TopPeerCategory", + "TopPeerCategoryPeers", + "True", + "Update", + "Updates", + "UrlAuthResult", + "User", + "UserFull", + "UserProfilePhoto", + "UserStatus", + "Username", + "Vector t", + "VideoSize", + "WallPaper", + "WallPaperSettings", + "WebAuthorization", + "WebDocument", + "WebPage", + "WebPageAttribute", + "WebViewMessageSent", + "WebViewResult", + "account.AuthorizationForm", + "account.Authorizations", + "account.AutoDownloadSettings", + "account.AutoSaveSettings", + "account.ContentSettings", + "account.EmailVerified", + "account.EmojiStatuses", + "account.Password", + "account.PasswordInputSettings", + "account.PasswordSettings", + "account.PrivacyRules", + "account.ResetPasswordResult", + "account.SavedRingtone", + "account.SavedRingtones", + "account.SentEmailCode", + "account.Takeout", + "account.Themes", + "account.TmpPassword", + "account.WallPapers", + "account.WebAuthorizations", + "auth.Authorization", + "auth.CodeType", + "auth.ExportedAuthorization", + "auth.LoggedOut", + "auth.LoginToken", + "auth.PasswordRecovery", + "auth.SentCode", + "auth.SentCodeType", + "bots.BotInfo", + "bytes", + "channels.AdminLogResults", + "channels.ChannelParticipant", + "channels.ChannelParticipants", + "channels.SendAsPeers", + "chatlists.ChatlistInvite", + "chatlists.ChatlistUpdates", + "chatlists.ExportedChatlistInvite", + "chatlists.ExportedInvites", + "contacts.Blocked", + "contacts.Contacts", + "contacts.Found", + "contacts.ImportedContacts", + "contacts.ResolvedPeer", + "contacts.TopPeers", + "double", + "help.AppConfig", + "help.AppUpdate", + "help.CountriesList", + "help.Country", + "help.CountryCode", + "help.DeepLinkInfo", + "help.InviteText", + "help.PassportConfig", + "help.PeerColorOption", + "help.PeerColorSet", + "help.PeerColors", + "help.PremiumPromo", + "help.PromoData", + "help.RecentMeUrls", + "help.Support", + "help.SupportName", + "help.TermsOfService", + "help.TermsOfServiceUpdate", + "help.UserInfo", + "int", + "long", + "messages.AffectedFoundMessages", + "messages.AffectedHistory", + "messages.AffectedMessages", + "messages.AllStickers", + "messages.ArchivedStickers", + "messages.AvailableReactions", + "messages.BotApp", + "messages.BotCallbackAnswer", + "messages.BotResults", + "messages.ChatAdminsWithInvites", + "messages.ChatFull", + "messages.ChatInviteImporters", + "messages.Chats", + "messages.CheckedHistoryImportPeer", + "messages.DhConfig", + "messages.Dialogs", + "messages.DiscussionMessage", + "messages.EmojiGroups", + "messages.ExportedChatInvite", + "messages.ExportedChatInvites", + "messages.FavedStickers", + "messages.FeaturedStickers", + "messages.ForumTopics", + "messages.FoundStickerSets", + "messages.HighScores", + "messages.HistoryImport", + "messages.HistoryImportParsed", + "messages.InactiveChats", + "messages.MessageEditData", + "messages.MessageReactionsList", + "messages.MessageViews", + "messages.Messages", + "messages.PeerDialogs", + "messages.PeerSettings", + "messages.Reactions", + "messages.RecentStickers", + "messages.SavedDialogs", + "messages.SavedGifs", + "messages.SearchCounter", + "messages.SearchResultsCalendar", + "messages.SearchResultsPositions", + "messages.SentEncryptedMessage", + "messages.SponsoredMessages", + "messages.StickerSet", + "messages.StickerSetInstallResult", + "messages.Stickers", + "messages.TranscribedAudio", + "messages.TranslatedText", + "messages.VotesList", + "messages.WebPage", + "payments.BankCardData", + "payments.CheckedGiftCode", + "payments.ExportedInvoice", + "payments.GiveawayInfo", + "payments.PaymentForm", + "payments.PaymentReceipt", + "payments.PaymentResult", + "payments.SavedInfo", + "payments.ValidatedRequestedInfo", + "phone.ExportedGroupCallInvite", + "phone.GroupCall", + "phone.GroupCallStreamChannels", + "phone.GroupCallStreamRtmpUrl", + "phone.GroupParticipants", + "phone.JoinAsPeers", + "phone.PhoneCall", + "photos.Photo", + "photos.Photos", + "premium.BoostsList", + "premium.BoostsStatus", + "premium.MyBoosts", + "stats.BroadcastStats", + "stats.MegagroupStats", + "stats.MessageStats", + "stats.PublicForwards", + "stats.StoryStats", + "stickers.SuggestedShortName", + "storage.FileType", + "stories.AllStories", + "stories.PeerStories", + "stories.Stories", + "stories.StoryReactionsList", + "stories.StoryViews", + "stories.StoryViewsList", + "string", + "updates.ChannelDifference", + "updates.Difference", + "updates.State", + "upload.CdnFile", + "upload.File", + "upload.WebFile", + "users.UserFull" + ] + } + ] + }, + "constructors": { + "FileHash": { + "name": "FileHash", + "description": [ + "SHA256 Hash of an uploaded file, to be checked for validity after download" + ], + "fields": { + "hash": { + "name": "hash", + "description": "SHA-256 Hash of file chunk, to be checked for validity after download" + }, + "limit": { + "name": "limit", + "description": "Length" + }, + "offset": { + "name": "offset", + "description": "Offset from where to start computing SHA-256 hash" + } + } + }, + "Updates": { + "name": "Updates", + "description": [ + "Full constructor of updates" + ], + "fields": { + "chats": { + "name": "chats", + "description": "List of chats mentioned in updates" + }, + "date": { + "name": "date", + "description": "Current date" + }, + "seq": { + "name": "seq", + "description": "Total number of sent updates" + }, + "updates": { + "name": "updates", + "description": "List of updates" + }, + "users": { + "name": "users", + "description": "List of users mentioned in updates" + } + } + }, + "account.authorizationForm": { + "name": "account.authorizationForm", + "description": [ + "Telegram Passport¹ authorization form" + ], + "links": [ + "https://core.telegram.org/passport" + ], + "fields": { + "errors": { + "name": "errors", + "description": "Telegram Passport¹ errors", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "privacy_policy_url": { + "name": "privacy_policy_url", + "description": "URL of the service's privacy policy" + }, + "required_types": { + "name": "required_types", + "description": "Required Telegram Passport¹ documents", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "users": { + "name": "users", + "description": "Info about the bot to which the form will be submitted" + }, + "values": { + "name": "values", + "description": "Already submitted Telegram Passport¹ documents", + "links": [ + "https://core.telegram.org/passport" + ] + } + } + }, + "account.authorizations": { + "name": "account.authorizations", + "description": [ + "Logged-in sessions" + ], + "fields": { + "authorization_ttl_days": { + "name": "authorization_ttl_days", + "description": "Time-to-live of session" + }, + "authorizations": { + "name": "authorizations", + "description": "Logged-in sessions" + } + } + }, + "account.autoDownloadSettings": { + "name": "account.autoDownloadSettings", + "description": [ + "Media autodownload settings" + ], + "fields": { + "high": { + "name": "high", + "description": "High data usage preset" + }, + "low": { + "name": "low", + "description": "Low data usage preset" + }, + "medium": { + "name": "medium", + "description": "Medium data usage preset" + } + } + }, + "account.autoSaveSettings": { + "name": "account.autoSaveSettings", + "description": [ + "Contains media autosave settings" + ], + "fields": { + "broadcasts_settings": { + "name": "broadcasts_settings", + "description": "Default media autosave settings for channels¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "chats": { + "name": "chats", + "description": "Chats mentioned in the peer-specific granular autosave settings" + }, + "chats_settings": { + "name": "chats_settings", + "description": "Default media autosave settings for groups and supergroups¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "exceptions": { + "name": "exceptions", + "description": "Peer-specific granular autosave settings" + }, + "users": { + "name": "users", + "description": "Users mentioned in the peer-specific granular autosave settings" + }, + "users_settings": { + "name": "users_settings", + "description": "Default media autosave settings for private chats" + } + } + }, + "account.contentSettings": { + "name": "account.contentSettings", + "description": [ + "Sensitive content settings" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "sensitive_can_change": { + "name": "sensitive_can_change", + "description": "Whether the current client can change the sensitive content settings to view NSFW content" + }, + "sensitive_enabled": { + "name": "sensitive_enabled", + "description": "Whether viewing of sensitive (NSFW) content is enabled" + } + } + }, + "account.emailVerified": { + "name": "account.emailVerified", + "description": [ + "The email was verified correctly." + ], + "fields": { + "email": { + "name": "email", + "description": "The verified email address." + } + } + }, + "account.emailVerifiedLogin": { + "name": "account.emailVerifiedLogin", + "description": [ + "The email was verified correctly, and a login code was just sent to it." + ], + "fields": { + "email": { + "name": "email", + "description": "The verified email address." + }, + "sent_code": { + "name": "sent_code", + "description": "Info about the sent login code¹", + "links": [ + "https://core.telegram.org/api/auth" + ] + } + } + }, + "account.emojiStatuses": { + "name": "account.emojiStatuses", + "description": [ + "A list of emoji statuses¹" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ], + "fields": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "statuses": { + "name": "statuses", + "description": "Emoji statuses¹", + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + } + } + }, + "account.emojiStatusesNotModified": { + "name": "account.emojiStatusesNotModified", + "description": [ + "The server-side list of emoji statuses¹ hasn't changed" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + }, + "account.password": { + "name": "account.password", + "description": [ + "Configuration for two-factor authorization" + ], + "fields": { + "current_algo": { + "name": "current_algo", + "description": "The KDF algorithm for SRP two-factor authentication¹ of the current password", + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "email_unconfirmed_pattern": { + "name": "email_unconfirmed_pattern", + "description": "A password recovery email¹ with the specified pattern² is still awaiting verification", + "links": [ + "https://core.telegram.org/api/srp#email-verification", + "https://core.telegram.org/api/pattern" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "has_password": { + "name": "has_password", + "description": "Whether the user has a password" + }, + "has_recovery": { + "name": "has_recovery", + "description": "Whether the user has a recovery method configured" + }, + "has_secure_values": { + "name": "has_secure_values", + "description": "Whether telegram passport¹ is enabled", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "hint": { + "name": "hint", + "description": "Text hint for the password" + }, + "login_email_pattern": { + "name": "login_email_pattern", + "description": "A verified login email with the specified pattern¹ is configured", + "links": [ + "https://core.telegram.org/api/pattern" + ] + }, + "new_algo": { + "name": "new_algo", + "description": "The KDF algorithm for SRP two-factor authentication¹ to use when creating new passwords", + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "new_secure_algo": { + "name": "new_secure_algo", + "description": "The KDF algorithm for telegram passport¹", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "pending_reset_date": { + "name": "pending_reset_date", + "description": "The 2FA password will be automatically removed at this date, unless the user cancels the operation" + }, + "secure_random": { + "name": "secure_random", + "description": "Secure random string" + }, + "srp_B": { + "name": "srp_B", + "description": "Srp B param for SRP authorization¹", + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "srp_id": { + "name": "srp_id", + "description": "Srp ID param for SRP authorization¹", + "links": [ + "https://core.telegram.org/api/srp" + ] + } + } + }, + "account.passwordInputSettings": { + "name": "account.passwordInputSettings", + "description": [ + "Settings for setting up a new password" + ], + "fields": { + "email": { + "name": "email", + "description": "Password recovery email" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hint": { + "name": "hint", + "description": "Text hint for the password" + }, + "new_algo": { + "name": "new_algo", + "description": "The SRP algorithm¹ to use", + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "new_password_hash": { + "name": "new_password_hash", + "description": "The computed password hash¹", + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "new_secure_settings": { + "name": "new_secure_settings", + "description": "Telegram passport¹ settings", + "links": [ + "https://core.telegram.org/passport" + ] + } + } + }, + "account.passwordSettings": { + "name": "account.passwordSettings", + "description": [ + "Private info associated to the password info (recovery email, telegram passport¹ info \u0026 so on)" + ], + "links": [ + "https://core.telegram.org/passport" + ], + "fields": { + "email": { + "name": "email", + "description": "2FA Recovery email¹", + "links": [ + "https://core.telegram.org/api/srp#email-verification" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "secure_settings": { + "name": "secure_settings", + "description": "Telegram passport¹ settings", + "links": [ + "https://core.telegram.org/passport" + ] + } + } + }, + "account.privacyRules": { + "name": "account.privacyRules", + "description": [ + "Privacy rules" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chats to which the rules apply" + }, + "rules": { + "name": "rules", + "description": "Privacy rules" + }, + "users": { + "name": "users", + "description": "Users to which the rules apply" + } + } + }, + "account.resetPasswordFailedWait": { + "name": "account.resetPasswordFailedWait", + "description": [ + "You recently requested a password reset that was canceled, please wait until the specified date before requesting another reset." + ], + "fields": { + "retry_date": { + "name": "retry_date", + "description": "Wait until this date before requesting another reset." + } + } + }, + "account.resetPasswordOk": { + "name": "account.resetPasswordOk", + "description": [ + "The 2FA password was reset successfully." + ] + }, + "account.resetPasswordRequestedWait": { + "name": "account.resetPasswordRequestedWait", + "description": [ + "You successfully requested a password reset, please wait until the specified date before finalizing the reset." + ], + "fields": { + "until_date": { + "name": "until_date", + "description": "Wait until this date before finalizing the reset." + } + } + }, + "account.savedRingtone": { + "name": "account.savedRingtone", + "description": [ + "The notification sound was already in MP3 format and was saved without any modification" + ] + }, + "account.savedRingtoneConverted": { + "name": "account.savedRingtoneConverted", + "description": [ + "The notification sound was not in MP3 format and was successfully converted and saved, use the returned Document¹ to refer to the notification sound from now on" + ], + "links": [ + "https://core.telegram.org/type/Document" + ], + "fields": { + "document": { + "name": "document", + "description": "The converted notification sound" + } + } + }, + "account.savedRingtones": { + "name": "account.savedRingtones", + "description": [ + "A list of saved notification sounds" + ], + "fields": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "ringtones": { + "name": "ringtones", + "description": "Saved notification sounds" + } + } + }, + "account.savedRingtonesNotModified": { + "name": "account.savedRingtonesNotModified", + "description": [ + "The notification sound list hasn't changed." + ] + }, + "account.sentEmailCode": { + "name": "account.sentEmailCode", + "description": [ + "The sent email code" + ], + "fields": { + "email_pattern": { + "name": "email_pattern", + "description": "The email (to which the code was sent) must match this pattern¹", + "links": [ + "https://core.telegram.org/api/pattern" + ] + }, + "length": { + "name": "length", + "description": "The length of the verification code" + } + } + }, + "account.takeout": { + "name": "account.takeout", + "description": [ + "Takeout info" + ], + "fields": { + "id": { + "name": "id", + "description": "Takeout ID" + } + } + }, + "account.themes": { + "name": "account.themes", + "description": [ + "Installed themes" + ], + "fields": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "themes": { + "name": "themes", + "description": "Themes" + } + } + }, + "account.themesNotModified": { + "name": "account.themesNotModified", + "description": [ + "No new themes were installed" + ] + }, + "account.tmpPassword": { + "name": "account.tmpPassword", + "description": [ + "Temporary payment password" + ], + "fields": { + "tmp_password": { + "name": "tmp_password", + "description": "Temporary password" + }, + "valid_until": { + "name": "valid_until", + "description": "Validity period" + } + } + }, + "account.wallPapers": { + "name": "account.wallPapers", + "description": [ + "Installed wallpapers¹" + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "fields": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "wallpapers": { + "name": "wallpapers", + "description": "Wallpapers¹", + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + } + } + }, + "account.wallPapersNotModified": { + "name": "account.wallPapersNotModified", + "description": [ + "No new wallpapers¹ were found" + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + }, + "account.webAuthorizations": { + "name": "account.webAuthorizations", + "description": [ + "Web authorizations" + ], + "fields": { + "authorizations": { + "name": "authorizations", + "description": "Web authorization list" + }, + "users": { + "name": "users", + "description": "Users" + } + } + }, + "accountDaysTTL": { + "name": "accountDaysTTL", + "description": [ + "Time to live in days of the current account" + ], + "fields": { + "days": { + "name": "days", + "description": "This account will self-destruct in the specified number of days" + } + } + }, + "appWebViewResultUrl": { + "name": "appWebViewResultUrl", + "description": [ + "Contains the link that must be used to open a named Mini App¹." + ], + "links": [ + "https://core.telegram.org/api/bots/webapps#named-mini-apps" + ], + "fields": { + "url": { + "name": "url", + "description": "The URL to open" + } + } + }, + "attachMenuBot": { + "name": "attachMenuBot", + "description": [ + "Represents a bot mini app that can be launched from the attachment/side menu »¹", + "At least one of the show_in_attach_menu or the show_in_side_menu flags will always be set." + ], + "links": [ + "https://core.telegram.org/api/bots/attach" + ], + "fields": { + "bot_id": { + "name": "bot_id", + "description": "Bot ID" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "has_settings": { + "name": "has_settings", + "description": "Deprecated flag, can be ignored." + }, + "icons": { + "name": "icons", + "description": "List of platform-specific static icons and animations to use for the attachment menu button" + }, + "inactive": { + "name": "inactive", + "description": "If set, before launching the mini app the client should ask the user to add the mini app to the attachment/side menu, and only if the user accepts, after invoking messages.toggleBotInAttachMenu¹ the app should be opened.", + "links": [ + "https://core.telegram.org/method/messages.toggleBotInAttachMenu" + ] + }, + "peer_types": { + "name": "peer_types", + "description": "List of dialog types where this attachment menu entry should be shown" + }, + "request_write_access": { + "name": "request_write_access", + "description": "Whether the bot would like to send messages to the user." + }, + "short_name": { + "name": "short_name", + "description": "Attachment menu item name" + }, + "show_in_attach_menu": { + "name": "show_in_attach_menu", + "description": "Whether, when installed, an attachment menu entry should be shown for the Mini App." + }, + "show_in_side_menu": { + "name": "show_in_side_menu", + "description": "Whether, when installed, an entry in the main view side menu should be shown for the Mini App." + }, + "side_menu_disclaimer_needed": { + "name": "side_menu_disclaimer_needed", + "description": "If inactive if set and the user hasn't previously accepted the third-party mini apps Terms of Service¹ for this bot, when showing the mini app installation prompt, an additional mandatory checkbox to accept the mini apps TOS² and a disclaimer indicating that this Mini App is not affiliated to Telegram should be shown.", + "links": [ + "https://telegram.org/tos/mini-apps", + "https://telegram.org/tos/mini-apps" + ] + } + } + }, + "attachMenuBotIcon": { + "name": "attachMenuBotIcon", + "description": [ + "Represents an attachment menu icon for bot mini apps »¹" + ], + "links": [ + "https://core.telegram.org/api/bots/attach" + ], + "fields": { + "colors": { + "name": "colors", + "description": "Attachment menu icon colors." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "icon": { + "name": "icon", + "description": "The actual icon file." + }, + "name": { + "name": "name", + "description": "One of the following values: note that animated icons must be played when the user clicks on the button, activating the bot mini app. default_static - Default attachment menu icon in SVG format placeholder_static - Default placeholder for opened Web Apps in SVG format ios_static - Attachment menu icon in SVG format for the official iOS app ios_animated - Animated attachment menu icon in TGS format for the official iOS app android_animated - Animated attachment menu icon in TGS format for the official Android app macos_animated - Animated attachment menu icon in TGS format for the official native Mac OS app ios_side_menu_static - Side menu icon in PNG format for the official iOS app android_side_menu_static - Side menu icon in SVG format for the official android app macos_side_menu_static - Side menu icon in PNG format for the official native Mac OS app" + } + } + }, + "attachMenuBotIconColor": { + "name": "attachMenuBotIconColor", + "description": [ + "Represents an attachment menu icon color for bot mini apps »¹" + ], + "links": [ + "https://core.telegram.org/api/bots/attach" + ], + "fields": { + "color": { + "name": "color", + "description": "Color in RGB24 format" + }, + "name": { + "name": "name", + "description": "One of the following values: light_icon - Color of the attachment menu icon (light mode) light_text - Color of the attachment menu label, once selected (light mode) dark_icon - Color of the attachment menu icon (dark mode) dark_text - Color of the attachment menu label, once selected (dark mode)" + } + } + }, + "attachMenuBots": { + "name": "attachMenuBots", + "description": [ + "Represents a list of bot mini apps that can be launched from the attachment menu »¹" + ], + "links": [ + "https://core.telegram.org/api/bots/attach" + ], + "fields": { + "bots": { + "name": "bots", + "description": "List of bot mini apps that can be launched from the attachment menu »¹", + "links": [ + "https://core.telegram.org/api/bots/attach" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "users": { + "name": "users", + "description": "Info about related users/bots" + } + } + }, + "attachMenuBotsBot": { + "name": "attachMenuBotsBot", + "description": [ + "Represents a bot mini app that can be launched from the attachment menu »¹" + ], + "links": [ + "https://core.telegram.org/api/bots/attach" + ], + "fields": { + "bot": { + "name": "bot", + "description": "Represents a bot mini app that can be launched from the attachment menu »¹", + "links": [ + "https://core.telegram.org/api/bots/attach" + ] + }, + "users": { + "name": "users", + "description": "Info about related users and bots" + } + } + }, + "attachMenuBotsNotModified": { + "name": "attachMenuBotsNotModified", + "description": [ + "The list of bot mini apps hasn't changed" + ] + }, + "attachMenuPeerTypeBotPM": { + "name": "attachMenuPeerTypeBotPM", + "description": [ + "The bot attachment menu entry is available in private chats with other bots (excluding the bot that offers the current attachment menu)" + ] + }, + "attachMenuPeerTypeBroadcast": { + "name": "attachMenuPeerTypeBroadcast", + "description": [ + "The bot attachment menu entry is available in channels" + ] + }, + "attachMenuPeerTypeChat": { + "name": "attachMenuPeerTypeChat", + "description": [ + "The bot attachment menu entry is available in groups and supergroups¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "attachMenuPeerTypePM": { + "name": "attachMenuPeerTypePM", + "description": [ + "The bot attachment menu entry is available in private chats with other users (not bots)" + ] + }, + "attachMenuPeerTypeSameBotPM": { + "name": "attachMenuPeerTypeSameBotPM", + "description": [ + "The bot attachment menu entry is available in the chat with the bot that offers it" + ] + }, + "auth.authorization": { + "name": "auth.authorization", + "description": [ + "Contains user authorization info." + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "future_auth_token": { + "name": "future_auth_token", + "description": "A future auth token¹", + "links": [ + "https://core.telegram.org/api/auth#future-auth-tokens" + ] + }, + "otherwise_relogin_days": { + "name": "otherwise_relogin_days", + "description": "Iff setup_password_required is set and the user declines to set a 2-step verification password, they will be able to log into their account via SMS again only after this many days pass." + }, + "setup_password_required": { + "name": "setup_password_required", + "description": "Suggests the user to set up a 2-step verification password to be able to log in again" + }, + "tmp_sessions": { + "name": "tmp_sessions", + "description": "Temporary passport¹ sessions", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "user": { + "name": "user", + "description": "Info on authorized user" + } + } + }, + "auth.authorizationSignUpRequired": { + "name": "auth.authorizationSignUpRequired", + "description": [ + "An account with this phone number doesn't exist on telegram: the user has to enter basic information and sign up¹" + ], + "links": [ + "https://core.telegram.org/api/auth" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "terms_of_service": { + "name": "terms_of_service", + "description": "Telegram's terms of service: the user must read and accept the terms of service before signing up to telegram" + } + } + }, + "auth.codeTypeCall": { + "name": "auth.codeTypeCall", + "description": [ + "The next time, the authentication code is to be delivered via an outgoing phone call." + ] + }, + "auth.codeTypeFlashCall": { + "name": "auth.codeTypeFlashCall", + "description": [ + "The next time, the authentication code will be delivered via an immediately canceled incoming call." + ] + }, + "auth.codeTypeFragmentSms": { + "name": "auth.codeTypeFragmentSms", + "description": [ + "The next time, the authentication code will be delivered via fragment.com¹" + ], + "links": [ + "https://fragment.com" + ] + }, + "auth.codeTypeMissedCall": { + "name": "auth.codeTypeMissedCall", + "description": [ + "The next time, the authentication code will be delivered via an immediately canceled incoming call, handled manually by the user." + ] + }, + "auth.codeTypeSms": { + "name": "auth.codeTypeSms", + "description": [ + "The next time, the authentication code will be delivered via an immediately canceled incoming call." + ] + }, + "auth.exportedAuthorization": { + "name": "auth.exportedAuthorization", + "description": [ + "Data for copying of authorization between data centers." + ], + "fields": { + "bytes": { + "name": "bytes", + "description": "authorizes key" + }, + "id": { + "name": "id", + "description": "current user identifier" + } + } + }, + "auth.loggedOut": { + "name": "auth.loggedOut", + "description": [ + "Future auth token »¹ to be used on subsequent authorizations" + ], + "links": [ + "https://core.telegram.org/api/auth#future-auth-tokens" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "future_auth_token": { + "name": "future_auth_token", + "description": "Future auth token »¹ to be used on subsequent authorizations", + "links": [ + "https://core.telegram.org/api/auth#future-auth-tokens" + ] + } + } + }, + "auth.loginToken": { + "name": "auth.loginToken", + "description": [ + "Login token (for QR code login¹)" + ], + "links": [ + "https://core.telegram.org/api/qr-login" + ], + "fields": { + "expires": { + "name": "expires", + "description": "Expiration date of QR code" + }, + "token": { + "name": "token", + "description": "Token to render in QR code" + } + } + }, + "auth.loginTokenMigrateTo": { + "name": "auth.loginTokenMigrateTo", + "description": [ + "Repeat the query to the specified DC" + ], + "fields": { + "dc_id": { + "name": "dc_id", + "description": "DC ID" + }, + "token": { + "name": "token", + "description": "Token to use for login" + } + } + }, + "auth.loginTokenSuccess": { + "name": "auth.loginTokenSuccess", + "description": [ + "Login via token (QR code) succeeded!" + ], + "fields": { + "authorization": { + "name": "authorization", + "description": "Authorization info" + } + } + }, + "auth.passwordRecovery": { + "name": "auth.passwordRecovery", + "description": [ + "Recovery info of a 2FA password¹, only for accounts with a recovery email configured²." + ], + "links": [ + "https://core.telegram.org/api/srp", + "https://core.telegram.org/api/srp#email-verification" + ], + "fields": { + "email_pattern": { + "name": "email_pattern", + "description": "The email to which the recovery code was sent must match this pattern¹.", + "links": [ + "https://core.telegram.org/api/pattern" + ] + } + } + }, + "auth.sentCode": { + "name": "auth.sentCode", + "description": [ + "Contains info about a sent verification code." + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "next_type": { + "name": "next_type", + "description": "Phone code type that will be sent next, if the phone code is not received within timeout seconds: to send it use auth.resendCode¹", + "links": [ + "https://core.telegram.org/method/auth.resendCode" + ] + }, + "phone_code_hash": { + "name": "phone_code_hash", + "description": "Phone code hash, to be stored and later re-used with auth.signIn¹", + "links": [ + "https://core.telegram.org/method/auth.signIn" + ] + }, + "timeout": { + "name": "timeout", + "description": "Timeout for reception of the phone code" + }, + "type": { + "name": "type", + "description": "Phone code type" + } + } + }, + "auth.sentCodeSuccess": { + "name": "auth.sentCodeSuccess", + "description": [ + "The user successfully authorized using future auth tokens¹" + ], + "links": [ + "https://core.telegram.org/api/auth#future-auth-tokens" + ], + "fields": { + "authorization": { + "name": "authorization", + "description": "Authorization info" + } + } + }, + "auth.sentCodeTypeApp": { + "name": "auth.sentCodeTypeApp", + "description": [ + "The code was sent through the telegram app" + ], + "fields": { + "length": { + "name": "length", + "description": "Length of the code in bytes" + } + } + }, + "auth.sentCodeTypeCall": { + "name": "auth.sentCodeTypeCall", + "description": [ + "The code will be sent via a phone call: a synthesized voice will tell the user which verification code to input." + ], + "fields": { + "length": { + "name": "length", + "description": "Length of the verification code" + } + } + }, + "auth.sentCodeTypeEmailCode": { + "name": "auth.sentCodeTypeEmailCode", + "description": [ + "The code was sent via the previously configured login email »¹" + ], + "links": [ + "https://core.telegram.org/api/auth#email-verification" + ], + "fields": { + "apple_signin_allowed": { + "name": "apple_signin_allowed", + "description": "Whether authorization through Apple ID is allowed" + }, + "email_pattern": { + "name": "email_pattern", + "description": "Pattern¹ of the email", + "links": [ + "https://core.telegram.org/api/pattern" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "google_signin_allowed": { + "name": "google_signin_allowed", + "description": "Whether authorization through Google ID is allowed" + }, + "length": { + "name": "length", + "description": "Length of the sent verification code" + }, + "reset_available_period": { + "name": "reset_available_period", + "description": "Clients should wait for the specified amount of seconds before allowing the user to invoke auth.resetLoginEmail¹ (will be 0 for Premium² users).", + "links": [ + "https://core.telegram.org/method/auth.resetLoginEmail", + "https://core.telegram.org/api/premium" + ] + }, + "reset_pending_date": { + "name": "reset_pending_date", + "description": "An email reset was already requested, and will occur at the specified date." + } + } + }, + "auth.sentCodeTypeFirebaseSms": { + "name": "auth.sentCodeTypeFirebaseSms", + "description": [ + "An authentication code should be delivered via SMS after Firebase attestation, as described in the auth documentation »¹." + ], + "links": [ + "https://core.telegram.org/api/auth" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "length": { + "name": "length", + "description": "Length of the code that will be delivered." + }, + "nonce": { + "name": "nonce", + "description": "On Android, the nonce to be used as described in the auth documentation »¹", + "links": [ + "https://core.telegram.org/api/auth" + ] + }, + "push_timeout": { + "name": "push_timeout", + "description": "On iOS: if a push notification with the ios_push_secret isn't received within push_timeout seconds, the next_type authentication method must be used, with auth.resendCode¹.", + "links": [ + "https://core.telegram.org/method/auth.resendCode" + ] + }, + "receipt": { + "name": "receipt", + "description": "On iOS, must be compared with the receipt extracted from the received push notification." + } + } + }, + "auth.sentCodeTypeFlashCall": { + "name": "auth.sentCodeTypeFlashCall", + "description": [ + "The code will be sent via a flash phone call, that will be closed immediately. The phone code will then be the phone number itself, just make sure that the phone number matches the specified pattern." + ], + "fields": { + "pattern": { + "name": "pattern", + "description": "pattern¹ to match", + "links": [ + "https://core.telegram.org/api/pattern" + ] + } + } + }, + "auth.sentCodeTypeFragmentSms": { + "name": "auth.sentCodeTypeFragmentSms", + "description": [ + "The code was delivered via fragment.com¹." + ], + "links": [ + "https://fragment.com" + ], + "fields": { + "length": { + "name": "length", + "description": "Length of the delivered code." + }, + "url": { + "name": "url", + "description": "Open the specified URL to log into fragment.com¹ with the wallet that owns the specified phone number and view the code.", + "links": [ + "https://fragment.com" + ] + } + } + }, + "auth.sentCodeTypeMissedCall": { + "name": "auth.sentCodeTypeMissedCall", + "description": [ + "The code will be sent via a flash phone call, that will be closed immediately. The last digits of the phone number that calls are the code that must be entered manually by the user." + ], + "fields": { + "length": { + "name": "length", + "description": "Length of the verification code" + }, + "prefix": { + "name": "prefix", + "description": "Prefix of the phone number from which the call will be made" + } + } + }, + "auth.sentCodeTypeSetUpEmailRequired": { + "name": "auth.sentCodeTypeSetUpEmailRequired", + "description": [ + "The user should add and verify an email address in order to login as described here »¹." + ], + "links": [ + "https://core.telegram.org/api/auth#email-verification" + ], + "fields": { + "apple_signin_allowed": { + "name": "apple_signin_allowed", + "description": "Whether authorization through Apple ID is allowed" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "google_signin_allowed": { + "name": "google_signin_allowed", + "description": "Whether authorization through Google ID is allowed" + } + } + }, + "auth.sentCodeTypeSms": { + "name": "auth.sentCodeTypeSms", + "description": [ + "The code was sent via SMS" + ], + "fields": { + "length": { + "name": "length", + "description": "Length of the code in bytes" + } + } + }, + "authorization": { + "name": "authorization", + "description": [ + "Logged-in session" + ], + "fields": { + "api_id": { + "name": "api_id", + "description": "API ID¹", + "links": [ + "https://core.telegram.org/api/obtaining_api_id" + ] + }, + "app_name": { + "name": "app_name", + "description": "App name" + }, + "app_version": { + "name": "app_version", + "description": "App version" + }, + "call_requests_disabled": { + "name": "call_requests_disabled", + "description": "Whether this session will accept phone calls" + }, + "country": { + "name": "country", + "description": "Country determined from IP" + }, + "current": { + "name": "current", + "description": "Whether this is the current session" + }, + "date_active": { + "name": "date_active", + "description": "When was the session last active" + }, + "date_created": { + "name": "date_created", + "description": "When was the session created" + }, + "device_model": { + "name": "device_model", + "description": "Device model" + }, + "encrypted_requests_disabled": { + "name": "encrypted_requests_disabled", + "description": "Whether this session will accept encrypted chats" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hash": { + "name": "hash", + "description": "Identifier" + }, + "ip": { + "name": "ip", + "description": "Last known IP" + }, + "official_app": { + "name": "official_app", + "description": "Whether the session is from an official app" + }, + "password_pending": { + "name": "password_pending", + "description": "Whether the session is still waiting for a 2FA password" + }, + "platform": { + "name": "platform", + "description": "Platform" + }, + "region": { + "name": "region", + "description": "Region determined from IP" + }, + "system_version": { + "name": "system_version", + "description": "System version" + }, + "unconfirmed": { + "name": "unconfirmed", + "description": "Whether the session is unconfirmed, see here »¹ for more info.", + "links": [ + "https://core.telegram.org/api/auth#confirming-login" + ] + } + } + }, + "autoDownloadSettings": { + "name": "autoDownloadSettings", + "description": [ + "Autodownload settings" + ], + "fields": { + "audio_preload_next": { + "name": "audio_preload_next", + "description": "Whether to preload the next audio track when you're listening to music" + }, + "disabled": { + "name": "disabled", + "description": "Disable automatic media downloads?" + }, + "file_size_max": { + "name": "file_size_max", + "description": "Maximum size of other files to preload" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "large_queue_active_operations_max": { + "name": "large_queue_active_operations_max", + "description": "A limit, specifying the maximum number of files that should be downloaded in parallel from the same DC, for files bigger than 20MB." + }, + "phonecalls_less_data": { + "name": "phonecalls_less_data", + "description": "Whether to enable data saving mode in phone calls" + }, + "photo_size_max": { + "name": "photo_size_max", + "description": "Maximum size of photos to preload" + }, + "small_queue_active_operations_max": { + "name": "small_queue_active_operations_max", + "description": "A limit, specifying the maximum number of files that should be downloaded in parallel from the same DC, for files smaller than 20MB." + }, + "stories_preload": { + "name": "stories_preload", + "description": "Whether to preload stories¹; in particular, the first documentAttributeVideo².preload_prefix_size bytes of story videos should be preloaded.", + "links": [ + "https://core.telegram.org/api/stories", + "https://core.telegram.org/constructor/documentAttributeVideo" + ] + }, + "video_preload_large": { + "name": "video_preload_large", + "description": "Whether to preload the first seconds of videos larger than the specified limit" + }, + "video_size_max": { + "name": "video_size_max", + "description": "Maximum size of videos to preload" + }, + "video_upload_maxbitrate": { + "name": "video_upload_maxbitrate", + "description": "Maximum suggested bitrate for uploading videos" + } + } + }, + "autoSaveException": { + "name": "autoSaveException", + "description": [ + "Peer-specific media autosave settings" + ], + "fields": { + "peer": { + "name": "peer", + "description": "The peer" + }, + "settings": { + "name": "settings", + "description": "Media autosave settings" + } + } + }, + "autoSaveSettings": { + "name": "autoSaveSettings", + "description": [ + "Media autosave settings" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "photos": { + "name": "photos", + "description": "Whether photos should be autosaved to the gallery." + }, + "video_max_size": { + "name": "video_max_size", + "description": "If set, specifies a size limit for autosavable videos" + }, + "videos": { + "name": "videos", + "description": "Whether videos should be autosaved to the gallery." + } + } + }, + "availableReaction": { + "name": "availableReaction", + "description": [ + "Animations associated with a message reaction" + ], + "fields": { + "activate_animation": { + "name": "activate_animation", + "description": "The animated sticker to show when the reaction is chosen and activated" + }, + "appear_animation": { + "name": "appear_animation", + "description": "The animated sticker to show when the user opens the reaction dropdown" + }, + "around_animation": { + "name": "around_animation", + "description": "The animation that plays around the button when you press an existing reaction (played together with center_icon)." + }, + "center_icon": { + "name": "center_icon", + "description": "The animation of the emoji inside the button when you press an existing reaction (played together with around_animation)." + }, + "effect_animation": { + "name": "effect_animation", + "description": "The background effect (still an animated sticker) to play under the activate_animation, when the reaction is chosen and activated" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "inactive": { + "name": "inactive", + "description": "If not set, the reaction can be added to new messages and enabled in chats." + }, + "premium": { + "name": "premium", + "description": "Whether this reaction can only be used by Telegram Premium users" + }, + "reaction": { + "name": "reaction", + "description": "Reaction emoji" + }, + "select_animation": { + "name": "select_animation", + "description": "The animated sticker to show when the user hovers over the reaction" + }, + "static_icon": { + "name": "static_icon", + "description": "Static icon for the reaction" + }, + "title": { + "name": "title", + "description": "Reaction description" + } + } + }, + "bankCardOpenUrl": { + "name": "bankCardOpenUrl", + "description": [ + "Credit card info URL provided by the bank" + ], + "fields": { + "name": { + "name": "name", + "description": "Bank name" + }, + "url": { + "name": "url", + "description": "Info URL" + } + } + }, + "baseThemeArctic": { + "name": "baseThemeArctic", + "description": [ + "Arctic theme" + ] + }, + "baseThemeClassic": { + "name": "baseThemeClassic", + "description": [ + "Classic theme" + ] + }, + "baseThemeDay": { + "name": "baseThemeDay", + "description": [ + "Day theme" + ] + }, + "baseThemeNight": { + "name": "baseThemeNight", + "description": [ + "Night theme" + ] + }, + "baseThemeTinted": { + "name": "baseThemeTinted", + "description": [ + "Tinted theme" + ] + }, + "boolFalse": { + "name": "boolFalse", + "description": [ + "Constructor may be interpreted as a booleanfalse value." + ] + }, + "boolTrue": { + "name": "boolTrue", + "description": [ + "The constructor can be interpreted as a booleantrue value." + ] + }, + "boost": { + "name": "boost", + "description": [ + "Info about one or more boosts¹ applied by a specific user." + ], + "links": [ + "https://core.telegram.org/api/boost" + ], + "fields": { + "date": { + "name": "date", + "description": "When was the boost applied" + }, + "expires": { + "name": "expires", + "description": "When does the boost expire" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "gift": { + "name": "gift", + "description": "Whether this boost was applied because the channel directly gifted a subscription to the user¹.", + "links": [ + "https://core.telegram.org/api/giveaways" + ] + }, + "giveaway": { + "name": "giveaway", + "description": "Whether this boost was applied because the user was chosen in a giveaway started by the channel¹.", + "links": [ + "https://core.telegram.org/api/giveaways" + ] + }, + "giveaway_msg_id": { + "name": "giveaway_msg_id", + "description": "The message ID of the giveaway¹", + "links": [ + "https://core.telegram.org/api/giveaways" + ] + }, + "id": { + "name": "id", + "description": "Unique ID for this set of boosts." + }, + "multiplier": { + "name": "multiplier", + "description": "If set, this boost counts as multiplier boosts, otherwise it counts as a single boost." + }, + "unclaimed": { + "name": "unclaimed", + "description": "If set, the user hasn't yet invoked payments.applyGiftCode¹ to claim a subscription gifted directly or in a giveaway by the channel².", + "links": [ + "https://core.telegram.org/method/payments.applyGiftCode", + "https://core.telegram.org/api/giveaways" + ] + }, + "used_gift_slug": { + "name": "used_gift_slug", + "description": "The created Telegram Premium gift code, only set if either gift or giveaway are set AND it is either a gift code for the currently logged in user or if it was already claimed." + }, + "user_id": { + "name": "user_id", + "description": "ID of the user that applied the boost." + } + } + }, + "botApp": { + "name": "botApp", + "description": [ + "Contains information about a named Mini App¹." + ], + "links": [ + "https://core.telegram.org/api/bots/webapps#named-mini-apps" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "bot mini app access hash" + }, + "description": { + "name": "description", + "description": "bot mini app description." + }, + "document": { + "name": "document", + "description": "bot mini app animation." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hash": { + "name": "hash", + "description": "Hash to pass to messages.getBotApp¹, to avoid refetching bot app info if it hasn't changed.", + "links": [ + "https://core.telegram.org/method/messages.getBotApp" + ] + }, + "id": { + "name": "id", + "description": "bot mini app ID" + }, + "photo": { + "name": "photo", + "description": "bot mini app photo." + }, + "short_name": { + "name": "short_name", + "description": "bot mini app short name, used to generate named Mini App deep links¹.", + "links": [ + "https://core.telegram.org/api/links#named-mini-app-links" + ] + }, + "title": { + "name": "title", + "description": "bot mini app title." + } + } + }, + "botAppNotModified": { + "name": "botAppNotModified", + "description": [ + "Bot app info hasn't changed." + ] + }, + "botCommand": { + "name": "botCommand", + "description": [ + "Describes a bot command that can be used in a chat" + ], + "fields": { + "command": { + "name": "command", + "description": "/command name" + }, + "description": { + "name": "description", + "description": "Description of the command" + } + } + }, + "botCommandScopeChatAdmins": { + "name": "botCommandScopeChatAdmins", + "description": [ + "The specified bot commands will be valid only for chat administrators, in all groups and supergroups¹." + ], + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "botCommandScopeChats": { + "name": "botCommandScopeChats", + "description": [ + "The specified bot commands will be valid in all groups and supergroups¹." + ], + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "botCommandScopeDefault": { + "name": "botCommandScopeDefault", + "description": [ + "The commands will be valid in all dialogs" + ] + }, + "botCommandScopePeer": { + "name": "botCommandScopePeer", + "description": [ + "The specified bot commands will be valid only in a specific dialog." + ], + "fields": { + "peer": { + "name": "peer", + "description": "The dialog" + } + } + }, + "botCommandScopePeerAdmins": { + "name": "botCommandScopePeerAdmins", + "description": [ + "The specified bot commands will be valid for all admins of the specified group or supergroup¹." + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "peer": { + "name": "peer", + "description": "The chat" + } + } + }, + "botCommandScopePeerUser": { + "name": "botCommandScopePeerUser", + "description": [ + "The specified bot commands will be valid only for a specific user in the specified group or supergroup¹." + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "peer": { + "name": "peer", + "description": "The chat" + }, + "user_id": { + "name": "user_id", + "description": "The user" + } + } + }, + "botCommandScopeUsers": { + "name": "botCommandScopeUsers", + "description": [ + "The specified bot commands will only be valid in all private chats with users." + ] + }, + "botInfo": { + "name": "botInfo", + "description": [ + "Info about bots (available bot commands, etc)" + ], + "fields": { + "commands": { + "name": "commands", + "description": "Bot commands that can be used in the chat" + }, + "description": { + "name": "description", + "description": "Description of the bot" + }, + "description_document": { + "name": "description_document", + "description": "Description animation in MPEG4 format" + }, + "description_photo": { + "name": "description_photo", + "description": "Description photo" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "menu_button": { + "name": "menu_button", + "description": "Indicates the action to execute when pressing the in-UI menu button for bots" + }, + "user_id": { + "name": "user_id", + "description": "ID of the bot" + } + } + }, + "botInlineMediaResult": { + "name": "botInlineMediaResult", + "description": [ + "Media result" + ], + "fields": { + "description": { + "name": "description", + "description": "Description" + }, + "document": { + "name": "document", + "description": "If type is document, the document to send" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Result ID" + }, + "photo": { + "name": "photo", + "description": "If type is photo, the photo to send" + }, + "send_message": { + "name": "send_message", + "description": "Depending on the type and on the constructor¹, contains the caption of the media or the content of the message to be sent instead of the media", + "links": [ + "https://core.telegram.org/type/BotInlineMessage" + ] + }, + "title": { + "name": "title", + "description": "Result title" + }, + "type": { + "name": "type", + "description": "Result type (see bot API docs¹)", + "links": [ + "https://core.telegram.org/bots/api#inlinequeryresult" + ] + } + } + }, + "botInlineMessageMediaAuto": { + "name": "botInlineMessageMediaAuto", + "description": [ + "Send whatever media is attached to the botInlineMediaResult¹" + ], + "links": [ + "https://core.telegram.org/constructor/botInlineMediaResult" + ], + "fields": { + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "message": { + "name": "message", + "description": "Caption" + }, + "reply_markup": { + "name": "reply_markup", + "description": "Inline keyboard" + } + } + }, + "botInlineMessageMediaContact": { + "name": "botInlineMessageMediaContact", + "description": [ + "Send a contact" + ], + "fields": { + "first_name": { + "name": "first_name", + "description": "First name" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "last_name": { + "name": "last_name", + "description": "Last name" + }, + "phone_number": { + "name": "phone_number", + "description": "Phone number" + }, + "reply_markup": { + "name": "reply_markup", + "description": "Inline keyboard" + }, + "vcard": { + "name": "vcard", + "description": "VCard info" + } + } + }, + "botInlineMessageMediaGeo": { + "name": "botInlineMessageMediaGeo", + "description": [ + "Send a geolocation" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "geo": { + "name": "geo", + "description": "Geolocation" + }, + "heading": { + "name": "heading", + "description": "For live locations¹, a direction in which the location moves, in degrees; 1-360.", + "links": [ + "https://core.telegram.org/api/live-location" + ] + }, + "period": { + "name": "period", + "description": "Validity period" + }, + "proximity_notification_radius": { + "name": "proximity_notification_radius", + "description": "For live locations¹, a maximum distance to another chat member for proximity alerts, in meters (0-100000).", + "links": [ + "https://core.telegram.org/api/live-location" + ] + }, + "reply_markup": { + "name": "reply_markup", + "description": "Inline keyboard" + } + } + }, + "botInlineMessageMediaInvoice": { + "name": "botInlineMessageMediaInvoice", + "description": [ + "Send an invoice" + ], + "fields": { + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "description": { + "name": "description", + "description": "Product description, 1-255 characters" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "photo": { + "name": "photo", + "description": "Product photo" + }, + "reply_markup": { + "name": "reply_markup", + "description": "Inline keyboard" + }, + "shipping_address_requested": { + "name": "shipping_address_requested", + "description": "Set this flag if you require the user's shipping address to complete the order" + }, + "test": { + "name": "test", + "description": "Test invoice" + }, + "title": { + "name": "title", + "description": "Product name, 1-32 characters" + }, + "total_amount": { + "name": "total_amount", + "description": "Total price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + } + } + }, + "botInlineMessageMediaVenue": { + "name": "botInlineMessageMediaVenue", + "description": [ + "Send a venue" + ], + "fields": { + "address": { + "name": "address", + "description": "Address" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "geo": { + "name": "geo", + "description": "Geolocation of venue" + }, + "provider": { + "name": "provider", + "description": "Venue provider: currently only \"foursquare\" and \"gplaces\" (Google Places) need to be supported" + }, + "reply_markup": { + "name": "reply_markup", + "description": "Inline keyboard" + }, + "title": { + "name": "title", + "description": "Venue name" + }, + "venue_id": { + "name": "venue_id", + "description": "Venue ID in the provider's database" + }, + "venue_type": { + "name": "venue_type", + "description": "Venue type in the provider's database" + } + } + }, + "botInlineMessageMediaWebPage": { + "name": "botInlineMessageMediaWebPage", + "description": [ + "Specifies options that must be used to generate the link preview for the message, or even a standalone link preview without an attached message." + ], + "fields": { + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "force_large_media": { + "name": "force_large_media", + "description": "If set, specifies that a large media preview should be used." + }, + "force_small_media": { + "name": "force_small_media", + "description": "If set, specifies that a small media preview should be used." + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "manual": { + "name": "manual", + "description": "If set, indicates that the URL used for the webpage preview was specified manually using inputMediaWebPage¹, and may not be related to any of the URLs specified in the message.", + "links": [ + "https://core.telegram.org/constructor/inputMediaWebPage" + ] + }, + "message": { + "name": "message", + "description": "The message, can be empty." + }, + "reply_markup": { + "name": "reply_markup", + "description": "Reply markup for sending bot buttons" + }, + "safe": { + "name": "safe", + "description": "If set, the link can be opened directly without user confirmation." + }, + "url": { + "name": "url", + "description": "The URL to use for the link preview." + } + } + }, + "botInlineMessageText": { + "name": "botInlineMessageText", + "description": [ + "Send a simple text message" + ], + "fields": { + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "message": { + "name": "message", + "description": "The message" + }, + "no_webpage": { + "name": "no_webpage", + "description": "Disable webpage preview" + }, + "reply_markup": { + "name": "reply_markup", + "description": "Inline keyboard" + } + } + }, + "botInlineResult": { + "name": "botInlineResult", + "description": [ + "Generic result" + ], + "fields": { + "content": { + "name": "content", + "description": "Content of the result" + }, + "description": { + "name": "description", + "description": "Result description" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Result ID" + }, + "send_message": { + "name": "send_message", + "description": "Message to send" + }, + "thumb": { + "name": "thumb", + "description": "Thumbnail for the result" + }, + "title": { + "name": "title", + "description": "Result title" + }, + "type": { + "name": "type", + "description": "Result type (see bot API docs¹)", + "links": [ + "https://core.telegram.org/bots/api#inlinequeryresult" + ] + }, + "url": { + "name": "url", + "description": "URL of article or webpage" + } + } + }, + "botMenuButton": { + "name": "botMenuButton", + "description": [ + "Bot menu button¹ that opens a web app² when clicked." + ], + "links": [ + "https://core.telegram.org/api/bots/menu", + "https://core.telegram.org/api/bots/webapps" + ], + "fields": { + "text": { + "name": "text", + "description": "Title to be displayed on the menu button instead of 'Menu'" + }, + "url": { + "name": "url", + "description": "URL of a web app¹ to open when the user clicks on the button", + "links": [ + "https://core.telegram.org/api/bots/webapps" + ] + } + } + }, + "botMenuButtonCommands": { + "name": "botMenuButtonCommands", + "description": [ + "Bot menu button¹ that opens the bot command list when clicked." + ], + "links": [ + "https://core.telegram.org/api/bots/menu" + ] + }, + "botMenuButtonDefault": { + "name": "botMenuButtonDefault", + "description": [ + "Placeholder bot menu button¹ never returned to users: see the docs for more info²." + ], + "links": [ + "https://core.telegram.org/api/bots/menu", + "https://core.telegram.org/api/bots/menu" + ] + }, + "bots.botInfo": { + "name": "bots.botInfo", + "description": [ + "Localized information about a bot." + ], + "fields": { + "about": { + "name": "about", + "description": "Bot about text" + }, + "description": { + "name": "description", + "description": "Bot description" + }, + "name": { + "name": "name", + "description": "Bot name" + } + } + }, + "cdnConfig": { + "name": "cdnConfig", + "description": [ + "Configuration for CDN¹ file downloads." + ], + "links": [ + "https://core.telegram.org/cdn" + ], + "fields": { + "public_keys": { + "name": "public_keys", + "description": "Vector of public keys to use only during handshakes to CDN¹ DCs.", + "links": [ + "https://core.telegram.org/cdn" + ] + } + } + }, + "cdnPublicKey": { + "name": "cdnPublicKey", + "description": [ + "Public key to use only during handshakes to CDN¹ DCs." + ], + "links": [ + "https://core.telegram.org/cdn" + ], + "fields": { + "dc_id": { + "name": "dc_id", + "description": "CDN DC¹ ID", + "links": [ + "https://core.telegram.org/cdn" + ] + }, + "public_key": { + "name": "public_key", + "description": "RSA public key" + } + } + }, + "channel": { + "name": "channel", + "description": [ + "Channel/supergroup info" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "admin_rights": { + "name": "admin_rights", + "description": "Admin rights of the user in this channel (see rights¹)", + "links": [ + "https://core.telegram.org/api/rights" + ] + }, + "banned_rights": { + "name": "banned_rights", + "description": "Banned rights of the user in this channel (see rights¹)", + "links": [ + "https://core.telegram.org/api/rights" + ] + }, + "broadcast": { + "name": "broadcast", + "description": "Is this a channel?" + }, + "call_active": { + "name": "call_active", + "description": "Whether a group call or livestream is currently active" + }, + "call_not_empty": { + "name": "call_not_empty", + "description": "Whether there's anyone in the group call or livestream" + }, + "color": { + "name": "color", + "description": "The channel's accent color¹.", + "links": [ + "https://core.telegram.org/api/colors" + ] + }, + "creator": { + "name": "creator", + "description": "Whether the current user is the creator of this channel" + }, + "date": { + "name": "date", + "description": "Date when the user joined the supergroup/channel, or if the user isn't a member, its creation date" + }, + "default_banned_rights": { + "name": "default_banned_rights", + "description": "Default chat rights (see rights¹)", + "links": [ + "https://core.telegram.org/api/rights" + ] + }, + "emoji_status": { + "name": "emoji_status", + "description": "Emoji status¹", + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + }, + "fake": { + "name": "fake", + "description": "If set, this supergroup/channel¹ was reported by many users as a fake or scam: be careful when interacting with it.", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "flags2": { + "name": "flags2", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "forum": { + "name": "forum", + "description": "Whether this supergroup is a forum¹", + "links": [ + "https://core.telegram.org/api/forum" + ] + }, + "gigagroup": { + "name": "gigagroup", + "description": "Whether this supergroup¹ is a gigagroup", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "has_geo": { + "name": "has_geo", + "description": "Whether this chanel has a geoposition" + }, + "has_link": { + "name": "has_link", + "description": "Whether this channel has a private join link" + }, + "id": { + "name": "id", + "description": "ID of the channel" + }, + "join_request": { + "name": "join_request", + "description": "Whether a user's join request will have to be approved by administrators¹, toggle using channels.toggleJoinToSend²", + "links": [ + "https://core.telegram.org/api/invites#join-requests", + "https://core.telegram.org/method/channels.toggleJoinRequest" + ] + }, + "join_to_send": { + "name": "join_to_send", + "description": "Whether a user needs to join the supergroup before they can send messages: can be false only for discussion groups »¹, toggle using channels.toggleJoinToSend²", + "links": [ + "https://core.telegram.org/api/discussion", + "https://core.telegram.org/method/channels.toggleJoinToSend" + ] + }, + "left": { + "name": "left", + "description": "Whether the current user has left or is not a member of this channel" + }, + "level": { + "name": "level", + "description": "Boost level¹", + "links": [ + "https://core.telegram.org/api/boost" + ] + }, + "megagroup": { + "name": "megagroup", + "description": "Is this a supergroup?" + }, + "min": { + "name": "min", + "description": "See min¹", + "links": [ + "https://core.telegram.org/api/min" + ] + }, + "noforwards": { + "name": "noforwards", + "description": "Whether this channel or group is protected¹, thus does not allow forwarding messages from it", + "links": [ + "https://telegram.org/blog/protected-content-delete-by-date-and-more" + ] + }, + "participants_count": { + "name": "participants_count", + "description": "Participant count" + }, + "photo": { + "name": "photo", + "description": "Profile photo" + }, + "profile_color": { + "name": "profile_color", + "description": "The channel's profile color¹.", + "links": [ + "https://core.telegram.org/api/colors" + ] + }, + "restricted": { + "name": "restricted", + "description": "Whether viewing/writing in this channel for a reason (see restriction_reason" + }, + "restriction_reason": { + "name": "restriction_reason", + "description": "Contains the reason why access to this channel must be restricted." + }, + "scam": { + "name": "scam", + "description": "This channel/supergroup is probably a scam" + }, + "signatures": { + "name": "signatures", + "description": "Whether signatures are enabled (channels)" + }, + "slowmode_enabled": { + "name": "slowmode_enabled", + "description": "Whether slow mode is enabled for groups to prevent flood in chat" + }, + "stories_hidden": { + "name": "stories_hidden", + "description": "Whether we have hidden all stories posted by this channel »¹.", + "links": [ + "https://core.telegram.org/api/stories#hiding-stories-of-other-users" + ] + }, + "stories_hidden_min": { + "name": "stories_hidden_min", + "description": "If set, indicates that the stories_hidden flag was not populated, and its value must cannot be relied on; use the previously cached value, or re-fetch the constructor using channels.getChannels¹ to obtain the latest value of the stories_hidden flag.", + "links": [ + "https://core.telegram.org/method/channels.getChannels" + ] + }, + "stories_max_id": { + "name": "stories_max_id", + "description": "ID of the maximum read story¹.", + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "stories_unavailable": { + "name": "stories_unavailable", + "description": "No stories from the channel are visible." + }, + "title": { + "name": "title", + "description": "Title" + }, + "username": { + "name": "username", + "description": "Username" + }, + "usernames": { + "name": "usernames", + "description": "Additional usernames" + }, + "verified": { + "name": "verified", + "description": "Is this channel verified by telegram?" + } + } + }, + "channelAdminLogEvent": { + "name": "channelAdminLogEvent", + "description": [ + "Admin log event" + ], + "fields": { + "action": { + "name": "action", + "description": "Action" + }, + "date": { + "name": "date", + "description": "Date" + }, + "id": { + "name": "id", + "description": "Event ID" + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + } + }, + "channelAdminLogEventActionChangeAbout": { + "name": "channelAdminLogEventActionChangeAbout", + "description": [ + "The description was changed" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New description" + }, + "prev_value": { + "name": "prev_value", + "description": "Previous description" + } + } + }, + "channelAdminLogEventActionChangeAvailableReactions": { + "name": "channelAdminLogEventActionChangeAvailableReactions", + "description": [ + "The set of allowed message reactions »¹ for this channel has changed" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New allowed reaction emojis" + }, + "prev_value": { + "name": "prev_value", + "description": "Previously allowed reaction emojis" + } + } + }, + "channelAdminLogEventActionChangeEmojiStatus": { + "name": "channelAdminLogEventActionChangeEmojiStatus", + "description": [ + "The emoji status¹ was changed" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New emoji status" + }, + "prev_value": { + "name": "prev_value", + "description": "Previous emoji status" + } + } + }, + "channelAdminLogEventActionChangeHistoryTTL": { + "name": "channelAdminLogEventActionChangeHistoryTTL", + "description": [ + "The Time-To-Live of messages in this chat was changed" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New value" + }, + "prev_value": { + "name": "prev_value", + "description": "Previous value" + } + } + }, + "channelAdminLogEventActionChangeLinkedChat": { + "name": "channelAdminLogEventActionChangeLinkedChat", + "description": [ + "The linked chat was changed" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New linked chat" + }, + "prev_value": { + "name": "prev_value", + "description": "Previous linked chat" + } + } + }, + "channelAdminLogEventActionChangeLocation": { + "name": "channelAdminLogEventActionChangeLocation", + "description": [ + "The geogroup location was changed" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New location" + }, + "prev_value": { + "name": "prev_value", + "description": "Previous location" + } + } + }, + "channelAdminLogEventActionChangePeerColor": { + "name": "channelAdminLogEventActionChangePeerColor", + "description": [ + "The message accent color¹ was changed" + ], + "links": [ + "https://core.telegram.org/api/colors" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New accent palette" + }, + "prev_value": { + "name": "prev_value", + "description": "Previous accent palette" + } + } + }, + "channelAdminLogEventActionChangePhoto": { + "name": "channelAdminLogEventActionChangePhoto", + "description": [ + "The channel/supergroup's picture was changed" + ], + "fields": { + "new_photo": { + "name": "new_photo", + "description": "New picture" + }, + "prev_photo": { + "name": "prev_photo", + "description": "Previous picture" + } + } + }, + "channelAdminLogEventActionChangeProfilePeerColor": { + "name": "channelAdminLogEventActionChangeProfilePeerColor", + "description": [ + "The profile accent color¹ was changed" + ], + "links": [ + "https://core.telegram.org/api/colors" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New accent palette" + }, + "prev_value": { + "name": "prev_value", + "description": "Previous accent palette" + } + } + }, + "channelAdminLogEventActionChangeStickerSet": { + "name": "channelAdminLogEventActionChangeStickerSet", + "description": [ + "The supergroup's stickerset was changed" + ], + "fields": { + "new_stickerset": { + "name": "new_stickerset", + "description": "New stickerset" + }, + "prev_stickerset": { + "name": "prev_stickerset", + "description": "Previous stickerset" + } + } + }, + "channelAdminLogEventActionChangeTitle": { + "name": "channelAdminLogEventActionChangeTitle", + "description": [ + "Channel/supergroup title was changed" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New title" + }, + "prev_value": { + "name": "prev_value", + "description": "Previous title" + } + } + }, + "channelAdminLogEventActionChangeUsername": { + "name": "channelAdminLogEventActionChangeUsername", + "description": [ + "Channel/supergroup username was changed" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New username" + }, + "prev_value": { + "name": "prev_value", + "description": "Old username" + } + } + }, + "channelAdminLogEventActionChangeUsernames": { + "name": "channelAdminLogEventActionChangeUsernames", + "description": [ + "The list of usernames associated with the channel was changed" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New set of usernames" + }, + "prev_value": { + "name": "prev_value", + "description": "Previous set of usernames" + } + } + }, + "channelAdminLogEventActionChangeWallpaper": { + "name": "channelAdminLogEventActionChangeWallpaper", + "description": [ + "The wallpaper¹ was changed" + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New wallpaper" + }, + "prev_value": { + "name": "prev_value", + "description": "Previous wallpaper" + } + } + }, + "channelAdminLogEventActionCreateTopic": { + "name": "channelAdminLogEventActionCreateTopic", + "description": [ + "A forum topic¹ was created" + ], + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ], + "fields": { + "topic": { + "name": "topic", + "description": "The forum topic¹ that was created", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + } + } + }, + "channelAdminLogEventActionDefaultBannedRights": { + "name": "channelAdminLogEventActionDefaultBannedRights", + "description": [ + "The default banned rights were modified" + ], + "fields": { + "new_banned_rights": { + "name": "new_banned_rights", + "description": "New global banned rights¹.", + "links": [ + "https://core.telegram.org/api/rights" + ] + }, + "prev_banned_rights": { + "name": "prev_banned_rights", + "description": "Previous global banned rights¹", + "links": [ + "https://core.telegram.org/api/rights" + ] + } + } + }, + "channelAdminLogEventActionDeleteMessage": { + "name": "channelAdminLogEventActionDeleteMessage", + "description": [ + "A message was deleted" + ], + "fields": { + "message": { + "name": "message", + "description": "The message that was deleted" + } + } + }, + "channelAdminLogEventActionDeleteTopic": { + "name": "channelAdminLogEventActionDeleteTopic", + "description": [ + "A forum topic¹ was deleted" + ], + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ], + "fields": { + "topic": { + "name": "topic", + "description": "The forum topic¹ that was deleted", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + } + } + }, + "channelAdminLogEventActionDiscardGroupCall": { + "name": "channelAdminLogEventActionDiscardGroupCall", + "description": [ + "A group call was terminated" + ], + "fields": { + "call": { + "name": "call", + "description": "The group call that was terminated" + } + } + }, + "channelAdminLogEventActionEditMessage": { + "name": "channelAdminLogEventActionEditMessage", + "description": [ + "A message was edited" + ], + "fields": { + "new_message": { + "name": "new_message", + "description": "New message" + }, + "prev_message": { + "name": "prev_message", + "description": "Old message" + } + } + }, + "channelAdminLogEventActionEditTopic": { + "name": "channelAdminLogEventActionEditTopic", + "description": [ + "A forum topic¹ was edited" + ], + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ], + "fields": { + "new_topic": { + "name": "new_topic", + "description": "New topic information" + }, + "prev_topic": { + "name": "prev_topic", + "description": "Previous topic information" + } + } + }, + "channelAdminLogEventActionExportedInviteDelete": { + "name": "channelAdminLogEventActionExportedInviteDelete", + "description": [ + "A chat invite was deleted" + ], + "fields": { + "invite": { + "name": "invite", + "description": "The deleted chat invite" + } + } + }, + "channelAdminLogEventActionExportedInviteEdit": { + "name": "channelAdminLogEventActionExportedInviteEdit", + "description": [ + "A chat invite was edited" + ], + "fields": { + "new_invite": { + "name": "new_invite", + "description": "New chat invite information" + }, + "prev_invite": { + "name": "prev_invite", + "description": "Previous chat invite information" + } + } + }, + "channelAdminLogEventActionExportedInviteRevoke": { + "name": "channelAdminLogEventActionExportedInviteRevoke", + "description": [ + "A specific invite link was revoked" + ], + "fields": { + "invite": { + "name": "invite", + "description": "The invite link that was revoked" + } + } + }, + "channelAdminLogEventActionParticipantInvite": { + "name": "channelAdminLogEventActionParticipantInvite", + "description": [ + "A user was invited to the group" + ], + "fields": { + "participant": { + "name": "participant", + "description": "The user that was invited" + } + } + }, + "channelAdminLogEventActionParticipantJoin": { + "name": "channelAdminLogEventActionParticipantJoin", + "description": [ + "A user has joined the group (in the case of big groups, info of the user that has joined isn't shown)" + ] + }, + "channelAdminLogEventActionParticipantJoinByInvite": { + "name": "channelAdminLogEventActionParticipantJoinByInvite", + "description": [ + "A user joined the supergroup/channel¹ using a specific invite link" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invite": { + "name": "invite", + "description": "The invite link used to join the supergroup/channel¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "via_chatlist": { + "name": "via_chatlist", + "description": "The participant joined by importing a chat folder deep link »¹.", + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + } + } + }, + "channelAdminLogEventActionParticipantJoinByRequest": { + "name": "channelAdminLogEventActionParticipantJoinByRequest", + "description": [ + "A new member was accepted to the chat by an admin" + ], + "fields": { + "approved_by": { + "name": "approved_by", + "description": "ID of the admin that approved the invite" + }, + "invite": { + "name": "invite", + "description": "The invite link that was used to join the chat" + } + } + }, + "channelAdminLogEventActionParticipantLeave": { + "name": "channelAdminLogEventActionParticipantLeave", + "description": [ + "A user left the channel/supergroup (in the case of big groups, info of the user that has joined isn't shown)" + ] + }, + "channelAdminLogEventActionParticipantMute": { + "name": "channelAdminLogEventActionParticipantMute", + "description": [ + "A group call participant was muted" + ], + "fields": { + "participant": { + "name": "participant", + "description": "The participant that was muted" + } + } + }, + "channelAdminLogEventActionParticipantToggleAdmin": { + "name": "channelAdminLogEventActionParticipantToggleAdmin", + "description": [ + "The admin rights¹ of a user were changed" + ], + "links": [ + "https://core.telegram.org/api/rights" + ], + "fields": { + "new_participant": { + "name": "new_participant", + "description": "New admin rights" + }, + "prev_participant": { + "name": "prev_participant", + "description": "Previous admin rights" + } + } + }, + "channelAdminLogEventActionParticipantToggleBan": { + "name": "channelAdminLogEventActionParticipantToggleBan", + "description": [ + "The banned rights¹ of a user were changed" + ], + "links": [ + "https://core.telegram.org/api/rights" + ], + "fields": { + "new_participant": { + "name": "new_participant", + "description": "New banned rights of user" + }, + "prev_participant": { + "name": "prev_participant", + "description": "Old banned rights of user" + } + } + }, + "channelAdminLogEventActionParticipantUnmute": { + "name": "channelAdminLogEventActionParticipantUnmute", + "description": [ + "A group call participant was unmuted" + ], + "fields": { + "participant": { + "name": "participant", + "description": "The participant that was unmuted" + } + } + }, + "channelAdminLogEventActionParticipantVolume": { + "name": "channelAdminLogEventActionParticipantVolume", + "description": [ + "channelAdminLogEvent.user_id has set the volume of participant.peer to participant.volume" + ], + "fields": { + "participant": { + "name": "participant", + "description": "The participant whose volume was changed" + } + } + }, + "channelAdminLogEventActionPinTopic": { + "name": "channelAdminLogEventActionPinTopic", + "description": [ + "A forum topic¹ was pinned or unpinned" + ], + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "new_topic": { + "name": "new_topic", + "description": "New topic information" + }, + "prev_topic": { + "name": "prev_topic", + "description": "Previous topic information" + } + } + }, + "channelAdminLogEventActionSendMessage": { + "name": "channelAdminLogEventActionSendMessage", + "description": [ + "A message was posted in a channel" + ], + "fields": { + "message": { + "name": "message", + "description": "The message that was sent" + } + } + }, + "channelAdminLogEventActionStartGroupCall": { + "name": "channelAdminLogEventActionStartGroupCall", + "description": [ + "A group call was started" + ], + "fields": { + "call": { + "name": "call", + "description": "Group call" + } + } + }, + "channelAdminLogEventActionStopPoll": { + "name": "channelAdminLogEventActionStopPoll", + "description": [ + "A poll was stopped" + ], + "fields": { + "message": { + "name": "message", + "description": "The poll that was stopped" + } + } + }, + "channelAdminLogEventActionToggleAntiSpam": { + "name": "channelAdminLogEventActionToggleAntiSpam", + "description": [ + "Native antispam¹ functionality was enabled or disabled." + ], + "links": [ + "https://core.telegram.org/api/antispam" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "Whether antispam functionality was enabled or disabled." + } + } + }, + "channelAdminLogEventActionToggleForum": { + "name": "channelAdminLogEventActionToggleForum", + "description": [ + "Forum¹ functionality was enabled or disabled." + ], + "links": [ + "https://core.telegram.org/api/forum" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "Whether forum¹ functionality was enabled or disabled.", + "links": [ + "https://core.telegram.org/api/forum" + ] + } + } + }, + "channelAdminLogEventActionToggleGroupCallSetting": { + "name": "channelAdminLogEventActionToggleGroupCallSetting", + "description": [ + "Group call settings were changed" + ], + "fields": { + "join_muted": { + "name": "join_muted", + "description": "Whether all users are muted by default upon joining" + } + } + }, + "channelAdminLogEventActionToggleInvites": { + "name": "channelAdminLogEventActionToggleInvites", + "description": [ + "Invites were enabled/disabled" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New value" + } + } + }, + "channelAdminLogEventActionToggleNoForwards": { + "name": "channelAdminLogEventActionToggleNoForwards", + "description": [ + "Forwards were enabled or disabled" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "Old value" + } + } + }, + "channelAdminLogEventActionTogglePreHistoryHidden": { + "name": "channelAdminLogEventActionTogglePreHistoryHidden", + "description": [ + "The hidden prehistory setting was changed¹" + ], + "links": [ + "https://core.telegram.org/method/channels.togglePreHistoryHidden" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New value" + } + } + }, + "channelAdminLogEventActionToggleSignatures": { + "name": "channelAdminLogEventActionToggleSignatures", + "description": [ + "Channel signatures were enabled/disabled" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New value" + } + } + }, + "channelAdminLogEventActionToggleSlowMode": { + "name": "channelAdminLogEventActionToggleSlowMode", + "description": [ + "Slow mode setting for supergroups was changed¹" + ], + "links": [ + "https://core.telegram.org/method/channels.toggleSlowMode" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New slow mode value" + }, + "prev_value": { + "name": "prev_value", + "description": "Previous slow mode value" + } + } + }, + "channelAdminLogEventActionUpdatePinned": { + "name": "channelAdminLogEventActionUpdatePinned", + "description": [ + "A message was pinned" + ], + "fields": { + "message": { + "name": "message", + "description": "The message that was pinned" + } + } + }, + "channelAdminLogEventsFilter": { + "name": "channelAdminLogEventsFilter", + "description": [ + "Filter only certain admin log events" + ], + "fields": { + "ban": { + "name": "ban", + "description": "Ban events¹", + "links": [ + "https://core.telegram.org/constructor/channelAdminLogEventActionParticipantToggleBan" + ] + }, + "delete": { + "name": "delete", + "description": "Message deletion events¹", + "links": [ + "https://core.telegram.org/constructor/channelAdminLogEventActionDeleteMessage" + ] + }, + "demote": { + "name": "demote", + "description": "Admin demotion events¹", + "links": [ + "https://core.telegram.org/constructor/channelAdminLogEventActionParticipantToggleAdmin" + ] + }, + "edit": { + "name": "edit", + "description": "Message edit events¹", + "links": [ + "https://core.telegram.org/constructor/channelAdminLogEventActionEditMessage" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "forums": { + "name": "forums", + "description": "Forum¹-related events", + "links": [ + "https://core.telegram.org/api/forum" + ] + }, + "group_call": { + "name": "group_call", + "description": "Group call events" + }, + "info": { + "name": "info", + "description": "Info change events (when about¹, linked chat², location³, photo⁴, stickerset⁵, title⁶ or username⁷, slowmode⁸, history TTL⁹ settings of a channel gets modified)", + "links": [ + "https://core.telegram.org/constructor/channelAdminLogEventActionChangeAbout", + "https://core.telegram.org/constructor/channelAdminLogEventActionChangeLinkedChat", + "https://core.telegram.org/constructor/channelAdminLogEventActionChangeLocation", + "https://core.telegram.org/constructor/channelAdminLogEventActionChangePhoto", + "https://core.telegram.org/constructor/channelAdminLogEventActionChangeStickerSet", + "https://core.telegram.org/constructor/channelAdminLogEventActionChangeTitle", + "https://core.telegram.org/constructor/channelAdminLogEventActionChangeUsername", + "https://core.telegram.org/constructor/channelAdminLogEventActionToggleSlowMode", + "https://core.telegram.org/constructor/channelAdminLogEventActionChangeHistoryTTL" + ] + }, + "invite": { + "name": "invite", + "description": "Invite events¹", + "links": [ + "https://core.telegram.org/constructor/channelAdminLogEventActionParticipantInvite" + ] + }, + "invites": { + "name": "invites", + "description": "Invite events" + }, + "join": { + "name": "join", + "description": "Join events¹, including joins using invite links² and join requests³.", + "links": [ + "https://core.telegram.org/constructor/channelAdminLogEventActionParticipantJoin", + "https://core.telegram.org/constructor/channelAdminLogEventActionParticipantJoinByInvite", + "https://core.telegram.org/constructor/channelAdminLogEventActionParticipantJoinByRequest" + ] + }, + "kick": { + "name": "kick", + "description": "Kick events¹", + "links": [ + "https://core.telegram.org/constructor/channelAdminLogEventActionParticipantToggleBan" + ] + }, + "leave": { + "name": "leave", + "description": "Leave events¹", + "links": [ + "https://core.telegram.org/constructor/channelAdminLogEventActionParticipantLeave" + ] + }, + "pinned": { + "name": "pinned", + "description": "Message pin events¹", + "links": [ + "https://core.telegram.org/constructor/channelAdminLogEventActionUpdatePinned" + ] + }, + "promote": { + "name": "promote", + "description": "Admin promotion events¹", + "links": [ + "https://core.telegram.org/constructor/channelAdminLogEventActionParticipantToggleAdmin" + ] + }, + "send": { + "name": "send", + "description": "A message was posted in a channel" + }, + "settings": { + "name": "settings", + "description": "Settings change events (invites¹, hidden prehistory², signatures³, default banned rights⁴, forum toggle events⁵)", + "links": [ + "https://core.telegram.org/constructor/channelAdminLogEventActionToggleInvites", + "https://core.telegram.org/constructor/channelAdminLogEventActionTogglePreHistoryHidden", + "https://core.telegram.org/constructor/channelAdminLogEventActionToggleSignatures", + "https://core.telegram.org/constructor/channelAdminLogEventActionDefaultBannedRights", + "https://core.telegram.org/constructor/channelAdminLogEventActionToggleForum" + ] + }, + "unban": { + "name": "unban", + "description": "Unban events¹", + "links": [ + "https://core.telegram.org/constructor/channelAdminLogEventActionParticipantToggleBan" + ] + }, + "unkick": { + "name": "unkick", + "description": "Unkick events¹", + "links": [ + "https://core.telegram.org/constructor/channelAdminLogEventActionParticipantToggleBan" + ] + } + } + }, + "channelForbidden": { + "name": "channelForbidden", + "description": [ + "Indicates a channel/supergroup we can't access because we were banned, or for some other reason." + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "broadcast": { + "name": "broadcast", + "description": "Is this a channel" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Channel ID" + }, + "megagroup": { + "name": "megagroup", + "description": "Is this a supergroup" + }, + "title": { + "name": "title", + "description": "Title" + }, + "until_date": { + "name": "until_date", + "description": "The ban is valid until the specified date" + } + } + }, + "channelFull": { + "name": "channelFull", + "description": [ + "Full info about a channel¹, supergroup² or gigagroup³." + ], + "links": [ + "https://core.telegram.org/api/channel#channels", + "https://core.telegram.org/api/channel#supergroups", + "https://core.telegram.org/api/channel#gigagroups" + ], + "fields": { + "about": { + "name": "about", + "description": "Info about the channel" + }, + "admins_count": { + "name": "admins_count", + "description": "Number of channel admins" + }, + "antispam": { + "name": "antispam", + "description": "Whether native antispam¹ functionality is enabled in this supergroup.", + "links": [ + "https://core.telegram.org/api/antispam" + ] + }, + "available_min_id": { + "name": "available_min_id", + "description": "Identifier of a maximum unavailable message in a channel due to hidden history." + }, + "available_reactions": { + "name": "available_reactions", + "description": "Allowed message reactions »¹", + "links": [ + "https://core.telegram.org/api/reactions" + ] + }, + "banned_count": { + "name": "banned_count", + "description": "Number of users banned¹ from the channel", + "links": [ + "https://core.telegram.org/api/rights" + ] + }, + "blocked": { + "name": "blocked", + "description": "Whether any anonymous admin of this supergroup was blocked: if set, you won't receive messages from anonymous group admins in discussion replies via @replies¹", + "links": [ + "https://core.telegram.org/api/discussion" + ] + }, + "bot_info": { + "name": "bot_info", + "description": "Info about bots in the channel/supergroup" + }, + "call": { + "name": "call", + "description": "Livestream or group call information" + }, + "can_delete_channel": { + "name": "can_delete_channel", + "description": "Can we delete this channel?" + }, + "can_set_location": { + "name": "can_set_location", + "description": "Can we set the geolocation of this group (for geogroups)" + }, + "can_set_stickers": { + "name": "can_set_stickers", + "description": "Can we associate¹ a stickerpack to the supergroup?", + "links": [ + "https://core.telegram.org/method/channels.setStickers" + ] + }, + "can_set_username": { + "name": "can_set_username", + "description": "Can we set the channel's username?" + }, + "can_view_participants": { + "name": "can_view_participants", + "description": "Can we view the participant list?" + }, + "can_view_stats": { + "name": "can_view_stats", + "description": "Can the user view channel/supergroup statistics¹", + "links": [ + "https://core.telegram.org/api/stats" + ] + }, + "chat_photo": { + "name": "chat_photo", + "description": "Channel picture" + }, + "default_send_as": { + "name": "default_send_as", + "description": "Default peer used for sending messages to this channel" + }, + "exported_invite": { + "name": "exported_invite", + "description": "Invite link" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "flags2": { + "name": "flags2", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + }, + "groupcall_default_join_as": { + "name": "groupcall_default_join_as", + "description": "When using phone.getGroupCallJoinAs¹ to get a list of peers that can be used to join a group call, this field indicates the peer that should be selected by default.", + "links": [ + "https://core.telegram.org/method/phone.getGroupCallJoinAs" + ] + }, + "has_scheduled": { + "name": "has_scheduled", + "description": "Whether scheduled messages are available" + }, + "hidden_prehistory": { + "name": "hidden_prehistory", + "description": "Is the history before we joined hidden to us?" + }, + "id": { + "name": "id", + "description": "ID of the channel" + }, + "kicked_count": { + "name": "kicked_count", + "description": "Number of users kicked¹ from the channel", + "links": [ + "https://core.telegram.org/api/rights" + ] + }, + "linked_chat_id": { + "name": "linked_chat_id", + "description": "ID of the linked discussion chat¹ for channels", + "links": [ + "https://core.telegram.org/api/discussion" + ] + }, + "location": { + "name": "location", + "description": "Location of the geogroup" + }, + "migrated_from_chat_id": { + "name": "migrated_from_chat_id", + "description": "The chat ID from which this group was migrated¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "migrated_from_max_id": { + "name": "migrated_from_max_id", + "description": "The message ID in the original chat at which this group was migrated¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "notify_settings": { + "name": "notify_settings", + "description": "Notification settings" + }, + "online_count": { + "name": "online_count", + "description": "Number of users currently online" + }, + "participants_count": { + "name": "participants_count", + "description": "Number of participants of the channel" + }, + "participants_hidden": { + "name": "participants_hidden", + "description": "Whether the participant list is hidden." + }, + "pending_suggestions": { + "name": "pending_suggestions", + "description": "A list of suggested actions¹ for the supergroup admin, see here for more info »².", + "links": [ + "https://core.telegram.org/api/config#suggestions", + "https://core.telegram.org/api/config#suggestions" + ] + }, + "pinned_msg_id": { + "name": "pinned_msg_id", + "description": "Message ID of the last pinned message¹", + "links": [ + "https://core.telegram.org/api/pin" + ] + }, + "pts": { + "name": "pts", + "description": "Latest PTS¹ for this channel", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "read_inbox_max_id": { + "name": "read_inbox_max_id", + "description": "Position up to which all incoming messages are read." + }, + "read_outbox_max_id": { + "name": "read_outbox_max_id", + "description": "Position up to which all outgoing messages are read." + }, + "recent_requesters": { + "name": "recent_requesters", + "description": "IDs of users who requested to join recently" + }, + "requests_pending": { + "name": "requests_pending", + "description": "Pending join requests »¹", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + }, + "slowmode_next_send_date": { + "name": "slowmode_next_send_date", + "description": "Indicates when the user will be allowed to send another message in the supergroup (unixtime)" + }, + "slowmode_seconds": { + "name": "slowmode_seconds", + "description": "If specified, users in supergroups will only be able to send one message every slowmode_seconds seconds" + }, + "stats_dc": { + "name": "stats_dc", + "description": "If set, specifies the DC to use for fetching channel statistics" + }, + "stickerset": { + "name": "stickerset", + "description": "Associated stickerset" + }, + "stories": { + "name": "stories", + "description": "Channel stories¹", + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "stories_pinned_available": { + "name": "stories_pinned_available", + "description": "Whether this user has some pinned stories¹.", + "links": [ + "https://core.telegram.org/api/stories#pinned-or-archived-stories" + ] + }, + "theme_emoticon": { + "name": "theme_emoticon", + "description": "Emoji representing a specific chat theme" + }, + "translations_disabled": { + "name": "translations_disabled", + "description": "Whether the real-time chat translation popup¹ should be hidden.", + "links": [ + "https://core.telegram.org/api/translation" + ] + }, + "ttl_period": { + "name": "ttl_period", + "description": "Time-To-Live of messages in this channel or supergroup" + }, + "unread_count": { + "name": "unread_count", + "description": "Count of unread messages" + }, + "view_forum_as_messages": { + "name": "view_forum_as_messages", + "description": "Users may also choose to display messages from all topics of a forum¹ as if they were sent to a normal group, using a \"View as messages\" setting in the local client. This setting only affects the current account, and is synced to other logged in sessions using the channels.toggleViewForumAsMessages² method; invoking this method will update the value of this flag.", + "links": [ + "https://core.telegram.org/api/forum", + "https://core.telegram.org/method/channels.toggleViewForumAsMessages" + ] + }, + "wallpaper": { + "name": "wallpaper", + "description": "Wallpaper¹", + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + } + } + }, + "channelLocation": { + "name": "channelLocation", + "description": [ + "Geographical location of supergroup (geogroups)" + ], + "fields": { + "address": { + "name": "address", + "description": "Textual description of the address" + }, + "geo_point": { + "name": "geo_point", + "description": "Geographical location of supergroup" + } + } + }, + "channelLocationEmpty": { + "name": "channelLocationEmpty", + "description": [ + "No location (normal supergroup)" + ] + }, + "channelMessagesFilter": { + "name": "channelMessagesFilter", + "description": [ + "Filter for getting only certain types of channel messages" + ], + "fields": { + "exclude_new_messages": { + "name": "exclude_new_messages", + "description": "Whether to exclude new messages from the search" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "ranges": { + "name": "ranges", + "description": "A range of messages to fetch" + } + } + }, + "channelMessagesFilterEmpty": { + "name": "channelMessagesFilterEmpty", + "description": [ + "No filter" + ] + }, + "channelParticipant": { + "name": "channelParticipant", + "description": [ + "Channel/supergroup participant" + ], + "fields": { + "date": { + "name": "date", + "description": "Date joined" + }, + "user_id": { + "name": "user_id", + "description": "Participant user ID" + } + } + }, + "channelParticipantAdmin": { + "name": "channelParticipantAdmin", + "description": [ + "Admin" + ], + "fields": { + "admin_rights": { + "name": "admin_rights", + "description": "Admin rights¹", + "links": [ + "https://core.telegram.org/api/rights" + ] + }, + "can_edit": { + "name": "can_edit", + "description": "Can this admin promote other admins with the same permissions?" + }, + "date": { + "name": "date", + "description": "When did the user join" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "inviter_id": { + "name": "inviter_id", + "description": "User that invited the admin to the channel/group" + }, + "promoted_by": { + "name": "promoted_by", + "description": "User that promoted the user to admin" + }, + "rank": { + "name": "rank", + "description": "The role (rank) of the admin in the group: just an arbitrary string, admin by default" + }, + "self": { + "name": "self", + "description": "Is this the current user" + }, + "user_id": { + "name": "user_id", + "description": "Admin user ID" + } + } + }, + "channelParticipantBanned": { + "name": "channelParticipantBanned", + "description": [ + "Banned/kicked user" + ], + "fields": { + "banned_rights": { + "name": "banned_rights", + "description": "Banned rights¹", + "links": [ + "https://core.telegram.org/api/rights" + ] + }, + "date": { + "name": "date", + "description": "When did the user join the group" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "kicked_by": { + "name": "kicked_by", + "description": "User was kicked by the specified admin" + }, + "left": { + "name": "left", + "description": "Whether the user has left the group" + }, + "peer": { + "name": "peer", + "description": "The banned peer" + } + } + }, + "channelParticipantCreator": { + "name": "channelParticipantCreator", + "description": [ + "Channel/supergroup creator" + ], + "fields": { + "admin_rights": { + "name": "admin_rights", + "description": "Creator admin rights" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "rank": { + "name": "rank", + "description": "The role (rank) of the group creator in the group: just an arbitrary string, admin by default" + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + } + }, + "channelParticipantLeft": { + "name": "channelParticipantLeft", + "description": [ + "A participant that left the channel/supergroup" + ], + "fields": { + "peer": { + "name": "peer", + "description": "The peer that left" + } + } + }, + "channelParticipantSelf": { + "name": "channelParticipantSelf", + "description": [ + "Myself" + ], + "fields": { + "date": { + "name": "date", + "description": "When did I join the channel/supergroup" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "inviter_id": { + "name": "inviter_id", + "description": "User that invited me to the channel/supergroup" + }, + "user_id": { + "name": "user_id", + "description": "User ID" + }, + "via_request": { + "name": "via_request", + "description": "Whether I joined upon specific approval of an admin" + } + } + }, + "channelParticipantsAdmins": { + "name": "channelParticipantsAdmins", + "description": [ + "Fetch only admin participants" + ] + }, + "channelParticipantsBanned": { + "name": "channelParticipantsBanned", + "description": [ + "Fetch only banned participants" + ], + "fields": { + "q": { + "name": "q", + "description": "Optional filter for searching banned participants by name (otherwise empty)" + } + } + }, + "channelParticipantsBots": { + "name": "channelParticipantsBots", + "description": [ + "Fetch only bot participants" + ] + }, + "channelParticipantsContacts": { + "name": "channelParticipantsContacts", + "description": [ + "Fetch only participants that are also contacts" + ], + "fields": { + "q": { + "name": "q", + "description": "Optional search query for searching contact participants by name" + } + } + }, + "channelParticipantsKicked": { + "name": "channelParticipantsKicked", + "description": [ + "Fetch only kicked participants" + ], + "fields": { + "q": { + "name": "q", + "description": "Optional filter for searching kicked participants by name (otherwise empty)" + } + } + }, + "channelParticipantsMentions": { + "name": "channelParticipantsMentions", + "description": [ + "This filter is used when looking for supergroup members to mention.", + "This filter will automatically remove anonymous admins, and return even non-participant users that replied to a specific thread¹ through the comment section² of a channel." + ], + "links": [ + "https://core.telegram.org/api/threads", + "https://core.telegram.org/api/threads#channel-comments" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "q": { + "name": "q", + "description": "Filter by user name or username" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "Look only for users that posted in this thread¹", + "links": [ + "https://core.telegram.org/api/threads" + ] + } + } + }, + "channelParticipantsRecent": { + "name": "channelParticipantsRecent", + "description": [ + "Fetch only recent participants" + ] + }, + "channelParticipantsSearch": { + "name": "channelParticipantsSearch", + "description": [ + "Query participants by name" + ], + "fields": { + "q": { + "name": "q", + "description": "Search query" + } + } + }, + "channels.adminLogResults": { + "name": "channels.adminLogResults", + "description": [ + "Admin log events" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chats mentioned in events" + }, + "events": { + "name": "events", + "description": "Admin log events" + }, + "users": { + "name": "users", + "description": "Users mentioned in events" + } + } + }, + "channels.channelParticipant": { + "name": "channels.channelParticipant", + "description": [ + "Represents a channel participant" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "participant": { + "name": "participant", + "description": "The channel participant" + }, + "users": { + "name": "users", + "description": "Users" + } + } + }, + "channels.channelParticipants": { + "name": "channels.channelParticipants", + "description": [ + "Represents multiple channel participants" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "count": { + "name": "count", + "description": "Total number of participants that correspond to the given query" + }, + "participants": { + "name": "participants", + "description": "Participants" + }, + "users": { + "name": "users", + "description": "Users mentioned in participant info" + } + } + }, + "channels.channelParticipantsNotModified": { + "name": "channels.channelParticipantsNotModified", + "description": [ + "No new participant info could be found" + ] + }, + "channels.sendAsPeers": { + "name": "channels.sendAsPeers", + "description": [ + "A list of peers that can be used to send messages in a specific group" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "peers": { + "name": "peers", + "description": "Peers that can be used to send messages to the group" + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "chat": { + "name": "chat", + "description": [ + "Info about a group" + ], + "fields": { + "admin_rights": { + "name": "admin_rights", + "description": "Admin rights¹ of the user in the group", + "links": [ + "https://core.telegram.org/api/rights" + ] + }, + "call_active": { + "name": "call_active", + "description": "Whether a group call is currently active" + }, + "call_not_empty": { + "name": "call_not_empty", + "description": "Whether there's anyone in the group call" + }, + "creator": { + "name": "creator", + "description": "Whether the current user is the creator of the group" + }, + "date": { + "name": "date", + "description": "Date of creation of the group" + }, + "deactivated": { + "name": "deactivated", + "description": "Whether the group was migrated¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "default_banned_rights": { + "name": "default_banned_rights", + "description": "Default banned rights¹ of all users in the group", + "links": [ + "https://core.telegram.org/api/rights" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "ID of the group" + }, + "left": { + "name": "left", + "description": "Whether the current user has left the group" + }, + "migrated_to": { + "name": "migrated_to", + "description": "Means this chat was upgraded¹ to a supergroup", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "noforwards": { + "name": "noforwards", + "description": "Whether this group is protected¹, thus does not allow forwarding messages from it", + "links": [ + "https://telegram.org/blog/protected-content-delete-by-date-and-more" + ] + }, + "participants_count": { + "name": "participants_count", + "description": "Participant count" + }, + "photo": { + "name": "photo", + "description": "Chat photo" + }, + "title": { + "name": "title", + "description": "Title" + }, + "version": { + "name": "version", + "description": "Used in basic groups to reorder updates and make sure that all of them were received." + } + } + }, + "chatAdminRights": { + "name": "chatAdminRights", + "description": [ + "Represents the rights of an admin in a channel/supergroup¹." + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "add_admins": { + "name": "add_admins", + "description": "If set, allows the admin to add other admins with the same (or more limited) permissions in the channel/supergroup¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "anonymous": { + "name": "anonymous", + "description": "Whether this admin is anonymous" + }, + "ban_users": { + "name": "ban_users", + "description": "If set, allows the admin to ban users from the channel/supergroup¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "change_info": { + "name": "change_info", + "description": "If set, allows the admin to modify the description of the channel/supergroup¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "delete_messages": { + "name": "delete_messages", + "description": "If set, allows the admin to also delete messages from other admins in the channel¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "delete_stories": { + "name": "delete_stories", + "description": "If set, allows the admin to delete stories¹ posted by the other admins of the channel².", + "links": [ + "https://core.telegram.org/api/stories", + "https://core.telegram.org/api/channel" + ] + }, + "edit_messages": { + "name": "edit_messages", + "description": "If set, allows the admin to also edit messages from other admins in the channel¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "edit_stories": { + "name": "edit_stories", + "description": "If set, allows the admin to edit stories¹ posted by the other admins of the channel².", + "links": [ + "https://core.telegram.org/api/stories", + "https://core.telegram.org/api/channel" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invite_users": { + "name": "invite_users", + "description": "If set, allows the admin to invite users in the channel/supergroup¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "manage_call": { + "name": "manage_call", + "description": "If set, allows the admin to change group call/livestream settings" + }, + "manage_topics": { + "name": "manage_topics", + "description": "If set, allows the admin to create, delete or modify forum topics »¹.", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + }, + "other": { + "name": "other", + "description": "Set this flag if none of the other flags are set, but you still want the user to be an admin: if this or any of the other flags are set, the admin can get the chat admin log¹, get chat statistics², get message statistics in channels³, get channel members, see anonymous administrators in supergroups and ignore slow mode.", + "links": [ + "https://core.telegram.org/api/recent-actions", + "https://core.telegram.org/api/stats", + "https://core.telegram.org/api/stats" + ] + }, + "pin_messages": { + "name": "pin_messages", + "description": "If set, allows the admin to pin messages in the channel/supergroup¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "post_messages": { + "name": "post_messages", + "description": "If set, allows the admin to post messages in the channel¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "post_stories": { + "name": "post_stories", + "description": "If set, allows the admin to post stories¹ as the channel².", + "links": [ + "https://core.telegram.org/api/stories", + "https://core.telegram.org/api/channel" + ] + } + } + }, + "chatAdminWithInvites": { + "name": "chatAdminWithInvites", + "description": [ + "Info about chat invites generated by admins." + ], + "fields": { + "admin_id": { + "name": "admin_id", + "description": "The admin" + }, + "invites_count": { + "name": "invites_count", + "description": "Number of invites generated by the admin" + }, + "revoked_invites_count": { + "name": "revoked_invites_count", + "description": "Number of revoked invites" + } + } + }, + "chatBannedRights": { + "name": "chatBannedRights", + "description": [ + "Represents the rights of a normal user in a supergroup/channel/chat¹. In this case, the flags are inverted: if set, a flag does not allow a user to do X." + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "change_info": { + "name": "change_info", + "description": "If set, does not allow any user to change the description of a supergroup/chat¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "embed_links": { + "name": "embed_links", + "description": "If set, does not allow a user to embed links in the messages of a supergroup/chat¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invite_users": { + "name": "invite_users", + "description": "If set, does not allow any user to invite users in a supergroup/chat¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "manage_topics": { + "name": "manage_topics", + "description": "If set, does not allow any user to create, delete or modify forum topics »¹.", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + }, + "pin_messages": { + "name": "pin_messages", + "description": "If set, does not allow any user to pin messages in a supergroup/chat¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "send_audios": { + "name": "send_audios", + "description": "If set, does not allow a user to send audio files in a supergroup/chat¹.", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "send_docs": { + "name": "send_docs", + "description": "If set, does not allow a user to send documents in a supergroup/chat¹.", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "send_games": { + "name": "send_games", + "description": "If set, does not allow a user to send games in a supergroup/chat¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "send_gifs": { + "name": "send_gifs", + "description": "If set, does not allow a user to send gifs in a supergroup/chat¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "send_inline": { + "name": "send_inline", + "description": "If set, does not allow a user to use inline bots in a supergroup/chat¹.", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "send_media": { + "name": "send_media", + "description": "If set, does not allow a user to send any media in a supergroup/chat¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "send_messages": { + "name": "send_messages", + "description": "If set, does not allow a user to send messages in a supergroup/chat¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "send_photos": { + "name": "send_photos", + "description": "If set, does not allow a user to send photos in a supergroup/chat¹.", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "send_plain": { + "name": "send_plain", + "description": "If set, does not allow a user to send text messages in a supergroup/chat¹.", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "send_polls": { + "name": "send_polls", + "description": "If set, does not allow a user to send polls in a supergroup/chat¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "send_roundvideos": { + "name": "send_roundvideos", + "description": "If set, does not allow a user to send round videos in a supergroup/chat¹.", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "send_stickers": { + "name": "send_stickers", + "description": "If set, does not allow a user to send stickers in a supergroup/chat¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "send_videos": { + "name": "send_videos", + "description": "If set, does not allow a user to send videos in a supergroup/chat¹.", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "send_voices": { + "name": "send_voices", + "description": "If set, does not allow a user to send voice messages in a supergroup/chat¹.", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "until_date": { + "name": "until_date", + "description": "Validity of said permissions (it is considered forever any value less then 30 seconds or more then 366 days)." + }, + "view_messages": { + "name": "view_messages", + "description": "If set, does not allow a user to view messages in a supergroup/channel/chat¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + } + } + }, + "chatEmpty": { + "name": "chatEmpty", + "description": [ + "Empty constructor, group doesn't exist" + ], + "fields": { + "id": { + "name": "id", + "description": "Group identifier" + } + } + }, + "chatForbidden": { + "name": "chatForbidden", + "description": [ + "A group to which the user has no access. E.g., because the user was kicked from the group." + ], + "fields": { + "id": { + "name": "id", + "description": "User identifier" + }, + "title": { + "name": "title", + "description": "Group name" + } + } + }, + "chatFull": { + "name": "chatFull", + "description": [ + "Full info about a basic group¹." + ], + "links": [ + "https://core.telegram.org/api/channel#basic-groups" + ], + "fields": { + "about": { + "name": "about", + "description": "About string for this chat" + }, + "available_reactions": { + "name": "available_reactions", + "description": "Allowed message reactions »¹", + "links": [ + "https://core.telegram.org/api/reactions" + ] + }, + "bot_info": { + "name": "bot_info", + "description": "Info about bots that are in this chat" + }, + "call": { + "name": "call", + "description": "Group call information" + }, + "can_set_username": { + "name": "can_set_username", + "description": "Can we change the username of this chat" + }, + "chat_photo": { + "name": "chat_photo", + "description": "Chat photo" + }, + "exported_invite": { + "name": "exported_invite", + "description": "Chat invite" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + }, + "groupcall_default_join_as": { + "name": "groupcall_default_join_as", + "description": "When using phone.getGroupCallJoinAs¹ to get a list of peers that can be used to join a group call, this field indicates the peer that should be selected by default.", + "links": [ + "https://core.telegram.org/method/phone.getGroupCallJoinAs" + ] + }, + "has_scheduled": { + "name": "has_scheduled", + "description": "Whether scheduled messages¹ are available", + "links": [ + "https://core.telegram.org/api/scheduled-messages" + ] + }, + "id": { + "name": "id", + "description": "ID of the chat" + }, + "notify_settings": { + "name": "notify_settings", + "description": "Notification settings" + }, + "participants": { + "name": "participants", + "description": "Participant list" + }, + "pinned_msg_id": { + "name": "pinned_msg_id", + "description": "Message ID of the last pinned message¹", + "links": [ + "https://core.telegram.org/api/pin" + ] + }, + "recent_requesters": { + "name": "recent_requesters", + "description": "IDs of users who requested to join recently" + }, + "requests_pending": { + "name": "requests_pending", + "description": "Pending join requests »¹", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + }, + "theme_emoticon": { + "name": "theme_emoticon", + "description": "Emoji representing a specific chat theme" + }, + "translations_disabled": { + "name": "translations_disabled", + "description": "Whether the real-time chat translation popup¹ should be hidden.", + "links": [ + "https://core.telegram.org/api/translation" + ] + }, + "ttl_period": { + "name": "ttl_period", + "description": "Time-To-Live of messages sent by the current user to this chat" + } + } + }, + "chatInvite": { + "name": "chatInvite", + "description": [ + "Chat invite info" + ], + "fields": { + "about": { + "name": "about", + "description": "Description of the group of channel" + }, + "broadcast": { + "name": "broadcast", + "description": "Whether this is a channel¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "channel": { + "name": "channel", + "description": "Whether this is a channel/supergroup¹ or a normal group²", + "links": [ + "https://core.telegram.org/api/channel", + "https://core.telegram.org/api/channel" + ] + }, + "color": { + "name": "color", + "description": "Profile color palette ID¹", + "links": [ + "https://core.telegram.org/api/colors" + ] + }, + "fake": { + "name": "fake", + "description": "If set, this chat was reported by many users as a fake or scam: be careful when interacting with it." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "megagroup": { + "name": "megagroup", + "description": "Whether this is a supergroup¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "participants": { + "name": "participants", + "description": "A few of the participants that are in the group" + }, + "participants_count": { + "name": "participants_count", + "description": "Participant count" + }, + "photo": { + "name": "photo", + "description": "Chat/supergroup/channel photo" + }, + "public": { + "name": "public", + "description": "Whether this is a public channel/supergroup¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "request_needed": { + "name": "request_needed", + "description": "Whether the join request »¹ must be first approved by an administrator", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + }, + "scam": { + "name": "scam", + "description": "This chat is probably a scam" + }, + "title": { + "name": "title", + "description": "Chat/supergroup/channel title" + }, + "verified": { + "name": "verified", + "description": "Is this chat or channel verified by Telegram?" + } + } + }, + "chatInviteAlready": { + "name": "chatInviteAlready", + "description": [ + "The user has already joined this chat" + ], + "fields": { + "chat": { + "name": "chat", + "description": "The chat connected to the invite" + } + } + }, + "chatInviteExported": { + "name": "chatInviteExported", + "description": [ + "Exported chat invite" + ], + "fields": { + "admin_id": { + "name": "admin_id", + "description": "ID of the admin that created this chat invite" + }, + "date": { + "name": "date", + "description": "When was this chat invite created" + }, + "expire_date": { + "name": "expire_date", + "description": "When does this chat invite expire" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "link": { + "name": "link", + "description": "Chat invitation link" + }, + "permanent": { + "name": "permanent", + "description": "Whether this chat invite has no expiration" + }, + "request_needed": { + "name": "request_needed", + "description": "Whether users importing this invite link will have to be approved to join the channel or group" + }, + "requested": { + "name": "requested", + "description": "Number of users that have already used this link to join" + }, + "revoked": { + "name": "revoked", + "description": "Whether this chat invite was revoked" + }, + "start_date": { + "name": "start_date", + "description": "When was this chat invite last modified" + }, + "title": { + "name": "title", + "description": "Custom description for the invite link, visible only to admins" + }, + "usage": { + "name": "usage", + "description": "How many users joined using this link" + }, + "usage_limit": { + "name": "usage_limit", + "description": "Maximum number of users that can join using this link" + } + } + }, + "chatInviteImporter": { + "name": "chatInviteImporter", + "description": [ + "When and which user joined the chat using a chat invite" + ], + "fields": { + "about": { + "name": "about", + "description": "For users with pending requests, contains bio of the user that requested to join" + }, + "approved_by": { + "name": "approved_by", + "description": "The administrator that approved the join request »¹ of the user", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + }, + "date": { + "name": "date", + "description": "When did the user join" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "requested": { + "name": "requested", + "description": "Whether this user currently has a pending join request »¹", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + }, + "user_id": { + "name": "user_id", + "description": "The user" + }, + "via_chatlist": { + "name": "via_chatlist", + "description": "The participant joined by importing a chat folder deep link »¹.", + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + } + } + }, + "chatInvitePeek": { + "name": "chatInvitePeek", + "description": [ + "A chat invitation that also allows peeking into the group to read messages without joining it." + ], + "fields": { + "chat": { + "name": "chat", + "description": "Chat information" + }, + "expires": { + "name": "expires", + "description": "Read-only anonymous access to this group will be revoked at this date" + } + } + }, + "chatInvitePublicJoinRequests": { + "name": "chatInvitePublicJoinRequests", + "description": [ + "Used in updates and in the channel log to indicate when a user is requesting to join or has joined a discussion group¹" + ], + "links": [ + "https://core.telegram.org/api/discussion#requiring-users-to-join-the-group" + ] + }, + "chatOnlines": { + "name": "chatOnlines", + "description": [ + "Number of online users in a chat" + ], + "fields": { + "onlines": { + "name": "onlines", + "description": "Number of online users" + } + } + }, + "chatParticipant": { + "name": "chatParticipant", + "description": [ + "Group member." + ], + "fields": { + "date": { + "name": "date", + "description": "Date added to the group" + }, + "inviter_id": { + "name": "inviter_id", + "description": "ID of the user that added the member to the group" + }, + "user_id": { + "name": "user_id", + "description": "Member user ID" + } + } + }, + "chatParticipantAdmin": { + "name": "chatParticipantAdmin", + "description": [ + "Chat admin" + ], + "fields": { + "date": { + "name": "date", + "description": "Date when the user was added" + }, + "inviter_id": { + "name": "inviter_id", + "description": "ID of the user that added the member to the group" + }, + "user_id": { + "name": "user_id", + "description": "ID of a group member that is admin" + } + } + }, + "chatParticipantCreator": { + "name": "chatParticipantCreator", + "description": [ + "Represents the creator of the group" + ], + "fields": { + "user_id": { + "name": "user_id", + "description": "ID of the user that created the group" + } + } + }, + "chatParticipants": { + "name": "chatParticipants", + "description": [ + "Group members." + ], + "fields": { + "chat_id": { + "name": "chat_id", + "description": "Group identifier" + }, + "participants": { + "name": "participants", + "description": "List of group members" + }, + "version": { + "name": "version", + "description": "Group version number" + } + } + }, + "chatParticipantsForbidden": { + "name": "chatParticipantsForbidden", + "description": [ + "Info on members is unavailable" + ], + "fields": { + "chat_id": { + "name": "chat_id", + "description": "Group ID" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "self_participant": { + "name": "self_participant", + "description": "Info about the group membership of the current user" + } + } + }, + "chatPhoto": { + "name": "chatPhoto", + "description": [ + "Group profile photo." + ], + "fields": { + "dc_id": { + "name": "dc_id", + "description": "DC where this photo is stored" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "has_video": { + "name": "has_video", + "description": "Whether the user has an animated profile picture" + }, + "photo_id": { + "name": "photo_id", + "description": "Photo ID" + }, + "stripped_thumb": { + "name": "stripped_thumb", + "description": "Stripped thumbnail¹", + "links": [ + "https://core.telegram.org/api/files#stripped-thumbnails" + ] + } + } + }, + "chatPhotoEmpty": { + "name": "chatPhotoEmpty", + "description": [ + "Group photo is not set." + ] + }, + "chatReactionsAll": { + "name": "chatReactionsAll", + "description": [ + "All reactions or all non-custom reactions are allowed" + ], + "fields": { + "allow_custom": { + "name": "allow_custom", + "description": "Whether to allow custom reactions" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + } + } + }, + "chatReactionsNone": { + "name": "chatReactionsNone", + "description": [ + "No reactions are allowed" + ] + }, + "chatReactionsSome": { + "name": "chatReactionsSome", + "description": [ + "Some reactions are allowed" + ], + "fields": { + "reactions": { + "name": "reactions", + "description": "Allowed set of reactions: the reactions_in_chat_max¹ configuration field indicates the maximum number of reactions that can be specified in this field.", + "links": [ + "https://core.telegram.org/api/config#reactions-in-chat-max" + ] + } + } + }, + "chatlists.chatlistInvite": { + "name": "chatlists.chatlistInvite", + "description": [ + "Info about a chat folder deep link »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Related chat information" + }, + "emoticon": { + "name": "emoticon", + "description": "Emoji to use as icon for the folder." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peers": { + "name": "peers", + "description": "Supergroups and channels to join" + }, + "title": { + "name": "title", + "description": "Name of the link" + }, + "users": { + "name": "users", + "description": "Related user information" + } + } + }, + "chatlists.chatlistInviteAlready": { + "name": "chatlists.chatlistInviteAlready", + "description": [ + "Updated info about a chat folder deep link »¹ we already imported." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "fields": { + "already_peers": { + "name": "already_peers", + "description": "Peers that were already imported" + }, + "chats": { + "name": "chats", + "description": "Related chat information" + }, + "filter_id": { + "name": "filter_id", + "description": "ID of the imported folder" + }, + "missing_peers": { + "name": "missing_peers", + "description": "New peers to be imported" + }, + "users": { + "name": "users", + "description": "Related user information" + } + } + }, + "chatlists.chatlistUpdates": { + "name": "chatlists.chatlistUpdates", + "description": [ + "Updated information about a chat folder deep link »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Related chat information" + }, + "missing_peers": { + "name": "missing_peers", + "description": "New peers to join" + }, + "users": { + "name": "users", + "description": "Related user information" + } + } + }, + "chatlists.exportedChatlistInvite": { + "name": "chatlists.exportedChatlistInvite", + "description": [ + "Info about an exported chat folder deep link »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "fields": { + "filter": { + "name": "filter", + "description": "Folder ID" + }, + "invite": { + "name": "invite", + "description": "The exported chat folder deep link »¹.", + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + } + } + }, + "chatlists.exportedInvites": { + "name": "chatlists.exportedInvites", + "description": [ + "Info about multiple chat folder deep links »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Related chat information" + }, + "invites": { + "name": "invites", + "description": "The chat folder deep links »¹.", + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + }, + "users": { + "name": "users", + "description": "Related user information" + } + } + }, + "codeSettings": { + "name": "codeSettings", + "description": [ + "Settings used by telegram servers for sending the confirm code.", + "Example implementations: telegram for android¹, tdlib²." + ], + "links": [ + "https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java", + "https://github.com/tdlib/td/tree/master/td/telegram/SendCodeHelper.cpp" + ], + "fields": { + "allow_app_hash": { + "name": "allow_app_hash", + "description": "If a token that will be included in eventually sent SMSs is required: required in newer versions of android, to use the android SMS receiver APIs¹", + "links": [ + "https://developers.google.com/identity/sms-retriever/overview" + ] + }, + "allow_firebase": { + "name": "allow_firebase", + "description": "Whether Firebase auth is supported" + }, + "allow_flashcall": { + "name": "allow_flashcall", + "description": "Whether to allow phone verification via phone calls¹.", + "links": [ + "https://core.telegram.org/api/auth" + ] + }, + "allow_missed_call": { + "name": "allow_missed_call", + "description": "Whether this device supports receiving the code using the auth.codeTypeMissedCall¹ method", + "links": [ + "https://core.telegram.org/constructor/auth.codeTypeMissedCall" + ] + }, + "app_sandbox": { + "name": "app_sandbox", + "description": "Used only by official iOS apps for firebase auth: whether a sandbox-certificate will be used during transmission of the push notification." + }, + "current_number": { + "name": "current_number", + "description": "Pass true if the phone number is used on the current device. Ignored if allow_flashcall is not set." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "logout_tokens": { + "name": "logout_tokens", + "description": "Previously stored future auth tokens, see the documentation for more info »¹", + "links": [ + "https://core.telegram.org/api/auth#future-auth-tokens" + ] + }, + "token": { + "name": "token", + "description": "Used only by official iOS apps for Firebase auth: device token for apple push." + } + } + }, + "config": { + "name": "config", + "description": [ + "Current configuration" + ], + "fields": { + "autologin_token": { + "name": "autologin_token", + "description": "Autologin token, click here for more info on URL authorization »¹.", + "links": [ + "https://core.telegram.org/api/url-authorization#link-url-authorization" + ] + }, + "autoupdate_url_prefix": { + "name": "autoupdate_url_prefix", + "description": "URL to use to auto-update the current app" + }, + "base_lang_pack_version": { + "name": "base_lang_pack_version", + "description": "Basic language pack version" + }, + "blocked_mode": { + "name": "blocked_mode", + "description": "Indicates that telegram is probably censored by governments/ISPs in the current region" + }, + "call_connect_timeout_ms": { + "name": "call_connect_timeout_ms", + "description": "VoIP connection timeout: if the instance of libtgvoip on the other side of the call doesn't connect to our instance of libtgvoip within the specified time (in milliseconds), the call must be aborted" + }, + "call_packet_timeout_ms": { + "name": "call_packet_timeout_ms", + "description": "If during a VoIP call a packet isn't received for the specified period of time, the call must be aborted" + }, + "call_receive_timeout_ms": { + "name": "call_receive_timeout_ms", + "description": "Maximum allowed outgoing ring time in VoIP calls: if the user we're calling doesn't reply within the specified time (in milliseconds), we should hang up the call" + }, + "call_ring_timeout_ms": { + "name": "call_ring_timeout_ms", + "description": "Maximum allowed incoming ring time in VoIP calls: if the current user doesn't reply within the specified time (in milliseconds), the call will be automatically refused" + }, + "caption_length_max": { + "name": "caption_length_max", + "description": "Maximum length of caption (length in utf8 codepoints)" + }, + "channels_read_media_period": { + "name": "channels_read_media_period", + "description": "Indicates that round videos (video notes) and voice messages sent in channels and older than the specified period must be marked as read" + }, + "chat_size_max": { + "name": "chat_size_max", + "description": "Maximum member count for normal groups¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "date": { + "name": "date", + "description": "Current date at the server" + }, + "dc_options": { + "name": "dc_options", + "description": "DC IP list" + }, + "dc_txt_domain_name": { + "name": "dc_txt_domain_name", + "description": "Domain name for fetching encrypted DC list from DNS TXT record" + }, + "default_p2p_contacts": { + "name": "default_p2p_contacts", + "description": "Whether the client should use P2P by default for phone calls with contacts" + }, + "edit_time_limit": { + "name": "edit_time_limit", + "description": "Only messages with age smaller than the one specified can be edited" + }, + "expires": { + "name": "expires", + "description": "Expiration date of this config: when it expires it'll have to be refetched using help.getConfig¹", + "links": [ + "https://core.telegram.org/method/help.getConfig" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "force_try_ipv6": { + "name": "force_try_ipv6", + "description": "Whether to forcefully connect using IPv6 dcOptions¹, even if the client knows that IPv4 is available.", + "links": [ + "https://core.telegram.org/type/DcOption" + ] + }, + "forwarded_count_max": { + "name": "forwarded_count_max", + "description": "Maximum number of messages that can be forwarded at once using messages.forwardMessages¹.", + "links": [ + "https://core.telegram.org/method/messages.forwardMessages" + ] + }, + "gif_search_username": { + "name": "gif_search_username", + "description": "Username of the bot to use to search for GIFs" + }, + "img_search_username": { + "name": "img_search_username", + "description": "Username of the bot to use for image search" + }, + "lang_pack_version": { + "name": "lang_pack_version", + "description": "Language pack version" + }, + "me_url_prefix": { + "name": "me_url_prefix", + "description": "The domain to use to parse deep links »¹.", + "links": [ + "https://core.telegram.org/api/links" + ] + }, + "megagroup_size_max": { + "name": "megagroup_size_max", + "description": "Maximum member count for supergroups¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "message_length_max": { + "name": "message_length_max", + "description": "Maximum length of messages (length in utf8 codepoints)" + }, + "notify_cloud_delay_ms": { + "name": "notify_cloud_delay_ms", + "description": "If we are offline, but online from some other client then delay sending the offline notification for notify_cloud_delay_ms milliseconds." + }, + "notify_default_delay_ms": { + "name": "notify_default_delay_ms", + "description": "If some other client is online, then delay notification for notification_default_delay_ms milliseconds" + }, + "offline_blur_timeout_ms": { + "name": "offline_blur_timeout_ms", + "description": "Delay before offline status needs to be sent to the server" + }, + "offline_idle_timeout_ms": { + "name": "offline_idle_timeout_ms", + "description": "Time without any user activity after which it should be treated offline" + }, + "online_cloud_timeout_ms": { + "name": "online_cloud_timeout_ms", + "description": "If we are offline, but were online from some other client in last online_cloud_timeout_ms milliseconds after we had gone offline, then delay offline notification for notify_cloud_delay_ms milliseconds." + }, + "online_update_period_ms": { + "name": "online_update_period_ms", + "description": "The client should update its online status¹ every N milliseconds", + "links": [ + "https://core.telegram.org/method/account.updateStatus" + ] + }, + "preload_featured_stickers": { + "name": "preload_featured_stickers", + "description": "Whether the client should preload featured stickers" + }, + "push_chat_limit": { + "name": "push_chat_limit", + "description": "Not for client use" + }, + "push_chat_period_ms": { + "name": "push_chat_period_ms", + "description": "Not for client use" + }, + "rating_e_decay": { + "name": "rating_e_decay", + "description": "Exponential decay rate for computing top peer rating¹", + "links": [ + "https://core.telegram.org/api/top-rating" + ] + }, + "reactions_default": { + "name": "reactions_default", + "description": "Default message reaction¹", + "links": [ + "https://core.telegram.org/api/reactions" + ] + }, + "revoke_pm_inbox": { + "name": "revoke_pm_inbox", + "description": "Whether incoming private messages can be deleted for both participants" + }, + "revoke_pm_time_limit": { + "name": "revoke_pm_time_limit", + "description": "Only private messages with age smaller than the specified can be deleted" + }, + "revoke_time_limit": { + "name": "revoke_time_limit", + "description": "Only channel/supergroup messages with age smaller than the specified can be deleted" + }, + "static_maps_provider": { + "name": "static_maps_provider", + "description": "ID of the map provider to use for venues" + }, + "stickers_recent_limit": { + "name": "stickers_recent_limit", + "description": "Maximum number of recent stickers" + }, + "suggested_lang_code": { + "name": "suggested_lang_code", + "description": "Suggested language code" + }, + "test_mode": { + "name": "test_mode", + "description": "Whether we're connected to the test DCs" + }, + "this_dc": { + "name": "this_dc", + "description": "ID of the DC that returned the reply" + }, + "tmp_sessions": { + "name": "tmp_sessions", + "description": "Temporary passport¹ sessions", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "venue_search_username": { + "name": "venue_search_username", + "description": "Username of the bot to use to search for venues" + }, + "webfile_dc_id": { + "name": "webfile_dc_id", + "description": "DC ID to use to download webfiles¹", + "links": [ + "https://core.telegram.org/api/files#downloading-webfiles" + ] + } + } + }, + "contact": { + "name": "contact", + "description": [ + "A contact of the current user that is registered in the system." + ], + "fields": { + "mutual": { + "name": "mutual", + "description": "Current user is in the user's contact list" + }, + "user_id": { + "name": "user_id", + "description": "User identifier" + } + } + }, + "contactStatus": { + "name": "contactStatus", + "description": [ + "Contact status: online / offline." + ], + "fields": { + "status": { + "name": "status", + "description": "Online status" + }, + "user_id": { + "name": "user_id", + "description": "User identifier" + } + } + }, + "contacts.blocked": { + "name": "contacts.blocked", + "description": [ + "Full list of blocked users." + ], + "fields": { + "blocked": { + "name": "blocked", + "description": "List of blocked users" + }, + "chats": { + "name": "chats", + "description": "Blocked chats" + }, + "users": { + "name": "users", + "description": "List of users" + } + } + }, + "contacts.blockedSlice": { + "name": "contacts.blockedSlice", + "description": [ + "Incomplete list of blocked users." + ], + "fields": { + "blocked": { + "name": "blocked", + "description": "List of blocked users" + }, + "chats": { + "name": "chats", + "description": "Blocked chats" + }, + "count": { + "name": "count", + "description": "Total number of elements in the list" + }, + "users": { + "name": "users", + "description": "List of users" + } + } + }, + "contacts.contacts": { + "name": "contacts.contacts", + "description": [ + "The current user's contact list and info on users." + ], + "fields": { + "contacts": { + "name": "contacts", + "description": "Contact list" + }, + "saved_count": { + "name": "saved_count", + "description": "Number of contacts that were saved successfully" + }, + "users": { + "name": "users", + "description": "User list" + } + } + }, + "contacts.contactsNotModified": { + "name": "contacts.contactsNotModified", + "description": [ + "Contact list on the server is the same as the list on the client." + ] + }, + "contacts.found": { + "name": "contacts.found", + "description": [ + "Users found by name substring and auxiliary data." + ], + "fields": { + "chats": { + "name": "chats", + "description": "Found chats" + }, + "my_results": { + "name": "my_results", + "description": "Personalized results" + }, + "results": { + "name": "results", + "description": "List of found user identifiers" + }, + "users": { + "name": "users", + "description": "List of users" + } + } + }, + "contacts.importedContacts": { + "name": "contacts.importedContacts", + "description": [ + "Info on successfully imported contacts." + ], + "fields": { + "imported": { + "name": "imported", + "description": "List of successfully imported contacts" + }, + "popular_invites": { + "name": "popular_invites", + "description": "Popular contacts" + }, + "retry_contacts": { + "name": "retry_contacts", + "description": "List of contact ids that could not be imported due to system limitation and will need to be imported at a later date." + }, + "users": { + "name": "users", + "description": "List of users" + } + } + }, + "contacts.resolvedPeer": { + "name": "contacts.resolvedPeer", + "description": [ + "Resolved peer" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chats" + }, + "peer": { + "name": "peer", + "description": "The peer" + }, + "users": { + "name": "users", + "description": "Users" + } + } + }, + "contacts.topPeers": { + "name": "contacts.topPeers", + "description": [ + "Top peers" + ], + "fields": { + "categories": { + "name": "categories", + "description": "Top peers by top peer category" + }, + "chats": { + "name": "chats", + "description": "Chats" + }, + "users": { + "name": "users", + "description": "Users" + } + } + }, + "contacts.topPeersDisabled": { + "name": "contacts.topPeersDisabled", + "description": [ + "Top peers disabled" + ] + }, + "contacts.topPeersNotModified": { + "name": "contacts.topPeersNotModified", + "description": [ + "Top peer info hasn't changed" + ] + }, + "dataJSON": { + "name": "dataJSON", + "description": [ + "Represents a json-encoded object" + ], + "fields": { + "data": { + "name": "data", + "description": "JSON-encoded object" + } + } + }, + "dcOption": { + "name": "dcOption", + "description": [ + "Data center" + ], + "fields": { + "cdn": { + "name": "cdn", + "description": "Whether this is a CDN DC¹.", + "links": [ + "https://core.telegram.org/cdn" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "DC ID" + }, + "ip_address": { + "name": "ip_address", + "description": "IP address of DC" + }, + "ipv6": { + "name": "ipv6", + "description": "Whether the specified IP is an IPv6 address" + }, + "media_only": { + "name": "media_only", + "description": "Whether this DC should only be used to download or upload files¹", + "links": [ + "https://core.telegram.org/api/files" + ] + }, + "port": { + "name": "port", + "description": "Port" + }, + "secret": { + "name": "secret", + "description": "If the tcpo_only flag is set, specifies the secret to use when connecting using transport obfuscation¹", + "links": [ + "https://core.telegram.org/mtproto/mtproto-transports#transport-obfuscation" + ] + }, + "static": { + "name": "static", + "description": "If set, this IP should be used when connecting through a proxy" + }, + "tcpo_only": { + "name": "tcpo_only", + "description": "Whether this DC only supports connection with transport obfuscation¹", + "links": [ + "https://core.telegram.org/mtproto/mtproto-transports#transport-obfuscation" + ] + }, + "this_port_only": { + "name": "this_port_only", + "description": "If set, clients must connect using only the specified port, without trying any other port." + } + } + }, + "defaultHistoryTTL": { + "name": "defaultHistoryTTL", + "description": [ + "Contains info about the default value of the Time-To-Live setting, applied to all new chats." + ], + "fields": { + "period": { + "name": "period", + "description": "Time-To-Live setting applied to all new chats." + } + } + }, + "dialog": { + "name": "dialog", + "description": [ + "Chat" + ], + "fields": { + "draft": { + "name": "draft", + "description": "Message draft¹", + "links": [ + "https://core.telegram.org/api/drafts" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + }, + "notify_settings": { + "name": "notify_settings", + "description": "Notification settings" + }, + "peer": { + "name": "peer", + "description": "The chat" + }, + "pinned": { + "name": "pinned", + "description": "Is the dialog pinned" + }, + "pts": { + "name": "pts", + "description": "PTS¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "read_inbox_max_id": { + "name": "read_inbox_max_id", + "description": "Position up to which all incoming messages are read." + }, + "read_outbox_max_id": { + "name": "read_outbox_max_id", + "description": "Position up to which all outgoing messages are read." + }, + "top_message": { + "name": "top_message", + "description": "The latest message ID" + }, + "ttl_period": { + "name": "ttl_period", + "description": "Time-to-live of all messages sent in this dialog" + }, + "unread_count": { + "name": "unread_count", + "description": "Number of unread messages" + }, + "unread_mark": { + "name": "unread_mark", + "description": "Whether the chat was manually marked as unread" + }, + "unread_mentions_count": { + "name": "unread_mentions_count", + "description": "Number of unread mentions¹", + "links": [ + "https://core.telegram.org/api/mentions" + ] + }, + "unread_reactions_count": { + "name": "unread_reactions_count", + "description": "Number of unread reactions to messages you sent" + }, + "view_forum_as_messages": { + "name": "view_forum_as_messages", + "description": "Users may also choose to display messages from all topics of a forum¹ as if they were sent to a normal group, using a \"View as messages\" setting in the local client. This setting only affects the current account, and is synced to other logged in sessions using the channels.toggleViewForumAsMessages² method; invoking this method will update the value of this flag.", + "links": [ + "https://core.telegram.org/api/forum", + "https://core.telegram.org/method/channels.toggleViewForumAsMessages" + ] + } + } + }, + "dialogFilter": { + "name": "dialogFilter", + "description": [ + "Dialog filter AKA folder¹" + ], + "links": [ + "https://core.telegram.org/api/folders" + ], + "fields": { + "bots": { + "name": "bots", + "description": "Whether to include all bots in this folder¹", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "broadcasts": { + "name": "broadcasts", + "description": "Whether to include all channels in this folder¹", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "contacts": { + "name": "contacts", + "description": "Whether to include all contacts in this folder¹", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "emoticon": { + "name": "emoticon", + "description": "Emoji to use as icon for the folder." + }, + "exclude_archived": { + "name": "exclude_archived", + "description": "Whether to exclude archived chats from this folder¹", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "exclude_muted": { + "name": "exclude_muted", + "description": "Whether to exclude muted chats from this folder¹", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "exclude_peers": { + "name": "exclude_peers", + "description": "Exclude the following chats from this folder¹", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "exclude_read": { + "name": "exclude_read", + "description": "Whether to exclude read chats from this folder¹", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "groups": { + "name": "groups", + "description": "Whether to include all groups in this folder¹", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "id": { + "name": "id", + "description": "Folder¹ ID", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "include_peers": { + "name": "include_peers", + "description": "Include the following chats in this folder¹", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "non_contacts": { + "name": "non_contacts", + "description": "Whether to include all non-contacts in this folder¹", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "pinned_peers": { + "name": "pinned_peers", + "description": "Pinned chats, folders¹ can have unlimited pinned chats", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "title": { + "name": "title", + "description": "Folder¹ name", + "links": [ + "https://core.telegram.org/api/folders" + ] + } + } + }, + "dialogFilterChatlist": { + "name": "dialogFilterChatlist", + "description": [ + "A folder imported using a chat folder deep link »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "fields": { + "emoticon": { + "name": "emoticon", + "description": "Emoji to use as icon for the folder." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "has_my_invites": { + "name": "has_my_invites", + "description": "Whether the current user has created some chat folder deep links »¹ to share the folder as well.", + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + }, + "id": { + "name": "id", + "description": "ID of the folder" + }, + "include_peers": { + "name": "include_peers", + "description": "Chats to include in the folder" + }, + "pinned_peers": { + "name": "pinned_peers", + "description": "Pinned chats, folders¹ can have unlimited pinned chats", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "title": { + "name": "title", + "description": "Name of the folder" + } + } + }, + "dialogFilterDefault": { + "name": "dialogFilterDefault", + "description": [ + "Used only when reordering folders to indicate the default (all chats) folder." + ] + }, + "dialogFilterSuggested": { + "name": "dialogFilterSuggested", + "description": [ + "Suggested folders¹" + ], + "links": [ + "https://core.telegram.org/api/folders" + ], + "fields": { + "description": { + "name": "description", + "description": "Folder¹ description", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "filter": { + "name": "filter", + "description": "Folder info¹", + "links": [ + "https://core.telegram.org/api/folders" + ] + } + } + }, + "dialogFolder": { + "name": "dialogFolder", + "description": [ + "Dialog in folder" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "folder": { + "name": "folder", + "description": "The folder" + }, + "peer": { + "name": "peer", + "description": "Peer in folder" + }, + "pinned": { + "name": "pinned", + "description": "Is this folder pinned" + }, + "top_message": { + "name": "top_message", + "description": "Latest message ID of dialog" + }, + "unread_muted_messages_count": { + "name": "unread_muted_messages_count", + "description": "Number of unread messages from muted peers in folder" + }, + "unread_muted_peers_count": { + "name": "unread_muted_peers_count", + "description": "Number of unread muted peers in folder" + }, + "unread_unmuted_messages_count": { + "name": "unread_unmuted_messages_count", + "description": "Number of unread messages from unmuted peers in folder" + }, + "unread_unmuted_peers_count": { + "name": "unread_unmuted_peers_count", + "description": "Number of unread unmuted peers in folder" + } + } + }, + "dialogPeer": { + "name": "dialogPeer", + "description": [ + "Peer" + ], + "fields": { + "peer": { + "name": "peer", + "description": "Peer" + } + } + }, + "dialogPeerFolder": { + "name": "dialogPeerFolder", + "description": [ + "Peer folder¹" + ], + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ], + "fields": { + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + } + } + }, + "document": { + "name": "document", + "description": [ + "Document" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Check sum, dependent on document ID" + }, + "attributes": { + "name": "attributes", + "description": "Attributes" + }, + "date": { + "name": "date", + "description": "Creation date" + }, + "dc_id": { + "name": "dc_id", + "description": "DC ID" + }, + "file_reference": { + "name": "file_reference", + "description": "File reference¹", + "links": [ + "https://core.telegram.org/api/file_reference" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Document ID" + }, + "mime_type": { + "name": "mime_type", + "description": "MIME type" + }, + "size": { + "name": "size", + "description": "Size" + }, + "thumbs": { + "name": "thumbs", + "description": "Thumbnails" + }, + "video_thumbs": { + "name": "video_thumbs", + "description": "Video thumbnails" + } + } + }, + "documentAttributeAnimated": { + "name": "documentAttributeAnimated", + "description": [ + "Defines an animated GIF" + ] + }, + "documentAttributeAudio": { + "name": "documentAttributeAudio", + "description": [ + "Represents an audio file" + ], + "fields": { + "duration": { + "name": "duration", + "description": "Duration in seconds" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "performer": { + "name": "performer", + "description": "Performer" + }, + "title": { + "name": "title", + "description": "Name of song" + }, + "voice": { + "name": "voice", + "description": "Whether this is a voice message" + }, + "waveform": { + "name": "waveform", + "description": "Waveform: consists in a series of bitpacked 5-bit values. Example implementation: android¹.", + "links": [ + "https://github.com/DrKLO/Telegram/blob/96dce2c9aabc33b87db61d830aa087b6b03fe397/TMessagesProj/jni/audio.c#L546" + ] + } + } + }, + "documentAttributeCustomEmoji": { + "name": "documentAttributeCustomEmoji", + "description": [ + "Info about a custom emoji" + ], + "fields": { + "alt": { + "name": "alt", + "description": "The actual emoji" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "free": { + "name": "free", + "description": "Whether this custom emoji can be sent by non-Premium users" + }, + "stickerset": { + "name": "stickerset", + "description": "The emoji stickerset to which this emoji belongs." + }, + "text_color": { + "name": "text_color", + "description": "Whether the color of this TGS custom emoji should be changed to the text color when used in messages, the accent color if used as emoji status, white on chat photos, or another appropriate color based on context." + } + } + }, + "documentAttributeFilename": { + "name": "documentAttributeFilename", + "description": [ + "A simple document with a file name" + ], + "fields": { + "file_name": { + "name": "file_name", + "description": "The file name" + } + } + }, + "documentAttributeHasStickers": { + "name": "documentAttributeHasStickers", + "description": [ + "Whether the current document has stickers attached" + ] + }, + "documentAttributeImageSize": { + "name": "documentAttributeImageSize", + "description": [ + "Defines the width and height of an image uploaded as document" + ], + "fields": { + "h": { + "name": "h", + "description": "Height of image" + }, + "w": { + "name": "w", + "description": "Width of image" + } + } + }, + "documentAttributeSticker": { + "name": "documentAttributeSticker", + "description": [ + "Defines a sticker" + ], + "fields": { + "alt": { + "name": "alt", + "description": "Alternative emoji representation of sticker" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "mask": { + "name": "mask", + "description": "Whether this is a mask sticker" + }, + "mask_coords": { + "name": "mask_coords", + "description": "Mask coordinates (if this is a mask sticker, attached to a photo)" + }, + "stickerset": { + "name": "stickerset", + "description": "Associated stickerset" + } + } + }, + "documentAttributeVideo": { + "name": "documentAttributeVideo", + "description": [ + "Defines a video" + ], + "fields": { + "duration": { + "name": "duration", + "description": "Duration in seconds" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "h": { + "name": "h", + "description": "Video height" + }, + "nosound": { + "name": "nosound", + "description": "Whether the specified document is a video file with no audio tracks (a GIF animation (even as MPEG4), for example)" + }, + "preload_prefix_size": { + "name": "preload_prefix_size", + "description": "Number of bytes to preload when preloading videos (particularly video stories¹).", + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "round_message": { + "name": "round_message", + "description": "Whether this is a round video" + }, + "supports_streaming": { + "name": "supports_streaming", + "description": "Whether the video supports streaming" + }, + "w": { + "name": "w", + "description": "Video width" + } + } + }, + "documentEmpty": { + "name": "documentEmpty", + "description": [ + "Empty constructor, document doesn't exist." + ], + "fields": { + "id": { + "name": "id", + "description": "Document ID or 0" + } + } + }, + "draftMessage": { + "name": "draftMessage", + "description": [ + "Represents a message draft¹." + ], + "links": [ + "https://core.telegram.org/api/drafts" + ], + "fields": { + "date": { + "name": "date", + "description": "Date of last update of the draft." + }, + "entities": { + "name": "entities", + "description": "Message entities¹ for styled text.", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "media": { + "name": "media", + "description": "Media." + }, + "message": { + "name": "message", + "description": "The draft" + }, + "no_webpage": { + "name": "no_webpage", + "description": "Whether no webpage preview will be generated" + }, + "reply_to": { + "name": "reply_to", + "description": "If set, indicates that the message should be sent in reply to the specified message or story." + } + } + }, + "draftMessageEmpty": { + "name": "draftMessageEmpty", + "description": [ + "Empty draft" + ], + "fields": { + "date": { + "name": "date", + "description": "When was the draft last updated" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + } + } + }, + "emailVerificationApple": { + "name": "emailVerificationApple", + "description": [ + "Apple ID email verification token" + ], + "fields": { + "token": { + "name": "token", + "description": "Token" + } + } + }, + "emailVerificationCode": { + "name": "emailVerificationCode", + "description": [ + "Email verification code" + ], + "fields": { + "code": { + "name": "code", + "description": "Received verification code" + } + } + }, + "emailVerificationGoogle": { + "name": "emailVerificationGoogle", + "description": [ + "Google ID email verification token" + ], + "fields": { + "token": { + "name": "token", + "description": "Token" + } + } + }, + "emailVerifyPurposeLoginChange": { + "name": "emailVerifyPurposeLoginChange", + "description": [ + "Email verification purpose: change login email" + ] + }, + "emailVerifyPurposeLoginSetup": { + "name": "emailVerifyPurposeLoginSetup", + "description": [ + "Email verification purpose: setup login email" + ], + "fields": { + "phone_code_hash": { + "name": "phone_code_hash", + "description": "Phone code hash as specified by the documentation¹", + "links": [ + "https://core.telegram.org/api/auth#email-verification" + ] + }, + "phone_number": { + "name": "phone_number", + "description": "Phone number" + } + } + }, + "emailVerifyPurposePassport": { + "name": "emailVerifyPurposePassport", + "description": [ + "Verify an email for use in telegram passport¹" + ], + "links": [ + "https://core.telegram.org/api/passport" + ] + }, + "emojiGroup": { + "name": "emojiGroup", + "description": [ + "Represents an emoji category¹." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji#emoji-categories" + ], + "fields": { + "emoticons": { + "name": "emoticons", + "description": "A list of UTF-8 emojis, matching the category." + }, + "icon_emoji_id": { + "name": "icon_emoji_id", + "description": "A single custom emoji used as preview for the category." + }, + "title": { + "name": "title", + "description": "Category name, i.e. \"Animals\", \"Flags\", \"Faces\" and so on..." + } + } + }, + "emojiKeyword": { + "name": "emojiKeyword", + "description": [ + "Emoji keyword" + ], + "fields": { + "emoticons": { + "name": "emoticons", + "description": "Emojis associated to keyword" + }, + "keyword": { + "name": "keyword", + "description": "Keyword" + } + } + }, + "emojiKeywordDeleted": { + "name": "emojiKeywordDeleted", + "description": [ + "Deleted emoji keyword" + ], + "fields": { + "emoticons": { + "name": "emoticons", + "description": "Emojis that were associated to keyword" + }, + "keyword": { + "name": "keyword", + "description": "Keyword" + } + } + }, + "emojiKeywordsDifference": { + "name": "emojiKeywordsDifference", + "description": [ + "Changes to emoji keywords" + ], + "fields": { + "from_version": { + "name": "from_version", + "description": "Previous emoji keyword list version" + }, + "keywords": { + "name": "keywords", + "description": "Emojis associated to keywords" + }, + "lang_code": { + "name": "lang_code", + "description": "Language code for keywords" + }, + "version": { + "name": "version", + "description": "Current version of emoji keyword list" + } + } + }, + "emojiLanguage": { + "name": "emojiLanguage", + "description": [ + "Emoji language" + ], + "fields": { + "lang_code": { + "name": "lang_code", + "description": "Language code" + } + } + }, + "emojiList": { + "name": "emojiList", + "description": [ + "Represents a list of custom emojis¹." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji" + ], + "fields": { + "document_id": { + "name": "document_id", + "description": "Custom emoji IDs" + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "emojiListNotModified": { + "name": "emojiListNotModified", + "description": [ + "The list of custom emojis¹ hasn't changed." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + }, + "emojiStatus": { + "name": "emojiStatus", + "description": [ + "An emoji status¹" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ], + "fields": { + "document_id": { + "name": "document_id", + "description": "Custom emoji document ID¹", + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + } + } + }, + "emojiStatusEmpty": { + "name": "emojiStatusEmpty", + "description": [ + "No emoji status is set" + ] + }, + "emojiStatusUntil": { + "name": "emojiStatusUntil", + "description": [ + "An emoji status¹ valid until the specified date" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ], + "fields": { + "document_id": { + "name": "document_id", + "description": "Custom emoji document ID¹", + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + }, + "until": { + "name": "until", + "description": "This status is valid until this date" + } + } + }, + "emojiURL": { + "name": "emojiURL", + "description": [ + "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" + ], + "fields": { + "url": { + "name": "url", + "description": "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" + } + } + }, + "encryptedChat": { + "name": "encryptedChat", + "description": [ + "Encrypted chat" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Check sum dependent on the user ID" + }, + "admin_id": { + "name": "admin_id", + "description": "Chat creator ID" + }, + "date": { + "name": "date", + "description": "Date chat was created" + }, + "g_a_or_b": { + "name": "g_a_or_b", + "description": "B = g ^ b mod p, if the currently authorized user is the chat's creator,or A = g ^ a mod p otherwiseSee Wikipedia¹ for more info", + "links": [ + "https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange" + ] + }, + "id": { + "name": "id", + "description": "Chat ID" + }, + "key_fingerprint": { + "name": "key_fingerprint", + "description": "64-bit fingerprint of received key" + }, + "participant_id": { + "name": "participant_id", + "description": "ID of the second chat participant" + } + } + }, + "encryptedChatDiscarded": { + "name": "encryptedChatDiscarded", + "description": [ + "Discarded or deleted chat." + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "history_deleted": { + "name": "history_deleted", + "description": "Whether both users of this secret chat should also remove all of its messages" + }, + "id": { + "name": "id", + "description": "Chat ID" + } + } + }, + "encryptedChatEmpty": { + "name": "encryptedChatEmpty", + "description": [ + "Empty constructor." + ], + "fields": { + "id": { + "name": "id", + "description": "Chat ID" + } + } + }, + "encryptedChatRequested": { + "name": "encryptedChatRequested", + "description": [ + "Request to create an encrypted chat." + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Check sum depending on user ID" + }, + "admin_id": { + "name": "admin_id", + "description": "Chat creator ID" + }, + "date": { + "name": "date", + "description": "Chat creation date" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + }, + "g_a": { + "name": "g_a", + "description": "A = g ^ a mod p, see Wikipedia¹", + "links": [ + "https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange" + ] + }, + "id": { + "name": "id", + "description": "Chat ID" + }, + "participant_id": { + "name": "participant_id", + "description": "ID of second chat participant" + } + } + }, + "encryptedChatWaiting": { + "name": "encryptedChatWaiting", + "description": [ + "Chat waiting for approval of second participant." + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Checking sum depending on user ID" + }, + "admin_id": { + "name": "admin_id", + "description": "Chat creator ID" + }, + "date": { + "name": "date", + "description": "Date of chat creation" + }, + "id": { + "name": "id", + "description": "Chat ID" + }, + "participant_id": { + "name": "participant_id", + "description": "ID of second chat participant" + } + } + }, + "encryptedFile": { + "name": "encryptedFile", + "description": [ + "Encrypted file." + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Checking sum depending on user ID" + }, + "dc_id": { + "name": "dc_id", + "description": "Number of data center" + }, + "id": { + "name": "id", + "description": "File ID" + }, + "key_fingerprint": { + "name": "key_fingerprint", + "description": "32-bit fingerprint of key used for file encryption" + }, + "size": { + "name": "size", + "description": "File size in bytes" + } + } + }, + "encryptedFileEmpty": { + "name": "encryptedFileEmpty", + "description": [ + "Empty constructor, non-existing file." + ] + }, + "encryptedMessage": { + "name": "encryptedMessage", + "description": [ + "Encrypted message." + ], + "fields": { + "bytes": { + "name": "bytes", + "description": "TL-serialization of DecryptedMessage¹ type, encrypted with the key created at chat initialization", + "links": [ + "https://core.telegram.org/type/DecryptedMessage" + ] + }, + "chat_id": { + "name": "chat_id", + "description": "ID of encrypted chat" + }, + "date": { + "name": "date", + "description": "Date of sending" + }, + "file": { + "name": "file", + "description": "Attached encrypted file" + }, + "random_id": { + "name": "random_id", + "description": "Random message ID, assigned by the author of message" + } + } + }, + "encryptedMessageService": { + "name": "encryptedMessageService", + "description": [ + "Encrypted service message" + ], + "fields": { + "bytes": { + "name": "bytes", + "description": "TL-serialization of the DecryptedMessage¹ type, encrypted with the key created at chat initialization", + "links": [ + "https://core.telegram.org/type/DecryptedMessage" + ] + }, + "chat_id": { + "name": "chat_id", + "description": "ID of encrypted chat" + }, + "date": { + "name": "date", + "description": "Date of sending" + }, + "random_id": { + "name": "random_id", + "description": "Random message ID, assigned by the author of message" + } + } + }, + "error": { + "name": "error", + "description": [ + "Error." + ], + "fields": { + "code": { + "name": "code", + "description": "Error code" + }, + "text": { + "name": "text", + "description": "Message" + } + } + }, + "exportedChatlistInvite": { + "name": "exportedChatlistInvite", + "description": [ + "Exported chat folder deep link »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peers": { + "name": "peers", + "description": "Peers to import" + }, + "title": { + "name": "title", + "description": "Name of the link" + }, + "url": { + "name": "url", + "description": "The chat folder deep link »¹.", + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + } + } + }, + "exportedContactToken": { + "name": "exportedContactToken", + "description": [ + "Describes a temporary profile link¹." + ], + "links": [ + "https://core.telegram.org/api/links#temporary-profile-links" + ], + "fields": { + "expires": { + "name": "expires", + "description": "Its expiration date" + }, + "url": { + "name": "url", + "description": "The temporary profile link¹.", + "links": [ + "https://core.telegram.org/api/links#temporary-profile-links" + ] + } + } + }, + "exportedMessageLink": { + "name": "exportedMessageLink", + "description": [ + "Link to a message in a supergroup/channel" + ], + "fields": { + "html": { + "name": "html", + "description": "Embed code" + }, + "link": { + "name": "link", + "description": "URL" + } + } + }, + "exportedStoryLink": { + "name": "exportedStoryLink", + "description": [ + "Represents a story deep link¹." + ], + "links": [ + "https://core.telegram.org/api/stories#story-links" + ], + "fields": { + "link": { + "name": "link", + "description": "The story deep link¹.", + "links": [ + "https://core.telegram.org/api/stories#story-links" + ] + } + } + }, + "folder": { + "name": "folder", + "description": [ + "Folder" + ], + "fields": { + "autofill_new_broadcasts": { + "name": "autofill_new_broadcasts", + "description": "Automatically add new channels to this folder" + }, + "autofill_new_correspondents": { + "name": "autofill_new_correspondents", + "description": "Automatically add new private chats to this folder" + }, + "autofill_public_groups": { + "name": "autofill_public_groups", + "description": "Automatically add joined new public supergroups to this folder" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Folder ID" + }, + "photo": { + "name": "photo", + "description": "Folder picture" + }, + "title": { + "name": "title", + "description": "Folder title" + } + } + }, + "folderPeer": { + "name": "folderPeer", + "description": [ + "Peer in a folder" + ], + "fields": { + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + }, + "peer": { + "name": "peer", + "description": "Folder peer info" + } + } + }, + "forumTopic": { + "name": "forumTopic", + "description": [ + "Represents a forum topic¹." + ], + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ], + "fields": { + "closed": { + "name": "closed", + "description": "Whether the topic is closed (no messages can be sent to it)" + }, + "date": { + "name": "date", + "description": "Topic creation date" + }, + "draft": { + "name": "draft", + "description": "Message draft¹", + "links": [ + "https://core.telegram.org/api/drafts" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "from_id": { + "name": "from_id", + "description": "ID of the peer that created the topic" + }, + "hidden": { + "name": "hidden", + "description": "Whether the topic is hidden (only valid for the \"General\" topic, id=1)" + }, + "icon_color": { + "name": "icon_color", + "description": "If no custom emoji icon is specified, specifies the color of the fallback topic icon (RGB), one of 0x6FB9F0, 0xFFD67E, 0xCB86DB, 0x8EEE98, 0xFF93B2, or 0xFB6F5F." + }, + "icon_emoji_id": { + "name": "icon_emoji_id", + "description": "ID of the custom emoji¹ used as topic icon.", + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + }, + "id": { + "name": "id", + "description": "Topic ID¹", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + }, + "my": { + "name": "my", + "description": "Whether the topic was created by the current user" + }, + "notify_settings": { + "name": "notify_settings", + "description": "Notification settings" + }, + "pinned": { + "name": "pinned", + "description": "Whether the topic is pinned" + }, + "read_inbox_max_id": { + "name": "read_inbox_max_id", + "description": "Position up to which all incoming messages are read." + }, + "read_outbox_max_id": { + "name": "read_outbox_max_id", + "description": "Position up to which all outgoing messages are read." + }, + "short": { + "name": "short", + "description": "Whether this constructor is a reduced version of the full topic information. If set, only the my, closed, id, date, title, icon_color, icon_emoji_id and from_id parameters will contain valid information. Reduced info is usually only returned in topic-related admin log events »¹ and in the messages.channelMessages² constructor: if needed, full information can be fetched using channels.getForumTopicsByID³.", + "links": [ + "https://core.telegram.org/api/recent-actions", + "https://core.telegram.org/constructor/messages.channelMessages", + "https://core.telegram.org/method/channels.getForumTopicsByID" + ] + }, + "title": { + "name": "title", + "description": "Topic title" + }, + "top_message": { + "name": "top_message", + "description": "ID of the last message that was sent to this topic" + }, + "unread_count": { + "name": "unread_count", + "description": "Number of unread messages" + }, + "unread_mentions_count": { + "name": "unread_mentions_count", + "description": "Number of unread mentions¹", + "links": [ + "https://core.telegram.org/api/mentions" + ] + }, + "unread_reactions_count": { + "name": "unread_reactions_count", + "description": "Number of unread reactions to messages you sent" + } + } + }, + "forumTopicDeleted": { + "name": "forumTopicDeleted", + "description": [ + "Represents a deleted forum topic." + ], + "fields": { + "id": { + "name": "id", + "description": "The ID of the deleted forum topic." + } + } + }, + "game": { + "name": "game", + "description": [ + "Indicates an already sent game" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash of the game" + }, + "description": { + "name": "description", + "description": "Game description" + }, + "document": { + "name": "document", + "description": "Optional attached document" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "ID of the game" + }, + "photo": { + "name": "photo", + "description": "Game preview" + }, + "short_name": { + "name": "short_name", + "description": "Short name for the game" + }, + "title": { + "name": "title", + "description": "Title of the game" + } + } + }, + "geoPoint": { + "name": "geoPoint", + "description": [ + "GeoPoint." + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "accuracy_radius": { + "name": "accuracy_radius", + "description": "The estimated horizontal accuracy of the location, in meters; as defined by the sender." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "lat": { + "name": "lat", + "description": "Latitude" + }, + "long": { + "name": "long", + "description": "Longitude" + } + } + }, + "geoPointEmpty": { + "name": "geoPointEmpty", + "description": [ + "Empty constructor." + ] + }, + "globalPrivacySettings": { + "name": "globalPrivacySettings", + "description": [ + "Global privacy settings" + ], + "fields": { + "archive_and_mute_new_noncontact_peers": { + "name": "archive_and_mute_new_noncontact_peers", + "description": "Whether to archive and mute new chats from non-contacts" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "keep_archived_folders": { + "name": "keep_archived_folders", + "description": "Whether unmuted chats that are always included or pinned in a folder¹, will be kept in the Archive chat list when they get a new message. Ignored if keep_archived_unmuted is set.", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "keep_archived_unmuted": { + "name": "keep_archived_unmuted", + "description": "Whether unmuted chats will be kept in the Archive chat list when they get a new message." + } + } + }, + "groupCall": { + "name": "groupCall", + "description": [ + "Info about a group call or livestream" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Group call access hash" + }, + "can_change_join_muted": { + "name": "can_change_join_muted", + "description": "Whether the current user can change the value of the join_muted flag using phone.toggleGroupCallSettings¹", + "links": [ + "https://core.telegram.org/method/phone.toggleGroupCallSettings" + ] + }, + "can_start_video": { + "name": "can_start_video", + "description": "Whether you can start streaming video into the call" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Group call ID" + }, + "join_date_asc": { + "name": "join_date_asc", + "description": "Specifies the ordering to use when locally sorting by date and displaying in the UI group call participants." + }, + "join_muted": { + "name": "join_muted", + "description": "Whether the user should be muted upon joining the call" + }, + "listeners_hidden": { + "name": "listeners_hidden", + "description": "Whether the listeners list is hidden and cannot be fetched using phone.getGroupParticipants¹. The phone.groupParticipants.count and groupCall.participants_count counters will still include listeners.", + "links": [ + "https://core.telegram.org/method/phone.getGroupParticipants" + ] + }, + "participants_count": { + "name": "participants_count", + "description": "Participant count" + }, + "record_start_date": { + "name": "record_start_date", + "description": "When was the recording started" + }, + "record_video_active": { + "name": "record_video_active", + "description": "Whether the group call is currently being recorded" + }, + "rtmp_stream": { + "name": "rtmp_stream", + "description": "Whether RTMP streams are allowed" + }, + "schedule_date": { + "name": "schedule_date", + "description": "When is the call scheduled to start" + }, + "schedule_start_subscribed": { + "name": "schedule_start_subscribed", + "description": "Whether we subscribed to the scheduled call" + }, + "stream_dc_id": { + "name": "stream_dc_id", + "description": "DC ID to be used for livestream chunks" + }, + "title": { + "name": "title", + "description": "Group call title" + }, + "unmuted_video_count": { + "name": "unmuted_video_count", + "description": "Number of people currently streaming video into the call" + }, + "unmuted_video_limit": { + "name": "unmuted_video_limit", + "description": "Maximum number of people allowed to stream video into the call" + }, + "version": { + "name": "version", + "description": "Version" + } + } + }, + "groupCallDiscarded": { + "name": "groupCallDiscarded", + "description": [ + "An ended group call" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Group call access hash" + }, + "duration": { + "name": "duration", + "description": "Group call duration" + }, + "id": { + "name": "id", + "description": "Group call ID" + } + } + }, + "groupCallParticipant": { + "name": "groupCallParticipant", + "description": [ + "Info about a group call participant" + ], + "fields": { + "about": { + "name": "about", + "description": "Info about this participant" + }, + "active_date": { + "name": "active_date", + "description": "When was this participant last active in the group call" + }, + "can_self_unmute": { + "name": "can_self_unmute", + "description": "Whether the participant can unmute themselves" + }, + "date": { + "name": "date", + "description": "When did this participant join the group call" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "just_joined": { + "name": "just_joined", + "description": "Whether the participant has just joined" + }, + "left": { + "name": "left", + "description": "Whether the participant has left" + }, + "min": { + "name": "min", + "description": "If not set, the volume and muted_by_you fields can be safely used to overwrite locally cached information; otherwise, volume will contain valid information only if volume_by_admin is set both in the cache and in the received constructor." + }, + "muted": { + "name": "muted", + "description": "Whether the participant is muted" + }, + "muted_by_you": { + "name": "muted_by_you", + "description": "Whether this participant was muted by the current user" + }, + "peer": { + "name": "peer", + "description": "Peer information" + }, + "presentation": { + "name": "presentation", + "description": "Info about the screen sharing stream the participant is currently broadcasting" + }, + "raise_hand_rating": { + "name": "raise_hand_rating", + "description": "Specifies the UI visualization order of peers with raised hands: peers with a higher rating should be showed first in the list." + }, + "self": { + "name": "self", + "description": "Whether this participant is the current user" + }, + "source": { + "name": "source", + "description": "Source ID" + }, + "versioned": { + "name": "versioned", + "description": "If set, and updateGroupCallParticipants¹.version \u003c locally stored call.version, info about this participant should be ignored. If (...), and updateGroupCallParticipants².version \u003e call.version+1, the participant list should be refetched using phone.getGroupParticipants³.", + "links": [ + "https://core.telegram.org/constructor/updateGroupCallParticipants", + "https://core.telegram.org/constructor/updateGroupCallParticipants", + "https://core.telegram.org/method/phone.getGroupParticipants" + ] + }, + "video": { + "name": "video", + "description": "Info about the video stream the participant is currently broadcasting" + }, + "video_joined": { + "name": "video_joined", + "description": "Whether this participant is currently broadcasting video" + }, + "volume": { + "name": "volume", + "description": "Volume, if not set the volume is set to 100%." + }, + "volume_by_admin": { + "name": "volume_by_admin", + "description": "Whether our volume can only changed by an admin" + } + } + }, + "groupCallParticipantVideo": { + "name": "groupCallParticipantVideo", + "description": [ + "Info about a video stream" + ], + "fields": { + "audio_source": { + "name": "audio_source", + "description": "Audio source ID" + }, + "endpoint": { + "name": "endpoint", + "description": "Endpoint" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "paused": { + "name": "paused", + "description": "Whether the stream is currently paused" + }, + "source_groups": { + "name": "source_groups", + "description": "Source groups" + } + } + }, + "groupCallParticipantVideoSourceGroup": { + "name": "groupCallParticipantVideoSourceGroup", + "description": [ + "Describes a group of video synchronization source identifiers" + ], + "fields": { + "semantics": { + "name": "semantics", + "description": "SDP semantics" + }, + "sources": { + "name": "sources", + "description": "Source IDs" + } + } + }, + "groupCallStreamChannel": { + "name": "groupCallStreamChannel", + "description": [ + "Info about an RTMP stream in a group call or livestream" + ], + "fields": { + "channel": { + "name": "channel", + "description": "Channel ID" + }, + "last_timestamp_ms": { + "name": "last_timestamp_ms", + "description": "Last seen timestamp to easily start fetching livestream chunks using inputGroupCallStream¹", + "links": [ + "https://core.telegram.org/constructor/inputGroupCallStream" + ] + }, + "scale": { + "name": "scale", + "description": "Specifies the duration of the video segment to fetch in milliseconds, by bitshifting 1000 to the right scale times: duration_ms := 1000 \u003e\u003e scale." + } + } + }, + "help.appConfig": { + "name": "help.appConfig", + "description": [ + "Contains various client configuration parameters¹" + ], + "links": [ + "https://core.telegram.org/api/config#client-configuration" + ], + "fields": { + "config": { + "name": "config", + "description": "Client configuration parameters¹", + "links": [ + "https://core.telegram.org/api/config#client-configuration" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "help.appConfigNotModified": { + "name": "help.appConfigNotModified", + "description": [ + "The client configuration parameters haven't changed" + ] + }, + "help.appUpdate": { + "name": "help.appUpdate", + "description": [ + "An update is available for the application." + ], + "fields": { + "can_not_skip": { + "name": "can_not_skip", + "description": "Unskippable, the new info must be shown to the user (with a popup or something else)" + }, + "document": { + "name": "document", + "description": "Application binary" + }, + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Update ID" + }, + "sticker": { + "name": "sticker", + "description": "Associated sticker" + }, + "text": { + "name": "text", + "description": "Text description of the update" + }, + "url": { + "name": "url", + "description": "Application download URL" + }, + "version": { + "name": "version", + "description": "New version name" + } + } + }, + "help.countriesList": { + "name": "help.countriesList", + "description": [ + "Name, ISO code, localized name and phone codes/patterns of all available countries" + ], + "fields": { + "countries": { + "name": "countries", + "description": "Name, ISO code, localized name and phone codes/patterns of all available countries" + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "help.countriesListNotModified": { + "name": "help.countriesListNotModified", + "description": [ + "The country list has not changed" + ] + }, + "help.country": { + "name": "help.country", + "description": [ + "Name, ISO code, localized name and phone codes/patterns of a specific country" + ], + "fields": { + "country_codes": { + "name": "country_codes", + "description": "Phone codes/patterns" + }, + "default_name": { + "name": "default_name", + "description": "Name of the country in the country's language" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hidden": { + "name": "hidden", + "description": "Whether this country should not be shown in the list" + }, + "iso2": { + "name": "iso2", + "description": "ISO code of country" + }, + "name": { + "name": "name", + "description": "Name of the country in the user's language, if different from the original name" + } + } + }, + "help.countryCode": { + "name": "help.countryCode", + "description": [ + "Country code and phone number pattern of a specific country" + ], + "fields": { + "country_code": { + "name": "country_code", + "description": "ISO country code" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "patterns": { + "name": "patterns", + "description": "Phone patterns: for example, XXX XXX XXX" + }, + "prefixes": { + "name": "prefixes", + "description": "Possible phone prefixes" + } + } + }, + "help.deepLinkInfo": { + "name": "help.deepLinkInfo", + "description": [ + "Deep link info, see the here for more details¹" + ], + "links": [ + "https://core.telegram.org/api/links#unsupported-links" + ], + "fields": { + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "message": { + "name": "message", + "description": "Message to show to the user" + }, + "update_app": { + "name": "update_app", + "description": "An update of the app is required to parse this link" + } + } + }, + "help.deepLinkInfoEmpty": { + "name": "help.deepLinkInfoEmpty", + "description": [ + "Deep link info empty" + ] + }, + "help.inviteText": { + "name": "help.inviteText", + "description": [ + "Text of a text message with an invitation to install Telegram." + ], + "fields": { + "message": { + "name": "message", + "description": "Text of the message" + } + } + }, + "help.noAppUpdate": { + "name": "help.noAppUpdate", + "description": [ + "No updates are available for the application." + ] + }, + "help.passportConfig": { + "name": "help.passportConfig", + "description": [ + "Telegram passport¹ configuration" + ], + "links": [ + "https://core.telegram.org/passport" + ], + "fields": { + "countries_langs": { + "name": "countries_langs", + "description": "Localization" + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "help.passportConfigNotModified": { + "name": "help.passportConfigNotModified", + "description": [ + "Password configuration not modified" + ] + }, + "help.peerColorOption": { + "name": "help.peerColorOption", + "description": [ + "Contains info about a color palette »¹." + ], + "links": [ + "https://core.telegram.org/api/colors" + ], + "fields": { + "channel_min_level": { + "name": "channel_min_level", + "description": "Channels can use this palette only after reaching at least the boost level¹ specified in this field.", + "links": [ + "https://core.telegram.org/api/boost" + ] + }, + "color_id": { + "name": "color_id", + "description": "Palette ID." + }, + "colors": { + "name": "colors", + "description": "Light mode palette. Will be empty for IDs 0 to 6 inclusive, in which case a palette containing a single color from the following colors should be used: red, orange, violet, green, cyan, blue, pink for indexes 0 to 6." + }, + "dark_colors": { + "name": "dark_colors", + "description": "Dark mode palette. Optional, defaults to the palette in colors (or the autogenerated palette for IDs 0 to 6) if absent." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hidden": { + "name": "hidden", + "description": "Whether this palette should not be displayed as an option to the user when choosing a palette to apply to profile pages or message accents." + } + } + }, + "help.peerColorProfileSet": { + "name": "help.peerColorProfileSet", + "description": [ + "Represents a color palette that can be used in profile pages »¹." + ], + "links": [ + "https://core.telegram.org/api/colors" + ], + "fields": { + "bg_colors": { + "name": "bg_colors", + "description": "A list of 1-2 colors in RGB format describing the colors used to generate the actual background used in the profile page." + }, + "palette_colors": { + "name": "palette_colors", + "description": "A list of 1-2 colors in RGB format, shown in the color palette settings to describe the current palette." + }, + "story_colors": { + "name": "story_colors", + "description": "A list of 2 colors in RGB format describing the colors of the gradient used for the unread active story indicator around the profile photo." + } + } + }, + "help.peerColorSet": { + "name": "help.peerColorSet", + "description": [ + "Represents a color palette that can be used in message accents »¹." + ], + "links": [ + "https://core.telegram.org/api/colors" + ], + "fields": { + "colors": { + "name": "colors", + "description": "A list of 1-3 colors in RGB format, describing the accent color." + } + } + }, + "help.peerColors": { + "name": "help.peerColors", + "description": [ + "Contains info about multiple color palettes »¹." + ], + "links": [ + "https://core.telegram.org/api/colors" + ], + "fields": { + "colors": { + "name": "colors", + "description": "Usable color palettes¹.", + "links": [ + "https://core.telegram.org/api/colors" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "help.peerColorsNotModified": { + "name": "help.peerColorsNotModified", + "description": [ + "The list of color palettes has not changed." + ] + }, + "help.premiumPromo": { + "name": "help.premiumPromo", + "description": [ + "Telegram Premium promotion information", + "Note that the video_sections+videos fields are a list of videos, and the corresponding premium feature identifiers.", + "They're equivalent to a section =\u003e video dictionary, with keys from video_section and values from videos.", + "The keys in video_sections correspond to a specific feature identifier, and the associated promotional video should be shown when the associated feature row is clicked." + ], + "fields": { + "period_options": { + "name": "period_options", + "description": "Telegram Premium subscription options" + }, + "status_entities": { + "name": "status_entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "status_text": { + "name": "status_text", + "description": "Description of the current state of the user's Telegram Premium subscription" + }, + "users": { + "name": "users", + "description": "Related user information" + }, + "video_sections": { + "name": "video_sections", + "description": "A list of premium feature identifiers »¹, associated to each video", + "links": [ + "https://core.telegram.org/api/premium" + ] + }, + "videos": { + "name": "videos", + "description": "A list of videos" + } + } + }, + "help.promoData": { + "name": "help.promoData", + "description": [ + "MTProxy/Public Service Announcement information" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chat info" + }, + "expires": { + "name": "expires", + "description": "Expiry of PSA/MTProxy info" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "MTProxy/PSA peer" + }, + "proxy": { + "name": "proxy", + "description": "MTProxy-related channel" + }, + "psa_message": { + "name": "psa_message", + "description": "PSA message" + }, + "psa_type": { + "name": "psa_type", + "description": "PSA type" + }, + "users": { + "name": "users", + "description": "User info" + } + } + }, + "help.promoDataEmpty": { + "name": "help.promoDataEmpty", + "description": [ + "No PSA/MTProxy info is available" + ], + "fields": { + "expires": { + "name": "expires", + "description": "Re-fetch PSA/MTProxy info after the specified number of seconds" + } + } + }, + "help.recentMeUrls": { + "name": "help.recentMeUrls", + "description": [ + "Recent t.me URLs" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chats" + }, + "urls": { + "name": "urls", + "description": "URLs" + }, + "users": { + "name": "users", + "description": "Users" + } + } + }, + "help.support": { + "name": "help.support", + "description": [ + "Info on support user." + ], + "fields": { + "phone_number": { + "name": "phone_number", + "description": "Phone number" + }, + "user": { + "name": "user", + "description": "User" + } + } + }, + "help.supportName": { + "name": "help.supportName", + "description": [ + "Localized name for telegram support" + ], + "fields": { + "name": { + "name": "name", + "description": "Localized name" + } + } + }, + "help.termsOfService": { + "name": "help.termsOfService", + "description": [ + "Info about the latest telegram Terms Of Service" + ], + "fields": { + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "ID of the new terms" + }, + "min_age_confirm": { + "name": "min_age_confirm", + "description": "Minimum age required to sign up to telegram, the user must confirm that they is older than the minimum age." + }, + "popup": { + "name": "popup", + "description": "Whether a prompt must be showed to the user, in order to accept the new terms." + }, + "text": { + "name": "text", + "description": "Text of the new terms" + } + } + }, + "help.termsOfServiceUpdate": { + "name": "help.termsOfServiceUpdate", + "description": [ + "Info about an update of telegram's terms of service. If the terms of service are declined, then the account.deleteAccount¹ method should be called with the reason \"Decline ToS update\"" + ], + "links": [ + "https://core.telegram.org/method/account.deleteAccount" + ], + "fields": { + "expires": { + "name": "expires", + "description": "New TOS updates will have to be queried using help.getTermsOfServiceUpdate¹ in expires seconds", + "links": [ + "https://core.telegram.org/method/help.getTermsOfServiceUpdate" + ] + }, + "terms_of_service": { + "name": "terms_of_service", + "description": "New terms of service" + } + } + }, + "help.termsOfServiceUpdateEmpty": { + "name": "help.termsOfServiceUpdateEmpty", + "description": [ + "No changes were made to telegram's terms of service" + ], + "fields": { + "expires": { + "name": "expires", + "description": "New TOS updates will have to be queried using help.getTermsOfServiceUpdate¹ in expires seconds", + "links": [ + "https://core.telegram.org/method/help.getTermsOfServiceUpdate" + ] + } + } + }, + "help.userInfo": { + "name": "help.userInfo", + "description": [ + "Internal use" + ], + "fields": { + "author": { + "name": "author", + "description": "Author" + }, + "date": { + "name": "date", + "description": "Date" + }, + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "message": { + "name": "message", + "description": "Info" + } + } + }, + "help.userInfoEmpty": { + "name": "help.userInfoEmpty", + "description": [ + "Internal use" + ] + }, + "highScore": { + "name": "highScore", + "description": [ + "Game highscore" + ], + "fields": { + "pos": { + "name": "pos", + "description": "Position in highscore list" + }, + "score": { + "name": "score", + "description": "Score" + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + } + }, + "importedContact": { + "name": "importedContact", + "description": [ + "Successfully imported contact." + ], + "fields": { + "client_id": { + "name": "client_id", + "description": "The contact's client identifier (passed to one of the InputContact¹ constructors)", + "links": [ + "https://core.telegram.org/type/InputContact" + ] + }, + "user_id": { + "name": "user_id", + "description": "User identifier" + } + } + }, + "inlineBotSwitchPM": { + "name": "inlineBotSwitchPM", + "description": [ + "The bot requested the user to message them in private" + ], + "fields": { + "start_param": { + "name": "start_param", + "description": "The parameter for the /start parameter" + }, + "text": { + "name": "text", + "description": "Text for the button that switches the user to a private chat with the bot and sends the bot a start message with the parameter start_parameter (can be empty)" + } + } + }, + "inlineBotWebView": { + "name": "inlineBotWebView", + "description": [ + "Specifies an inline mode mini app¹ button, shown on top of the inline query results list." + ], + "links": [ + "https://core.telegram.org/api/bots/webapps#inline-mode-mini-apps" + ], + "fields": { + "text": { + "name": "text", + "description": "Text of the button" + }, + "url": { + "name": "url", + "description": "Webapp URL" + } + } + }, + "inlineQueryPeerTypeBotPM": { + "name": "inlineQueryPeerTypeBotPM", + "description": [ + "Peer type: private chat with a bot." + ] + }, + "inlineQueryPeerTypeBroadcast": { + "name": "inlineQueryPeerTypeBroadcast", + "description": [ + "Peer type: channel¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "inlineQueryPeerTypeChat": { + "name": "inlineQueryPeerTypeChat", + "description": [ + "Peer type: chat¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "inlineQueryPeerTypeMegagroup": { + "name": "inlineQueryPeerTypeMegagroup", + "description": [ + "Peer type: supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "inlineQueryPeerTypePM": { + "name": "inlineQueryPeerTypePM", + "description": [ + "Peer type: private chat" + ] + }, + "inlineQueryPeerTypeSameBotPM": { + "name": "inlineQueryPeerTypeSameBotPM", + "description": [ + "Peer type: private chat with the bot itself" + ] + }, + "inputAppEvent": { + "name": "inputAppEvent", + "description": [ + "Event that occurred in the application." + ], + "fields": { + "data": { + "name": "data", + "description": "Details of the event" + }, + "peer": { + "name": "peer", + "description": "Arbitrary numeric value for more convenient selection of certain event types, or events referring to a certain object" + }, + "time": { + "name": "time", + "description": "Client's exact timestamp for the event" + }, + "type": { + "name": "type", + "description": "Type of event" + } + } + }, + "inputBotAppID": { + "name": "inputBotAppID", + "description": [ + "Used to fetch information about a named Mini App¹ by its ID" + ], + "links": [ + "https://core.telegram.org/api/bots/webapps#named-mini-apps" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash, obtained from the botApp¹ constructor.", + "links": [ + "https://core.telegram.org/constructor/botApp" + ] + }, + "id": { + "name": "id", + "description": "named Mini App¹ ID.", + "links": [ + "https://core.telegram.org/api/bots/webapps#named-mini-apps" + ] + } + } + }, + "inputBotAppShortName": { + "name": "inputBotAppShortName", + "description": [ + "Used to fetch information about a named Mini App¹ by its short name" + ], + "links": [ + "https://core.telegram.org/api/bots/webapps#named-mini-apps" + ], + "fields": { + "bot_id": { + "name": "bot_id", + "description": "ID of the bot that owns the bot mini app" + }, + "short_name": { + "name": "short_name", + "description": "Short name, obtained from a named Mini App deep link¹", + "links": [ + "https://core.telegram.org/api/links#named-mini-app-links" + ] + } + } + }, + "inputBotInlineMessageGame": { + "name": "inputBotInlineMessageGame", + "description": [ + "A game" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "reply_markup": { + "name": "reply_markup", + "description": "Inline keyboard" + } + } + }, + "inputBotInlineMessageID": { + "name": "inputBotInlineMessageID", + "description": [ + "Represents a sent inline message from the perspective of a bot (legacy constructor)" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash of message" + }, + "dc_id": { + "name": "dc_id", + "description": "DC ID to use when working with this inline message" + }, + "id": { + "name": "id", + "description": "ID of message, contains both the (32-bit, legacy) owner ID and the message ID, used only for Bot API backwards compatibility with 32-bit user ID." + } + } + }, + "inputBotInlineMessageID64": { + "name": "inputBotInlineMessageID64", + "description": [ + "Represents a sent inline message from the perspective of a bot" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash of message" + }, + "dc_id": { + "name": "dc_id", + "description": "DC ID to use when working with this inline message" + }, + "id": { + "name": "id", + "description": "ID of message" + }, + "owner_id": { + "name": "owner_id", + "description": "ID of the owner of this message" + } + } + }, + "inputBotInlineMessageMediaAuto": { + "name": "inputBotInlineMessageMediaAuto", + "description": [ + "A media" + ], + "fields": { + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "message": { + "name": "message", + "description": "Caption" + }, + "reply_markup": { + "name": "reply_markup", + "description": "Inline keyboard" + } + } + }, + "inputBotInlineMessageMediaContact": { + "name": "inputBotInlineMessageMediaContact", + "description": [ + "A contact" + ], + "fields": { + "first_name": { + "name": "first_name", + "description": "First name" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "last_name": { + "name": "last_name", + "description": "Last name" + }, + "phone_number": { + "name": "phone_number", + "description": "Phone number" + }, + "reply_markup": { + "name": "reply_markup", + "description": "Inline keyboard" + }, + "vcard": { + "name": "vcard", + "description": "VCard info" + } + } + }, + "inputBotInlineMessageMediaGeo": { + "name": "inputBotInlineMessageMediaGeo", + "description": [ + "Geolocation" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "geo_point": { + "name": "geo_point", + "description": "Geolocation" + }, + "heading": { + "name": "heading", + "description": "For live locations¹, a direction in which the location moves, in degrees; 1-360", + "links": [ + "https://core.telegram.org/api/live-location" + ] + }, + "period": { + "name": "period", + "description": "Validity period" + }, + "proximity_notification_radius": { + "name": "proximity_notification_radius", + "description": "For live locations¹, a maximum distance to another chat member for proximity alerts, in meters (0-100000)", + "links": [ + "https://core.telegram.org/api/live-location" + ] + }, + "reply_markup": { + "name": "reply_markup", + "description": "Reply markup for bot/inline keyboards" + } + } + }, + "inputBotInlineMessageMediaInvoice": { + "name": "inputBotInlineMessageMediaInvoice", + "description": [ + "An invoice" + ], + "fields": { + "description": { + "name": "description", + "description": "Product description, 1-255 characters" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invoice": { + "name": "invoice", + "description": "The invoice" + }, + "payload": { + "name": "payload", + "description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes." + }, + "photo": { + "name": "photo", + "description": "Invoice photo" + }, + "provider": { + "name": "provider", + "description": "Payments provider token, obtained via Botfather¹", + "links": [ + "https://t.me/botfather" + ] + }, + "provider_data": { + "name": "provider_data", + "description": "A JSON-serialized object for data about the invoice, which will be shared with the payment provider. A detailed description of the required fields should be provided by the payment provider." + }, + "reply_markup": { + "name": "reply_markup", + "description": "Inline keyboard" + }, + "title": { + "name": "title", + "description": "Product name, 1-32 characters" + } + } + }, + "inputBotInlineMessageMediaVenue": { + "name": "inputBotInlineMessageMediaVenue", + "description": [ + "Venue" + ], + "fields": { + "address": { + "name": "address", + "description": "Address" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "geo_point": { + "name": "geo_point", + "description": "Geolocation" + }, + "provider": { + "name": "provider", + "description": "Venue provider: currently only \"foursquare\" and \"gplaces\" (Google Places) need to be supported" + }, + "reply_markup": { + "name": "reply_markup", + "description": "Inline keyboard" + }, + "title": { + "name": "title", + "description": "Venue name" + }, + "venue_id": { + "name": "venue_id", + "description": "Venue ID in the provider's database" + }, + "venue_type": { + "name": "venue_type", + "description": "Venue type in the provider's database" + } + } + }, + "inputBotInlineMessageMediaWebPage": { + "name": "inputBotInlineMessageMediaWebPage", + "description": [ + "Specifies options that will be used to generate the link preview for the message, or even a standalone link preview without an attached message." + ], + "fields": { + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "force_large_media": { + "name": "force_large_media", + "description": "If set, specifies that a large media preview should be used." + }, + "force_small_media": { + "name": "force_small_media", + "description": "If set, specifies that a small media preview should be used." + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "message": { + "name": "message", + "description": "The message, can be empty." + }, + "optional": { + "name": "optional", + "description": "If not set, a WEBPAGE_NOT_FOUND RPC error will be emitted if a webpage preview cannot be generated for the specified url; otherwise, no error will be emitted (unless the provided message is also empty, in which case a MESSAGE_EMPTY will be emitted, instead)." + }, + "reply_markup": { + "name": "reply_markup", + "description": "Inline keyboard" + }, + "url": { + "name": "url", + "description": "The URL to use for the link preview." + } + } + }, + "inputBotInlineMessageText": { + "name": "inputBotInlineMessageText", + "description": [ + "Simple text message" + ], + "fields": { + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "message": { + "name": "message", + "description": "Message" + }, + "no_webpage": { + "name": "no_webpage", + "description": "Disable webpage preview" + }, + "reply_markup": { + "name": "reply_markup", + "description": "Inline keyboard" + } + } + }, + "inputBotInlineResult": { + "name": "inputBotInlineResult", + "description": [ + "An inline bot result" + ], + "fields": { + "content": { + "name": "content", + "description": "Result contents" + }, + "description": { + "name": "description", + "description": "Result description" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "ID of result" + }, + "send_message": { + "name": "send_message", + "description": "Message to send when the result is selected" + }, + "thumb": { + "name": "thumb", + "description": "Thumbnail for result" + }, + "title": { + "name": "title", + "description": "Result title" + }, + "type": { + "name": "type", + "description": "Result type (see bot API docs¹)", + "links": [ + "https://core.telegram.org/bots/api#inlinequeryresult" + ] + }, + "url": { + "name": "url", + "description": "URL of result" + } + } + }, + "inputBotInlineResultDocument": { + "name": "inputBotInlineResultDocument", + "description": [ + "Document (media of any type except for photos)" + ], + "fields": { + "description": { + "name": "description", + "description": "Result description" + }, + "document": { + "name": "document", + "description": "Document to send" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Result ID" + }, + "send_message": { + "name": "send_message", + "description": "Message to send when the result is selected" + }, + "title": { + "name": "title", + "description": "Result title" + }, + "type": { + "name": "type", + "description": "Result type (see bot API docs¹)", + "links": [ + "https://core.telegram.org/bots/api#inlinequeryresult" + ] + } + } + }, + "inputBotInlineResultGame": { + "name": "inputBotInlineResultGame", + "description": [ + "Game" + ], + "fields": { + "id": { + "name": "id", + "description": "Result ID" + }, + "send_message": { + "name": "send_message", + "description": "Message to send when the result is selected" + }, + "short_name": { + "name": "short_name", + "description": "Game short name" + } + } + }, + "inputBotInlineResultPhoto": { + "name": "inputBotInlineResultPhoto", + "description": [ + "Photo" + ], + "fields": { + "id": { + "name": "id", + "description": "Result ID" + }, + "photo": { + "name": "photo", + "description": "Photo to send" + }, + "send_message": { + "name": "send_message", + "description": "Message to send when the result is selected" + }, + "type": { + "name": "type", + "description": "Result type (see bot API docs¹)", + "links": [ + "https://core.telegram.org/bots/api#inlinequeryresult" + ] + } + } + }, + "inputChannel": { + "name": "inputChannel", + "description": [ + "Represents a channel" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash taken from the channel¹ constructor", + "links": [ + "https://core.telegram.org/constructor/channel" + ] + }, + "channel_id": { + "name": "channel_id", + "description": "Channel ID" + } + } + }, + "inputChannelEmpty": { + "name": "inputChannelEmpty", + "description": [ + "Represents the absence of a channel" + ] + }, + "inputChannelFromMessage": { + "name": "inputChannelFromMessage", + "description": [ + "Defines a min¹ channel that was seen in a certain message of a certain chat." + ], + "links": [ + "https://core.telegram.org/api/min" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "The channel ID" + }, + "msg_id": { + "name": "msg_id", + "description": "The message ID in the chat where the channel was seen" + }, + "peer": { + "name": "peer", + "description": "The chat where the channel was seen" + } + } + }, + "inputChatPhoto": { + "name": "inputChatPhoto", + "description": [ + "Existing photo to be set as a chat profile photo." + ], + "fields": { + "id": { + "name": "id", + "description": "Existing photo" + } + } + }, + "inputChatPhotoEmpty": { + "name": "inputChatPhotoEmpty", + "description": [ + "Empty constructor, remove group photo." + ] + }, + "inputChatUploadedPhoto": { + "name": "inputChatUploadedPhoto", + "description": [ + "New photo to be set as group profile photo.", + "The file, video and video_emoji_markup flags are mutually exclusive." + ], + "fields": { + "file": { + "name": "file", + "description": "File saved in parts using the method upload.saveFilePart¹", + "links": [ + "https://core.telegram.org/method/upload.saveFilePart" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "video": { + "name": "video", + "description": "Square video for animated profile picture" + }, + "video_emoji_markup": { + "name": "video_emoji_markup", + "description": "Animated sticker profile picture, must contain either a videoSizeEmojiMarkup¹ or a videoSizeStickerMarkup² constructor.", + "links": [ + "https://core.telegram.org/constructor/videoSizeEmojiMarkup", + "https://core.telegram.org/constructor/videoSizeStickerMarkup" + ] + }, + "video_start_ts": { + "name": "video_start_ts", + "description": "Floating point UNIX timestamp in seconds, indicating the frame of the video/sticker that should be used as static preview; can only be used if video or video_emoji_markup is set." + } + } + }, + "inputChatlistDialogFilter": { + "name": "inputChatlistDialogFilter", + "description": [ + "Folder ID" + ], + "fields": { + "filter_id": { + "name": "filter_id", + "description": "Folder¹ ID", + "links": [ + "https://core.telegram.org/api/folders" + ] + } + } + }, + "inputCheckPasswordEmpty": { + "name": "inputCheckPasswordEmpty", + "description": [ + "There is no password" + ] + }, + "inputCheckPasswordSRP": { + "name": "inputCheckPasswordSRP", + "description": [ + "Constructor for checking the validity of a 2FA SRP password (see SRP¹)" + ], + "links": [ + "https://core.telegram.org/api/srp" + ], + "fields": { + "A": { + "name": "A", + "description": "A parameter (see SRP¹)", + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "M1": { + "name": "M1", + "description": "M1 parameter (see SRP¹)", + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "srp_id": { + "name": "srp_id", + "description": "SRP ID¹", + "links": [ + "https://core.telegram.org/api/srp" + ] + } + } + }, + "inputClientProxy": { + "name": "inputClientProxy", + "description": [ + "Info about an MTProxy¹ used to connect." + ], + "links": [ + "https://core.telegram.org/mtproto/mtproto-transports#transport-obfuscation" + ], + "fields": { + "address": { + "name": "address", + "description": "Proxy address" + }, + "port": { + "name": "port", + "description": "Proxy port" + } + } + }, + "inputDialogPeer": { + "name": "inputDialogPeer", + "description": [ + "A peer" + ], + "fields": { + "peer": { + "name": "peer", + "description": "Peer" + } + } + }, + "inputDialogPeerFolder": { + "name": "inputDialogPeerFolder", + "description": [ + "All peers in a peer folder¹" + ], + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ], + "fields": { + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + } + } + }, + "inputDocument": { + "name": "inputDocument", + "description": [ + "Defines a document for subsequent interaction." + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "access_hash parameter from the document¹ constructor", + "links": [ + "https://core.telegram.org/constructor/document" + ] + }, + "file_reference": { + "name": "file_reference", + "description": "File reference¹", + "links": [ + "https://core.telegram.org/api/file_reference" + ] + }, + "id": { + "name": "id", + "description": "Document ID" + } + } + }, + "inputDocumentEmpty": { + "name": "inputDocumentEmpty", + "description": [ + "Empty constructor." + ] + }, + "inputDocumentFileLocation": { + "name": "inputDocumentFileLocation", + "description": [ + "Document location (video, voice, audio, basically every type except photo)" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "access_hash parameter from the document¹ constructor", + "links": [ + "https://core.telegram.org/constructor/document" + ] + }, + "file_reference": { + "name": "file_reference", + "description": "File reference¹", + "links": [ + "https://core.telegram.org/api/file_reference" + ] + }, + "id": { + "name": "id", + "description": "Document ID" + }, + "thumb_size": { + "name": "thumb_size", + "description": "Thumbnail size to download the thumbnail" + } + } + }, + "inputEncryptedChat": { + "name": "inputEncryptedChat", + "description": [ + "Creates an encrypted chat." + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Checking sum from constructor encryptedChat¹, encryptedChatWaiting² or encryptedChatRequested³", + "links": [ + "https://core.telegram.org/constructor/encryptedChat", + "https://core.telegram.org/constructor/encryptedChatWaiting", + "https://core.telegram.org/constructor/encryptedChatRequested" + ] + }, + "chat_id": { + "name": "chat_id", + "description": "Chat ID" + } + } + }, + "inputEncryptedFile": { + "name": "inputEncryptedFile", + "description": [ + "Sets forwarded encrypted file for attachment." + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Checking sum, value of access_hash parameter from encryptedFile¹", + "links": [ + "https://core.telegram.org/constructor/encryptedFile" + ] + }, + "id": { + "name": "id", + "description": "File ID, value of id parameter from encryptedFile¹", + "links": [ + "https://core.telegram.org/constructor/encryptedFile" + ] + } + } + }, + "inputEncryptedFileBigUploaded": { + "name": "inputEncryptedFileBigUploaded", + "description": [ + "Assigns a new big encrypted file (over 10 MB in size), saved in parts using the method upload.saveBigFilePart¹." + ], + "links": [ + "https://core.telegram.org/method/upload.saveBigFilePart" + ], + "fields": { + "id": { + "name": "id", + "description": "Random file id, created by the client" + }, + "key_fingerprint": { + "name": "key_fingerprint", + "description": "32-bit imprint of the key used to encrypt the file" + }, + "parts": { + "name": "parts", + "description": "Number of saved parts" + } + } + }, + "inputEncryptedFileEmpty": { + "name": "inputEncryptedFileEmpty", + "description": [ + "Empty constructor." + ] + }, + "inputEncryptedFileLocation": { + "name": "inputEncryptedFileLocation", + "description": [ + "Location of encrypted secret chat file." + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Checksum, access_hash parameter value from encryptedFile¹", + "links": [ + "https://core.telegram.org/constructor/encryptedFile" + ] + }, + "id": { + "name": "id", + "description": "File ID, id parameter value from encryptedFile¹", + "links": [ + "https://core.telegram.org/constructor/encryptedFile" + ] + } + } + }, + "inputEncryptedFileUploaded": { + "name": "inputEncryptedFileUploaded", + "description": [ + "Sets new encrypted file saved by parts using upload.saveFilePart method." + ], + "fields": { + "id": { + "name": "id", + "description": "Random file ID created by client" + }, + "key_fingerprint": { + "name": "key_fingerprint", + "description": "32-bit fingerprint of the key used to encrypt a file" + }, + "md5_checksum": { + "name": "md5_checksum", + "description": "In case md5-HASH¹ of the (already encrypted) file was transmitted, file content will be checked prior to use", + "links": [ + "https://en.wikipedia.org/wiki/MD5" + ] + }, + "parts": { + "name": "parts", + "description": "Number of saved parts" + } + } + }, + "inputFile": { + "name": "inputFile", + "description": [ + "Defines a file saved in parts using the method upload.saveFilePart¹." + ], + "links": [ + "https://core.telegram.org/method/upload.saveFilePart" + ], + "fields": { + "id": { + "name": "id", + "description": "Random file identifier created by the client" + }, + "md5_checksum": { + "name": "md5_checksum", + "description": "In case the file's md5-hash¹ was passed, contents of the file will be checked prior to use", + "links": [ + "https://en.wikipedia.org/wiki/MD5#MD5_hashes" + ] + }, + "name": { + "name": "name", + "description": "Full name of the file" + }, + "parts": { + "name": "parts", + "description": "Number of parts saved" + } + } + }, + "inputFileBig": { + "name": "inputFileBig", + "description": [ + "Assigns a big file (over 10 MB in size), saved in part using the method upload.saveBigFilePart¹." + ], + "links": [ + "https://core.telegram.org/method/upload.saveBigFilePart" + ], + "fields": { + "id": { + "name": "id", + "description": "Random file id, created by the client" + }, + "name": { + "name": "name", + "description": "Full file name" + }, + "parts": { + "name": "parts", + "description": "Number of parts saved" + } + } + }, + "inputFileLocation": { + "name": "inputFileLocation", + "description": [ + "DEPRECATED location of a photo" + ], + "fields": { + "file_reference": { + "name": "file_reference", + "description": "File reference¹", + "links": [ + "https://core.telegram.org/api/file_reference" + ] + }, + "local_id": { + "name": "local_id", + "description": "File identifier" + }, + "secret": { + "name": "secret", + "description": "Check sum to access the file" + }, + "volume_id": { + "name": "volume_id", + "description": "Server volume" + } + } + }, + "inputFolderPeer": { + "name": "inputFolderPeer", + "description": [ + "Peer in a folder" + ], + "fields": { + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + }, + "peer": { + "name": "peer", + "description": "Peer" + } + } + }, + "inputGameID": { + "name": "inputGameID", + "description": [ + "Indicates an already sent game" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "access hash from Game¹ constructor", + "links": [ + "https://core.telegram.org/type/Game" + ] + }, + "id": { + "name": "id", + "description": "game ID from Game¹ constructor", + "links": [ + "https://core.telegram.org/type/Game" + ] + } + } + }, + "inputGameShortName": { + "name": "inputGameShortName", + "description": [ + "Game by short name" + ], + "fields": { + "bot_id": { + "name": "bot_id", + "description": "The bot that provides the game" + }, + "short_name": { + "name": "short_name", + "description": "The game's short name, usually obtained from a game link »¹", + "links": [ + "https://core.telegram.org/api/links#game-links" + ] + } + } + }, + "inputGeoPoint": { + "name": "inputGeoPoint", + "description": [ + "Defines a GeoPoint by its coordinates." + ], + "fields": { + "accuracy_radius": { + "name": "accuracy_radius", + "description": "The estimated horizontal accuracy of the location, in meters; as defined by the sender." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "lat": { + "name": "lat", + "description": "Latitude" + }, + "long": { + "name": "long", + "description": "Longitude" + } + } + }, + "inputGeoPointEmpty": { + "name": "inputGeoPointEmpty", + "description": [ + "Empty GeoPoint constructor." + ] + }, + "inputGroupCall": { + "name": "inputGroupCall", + "description": [ + "Points to a specific group call" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Group call access hash" + }, + "id": { + "name": "id", + "description": "Group call ID" + } + } + }, + "inputGroupCallStream": { + "name": "inputGroupCallStream", + "description": [ + "Chunk of a livestream" + ], + "fields": { + "call": { + "name": "call", + "description": "Livestream info" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "scale": { + "name": "scale", + "description": "Specifies the duration of the video segment to fetch in milliseconds, by bitshifting 1000 to the right scale times: duration_ms := 1000 \u003e\u003e scale" + }, + "time_ms": { + "name": "time_ms", + "description": "Timestamp in milliseconds" + }, + "video_channel": { + "name": "video_channel", + "description": "Selected video channel" + }, + "video_quality": { + "name": "video_quality", + "description": "Selected video quality (0 = lowest, 1 = medium, 2 = best)" + } + } + }, + "inputInvoiceMessage": { + "name": "inputInvoiceMessage", + "description": [ + "An invoice contained in a messageMediaInvoice¹ message." + ], + "links": [ + "https://core.telegram.org/constructor/messageMediaInvoice" + ], + "fields": { + "msg_id": { + "name": "msg_id", + "description": "Message ID" + }, + "peer": { + "name": "peer", + "description": "Chat where the invoice was sent" + } + } + }, + "inputInvoicePremiumGiftCode": { + "name": "inputInvoicePremiumGiftCode", + "description": [ + "Used if the user wishes to start a channel giveaway¹ or send some giftcodes² to members of a channel, in exchange for boosts³." + ], + "links": [ + "https://core.telegram.org/api/giveaways", + "https://core.telegram.org/api/giveaways", + "https://core.telegram.org/api/boost" + ], + "fields": { + "option": { + "name": "option", + "description": "Should be populated with one of the giveaway options returned by payments.getPremiumGiftCodeOptions¹, see the giveaways »² documentation for more info.", + "links": [ + "https://core.telegram.org/method/payments.getPremiumGiftCodeOptions", + "https://core.telegram.org/api/giveaways" + ] + }, + "purpose": { + "name": "purpose", + "description": "Should be populated with inputStorePaymentPremiumGiveaway¹ for giveaways² and inputStorePaymentPremiumGiftCode³ for gifts⁴.", + "links": [ + "https://core.telegram.org/constructor/inputStorePaymentPremiumGiveaway", + "https://core.telegram.org/api/giveaways", + "https://core.telegram.org/constructor/inputStorePaymentPremiumGiftCode", + "https://core.telegram.org/api/giveaways" + ] + } + } + }, + "inputInvoiceSlug": { + "name": "inputInvoiceSlug", + "description": [ + "An invoice slug taken from an invoice deep link¹ or from the premium_invoice_slug app config parameter »²" + ], + "links": [ + "https://core.telegram.org/api/links#invoice-links", + "https://core.telegram.org/api/config#premium-invoice-slug" + ], + "fields": { + "slug": { + "name": "slug", + "description": "The invoice slug" + } + } + }, + "inputKeyboardButtonUrlAuth": { + "name": "inputKeyboardButtonUrlAuth", + "description": [ + "Button to request a user to authorize¹ via URL using Seamless Telegram Login²." + ], + "links": [ + "https://core.telegram.org/method/messages.acceptUrlAuth", + "https://telegram.org/blog/privacy-discussions-web-bots#meet-seamless-web-bots" + ], + "fields": { + "bot": { + "name": "bot", + "description": "Username of a bot, which will be used for user authorization. See Setting up a bot¹ for more details. If not specified, the current bot's username will be assumed. The url's domain must be the same as the domain linked with the bot. See Linking your domain to the bot² for more details.", + "links": [ + "https://core.telegram.org/widgets/login#setting-up-a-bot", + "https://core.telegram.org/widgets/login#linking-your-domain-to-the-bot" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "fwd_text": { + "name": "fwd_text", + "description": "New text of the button in forwarded messages." + }, + "request_write_access": { + "name": "request_write_access", + "description": "Set this flag to request the permission for your bot to send messages to the user." + }, + "text": { + "name": "text", + "description": "Button text" + }, + "url": { + "name": "url", + "description": "An HTTP URL to be opened with user authorization data added to the query string when the button is pressed. If the user refuses to provide authorization data, the original URL without information about the user will be opened. The data added is the same as described in Receiving authorization data¹.NOTE: You must always check the hash of the received data to verify the authentication and the integrity of the data as described in Checking authorization².", + "links": [ + "https://core.telegram.org/widgets/login#receiving-authorization-data", + "https://core.telegram.org/widgets/login#checking-authorization" + ] + } + } + }, + "inputKeyboardButtonUserProfile": { + "name": "inputKeyboardButtonUserProfile", + "description": [ + "Button that links directly to a user profile" + ], + "fields": { + "text": { + "name": "text", + "description": "Button text" + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + } + }, + "inputMediaAreaChannelPost": { + "name": "inputMediaAreaChannelPost", + "description": [ + "Represents a channel post" + ], + "fields": { + "channel": { + "name": "channel", + "description": "The channel that posted the message" + }, + "coordinates": { + "name": "coordinates", + "description": "The size and location of the media area corresponding to the location sticker on top of the story media." + }, + "msg_id": { + "name": "msg_id", + "description": "ID of the channel message" + } + } + }, + "inputMediaAreaVenue": { + "name": "inputMediaAreaVenue", + "description": [ + "Represents a location tag¹ attached to a story², with additional venue information." + ], + "links": [ + "https://core.telegram.org/api/stories#media-areas", + "https://core.telegram.org/api/stories" + ], + "fields": { + "coordinates": { + "name": "coordinates", + "description": "The size and location of the media area corresponding to the location sticker on top of the story media." + }, + "query_id": { + "name": "query_id", + "description": "The query_id from messages.botResults¹, see here »² for more info.", + "links": [ + "https://core.telegram.org/constructor/messages.botResults", + "https://core.telegram.org/api/stories#media-areas" + ] + }, + "result_id": { + "name": "result_id", + "description": "The id of the chosen result, see here »¹ for more info.", + "links": [ + "https://core.telegram.org/api/stories#media-areas" + ] + } + } + }, + "inputMediaContact": { + "name": "inputMediaContact", + "description": [ + "Phone book contact" + ], + "fields": { + "first_name": { + "name": "first_name", + "description": "Contact's first name" + }, + "last_name": { + "name": "last_name", + "description": "Contact's last name" + }, + "phone_number": { + "name": "phone_number", + "description": "Phone number" + }, + "vcard": { + "name": "vcard", + "description": "Contact vcard" + } + } + }, + "inputMediaDice": { + "name": "inputMediaDice", + "description": [ + "Send a dice-based animated sticker¹" + ], + "links": [ + "https://core.telegram.org/api/dice" + ], + "fields": { + "emoticon": { + "name": "emoticon", + "description": "The emoji, for now , and are supported" + } + } + }, + "inputMediaDocument": { + "name": "inputMediaDocument", + "description": [ + "Forwarded document" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "The document to be forwarded." + }, + "query": { + "name": "query", + "description": "Text query or emoji that was used by the user to find this sticker or GIF: used to improve search result relevance." + }, + "spoiler": { + "name": "spoiler", + "description": "Whether this media should be hidden behind a spoiler warning" + }, + "ttl_seconds": { + "name": "ttl_seconds", + "description": "Time to live of self-destructing document" + } + } + }, + "inputMediaDocumentExternal": { + "name": "inputMediaDocumentExternal", + "description": [ + "Document that will be downloaded by the telegram servers" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "spoiler": { + "name": "spoiler", + "description": "Whether this media should be hidden behind a spoiler warning" + }, + "ttl_seconds": { + "name": "ttl_seconds", + "description": "Self-destruct time to live of document" + }, + "url": { + "name": "url", + "description": "URL of the document" + } + } + }, + "inputMediaEmpty": { + "name": "inputMediaEmpty", + "description": [ + "Empty media content of a message." + ] + }, + "inputMediaGame": { + "name": "inputMediaGame", + "description": [ + "A game" + ], + "fields": { + "id": { + "name": "id", + "description": "The game to forward" + } + } + }, + "inputMediaGeoLive": { + "name": "inputMediaGeoLive", + "description": [ + "Live geolocation¹" + ], + "links": [ + "https://core.telegram.org/api/live-location" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "geo_point": { + "name": "geo_point", + "description": "Current geolocation" + }, + "heading": { + "name": "heading", + "description": "For live locations¹, a direction in which the location moves, in degrees; 1-360.", + "links": [ + "https://core.telegram.org/api/live-location" + ] + }, + "period": { + "name": "period", + "description": "Validity period of the current location" + }, + "proximity_notification_radius": { + "name": "proximity_notification_radius", + "description": "For live locations¹, a maximum distance to another chat member for proximity alerts, in meters (0-100000)", + "links": [ + "https://core.telegram.org/api/live-location" + ] + }, + "stopped": { + "name": "stopped", + "description": "Whether sending of the geolocation was stopped" + } + } + }, + "inputMediaGeoPoint": { + "name": "inputMediaGeoPoint", + "description": [ + "Map." + ], + "fields": { + "geo_point": { + "name": "geo_point", + "description": "GeoPoint" + } + } + }, + "inputMediaInvoice": { + "name": "inputMediaInvoice", + "description": [ + "Generated invoice of a bot payment¹" + ], + "links": [ + "https://core.telegram.org/bots/payments" + ], + "fields": { + "description": { + "name": "description", + "description": "Product description, 1-255 characters" + }, + "extended_media": { + "name": "extended_media", + "description": "Extended media" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invoice": { + "name": "invoice", + "description": "The actual invoice" + }, + "payload": { + "name": "payload", + "description": "Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes." + }, + "photo": { + "name": "photo", + "description": "URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for." + }, + "provider": { + "name": "provider", + "description": "Payments provider token, obtained via Botfather¹", + "links": [ + "https://t.me/botfather" + ] + }, + "provider_data": { + "name": "provider_data", + "description": "JSON-encoded data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider." + }, + "start_param": { + "name": "start_param", + "description": "Unique bot deep links start parameter¹. If present, forwarded copies of the sent message will have a URL button with a deep link² to the bot (instead of a Pay button), with the value used as the start parameter. If absent, forwarded copies of the sent message will have a Pay button, allowing multiple users to pay directly from the forwarded message, using the same invoice.", + "links": [ + "https://core.telegram.org/api/links#bot-links", + "https://core.telegram.org/api/links#bot-links" + ] + }, + "title": { + "name": "title", + "description": "Product name, 1-32 characters" + } + } + }, + "inputMediaPhoto": { + "name": "inputMediaPhoto", + "description": [ + "Forwarded photo" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Photo to be forwarded" + }, + "spoiler": { + "name": "spoiler", + "description": "Whether this media should be hidden behind a spoiler warning" + }, + "ttl_seconds": { + "name": "ttl_seconds", + "description": "Time to live in seconds of self-destructing photo" + } + } + }, + "inputMediaPhotoExternal": { + "name": "inputMediaPhotoExternal", + "description": [ + "New photo that will be uploaded by the server using the specified URL" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "spoiler": { + "name": "spoiler", + "description": "Whether this media should be hidden behind a spoiler warning" + }, + "ttl_seconds": { + "name": "ttl_seconds", + "description": "Self-destruct time to live of photo" + }, + "url": { + "name": "url", + "description": "URL of the photo" + } + } + }, + "inputMediaPoll": { + "name": "inputMediaPoll", + "description": [ + "A poll" + ], + "fields": { + "correct_answers": { + "name": "correct_answers", + "description": "Correct answer IDs (for quiz polls)" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "poll": { + "name": "poll", + "description": "The poll to send" + }, + "solution": { + "name": "solution", + "description": "Explanation of quiz solution" + }, + "solution_entities": { + "name": "solution_entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + } + } + }, + "inputMediaStory": { + "name": "inputMediaStory", + "description": [ + "Forwarded story" + ], + "fields": { + "id": { + "name": "id", + "description": "Story ID" + }, + "peer": { + "name": "peer", + "description": "Peer where the story was posted" + } + } + }, + "inputMediaUploadedDocument": { + "name": "inputMediaUploadedDocument", + "description": [ + "New document" + ], + "fields": { + "attributes": { + "name": "attributes", + "description": "Attributes that specify the type of the document (video, audio, voice, sticker, etc.)" + }, + "file": { + "name": "file", + "description": "The uploaded file¹", + "links": [ + "https://core.telegram.org/api/files" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "force_file": { + "name": "force_file", + "description": "Force the media file to be uploaded as document" + }, + "mime_type": { + "name": "mime_type", + "description": "MIME type of document" + }, + "nosound_video": { + "name": "nosound_video", + "description": "Whether the specified document is a video file with no audio tracks (a GIF animation (even as MPEG4), for example)" + }, + "spoiler": { + "name": "spoiler", + "description": "Whether this media should be hidden behind a spoiler warning" + }, + "stickers": { + "name": "stickers", + "description": "Attached stickers" + }, + "thumb": { + "name": "thumb", + "description": "Thumbnail of the document, uploaded as for the file" + }, + "ttl_seconds": { + "name": "ttl_seconds", + "description": "Time to live in seconds of self-destructing document" + } + } + }, + "inputMediaUploadedPhoto": { + "name": "inputMediaUploadedPhoto", + "description": [ + "Photo" + ], + "fields": { + "file": { + "name": "file", + "description": "The uploaded file¹", + "links": [ + "https://core.telegram.org/api/files" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "spoiler": { + "name": "spoiler", + "description": "Whether this media should be hidden behind a spoiler warning" + }, + "stickers": { + "name": "stickers", + "description": "Attached mask stickers" + }, + "ttl_seconds": { + "name": "ttl_seconds", + "description": "Time to live in seconds of self-destructing photo" + } + } + }, + "inputMediaVenue": { + "name": "inputMediaVenue", + "description": [ + "Can be used to send a venue geolocation." + ], + "fields": { + "address": { + "name": "address", + "description": "Physical address of the venue" + }, + "geo_point": { + "name": "geo_point", + "description": "Geolocation" + }, + "provider": { + "name": "provider", + "description": "Venue provider: currently only \"foursquare\" and \"gplaces\" (Google Places) need to be supported" + }, + "title": { + "name": "title", + "description": "Venue name" + }, + "venue_id": { + "name": "venue_id", + "description": "Venue ID in the provider's database" + }, + "venue_type": { + "name": "venue_type", + "description": "Venue type in the provider's database" + } + } + }, + "inputMediaWebPage": { + "name": "inputMediaWebPage", + "description": [ + "Specifies options that will be used to generate the link preview for the caption, or even a standalone link preview without an attached message." + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "force_large_media": { + "name": "force_large_media", + "description": "If set, specifies that a large media preview should be used." + }, + "force_small_media": { + "name": "force_small_media", + "description": "If set, specifies that a small media preview should be used." + }, + "optional": { + "name": "optional", + "description": "If not set, a WEBPAGE_NOT_FOUND RPC error will be emitted if a webpage preview cannot be generated for the specified url; otherwise, no error will be emitted (unless the provided message is also empty, in which case a MESSAGE_EMPTY will be emitted, instead)." + }, + "url": { + "name": "url", + "description": "The URL to use for the link preview." + } + } + }, + "inputMessageCallbackQuery": { + "name": "inputMessageCallbackQuery", + "description": [ + "Used by bots for fetching information about the message that originated a callback query" + ], + "fields": { + "id": { + "name": "id", + "description": "Message ID" + }, + "query_id": { + "name": "query_id", + "description": "Callback query ID" + } + } + }, + "inputMessageEntityMentionName": { + "name": "inputMessageEntityMentionName", + "description": [ + "Message entity that can be used to create a user user mention¹: received mentions use the messageEntityMentionName² constructor, instead." + ], + "links": [ + "https://core.telegram.org/api/mentions", + "https://core.telegram.org/constructor/messageEntityMentionName" + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "user_id": { + "name": "user_id", + "description": "Identifier of the user that was mentioned" + } + } + }, + "inputMessageID": { + "name": "inputMessageID", + "description": [ + "Message by ID" + ], + "fields": { + "id": { + "name": "id", + "description": "Message ID" + } + } + }, + "inputMessagePinned": { + "name": "inputMessagePinned", + "description": [ + "Pinned message" + ] + }, + "inputMessageReplyTo": { + "name": "inputMessageReplyTo", + "description": [ + "Message to which the specified message replies to" + ], + "fields": { + "id": { + "name": "id", + "description": "ID of the message that replies to the message we need" + } + } + }, + "inputMessagesFilterChatPhotos": { + "name": "inputMessagesFilterChatPhotos", + "description": [ + "Return only chat photo changes" + ] + }, + "inputMessagesFilterContacts": { + "name": "inputMessagesFilterContacts", + "description": [ + "Return only messages containing contacts" + ] + }, + "inputMessagesFilterDocument": { + "name": "inputMessagesFilterDocument", + "description": [ + "Filter for messages containing documents." + ] + }, + "inputMessagesFilterEmpty": { + "name": "inputMessagesFilterEmpty", + "description": [ + "Filter is absent." + ] + }, + "inputMessagesFilterGeo": { + "name": "inputMessagesFilterGeo", + "description": [ + "Return only messages containing geolocations" + ] + }, + "inputMessagesFilterGif": { + "name": "inputMessagesFilterGif", + "description": [ + "Return only messages containing gifs" + ] + }, + "inputMessagesFilterMusic": { + "name": "inputMessagesFilterMusic", + "description": [ + "Return only messages containing audio files" + ] + }, + "inputMessagesFilterMyMentions": { + "name": "inputMessagesFilterMyMentions", + "description": [ + "Return only messages where the current user was mentioned¹." + ], + "links": [ + "https://core.telegram.org/api/mentions" + ] + }, + "inputMessagesFilterPhoneCalls": { + "name": "inputMessagesFilterPhoneCalls", + "description": [ + "Return only phone calls" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "missed": { + "name": "missed", + "description": "Return only missed phone calls" + } + } + }, + "inputMessagesFilterPhotoVideo": { + "name": "inputMessagesFilterPhotoVideo", + "description": [ + "Filter for messages containing photos or videos." + ] + }, + "inputMessagesFilterPhotos": { + "name": "inputMessagesFilterPhotos", + "description": [ + "Filter for messages containing photos." + ] + }, + "inputMessagesFilterPinned": { + "name": "inputMessagesFilterPinned", + "description": [ + "Fetch only pinned messages" + ] + }, + "inputMessagesFilterRoundVideo": { + "name": "inputMessagesFilterRoundVideo", + "description": [ + "Return only round videos" + ] + }, + "inputMessagesFilterRoundVoice": { + "name": "inputMessagesFilterRoundVoice", + "description": [ + "Return only round videos and voice notes" + ] + }, + "inputMessagesFilterUrl": { + "name": "inputMessagesFilterUrl", + "description": [ + "Return only messages containing URLs" + ] + }, + "inputMessagesFilterVideo": { + "name": "inputMessagesFilterVideo", + "description": [ + "Filter for messages containing videos." + ] + }, + "inputMessagesFilterVoice": { + "name": "inputMessagesFilterVoice", + "description": [ + "Return only messages containing voice notes" + ] + }, + "inputNotifyBroadcasts": { + "name": "inputNotifyBroadcasts", + "description": [ + "All channels¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "inputNotifyChats": { + "name": "inputNotifyChats", + "description": [ + "Notifications generated by all groups." + ] + }, + "inputNotifyForumTopic": { + "name": "inputNotifyForumTopic", + "description": [ + "Notifications generated by a topic¹ in a forum²." + ], + "links": [ + "https://core.telegram.org/api/forum#forum-topics", + "https://core.telegram.org/api/forum" + ], + "fields": { + "peer": { + "name": "peer", + "description": "Forum ID" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "Topic ID¹", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + } + } + }, + "inputNotifyPeer": { + "name": "inputNotifyPeer", + "description": [ + "Notifications generated by a certain user or group." + ], + "fields": { + "peer": { + "name": "peer", + "description": "User or group" + } + } + }, + "inputNotifyUsers": { + "name": "inputNotifyUsers", + "description": [ + "Notifications generated by all users." + ] + }, + "inputPaymentCredentials": { + "name": "inputPaymentCredentials", + "description": [ + "Payment credentials" + ], + "fields": { + "data": { + "name": "data", + "description": "Payment credentials" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "save": { + "name": "save", + "description": "Save payment credential for future use" + } + } + }, + "inputPaymentCredentialsApplePay": { + "name": "inputPaymentCredentialsApplePay", + "description": [ + "Apple pay payment credentials" + ], + "fields": { + "payment_data": { + "name": "payment_data", + "description": "Payment data" + } + } + }, + "inputPaymentCredentialsGooglePay": { + "name": "inputPaymentCredentialsGooglePay", + "description": [ + "Google Pay payment credentials" + ], + "fields": { + "payment_token": { + "name": "payment_token", + "description": "Payment token" + } + } + }, + "inputPaymentCredentialsSaved": { + "name": "inputPaymentCredentialsSaved", + "description": [ + "Saved payment credentials" + ], + "fields": { + "id": { + "name": "id", + "description": "Credential ID" + }, + "tmp_password": { + "name": "tmp_password", + "description": "Temporary password" + } + } + }, + "inputPeerChannel": { + "name": "inputPeerChannel", + "description": [ + "Defines a channel for further interaction." + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "access_hash value from the channel¹ constructor", + "links": [ + "https://core.telegram.org/constructor/channel" + ] + }, + "channel_id": { + "name": "channel_id", + "description": "Channel identifier" + } + } + }, + "inputPeerChannelFromMessage": { + "name": "inputPeerChannelFromMessage", + "description": [ + "Defines a min¹ channel that was seen in a certain message of a certain chat." + ], + "links": [ + "https://core.telegram.org/api/min" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "The identifier of the channel that was seen" + }, + "msg_id": { + "name": "msg_id", + "description": "The message ID" + }, + "peer": { + "name": "peer", + "description": "The chat where the channel's message was seen" + } + } + }, + "inputPeerChat": { + "name": "inputPeerChat", + "description": [ + "Defines a chat for further interaction." + ], + "fields": { + "chat_id": { + "name": "chat_id", + "description": "Chat identifier" + } + } + }, + "inputPeerEmpty": { + "name": "inputPeerEmpty", + "description": [ + "An empty constructor, no user or chat is defined." + ] + }, + "inputPeerNotifySettings": { + "name": "inputPeerNotifySettings", + "description": [ + "Notification settings." + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "mute_until": { + "name": "mute_until", + "description": "Date until which all notifications shall be switched off" + }, + "show_previews": { + "name": "show_previews", + "description": "If the text of the message shall be displayed in notification" + }, + "silent": { + "name": "silent", + "description": "Peer was muted?" + }, + "sound": { + "name": "sound", + "description": "Identifier of an audio file to play for notifications." + }, + "stories_hide_sender": { + "name": "stories_hide_sender", + "description": "Whether the sender name should be displayed in story notifications." + }, + "stories_muted": { + "name": "stories_muted", + "description": "Whether story notifications should be disabled." + }, + "stories_sound": { + "name": "stories_sound", + "description": "Identifier of an audio file to play for story notifications." + } + } + }, + "inputPeerPhotoFileLocation": { + "name": "inputPeerPhotoFileLocation", + "description": [ + "Location of profile photo of channel/group/supergroup/user" + ], + "fields": { + "big": { + "name": "big", + "description": "Whether to download the high-quality version of the picture" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "The peer whose profile picture should be downloaded" + }, + "photo_id": { + "name": "photo_id", + "description": "Photo ID" + } + } + }, + "inputPeerSelf": { + "name": "inputPeerSelf", + "description": [ + "Defines the current user." + ] + }, + "inputPeerUser": { + "name": "inputPeerUser", + "description": [ + "Defines a user for further interaction." + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "access_hash value from the user¹ constructor", + "links": [ + "https://core.telegram.org/constructor/user" + ] + }, + "user_id": { + "name": "user_id", + "description": "User identifier" + } + } + }, + "inputPeerUserFromMessage": { + "name": "inputPeerUserFromMessage", + "description": [ + "Defines a min¹ user that was seen in a certain message of a certain chat." + ], + "links": [ + "https://core.telegram.org/api/min" + ], + "fields": { + "msg_id": { + "name": "msg_id", + "description": "The message ID" + }, + "peer": { + "name": "peer", + "description": "The chat where the user was seen" + }, + "user_id": { + "name": "user_id", + "description": "The identifier of the user that was seen" + } + } + }, + "inputPhoneCall": { + "name": "inputPhoneCall", + "description": [ + "Phone call" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "id": { + "name": "id", + "description": "Call ID" + } + } + }, + "inputPhoneContact": { + "name": "inputPhoneContact", + "description": [ + "Phone contact." + ], + "fields": { + "client_id": { + "name": "client_id", + "description": "An arbitrary 64-bit integer: it should be set, for example, to an incremental number when using contacts.importContacts¹, in order to retry importing only the contacts that weren't imported successfully, according to the client_ids returned in contacts.importedContacts².retry_contacts.", + "links": [ + "https://core.telegram.org/method/contacts.importContacts", + "https://core.telegram.org/constructor/contacts.importedContacts" + ] + }, + "first_name": { + "name": "first_name", + "description": "Contact's first name" + }, + "last_name": { + "name": "last_name", + "description": "Contact's last name" + }, + "phone": { + "name": "phone", + "description": "Phone number" + } + } + }, + "inputPhoto": { + "name": "inputPhoto", + "description": [ + "Defines a photo for further interaction." + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "access_hash value from the photo¹ constructor", + "links": [ + "https://core.telegram.org/constructor/photo" + ] + }, + "file_reference": { + "name": "file_reference", + "description": "File reference¹", + "links": [ + "https://core.telegram.org/api/file_reference" + ] + }, + "id": { + "name": "id", + "description": "Photo identifier" + } + } + }, + "inputPhotoEmpty": { + "name": "inputPhotoEmpty", + "description": [ + "Empty constructor." + ] + }, + "inputPhotoFileLocation": { + "name": "inputPhotoFileLocation", + "description": [ + "Use this object to download a photo with upload.getFile¹ method" + ], + "links": [ + "https://core.telegram.org/method/upload.getFile" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Photo's access hash, obtained from the photo¹ object", + "links": [ + "https://core.telegram.org/constructor/photo" + ] + }, + "file_reference": { + "name": "file_reference", + "description": "File reference¹", + "links": [ + "https://core.telegram.org/api/file_reference" + ] + }, + "id": { + "name": "id", + "description": "Photo ID, obtained from the photo¹ object", + "links": [ + "https://core.telegram.org/constructor/photo" + ] + }, + "thumb_size": { + "name": "thumb_size", + "description": "The PhotoSize¹ to download: must be set to the type field of the desired PhotoSize object of the photo²", + "links": [ + "https://core.telegram.org/type/PhotoSize", + "https://core.telegram.org/constructor/photo" + ] + } + } + }, + "inputPhotoLegacyFileLocation": { + "name": "inputPhotoLegacyFileLocation", + "description": [ + "DEPRECATED legacy photo file location" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "file_reference": { + "name": "file_reference", + "description": "File reference" + }, + "id": { + "name": "id", + "description": "Photo ID" + }, + "local_id": { + "name": "local_id", + "description": "Local ID" + }, + "secret": { + "name": "secret", + "description": "Secret" + }, + "volume_id": { + "name": "volume_id", + "description": "Volume ID" + } + } + }, + "inputPrivacyKeyAbout": { + "name": "inputPrivacyKeyAbout", + "description": [ + "Whether people can see your bio" + ] + }, + "inputPrivacyKeyAddedByPhone": { + "name": "inputPrivacyKeyAddedByPhone", + "description": [ + "Whether people can add you to their contact list by your phone number" + ] + }, + "inputPrivacyKeyChatInvite": { + "name": "inputPrivacyKeyChatInvite", + "description": [ + "Whether people will be able to invite you to chats" + ] + }, + "inputPrivacyKeyForwards": { + "name": "inputPrivacyKeyForwards", + "description": [ + "Whether messages forwarded from you will be anonymous¹" + ], + "links": [ + "https://telegram.org/blog/unsend-privacy-emoji#anonymous-forwarding" + ] + }, + "inputPrivacyKeyPhoneCall": { + "name": "inputPrivacyKeyPhoneCall", + "description": [ + "Whether you will accept phone calls" + ] + }, + "inputPrivacyKeyPhoneNumber": { + "name": "inputPrivacyKeyPhoneNumber", + "description": [ + "Whether people will be able to see your phone number" + ] + }, + "inputPrivacyKeyPhoneP2P": { + "name": "inputPrivacyKeyPhoneP2P", + "description": [ + "Whether to allow P2P communication during VoIP calls" + ] + }, + "inputPrivacyKeyProfilePhoto": { + "name": "inputPrivacyKeyProfilePhoto", + "description": [ + "Whether people will be able to see your profile picture" + ] + }, + "inputPrivacyKeyStatusTimestamp": { + "name": "inputPrivacyKeyStatusTimestamp", + "description": [ + "Whether people will be able to see your exact last online timestamp" + ] + }, + "inputPrivacyKeyVoiceMessages": { + "name": "inputPrivacyKeyVoiceMessages", + "description": [ + "Whether people can send you voice messages" + ] + }, + "inputPrivacyValueAllowAll": { + "name": "inputPrivacyValueAllowAll", + "description": [ + "Allow all users" + ] + }, + "inputPrivacyValueAllowChatParticipants": { + "name": "inputPrivacyValueAllowChatParticipants", + "description": [ + "Allow only participants of certain chats" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Allowed chat IDs" + } + } + }, + "inputPrivacyValueAllowCloseFriends": { + "name": "inputPrivacyValueAllowCloseFriends", + "description": [ + "Allow only close friends »¹" + ], + "links": [ + "https://core.telegram.org/api/privacy" + ] + }, + "inputPrivacyValueAllowContacts": { + "name": "inputPrivacyValueAllowContacts", + "description": [ + "Allow only contacts" + ] + }, + "inputPrivacyValueAllowUsers": { + "name": "inputPrivacyValueAllowUsers", + "description": [ + "Allow only certain users" + ], + "fields": { + "users": { + "name": "users", + "description": "Allowed users" + } + } + }, + "inputPrivacyValueDisallowAll": { + "name": "inputPrivacyValueDisallowAll", + "description": [ + "Disallow all" + ] + }, + "inputPrivacyValueDisallowChatParticipants": { + "name": "inputPrivacyValueDisallowChatParticipants", + "description": [ + "Disallow only participants of certain chats" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Disallowed chat IDs" + } + } + }, + "inputPrivacyValueDisallowContacts": { + "name": "inputPrivacyValueDisallowContacts", + "description": [ + "Disallow only contacts" + ] + }, + "inputPrivacyValueDisallowUsers": { + "name": "inputPrivacyValueDisallowUsers", + "description": [ + "Disallow only certain users" + ], + "fields": { + "users": { + "name": "users", + "description": "Users to disallow" + } + } + }, + "inputReplyToMessage": { + "name": "inputReplyToMessage", + "description": [ + "Reply to a message." + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "quote_entities": { + "name": "quote_entities", + "description": "Message entities for styled text¹ from the quote_text field.", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "quote_offset": { + "name": "quote_offset", + "description": "Offset of the message quote_text within the original message (in UTF-16 code units¹).", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "quote_text": { + "name": "quote_text", + "description": "Used to quote-reply to only a certain section (specified here) of the original message. The maximum UTF-8 length for quotes is specified in the quote_length_max¹ config key.", + "links": [ + "https://core.telegram.org/api/config#quote-length-max" + ] + }, + "reply_to_msg_id": { + "name": "reply_to_msg_id", + "description": "The message ID to reply to." + }, + "reply_to_peer_id": { + "name": "reply_to_peer_id", + "description": "Used to reply to messages sent to another chat (specified here), can only be used for non-protected chats and messages." + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "This field must contain the topic ID only when replying to messages in forum topics different from the \"General\" topic (i.e. reply_to_msg_id is set and reply_to_msg_id != topicID and topicID != 1). If the replied-to message is deleted before the method finishes execution, the value in this field will be used to send the message to the correct topic, instead of the \"General\" topic." + } + } + }, + "inputReplyToStory": { + "name": "inputReplyToStory", + "description": [ + "Reply to a story." + ], + "fields": { + "story_id": { + "name": "story_id", + "description": "ID of the story to reply to." + }, + "user_id": { + "name": "user_id", + "description": "ID of the user that posted the story." + } + } + }, + "inputReportReasonChildAbuse": { + "name": "inputReportReasonChildAbuse", + "description": [ + "Report for child abuse" + ] + }, + "inputReportReasonCopyright": { + "name": "inputReportReasonCopyright", + "description": [ + "Report for copyrighted content" + ] + }, + "inputReportReasonFake": { + "name": "inputReportReasonFake", + "description": [ + "Report for impersonation" + ] + }, + "inputReportReasonGeoIrrelevant": { + "name": "inputReportReasonGeoIrrelevant", + "description": [ + "Report an irrelevant geogroup" + ] + }, + "inputReportReasonIllegalDrugs": { + "name": "inputReportReasonIllegalDrugs", + "description": [ + "Report for illegal drugs" + ] + }, + "inputReportReasonOther": { + "name": "inputReportReasonOther", + "description": [ + "Other" + ] + }, + "inputReportReasonPersonalDetails": { + "name": "inputReportReasonPersonalDetails", + "description": [ + "Report for divulgation of personal details" + ] + }, + "inputReportReasonPornography": { + "name": "inputReportReasonPornography", + "description": [ + "Report for pornography" + ] + }, + "inputReportReasonSpam": { + "name": "inputReportReasonSpam", + "description": [ + "Report for spam" + ] + }, + "inputReportReasonViolence": { + "name": "inputReportReasonViolence", + "description": [ + "Report for violence" + ] + }, + "inputSecureFile": { + "name": "inputSecureFile", + "description": [ + "Pre-uploaded passport¹ file, for more info see the passport docs »²" + ], + "links": [ + "https://core.telegram.org/passport", + "https://core.telegram.org/passport/encryption#inputsecurefile" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Secure file access hash" + }, + "id": { + "name": "id", + "description": "Secure file ID" + } + } + }, + "inputSecureFileLocation": { + "name": "inputSecureFileLocation", + "description": [ + "Location of encrypted telegram passport¹ file." + ], + "links": [ + "https://core.telegram.org/passport" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Checksum, access_hash parameter value from secureFile¹", + "links": [ + "https://core.telegram.org/constructor/secureFile" + ] + }, + "id": { + "name": "id", + "description": "File ID, id parameter value from secureFile¹", + "links": [ + "https://core.telegram.org/constructor/secureFile" + ] + } + } + }, + "inputSecureFileUploaded": { + "name": "inputSecureFileUploaded", + "description": [ + "Uploaded secure file, for more info see the passport docs »¹" + ], + "links": [ + "https://core.telegram.org/passport/encryption#inputsecurefile" + ], + "fields": { + "file_hash": { + "name": "file_hash", + "description": "File hash" + }, + "id": { + "name": "id", + "description": "Secure file ID" + }, + "md5_checksum": { + "name": "md5_checksum", + "description": "MD5 hash of encrypted uploaded file, to be checked server-side" + }, + "parts": { + "name": "parts", + "description": "Secure file part count" + }, + "secret": { + "name": "secret", + "description": "Secret" + } + } + }, + "inputSecureValue": { + "name": "inputSecureValue", + "description": [ + "Secure value, for more info see the passport docs »¹" + ], + "links": [ + "https://core.telegram.org/passport/encryption#encryption" + ], + "fields": { + "data": { + "name": "data", + "description": "Encrypted Telegram Passport¹ element data", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "files": { + "name": "files", + "description": "Array of encrypted passport¹ files with photos the of the documents", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "front_side": { + "name": "front_side", + "description": "Encrypted passport¹ file with the front side of the document", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "plain_data": { + "name": "plain_data", + "description": "Plaintext verified passport¹ data", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "reverse_side": { + "name": "reverse_side", + "description": "Encrypted passport¹ file with the reverse side of the document", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "selfie": { + "name": "selfie", + "description": "Encrypted passport¹ file with a selfie of the user holding the document", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "translation": { + "name": "translation", + "description": "Array of encrypted passport¹ files with translated versions of the provided documents", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "type": { + "name": "type", + "description": "Secure passport¹ value type", + "links": [ + "https://core.telegram.org/passport" + ] + } + } + }, + "inputSingleMedia": { + "name": "inputSingleMedia", + "description": [ + "A single media in an album or grouped media¹ sent with messages.sendMultiMedia²." + ], + "links": [ + "https://core.telegram.org/api/files#albums-grouped-media", + "https://core.telegram.org/method/messages.sendMultiMedia" + ], + "fields": { + "entities": { + "name": "entities", + "description": "Message entities¹ for styled text", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "media": { + "name": "media", + "description": "The media" + }, + "message": { + "name": "message", + "description": "A caption for the media" + }, + "random_id": { + "name": "random_id", + "description": "Unique client media ID required to prevent message resending" + } + } + }, + "inputStickerSetAnimatedEmoji": { + "name": "inputStickerSetAnimatedEmoji", + "description": [ + "Animated emojis stickerset" + ] + }, + "inputStickerSetAnimatedEmojiAnimations": { + "name": "inputStickerSetAnimatedEmojiAnimations", + "description": [ + "Animated emoji reaction stickerset (contains animations to play when a user clicks on a given animated emoji)" + ] + }, + "inputStickerSetDice": { + "name": "inputStickerSetDice", + "description": [ + "Used for fetching animated dice stickers¹" + ], + "links": [ + "https://core.telegram.org/api/dice" + ], + "fields": { + "emoticon": { + "name": "emoticon", + "description": "The emoji, for now , and are supported" + } + } + }, + "inputStickerSetEmojiChannelDefaultStatuses": { + "name": "inputStickerSetEmojiChannelDefaultStatuses", + "description": [ + "Default custom emoji status¹ stickerset for channel statuses" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + }, + "inputStickerSetEmojiDefaultStatuses": { + "name": "inputStickerSetEmojiDefaultStatuses", + "description": [ + "Default custom emoji status¹ stickerset" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + }, + "inputStickerSetEmojiDefaultTopicIcons": { + "name": "inputStickerSetEmojiDefaultTopicIcons", + "description": [ + "Default custom emoji¹ stickerset for forum topic icons²" + ], + "links": [ + "https://core.telegram.org/api/custom-emoji", + "https://core.telegram.org/api/forum#forum-topics" + ] + }, + "inputStickerSetEmojiGenericAnimations": { + "name": "inputStickerSetEmojiGenericAnimations", + "description": [ + "Generic animation stickerset containing animations to play when reacting to messages using a normal emoji without a custom animation¹" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ] + }, + "inputStickerSetEmpty": { + "name": "inputStickerSetEmpty", + "description": [ + "Empty constructor" + ] + }, + "inputStickerSetID": { + "name": "inputStickerSetID", + "description": [ + "Stickerset by ID" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "id": { + "name": "id", + "description": "ID" + } + } + }, + "inputStickerSetItem": { + "name": "inputStickerSetItem", + "description": [ + "Sticker in a stickerset" + ], + "fields": { + "document": { + "name": "document", + "description": "The sticker" + }, + "emoji": { + "name": "emoji", + "description": "Associated emoji" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "keywords": { + "name": "keywords", + "description": "Set of keywords, separated by commas (can't be provided for mask stickers)" + }, + "mask_coords": { + "name": "mask_coords", + "description": "Coordinates for mask sticker" + } + } + }, + "inputStickerSetPremiumGifts": { + "name": "inputStickerSetPremiumGifts", + "description": [ + "Stickers to show when receiving a gifted Telegram Premium subscription" + ] + }, + "inputStickerSetShortName": { + "name": "inputStickerSetShortName", + "description": [ + "Stickerset by short name, from a stickerset deep link »¹" + ], + "links": [ + "https://core.telegram.org/api/links#stickerset-links" + ], + "fields": { + "short_name": { + "name": "short_name", + "description": "Short name from a stickerset deep link »¹", + "links": [ + "https://core.telegram.org/api/links#stickerset-links" + ] + } + } + }, + "inputStickerSetThumb": { + "name": "inputStickerSetThumb", + "description": [ + "Location of stickerset thumbnail (see files¹)" + ], + "links": [ + "https://core.telegram.org/api/files" + ], + "fields": { + "stickerset": { + "name": "stickerset", + "description": "Sticker set" + }, + "thumb_version": { + "name": "thumb_version", + "description": "Thumbnail version" + } + } + }, + "inputStickeredMediaDocument": { + "name": "inputStickeredMediaDocument", + "description": [ + "A document with stickers attached" + ], + "fields": { + "id": { + "name": "id", + "description": "The document" + } + } + }, + "inputStickeredMediaPhoto": { + "name": "inputStickeredMediaPhoto", + "description": [ + "A photo with stickers attached" + ], + "fields": { + "id": { + "name": "id", + "description": "The photo" + } + } + }, + "inputStorePaymentGiftPremium": { + "name": "inputStorePaymentGiftPremium", + "description": [ + "Info about a gifted Telegram Premium purchase" + ], + "fields": { + "amount": { + "name": "amount", + "description": "Price of the product in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + }, + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "user_id": { + "name": "user_id", + "description": "The user to which the Telegram Premium subscription was gifted" + } + } + }, + "inputStorePaymentPremiumGiftCode": { + "name": "inputStorePaymentPremiumGiftCode", + "description": [ + "Used to gift Telegram Premium¹ subscriptions only to some specific subscribers of a channel or to some of our contacts, see here »² for more info on giveaways and gifts." + ], + "links": [ + "https://core.telegram.org/api/premium", + "https://core.telegram.org/api/giveaways" + ], + "fields": { + "amount": { + "name": "amount", + "description": "Total price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + }, + "boost_peer": { + "name": "boost_peer", + "description": "If set, the gifts will be sent on behalf of a channel we are an admin of, which will also assign some boosts¹ to it. Otherwise, the gift will be sent directly from the currently logged in users, and we will gain some extra boost slots². See here »³ for more info on giveaways and gifts.", + "links": [ + "https://core.telegram.org/api/boost", + "https://core.telegram.org/api/boost", + "https://core.telegram.org/api/giveaways" + ] + }, + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "users": { + "name": "users", + "description": "The users that will receive the Telegram Premium¹ subscriptions.", + "links": [ + "https://core.telegram.org/api/premium" + ] + } + } + }, + "inputStorePaymentPremiumGiveaway": { + "name": "inputStorePaymentPremiumGiveaway", + "description": [ + "Used to pay for a giveaway, see here »¹ for more info." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ], + "fields": { + "additional_peers": { + "name": "additional_peers", + "description": "Additional channels that the user must join to participate to the giveaway can be specified here." + }, + "amount": { + "name": "amount", + "description": "Total price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + }, + "boost_peer": { + "name": "boost_peer", + "description": "The channel starting the giveaway, that the user must join to participate, that will receive the giveaway boosts¹; see here »² for more info on giveaways.", + "links": [ + "https://core.telegram.org/api/boost", + "https://core.telegram.org/api/giveaways" + ] + }, + "countries_iso2": { + "name": "countries_iso2", + "description": "The set of users that can participate to the giveaway can be restricted by passing here an explicit whitelist of up to giveaway_countries_max¹ countries, specified as two-letter ISO 3166-1 alpha-2 country codes.", + "links": [ + "https://core.telegram.org/api/config#giveaway-countries-max" + ] + }, + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "only_new_subscribers": { + "name": "only_new_subscribers", + "description": "If set, only new subscribers starting from the giveaway creation date will be able to participate to the giveaway." + }, + "prize_description": { + "name": "prize_description", + "description": "Can contain a textual description of additional giveaway prizes." + }, + "random_id": { + "name": "random_id", + "description": "Random ID to avoid resending the giveaway" + }, + "until_date": { + "name": "until_date", + "description": "The end date of the giveaway, must be at most giveaway_period_max¹ seconds in the future; see here »² for more info on giveaways.", + "links": [ + "https://core.telegram.org/api/config#giveaway-period-max", + "https://core.telegram.org/api/giveaways" + ] + }, + "winners_are_visible": { + "name": "winners_are_visible", + "description": "If set, giveaway winners are public and will be listed in a messageMediaGiveawayResults¹ message that will be automatically sent to the channel once the giveaway ends.", + "links": [ + "https://core.telegram.org/constructor/messageMediaGiveawayResults" + ] + } + } + }, + "inputStorePaymentPremiumSubscription": { + "name": "inputStorePaymentPremiumSubscription", + "description": [ + "Info about a Telegram Premium purchase" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "restore": { + "name": "restore", + "description": "Pass true if this is a restore of a Telegram Premium purchase; only for the App Store" + }, + "upgrade": { + "name": "upgrade", + "description": "Pass true if this is an upgrade from a monthly subscription to a yearly subscription; only for App Store" + } + } + }, + "inputTakeoutFileLocation": { + "name": "inputTakeoutFileLocation", + "description": [ + "Used to download a JSON file that will contain all personal data related to features that do not have a specialized takeout method¹ yet, see here »² for more info on the takeout API." + ], + "links": [ + "https://core.telegram.org/api/takeout", + "https://core.telegram.org/api/takeout" + ] + }, + "inputTheme": { + "name": "inputTheme", + "description": [ + "Theme" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "id": { + "name": "id", + "description": "ID" + } + } + }, + "inputThemeSettings": { + "name": "inputThemeSettings", + "description": [ + "Theme settings" + ], + "fields": { + "accent_color": { + "name": "accent_color", + "description": "Accent color, ARGB format" + }, + "base_theme": { + "name": "base_theme", + "description": "Default theme on which this theme is based" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "message_colors": { + "name": "message_colors", + "description": "The fill to be used as a background for outgoing messages, in RGB24 format. If just one or two equal colors are provided, describes a solid fill of a background. If two different colors are provided, describes the top and bottom colors of a 0-degree gradient.If three or four colors are provided, describes a freeform gradient fill of a background." + }, + "message_colors_animated": { + "name": "message_colors_animated", + "description": "If set, the freeform gradient fill needs to be animated on every sent message" + }, + "outbox_accent_color": { + "name": "outbox_accent_color", + "description": "Accent color of outgoing messages in ARGB format" + }, + "wallpaper": { + "name": "wallpaper", + "description": "inputWallPaper¹ or inputWallPaperSlug² when passing wallpaper files for image³ or pattern⁴ wallpapers, inputWallPaperNoFile⁵ with id=0 otherwise.", + "links": [ + "https://core.telegram.org/constructor/inputWallPaper", + "https://core.telegram.org/constructor/inputWallPaper", + "https://core.telegram.org/api/wallpapers#image-wallpapers", + "https://core.telegram.org/api/wallpapers#pattern-wallpapers", + "https://core.telegram.org/constructor/inputWallPaperNoFile" + ] + }, + "wallpaper_settings": { + "name": "wallpaper_settings", + "description": "Wallpaper¹ settings.", + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + } + } + }, + "inputThemeSlug": { + "name": "inputThemeSlug", + "description": [ + "Theme by theme ID" + ], + "fields": { + "slug": { + "name": "slug", + "description": "Unique theme ID obtained from a theme deep link »¹", + "links": [ + "https://core.telegram.org/api/links#theme-links" + ] + } + } + }, + "inputUser": { + "name": "inputUser", + "description": [ + "Defines a user for further interaction." + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "access_hash value from the user¹ constructor", + "links": [ + "https://core.telegram.org/constructor/user" + ] + }, + "user_id": { + "name": "user_id", + "description": "User identifier" + } + } + }, + "inputUserEmpty": { + "name": "inputUserEmpty", + "description": [ + "Empty constructor, does not define a user." + ] + }, + "inputUserFromMessage": { + "name": "inputUserFromMessage", + "description": [ + "Defines a min¹ user that was seen in a certain message of a certain chat." + ], + "links": [ + "https://core.telegram.org/api/min" + ], + "fields": { + "msg_id": { + "name": "msg_id", + "description": "The message ID" + }, + "peer": { + "name": "peer", + "description": "The chat where the user was seen" + }, + "user_id": { + "name": "user_id", + "description": "The identifier of the user that was seen" + } + } + }, + "inputUserSelf": { + "name": "inputUserSelf", + "description": [ + "Defines the current user." + ] + }, + "inputWallPaper": { + "name": "inputWallPaper", + "description": [ + "Wallpaper¹" + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "id": { + "name": "id", + "description": "Wallpaper¹ ID", + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + } + } + }, + "inputWallPaperNoFile": { + "name": "inputWallPaperNoFile", + "description": [ + "Wallpaper¹ with no file access hash, used for example when deleting (unsave=true) wallpapers using account.saveWallPaper², specifying just the wallpaper ID." + ], + "links": [ + "https://core.telegram.org/api/wallpapers", + "https://core.telegram.org/method/account.saveWallPaper" + ], + "fields": { + "id": { + "name": "id", + "description": "Wallpaper ID" + } + } + }, + "inputWallPaperSlug": { + "name": "inputWallPaperSlug", + "description": [ + "Wallpaper¹ by slug (a unique ID, obtained from a wallpaper link »²)" + ], + "links": [ + "https://core.telegram.org/api/wallpapers", + "https://core.telegram.org/api/links#wallpaper-links" + ], + "fields": { + "slug": { + "name": "slug", + "description": "Unique wallpaper ID" + } + } + }, + "inputWebDocument": { + "name": "inputWebDocument", + "description": [ + "The document" + ], + "fields": { + "attributes": { + "name": "attributes", + "description": "Attributes for media types" + }, + "mime_type": { + "name": "mime_type", + "description": "Mime type" + }, + "size": { + "name": "size", + "description": "Remote file size" + }, + "url": { + "name": "url", + "description": "Remote document URL to be downloaded using the appropriate method¹", + "links": [ + "https://core.telegram.org/api/files" + ] + } + } + }, + "inputWebFileAudioAlbumThumbLocation": { + "name": "inputWebFileAudioAlbumThumbLocation", + "description": [ + "Used to download an album cover for any music file using upload.getWebFile¹, see the webfile docs for more info »²." + ], + "links": [ + "https://core.telegram.org/method/upload.getWebFile", + "https://core.telegram.org/api/files#downloading-webfiles" + ], + "fields": { + "document": { + "name": "document", + "description": "The audio file in question: must NOT be provided in secret chats, provide the title and performer fields instead." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "performer": { + "name": "performer", + "description": "Song performer: should only be used in secret chats, in normal chats provide document instead, as it has more lax rate limits." + }, + "small": { + "name": "small", + "description": "Used to return a thumbnail with 100x100 resolution (instead of the default 600x600)" + }, + "title": { + "name": "title", + "description": "Song title: should only be used in secret chats, in normal chats provide document instead, as it has more lax rate limits." + } + } + }, + "inputWebFileGeoPointLocation": { + "name": "inputWebFileGeoPointLocation", + "description": [ + "Used to download a server-generated image with the map preview from a geoPoint¹, see the webfile docs for more info »²." + ], + "links": [ + "https://core.telegram.org/constructor/geoPoint", + "https://core.telegram.org/api/files#downloading-webfiles" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash of the geoPoint¹", + "links": [ + "https://core.telegram.org/constructor/geoPoint" + ] + }, + "geo_point": { + "name": "geo_point", + "description": "Generated from the lat, long and accuracy_radius parameters of the geoPoint¹", + "links": [ + "https://core.telegram.org/constructor/geoPoint" + ] + }, + "h": { + "name": "h", + "description": "Map height in pixels before applying scale; 16-1024" + }, + "scale": { + "name": "scale", + "description": "Map scale; 1-3" + }, + "w": { + "name": "w", + "description": "Map width in pixels before applying scale; 16-1024" + }, + "zoom": { + "name": "zoom", + "description": "Map zoom level; 13-20" + } + } + }, + "inputWebFileLocation": { + "name": "inputWebFileLocation", + "description": [ + "Location of a remote HTTP(s) file" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "url": { + "name": "url", + "description": "HTTP URL of file" + } + } + }, + "invoice": { + "name": "invoice", + "description": [ + "Invoice" + ], + "fields": { + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "email_requested": { + "name": "email_requested", + "description": "Set this flag if you require the user's email address to complete the order" + }, + "email_to_provider": { + "name": "email_to_provider", + "description": "Set this flag if user's email address should be sent to provider" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "flexible": { + "name": "flexible", + "description": "Set this flag if the final price depends on the shipping method" + }, + "max_tip_amount": { + "name": "max_tip_amount", + "description": "The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + }, + "name_requested": { + "name": "name_requested", + "description": "Set this flag if you require the user's full name to complete the order" + }, + "phone_requested": { + "name": "phone_requested", + "description": "Set this flag if you require the user's phone number to complete the order" + }, + "phone_to_provider": { + "name": "phone_to_provider", + "description": "Set this flag if user's phone number should be sent to provider" + }, + "prices": { + "name": "prices", + "description": "Price breakdown, a list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.)" + }, + "recurring": { + "name": "recurring", + "description": "Whether this is a recurring payment" + }, + "shipping_address_requested": { + "name": "shipping_address_requested", + "description": "Set this flag if you require the user's shipping address to complete the order" + }, + "suggested_tip_amounts": { + "name": "suggested_tip_amounts", + "description": "A vector of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount." + }, + "terms_url": { + "name": "terms_url", + "description": "Terms of service URL" + }, + "test": { + "name": "test", + "description": "Test invoice" + } + } + }, + "jsonArray": { + "name": "jsonArray", + "description": [ + "JSON array" + ], + "fields": { + "value": { + "name": "value", + "description": "JSON values" + } + } + }, + "jsonBool": { + "name": "jsonBool", + "description": [ + "JSON boolean value" + ], + "fields": { + "value": { + "name": "value", + "description": "Value" + } + } + }, + "jsonNull": { + "name": "jsonNull", + "description": [ + "null JSON value" + ] + }, + "jsonNumber": { + "name": "jsonNumber", + "description": [ + "JSON numeric value" + ], + "fields": { + "value": { + "name": "value", + "description": "Value" + } + } + }, + "jsonObject": { + "name": "jsonObject", + "description": [ + "JSON object value" + ], + "fields": { + "value": { + "name": "value", + "description": "Values" + } + } + }, + "jsonObjectValue": { + "name": "jsonObjectValue", + "description": [ + "JSON key: value pair" + ], + "fields": { + "key": { + "name": "key", + "description": "Key" + }, + "value": { + "name": "value", + "description": "Value" + } + } + }, + "jsonString": { + "name": "jsonString", + "description": [ + "JSON string" + ], + "fields": { + "value": { + "name": "value", + "description": "Value" + } + } + }, + "keyboardButton": { + "name": "keyboardButton", + "description": [ + "Bot keyboard button" + ], + "fields": { + "text": { + "name": "text", + "description": "Button text" + } + } + }, + "keyboardButtonBuy": { + "name": "keyboardButtonBuy", + "description": [ + "Button to buy a product" + ], + "fields": { + "text": { + "name": "text", + "description": "Button text" + } + } + }, + "keyboardButtonCallback": { + "name": "keyboardButtonCallback", + "description": [ + "Callback button" + ], + "fields": { + "data": { + "name": "data", + "description": "Callback data" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "requires_password": { + "name": "requires_password", + "description": "Whether the user should verify his identity by entering his 2FA SRP parameters¹ to the messages.getBotCallbackAnswer² method. NOTE: telegram and the bot WILL NOT have access to the plaintext password, thanks to SRP³. This button is mainly used by the official @botfather⁴ bot, for verifying the user's identity before transferring ownership of a bot to another user.", + "links": [ + "https://core.telegram.org/api/srp", + "https://core.telegram.org/method/messages.getBotCallbackAnswer", + "https://core.telegram.org/api/srp", + "https://t.me/botfather" + ] + }, + "text": { + "name": "text", + "description": "Button text" + } + } + }, + "keyboardButtonGame": { + "name": "keyboardButtonGame", + "description": [ + "Button to start a game" + ], + "fields": { + "text": { + "name": "text", + "description": "Button text" + } + } + }, + "keyboardButtonRequestGeoLocation": { + "name": "keyboardButtonRequestGeoLocation", + "description": [ + "Button to request a user's geolocation" + ], + "fields": { + "text": { + "name": "text", + "description": "Button text" + } + } + }, + "keyboardButtonRequestPeer": { + "name": "keyboardButtonRequestPeer", + "description": [ + "Prompts the user to select and share one or more peers with the bot using messages.sendBotRequestedPeer¹" + ], + "links": [ + "https://core.telegram.org/method/messages.sendBotRequestedPeer" + ], + "fields": { + "button_id": { + "name": "button_id", + "description": "Button ID, to be passed to messages.sendBotRequestedPeer¹.", + "links": [ + "https://core.telegram.org/method/messages.sendBotRequestedPeer" + ] + }, + "max_quantity": { + "name": "max_quantity", + "description": "Maximum number of peers that can be chosne." + }, + "peer_type": { + "name": "peer_type", + "description": "Filtering criteria to use for the peer selection list shown to the user. The list should display all existing peers of the specified type, and should also offer an option for the user to create and immediately use one or more (up to max_quantity) peers of the specified type, if needed." + }, + "text": { + "name": "text", + "description": "Button text" + } + } + }, + "keyboardButtonRequestPhone": { + "name": "keyboardButtonRequestPhone", + "description": [ + "Button to request a user's phone number" + ], + "fields": { + "text": { + "name": "text", + "description": "Button text" + } + } + }, + "keyboardButtonRequestPoll": { + "name": "keyboardButtonRequestPoll", + "description": [ + "A button that allows the user to create and send a poll when pressed; available only in private" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "quiz": { + "name": "quiz", + "description": "If set, only quiz polls can be sent" + }, + "text": { + "name": "text", + "description": "Button text" + } + } + }, + "keyboardButtonRow": { + "name": "keyboardButtonRow", + "description": [ + "Inline keyboard row" + ], + "fields": { + "buttons": { + "name": "buttons", + "description": "Bot or inline keyboard buttons" + } + } + }, + "keyboardButtonSimpleWebView": { + "name": "keyboardButtonSimpleWebView", + "description": [ + "Button to open a bot mini app¹ using messages.requestSimpleWebView², without sending user information to the web app.", + "Can only be sent or received as part of a reply keyboard, use keyboardButtonWebView¹ for inline keyboards." + ], + "links": [ + "https://core.telegram.org/api/bots/webapps", + "https://core.telegram.org/method/messages.requestSimpleWebView", + "https://core.telegram.org/constructor/keyboardButtonWebView" + ], + "fields": { + "text": { + "name": "text", + "description": "Button text" + }, + "url": { + "name": "url", + "description": "Web app URL¹", + "links": [ + "https://core.telegram.org/api/bots/webapps" + ] + } + } + }, + "keyboardButtonSwitchInline": { + "name": "keyboardButtonSwitchInline", + "description": [ + "Button to force a user to switch to inline mode: pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field." + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer_types": { + "name": "peer_types", + "description": "Filter to use when selecting chats." + }, + "query": { + "name": "query", + "description": "The inline query to use" + }, + "same_peer": { + "name": "same_peer", + "description": "If set, pressing the button will insert the bot's username and the specified inline query in the current chat's input field." + }, + "text": { + "name": "text", + "description": "Button label" + } + } + }, + "keyboardButtonUrl": { + "name": "keyboardButtonUrl", + "description": [ + "URL button" + ], + "fields": { + "text": { + "name": "text", + "description": "Button label" + }, + "url": { + "name": "url", + "description": "URL" + } + } + }, + "keyboardButtonUrlAuth": { + "name": "keyboardButtonUrlAuth", + "description": [ + "Button to request a user to authorize via URL using Seamless Telegram Login¹. When the user clicks on such a button, messages.requestUrlAuth² should be called, providing the button_id and the ID of the container message. The returned urlAuthResultRequest³ object will contain more details about the authorization request (request_write_access if the bot would like to send messages to the user along with the username of the bot which will be used for user authorization). Finally, the user can choose to call messages.acceptUrlAuth⁴ to get a urlAuthResultAccepted⁵ with the URL to open instead of the url of this constructor, or a urlAuthResultDefault⁶, in which case the url of this constructor must be opened, instead. If the user refuses the authorization request but still wants to open the link, the url of this constructor must be used." + ], + "links": [ + "https://telegram.org/blog/privacy-discussions-web-bots#meet-seamless-web-bots", + "https://core.telegram.org/method/messages.requestUrlAuth", + "https://core.telegram.org/constructor/urlAuthResultRequest", + "https://core.telegram.org/method/messages.acceptUrlAuth", + "https://core.telegram.org/constructor/urlAuthResultAccepted", + "https://core.telegram.org/constructor/urlAuthResultDefault" + ], + "fields": { + "button_id": { + "name": "button_id", + "description": "ID of the button to pass to messages.requestUrlAuth¹", + "links": [ + "https://core.telegram.org/method/messages.requestUrlAuth" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "fwd_text": { + "name": "fwd_text", + "description": "New text of the button in forwarded messages." + }, + "text": { + "name": "text", + "description": "Button label" + }, + "url": { + "name": "url", + "description": "An HTTP URL to be opened with user authorization data added to the query string when the button is pressed. If the user refuses to provide authorization data, the original URL without information about the user will be opened. The data added is the same as described in Receiving authorization data¹.NOTE: Services must always check the hash of the received data to verify the authentication and the integrity of the data as described in Checking authorization².", + "links": [ + "https://core.telegram.org/widgets/login#receiving-authorization-data", + "https://core.telegram.org/widgets/login#checking-authorization" + ] + } + } + }, + "keyboardButtonUserProfile": { + "name": "keyboardButtonUserProfile", + "description": [ + "Button that links directly to a user profile" + ], + "fields": { + "text": { + "name": "text", + "description": "Button text" + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + } + }, + "keyboardButtonWebView": { + "name": "keyboardButtonWebView", + "description": [ + "Button to open a bot mini app¹ using messages.requestWebView², sending over user information after user confirmation.", + "Can only be sent or received as part of an inline keyboard, use keyboardButtonSimpleWebView¹ for reply keyboards." + ], + "links": [ + "https://core.telegram.org/api/bots/webapps", + "https://core.telegram.org/method/messages.requestWebView", + "https://core.telegram.org/constructor/keyboardButtonSimpleWebView" + ], + "fields": { + "text": { + "name": "text", + "description": "Button text" + }, + "url": { + "name": "url", + "description": "Web app url¹", + "links": [ + "https://core.telegram.org/api/bots/webapps" + ] + } + } + }, + "labeledPrice": { + "name": "labeledPrice", + "description": [ + "This object represents a portion of the price for goods or services." + ], + "fields": { + "amount": { + "name": "amount", + "description": "Price of the product in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + }, + "label": { + "name": "label", + "description": "Portion label" + } + } + }, + "langPackDifference": { + "name": "langPackDifference", + "description": [ + "Changes to the app's localization pack" + ], + "fields": { + "from_version": { + "name": "from_version", + "description": "Previous version number" + }, + "lang_code": { + "name": "lang_code", + "description": "Language code" + }, + "strings": { + "name": "strings", + "description": "Localized strings" + }, + "version": { + "name": "version", + "description": "New version number" + } + } + }, + "langPackLanguage": { + "name": "langPackLanguage", + "description": [ + "Identifies a localization pack" + ], + "fields": { + "base_lang_code": { + "name": "base_lang_code", + "description": "Identifier of a base language pack; may be empty. If a string is missed in the language pack, then it should be fetched from base language pack. Unsupported in custom language packs" + }, + "beta": { + "name": "beta", + "description": "Is this a beta localization pack?" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "lang_code": { + "name": "lang_code", + "description": "Language code (pack identifier)" + }, + "name": { + "name": "name", + "description": "Language name" + }, + "native_name": { + "name": "native_name", + "description": "Language name in the language itself" + }, + "official": { + "name": "official", + "description": "Whether the language pack is official" + }, + "plural_code": { + "name": "plural_code", + "description": "A language code to be used to apply plural forms. See https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html¹ for more info", + "links": [ + "https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html" + ] + }, + "rtl": { + "name": "rtl", + "description": "Is this a localization pack for an RTL language" + }, + "strings_count": { + "name": "strings_count", + "description": "Total number of non-deleted strings from the language pack" + }, + "translated_count": { + "name": "translated_count", + "description": "Total number of translated strings from the language pack" + }, + "translations_url": { + "name": "translations_url", + "description": "Link to language translation interface; empty for custom local language packs" + } + } + }, + "langPackString": { + "name": "langPackString", + "description": [ + "Translated localization string" + ], + "fields": { + "key": { + "name": "key", + "description": "Language key" + }, + "value": { + "name": "value", + "description": "Value" + } + } + }, + "langPackStringDeleted": { + "name": "langPackStringDeleted", + "description": [ + "Deleted localization string" + ], + "fields": { + "key": { + "name": "key", + "description": "Localization key" + } + } + }, + "langPackStringPluralized": { + "name": "langPackStringPluralized", + "description": [ + "A language pack string which has different forms based on the number of some object it mentions. See https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html¹ for more info" + ], + "links": [ + "https://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html" + ], + "fields": { + "few_value": { + "name": "few_value", + "description": "Value for a few objects" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "key": { + "name": "key", + "description": "Localization key" + }, + "many_value": { + "name": "many_value", + "description": "Value for many objects" + }, + "one_value": { + "name": "one_value", + "description": "Value for one object" + }, + "other_value": { + "name": "other_value", + "description": "Default value" + }, + "two_value": { + "name": "two_value", + "description": "Value for two objects" + }, + "zero_value": { + "name": "zero_value", + "description": "Value for zero objects" + } + } + }, + "maskCoords": { + "name": "maskCoords", + "description": [ + "Position on a photo where a mask should be placed when attaching stickers to media »¹", + "The n position indicates where the mask should be placed:" + ], + "links": [ + "https://core.telegram.org/api/stickers#attached-stickers" + ], + "fields": { + "n": { + "name": "n", + "description": "Part of the face, relative to which the mask should be placed" + }, + "x": { + "name": "x", + "description": "Shift by X-axis measured in widths of the mask scaled to the face size, from left to right. (For example, -1.0 will place the mask just to the left of the default mask position)" + }, + "y": { + "name": "y", + "description": "Shift by Y-axis measured in widths of the mask scaled to the face size, from left to right. (For example, -1.0 will place the mask just below the default mask position)" + }, + "zoom": { + "name": "zoom", + "description": "Mask scaling coefficient. (For example, 2.0 means a doubled size)" + } + } + }, + "mediaAreaChannelPost": { + "name": "mediaAreaChannelPost", + "description": [ + "Represents a channel post." + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "The channel that posted the message" + }, + "coordinates": { + "name": "coordinates", + "description": "The size and location of the media area corresponding to the location sticker on top of the story media." + }, + "msg_id": { + "name": "msg_id", + "description": "ID of the channel message" + } + } + }, + "mediaAreaCoordinates": { + "name": "mediaAreaCoordinates", + "description": [ + "Coordinates and size of a clicable rectangular area on top of a story." + ], + "fields": { + "h": { + "name": "h", + "description": "The height of the rectangle, as a percentage of the media height (0-100)." + }, + "rotation": { + "name": "rotation", + "description": "Clockwise rotation angle of the rectangle, in degrees (0-360)." + }, + "w": { + "name": "w", + "description": "The width of the rectangle, as a percentage of the media width (0-100)." + }, + "x": { + "name": "x", + "description": "The abscissa of the rectangle's center, as a percentage of the media width (0-100)." + }, + "y": { + "name": "y", + "description": "The ordinate of the rectangle's center, as a percentage of the media height (0-100)." + } + } + }, + "mediaAreaGeoPoint": { + "name": "mediaAreaGeoPoint", + "description": [ + "Represents a geolocation tag attached to a story¹." + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "coordinates": { + "name": "coordinates", + "description": "The size and position of the media area corresponding to the location sticker on top of the story media." + }, + "geo": { + "name": "geo", + "description": "Coordinates of the geolocation tag." + } + } + }, + "mediaAreaSuggestedReaction": { + "name": "mediaAreaSuggestedReaction", + "description": [ + "Represents a reaction bubble." + ], + "fields": { + "coordinates": { + "name": "coordinates", + "description": "The coordinates of the media area corresponding to the reaction button." + }, + "dark": { + "name": "dark", + "description": "Whether the reaction bubble has a dark background." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "flipped": { + "name": "flipped", + "description": "Whether the reaction bubble is mirrored (see here »¹ for more info).", + "links": [ + "https://core.telegram.org/api/stories#reactions" + ] + }, + "reaction": { + "name": "reaction", + "description": "The reaction that should be sent when this area is clicked." + } + } + }, + "mediaAreaVenue": { + "name": "mediaAreaVenue", + "description": [ + "Represents a location tag attached to a story¹, with additional venue information." + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "address": { + "name": "address", + "description": "Address" + }, + "coordinates": { + "name": "coordinates", + "description": "The size and location of the media area corresponding to the location sticker on top of the story media." + }, + "geo": { + "name": "geo", + "description": "Coordinates of the venue" + }, + "provider": { + "name": "provider", + "description": "Venue provider: currently only \"foursquare\" needs to be supported." + }, + "title": { + "name": "title", + "description": "Venue name" + }, + "venue_id": { + "name": "venue_id", + "description": "Venue ID in the provider's database" + }, + "venue_type": { + "name": "venue_type", + "description": "Venue type in the provider's database" + } + } + }, + "message": { + "name": "message", + "description": [ + "A message" + ], + "fields": { + "date": { + "name": "date", + "description": "Date of the message" + }, + "edit_date": { + "name": "edit_date", + "description": "Last edit date of this message" + }, + "edit_hide": { + "name": "edit_hide", + "description": "Whether the message should be shown as not modified to the user, even if an edit date is present" + }, + "entities": { + "name": "entities", + "description": "Message entities¹ for styled text", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "forwards": { + "name": "forwards", + "description": "Forward counter" + }, + "from_id": { + "name": "from_id", + "description": "ID of the sender of the message" + }, + "from_scheduled": { + "name": "from_scheduled", + "description": "Whether this is a scheduled message¹", + "links": [ + "https://core.telegram.org/api/scheduled-messages" + ] + }, + "fwd_from": { + "name": "fwd_from", + "description": "Info about forwarded messages" + }, + "grouped_id": { + "name": "grouped_id", + "description": "Multiple media messages sent using messages.sendMultiMedia¹ with the same grouped ID indicate an album or media group²", + "links": [ + "https://core.telegram.org/method/messages.sendMultiMedia", + "https://core.telegram.org/api/files#albums-grouped-media" + ] + }, + "id": { + "name": "id", + "description": "ID of the message" + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "legacy": { + "name": "legacy", + "description": "This is a legacy message: it has to be refetched with the new layer" + }, + "media": { + "name": "media", + "description": "Media attachment" + }, + "media_unread": { + "name": "media_unread", + "description": "Whether there are unread media attachments in this message" + }, + "mentioned": { + "name": "mentioned", + "description": "Whether we were mentioned¹ in this message", + "links": [ + "https://core.telegram.org/api/mentions" + ] + }, + "message": { + "name": "message", + "description": "The message" + }, + "noforwards": { + "name": "noforwards", + "description": "Whether this message is protected¹ and thus cannot be forwarded; clients should also prevent users from saving attached media (i.e. videos should only be streamed, photos should be kept in RAM, et cetera).", + "links": [ + "https://telegram.org/blog/protected-content-delete-by-date-and-more" + ] + }, + "out": { + "name": "out", + "description": "Is this an outgoing message" + }, + "peer_id": { + "name": "peer_id", + "description": "Peer ID, the chat where this message was sent" + }, + "pinned": { + "name": "pinned", + "description": "Whether this message is pinned¹", + "links": [ + "https://core.telegram.org/api/pin" + ] + }, + "post": { + "name": "post", + "description": "Whether this is a channel post" + }, + "post_author": { + "name": "post_author", + "description": "Name of the author of this message for channel posts (with signatures enabled)" + }, + "reactions": { + "name": "reactions", + "description": "Reactions to this message" + }, + "replies": { + "name": "replies", + "description": "Info about post comments (for channels) or message replies (for groups)¹", + "links": [ + "https://core.telegram.org/api/threads" + ] + }, + "reply_markup": { + "name": "reply_markup", + "description": "Reply markup (bot/inline keyboards)" + }, + "reply_to": { + "name": "reply_to", + "description": "Reply information" + }, + "restriction_reason": { + "name": "restriction_reason", + "description": "Contains the reason why access to this message must be restricted." + }, + "saved_peer_id": { + "name": "saved_peer_id", + "description": " " + }, + "silent": { + "name": "silent", + "description": "Whether this is a silent message (no notification triggered)" + }, + "ttl_period": { + "name": "ttl_period", + "description": "Time To Live of the message, once message.date+message.ttl_period === time(), the message will be deleted on the server, and must be deleted locally as well." + }, + "via_bot_id": { + "name": "via_bot_id", + "description": "ID of the inline bot that generated the message" + }, + "views": { + "name": "views", + "description": "View count for channel posts" + } + } + }, + "messageActionBotAllowed": { + "name": "messageActionBotAllowed", + "description": [ + "We have given the bot permission to send us direct messages.", + "The optional fields specify how did we authorize the bot to send us messages." + ], + "fields": { + "app": { + "name": "app", + "description": "We have authorized the bot to send us messages by opening the specified bot mini app¹.", + "links": [ + "https://core.telegram.org/api/bots/webapps" + ] + }, + "attach_menu": { + "name": "attach_menu", + "description": "We have authorized the bot to send us messages by installing the bot's attachment menu¹.", + "links": [ + "https://core.telegram.org/api/bots/attach" + ] + }, + "domain": { + "name": "domain", + "description": "We have authorized the bot to send us messages by logging into a website via Telegram Login »¹; this field contains the domain name of the website on which the user has logged in.", + "links": [ + "https://core.telegram.org/widgets/login" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "from_request": { + "name": "from_request", + "description": "We have allowed the bot to send us messages using bots.allowSendMessage »¹.", + "links": [ + "https://core.telegram.org/method/bots.allowSendMessage" + ] + } + } + }, + "messageActionChannelCreate": { + "name": "messageActionChannelCreate", + "description": [ + "The channel was created" + ], + "fields": { + "title": { + "name": "title", + "description": "Original channel/supergroup title" + } + } + }, + "messageActionChannelMigrateFrom": { + "name": "messageActionChannelMigrateFrom", + "description": [ + "Indicates the channel was migrated¹ from the specified chat" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "chat_id": { + "name": "chat_id", + "description": "The old chat ID" + }, + "title": { + "name": "title", + "description": "The old chat title" + } + } + }, + "messageActionChatAddUser": { + "name": "messageActionChatAddUser", + "description": [ + "New member in the group" + ], + "fields": { + "users": { + "name": "users", + "description": "Users that were invited to the chat" + } + } + }, + "messageActionChatCreate": { + "name": "messageActionChatCreate", + "description": [ + "Group created" + ], + "fields": { + "title": { + "name": "title", + "description": "Group name" + }, + "users": { + "name": "users", + "description": "List of group members" + } + } + }, + "messageActionChatDeletePhoto": { + "name": "messageActionChatDeletePhoto", + "description": [ + "Group profile photo removed." + ] + }, + "messageActionChatDeleteUser": { + "name": "messageActionChatDeleteUser", + "description": [ + "User left the group." + ], + "fields": { + "user_id": { + "name": "user_id", + "description": "Leaving user ID" + } + } + }, + "messageActionChatEditPhoto": { + "name": "messageActionChatEditPhoto", + "description": [ + "Group profile changed" + ], + "fields": { + "photo": { + "name": "photo", + "description": "New group profile photo" + } + } + }, + "messageActionChatEditTitle": { + "name": "messageActionChatEditTitle", + "description": [ + "Group name changed." + ], + "fields": { + "title": { + "name": "title", + "description": "New group name" + } + } + }, + "messageActionChatJoinedByLink": { + "name": "messageActionChatJoinedByLink", + "description": [ + "A user joined the chat via an invite link" + ], + "fields": { + "inviter_id": { + "name": "inviter_id", + "description": "ID of the user that created the invite link" + } + } + }, + "messageActionChatJoinedByRequest": { + "name": "messageActionChatJoinedByRequest", + "description": [ + "A user was accepted into the group by an admin" + ] + }, + "messageActionChatMigrateTo": { + "name": "messageActionChatMigrateTo", + "description": [ + "Indicates the chat was migrated¹ to the specified supergroup" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "The supergroup it was migrated to" + } + } + }, + "messageActionContactSignUp": { + "name": "messageActionContactSignUp", + "description": [ + "A contact just signed up to telegram" + ] + }, + "messageActionCustomAction": { + "name": "messageActionCustomAction", + "description": [ + "Custom action (most likely not supported by the current layer, an upgrade might be needed)" + ], + "fields": { + "message": { + "name": "message", + "description": "Action message" + } + } + }, + "messageActionEmpty": { + "name": "messageActionEmpty", + "description": [ + "Empty constructor." + ] + }, + "messageActionGameScore": { + "name": "messageActionGameScore", + "description": [ + "Someone scored in a game" + ], + "fields": { + "game_id": { + "name": "game_id", + "description": "Game ID" + }, + "score": { + "name": "score", + "description": "Score" + } + } + }, + "messageActionGeoProximityReached": { + "name": "messageActionGeoProximityReached", + "description": [ + "A user of the chat is now in proximity of another user" + ], + "fields": { + "distance": { + "name": "distance", + "description": "Distance, in meters (0-100000)" + }, + "from_id": { + "name": "from_id", + "description": "The user or chat that is now in proximity of to_id" + }, + "to_id": { + "name": "to_id", + "description": "The user or chat that subscribed to live geolocation proximity alerts¹", + "links": [ + "https://core.telegram.org/api/live-location#proximity-alert" + ] + } + } + }, + "messageActionGiftCode": { + "name": "messageActionGiftCode", + "description": [ + "Contains a Telegram Premium giftcode link¹." + ], + "links": [ + "https://core.telegram.org/api/links#premium-giftcode-links" + ], + "fields": { + "amount": { + "name": "amount", + "description": "Total price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + }, + "boost_peer": { + "name": "boost_peer", + "description": "Identifier of the channel that created the gift code either directly or through a giveaway¹: if we import this giftcode link, we will also automatically boost² this channel.", + "links": [ + "https://core.telegram.org/api/giveaways", + "https://core.telegram.org/api/boost" + ] + }, + "crypto_amount": { + "name": "crypto_amount", + "description": "If crypto_currency is set, contains the paid amount, in the smallest units of the cryptocurrency." + }, + "crypto_currency": { + "name": "crypto_currency", + "description": "If set, the gift was made using the specified cryptocurrency." + }, + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "months": { + "name": "months", + "description": "Duration in months of the gifted Telegram Premium subscription¹.", + "links": [ + "https://core.telegram.org/api/premium" + ] + }, + "slug": { + "name": "slug", + "description": "Slug of the Telegram Premium giftcode link¹", + "links": [ + "https://core.telegram.org/api/links#premium-giftcode-links" + ] + }, + "unclaimed": { + "name": "unclaimed", + "description": "If set, the link was not redeemed¹ yet.", + "links": [ + "https://core.telegram.org/api/links#premium-giftcode-links" + ] + }, + "via_giveaway": { + "name": "via_giveaway", + "description": "If set, this gift code was received from a giveaway »¹ started by a channel we're subscribed to.", + "links": [ + "https://core.telegram.org/api/giveaways" + ] + } + } + }, + "messageActionGiftPremium": { + "name": "messageActionGiftPremium", + "description": [ + "Info about a gifted Telegram Premium subscription" + ], + "fields": { + "amount": { + "name": "amount", + "description": "Price of the gift in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + }, + "crypto_amount": { + "name": "crypto_amount", + "description": "If the gift was bought using a cryptocurrency, price of the gift in the smallest units of a cryptocurrency." + }, + "crypto_currency": { + "name": "crypto_currency", + "description": "If the gift was bought using a cryptocurrency, the cryptocurrency name." + }, + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "months": { + "name": "months", + "description": "Duration of the gifted Telegram Premium subscription" + } + } + }, + "messageActionGiveawayLaunch": { + "name": "messageActionGiveawayLaunch", + "description": [ + "A giveaway¹ was started." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ] + }, + "messageActionGiveawayResults": { + "name": "messageActionGiveawayResults", + "description": [ + "A giveaway¹ has ended." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ], + "fields": { + "unclaimed_count": { + "name": "unclaimed_count", + "description": "Number of undistributed prizes" + }, + "winners_count": { + "name": "winners_count", + "description": "Number of winners in the giveaway" + } + } + }, + "messageActionGroupCall": { + "name": "messageActionGroupCall", + "description": [ + "The group call has ended" + ], + "fields": { + "call": { + "name": "call", + "description": "Group call" + }, + "duration": { + "name": "duration", + "description": "Group call duration" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + } + } + }, + "messageActionGroupCallScheduled": { + "name": "messageActionGroupCallScheduled", + "description": [ + "A group call was scheduled" + ], + "fields": { + "call": { + "name": "call", + "description": "The group call" + }, + "schedule_date": { + "name": "schedule_date", + "description": "When is this group call scheduled to start" + } + } + }, + "messageActionHistoryClear": { + "name": "messageActionHistoryClear", + "description": [ + "Chat history was cleared" + ] + }, + "messageActionInviteToGroupCall": { + "name": "messageActionInviteToGroupCall", + "description": [ + "A set of users was invited to the group call" + ], + "fields": { + "call": { + "name": "call", + "description": "The group call" + }, + "users": { + "name": "users", + "description": "The invited users" + } + } + }, + "messageActionPaymentSent": { + "name": "messageActionPaymentSent", + "description": [ + "A payment was sent" + ], + "fields": { + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invoice_slug": { + "name": "invoice_slug", + "description": "An invoice slug taken from an invoice deep link¹ or from the premium_invoice_slug app config parameter »²", + "links": [ + "https://core.telegram.org/api/links#invoice-links", + "https://core.telegram.org/api/config#premium-invoice-slug" + ] + }, + "recurring_init": { + "name": "recurring_init", + "description": "Whether this is the first payment of a recurring payment we just subscribed to" + }, + "recurring_used": { + "name": "recurring_used", + "description": "Whether this payment is part of a recurring payment" + }, + "total_amount": { + "name": "total_amount", + "description": "Price of the product in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + } + } + }, + "messageActionPaymentSentMe": { + "name": "messageActionPaymentSentMe", + "description": [ + "A user just sent a payment to me (a bot)" + ], + "fields": { + "charge": { + "name": "charge", + "description": "Provider payment identifier" + }, + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "info": { + "name": "info", + "description": "Order info provided by the user" + }, + "payload": { + "name": "payload", + "description": "Bot specified invoice payload" + }, + "recurring_init": { + "name": "recurring_init", + "description": "Whether this is the first payment of a recurring payment we just subscribed to" + }, + "recurring_used": { + "name": "recurring_used", + "description": "Whether this payment is part of a recurring payment" + }, + "shipping_option_id": { + "name": "shipping_option_id", + "description": "Identifier of the shipping option chosen by the user" + }, + "total_amount": { + "name": "total_amount", + "description": "Price of the product in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + } + } + }, + "messageActionPhoneCall": { + "name": "messageActionPhoneCall", + "description": [ + "A phone call" + ], + "fields": { + "call_id": { + "name": "call_id", + "description": "Call ID" + }, + "duration": { + "name": "duration", + "description": "Duration of the call in seconds" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "reason": { + "name": "reason", + "description": "If the call has ended, the reason why it ended" + }, + "video": { + "name": "video", + "description": "Is this a video call?" + } + } + }, + "messageActionPinMessage": { + "name": "messageActionPinMessage", + "description": [ + "A message was pinned" + ] + }, + "messageActionRequestedPeer": { + "name": "messageActionRequestedPeer", + "description": [ + "Contains info about one or more peers that the user shared with the bot after clicking on a keyboardButtonRequestPeer¹ button." + ], + "links": [ + "https://core.telegram.org/constructor/keyboardButtonRequestPeer" + ], + "fields": { + "button_id": { + "name": "button_id", + "description": "button_id contained in the keyboardButtonRequestPeer¹", + "links": [ + "https://core.telegram.org/constructor/keyboardButtonRequestPeer" + ] + }, + "peers": { + "name": "peers", + "description": "The shared peers" + } + } + }, + "messageActionScreenshotTaken": { + "name": "messageActionScreenshotTaken", + "description": [ + "A screenshot of the chat was taken" + ] + }, + "messageActionSecureValuesSent": { + "name": "messageActionSecureValuesSent", + "description": [ + "Request for secure telegram passport¹ values was sent" + ], + "links": [ + "https://core.telegram.org/passport" + ], + "fields": { + "types": { + "name": "types", + "description": "Secure value types" + } + } + }, + "messageActionSecureValuesSentMe": { + "name": "messageActionSecureValuesSentMe", + "description": [ + "Secure telegram passport¹ values were received" + ], + "links": [ + "https://core.telegram.org/passport" + ], + "fields": { + "credentials": { + "name": "credentials", + "description": "Encrypted credentials required to decrypt the data" + }, + "values": { + "name": "values", + "description": "Vector with information about documents and other Telegram Passport elements that were shared with the bot" + } + } + }, + "messageActionSetChatTheme": { + "name": "messageActionSetChatTheme", + "description": [ + "The chat theme was changed" + ], + "fields": { + "emoticon": { + "name": "emoticon", + "description": "The emoji that identifies a chat theme" + } + } + }, + "messageActionSetChatWallPaper": { + "name": "messageActionSetChatWallPaper", + "description": [ + "The wallpaper »¹ of the current chat was changed." + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "for_both": { + "name": "for_both", + "description": "If set, indicates the wallpaper was forcefully applied for both sides, without explicit confirmation from the other side. If the message is incoming, and we did not like the new wallpaper the other user has chosen for us, we can re-set our previous wallpaper just on our side, by invoking messages.setChatWallPaper¹, providing only the revert flag (and obviously the peer parameter).", + "links": [ + "https://core.telegram.org/method/messages.setChatWallPaper" + ] + }, + "same": { + "name": "same", + "description": "If set, indicates the user applied a wallpaper »¹ previously sent by the other user in a messageActionSetChatWallPaper² message.", + "links": [ + "https://core.telegram.org/api/wallpapers", + "https://core.telegram.org/constructor/messageActionSetChatWallPaper" + ] + }, + "wallpaper": { + "name": "wallpaper", + "description": "New wallpaper¹", + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + } + } + }, + "messageActionSetMessagesTTL": { + "name": "messageActionSetMessagesTTL", + "description": [ + "The Time-To-Live of messages in this chat was changed." + ], + "fields": { + "auto_setting_from": { + "name": "auto_setting_from", + "description": "If set, the chat TTL setting was set not due to a manual change by one of participants, but automatically because one of the participants has the default TTL settings enabled »¹. For example, when a user writes to us for the first time and we have set a default messages TTL of 1 week, this service message (with auto_setting_from=our_userid) will be emitted before our first message.", + "links": [ + "https://core.telegram.org/method/messages.setDefaultHistoryTTL" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "period": { + "name": "period", + "description": "New Time-To-Live of all messages sent in this chat; if 0, autodeletion was disabled." + } + } + }, + "messageActionSuggestProfilePhoto": { + "name": "messageActionSuggestProfilePhoto", + "description": [ + "A new profile picture was suggested using photos.uploadContactProfilePhoto¹." + ], + "links": [ + "https://core.telegram.org/method/photos.uploadContactProfilePhoto" + ], + "fields": { + "photo": { + "name": "photo", + "description": "The photo that the user suggested we set as profile picture." + } + } + }, + "messageActionTopicCreate": { + "name": "messageActionTopicCreate", + "description": [ + "A forum topic¹ was created." + ], + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "icon_color": { + "name": "icon_color", + "description": "If no custom emoji icon is specified, specifies the color of the fallback topic icon (RGB), one of 0x6FB9F0, 0xFFD67E, 0xCB86DB, 0x8EEE98, 0xFF93B2, or 0xFB6F5F." + }, + "icon_emoji_id": { + "name": "icon_emoji_id", + "description": "ID of the custom emoji¹ used as topic icon.", + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + }, + "title": { + "name": "title", + "description": "Topic name." + } + } + }, + "messageActionTopicEdit": { + "name": "messageActionTopicEdit", + "description": [ + "Forum topic¹ information was edited." + ], + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ], + "fields": { + "closed": { + "name": "closed", + "description": "Whether the topic was opened or closed." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hidden": { + "name": "hidden", + "description": "Whether the topic was hidden or unhidden (only valid for the \"General\" topic, id=1)." + }, + "icon_emoji_id": { + "name": "icon_emoji_id", + "description": "ID of the new custom emoji¹ used as topic icon, or if it was removed.", + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + }, + "title": { + "name": "title", + "description": "New topic title." + } + } + }, + "messageActionWebViewDataSent": { + "name": "messageActionWebViewDataSent", + "description": [ + "Data from an opened reply keyboard bot mini app¹ was relayed to the bot that owns it (user side service message).", + "Clients should display a service message with the text Data from the «$text» button was transferred to the bot." + ], + "links": [ + "https://core.telegram.org/api/bots/webapps" + ], + "fields": { + "text": { + "name": "text", + "description": "Text of the keyboardButtonSimpleWebView¹ that was pressed to open the web app.", + "links": [ + "https://core.telegram.org/constructor/keyboardButtonSimpleWebView" + ] + } + } + }, + "messageActionWebViewDataSentMe": { + "name": "messageActionWebViewDataSentMe", + "description": [ + "Data from an opened reply keyboard bot mini app¹ was relayed to the bot that owns it (bot side service message)." + ], + "links": [ + "https://core.telegram.org/api/bots/webapps" + ], + "fields": { + "data": { + "name": "data", + "description": "Relayed data." + }, + "text": { + "name": "text", + "description": "Text of the keyboardButtonSimpleWebView¹ that was pressed to open the web app.", + "links": [ + "https://core.telegram.org/constructor/keyboardButtonSimpleWebView" + ] + } + } + }, + "messageEmpty": { + "name": "messageEmpty", + "description": [ + "Empty constructor, non-existent message." + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Message identifier" + }, + "peer_id": { + "name": "peer_id", + "description": "Peer ID, the chat where this message was sent" + } + } + }, + "messageEntityBankCard": { + "name": "messageEntityBankCard", + "description": [ + "Indicates a credit card number" + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityBlockquote": { + "name": "messageEntityBlockquote", + "description": [ + "Message entity representing a block quote." + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityBold": { + "name": "messageEntityBold", + "description": [ + "Message entity representing bold text." + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityBotCommand": { + "name": "messageEntityBotCommand", + "description": [ + "Message entity representing a bot /command" + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityCashtag": { + "name": "messageEntityCashtag", + "description": [ + "Message entity representing a $cashtag." + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityCode": { + "name": "messageEntityCode", + "description": [ + "Message entity representing a codeblock." + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityCustomEmoji": { + "name": "messageEntityCustomEmoji", + "description": [ + "Represents a custom emoji.", + "Note that this entity must wrap exactly one regular emoji (the one contained in documentAttributeCustomEmoji¹.alt) in the related text, otherwise the server will ignore it." + ], + "links": [ + "https://core.telegram.org/constructor/documentAttributeCustomEmoji" + ], + "fields": { + "document_id": { + "name": "document_id", + "description": "Document ID of the custom emoji¹, use messages.getCustomEmojiDocuments² to fetch the emoji animation and the actual emoji it represents.", + "links": [ + "https://core.telegram.org/api/custom-emoji", + "https://core.telegram.org/method/messages.getCustomEmojiDocuments" + ] + }, + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityEmail": { + "name": "messageEntityEmail", + "description": [ + "Message entity representing an email@example.com¹." + ], + "links": [ + "https://core.telegram.orgmailto:email@example.com" + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityHashtag": { + "name": "messageEntityHashtag", + "description": [ + "#hashtag message entity" + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityItalic": { + "name": "messageEntityItalic", + "description": [ + "Message entity representing italic text." + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityMention": { + "name": "messageEntityMention", + "description": [ + "Message entity mentioning¹ a user by @username; messageEntityMentionName² can also be used to mention users by their ID." + ], + "links": [ + "https://core.telegram.org/api/mentions", + "https://core.telegram.org/constructor/messageEntityMentionName" + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityMentionName": { + "name": "messageEntityMentionName", + "description": [ + "Message entity representing a user mention¹: for creating a mention use inputMessageEntityMentionName²." + ], + "links": [ + "https://core.telegram.org/api/mentions", + "https://core.telegram.org/constructor/inputMessageEntityMentionName" + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "user_id": { + "name": "user_id", + "description": "Identifier of the user that was mentioned" + } + } + }, + "messageEntityPhone": { + "name": "messageEntityPhone", + "description": [ + "Message entity representing a phone number." + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityPre": { + "name": "messageEntityPre", + "description": [ + "Message entity representing a preformatted codeblock, allowing the user to specify a programming language for the codeblock." + ], + "fields": { + "language": { + "name": "language", + "description": "Programming language of the code" + }, + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntitySpoiler": { + "name": "messageEntitySpoiler", + "description": [ + "Message entity representing a spoiler" + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityStrike": { + "name": "messageEntityStrike", + "description": [ + "Message entity representing strikethrough text." + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityTextUrl": { + "name": "messageEntityTextUrl", + "description": [ + "Message entity representing a text url¹: for in-text urls like https://google.com² use messageEntityUrl³.", + "Note that an additional confirmation popup with the full URL must be displayed to the user before opening this link, unless the domain satisfies the conditions specified in the domain whitelist documentation »¹." + ], + "links": [ + "https://google.com", + "https://google.com", + "https://core.telegram.org/constructor/messageEntityUrl", + "https://core.telegram.org/api/config#whitelisted-domains" + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "url": { + "name": "url", + "description": "The actual URL" + } + } + }, + "messageEntityUnderline": { + "name": "messageEntityUnderline", + "description": [ + "Message entity representing underlined text." + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityUnknown": { + "name": "messageEntityUnknown", + "description": [ + "Unknown message entity" + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageEntityUrl": { + "name": "messageEntityUrl", + "description": [ + "Message entity representing an in-text url: https://google.com¹; for text urls², use messageEntityTextUrl³." + ], + "links": [ + "https://google.com", + "https://google.com", + "https://core.telegram.org/constructor/messageEntityTextUrl" + ], + "fields": { + "length": { + "name": "length", + "description": "Length of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "offset": { + "name": "offset", + "description": "Offset of message entity within message (in UTF-16 code units¹)", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + } + } + }, + "messageExtendedMedia": { + "name": "messageExtendedMedia", + "description": [ + "Extended media" + ], + "fields": { + "media": { + "name": "media", + "description": "Media" + } + } + }, + "messageExtendedMediaPreview": { + "name": "messageExtendedMediaPreview", + "description": [ + "Extended media preview" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "h": { + "name": "h", + "description": "Height" + }, + "thumb": { + "name": "thumb", + "description": "Thumbnail" + }, + "video_duration": { + "name": "video_duration", + "description": "Video duration" + }, + "w": { + "name": "w", + "description": "Width" + } + } + }, + "messageFwdHeader": { + "name": "messageFwdHeader", + "description": [ + "Info about a forwarded message" + ], + "fields": { + "channel_post": { + "name": "channel_post", + "description": "ID of the channel message that was forwarded" + }, + "date": { + "name": "date", + "description": "When was the message originally sent" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "from_id": { + "name": "from_id", + "description": "The ID of the user that originally sent the message" + }, + "from_name": { + "name": "from_name", + "description": "The name of the user that originally sent the message" + }, + "imported": { + "name": "imported", + "description": "Whether this message was imported from a foreign chat service, click here for more info »¹", + "links": [ + "https://core.telegram.org/api/import" + ] + }, + "post_author": { + "name": "post_author", + "description": "For channels and if signatures are enabled, author of the channel message" + }, + "psa_type": { + "name": "psa_type", + "description": "PSA type" + }, + "saved_date": { + "name": "saved_date", + "description": " " + }, + "saved_from_id": { + "name": "saved_from_id", + "description": " " + }, + "saved_from_msg_id": { + "name": "saved_from_msg_id", + "description": "Only for messages forwarded to the current user (inputPeerSelf), ID of the message that was forwarded from the original user/channel" + }, + "saved_from_name": { + "name": "saved_from_name", + "description": " " + }, + "saved_from_peer": { + "name": "saved_from_peer", + "description": "Only for messages forwarded to the current user (inputPeerSelf), full info about the user/channel that originally sent the message" + }, + "saved_out": { + "name": "saved_out", + "description": " " + } + } + }, + "messageMediaContact": { + "name": "messageMediaContact", + "description": [ + "Attached contact." + ], + "fields": { + "first_name": { + "name": "first_name", + "description": "Contact's first name" + }, + "last_name": { + "name": "last_name", + "description": "Contact's last name" + }, + "phone_number": { + "name": "phone_number", + "description": "Phone number" + }, + "user_id": { + "name": "user_id", + "description": "User identifier or 0, if the user with the given phone number is not registered" + }, + "vcard": { + "name": "vcard", + "description": "VCARD of contact" + } + } + }, + "messageMediaDice": { + "name": "messageMediaDice", + "description": [ + "Dice-based animated sticker¹" + ], + "links": [ + "https://core.telegram.org/api/dice" + ], + "fields": { + "emoticon": { + "name": "emoticon", + "description": "The emoji, for now , and are supported" + }, + "value": { + "name": "value", + "description": "Dice value¹", + "links": [ + "https://core.telegram.org/api/dice" + ] + } + } + }, + "messageMediaDocument": { + "name": "messageMediaDocument", + "description": [ + "Document (video, audio, voice, sticker, any media type except photo)" + ], + "fields": { + "alt_document": { + "name": "alt_document", + "description": "Currently only used for story videos, may contain an alternative version of the story video, explicitly encoded using H.264 (in MPEG4 transport) at a lower resolution than document." + }, + "document": { + "name": "document", + "description": "Attached document" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "nopremium": { + "name": "nopremium", + "description": "Whether this is a normal sticker, if not set this is a premium sticker and a premium sticker animation must be played." + }, + "round": { + "name": "round", + "description": " " + }, + "spoiler": { + "name": "spoiler", + "description": "Whether this media should be hidden behind a spoiler warning" + }, + "ttl_seconds": { + "name": "ttl_seconds", + "description": "Time to live of self-destructing document" + }, + "video": { + "name": "video", + "description": " " + }, + "voice": { + "name": "voice", + "description": " " + } + } + }, + "messageMediaEmpty": { + "name": "messageMediaEmpty", + "description": [ + "Empty constructor." + ] + }, + "messageMediaGame": { + "name": "messageMediaGame", + "description": [ + "Telegram game" + ], + "fields": { + "game": { + "name": "game", + "description": "Game" + } + } + }, + "messageMediaGeo": { + "name": "messageMediaGeo", + "description": [ + "Attached map." + ], + "fields": { + "geo": { + "name": "geo", + "description": "GeoPoint" + } + } + }, + "messageMediaGeoLive": { + "name": "messageMediaGeoLive", + "description": [ + "Indicates a live geolocation¹" + ], + "links": [ + "https://core.telegram.org/api/live-location" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "geo": { + "name": "geo", + "description": "Geolocation" + }, + "heading": { + "name": "heading", + "description": "For live locations¹, a direction in which the location moves, in degrees; 1-360", + "links": [ + "https://core.telegram.org/api/live-location" + ] + }, + "period": { + "name": "period", + "description": "Validity period of provided geolocation" + }, + "proximity_notification_radius": { + "name": "proximity_notification_radius", + "description": "For live locations¹, a maximum distance to another chat member for proximity alerts, in meters (0-100000).", + "links": [ + "https://core.telegram.org/api/live-location" + ] + } + } + }, + "messageMediaGiveaway": { + "name": "messageMediaGiveaway", + "description": [ + "Contains info about a giveaway, see here »¹ for more info." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ], + "fields": { + "channels": { + "name": "channels", + "description": "The channels that the user must join to participate in the giveaway." + }, + "countries_iso2": { + "name": "countries_iso2", + "description": "If set, only users residing in these countries can participate in the giveaway, (specified as a list of two-letter ISO 3166-1 alpha-2 country codes); otherwise there are no country-based limitations." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "months": { + "name": "months", + "description": "Duration in months of each Telegram Premium¹ subscription in the giveaway.", + "links": [ + "https://core.telegram.org/api/premium" + ] + }, + "only_new_subscribers": { + "name": "only_new_subscribers", + "description": "If set, only new subscribers starting from the giveaway creation date will be able to participate to the giveaway." + }, + "prize_description": { + "name": "prize_description", + "description": "Can contain a textual description of additional giveaway prizes." + }, + "quantity": { + "name": "quantity", + "description": "Number of Telegram Premium¹ subscriptions given away.", + "links": [ + "https://core.telegram.org/api/premium" + ] + }, + "until_date": { + "name": "until_date", + "description": "The end date of the giveaway." + }, + "winners_are_visible": { + "name": "winners_are_visible", + "description": "If set, giveaway winners are public and will be listed in a messageMediaGiveawayResults¹ message that will be automatically sent to the channel once the giveaway ends.", + "links": [ + "https://core.telegram.org/constructor/messageMediaGiveawayResults" + ] + } + } + }, + "messageMediaGiveawayResults": { + "name": "messageMediaGiveawayResults", + "description": [ + "A giveaway¹ with public winners has finished, this constructor contains info about the winners." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ], + "fields": { + "additional_peers_count": { + "name": "additional_peers_count", + "description": "Number of other channels that participated in the giveaway." + }, + "channel_id": { + "name": "channel_id", + "description": "ID of the channel that was automatically boosted¹ by the winners of the giveaway for duration of the Premium subscription.", + "links": [ + "https://core.telegram.org/api/boost" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "launch_msg_id": { + "name": "launch_msg_id", + "description": "Identifier of the message with the giveaway in channel_id." + }, + "months": { + "name": "months", + "description": "Duration in months of each Telegram Premium¹ subscription in the giveaway.", + "links": [ + "https://core.telegram.org/api/premium" + ] + }, + "only_new_subscribers": { + "name": "only_new_subscribers", + "description": "If set, only new subscribers starting from the giveaway creation date participated in the giveaway." + }, + "prize_description": { + "name": "prize_description", + "description": "Can contain a textual description of additional giveaway prizes." + }, + "refunded": { + "name": "refunded", + "description": "If set, the giveaway was canceled and was fully refunded." + }, + "unclaimed_count": { + "name": "unclaimed_count", + "description": "Number of not-yet-claimed prizes." + }, + "until_date": { + "name": "until_date", + "description": "Point in time (Unix timestamp) when the winners were selected. May be bigger than winners selection date specified in initial parameters of the giveaway." + }, + "winners": { + "name": "winners", + "description": "Up to 100 user identifiers of the winners of the giveaway." + }, + "winners_count": { + "name": "winners_count", + "description": "Total number of winners in the giveaway." + } + } + }, + "messageMediaInvoice": { + "name": "messageMediaInvoice", + "description": [ + "Invoice" + ], + "fields": { + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "description": { + "name": "description", + "description": "Product description, 1-255 characters" + }, + "extended_media": { + "name": "extended_media", + "description": "Extended media" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "photo": { + "name": "photo", + "description": "URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for." + }, + "receipt_msg_id": { + "name": "receipt_msg_id", + "description": "Message ID of receipt: if set, clients should change the text of the first keyboardButtonBuy¹ button always attached to the message² to a localized version of the word Receipt", + "links": [ + "https://core.telegram.org/constructor/keyboardButtonBuy", + "https://core.telegram.org/constructor/message" + ] + }, + "shipping_address_requested": { + "name": "shipping_address_requested", + "description": "Whether the shipping address was requested" + }, + "start_param": { + "name": "start_param", + "description": "Unique bot deep-linking parameter that can be used to generate this invoice" + }, + "test": { + "name": "test", + "description": "Whether this is an example invoice" + }, + "title": { + "name": "title", + "description": "Product name, 1-32 characters" + }, + "total_amount": { + "name": "total_amount", + "description": "Total price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + } + } + }, + "messageMediaPhoto": { + "name": "messageMediaPhoto", + "description": [ + "Attached photo." + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "photo": { + "name": "photo", + "description": "Photo" + }, + "spoiler": { + "name": "spoiler", + "description": "Whether this media should be hidden behind a spoiler warning" + }, + "ttl_seconds": { + "name": "ttl_seconds", + "description": "Time to live in seconds of self-destructing photo" + } + } + }, + "messageMediaPoll": { + "name": "messageMediaPoll", + "description": [ + "Poll" + ], + "fields": { + "poll": { + "name": "poll", + "description": "The poll" + }, + "results": { + "name": "results", + "description": "The results of the poll" + } + } + }, + "messageMediaStory": { + "name": "messageMediaStory", + "description": [ + "Represents a forwarded story¹ or a story mention." + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Story ID" + }, + "peer": { + "name": "peer", + "description": "Peer that posted the story." + }, + "story": { + "name": "story", + "description": "The story itself, if absent fetch it using stories.getStoriesByID¹ and the peer/id parameters specified above.", + "links": [ + "https://core.telegram.org/method/stories.getStoriesByID" + ] + }, + "via_mention": { + "name": "via_mention", + "description": "If set, indicates that this someone has mentioned us in this story (i.e. by tagging us in the description) or vice versa, we have mentioned the other peer (if the message is outgoing)." + } + } + }, + "messageMediaUnsupported": { + "name": "messageMediaUnsupported", + "description": [ + "Current version of the client does not support this media type." + ] + }, + "messageMediaVenue": { + "name": "messageMediaVenue", + "description": [ + "Venue" + ], + "fields": { + "address": { + "name": "address", + "description": "Address" + }, + "geo": { + "name": "geo", + "description": "Geolocation of venue" + }, + "provider": { + "name": "provider", + "description": "Venue provider: currently only \"foursquare\" and \"gplaces\" (Google Places) need to be supported" + }, + "title": { + "name": "title", + "description": "Venue name" + }, + "venue_id": { + "name": "venue_id", + "description": "Venue ID in the provider's database" + }, + "venue_type": { + "name": "venue_type", + "description": "Venue type in the provider's database" + } + } + }, + "messageMediaWebPage": { + "name": "messageMediaWebPage", + "description": [ + "Preview of webpage" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "force_large_media": { + "name": "force_large_media", + "description": "If set, specifies that a large media preview should be used." + }, + "force_small_media": { + "name": "force_small_media", + "description": "If set, specifies that a small media preview should be used." + }, + "manual": { + "name": "manual", + "description": "If set, indicates that the URL used for the webpage preview was specified manually using inputMediaWebPage¹, and may not be related to any of the URLs specified in the message.", + "links": [ + "https://core.telegram.org/constructor/inputMediaWebPage" + ] + }, + "safe": { + "name": "safe", + "description": "If set, the webpage can be opened directly without user confirmation; otherwise, user confirmation is required, showing the exact URL that will be opened." + }, + "webpage": { + "name": "webpage", + "description": "Webpage preview" + } + } + }, + "messagePeerReaction": { + "name": "messagePeerReaction", + "description": [ + "How a certain peer reacted to the message" + ], + "fields": { + "big": { + "name": "big", + "description": "Whether the specified message reaction »¹ should elicit a bigger and longer reaction", + "links": [ + "https://core.telegram.org/api/reactions" + ] + }, + "date": { + "name": "date", + "description": "When was this reaction added" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "my": { + "name": "my", + "description": "Starting from layer 159, messages.sendReaction¹ will send reactions from the peer (user or channel) specified using messages.saveDefaultSendAs². If set, this flag indicates that this reaction was sent by us, even if the peer doesn't point to the current account.", + "links": [ + "https://core.telegram.org/method/messages.sendReaction", + "https://core.telegram.org/method/messages.saveDefaultSendAs" + ] + }, + "peer_id": { + "name": "peer_id", + "description": "Peer that reacted to the message" + }, + "reaction": { + "name": "reaction", + "description": "Reaction emoji" + }, + "unread": { + "name": "unread", + "description": "Whether the reaction wasn't yet marked as read by the current user" + } + } + }, + "messagePeerVote": { + "name": "messagePeerVote", + "description": [ + "How a peer voted in a poll" + ], + "fields": { + "date": { + "name": "date", + "description": "When did the peer cast the vote" + }, + "option": { + "name": "option", + "description": "The option chosen by the peer" + }, + "peer": { + "name": "peer", + "description": "Peer ID" + } + } + }, + "messagePeerVoteInputOption": { + "name": "messagePeerVoteInputOption", + "description": [ + "How a peer voted in a poll (reduced constructor, returned if an option was provided to messages.getPollVotes¹)" + ], + "links": [ + "https://core.telegram.org/method/messages.getPollVotes" + ], + "fields": { + "date": { + "name": "date", + "description": "When did the peer cast the vote" + }, + "peer": { + "name": "peer", + "description": "The peer that voted for the queried option" + } + } + }, + "messagePeerVoteMultiple": { + "name": "messagePeerVoteMultiple", + "description": [ + "How a peer voted in a multiple-choice poll" + ], + "fields": { + "date": { + "name": "date", + "description": "When did the peer cast their votes" + }, + "options": { + "name": "options", + "description": "Options chosen by the peer" + }, + "peer": { + "name": "peer", + "description": "Peer ID" + } + } + }, + "messageRange": { + "name": "messageRange", + "description": [ + "Indicates a range of chat messages" + ], + "fields": { + "max_id": { + "name": "max_id", + "description": "End of range (message ID)" + }, + "min_id": { + "name": "min_id", + "description": "Start of range (message ID)" + } + } + }, + "messageReactions": { + "name": "messageReactions", + "description": [ + "Message reactions »¹" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ], + "fields": { + "can_see_list": { + "name": "can_see_list", + "description": "Whether messages.getMessageReactionsList¹ can be used to see how each specific peer reacted to the message", + "links": [ + "https://core.telegram.org/method/messages.getMessageReactionsList" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "min": { + "name": "min", + "description": "Similar to min¹ objects, used for message reaction »² constructors that are the same for all users so they don't have the reactions sent by the current user (you can use messages.getMessagesReactions³ to get the full reaction info).", + "links": [ + "https://core.telegram.org/api/min", + "https://core.telegram.org/api/reactions", + "https://core.telegram.org/method/messages.getMessagesReactions" + ] + }, + "recent_reactions": { + "name": "recent_reactions", + "description": "List of recent peers and their reactions" + }, + "results": { + "name": "results", + "description": "Reactions" + } + } + }, + "messageReplies": { + "name": "messageReplies", + "description": [ + "Info about the comment section of a channel post, or a simple message thread¹" + ], + "links": [ + "https://core.telegram.org/api/threads" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "For channel post comments, contains the ID of the associated discussion supergroup¹", + "links": [ + "https://core.telegram.org/api/discussion" + ] + }, + "comments": { + "name": "comments", + "description": "Whether this constructor contains information about the comment section of a channel post, or a simple message thread¹", + "links": [ + "https://core.telegram.org/api/threads" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "max_id": { + "name": "max_id", + "description": "ID of the latest message in this thread or comment section." + }, + "read_max_id": { + "name": "read_max_id", + "description": "Contains the ID of the latest read message in this thread or comment section." + }, + "recent_repliers": { + "name": "recent_repliers", + "description": "For channel post comments, contains information about the last few comment posters for a specific thread, to show a small list of commenter profile pictures in client previews." + }, + "replies": { + "name": "replies", + "description": "Contains the total number of replies in this thread or comment section." + }, + "replies_pts": { + "name": "replies_pts", + "description": "PTS¹ of the message that started this thread.", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "messageReplyHeader": { + "name": "messageReplyHeader", + "description": [ + "Message replies and thread¹ information" + ], + "links": [ + "https://core.telegram.org/api/threads" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "forum_topic": { + "name": "forum_topic", + "description": "Whether this message was sent in a forum topic¹ (except for the General topic).", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + }, + "quote": { + "name": "quote", + "description": "Whether this message is quoting a part of another message." + }, + "quote_entities": { + "name": "quote_entities", + "description": "Message entities for styled text¹ from the quote_text field.", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "quote_offset": { + "name": "quote_offset", + "description": "Offset of the message quote_text within the original message (in UTF-16 code units¹).", + "links": [ + "https://core.telegram.org/api/entities#entity-length" + ] + }, + "quote_text": { + "name": "quote_text", + "description": "Used to quote-reply to only a certain section (specified here) of the original message." + }, + "reply_from": { + "name": "reply_from", + "description": "When replying to a message sent by a certain peer to another chat, contains info about the peer that originally sent the message to that other chat." + }, + "reply_media": { + "name": "reply_media", + "description": "When replying to a media sent by a certain peer to another chat, contains the media of the replied-to message." + }, + "reply_to_msg_id": { + "name": "reply_to_msg_id", + "description": "ID of message to which this message is replying" + }, + "reply_to_peer_id": { + "name": "reply_to_peer_id", + "description": "For replies sent in channel discussion threads¹ of which the current user is not a member, the discussion group ID", + "links": [ + "https://core.telegram.org/api/threads" + ] + }, + "reply_to_scheduled": { + "name": "reply_to_scheduled", + "description": "This is a reply to a scheduled message." + }, + "reply_to_top_id": { + "name": "reply_to_top_id", + "description": "ID of the message that started this message thread¹", + "links": [ + "https://core.telegram.org/api/threads" + ] + } + } + }, + "messageReplyStoryHeader": { + "name": "messageReplyStoryHeader", + "description": [ + "Represents a reply to a story¹" + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "story_id": { + "name": "story_id", + "description": "Story ID" + }, + "user_id": { + "name": "user_id", + "description": "ID of the user that posted a story" + } + } + }, + "messageService": { + "name": "messageService", + "description": [ + "Indicates a service message" + ], + "fields": { + "action": { + "name": "action", + "description": "Event connected with the service message" + }, + "date": { + "name": "date", + "description": "Message date" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "from_id": { + "name": "from_id", + "description": "ID of the sender of this message" + }, + "id": { + "name": "id", + "description": "Message ID" + }, + "legacy": { + "name": "legacy", + "description": "This is a legacy message: it has to be refetched with the new layer" + }, + "media_unread": { + "name": "media_unread", + "description": "Whether the message contains unread media" + }, + "mentioned": { + "name": "mentioned", + "description": "Whether we were mentioned in the message" + }, + "out": { + "name": "out", + "description": "Whether the message is outgoing" + }, + "peer_id": { + "name": "peer_id", + "description": "Sender of service message" + }, + "post": { + "name": "post", + "description": "Whether it's a channel post" + }, + "reply_to": { + "name": "reply_to", + "description": "Reply (thread) information" + }, + "silent": { + "name": "silent", + "description": "Whether the message is silent" + }, + "ttl_period": { + "name": "ttl_period", + "description": "Time To Live of the message, once message.date+message.ttl_period === time(), the message will be deleted on the server, and must be deleted locally as well." + } + } + }, + "messageViews": { + "name": "messageViews", + "description": [ + "View, forward counter + info about replies of a specific message" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "forwards": { + "name": "forwards", + "description": "Forward count of message" + }, + "replies": { + "name": "replies", + "description": "Reply and thread¹ information of message", + "links": [ + "https://core.telegram.org/api/threads" + ] + }, + "views": { + "name": "views", + "description": "View count of message" + } + } + }, + "messages.affectedFoundMessages": { + "name": "messages.affectedFoundMessages", + "description": [ + "Messages found and affected by changes" + ], + "fields": { + "messages": { + "name": "messages", + "description": "Affected message IDs" + }, + "offset": { + "name": "offset", + "description": "If bigger than zero, the request must be repeated to remove more messages" + }, + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "Number of events that were generated¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "messages.affectedHistory": { + "name": "messages.affectedHistory", + "description": [ + "Affected part of communication history with the user or in a chat." + ], + "fields": { + "offset": { + "name": "offset", + "description": "If a parameter contains positive value, it is necessary to repeat the method call using the given value; during the proceeding of all the history the value itself shall gradually decrease" + }, + "pts": { + "name": "pts", + "description": "Number of events occurred in a text box" + }, + "pts_count": { + "name": "pts_count", + "description": "Number of affected events" + } + } + }, + "messages.affectedMessages": { + "name": "messages.affectedMessages", + "description": [ + "Events affected by operation" + ], + "fields": { + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "Number of events that were generated¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "messages.allStickers": { + "name": "messages.allStickers", + "description": [ + "Info about all installed stickers" + ], + "fields": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "sets": { + "name": "sets", + "description": "All stickersets" + } + } + }, + "messages.allStickersNotModified": { + "name": "messages.allStickersNotModified", + "description": [ + "Info about all installed stickers hasn't changed" + ] + }, + "messages.archivedStickers": { + "name": "messages.archivedStickers", + "description": [ + "Archived stickersets" + ], + "fields": { + "count": { + "name": "count", + "description": "Number of archived stickers" + }, + "sets": { + "name": "sets", + "description": "Archived stickersets" + } + } + }, + "messages.availableReactions": { + "name": "messages.availableReactions", + "description": [ + "Animations and metadata associated with message reactions »¹" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ], + "fields": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "reactions": { + "name": "reactions", + "description": "Animations and metadata associated with message reactions »¹", + "links": [ + "https://core.telegram.org/api/reactions" + ] + } + } + }, + "messages.availableReactionsNotModified": { + "name": "messages.availableReactionsNotModified", + "description": [ + "No new reactions are available" + ] + }, + "messages.botApp": { + "name": "messages.botApp", + "description": [ + "Contains information about a named Mini App¹" + ], + "links": [ + "https://core.telegram.org/api/bots/webapps#named-mini-apps" + ], + "fields": { + "app": { + "name": "app", + "description": "Bot app information" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "has_settings": { + "name": "has_settings", + "description": "Deprecated flag, can be ignored." + }, + "inactive": { + "name": "inactive", + "description": "Whether the web app was never used by the user, and confirmation must be asked from the user before opening it." + }, + "request_write_access": { + "name": "request_write_access", + "description": "The bot is asking permission to send messages to the user: if the user agrees, set the write_allowed flag when invoking messages.requestAppWebView¹.", + "links": [ + "https://core.telegram.org/method/messages.requestAppWebView" + ] + } + } + }, + "messages.botCallbackAnswer": { + "name": "messages.botCallbackAnswer", + "description": [ + "Callback answer sent by the bot in response to a button press" + ], + "fields": { + "alert": { + "name": "alert", + "description": "Whether an alert should be shown to the user instead of a toast notification" + }, + "cache_time": { + "name": "cache_time", + "description": "For how long should this answer be cached" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "has_url": { + "name": "has_url", + "description": "Whether an URL is present" + }, + "message": { + "name": "message", + "description": "Alert to show" + }, + "native_ui": { + "name": "native_ui", + "description": "Whether to show games in WebView or in native UI." + }, + "url": { + "name": "url", + "description": "URL to open" + } + } + }, + "messages.botResults": { + "name": "messages.botResults", + "description": [ + "Result of a query to an inline bot" + ], + "fields": { + "cache_time": { + "name": "cache_time", + "description": "Caching validity of the results" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "gallery": { + "name": "gallery", + "description": "Whether the result is a picture gallery" + }, + "next_offset": { + "name": "next_offset", + "description": "The next offset to use when navigating through results" + }, + "query_id": { + "name": "query_id", + "description": "Query ID" + }, + "results": { + "name": "results", + "description": "The results" + }, + "switch_pm": { + "name": "switch_pm", + "description": "Shown as a button on top of the remaining inline result list; if clicked, redirects the user to a private chat with the bot with the specified start parameter." + }, + "switch_webview": { + "name": "switch_webview", + "description": "Shown as a button on top of the remaining inline result list; if clicked, opens the specified inline mode mini app¹.", + "links": [ + "https://core.telegram.org/api/bots/webapps#inline-mode-mini-apps" + ] + }, + "users": { + "name": "users", + "description": "Users mentioned in the results" + } + } + }, + "messages.channelMessages": { + "name": "messages.channelMessages", + "description": [ + "Channel messages" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chats" + }, + "count": { + "name": "count", + "description": "Total number of results were found server-side (may not be all included here)" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "inexact": { + "name": "inexact", + "description": "If set, returned results may be inexact" + }, + "messages": { + "name": "messages", + "description": "Found messages" + }, + "offset_id_offset": { + "name": "offset_id_offset", + "description": "Indicates the absolute position of messages[0] within the total result set with count count. This is useful, for example, if the result was fetched using offset_id, and we need to display a progress/total counter (like photo 134 of 200, for all media in a chat, we could simply use photo ${offset_id_offset} of ${count}." + }, + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "topics": { + "name": "topics", + "description": "Forum topic¹ information", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + }, + "users": { + "name": "users", + "description": "Users" + } + } + }, + "messages.chatAdminsWithInvites": { + "name": "messages.chatAdminsWithInvites", + "description": [ + "Info about chat invites generated by admins." + ], + "fields": { + "admins": { + "name": "admins", + "description": "Info about chat invites generated by admins." + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "messages.chatFull": { + "name": "messages.chatFull", + "description": [ + "Full info about a channel¹, supergroup², gigagroup³ or basic group⁴." + ], + "links": [ + "https://core.telegram.org/api/channel#channels", + "https://core.telegram.org/api/channel#supergroups", + "https://core.telegram.org/api/channel#gigagroups", + "https://core.telegram.org/api/channel#basic-groups" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "full_chat": { + "name": "full_chat", + "description": "Full info" + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "messages.chatInviteImporters": { + "name": "messages.chatInviteImporters", + "description": [ + "Info about the users that joined the chat using a specific chat invite" + ], + "fields": { + "count": { + "name": "count", + "description": "Number of users that joined" + }, + "importers": { + "name": "importers", + "description": "The users that joined" + }, + "users": { + "name": "users", + "description": "The users that joined" + } + } + }, + "messages.chats": { + "name": "messages.chats", + "description": [ + "List of chats with auxiliary data." + ], + "fields": { + "chats": { + "name": "chats", + "description": "List of chats" + } + } + }, + "messages.chatsSlice": { + "name": "messages.chatsSlice", + "description": [ + "Partial list of chats, more would have to be fetched with pagination¹" + ], + "links": [ + "https://core.telegram.org/api/offsets" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chats" + }, + "count": { + "name": "count", + "description": "Total number of results that were found server-side (not all are included in chats)" + } + } + }, + "messages.checkedHistoryImportPeer": { + "name": "messages.checkedHistoryImportPeer", + "description": [ + "Contains a confirmation text to be shown to the user, upon importing chat history, click here for more info »¹." + ], + "links": [ + "https://core.telegram.org/api/import" + ], + "fields": { + "confirm_text": { + "name": "confirm_text", + "description": "A confirmation text to be shown to the user, upon importing chat history »¹.", + "links": [ + "https://core.telegram.org/api/import" + ] + } + } + }, + "messages.dhConfig": { + "name": "messages.dhConfig", + "description": [ + "New set of configuring parameters." + ], + "fields": { + "g": { + "name": "g", + "description": "New value prime, see Wikipedia¹", + "links": [ + "https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange" + ] + }, + "p": { + "name": "p", + "description": "New value primitive root, see Wikipedia¹", + "links": [ + "https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange" + ] + }, + "random": { + "name": "random", + "description": "Random sequence of bytes of assigned length" + }, + "version": { + "name": "version", + "description": "Version of set of parameters" + } + } + }, + "messages.dhConfigNotModified": { + "name": "messages.dhConfigNotModified", + "description": [ + "Configuring parameters did not change." + ], + "fields": { + "random": { + "name": "random", + "description": "Random sequence of bytes of assigned length" + } + } + }, + "messages.dialogs": { + "name": "messages.dialogs", + "description": [ + "Full list of chats with messages and auxiliary data." + ], + "fields": { + "chats": { + "name": "chats", + "description": "List of groups mentioned in the chats" + }, + "dialogs": { + "name": "dialogs", + "description": "List of chats" + }, + "messages": { + "name": "messages", + "description": "List of last messages from each chat" + }, + "users": { + "name": "users", + "description": "List of users mentioned in messages and groups" + } + } + }, + "messages.dialogsNotModified": { + "name": "messages.dialogsNotModified", + "description": [ + "Dialogs haven't changed" + ], + "fields": { + "count": { + "name": "count", + "description": "Number of dialogs found server-side by the query" + } + } + }, + "messages.dialogsSlice": { + "name": "messages.dialogsSlice", + "description": [ + "Incomplete list of dialogs with messages and auxiliary data." + ], + "fields": { + "chats": { + "name": "chats", + "description": "List of chats mentioned in dialogs" + }, + "count": { + "name": "count", + "description": "Total number of dialogs" + }, + "dialogs": { + "name": "dialogs", + "description": "List of dialogs" + }, + "messages": { + "name": "messages", + "description": "List of last messages from dialogs" + }, + "users": { + "name": "users", + "description": "List of users mentioned in messages and chats" + } + } + }, + "messages.discussionMessage": { + "name": "messages.discussionMessage", + "description": [ + "Information about a message thread¹" + ], + "links": [ + "https://core.telegram.org/api/threads" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chats mentioned in constructor" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "max_id": { + "name": "max_id", + "description": "Message ID of latest reply in this thread¹", + "links": [ + "https://core.telegram.org/api/threads" + ] + }, + "messages": { + "name": "messages", + "description": "The messages from which the thread starts. The messages are returned in reverse chronological order (i.e., in order of decreasing message ID)." + }, + "read_inbox_max_id": { + "name": "read_inbox_max_id", + "description": "Message ID of latest read incoming message in this thread¹", + "links": [ + "https://core.telegram.org/api/threads" + ] + }, + "read_outbox_max_id": { + "name": "read_outbox_max_id", + "description": "Message ID of latest read outgoing message in this thread¹", + "links": [ + "https://core.telegram.org/api/threads" + ] + }, + "unread_count": { + "name": "unread_count", + "description": "Number of unread messages" + }, + "users": { + "name": "users", + "description": "Users mentioned in constructor" + } + } + }, + "messages.emojiGroups": { + "name": "messages.emojiGroups", + "description": [ + "Represents a list of emoji categories¹." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji#emoji-categories" + ], + "fields": { + "groups": { + "name": "groups", + "description": "A list of emoji categories¹.", + "links": [ + "https://core.telegram.org/api/custom-emoji#emoji-categories" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "messages.emojiGroupsNotModified": { + "name": "messages.emojiGroupsNotModified", + "description": [ + "The list of emoji categories¹ hasn't changed." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji#emoji-categories" + ] + }, + "messages.exportedChatInvite": { + "name": "messages.exportedChatInvite", + "description": [ + "Info about a chat invite" + ], + "fields": { + "invite": { + "name": "invite", + "description": "Info about the chat invite" + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "messages.exportedChatInviteReplaced": { + "name": "messages.exportedChatInviteReplaced", + "description": [ + "The specified chat invite was replaced with another one" + ], + "fields": { + "invite": { + "name": "invite", + "description": "The replaced chat invite" + }, + "new_invite": { + "name": "new_invite", + "description": "The invite that replaces the previous invite" + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "messages.exportedChatInvites": { + "name": "messages.exportedChatInvites", + "description": [ + "Info about chat invites exported by a certain admin." + ], + "fields": { + "count": { + "name": "count", + "description": "Number of invites exported by the admin" + }, + "invites": { + "name": "invites", + "description": "Exported invites" + }, + "users": { + "name": "users", + "description": "Info about the admin" + } + } + }, + "messages.favedStickers": { + "name": "messages.favedStickers", + "description": [ + "Favorited stickers" + ], + "fields": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "packs": { + "name": "packs", + "description": "Emojis associated to stickers" + }, + "stickers": { + "name": "stickers", + "description": "Favorited stickers" + } + } + }, + "messages.favedStickersNotModified": { + "name": "messages.favedStickersNotModified", + "description": [ + "No new favorited stickers were found" + ] + }, + "messages.featuredStickers": { + "name": "messages.featuredStickers", + "description": [ + "Featured stickersets" + ], + "fields": { + "count": { + "name": "count", + "description": "Total number of featured stickers" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "premium": { + "name": "premium", + "description": "Whether this is a premium stickerset" + }, + "sets": { + "name": "sets", + "description": "Featured stickersets" + }, + "unread": { + "name": "unread", + "description": "IDs of new featured stickersets" + } + } + }, + "messages.featuredStickersNotModified": { + "name": "messages.featuredStickersNotModified", + "description": [ + "Featured stickers haven't changed" + ], + "fields": { + "count": { + "name": "count", + "description": "Total number of featured stickers" + } + } + }, + "messages.forumTopics": { + "name": "messages.forumTopics", + "description": [ + "Contains information about multiple forum topics¹" + ], + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Related chats" + }, + "count": { + "name": "count", + "description": "Total number of topics matching query; may be more than the topics contained in topics, in which case pagination¹ is required.", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "messages": { + "name": "messages", + "description": "Related messages (contains the messages mentioned by forumTopic¹.top_message).", + "links": [ + "https://core.telegram.org/constructor/forumTopic" + ] + }, + "order_by_create_date": { + "name": "order_by_create_date", + "description": "Whether the returned topics are ordered by creation date; if set, pagination by offset_date should use forumTopic¹.date; otherwise topics are ordered by the last message date, so paginate by the date of the message² referenced by forumTopic³.top_message.", + "links": [ + "https://core.telegram.org/constructor/forumTopic", + "https://core.telegram.org/type/Message", + "https://core.telegram.org/constructor/forumTopic" + ] + }, + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "topics": { + "name": "topics", + "description": "Forum topics" + }, + "users": { + "name": "users", + "description": "Related users" + } + } + }, + "messages.foundStickerSets": { + "name": "messages.foundStickerSets", + "description": [ + "Found stickersets" + ], + "fields": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "sets": { + "name": "sets", + "description": "Found stickersets" + } + } + }, + "messages.foundStickerSetsNotModified": { + "name": "messages.foundStickerSetsNotModified", + "description": [ + "No further results were found" + ] + }, + "messages.highScores": { + "name": "messages.highScores", + "description": [ + "Highscores in a game" + ], + "fields": { + "scores": { + "name": "scores", + "description": "Highscores" + }, + "users": { + "name": "users", + "description": "Users, associated to the highscores" + } + } + }, + "messages.historyImport": { + "name": "messages.historyImport", + "description": [ + "ID of a specific chat import session, click here for more info »¹." + ], + "links": [ + "https://core.telegram.org/api/import" + ], + "fields": { + "id": { + "name": "id", + "description": "History import ID¹", + "links": [ + "https://core.telegram.org/api/import" + ] + } + } + }, + "messages.historyImportParsed": { + "name": "messages.historyImportParsed", + "description": [ + "Contains information about a chat export file generated by a foreign chat app, click here for more info¹.", + "If neither the pm or group flags are set, the specified chat export was generated from a chat of unknown type." + ], + "links": [ + "https://core.telegram.org/api/import" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "group": { + "name": "group", + "description": "The chat export file was generated from a group chat." + }, + "pm": { + "name": "pm", + "description": "The chat export file was generated from a private chat." + }, + "title": { + "name": "title", + "description": "Title of the chat." + } + } + }, + "messages.inactiveChats": { + "name": "messages.inactiveChats", + "description": [ + "Inactive chat list" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chat list" + }, + "dates": { + "name": "dates", + "description": "When was the chat last active" + }, + "users": { + "name": "users", + "description": "Users mentioned in the chat list" + } + } + }, + "messages.messageEditData": { + "name": "messages.messageEditData", + "description": [ + "Message edit data for media" + ], + "fields": { + "caption": { + "name": "caption", + "description": "Media caption, if the specified media's caption can be edited" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + } + } + }, + "messages.messageReactionsList": { + "name": "messages.messageReactionsList", + "description": [ + "List of peers that reacted to a specific message" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "count": { + "name": "count", + "description": "Total number of reactions matching query" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "next_offset": { + "name": "next_offset", + "description": "If set, indicates the next offset to use to load more results by invoking messages.getMessageReactionsList¹.", + "links": [ + "https://core.telegram.org/method/messages.getMessageReactionsList" + ] + }, + "reactions": { + "name": "reactions", + "description": "List of peers that reacted to a specific message" + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "messages.messageViews": { + "name": "messages.messageViews", + "description": [ + "View, forward counter + info about replies" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chats mentioned in constructor" + }, + "users": { + "name": "users", + "description": "Users mentioned in constructor" + }, + "views": { + "name": "views", + "description": "View, forward counter + info about replies" + } + } + }, + "messages.messages": { + "name": "messages.messages", + "description": [ + "Full list of messages with auxiliary data." + ], + "fields": { + "chats": { + "name": "chats", + "description": "List of chats mentioned in dialogs" + }, + "messages": { + "name": "messages", + "description": "List of messages" + }, + "users": { + "name": "users", + "description": "List of users mentioned in messages and chats" + } + } + }, + "messages.messagesNotModified": { + "name": "messages.messagesNotModified", + "description": [ + "No new messages matching the query were found" + ], + "fields": { + "count": { + "name": "count", + "description": "Number of results found server-side by the given query" + } + } + }, + "messages.messagesSlice": { + "name": "messages.messagesSlice", + "description": [ + "Incomplete list of messages and auxiliary data." + ], + "fields": { + "chats": { + "name": "chats", + "description": "List of chats mentioned in messages" + }, + "count": { + "name": "count", + "description": "Total number of messages in the list" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "inexact": { + "name": "inexact", + "description": "If set, indicates that the results may be inexact" + }, + "messages": { + "name": "messages", + "description": "List of messages" + }, + "next_rate": { + "name": "next_rate", + "description": "Rate to use in the offset_rate parameter in the next call to messages.searchGlobal¹", + "links": [ + "https://core.telegram.org/method/messages.searchGlobal" + ] + }, + "offset_id_offset": { + "name": "offset_id_offset", + "description": "Indicates the absolute position of messages[0] within the total result set with count count. This is useful, for example, if the result was fetched using offset_id, and we need to display a progress/total counter (like photo 134 of 200, for all media in a chat, we could simply use photo ${offset_id_offset} of ${count}." + }, + "users": { + "name": "users", + "description": "List of users mentioned in messages and chats" + } + } + }, + "messages.peerDialogs": { + "name": "messages.peerDialogs", + "description": [ + "Dialog info of multiple peers" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chats" + }, + "dialogs": { + "name": "dialogs", + "description": "Dialog info" + }, + "messages": { + "name": "messages", + "description": "Messages mentioned in dialog info" + }, + "state": { + "name": "state", + "description": "Current update state of dialog¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "users": { + "name": "users", + "description": "Users" + } + } + }, + "messages.peerSettings": { + "name": "messages.peerSettings", + "description": [ + "Peer settings" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "settings": { + "name": "settings", + "description": "Peer settings" + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "messages.reactions": { + "name": "messages.reactions", + "description": [ + "List of message reactions¹" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ], + "fields": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "reactions": { + "name": "reactions", + "description": "Reactions" + } + } + }, + "messages.reactionsNotModified": { + "name": "messages.reactionsNotModified", + "description": [ + "The server-side list of message reactions¹ hasn't changed" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ] + }, + "messages.recentStickers": { + "name": "messages.recentStickers", + "description": [ + "Recently used stickers" + ], + "fields": { + "dates": { + "name": "dates", + "description": "When was each sticker last used" + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "packs": { + "name": "packs", + "description": "Emojis associated to stickers" + }, + "stickers": { + "name": "stickers", + "description": "Recent stickers" + } + } + }, + "messages.recentStickersNotModified": { + "name": "messages.recentStickersNotModified", + "description": [ + "No new recent sticker was found" + ] + }, + "messages.savedDialogs": { + "name": "messages.savedDialogs", + "fields": { + "chats": { + "name": "chats", + "description": " " + }, + "dialogs": { + "name": "dialogs", + "description": " " + }, + "messages": { + "name": "messages", + "description": " " + }, + "users": { + "name": "users", + "description": " " + } + } + }, + "messages.savedDialogsNotModified": { + "name": "messages.savedDialogsNotModified", + "fields": { + "count": { + "name": "count", + "description": " " + } + } + }, + "messages.savedDialogsSlice": { + "name": "messages.savedDialogsSlice", + "fields": { + "chats": { + "name": "chats", + "description": " " + }, + "count": { + "name": "count", + "description": " " + }, + "dialogs": { + "name": "dialogs", + "description": " " + }, + "messages": { + "name": "messages", + "description": " " + }, + "users": { + "name": "users", + "description": " " + } + } + }, + "messages.savedGifs": { + "name": "messages.savedGifs", + "description": [ + "Saved gifs" + ], + "fields": { + "gifs": { + "name": "gifs", + "description": "List of saved gifs" + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "messages.savedGifsNotModified": { + "name": "messages.savedGifsNotModified", + "description": [ + "No new saved gifs were found" + ] + }, + "messages.searchCounter": { + "name": "messages.searchCounter", + "description": [ + "Indicates how many results would be found by a messages.search¹ call with the same parameters" + ], + "links": [ + "https://core.telegram.org/method/messages.search" + ], + "fields": { + "count": { + "name": "count", + "description": "Number of results that were found server-side" + }, + "filter": { + "name": "filter", + "description": "Provided message filter" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "inexact": { + "name": "inexact", + "description": "If set, the results may be inexact" + } + } + }, + "messages.searchResultsCalendar": { + "name": "messages.searchResultsCalendar", + "description": [ + "Information about found messages sent on a specific day" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "count": { + "name": "count", + "description": "Total number of results matching query" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "inexact": { + "name": "inexact", + "description": "If set, indicates that the results may be inexact" + }, + "messages": { + "name": "messages", + "description": "Messages" + }, + "min_date": { + "name": "min_date", + "description": "Starting timestamp of attached messages" + }, + "min_msg_id": { + "name": "min_msg_id", + "description": "Ending timestamp of attached messages" + }, + "offset_id_offset": { + "name": "offset_id_offset", + "description": "Indicates the absolute position of messages[0] within the total result set with count count. This is useful, for example, if we need to display a progress/total counter (like photo 134 of 200, for all media in a chat, we could simply use photo ${offset_id_offset} of ${count}." + }, + "periods": { + "name": "periods", + "description": "Used to split the messages by days: multiple SearchResultsCalendarPeriod¹ constructors are returned, each containing information about the first, last and total number of messages matching the filter that were sent on a specific day. This information can be easily used to split the returned messages by day.", + "links": [ + "https://core.telegram.org/type/SearchResultsCalendarPeriod" + ] + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "messages.searchResultsPositions": { + "name": "messages.searchResultsPositions", + "description": [ + "Information about sparse positions of messages" + ], + "fields": { + "count": { + "name": "count", + "description": "Total number of found messages" + }, + "positions": { + "name": "positions", + "description": "List of message positions" + } + } + }, + "messages.sentEncryptedFile": { + "name": "messages.sentEncryptedFile", + "description": [ + "Message with a file enclosure sent to a protected chat" + ], + "fields": { + "date": { + "name": "date", + "description": "Sending date" + }, + "file": { + "name": "file", + "description": "Attached file" + } + } + }, + "messages.sentEncryptedMessage": { + "name": "messages.sentEncryptedMessage", + "description": [ + "Message without file attachments sent to an encrypted file." + ], + "fields": { + "date": { + "name": "date", + "description": "Date of sending" + } + } + }, + "messages.sponsoredMessages": { + "name": "messages.sponsoredMessages", + "description": [ + "A set of sponsored messages associated to a channel" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chats mentioned in the sponsored messages" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "messages": { + "name": "messages", + "description": "Sponsored messages" + }, + "posts_between": { + "name": "posts_between", + "description": "If set, specifies the minimum number of messages between shown sponsored messages; otherwise, only one sponsored message must be shown after all ordinary messages." + }, + "users": { + "name": "users", + "description": "Users mentioned in the sponsored messages" + } + } + }, + "messages.sponsoredMessagesEmpty": { + "name": "messages.sponsoredMessagesEmpty", + "description": [ + "No sponsored messages are available." + ] + }, + "messages.stickerSet": { + "name": "messages.stickerSet", + "description": [ + "Stickerset and stickers inside it" + ], + "fields": { + "documents": { + "name": "documents", + "description": "Stickers in stickerset" + }, + "keywords": { + "name": "keywords", + "description": "Keywords for some or every sticker in the stickerset." + }, + "packs": { + "name": "packs", + "description": "Emoji info for stickers" + }, + "set": { + "name": "set", + "description": "The stickerset" + } + } + }, + "messages.stickerSetInstallResultArchive": { + "name": "messages.stickerSetInstallResultArchive", + "description": [ + "The stickerset was installed, but since there are too many stickersets some were archived" + ], + "fields": { + "sets": { + "name": "sets", + "description": "Archived stickersets" + } + } + }, + "messages.stickerSetInstallResultSuccess": { + "name": "messages.stickerSetInstallResultSuccess", + "description": [ + "The stickerset was installed successfully" + ] + }, + "messages.stickerSetNotModified": { + "name": "messages.stickerSetNotModified", + "description": [ + "The stickerset hasn't changed" + ] + }, + "messages.stickers": { + "name": "messages.stickers", + "description": [ + "Found stickers" + ], + "fields": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "stickers": { + "name": "stickers", + "description": "Stickers" + } + } + }, + "messages.stickersNotModified": { + "name": "messages.stickersNotModified", + "description": [ + "No new stickers were found for the given query" + ] + }, + "messages.transcribedAudio": { + "name": "messages.transcribedAudio", + "description": [ + "Transcribed text from a voice message »¹" + ], + "links": [ + "https://core.telegram.org/api/transcribe" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "pending": { + "name": "pending", + "description": "Whether the transcription is partial because audio transcription is still in progress, if set the user may receive further updateTranscribedAudio¹ updates with the updated transcription.", + "links": [ + "https://core.telegram.org/constructor/updateTranscribedAudio" + ] + }, + "text": { + "name": "text", + "description": "Transcripted text" + }, + "transcription_id": { + "name": "transcription_id", + "description": "Transcription ID" + }, + "trial_remains_num": { + "name": "trial_remains_num", + "description": "For non-Premium¹ users, this flag will be set, indicating the remaining transcriptions in the free trial period.", + "links": [ + "https://core.telegram.org/api/premium" + ] + }, + "trial_remains_until_date": { + "name": "trial_remains_until_date", + "description": "For non-Premium¹ users, this flag will be set, indicating the date when the trial_remains_num counter will be reset to the maximum value of transcribe_audio_trial_weekly_number².", + "links": [ + "https://core.telegram.org/api/premium", + "https://core.telegram.org/api/config#transcribe-audio-trial-weekly-number" + ] + } + } + }, + "messages.translateResult": { + "name": "messages.translateResult", + "description": [ + "Translated text with entities¹" + ], + "links": [ + "https://core.telegram.org/api/entities" + ], + "fields": { + "result": { + "name": "result", + "description": "Text+entities¹, for each input message.", + "links": [ + "https://core.telegram.org/api/entities" + ] + } + } + }, + "messages.votesList": { + "name": "messages.votesList", + "description": [ + "How users voted in a poll" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "count": { + "name": "count", + "description": "Total number of votes for all options (or only for the chosen option, if provided to messages.getPollVotes¹)", + "links": [ + "https://core.telegram.org/method/messages.getPollVotes" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "next_offset": { + "name": "next_offset", + "description": "Offset to use with the next messages.getPollVotes¹ request, empty string if no more results are available.", + "links": [ + "https://core.telegram.org/method/messages.getPollVotes" + ] + }, + "users": { + "name": "users", + "description": "Info about users that voted in the poll" + }, + "votes": { + "name": "votes", + "description": "Vote info for each user" + } + } + }, + "messages.webPage": { + "name": "messages.webPage", + "description": [ + "Represents an Instant View webpage." + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chats mentioned in the webpage." + }, + "users": { + "name": "users", + "description": "Users mentioned in the webpage." + }, + "webpage": { + "name": "webpage", + "description": "The instant view webpage." + } + } + }, + "myBoost": { + "name": "myBoost", + "description": [ + "Contains information about a single boost slot »¹." + ], + "links": [ + "https://core.telegram.org/api/boost" + ], + "fields": { + "cooldown_until_date": { + "name": "cooldown_until_date", + "description": "If peer is set, indicates the (unixtime) date after which this boost can be reassigned to another channel." + }, + "date": { + "name": "date", + "description": "When (unixtime) we started boosting the peer, 0 otherwise." + }, + "expires": { + "name": "expires", + "description": "Indicates the (unixtime) expiration date of the boost in peer (0 if peer is not set)." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "If set, indicates this slot is currently occupied, i.e. we are boosting¹ this peer. Note that we can assign multiple boost slots to the same peer.", + "links": [ + "https://core.telegram.org/api/boost" + ] + }, + "slot": { + "name": "slot", + "description": "Boost slot ID »¹", + "links": [ + "https://core.telegram.org/api/boost" + ] + } + } + }, + "nearestDc": { + "name": "nearestDc", + "description": [ + "Nearest data center, according to geo-ip." + ], + "fields": { + "country": { + "name": "country", + "description": "Country code determined by geo-ip" + }, + "nearest_dc": { + "name": "nearest_dc", + "description": "Number of nearest data center" + }, + "this_dc": { + "name": "this_dc", + "description": "Number of current data center" + } + } + }, + "notificationSoundDefault": { + "name": "notificationSoundDefault", + "description": [ + "Indicates the default notification sound should be used" + ] + }, + "notificationSoundLocal": { + "name": "notificationSoundLocal", + "description": [ + "Indicates a specific local notification sound should be used" + ], + "fields": { + "data": { + "name": "data", + "description": "Notification sound identifier (arbitrary data used by the client to identify a specific local notification sound)" + }, + "title": { + "name": "title", + "description": "Notification sound title" + } + } + }, + "notificationSoundNone": { + "name": "notificationSoundNone", + "description": [ + "No notification sound should be used" + ] + }, + "notificationSoundRingtone": { + "name": "notificationSoundRingtone", + "description": [ + "A specific previously uploaded notification sound should be used" + ], + "fields": { + "id": { + "name": "id", + "description": "Document ID of notification sound uploaded using account.uploadRingtone¹", + "links": [ + "https://core.telegram.org/method/account.uploadRingtone" + ] + } + } + }, + "notifyBroadcasts": { + "name": "notifyBroadcasts", + "description": [ + "Channel notification settings" + ] + }, + "notifyChats": { + "name": "notifyChats", + "description": [ + "Notifications generated by all groups." + ] + }, + "notifyForumTopic": { + "name": "notifyForumTopic", + "description": [ + "Notifications generated by a topic¹ in a forum²." + ], + "links": [ + "https://core.telegram.org/api/forum#forum-topics", + "https://core.telegram.org/api/forum" + ], + "fields": { + "peer": { + "name": "peer", + "description": "Forum ID" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "Topic ID¹", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + } + } + }, + "notifyPeer": { + "name": "notifyPeer", + "description": [ + "Notifications generated by a certain user or group." + ], + "fields": { + "peer": { + "name": "peer", + "description": "user or group" + } + } + }, + "notifyUsers": { + "name": "notifyUsers", + "description": [ + "Notifications generated by all users." + ] + }, + "null": { + "name": "null", + "description": [ + "Corresponds to an arbitrary empty object." + ] + }, + "page": { + "name": "page", + "description": [ + "Instant view¹ page" + ], + "links": [ + "https://instantview.telegram.org" + ], + "fields": { + "blocks": { + "name": "blocks", + "description": "Page elements (like with HTML elements, only as TL constructors)" + }, + "documents": { + "name": "documents", + "description": "Media in page" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "part": { + "name": "part", + "description": "Indicates that not full page preview is available to the client and it will need to fetch full Instant View from the server using messages.getWebPagePreview¹.", + "links": [ + "https://core.telegram.org/method/messages.getWebPagePreview" + ] + }, + "photos": { + "name": "photos", + "description": "Photos in page" + }, + "rtl": { + "name": "rtl", + "description": "Whether the page contains RTL text" + }, + "url": { + "name": "url", + "description": "Original page HTTP URL" + }, + "v2": { + "name": "v2", + "description": "Whether this is an IV v2¹ page", + "links": [ + "https://instantview.telegram.org/docs#what-39s-new-in-2-0" + ] + }, + "views": { + "name": "views", + "description": "View count" + } + } + }, + "pageBlockAnchor": { + "name": "pageBlockAnchor", + "description": [ + "Link to section within the page itself (like \u003ca href=\"#target\"\u003eanchor\u003c/a\u003e)" + ], + "fields": { + "name": { + "name": "name", + "description": "Name of target section" + } + } + }, + "pageBlockAudio": { + "name": "pageBlockAudio", + "description": [ + "Audio" + ], + "fields": { + "audio_id": { + "name": "audio_id", + "description": "Audio ID (to be fetched from the container page¹ constructor", + "links": [ + "https://core.telegram.org/constructor/page" + ] + }, + "caption": { + "name": "caption", + "description": "Audio caption" + } + } + }, + "pageBlockAuthorDate": { + "name": "pageBlockAuthorDate", + "description": [ + "Author and date of creation of article" + ], + "fields": { + "author": { + "name": "author", + "description": "Author name" + }, + "published_date": { + "name": "published_date", + "description": "Date of publication" + } + } + }, + "pageBlockBlockquote": { + "name": "pageBlockBlockquote", + "description": [ + "Quote (equivalent to the HTML \u003cblockquote\u003e)" + ], + "fields": { + "caption": { + "name": "caption", + "description": "Caption" + }, + "text": { + "name": "text", + "description": "Quote contents" + } + } + }, + "pageBlockChannel": { + "name": "pageBlockChannel", + "description": [ + "Reference to a telegram channel" + ], + "fields": { + "channel": { + "name": "channel", + "description": "The channel/supergroup/chat" + } + } + }, + "pageBlockCollage": { + "name": "pageBlockCollage", + "description": [ + "Collage of media" + ], + "fields": { + "caption": { + "name": "caption", + "description": "Caption" + }, + "items": { + "name": "items", + "description": "Media elements" + } + } + }, + "pageBlockCover": { + "name": "pageBlockCover", + "description": [ + "A page cover" + ], + "fields": { + "cover": { + "name": "cover", + "description": "Cover" + } + } + }, + "pageBlockDetails": { + "name": "pageBlockDetails", + "description": [ + "A collapsible details block" + ], + "fields": { + "blocks": { + "name": "blocks", + "description": "Block contents" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "open": { + "name": "open", + "description": "Whether the block is open by default" + }, + "title": { + "name": "title", + "description": "Always visible heading for the block" + } + } + }, + "pageBlockDivider": { + "name": "pageBlockDivider", + "description": [ + "An empty block separating a page" + ] + }, + "pageBlockEmbed": { + "name": "pageBlockEmbed", + "description": [ + "An embedded webpage" + ], + "fields": { + "allow_scrolling": { + "name": "allow_scrolling", + "description": "Whether scrolling should be allowed" + }, + "caption": { + "name": "caption", + "description": "Caption" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "full_width": { + "name": "full_width", + "description": "Whether the block should be full width" + }, + "h": { + "name": "h", + "description": "Block height, if known" + }, + "html": { + "name": "html", + "description": "HTML-markup of the embedded page" + }, + "poster_photo_id": { + "name": "poster_photo_id", + "description": "Poster photo, if available" + }, + "url": { + "name": "url", + "description": "Web page URL, if available" + }, + "w": { + "name": "w", + "description": "Block width, if known" + } + } + }, + "pageBlockEmbedPost": { + "name": "pageBlockEmbedPost", + "description": [ + "An embedded post" + ], + "fields": { + "author": { + "name": "author", + "description": "Author name" + }, + "author_photo_id": { + "name": "author_photo_id", + "description": "ID of the author's photo" + }, + "blocks": { + "name": "blocks", + "description": "Post contents" + }, + "caption": { + "name": "caption", + "description": "Caption" + }, + "date": { + "name": "date", + "description": "Creation date" + }, + "url": { + "name": "url", + "description": "Web page URL" + }, + "webpage_id": { + "name": "webpage_id", + "description": "ID of generated webpage preview" + } + } + }, + "pageBlockFooter": { + "name": "pageBlockFooter", + "description": [ + "Page footer" + ], + "fields": { + "text": { + "name": "text", + "description": "Contents" + } + } + }, + "pageBlockHeader": { + "name": "pageBlockHeader", + "description": [ + "Page header" + ], + "fields": { + "text": { + "name": "text", + "description": "Contents" + } + } + }, + "pageBlockKicker": { + "name": "pageBlockKicker", + "description": [ + "Kicker" + ], + "fields": { + "text": { + "name": "text", + "description": "Contents" + } + } + }, + "pageBlockList": { + "name": "pageBlockList", + "description": [ + "Unordered list of IV blocks" + ], + "fields": { + "items": { + "name": "items", + "description": "List of blocks in an IV page" + } + } + }, + "pageBlockMap": { + "name": "pageBlockMap", + "description": [ + "A map" + ], + "fields": { + "caption": { + "name": "caption", + "description": "Caption" + }, + "geo": { + "name": "geo", + "description": "Location of the map center" + }, + "h": { + "name": "h", + "description": "Map height in pixels before applying scale; 16-1024" + }, + "w": { + "name": "w", + "description": "Map width in pixels before applying scale; 16-102" + }, + "zoom": { + "name": "zoom", + "description": "Map zoom level; 13-20" + } + } + }, + "pageBlockOrderedList": { + "name": "pageBlockOrderedList", + "description": [ + "Ordered list of IV blocks" + ], + "fields": { + "items": { + "name": "items", + "description": "List items" + } + } + }, + "pageBlockParagraph": { + "name": "pageBlockParagraph", + "description": [ + "A paragraph" + ], + "fields": { + "text": { + "name": "text", + "description": "Text" + } + } + }, + "pageBlockPhoto": { + "name": "pageBlockPhoto", + "description": [ + "A photo" + ], + "fields": { + "caption": { + "name": "caption", + "description": "Caption" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "photo_id": { + "name": "photo_id", + "description": "Photo ID" + }, + "url": { + "name": "url", + "description": "HTTP URL of page the photo leads to when clicked" + }, + "webpage_id": { + "name": "webpage_id", + "description": "ID of preview of the page the photo leads to when clicked" + } + } + }, + "pageBlockPreformatted": { + "name": "pageBlockPreformatted", + "description": [ + "Preformatted (\u003cpre\u003e text)" + ], + "fields": { + "language": { + "name": "language", + "description": "Programming language of preformatted text" + }, + "text": { + "name": "text", + "description": "Text" + } + } + }, + "pageBlockPullquote": { + "name": "pageBlockPullquote", + "description": [ + "Pullquote" + ], + "fields": { + "caption": { + "name": "caption", + "description": "Caption" + }, + "text": { + "name": "text", + "description": "Text" + } + } + }, + "pageBlockRelatedArticles": { + "name": "pageBlockRelatedArticles", + "description": [ + "Related articles" + ], + "fields": { + "articles": { + "name": "articles", + "description": "Related articles" + }, + "title": { + "name": "title", + "description": "Title" + } + } + }, + "pageBlockSlideshow": { + "name": "pageBlockSlideshow", + "description": [ + "Slideshow" + ], + "fields": { + "caption": { + "name": "caption", + "description": "Caption" + }, + "items": { + "name": "items", + "description": "Slideshow items" + } + } + }, + "pageBlockSubheader": { + "name": "pageBlockSubheader", + "description": [ + "Subheader" + ], + "fields": { + "text": { + "name": "text", + "description": "Subheader" + } + } + }, + "pageBlockSubtitle": { + "name": "pageBlockSubtitle", + "description": [ + "Subtitle" + ], + "fields": { + "text": { + "name": "text", + "description": "Text" + } + } + }, + "pageBlockTable": { + "name": "pageBlockTable", + "description": [ + "Table" + ], + "fields": { + "bordered": { + "name": "bordered", + "description": "Does the table have a visible border?" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "rows": { + "name": "rows", + "description": "Table rows" + }, + "striped": { + "name": "striped", + "description": "Is the table striped?" + }, + "title": { + "name": "title", + "description": "Title" + } + } + }, + "pageBlockTitle": { + "name": "pageBlockTitle", + "description": [ + "Title" + ], + "fields": { + "text": { + "name": "text", + "description": "Title" + } + } + }, + "pageBlockUnsupported": { + "name": "pageBlockUnsupported", + "description": [ + "Unsupported IV element" + ] + }, + "pageBlockVideo": { + "name": "pageBlockVideo", + "description": [ + "Video" + ], + "fields": { + "autoplay": { + "name": "autoplay", + "description": "Whether the video is set to autoplay" + }, + "caption": { + "name": "caption", + "description": "Caption" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "loop": { + "name": "loop", + "description": "Whether the video is set to loop" + }, + "video_id": { + "name": "video_id", + "description": "Video ID" + } + } + }, + "pageCaption": { + "name": "pageCaption", + "description": [ + "Page caption" + ], + "fields": { + "credit": { + "name": "credit", + "description": "Credits" + }, + "text": { + "name": "text", + "description": "Caption" + } + } + }, + "pageListItemBlocks": { + "name": "pageListItemBlocks", + "description": [ + "List item" + ], + "fields": { + "blocks": { + "name": "blocks", + "description": "Blocks" + } + } + }, + "pageListItemText": { + "name": "pageListItemText", + "description": [ + "List item" + ], + "fields": { + "text": { + "name": "text", + "description": "Text" + } + } + }, + "pageListOrderedItemBlocks": { + "name": "pageListOrderedItemBlocks", + "description": [ + "Ordered list of IV¹ blocks" + ], + "links": [ + "https://instantview.telegram.org" + ], + "fields": { + "blocks": { + "name": "blocks", + "description": "Item contents" + }, + "num": { + "name": "num", + "description": "Number of element within ordered list" + } + } + }, + "pageListOrderedItemText": { + "name": "pageListOrderedItemText", + "description": [ + "Ordered list of text items" + ], + "fields": { + "num": { + "name": "num", + "description": "Number of element within ordered list" + }, + "text": { + "name": "text", + "description": "Text" + } + } + }, + "pageRelatedArticle": { + "name": "pageRelatedArticle", + "description": [ + "Related article" + ], + "fields": { + "author": { + "name": "author", + "description": "Author name" + }, + "description": { + "name": "description", + "description": "Description" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "photo_id": { + "name": "photo_id", + "description": "ID of preview photo" + }, + "published_date": { + "name": "published_date", + "description": "Date of publication" + }, + "title": { + "name": "title", + "description": "Title" + }, + "url": { + "name": "url", + "description": "URL of article" + }, + "webpage_id": { + "name": "webpage_id", + "description": "Webpage ID of generated IV preview" + } + } + }, + "pageTableCell": { + "name": "pageTableCell", + "description": [ + "Table cell" + ], + "fields": { + "align_center": { + "name": "align_center", + "description": "Horizontally centered block" + }, + "align_right": { + "name": "align_right", + "description": "Right-aligned block" + }, + "colspan": { + "name": "colspan", + "description": "For how many columns should this cell extend" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "header": { + "name": "header", + "description": "Is this element part of the column header" + }, + "rowspan": { + "name": "rowspan", + "description": "For how many rows should this cell extend" + }, + "text": { + "name": "text", + "description": "Content" + }, + "valign_bottom": { + "name": "valign_bottom", + "description": "Block vertically-aligned to the bottom" + }, + "valign_middle": { + "name": "valign_middle", + "description": "Vertically centered block" + } + } + }, + "pageTableRow": { + "name": "pageTableRow", + "description": [ + "Table row" + ], + "fields": { + "cells": { + "name": "cells", + "description": "Table cells" + } + } + }, + "passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow": { + "name": "passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow", + "description": [ + "This key derivation algorithm defines that SRP 2FA login¹ must be used" + ], + "links": [ + "https://core.telegram.org/api/srp" + ], + "fields": { + "g": { + "name": "g", + "description": "Base (see SRP 2FA login¹)", + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "p": { + "name": "p", + "description": "2048-bit modulus (see SRP 2FA login¹)", + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "salt1": { + "name": "salt1", + "description": "One of two salts used by the derivation function (see SRP 2FA login¹)", + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "salt2": { + "name": "salt2", + "description": "One of two salts used by the derivation function (see SRP 2FA login¹)", + "links": [ + "https://core.telegram.org/api/srp" + ] + } + } + }, + "passwordKdfAlgoUnknown": { + "name": "passwordKdfAlgoUnknown", + "description": [ + "Unknown KDF (most likely, the client is outdated and does not support the specified KDF algorithm)" + ] + }, + "paymentCharge": { + "name": "paymentCharge", + "description": [ + "Payment identifier" + ], + "fields": { + "id": { + "name": "id", + "description": "Telegram payment identifier" + }, + "provider_charge_id": { + "name": "provider_charge_id", + "description": "Provider payment identifier" + } + } + }, + "paymentFormMethod": { + "name": "paymentFormMethod", + "description": [ + "Represents an additional payment method" + ], + "fields": { + "title": { + "name": "title", + "description": "Payment method description" + }, + "url": { + "name": "url", + "description": "URL to open in a webview to process the payment" + } + } + }, + "paymentRequestedInfo": { + "name": "paymentRequestedInfo", + "description": [ + "Order info provided by the user" + ], + "fields": { + "email": { + "name": "email", + "description": "User's email address" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "name": { + "name": "name", + "description": "User's full name" + }, + "phone": { + "name": "phone", + "description": "User's phone number" + }, + "shipping_address": { + "name": "shipping_address", + "description": "User's shipping address" + } + } + }, + "paymentSavedCredentialsCard": { + "name": "paymentSavedCredentialsCard", + "description": [ + "Saved credit card" + ], + "fields": { + "id": { + "name": "id", + "description": "Card ID" + }, + "title": { + "name": "title", + "description": "Title" + } + } + }, + "payments.ValidatedRequestedInfo": { + "name": "payments.ValidatedRequestedInfo", + "description": [ + "Validated user-provided info" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "ID" + }, + "shipping_options": { + "name": "shipping_options", + "description": "Shipping options" + } + } + }, + "payments.bankCardData": { + "name": "payments.bankCardData", + "description": [ + "Credit card info, provided by the card's bank(s)" + ], + "fields": { + "open_urls": { + "name": "open_urls", + "description": "Info URL(s) provided by the card's bank(s)" + }, + "title": { + "name": "title", + "description": "Credit card title" + } + } + }, + "payments.checkedGiftCode": { + "name": "payments.checkedGiftCode", + "description": [ + "Contains info about a Telegram Premium giftcode link¹." + ], + "links": [ + "https://core.telegram.org/api/links#premium-giftcode-links" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "date": { + "name": "date", + "description": "Creation date of the gift code." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "from_id": { + "name": "from_id", + "description": "The peer that created the gift code." + }, + "giveaway_msg_id": { + "name": "giveaway_msg_id", + "description": "Message ID of the giveaway in the channel specified in from_id." + }, + "months": { + "name": "months", + "description": "Duration in months of the gifted Telegram Premium¹ subscription.", + "links": [ + "https://core.telegram.org/api/premium" + ] + }, + "to_id": { + "name": "to_id", + "description": "The destination user of the gift." + }, + "used_date": { + "name": "used_date", + "description": "When was the giftcode imported, if it was imported." + }, + "users": { + "name": "users", + "description": "Mentioned users" + }, + "via_giveaway": { + "name": "via_giveaway", + "description": "Whether this giftcode was created by a giveaway¹.", + "links": [ + "https://core.telegram.org/api/giveaways" + ] + } + } + }, + "payments.exportedInvoice": { + "name": "payments.exportedInvoice", + "description": [ + "Exported invoice deep link¹" + ], + "links": [ + "https://core.telegram.org/api/links#invoice-links" + ], + "fields": { + "url": { + "name": "url", + "description": "Exported invoice deep link¹", + "links": [ + "https://core.telegram.org/api/links#invoice-links" + ] + } + } + }, + "payments.giveawayInfo": { + "name": "payments.giveawayInfo", + "description": [ + "Contains info about an ongoing giveaway¹.", + "If neither the participating, joined_too_early_date, admin_disallowed_chat_id or disallowed_country flags are set, the user is not currently participating in the giveaway but could participate by joining all the channels specified in the messageMediaGiveaway¹.channels field." + ], + "links": [ + "https://core.telegram.org/api/giveaways", + "https://core.telegram.org/constructor/messageMediaGiveaway" + ], + "fields": { + "admin_disallowed_chat_id": { + "name": "admin_disallowed_chat_id", + "description": "If set, the current user can't participate in the giveaway, because they are an administrator in one of the channels (ID specified in this flag) that created the giveaway." + }, + "disallowed_country": { + "name": "disallowed_country", + "description": "If set, the current user can't participate in this giveaway, because their phone number is from the specified disallowed country (specified as a two-letter ISO 3166-1 alpha-2 country code)." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "joined_too_early_date": { + "name": "joined_too_early_date", + "description": "The current user can't participate in the giveaway, because they were already a member of the channel when the giveaway started, and the only_new_subscribers was set when starting the giveaway." + }, + "participating": { + "name": "participating", + "description": "The current user is participating in the giveaway." + }, + "preparing_results": { + "name": "preparing_results", + "description": "If set, the giveaway has ended and the results are being prepared." + }, + "start_date": { + "name": "start_date", + "description": "When was the giveaway started" + } + } + }, + "payments.giveawayInfoResults": { + "name": "payments.giveawayInfoResults", + "description": [ + "A giveaway¹ has ended." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ], + "fields": { + "activated_count": { + "name": "activated_count", + "description": "Number of winners, which activated their gift codes¹.", + "links": [ + "https://core.telegram.org/api/links#premium-giftcode-links" + ] + }, + "finish_date": { + "name": "finish_date", + "description": "End date of the giveaway. May be bigger than the end date specified in parameters of the giveaway." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "gift_code_slug": { + "name": "gift_code_slug", + "description": "If we're one of the winners of this giveaway, contains the Premium gift code¹, see here »² for more info on the full giveaway flow.", + "links": [ + "https://core.telegram.org/api/links#premium-giftcode-links", + "https://core.telegram.org/api/giveaways" + ] + }, + "refunded": { + "name": "refunded", + "description": "Whether the giveaway was canceled and was fully refunded." + }, + "start_date": { + "name": "start_date", + "description": "Start date of the giveaway" + }, + "winner": { + "name": "winner", + "description": "Whether we're one of the winners of this giveaway." + }, + "winners_count": { + "name": "winners_count", + "description": "Number of winners in the giveaway" + } + } + }, + "payments.paymentForm": { + "name": "payments.paymentForm", + "description": [ + "Payment form" + ], + "fields": { + "additional_methods": { + "name": "additional_methods", + "description": "Additional payment methods" + }, + "bot_id": { + "name": "bot_id", + "description": "Bot ID" + }, + "can_save_credentials": { + "name": "can_save_credentials", + "description": "Whether the user can choose to save credentials." + }, + "description": { + "name": "description", + "description": "Description" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "form_id": { + "name": "form_id", + "description": "Form ID" + }, + "invoice": { + "name": "invoice", + "description": "Invoice" + }, + "native_params": { + "name": "native_params", + "description": "Contains information about the payment provider, if available, to support it natively without the need for opening the URL.A JSON object that can contain the following fields:- apple_pay_merchant_id: Apple Pay merchant ID- google_pay_public_key: Google Pay public key- need_country: True, if the user country must be provided,- need_zip: True, if the user ZIP/postal code must be provided,- need_cardholder_name: True, if the cardholder name must be provided" + }, + "native_provider": { + "name": "native_provider", + "description": "Payment provider name.One of the following:- stripe" + }, + "password_missing": { + "name": "password_missing", + "description": "Indicates that the user can save payment credentials, but only after setting up a 2FA password¹ (currently the account doesn't have a 2FA password²)", + "links": [ + "https://core.telegram.org/api/srp", + "https://core.telegram.org/api/srp" + ] + }, + "photo": { + "name": "photo", + "description": "Product photo" + }, + "provider_id": { + "name": "provider_id", + "description": "Payment provider ID." + }, + "saved_credentials": { + "name": "saved_credentials", + "description": "Contains information about saved card credentials" + }, + "saved_info": { + "name": "saved_info", + "description": "Saved server-side order information" + }, + "title": { + "name": "title", + "description": "Form title" + }, + "url": { + "name": "url", + "description": "Payment form URL" + }, + "users": { + "name": "users", + "description": "Users" + } + } + }, + "payments.paymentReceipt": { + "name": "payments.paymentReceipt", + "description": [ + "Receipt" + ], + "fields": { + "bot_id": { + "name": "bot_id", + "description": "Bot ID" + }, + "credentials_title": { + "name": "credentials_title", + "description": "Payment credential name" + }, + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "date": { + "name": "date", + "description": "Date of generation" + }, + "description": { + "name": "description", + "description": "Description" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "info": { + "name": "info", + "description": "Info" + }, + "invoice": { + "name": "invoice", + "description": "Invoice" + }, + "photo": { + "name": "photo", + "description": "Photo" + }, + "provider_id": { + "name": "provider_id", + "description": "Provider ID" + }, + "shipping": { + "name": "shipping", + "description": "Selected shipping option" + }, + "tip_amount": { + "name": "tip_amount", + "description": "Tipped amount" + }, + "title": { + "name": "title", + "description": "Title" + }, + "total_amount": { + "name": "total_amount", + "description": "Total amount in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + }, + "users": { + "name": "users", + "description": "Users" + } + } + }, + "payments.paymentResult": { + "name": "payments.paymentResult", + "description": [ + "Payment result" + ], + "fields": { + "updates": { + "name": "updates", + "description": "Info about the payment" + } + } + }, + "payments.paymentVerificationNeeded": { + "name": "payments.paymentVerificationNeeded", + "description": [ + "Payment was not successful, additional verification is needed" + ], + "fields": { + "url": { + "name": "url", + "description": "URL for additional payment credentials verification" + } + } + }, + "payments.savedInfo": { + "name": "payments.savedInfo", + "description": [ + "Saved server-side order information" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "has_saved_credentials": { + "name": "has_saved_credentials", + "description": "Whether the user has some saved payment credentials" + }, + "saved_info": { + "name": "saved_info", + "description": "Saved server-side order information" + } + } + }, + "peerBlocked": { + "name": "peerBlocked", + "description": [ + "Information about a blocked peer" + ], + "fields": { + "date": { + "name": "date", + "description": "When was the peer blocked" + }, + "peer_id": { + "name": "peer_id", + "description": "Peer ID" + } + } + }, + "peerChannel": { + "name": "peerChannel", + "description": [ + "Channel/supergroup" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "Channel ID" + } + } + }, + "peerChat": { + "name": "peerChat", + "description": [ + "Group." + ], + "fields": { + "chat_id": { + "name": "chat_id", + "description": "Group identifier" + } + } + }, + "peerColor": { + "name": "peerColor", + "description": [ + "Represents a color palette »¹." + ], + "links": [ + "https://core.telegram.org/api/colors" + ], + "fields": { + "background_emoji_id": { + "name": "background_emoji_id", + "description": "Optional custom emoji ID¹ used to generate the pattern.", + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + }, + "color": { + "name": "color", + "description": "Color palette ID, see here »¹ for more info; if not set, the default palette should be used.", + "links": [ + "https://core.telegram.org/api/colors" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + } + } + }, + "peerLocated": { + "name": "peerLocated", + "description": [ + "Peer geolocated nearby" + ], + "fields": { + "distance": { + "name": "distance", + "description": "Distance from the peer in meters" + }, + "expires": { + "name": "expires", + "description": "Validity period of current data" + }, + "peer": { + "name": "peer", + "description": "Peer" + } + } + }, + "peerNotifySettings": { + "name": "peerNotifySettings", + "description": [ + "Notification settings." + ], + "fields": { + "android_sound": { + "name": "android_sound", + "description": "Notification sound for the official android application" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "ios_sound": { + "name": "ios_sound", + "description": "Notification sound for the official iOS application" + }, + "mute_until": { + "name": "mute_until", + "description": "Mute all notifications until this date" + }, + "other_sound": { + "name": "other_sound", + "description": "Notification sound for other applications" + }, + "show_previews": { + "name": "show_previews", + "description": "(Ternary value) If set, indicates whether or not to display previews of messages in notifications; otherwise the default behavior should be used." + }, + "silent": { + "name": "silent", + "description": "(Ternary value) If set, indicates whether to mute or unmute the peer; otherwise the default behavior should be used." + }, + "stories_android_sound": { + "name": "stories_android_sound", + "description": "Sound for story notifications on the official Android application" + }, + "stories_hide_sender": { + "name": "stories_hide_sender", + "description": "Whether the sender name should be displayed in story notifications." + }, + "stories_ios_sound": { + "name": "stories_ios_sound", + "description": "Sound for story notifications on the official iOS application" + }, + "stories_muted": { + "name": "stories_muted", + "description": "Whether story notifications should be disabled." + }, + "stories_other_sound": { + "name": "stories_other_sound", + "description": "Sound for story notifications on other applications" + } + } + }, + "peerSelfLocated": { + "name": "peerSelfLocated", + "description": [ + "Current peer" + ], + "fields": { + "expires": { + "name": "expires", + "description": "Expiry of geolocation info for current peer" + } + } + }, + "peerSettings": { + "name": "peerSettings", + "description": [ + "List of actions that are possible when interacting with this user, to be shown as suggested actions in the chat action bar »¹, see here »² for more info." + ], + "links": [ + "https://core.telegram.org/api/action-bar", + "https://core.telegram.org/api/action-bar" + ], + "fields": { + "add_contact": { + "name": "add_contact", + "description": "Whether we can add the user as contact" + }, + "autoarchived": { + "name": "autoarchived", + "description": "Whether this peer was automatically archived according to privacy settings¹ and can be unarchived", + "links": [ + "https://core.telegram.org/constructor/globalPrivacySettings" + ] + }, + "block_contact": { + "name": "block_contact", + "description": "Whether we can block the user" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "geo_distance": { + "name": "geo_distance", + "description": "Distance in meters between us and this peer" + }, + "invite_members": { + "name": "invite_members", + "description": "If set, this is a recently created group chat to which new members can be invited" + }, + "need_contacts_exception": { + "name": "need_contacts_exception", + "description": "Whether a special exception for contacts is needed" + }, + "report_geo": { + "name": "report_geo", + "description": "Whether we can report a geogroup as irrelevant for this location" + }, + "report_spam": { + "name": "report_spam", + "description": "Whether we can still report the user for spam" + }, + "request_chat_broadcast": { + "name": "request_chat_broadcast", + "description": "This flag is set if request_chat_title and request_chat_date fields are set and the join request »¹ is related to a channel (otherwise if only the request fields are set, the join request »² is related to a chat).", + "links": [ + "https://core.telegram.org/api/invites#join-requests", + "https://core.telegram.org/api/invites#join-requests" + ] + }, + "request_chat_date": { + "name": "request_chat_date", + "description": "If set, this is a private chat with an administrator of a chat or channel to which the user sent a join request, and this field contains the timestamp when the join request »¹ was sent.", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + }, + "request_chat_title": { + "name": "request_chat_title", + "description": "If set, this is a private chat with an administrator of a chat or channel to which the user sent a join request, and this field contains the chat/channel's title." + }, + "share_contact": { + "name": "share_contact", + "description": "Whether we can share the user's contact" + } + } + }, + "peerStories": { + "name": "peerStories", + "description": [ + "Stories¹ associated to a peer" + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "max_read_id": { + "name": "max_read_id", + "description": "If set, contains the ID of the maximum read story" + }, + "peer": { + "name": "peer", + "description": "The peer" + }, + "stories": { + "name": "stories", + "description": "Stories" + } + } + }, + "peerUser": { + "name": "peerUser", + "description": [ + "Chat partner" + ], + "fields": { + "user_id": { + "name": "user_id", + "description": "User identifier" + } + } + }, + "phone.exportedGroupCallInvite": { + "name": "phone.exportedGroupCallInvite", + "description": [ + "An invite to a group call or livestream" + ], + "fields": { + "link": { + "name": "link", + "description": "Invite link" + } + } + }, + "phone.groupCall": { + "name": "phone.groupCall", + "description": [ + "Contains info about a group call, and partial info about its participants." + ], + "fields": { + "call": { + "name": "call", + "description": "Info about the group call" + }, + "chats": { + "name": "chats", + "description": "Chats mentioned in the participants vector" + }, + "participants": { + "name": "participants", + "description": "A partial list of participants." + }, + "participants_next_offset": { + "name": "participants_next_offset", + "description": "Next offset to use when fetching the remaining participants using phone.getGroupParticipants¹", + "links": [ + "https://core.telegram.org/method/phone.getGroupParticipants" + ] + }, + "users": { + "name": "users", + "description": "Users mentioned in the participants vector" + } + } + }, + "phone.groupCallStreamChannels": { + "name": "phone.groupCallStreamChannels", + "description": [ + "Info about RTMP streams in a group call or livestream" + ], + "fields": { + "channels": { + "name": "channels", + "description": "RTMP streams" + } + } + }, + "phone.groupCallStreamRtmpUrl": { + "name": "phone.groupCallStreamRtmpUrl", + "description": [ + "RTMP URL and stream key to be used in streaming software" + ], + "fields": { + "key": { + "name": "key", + "description": "Stream key" + }, + "url": { + "name": "url", + "description": "RTMP URL" + } + } + }, + "phone.groupParticipants": { + "name": "phone.groupParticipants", + "description": [ + "Info about the participants of a group call or livestream" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "count": { + "name": "count", + "description": "Number of participants" + }, + "next_offset": { + "name": "next_offset", + "description": "If not empty, the specified list of participants is partial, and more participants can be fetched specifying this parameter as offset in phone.getGroupParticipants¹.", + "links": [ + "https://core.telegram.org/method/phone.getGroupParticipants" + ] + }, + "participants": { + "name": "participants", + "description": "List of participants" + }, + "users": { + "name": "users", + "description": "Mentioned users" + }, + "version": { + "name": "version", + "description": "Version info" + } + } + }, + "phone.joinAsPeers": { + "name": "phone.joinAsPeers", + "description": [ + "A list of peers that can be used to join a group call, presenting yourself as a specific user/channel." + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chats mentioned in the peers vector" + }, + "peers": { + "name": "peers", + "description": "Peers" + }, + "users": { + "name": "users", + "description": "Users mentioned in the peers vector" + } + } + }, + "phone.phoneCall": { + "name": "phone.phoneCall", + "description": [ + "A VoIP phone call" + ], + "fields": { + "phone_call": { + "name": "phone_call", + "description": "The VoIP phone call" + }, + "users": { + "name": "users", + "description": "VoIP phone call participants" + } + } + }, + "phoneCall": { + "name": "phoneCall", + "description": [ + "Phone call" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "admin_id": { + "name": "admin_id", + "description": "User ID of the creator of the call" + }, + "connections": { + "name": "connections", + "description": "List of endpoints the user can connect to to exchange call data" + }, + "date": { + "name": "date", + "description": "Date of creation of the call" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "g_a_or_b": { + "name": "g_a_or_b", + "description": "Parameter for key exchange¹", + "links": [ + "https://core.telegram.org/api/end-to-end/voice-calls" + ] + }, + "id": { + "name": "id", + "description": "Call ID" + }, + "key_fingerprint": { + "name": "key_fingerprint", + "description": "Key fingerprint¹", + "links": [ + "https://core.telegram.org/api/end-to-end/voice-calls" + ] + }, + "p2p_allowed": { + "name": "p2p_allowed", + "description": "Whether P2P connection to the other peer is allowed" + }, + "participant_id": { + "name": "participant_id", + "description": "User ID of the other participant in the call" + }, + "protocol": { + "name": "protocol", + "description": "Call protocol info to be passed to libtgvoip" + }, + "start_date": { + "name": "start_date", + "description": "When was the call actually started" + }, + "video": { + "name": "video", + "description": "Whether this is a video call" + } + } + }, + "phoneCallAccepted": { + "name": "phoneCallAccepted", + "description": [ + "An accepted phone call" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash of phone call" + }, + "admin_id": { + "name": "admin_id", + "description": "ID of the call creator" + }, + "date": { + "name": "date", + "description": "When was the call accepted" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "g_b": { + "name": "g_b", + "description": "B parameter for secure E2E phone call key exchange¹", + "links": [ + "https://core.telegram.org/api/end-to-end/voice-calls" + ] + }, + "id": { + "name": "id", + "description": "ID of accepted phone call" + }, + "participant_id": { + "name": "participant_id", + "description": "ID of the other user in the call" + }, + "protocol": { + "name": "protocol", + "description": "Protocol to use for phone call" + }, + "video": { + "name": "video", + "description": "Whether this is a video call" + } + } + }, + "phoneCallDiscardReasonBusy": { + "name": "phoneCallDiscardReasonBusy", + "description": [ + "The phone call was discarded because the user is busy in another call" + ] + }, + "phoneCallDiscardReasonDisconnect": { + "name": "phoneCallDiscardReasonDisconnect", + "description": [ + "The phone call was disconnected" + ] + }, + "phoneCallDiscardReasonHangup": { + "name": "phoneCallDiscardReasonHangup", + "description": [ + "The phone call was ended normally" + ] + }, + "phoneCallDiscardReasonMissed": { + "name": "phoneCallDiscardReasonMissed", + "description": [ + "The phone call was missed" + ] + }, + "phoneCallDiscarded": { + "name": "phoneCallDiscarded", + "description": [ + "Indicates a discarded phone call" + ], + "fields": { + "duration": { + "name": "duration", + "description": "Duration of the phone call in seconds" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Call ID" + }, + "need_debug": { + "name": "need_debug", + "description": "Whether the server required the client to send¹ the libtgvoip call debug data", + "links": [ + "https://core.telegram.org/method/phone.saveCallDebug" + ] + }, + "need_rating": { + "name": "need_rating", + "description": "Whether the server required the user to rate¹ the call", + "links": [ + "https://core.telegram.org/method/phone.setCallRating" + ] + }, + "reason": { + "name": "reason", + "description": "Why was the phone call discarded" + }, + "video": { + "name": "video", + "description": "Whether the call was a video call" + } + } + }, + "phoneCallEmpty": { + "name": "phoneCallEmpty", + "description": [ + "Empty constructor" + ], + "fields": { + "id": { + "name": "id", + "description": "Call ID" + } + } + }, + "phoneCallProtocol": { + "name": "phoneCallProtocol", + "description": [ + "Protocol info for libtgvoip" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "library_versions": { + "name": "library_versions", + "description": "When using phone.requestCall¹ and phone.acceptCall², specify all library versions supported by the client. The server will merge and choose the best library version supported by both peers, returning only the best value in the result of the callee's phone.acceptCall³ and in the phoneCallAccepted⁴ update received by the caller.", + "links": [ + "https://core.telegram.org/method/phone.requestCall", + "https://core.telegram.org/method/phone.acceptCall", + "https://core.telegram.org/method/phone.acceptCall", + "https://core.telegram.org/constructor/phoneCallAccepted" + ] + }, + "max_layer": { + "name": "max_layer", + "description": "Maximum layer for remote libtgvoip" + }, + "min_layer": { + "name": "min_layer", + "description": "Minimum layer for remote libtgvoip" + }, + "udp_p2p": { + "name": "udp_p2p", + "description": "Whether to allow P2P connection to the other participant" + }, + "udp_reflector": { + "name": "udp_reflector", + "description": "Whether to allow connection to the other participants through the reflector servers" + } + } + }, + "phoneCallRequested": { + "name": "phoneCallRequested", + "description": [ + "Requested phone call" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "admin_id": { + "name": "admin_id", + "description": "ID of the creator of the phone call" + }, + "date": { + "name": "date", + "description": "When was the phone call created" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "g_a_hash": { + "name": "g_a_hash", + "description": "Parameter for key exchange¹", + "links": [ + "https://core.telegram.org/api/end-to-end/voice-calls" + ] + }, + "id": { + "name": "id", + "description": "Phone call ID" + }, + "participant_id": { + "name": "participant_id", + "description": "ID of the other participant of the phone call" + }, + "protocol": { + "name": "protocol", + "description": "Call protocol info to be passed to libtgvoip" + }, + "video": { + "name": "video", + "description": "Whether this is a video call" + } + } + }, + "phoneCallWaiting": { + "name": "phoneCallWaiting", + "description": [ + "Incoming phone call" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "admin_id": { + "name": "admin_id", + "description": "Admin ID" + }, + "date": { + "name": "date", + "description": "Date" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Call ID" + }, + "participant_id": { + "name": "participant_id", + "description": "Participant ID" + }, + "protocol": { + "name": "protocol", + "description": "Phone call protocol info" + }, + "receive_date": { + "name": "receive_date", + "description": "When was the phone call received" + }, + "video": { + "name": "video", + "description": "Is this a video call" + } + } + }, + "phoneConnection": { + "name": "phoneConnection", + "description": [ + "Identifies an endpoint that can be used to connect to the other user in a phone call" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Endpoint ID" + }, + "ip": { + "name": "ip", + "description": "IP address of endpoint" + }, + "ipv6": { + "name": "ipv6", + "description": "IPv6 address of endpoint" + }, + "peer_tag": { + "name": "peer_tag", + "description": "Our peer tag" + }, + "port": { + "name": "port", + "description": "Port ID" + }, + "tcp": { + "name": "tcp", + "description": "Whether TCP should be used" + } + } + }, + "phoneConnectionWebrtc": { + "name": "phoneConnectionWebrtc", + "description": [ + "WebRTC connection parameters" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Endpoint ID" + }, + "ip": { + "name": "ip", + "description": "IP address" + }, + "ipv6": { + "name": "ipv6", + "description": "IPv6 address" + }, + "password": { + "name": "password", + "description": "Password" + }, + "port": { + "name": "port", + "description": "Port" + }, + "stun": { + "name": "stun", + "description": "Whether this is a STUN endpoint" + }, + "turn": { + "name": "turn", + "description": "Whether this is a TURN endpoint" + }, + "username": { + "name": "username", + "description": "Username" + } + } + }, + "photo": { + "name": "photo", + "description": [ + "Photo" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "date": { + "name": "date", + "description": "Date of upload" + }, + "dc_id": { + "name": "dc_id", + "description": "DC ID to use for download" + }, + "file_reference": { + "name": "file_reference", + "description": "file reference¹", + "links": [ + "https://core.telegram.org/api/file_reference" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "has_stickers": { + "name": "has_stickers", + "description": "Whether the photo has mask stickers attached to it" + }, + "id": { + "name": "id", + "description": "ID" + }, + "sizes": { + "name": "sizes", + "description": "Available sizes for download" + }, + "video_sizes": { + "name": "video_sizes", + "description": "For animated profiles¹, the MPEG4 videos", + "links": [ + "https://core.telegram.org/api/files#animated-profile-pictures" + ] + } + } + }, + "photoCachedSize": { + "name": "photoCachedSize", + "description": [ + "Description of an image and its content." + ], + "fields": { + "bytes": { + "name": "bytes", + "description": "Binary data, file content" + }, + "h": { + "name": "h", + "description": "Image height" + }, + "type": { + "name": "type", + "description": "Thumbnail type" + }, + "w": { + "name": "w", + "description": "Image width" + } + } + }, + "photoEmpty": { + "name": "photoEmpty", + "description": [ + "Empty constructor, non-existent photo" + ], + "fields": { + "id": { + "name": "id", + "description": "Photo identifier" + } + } + }, + "photoPathSize": { + "name": "photoPathSize", + "description": [ + "Messages with animated stickers can have a compressed svg (\u003c 300 bytes) to show the outline of the sticker before fetching the actual lottie animation." + ], + "fields": { + "bytes": { + "name": "bytes", + "description": "Compressed SVG path payload, see here for decompression instructions¹", + "links": [ + "https://core.telegram.org/api/files#vector-thumbnails" + ] + }, + "type": { + "name": "type", + "description": "Always j" + } + } + }, + "photoSize": { + "name": "photoSize", + "description": [ + "Image description." + ], + "fields": { + "h": { + "name": "h", + "description": "Image height" + }, + "size": { + "name": "size", + "description": "File size" + }, + "type": { + "name": "type", + "description": "Thumbnail type »¹", + "links": [ + "https://core.telegram.org/api/files#image-thumbnail-types" + ] + }, + "w": { + "name": "w", + "description": "Image width" + } + } + }, + "photoSizeEmpty": { + "name": "photoSizeEmpty", + "description": [ + "Empty constructor. Image with this thumbnail is unavailable." + ], + "fields": { + "type": { + "name": "type", + "description": "Thumbnail type »¹", + "links": [ + "https://core.telegram.org/api/files#image-thumbnail-types" + ] + } + } + }, + "photoSizeProgressive": { + "name": "photoSizeProgressive", + "description": [ + "Progressively encoded photosize" + ], + "fields": { + "h": { + "name": "h", + "description": "Photo height" + }, + "sizes": { + "name": "sizes", + "description": "Sizes of progressive JPEG file prefixes, which can be used to preliminarily show the image." + }, + "type": { + "name": "type", + "description": "Photosize type »¹", + "links": [ + "https://core.telegram.org/api/files#image-thumbnail-types" + ] + }, + "w": { + "name": "w", + "description": "Photo width" + } + } + }, + "photoStrippedSize": { + "name": "photoStrippedSize", + "description": [ + "A low-resolution compressed JPG payload" + ], + "fields": { + "bytes": { + "name": "bytes", + "description": "Thumbnail data, see here for more info on decompression »¹", + "links": [ + "https://core.telegram.org/api/files#stripped-thumbnails" + ] + }, + "type": { + "name": "type", + "description": "Thumbnail type" + } + } + }, + "photos.photo": { + "name": "photos.photo", + "description": [ + "Photo with auxiliary data." + ], + "fields": { + "photo": { + "name": "photo", + "description": "Photo" + }, + "users": { + "name": "users", + "description": "Users" + } + } + }, + "photos.photos": { + "name": "photos.photos", + "description": [ + "Full list of photos with auxiliary data." + ], + "fields": { + "photos": { + "name": "photos", + "description": "List of photos" + }, + "users": { + "name": "users", + "description": "List of mentioned users" + } + } + }, + "photos.photosSlice": { + "name": "photos.photosSlice", + "description": [ + "Incomplete list of photos with auxiliary data." + ], + "fields": { + "count": { + "name": "count", + "description": "Total number of photos" + }, + "photos": { + "name": "photos", + "description": "List of photos" + }, + "users": { + "name": "users", + "description": "List of mentioned users" + } + } + }, + "poll": { + "name": "poll", + "description": [ + "Poll" + ], + "fields": { + "answers": { + "name": "answers", + "description": "The possible answers, vote using messages.sendVote¹.", + "links": [ + "https://core.telegram.org/method/messages.sendVote" + ] + }, + "close_date": { + "name": "close_date", + "description": "Point in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 600 seconds in the future; can't be used together with close_period." + }, + "close_period": { + "name": "close_period", + "description": "Amount of time in seconds the poll will be active after creation, 5-600. Can't be used together with close_date." + }, + "closed": { + "name": "closed", + "description": "Whether the poll is closed and doesn't accept any more answers" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "ID of the poll" + }, + "multiple_choice": { + "name": "multiple_choice", + "description": "Whether multiple options can be chosen as answer" + }, + "public_voters": { + "name": "public_voters", + "description": "Whether cast votes are publicly visible to all users (non-anonymous poll)" + }, + "question": { + "name": "question", + "description": "The question of the poll" + }, + "quiz": { + "name": "quiz", + "description": "Whether this is a quiz (with wrong and correct answers, results shown in the return type)" + } + } + }, + "pollAnswer": { + "name": "pollAnswer", + "description": [ + "A possible answer of a poll" + ], + "fields": { + "option": { + "name": "option", + "description": "The param that has to be passed to messages.sendVote¹.", + "links": [ + "https://core.telegram.org/method/messages.sendVote" + ] + }, + "text": { + "name": "text", + "description": "Textual representation of the answer" + } + } + }, + "pollAnswerVoters": { + "name": "pollAnswerVoters", + "description": [ + "A poll answer, and how users voted on it" + ], + "fields": { + "chosen": { + "name": "chosen", + "description": "Whether we have chosen this answer" + }, + "correct": { + "name": "correct", + "description": "For quizzes, whether the option we have chosen is correct" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "option": { + "name": "option", + "description": "The param that has to be passed to messages.sendVote¹.", + "links": [ + "https://core.telegram.org/method/messages.sendVote" + ] + }, + "voters": { + "name": "voters", + "description": "How many users voted for this option" + } + } + }, + "pollResults": { + "name": "pollResults", + "description": [ + "Results of poll" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "min": { + "name": "min", + "description": "Similar to min¹ objects, used for poll constructors that are the same for all users so they don't have the option chosen by the current user (you can use messages.getPollResults² to get the full poll results).", + "links": [ + "https://core.telegram.org/api/min", + "https://core.telegram.org/method/messages.getPollResults" + ] + }, + "recent_voters": { + "name": "recent_voters", + "description": "IDs of the last users that recently voted in the poll" + }, + "results": { + "name": "results", + "description": "Poll results" + }, + "solution": { + "name": "solution", + "description": "Explanation of quiz solution" + }, + "solution_entities": { + "name": "solution_entities", + "description": "Message entities for styled text in quiz solution¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "total_voters": { + "name": "total_voters", + "description": "Total number of people that voted in the poll" + } + } + }, + "popularContact": { + "name": "popularContact", + "description": [ + "Popular contact" + ], + "fields": { + "client_id": { + "name": "client_id", + "description": "Contact identifier" + }, + "importers": { + "name": "importers", + "description": "How many people imported this contact" + } + } + }, + "postAddress": { + "name": "postAddress", + "description": [ + "Shipping address" + ], + "fields": { + "city": { + "name": "city", + "description": "City" + }, + "country_iso2": { + "name": "country_iso2", + "description": "ISO 3166-1 alpha-2 country code" + }, + "post_code": { + "name": "post_code", + "description": "Address post code" + }, + "state": { + "name": "state", + "description": "State, if applicable (empty otherwise)" + }, + "street_line1": { + "name": "street_line1", + "description": "First line for the address" + }, + "street_line2": { + "name": "street_line2", + "description": "Second line for the address" + } + } + }, + "postInteractionCountersMessage": { + "name": "postInteractionCountersMessage", + "description": [ + "Interaction counters for a message." + ], + "fields": { + "forwards": { + "name": "forwards", + "description": "Number of forwards to public channels" + }, + "msg_id": { + "name": "msg_id", + "description": "Message ID" + }, + "reactions": { + "name": "reactions", + "description": "Number of reactions" + }, + "views": { + "name": "views", + "description": "Number of views" + } + } + }, + "postInteractionCountersStory": { + "name": "postInteractionCountersStory", + "description": [ + "Interaction counters for a story." + ], + "fields": { + "forwards": { + "name": "forwards", + "description": "Number of forwards and reposts to public chats and channels" + }, + "reactions": { + "name": "reactions", + "description": "Number of reactions" + }, + "story_id": { + "name": "story_id", + "description": "Story ID" + }, + "views": { + "name": "views", + "description": "Number of views" + } + } + }, + "premium.boostsList": { + "name": "premium.boostsList", + "description": [ + "List of boosts¹ that were applied to a peer by multiple users." + ], + "links": [ + "https://core.telegram.org/api/boost" + ], + "fields": { + "boosts": { + "name": "boosts", + "description": "Boosts¹", + "links": [ + "https://core.telegram.org/api/boost" + ] + }, + "count": { + "name": "count", + "description": "Total number of results" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "next_offset": { + "name": "next_offset", + "description": "Offset that can be used for pagination¹.", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "premium.boostsStatus": { + "name": "premium.boostsStatus", + "description": [ + "Contains info about the current boost status¹ of a peer." + ], + "links": [ + "https://core.telegram.org/api/boost" + ], + "fields": { + "boost_url": { + "name": "boost_url", + "description": "Boost deep link »¹ that can be used to boost the chat.", + "links": [ + "https://core.telegram.org/api/links#boost-links" + ] + }, + "boosts": { + "name": "boosts", + "description": "Total number of boosts acquired so far." + }, + "current_level_boosts": { + "name": "current_level_boosts", + "description": "The number of boosts acquired so far in the current level." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "gift_boosts": { + "name": "gift_boosts", + "description": "The number of boosts acquired from created Telegram Premium gift codes¹ and giveaways²; only returned to channel admins.", + "links": [ + "https://core.telegram.org/api/giveaways", + "https://core.telegram.org/api/giveaways" + ] + }, + "level": { + "name": "level", + "description": "The current boost level of the channel." + }, + "my_boost": { + "name": "my_boost", + "description": "Whether we're currently boosting this channel, my_boost_slots will also be set." + }, + "my_boost_slots": { + "name": "my_boost_slots", + "description": "Indicates which of our boost slots¹ we've assigned to this peer (populated if my_boost is set).", + "links": [ + "https://core.telegram.org/api/boost" + ] + }, + "next_level_boosts": { + "name": "next_level_boosts", + "description": "Total number of boosts needed to reach the next level; if absent, the next level isn't available." + }, + "premium_audience": { + "name": "premium_audience", + "description": "Only returned to channel admins: contains the approximated number of Premium users subscribed to the channel, related to the total number of subscribers." + }, + "prepaid_giveaways": { + "name": "prepaid_giveaways", + "description": "A list of prepaid giveaways¹ available for the chat; only returned to channel admins.", + "links": [ + "https://core.telegram.org/api/giveaways" + ] + } + } + }, + "premium.myBoosts": { + "name": "premium.myBoosts", + "description": [ + "A list of peers we are currently boosting¹, and how many boost slots² we have left." + ], + "links": [ + "https://core.telegram.org/api/boost", + "https://core.telegram.org/api/boost" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Referenced chats" + }, + "my_boosts": { + "name": "my_boosts", + "description": "Info about boosted peers and remaining boost slots." + }, + "users": { + "name": "users", + "description": "Referenced users" + } + } + }, + "premiumGiftCodeOption": { + "name": "premiumGiftCodeOption", + "description": [ + "Contains info about a giveaway/gift¹ option." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ], + "fields": { + "amount": { + "name": "amount", + "description": "Total price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + }, + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "months": { + "name": "months", + "description": "Duration in months of each gifted Telegram Premium¹ subscription.", + "links": [ + "https://core.telegram.org/api/premium" + ] + }, + "store_product": { + "name": "store_product", + "description": "Identifier of the store product associated with the option, official apps only." + }, + "store_quantity": { + "name": "store_quantity", + "description": "Number of times the store product must be paid" + }, + "users": { + "name": "users", + "description": "Number of users which will be able to activate the gift codes." + } + } + }, + "premiumGiftOption": { + "name": "premiumGiftOption", + "description": [ + "Telegram Premium gift option" + ], + "fields": { + "amount": { + "name": "amount", + "description": "Price of the product in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + }, + "bot_url": { + "name": "bot_url", + "description": "An invoice deep link »¹ to an invoice for in-app payment, using the official Premium bot; may be empty if direct payment isn't available.", + "links": [ + "https://core.telegram.org/api/links#invoice-links" + ] + }, + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "months": { + "name": "months", + "description": "Duration of gifted Telegram Premium subscription" + }, + "store_product": { + "name": "store_product", + "description": "An identifier for the App Store/Play Store product associated with the Premium gift." + } + } + }, + "premiumSubscriptionOption": { + "name": "premiumSubscriptionOption", + "description": [ + "Describes a Telegram Premium subscription option" + ], + "fields": { + "amount": { + "name": "amount", + "description": "Total price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + }, + "bot_url": { + "name": "bot_url", + "description": "Deep link¹ used to initiate payment", + "links": [ + "https://core.telegram.org/api/links" + ] + }, + "can_purchase_upgrade": { + "name": "can_purchase_upgrade", + "description": "Whether this subscription option can be used to upgrade the existing Telegram Premium subscription. When upgrading Telegram Premium subscriptions bought through stores, make sure that the store transaction ID is equal to transaction, to avoid upgrading someone else's account, if the client is currently logged into multiple accounts." + }, + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "current": { + "name": "current", + "description": "Whether this subscription option is currently in use." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "months": { + "name": "months", + "description": "Duration of subscription in months" + }, + "store_product": { + "name": "store_product", + "description": "Store product ID, only for official apps" + }, + "transaction": { + "name": "transaction", + "description": "Identifier of the last in-store transaction for the currently used subscription on the current account." + } + } + }, + "prepaidGiveaway": { + "name": "prepaidGiveaway", + "description": [ + "Contains info about a prepaid giveaway »¹." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ], + "fields": { + "date": { + "name": "date", + "description": "Payment date." + }, + "id": { + "name": "id", + "description": "Prepaid giveaway ID." + }, + "months": { + "name": "months", + "description": "Duration in months of each gifted Telegram Premium¹ subscription.", + "links": [ + "https://core.telegram.org/api/premium" + ] + }, + "quantity": { + "name": "quantity", + "description": "Number of given away Telegram Premium¹ subscriptions.", + "links": [ + "https://core.telegram.org/api/premium" + ] + } + } + }, + "privacyKeyAbout": { + "name": "privacyKeyAbout", + "description": [ + "Whether people can see your bio" + ] + }, + "privacyKeyAddedByPhone": { + "name": "privacyKeyAddedByPhone", + "description": [ + "Whether this user can be added to our contact list by their phone number" + ] + }, + "privacyKeyChatInvite": { + "name": "privacyKeyChatInvite", + "description": [ + "Whether the user can be invited to chats" + ] + }, + "privacyKeyForwards": { + "name": "privacyKeyForwards", + "description": [ + "Whether messages forwarded from the user will be anonymously forwarded¹" + ], + "links": [ + "https://telegram.org/blog/unsend-privacy-emoji#anonymous-forwarding" + ] + }, + "privacyKeyPhoneCall": { + "name": "privacyKeyPhoneCall", + "description": [ + "Whether the user accepts phone calls" + ] + }, + "privacyKeyPhoneNumber": { + "name": "privacyKeyPhoneNumber", + "description": [ + "Whether the user allows us to see his phone number" + ] + }, + "privacyKeyPhoneP2P": { + "name": "privacyKeyPhoneP2P", + "description": [ + "Whether P2P connections in phone calls with this user are allowed" + ] + }, + "privacyKeyProfilePhoto": { + "name": "privacyKeyProfilePhoto", + "description": [ + "Whether the profile picture of the user is visible" + ] + }, + "privacyKeyStatusTimestamp": { + "name": "privacyKeyStatusTimestamp", + "description": [ + "Whether we can see the last online timestamp of this user" + ] + }, + "privacyKeyVoiceMessages": { + "name": "privacyKeyVoiceMessages", + "description": [ + "Whether the user accepts voice messages" + ] + }, + "privacyValueAllowAll": { + "name": "privacyValueAllowAll", + "description": [ + "Allow all users" + ] + }, + "privacyValueAllowChatParticipants": { + "name": "privacyValueAllowChatParticipants", + "description": [ + "Allow all participants of certain chats" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Allowed chats" + } + } + }, + "privacyValueAllowCloseFriends": { + "name": "privacyValueAllowCloseFriends", + "description": [ + "Allow only close friends »¹" + ], + "links": [ + "https://core.telegram.org/api/privacy" + ] + }, + "privacyValueAllowContacts": { + "name": "privacyValueAllowContacts", + "description": [ + "Allow all contacts" + ] + }, + "privacyValueAllowUsers": { + "name": "privacyValueAllowUsers", + "description": [ + "Allow only certain users" + ], + "fields": { + "users": { + "name": "users", + "description": "Allowed users" + } + } + }, + "privacyValueDisallowAll": { + "name": "privacyValueDisallowAll", + "description": [ + "Disallow all users" + ] + }, + "privacyValueDisallowChatParticipants": { + "name": "privacyValueDisallowChatParticipants", + "description": [ + "Disallow only participants of certain chats" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Disallowed chats" + } + } + }, + "privacyValueDisallowContacts": { + "name": "privacyValueDisallowContacts", + "description": [ + "Disallow only contacts" + ] + }, + "privacyValueDisallowUsers": { + "name": "privacyValueDisallowUsers", + "description": [ + "Disallow only certain users" + ], + "fields": { + "users": { + "name": "users", + "description": "Disallowed users" + } + } + }, + "publicForwardMessage": { + "name": "publicForwardMessage", + "description": [ + "Contains info about a forward of a story¹ as a message." + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "message": { + "name": "message", + "description": "Info about the message with the reposted story." + } + } + }, + "publicForwardStory": { + "name": "publicForwardStory", + "description": [ + "Contains info about a forward of a story¹ as a repost by a public channel." + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "peer": { + "name": "peer", + "description": "The channel that reposted the story." + }, + "story": { + "name": "story", + "description": "The reposted story (may be different from the original story)." + } + } + }, + "reactionCount": { + "name": "reactionCount", + "description": [ + "Reactions" + ], + "fields": { + "chosen_order": { + "name": "chosen_order", + "description": "If set, indicates that the current user also sent this reaction. The integer value indicates when was the reaction added: the bigger the value, the newer the reaction." + }, + "count": { + "name": "count", + "description": "Number of users that reacted with this emoji." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "reaction": { + "name": "reaction", + "description": "The reaction." + } + } + }, + "reactionCustomEmoji": { + "name": "reactionCustomEmoji", + "description": [ + "Custom emoji¹ message reaction" + ], + "links": [ + "https://core.telegram.org/api/custom-emoji" + ], + "fields": { + "document_id": { + "name": "document_id", + "description": "Custom emoji document ID¹", + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + } + } + }, + "reactionEmoji": { + "name": "reactionEmoji", + "description": [ + "Normal emoji message reaction" + ], + "fields": { + "emoticon": { + "name": "emoticon", + "description": "Emoji" + } + } + }, + "reactionEmpty": { + "name": "reactionEmpty", + "description": [ + "No reaction" + ] + }, + "readParticipantDate": { + "name": "readParticipantDate", + "description": [ + "Contains info about when a certain participant has read a message" + ], + "fields": { + "date": { + "name": "date", + "description": "When the user read the message" + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + } + }, + "receivedNotifyMessage": { + "name": "receivedNotifyMessage", + "description": [ + "Message ID, for which PUSH-notifications were cancelled." + ], + "fields": { + "flags": { + "name": "flags", + "description": "Reserved for future use" + }, + "id": { + "name": "id", + "description": "Message ID, for which PUSH-notifications were canceled" + } + } + }, + "recentMeUrlChat": { + "name": "recentMeUrlChat", + "description": [ + "Recent t.me link to a chat" + ], + "fields": { + "chat_id": { + "name": "chat_id", + "description": "Chat ID" + }, + "url": { + "name": "url", + "description": "t.me URL" + } + } + }, + "recentMeUrlChatInvite": { + "name": "recentMeUrlChatInvite", + "description": [ + "Recent t.me invite link to a chat" + ], + "fields": { + "chat_invite": { + "name": "chat_invite", + "description": "Chat invitation" + }, + "url": { + "name": "url", + "description": "t.me URL" + } + } + }, + "recentMeUrlStickerSet": { + "name": "recentMeUrlStickerSet", + "description": [ + "Recent t.me stickerset installation URL" + ], + "fields": { + "set": { + "name": "set", + "description": "Stickerset" + }, + "url": { + "name": "url", + "description": "t.me URL" + } + } + }, + "recentMeUrlUnknown": { + "name": "recentMeUrlUnknown", + "description": [ + "Unknown t.me url" + ], + "fields": { + "url": { + "name": "url", + "description": "URL" + } + } + }, + "recentMeUrlUser": { + "name": "recentMeUrlUser", + "description": [ + "Recent t.me link to a user" + ], + "fields": { + "url": { + "name": "url", + "description": "URL" + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + } + }, + "replyInlineMarkup": { + "name": "replyInlineMarkup", + "description": [ + "Bot or inline keyboard" + ], + "fields": { + "rows": { + "name": "rows", + "description": "Bot or inline keyboard rows" + } + } + }, + "replyKeyboardForceReply": { + "name": "replyKeyboardForceReply", + "description": [ + "Force the user to send a reply" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "placeholder": { + "name": "placeholder", + "description": "The placeholder to be shown in the input field when the keyboard is active; 1-64 characters." + }, + "selective": { + "name": "selective", + "description": "Use this parameter if you want to show the keyboard to specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message. Example: A user requests to change the bot's language, bot replies to the request with a keyboard to select the new language. Other users in the group don't see the keyboard." + }, + "single_use": { + "name": "single_use", + "description": "Requests clients to hide the keyboard as soon as it's been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat – the user can press a special button in the input field to see the custom keyboard again." + } + } + }, + "replyKeyboardHide": { + "name": "replyKeyboardHide", + "description": [ + "Hide sent bot keyboard" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "selective": { + "name": "selective", + "description": "Use this flag if you want to remove the keyboard for specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message.Example: A user votes in a poll, bot returns confirmation message in reply to the vote and removes the keyboard for that user, while still showing the keyboard with poll options to users who haven't voted yet" + } + } + }, + "replyKeyboardMarkup": { + "name": "replyKeyboardMarkup", + "description": [ + "Bot keyboard" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "persistent": { + "name": "persistent", + "description": "Requests clients to always show the keyboard when the regular keyboard is hidden." + }, + "placeholder": { + "name": "placeholder", + "description": "The placeholder to be shown in the input field when the keyboard is active; 1-64 characters." + }, + "resize": { + "name": "resize", + "description": "Requests clients to resize the keyboard vertically for optimal fit (e.g., make the keyboard smaller if there are just two rows of buttons). If not set, the custom keyboard is always of the same height as the app's standard keyboard." + }, + "rows": { + "name": "rows", + "description": "Button row" + }, + "selective": { + "name": "selective", + "description": "Use this parameter if you want to show the keyboard to specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message.Example: A user requests to change the bot's language, bot replies to the request with a keyboard to select the new language. Other users in the group don't see the keyboard." + }, + "single_use": { + "name": "single_use", + "description": "Requests clients to hide the keyboard as soon as it's been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat – the user can press a special button in the input field to see the custom keyboard again." + } + } + }, + "requestPeerTypeBroadcast": { + "name": "requestPeerTypeBroadcast", + "description": [ + "Choose a channel" + ], + "fields": { + "bot_admin_rights": { + "name": "bot_admin_rights", + "description": "If specified, allows only choosing channels where the bot is an admin with at least the specified admin rights." + }, + "creator": { + "name": "creator", + "description": "Whether to allow only choosing channels that were created by the current user." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "has_username": { + "name": "has_username", + "description": "If specified, allows only choosing channels with or without a username, according to the value of Bool¹.", + "links": [ + "https://core.telegram.org/type/Bool" + ] + }, + "user_admin_rights": { + "name": "user_admin_rights", + "description": "If specified, allows only choosing channels where the current user is an admin with at least the specified admin rights." + } + } + }, + "requestPeerTypeChat": { + "name": "requestPeerTypeChat", + "description": [ + "Choose a chat or supergroup" + ], + "fields": { + "bot_admin_rights": { + "name": "bot_admin_rights", + "description": "If specified, allows only choosing chats or supergroups where the bot is an admin with at least the specified admin rights." + }, + "bot_participant": { + "name": "bot_participant", + "description": "Whether to allow only choosing chats or supergroups where the bot is a participant." + }, + "creator": { + "name": "creator", + "description": "Whether to allow only choosing chats or supergroups that were created by the current user." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "forum": { + "name": "forum", + "description": "If specified, allows only choosing chats or supergroups that are or aren't forums¹, according to the value of Bool².", + "links": [ + "https://core.telegram.org/api/forum", + "https://core.telegram.org/type/Bool" + ] + }, + "has_username": { + "name": "has_username", + "description": "If specified, allows only choosing channels with or without a username, according to the value of Bool¹.", + "links": [ + "https://core.telegram.org/type/Bool" + ] + }, + "user_admin_rights": { + "name": "user_admin_rights", + "description": "If specified, allows only choosing chats or supergroups where the current user is an admin with at least the specified admin rights." + } + } + }, + "requestPeerTypeUser": { + "name": "requestPeerTypeUser", + "description": [ + "Choose a user." + ], + "fields": { + "bot": { + "name": "bot", + "description": "Whether to allow choosing only bots." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "premium": { + "name": "premium", + "description": "Whether to allow choosing only Premium¹ users.", + "links": [ + "https://core.telegram.org/api/premium" + ] + } + } + }, + "restrictionReason": { + "name": "restrictionReason", + "description": [ + "Restriction reason.", + "Contains the reason why access to a certain object must be restricted. Clients are supposed to deny access to the channel if the platform field is equal to all or to the current platform (ios, android, wp, etc.). Platforms can be concatenated (ios-android, ios-wp), unknown platforms are to be ignored. The text is the error message that should be shown to the user." + ], + "fields": { + "platform": { + "name": "platform", + "description": "Platform identifier (ios, android, wp, all, etc.), can be concatenated with a dash as separator (android-ios, ios-wp, etc)" + }, + "reason": { + "name": "reason", + "description": "Restriction reason (porno, terms, etc.)" + }, + "text": { + "name": "text", + "description": "Error message to be shown to the user" + } + } + }, + "savedDialog": { + "name": "savedDialog", + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": " " + }, + "pinned": { + "name": "pinned", + "description": " " + }, + "top_message": { + "name": "top_message", + "description": " " + } + } + }, + "savedPhoneContact": { + "name": "savedPhoneContact", + "description": [ + "Saved contact" + ], + "fields": { + "date": { + "name": "date", + "description": "Date added" + }, + "first_name": { + "name": "first_name", + "description": "First name" + }, + "last_name": { + "name": "last_name", + "description": "Last name" + }, + "phone": { + "name": "phone", + "description": "Phone number" + } + } + }, + "searchResultPosition": { + "name": "searchResultPosition", + "description": [ + "Information about a message in a specific position" + ], + "fields": { + "date": { + "name": "date", + "description": "When was the message sent" + }, + "msg_id": { + "name": "msg_id", + "description": "Message ID" + }, + "offset": { + "name": "offset", + "description": "0-based message position in the full list of suitable messages" + } + } + }, + "searchResultsCalendarPeriod": { + "name": "searchResultsCalendarPeriod", + "description": [ + "Information about found messages sent on a specific day, used to split the messages in messages.searchResultsCalendar¹ constructors by days.", + "Multiple searchResultsCalendarPeriod constructors are returned in messages.searchResultsCalendar¹, each containing information about the first, last and total number of messages matching the filter that were sent on a specific day." + ], + "links": [ + "https://core.telegram.org/constructor/messages.searchResultsCalendar", + "https://core.telegram.org/constructor/messages.searchResultsCalendar" + ], + "fields": { + "count": { + "name": "count", + "description": "All messages that were sent on this day." + }, + "date": { + "name": "date", + "description": "The day this object is referring to." + }, + "max_msg_id": { + "name": "max_msg_id", + "description": "Last message ID that was sent on this day." + }, + "min_msg_id": { + "name": "min_msg_id", + "description": "First message ID that was sent on this day." + } + } + }, + "secureCredentialsEncrypted": { + "name": "secureCredentialsEncrypted", + "description": [ + "Encrypted credentials required to decrypt telegram passport¹ data." + ], + "links": [ + "https://core.telegram.org/passport" + ], + "fields": { + "data": { + "name": "data", + "description": "Encrypted JSON-serialized data with unique user's payload, data hashes and secrets required for EncryptedPassportElement decryption and authentication, as described in decrypting data »¹", + "links": [ + "https://core.telegram.org/passport#decrypting-data" + ] + }, + "hash": { + "name": "hash", + "description": "Data hash for data authentication as described in decrypting data »¹", + "links": [ + "https://core.telegram.org/passport#decrypting-data" + ] + }, + "secret": { + "name": "secret", + "description": "Secret, encrypted with the bot's public RSA key, required for data decryption as described in decrypting data »¹", + "links": [ + "https://core.telegram.org/passport#decrypting-data" + ] + } + } + }, + "secureData": { + "name": "secureData", + "description": [ + "Secure passport¹ data, for more info see the passport docs »²" + ], + "links": [ + "https://core.telegram.org/passport", + "https://core.telegram.org/passport/encryption#securedata" + ], + "fields": { + "data": { + "name": "data", + "description": "Data" + }, + "data_hash": { + "name": "data_hash", + "description": "Data hash" + }, + "secret": { + "name": "secret", + "description": "Secret" + } + } + }, + "secureFile": { + "name": "secureFile", + "description": [ + "Secure passport¹ file, for more info see the passport docs »²" + ], + "links": [ + "https://core.telegram.org/passport", + "https://core.telegram.org/passport/encryption#inputsecurefile" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "date": { + "name": "date", + "description": "Date of upload" + }, + "dc_id": { + "name": "dc_id", + "description": "DC ID" + }, + "file_hash": { + "name": "file_hash", + "description": "File hash" + }, + "id": { + "name": "id", + "description": "ID" + }, + "secret": { + "name": "secret", + "description": "Secret" + }, + "size": { + "name": "size", + "description": "File size" + } + } + }, + "secureFileEmpty": { + "name": "secureFileEmpty", + "description": [ + "Empty constructor" + ] + }, + "securePasswordKdfAlgoPBKDF2HMACSHA512iter100000": { + "name": "securePasswordKdfAlgoPBKDF2HMACSHA512iter100000", + "description": [ + "PBKDF2 with SHA512 and 100000 iterations KDF algo" + ], + "fields": { + "salt": { + "name": "salt", + "description": "Salt" + } + } + }, + "securePasswordKdfAlgoSHA512": { + "name": "securePasswordKdfAlgoSHA512", + "description": [ + "SHA512 KDF algo" + ], + "fields": { + "salt": { + "name": "salt", + "description": "Salt" + } + } + }, + "securePasswordKdfAlgoUnknown": { + "name": "securePasswordKdfAlgoUnknown", + "description": [ + "Unknown KDF algo (most likely the client has to be updated)" + ] + }, + "securePlainEmail": { + "name": "securePlainEmail", + "description": [ + "Email address to use in telegram passport¹: it must be verified, first »²." + ], + "links": [ + "https://core.telegram.org/passport", + "https://core.telegram.org/passport/encryption#secureplaindata" + ], + "fields": { + "email": { + "name": "email", + "description": "Email address" + } + } + }, + "securePlainPhone": { + "name": "securePlainPhone", + "description": [ + "Phone number to use in telegram passport¹: it must be verified, first »²." + ], + "links": [ + "https://core.telegram.org/passport", + "https://core.telegram.org/passport/encryption#secureplaindata" + ], + "fields": { + "phone": { + "name": "phone", + "description": "Phone number" + } + } + }, + "secureRequiredType": { + "name": "secureRequiredType", + "description": [ + "Required type" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "native_names": { + "name": "native_names", + "description": "Native names" + }, + "selfie_required": { + "name": "selfie_required", + "description": "Is a selfie required" + }, + "translation_required": { + "name": "translation_required", + "description": "Is a translation required" + }, + "type": { + "name": "type", + "description": "Secure value type" + } + } + }, + "secureRequiredTypeOneOf": { + "name": "secureRequiredTypeOneOf", + "description": [ + "One of" + ], + "fields": { + "types": { + "name": "types", + "description": "Secure required value types" + } + } + }, + "secureSecretSettings": { + "name": "secureSecretSettings", + "description": [ + "Secure settings" + ], + "fields": { + "secure_algo": { + "name": "secure_algo", + "description": "Secure KDF algo" + }, + "secure_secret": { + "name": "secure_secret", + "description": "Secure secret" + }, + "secure_secret_id": { + "name": "secure_secret_id", + "description": "Secret ID" + } + } + }, + "secureValue": { + "name": "secureValue", + "description": [ + "Secure value" + ], + "fields": { + "data": { + "name": "data", + "description": "Encrypted Telegram Passport¹ element data", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "files": { + "name": "files", + "description": "Array of encrypted passport¹ files with photos the of the documents", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "front_side": { + "name": "front_side", + "description": "Encrypted passport¹ file with the front side of the document", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "hash": { + "name": "hash", + "description": "Data hash" + }, + "plain_data": { + "name": "plain_data", + "description": "Plaintext verified passport¹ data", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "reverse_side": { + "name": "reverse_side", + "description": "Encrypted passport¹ file with the reverse side of the document", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "selfie": { + "name": "selfie", + "description": "Encrypted passport¹ file with a selfie of the user holding the document", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "translation": { + "name": "translation", + "description": "Array of encrypted passport¹ files with translated versions of the provided documents", + "links": [ + "https://core.telegram.org/passport" + ] + }, + "type": { + "name": "type", + "description": "Secure passport¹ value type", + "links": [ + "https://core.telegram.org/passport" + ] + } + } + }, + "secureValueError": { + "name": "secureValueError", + "description": [ + "Secure value error" + ], + "fields": { + "hash": { + "name": "hash", + "description": "Hash" + }, + "text": { + "name": "text", + "description": "Error message" + }, + "type": { + "name": "type", + "description": "Type of element which has the issue" + } + } + }, + "secureValueErrorData": { + "name": "secureValueErrorData", + "description": [ + "Represents an issue in one of the data fields that was provided by the user. The error is considered resolved when the field's value changes." + ], + "fields": { + "data_hash": { + "name": "data_hash", + "description": "Data hash" + }, + "field": { + "name": "field", + "description": "Name of the data field which has the error" + }, + "text": { + "name": "text", + "description": "Error message" + }, + "type": { + "name": "type", + "description": "The section of the user's Telegram Passport which has the error, one of secureValueTypePersonalDetails¹, secureValueTypePassport², secureValueTypeDriverLicense³, secureValueTypeIdentityCard⁴, secureValueTypeInternalPassport⁵, secureValueTypeAddress⁶", + "links": [ + "https://core.telegram.org/constructor/secureValueTypePersonalDetails", + "https://core.telegram.org/constructor/secureValueTypePassport", + "https://core.telegram.org/constructor/secureValueTypeDriverLicense", + "https://core.telegram.org/constructor/secureValueTypeIdentityCard", + "https://core.telegram.org/constructor/secureValueTypeInternalPassport", + "https://core.telegram.org/constructor/secureValueTypeAddress" + ] + } + } + }, + "secureValueErrorFile": { + "name": "secureValueErrorFile", + "description": [ + "Represents an issue with a document scan. The error is considered resolved when the file with the document scan changes." + ], + "fields": { + "file_hash": { + "name": "file_hash", + "description": "File hash" + }, + "text": { + "name": "text", + "description": "Error message" + }, + "type": { + "name": "type", + "description": "One of secureValueTypeUtilityBill¹, secureValueTypeBankStatement², secureValueTypeRentalAgreement³, secureValueTypePassportRegistration⁴, secureValueTypeTemporaryRegistration⁵", + "links": [ + "https://core.telegram.org/constructor/secureValueTypeUtilityBill", + "https://core.telegram.org/constructor/secureValueTypeBankStatement", + "https://core.telegram.org/constructor/secureValueTypeRentalAgreement", + "https://core.telegram.org/constructor/secureValueTypePassportRegistration", + "https://core.telegram.org/constructor/secureValueTypeTemporaryRegistration" + ] + } + } + }, + "secureValueErrorFiles": { + "name": "secureValueErrorFiles", + "description": [ + "Represents an issue with a list of scans. The error is considered resolved when the list of files containing the scans changes." + ], + "fields": { + "file_hash": { + "name": "file_hash", + "description": "File hash" + }, + "text": { + "name": "text", + "description": "Error message" + }, + "type": { + "name": "type", + "description": "One of secureValueTypeUtilityBill¹, secureValueTypeBankStatement², secureValueTypeRentalAgreement³, secureValueTypePassportRegistration⁴, secureValueTypeTemporaryRegistration⁵", + "links": [ + "https://core.telegram.org/constructor/secureValueTypeUtilityBill", + "https://core.telegram.org/constructor/secureValueTypeBankStatement", + "https://core.telegram.org/constructor/secureValueTypeRentalAgreement", + "https://core.telegram.org/constructor/secureValueTypePassportRegistration", + "https://core.telegram.org/constructor/secureValueTypeTemporaryRegistration" + ] + } + } + }, + "secureValueErrorFrontSide": { + "name": "secureValueErrorFrontSide", + "description": [ + "Represents an issue with the front side of a document. The error is considered resolved when the file with the front side of the document changes." + ], + "fields": { + "file_hash": { + "name": "file_hash", + "description": "File hash" + }, + "text": { + "name": "text", + "description": "Error message" + }, + "type": { + "name": "type", + "description": "One of secureValueTypePassport¹, secureValueTypeDriverLicense², secureValueTypeIdentityCard³, secureValueTypeInternalPassport⁴", + "links": [ + "https://core.telegram.org/constructor/secureValueTypePassport", + "https://core.telegram.org/constructor/secureValueTypeDriverLicense", + "https://core.telegram.org/constructor/secureValueTypeIdentityCard", + "https://core.telegram.org/constructor/secureValueTypeInternalPassport" + ] + } + } + }, + "secureValueErrorReverseSide": { + "name": "secureValueErrorReverseSide", + "description": [ + "Represents an issue with the reverse side of a document. The error is considered resolved when the file with reverse side of the document changes." + ], + "fields": { + "file_hash": { + "name": "file_hash", + "description": "File hash" + }, + "text": { + "name": "text", + "description": "Error message" + }, + "type": { + "name": "type", + "description": "One of secureValueTypeDriverLicense¹, secureValueTypeIdentityCard²", + "links": [ + "https://core.telegram.org/constructor/secureValueTypeDriverLicense", + "https://core.telegram.org/constructor/secureValueTypeIdentityCard" + ] + } + } + }, + "secureValueErrorSelfie": { + "name": "secureValueErrorSelfie", + "description": [ + "Represents an issue with the selfie with a document. The error is considered resolved when the file with the selfie changes." + ], + "fields": { + "file_hash": { + "name": "file_hash", + "description": "File hash" + }, + "text": { + "name": "text", + "description": "Error message" + }, + "type": { + "name": "type", + "description": "One of secureValueTypePassport¹, secureValueTypeDriverLicense², secureValueTypeIdentityCard³, secureValueTypeInternalPassport⁴", + "links": [ + "https://core.telegram.org/constructor/secureValueTypePassport", + "https://core.telegram.org/constructor/secureValueTypeDriverLicense", + "https://core.telegram.org/constructor/secureValueTypeIdentityCard", + "https://core.telegram.org/constructor/secureValueTypeInternalPassport" + ] + } + } + }, + "secureValueErrorTranslationFile": { + "name": "secureValueErrorTranslationFile", + "description": [ + "Represents an issue with one of the files that constitute the translation of a document. The error is considered resolved when the file changes." + ], + "fields": { + "file_hash": { + "name": "file_hash", + "description": "File hash" + }, + "text": { + "name": "text", + "description": "Error message" + }, + "type": { + "name": "type", + "description": "One of secureValueTypePersonalDetails¹, secureValueTypePassport², secureValueTypeDriverLicense³, secureValueTypeIdentityCard⁴, secureValueTypeInternalPassport⁵, secureValueTypeUtilityBill⁶, secureValueTypeBankStatement⁷, secureValueTypeRentalAgreement⁸, secureValueTypePassportRegistration⁹, secureValueTypeTemporaryRegistration¹⁰", + "links": [ + "https://core.telegram.org/constructor/secureValueTypePersonalDetails", + "https://core.telegram.org/constructor/secureValueTypePassport", + "https://core.telegram.org/constructor/secureValueTypeDriverLicense", + "https://core.telegram.org/constructor/secureValueTypeIdentityCard", + "https://core.telegram.org/constructor/secureValueTypeInternalPassport", + "https://core.telegram.org/constructor/secureValueTypeUtilityBill", + "https://core.telegram.org/constructor/secureValueTypeBankStatement", + "https://core.telegram.org/constructor/secureValueTypeRentalAgreement", + "https://core.telegram.org/constructor/secureValueTypePassportRegistration", + "https://core.telegram.org/constructor/secureValueTypeTemporaryRegistration" + ] + } + } + }, + "secureValueErrorTranslationFiles": { + "name": "secureValueErrorTranslationFiles", + "description": [ + "Represents an issue with the translated version of a document. The error is considered resolved when a file with the document translation changes." + ], + "fields": { + "file_hash": { + "name": "file_hash", + "description": "Hash" + }, + "text": { + "name": "text", + "description": "Error message" + }, + "type": { + "name": "type", + "description": "One of secureValueTypePersonalDetails¹, secureValueTypePassport², secureValueTypeDriverLicense³, secureValueTypeIdentityCard⁴, secureValueTypeInternalPassport⁵, secureValueTypeUtilityBill⁶, secureValueTypeBankStatement⁷, secureValueTypeRentalAgreement⁸, secureValueTypePassportRegistration⁹, secureValueTypeTemporaryRegistration¹⁰", + "links": [ + "https://core.telegram.org/constructor/secureValueTypePersonalDetails", + "https://core.telegram.org/constructor/secureValueTypePassport", + "https://core.telegram.org/constructor/secureValueTypeDriverLicense", + "https://core.telegram.org/constructor/secureValueTypeIdentityCard", + "https://core.telegram.org/constructor/secureValueTypeInternalPassport", + "https://core.telegram.org/constructor/secureValueTypeUtilityBill", + "https://core.telegram.org/constructor/secureValueTypeBankStatement", + "https://core.telegram.org/constructor/secureValueTypeRentalAgreement", + "https://core.telegram.org/constructor/secureValueTypePassportRegistration", + "https://core.telegram.org/constructor/secureValueTypeTemporaryRegistration" + ] + } + } + }, + "secureValueHash": { + "name": "secureValueHash", + "description": [ + "Secure value hash" + ], + "fields": { + "hash": { + "name": "hash", + "description": "Hash" + }, + "type": { + "name": "type", + "description": "Secure value type" + } + } + }, + "secureValueTypeAddress": { + "name": "secureValueTypeAddress", + "description": [ + "Address" + ] + }, + "secureValueTypeBankStatement": { + "name": "secureValueTypeBankStatement", + "description": [ + "Bank statement" + ] + }, + "secureValueTypeDriverLicense": { + "name": "secureValueTypeDriverLicense", + "description": [ + "Driver's license" + ] + }, + "secureValueTypeEmail": { + "name": "secureValueTypeEmail", + "description": [ + "Email" + ] + }, + "secureValueTypeIdentityCard": { + "name": "secureValueTypeIdentityCard", + "description": [ + "Identity card" + ] + }, + "secureValueTypeInternalPassport": { + "name": "secureValueTypeInternalPassport", + "description": [ + "Internal passport¹" + ], + "links": [ + "https://core.telegram.org/passport" + ] + }, + "secureValueTypePassport": { + "name": "secureValueTypePassport", + "description": [ + "Passport" + ] + }, + "secureValueTypePassportRegistration": { + "name": "secureValueTypePassportRegistration", + "description": [ + "Internal registration passport¹" + ], + "links": [ + "https://core.telegram.org/passport" + ] + }, + "secureValueTypePersonalDetails": { + "name": "secureValueTypePersonalDetails", + "description": [ + "Personal details" + ] + }, + "secureValueTypePhone": { + "name": "secureValueTypePhone", + "description": [ + "Phone" + ] + }, + "secureValueTypeRentalAgreement": { + "name": "secureValueTypeRentalAgreement", + "description": [ + "Rental agreement" + ] + }, + "secureValueTypeTemporaryRegistration": { + "name": "secureValueTypeTemporaryRegistration", + "description": [ + "Temporary registration" + ] + }, + "secureValueTypeUtilityBill": { + "name": "secureValueTypeUtilityBill", + "description": [ + "Utility bill" + ] + }, + "sendAsPeer": { + "name": "sendAsPeer", + "description": [ + "Indicates a peer that can be used to send messages" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "Peer" + }, + "premium_required": { + "name": "premium_required", + "description": "Whether a Telegram Premium account is required to send messages as this peer" + } + } + }, + "sendMessageCancelAction": { + "name": "sendMessageCancelAction", + "description": [ + "Invalidate all previous action updates. E.g. when user deletes entered text or aborts a video upload." + ] + }, + "sendMessageChooseContactAction": { + "name": "sendMessageChooseContactAction", + "description": [ + "User is selecting a contact to share." + ] + }, + "sendMessageChooseStickerAction": { + "name": "sendMessageChooseStickerAction", + "description": [ + "User is choosing a sticker" + ] + }, + "sendMessageEmojiInteraction": { + "name": "sendMessageEmojiInteraction", + "description": [ + "User has clicked on an animated emoji triggering a reaction, click here for more info »¹." + ], + "links": [ + "https://core.telegram.org/api/animated-emojis#emoji-reactions" + ], + "fields": { + "emoticon": { + "name": "emoticon", + "description": "Emoji" + }, + "interaction": { + "name": "interaction", + "description": "A JSON object with interaction info, click here for more info »¹", + "links": [ + "https://core.telegram.org/api/animated-emojis#emoji-reactions" + ] + }, + "msg_id": { + "name": "msg_id", + "description": "Message ID of the animated emoji that was clicked" + } + } + }, + "sendMessageEmojiInteractionSeen": { + "name": "sendMessageEmojiInteractionSeen", + "description": [ + "User is watching an animated emoji reaction triggered by another user, click here for more info »¹." + ], + "links": [ + "https://core.telegram.org/api/animated-emojis#emoji-reactions" + ], + "fields": { + "emoticon": { + "name": "emoticon", + "description": "Emoji" + } + } + }, + "sendMessageGamePlayAction": { + "name": "sendMessageGamePlayAction", + "description": [ + "User is playing a game" + ] + }, + "sendMessageGeoLocationAction": { + "name": "sendMessageGeoLocationAction", + "description": [ + "User is selecting a location to share." + ] + }, + "sendMessageHistoryImportAction": { + "name": "sendMessageHistoryImportAction", + "description": [ + "Chat history is being imported" + ], + "fields": { + "progress": { + "name": "progress", + "description": "Progress percentage" + } + } + }, + "sendMessageRecordAudioAction": { + "name": "sendMessageRecordAudioAction", + "description": [ + "User is recording a voice message." + ] + }, + "sendMessageRecordRoundAction": { + "name": "sendMessageRecordRoundAction", + "description": [ + "User is recording a round video to share" + ] + }, + "sendMessageRecordVideoAction": { + "name": "sendMessageRecordVideoAction", + "description": [ + "User is recording a video." + ] + }, + "sendMessageTypingAction": { + "name": "sendMessageTypingAction", + "description": [ + "User is typing." + ] + }, + "sendMessageUploadAudioAction": { + "name": "sendMessageUploadAudioAction", + "description": [ + "User is uploading a voice message." + ], + "fields": { + "progress": { + "name": "progress", + "description": "Progress percentage" + } + } + }, + "sendMessageUploadDocumentAction": { + "name": "sendMessageUploadDocumentAction", + "description": [ + "User is uploading a file." + ], + "fields": { + "progress": { + "name": "progress", + "description": "Progress percentage" + } + } + }, + "sendMessageUploadPhotoAction": { + "name": "sendMessageUploadPhotoAction", + "description": [ + "User is uploading a photo." + ], + "fields": { + "progress": { + "name": "progress", + "description": "Progress percentage" + } + } + }, + "sendMessageUploadRoundAction": { + "name": "sendMessageUploadRoundAction", + "description": [ + "User is uploading a round video" + ], + "fields": { + "progress": { + "name": "progress", + "description": "Progress percentage" + } + } + }, + "sendMessageUploadVideoAction": { + "name": "sendMessageUploadVideoAction", + "description": [ + "User is uploading a video." + ], + "fields": { + "progress": { + "name": "progress", + "description": "Progress percentage" + } + } + }, + "shippingOption": { + "name": "shippingOption", + "description": [ + "Shipping option" + ], + "fields": { + "id": { + "name": "id", + "description": "Option ID" + }, + "prices": { + "name": "prices", + "description": "List of price portions" + }, + "title": { + "name": "title", + "description": "Title" + } + } + }, + "simpleWebViewResultUrl": { + "name": "simpleWebViewResultUrl", + "description": [ + "Contains the webview URL with appropriate theme parameters added" + ], + "fields": { + "url": { + "name": "url", + "description": "URL" + } + } + }, + "speakingInGroupCallAction": { + "name": "speakingInGroupCallAction", + "description": [ + "User is currently speaking in the group call" + ] + }, + "sponsoredMessage": { + "name": "sponsoredMessage", + "description": [ + "A sponsored message¹." + ], + "links": [ + "https://core.telegram.org/api/sponsored-messages" + ], + "fields": { + "additional_info": { + "name": "additional_info", + "description": "If set, contains additional information about the sponsored message to be shown along with the message." + }, + "app": { + "name": "app", + "description": "Mini App »¹ to open when the sponsored message is clicked.", + "links": [ + "https://core.telegram.org/api/bots/webapps" + ] + }, + "button_text": { + "name": "button_text", + "description": "Text of the sponsored message button." + }, + "channel_post": { + "name": "channel_post", + "description": "Optional link to a channel post if from_id points to a channel" + }, + "chat_invite": { + "name": "chat_invite", + "description": "Information about the chat invite hash specified in chat_invite_hash" + }, + "chat_invite_hash": { + "name": "chat_invite_hash", + "description": "Chat invite" + }, + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "from_id": { + "name": "from_id", + "description": "ID of the sender of the message" + }, + "message": { + "name": "message", + "description": "Sponsored message" + }, + "random_id": { + "name": "random_id", + "description": "Message ID" + }, + "recommended": { + "name": "recommended", + "description": "Whether the message needs to be labeled as \"recommended\" instead of \"sponsored\"" + }, + "show_peer_photo": { + "name": "show_peer_photo", + "description": "Whether a profile photo bubble should be displayed for this message, like for messages sent in groups. The photo shown in the bubble is obtained either from the peer contained in from_id, or from chat_invite." + }, + "sponsor_info": { + "name": "sponsor_info", + "description": "If set, contains additional information about the sponsor to be shown along with the message." + }, + "start_param": { + "name": "start_param", + "description": "Parameter for the bot start message if the sponsored chat is a chat with a bot." + }, + "webpage": { + "name": "webpage", + "description": "Sponsored website" + } + } + }, + "sponsoredWebPage": { + "name": "sponsoredWebPage", + "description": [ + "Represents a sponsored website." + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "photo": { + "name": "photo", + "description": "Optional image preview." + }, + "site_name": { + "name": "site_name", + "description": "Website name." + }, + "url": { + "name": "url", + "description": "Web page URL." + } + } + }, + "stats.broadcastStats": { + "name": "stats.broadcastStats", + "description": [ + "Channel statistics¹." + ], + "links": [ + "https://core.telegram.org/api/stats" + ], + "fields": { + "enabled_notifications": { + "name": "enabled_notifications", + "description": "Percentage of subscribers with enabled notifications" + }, + "followers": { + "name": "followers", + "description": "Follower count change for period in consideration" + }, + "followers_graph": { + "name": "followers_graph", + "description": "Followers growth graph (relative subscriber count)" + }, + "growth_graph": { + "name": "growth_graph", + "description": "Channel growth graph (absolute subscriber count)" + }, + "interactions_graph": { + "name": "interactions_graph", + "description": "Interactions graph (absolute)" + }, + "iv_interactions_graph": { + "name": "iv_interactions_graph", + "description": "IV interactions graph (absolute)" + }, + "languages_graph": { + "name": "languages_graph", + "description": "Subscriber language graph (pie chart)" + }, + "mute_graph": { + "name": "mute_graph", + "description": "Muted users graph (relative)" + }, + "new_followers_by_source_graph": { + "name": "new_followers_by_source_graph", + "description": "New followers by source graph (absolute)" + }, + "period": { + "name": "period", + "description": "Period in consideration" + }, + "reactions_by_emotion_graph": { + "name": "reactions_by_emotion_graph", + "description": "A graph containing the number of reactions on posts categorized by emotion" + }, + "reactions_per_post": { + "name": "reactions_per_post", + "description": "total_reactions/postcount, for posts posted during the period in consideration. Note that in this case, current refers to the period in consideration (min_date till max_date), and prev refers to the previous period ((min_date - (max_date - min_date)) till min_date)" + }, + "reactions_per_story": { + "name": "reactions_per_story", + "description": "total_reactions/storycount, for posts posted during the period in consideration. Note that in this case, current refers to the period in consideration (min_date till max_date), and prev refers to the previous period ((min_date - (max_date - min_date)) till min_date)" + }, + "recent_posts_interactions": { + "name": "recent_posts_interactions", + "description": "Detailed statistics about number of views and shares of recently sent messages and stories" + }, + "shares_per_post": { + "name": "shares_per_post", + "description": "total_sharecount/postcount, for posts posted during the period in consideration. Note that in this case, current refers to the period in consideration (min_date till max_date), and prev refers to the previous period ((min_date - (max_date - min_date)) till min_date)" + }, + "shares_per_story": { + "name": "shares_per_story", + "description": "total_shares/storycount, for posts posted during the period in consideration. Note that in this case, current refers to the period in consideration (min_date till max_date), and prev refers to the previous period ((min_date - (max_date - min_date)) till min_date)" + }, + "story_interactions_graph": { + "name": "story_interactions_graph", + "description": "A graph containing the number of story views and shares" + }, + "story_reactions_by_emotion_graph": { + "name": "story_reactions_by_emotion_graph", + "description": "A graph containing the number of reactions on stories categorized by emotion" + }, + "top_hours_graph": { + "name": "top_hours_graph", + "description": "Views per hour graph (absolute)" + }, + "views_by_source_graph": { + "name": "views_by_source_graph", + "description": "Views by source graph (absolute)" + }, + "views_per_post": { + "name": "views_per_post", + "description": "total_viewcount/postcount, for posts posted during the period in consideration. Note that in this case, current refers to the period in consideration (min_date till max_date), and prev refers to the previous period ((min_date - (max_date - min_date)) till min_date)." + }, + "views_per_story": { + "name": "views_per_story", + "description": "total_views/storycount, for posts posted during the period in consideration. Note that in this case, current refers to the period in consideration (min_date till max_date), and prev refers to the previous period ((min_date - (max_date - min_date)) till min_date)" + } + } + }, + "stats.megagroupStats": { + "name": "stats.megagroupStats", + "description": [ + "Supergroup statistics¹" + ], + "links": [ + "https://core.telegram.org/api/stats" + ], + "fields": { + "actions_graph": { + "name": "actions_graph", + "description": "Group activity graph (deleted, modified messages, blocked users)" + }, + "growth_graph": { + "name": "growth_graph", + "description": "Supergroup growth graph (absolute subscriber count)" + }, + "languages_graph": { + "name": "languages_graph", + "description": "Subscriber language graph (pie chart)" + }, + "members": { + "name": "members", + "description": "Member count change for period in consideration" + }, + "members_graph": { + "name": "members_graph", + "description": "Members growth (relative subscriber count)" + }, + "messages": { + "name": "messages", + "description": "Message number change for period in consideration" + }, + "messages_graph": { + "name": "messages_graph", + "description": "Message activity graph (stacked bar graph, message type)" + }, + "new_members_by_source_graph": { + "name": "new_members_by_source_graph", + "description": "New members by source graph" + }, + "period": { + "name": "period", + "description": "Period in consideration" + }, + "posters": { + "name": "posters", + "description": "Number of users that posted messages, for range in consideration" + }, + "top_admins": { + "name": "top_admins", + "description": "Info about most active group admins" + }, + "top_hours_graph": { + "name": "top_hours_graph", + "description": "Activity per hour graph (absolute)" + }, + "top_inviters": { + "name": "top_inviters", + "description": "Info about most active group inviters" + }, + "top_posters": { + "name": "top_posters", + "description": "Info about most active group members" + }, + "users": { + "name": "users", + "description": "Info about users mentioned in statistics" + }, + "viewers": { + "name": "viewers", + "description": "Number of users that viewed messages, for range in consideration" + }, + "weekdays_graph": { + "name": "weekdays_graph", + "description": "Activity per day of week graph (absolute)" + } + } + }, + "stats.messageStats": { + "name": "stats.messageStats", + "description": [ + "Message statistics" + ], + "fields": { + "reactions_by_emotion_graph": { + "name": "reactions_by_emotion_graph", + "description": "A graph containing the number of reactions on stories categorized by emotion" + }, + "views_graph": { + "name": "views_graph", + "description": "Message view graph" + } + } + }, + "stats.publicForwards": { + "name": "stats.publicForwards", + "description": [ + "Contains info about the forwards of a story¹ as a message to public chats and reposts by public channels." + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "count": { + "name": "count", + "description": "Total number of results" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "forwards": { + "name": "forwards", + "description": "Info about the forwards of a story." + }, + "next_offset": { + "name": "next_offset", + "description": "Offset used for pagination¹.", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "stats.storyStats": { + "name": "stats.storyStats", + "description": [ + "Contains statistics¹ about a story²." + ], + "links": [ + "https://core.telegram.org/api/stats", + "https://core.telegram.org/api/stories" + ], + "fields": { + "reactions_by_emotion_graph": { + "name": "reactions_by_emotion_graph", + "description": "A bar graph containing the number of story reactions categorized by \"emotion\" (i.e. Positive, Negative, Other, etc...)" + }, + "views_graph": { + "name": "views_graph", + "description": "A graph containing the number of story views and shares" + } + } + }, + "statsAbsValueAndPrev": { + "name": "statsAbsValueAndPrev", + "description": [ + "Statistics value couple; initial and final value for period of time currently in consideration" + ], + "fields": { + "current": { + "name": "current", + "description": "Current value" + }, + "previous": { + "name": "previous", + "description": "Previous value" + } + } + }, + "statsDateRangeDays": { + "name": "statsDateRangeDays", + "description": [ + "Channel statistics¹ date range" + ], + "links": [ + "https://core.telegram.org/api/stats" + ], + "fields": { + "max_date": { + "name": "max_date", + "description": "Final date" + }, + "min_date": { + "name": "min_date", + "description": "Initial date" + } + } + }, + "statsGraph": { + "name": "statsGraph", + "description": [ + "Channel statistics graph¹" + ], + "links": [ + "https://core.telegram.org/api/stats" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "json": { + "name": "json", + "description": "Statistics data" + }, + "zoom_token": { + "name": "zoom_token", + "description": "Zoom token" + } + } + }, + "statsGraphAsync": { + "name": "statsGraphAsync", + "description": [ + "This channel statistics graph¹ must be generated asynchronously using stats.loadAsyncGraph² to reduce server load" + ], + "links": [ + "https://core.telegram.org/api/stats", + "https://core.telegram.org/method/stats.loadAsyncGraph" + ], + "fields": { + "token": { + "name": "token", + "description": "Token to use for fetching the async graph" + } + } + }, + "statsGraphError": { + "name": "statsGraphError", + "description": [ + "An error occurred while generating the statistics graph¹" + ], + "links": [ + "https://core.telegram.org/api/stats" + ], + "fields": { + "error": { + "name": "error", + "description": "The error" + } + } + }, + "statsGroupTopAdmin": { + "name": "statsGroupTopAdmin", + "description": [ + "Information about an active admin in a supergroup" + ], + "fields": { + "banned": { + "name": "banned", + "description": "Number of banned users for statistics¹ period in consideration", + "links": [ + "https://core.telegram.org/api/stats" + ] + }, + "deleted": { + "name": "deleted", + "description": "Number of deleted messages for statistics¹ period in consideration", + "links": [ + "https://core.telegram.org/api/stats" + ] + }, + "kicked": { + "name": "kicked", + "description": "Number of kicked users for statistics¹ period in consideration", + "links": [ + "https://core.telegram.org/api/stats" + ] + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + } + }, + "statsGroupTopInviter": { + "name": "statsGroupTopInviter", + "description": [ + "Information about an active supergroup inviter" + ], + "fields": { + "invitations": { + "name": "invitations", + "description": "Number of invitations for statistics¹ period in consideration", + "links": [ + "https://core.telegram.org/api/stats" + ] + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + } + }, + "statsGroupTopPoster": { + "name": "statsGroupTopPoster", + "description": [ + "Information about an active user in a supergroup" + ], + "fields": { + "avg_chars": { + "name": "avg_chars", + "description": "Average number of characters per message" + }, + "messages": { + "name": "messages", + "description": "Number of messages for statistics¹ period in consideration", + "links": [ + "https://core.telegram.org/api/stats" + ] + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + } + }, + "statsPercentValue": { + "name": "statsPercentValue", + "description": [ + "Channel statistics percentage¹.", + "Compute the percentage simply by doing part * total / 100" + ], + "links": [ + "https://core.telegram.org/api/stats" + ], + "fields": { + "part": { + "name": "part", + "description": "Partial value" + }, + "total": { + "name": "total", + "description": "Total value" + } + } + }, + "statsURL": { + "name": "statsURL", + "description": [ + "URL with chat statistics" + ], + "fields": { + "url": { + "name": "url", + "description": "Chat statistics" + } + } + }, + "stickerKeyword": { + "name": "stickerKeyword", + "description": [ + "Keywords for a certain sticker" + ], + "fields": { + "document_id": { + "name": "document_id", + "description": "Sticker ID" + }, + "keyword": { + "name": "keyword", + "description": "Keywords" + } + } + }, + "stickerPack": { + "name": "stickerPack", + "description": [ + "A stickerpack is a group of stickers associated to the same emoji.", + "It is not a sticker pack the way it is usually intended, you may be looking for a StickerSet¹." + ], + "links": [ + "https://core.telegram.org/type/StickerSet" + ], + "fields": { + "documents": { + "name": "documents", + "description": "Stickers" + }, + "emoticon": { + "name": "emoticon", + "description": "Emoji" + } + } + }, + "stickerSet": { + "name": "stickerSet", + "description": [ + "Represents a stickerset (stickerpack)" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash of stickerset" + }, + "animated": { + "name": "animated", + "description": "Is this an animated stickerpack" + }, + "archived": { + "name": "archived", + "description": "Whether this stickerset was archived (due to too many saved stickers in the current account)" + }, + "channel_emoji_status": { + "name": "channel_emoji_status", + "description": "If set, this custom emoji stickerset can be used in channel emoji statuses¹.", + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + }, + "count": { + "name": "count", + "description": "Number of stickers in pack" + }, + "emojis": { + "name": "emojis", + "description": "This is a custom emoji stickerset" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hash": { + "name": "hash", + "description": "Hash" + }, + "id": { + "name": "id", + "description": "ID of the stickerset" + }, + "installed_date": { + "name": "installed_date", + "description": "When was this stickerset installed" + }, + "masks": { + "name": "masks", + "description": "Is this a mask stickerset" + }, + "official": { + "name": "official", + "description": "Is this stickerset official" + }, + "short_name": { + "name": "short_name", + "description": "Short name of stickerset, used when sharing stickerset using stickerset deep links¹.", + "links": [ + "https://core.telegram.org/api/links#stickerset-links" + ] + }, + "text_color": { + "name": "text_color", + "description": "Whether the color of this TGS custom emoji stickerset should be changed to the text color when used in messages, the accent color if used as emoji status, white on chat photos, or another appropriate color based on context." + }, + "thumb_dc_id": { + "name": "thumb_dc_id", + "description": "DC ID of thumbnail" + }, + "thumb_document_id": { + "name": "thumb_document_id", + "description": "Document ID of custom emoji thumbnail, fetch the document using messages.getCustomEmojiDocuments¹", + "links": [ + "https://core.telegram.org/method/messages.getCustomEmojiDocuments" + ] + }, + "thumb_version": { + "name": "thumb_version", + "description": "Thumbnail version" + }, + "thumbs": { + "name": "thumbs", + "description": "Stickerset thumbnail" + }, + "title": { + "name": "title", + "description": "Title of stickerset" + }, + "videos": { + "name": "videos", + "description": "Is this a video stickerpack" + } + } + }, + "stickerSetCovered": { + "name": "stickerSetCovered", + "description": [ + "Stickerset with a single sticker as preview" + ], + "fields": { + "cover": { + "name": "cover", + "description": "Preview" + }, + "set": { + "name": "set", + "description": "Stickerset" + } + } + }, + "stickerSetFullCovered": { + "name": "stickerSetFullCovered", + "description": [ + "Stickerset preview with all stickers of the stickerset included.", + "Currently used only for custom emoji stickersets¹, to avoid a further call to messages.getStickerSet²." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji", + "https://core.telegram.org/method/messages.getStickerSet" + ], + "fields": { + "documents": { + "name": "documents", + "description": "Stickers" + }, + "keywords": { + "name": "keywords", + "description": "Keywords for some or every sticker in the stickerset." + }, + "packs": { + "name": "packs", + "description": "Emoji information about every sticker in the stickerset" + }, + "set": { + "name": "set", + "description": "Stickerset" + } + } + }, + "stickerSetMultiCovered": { + "name": "stickerSetMultiCovered", + "description": [ + "Stickerset, with multiple stickers as preview" + ], + "fields": { + "covers": { + "name": "covers", + "description": "Preview stickers" + }, + "set": { + "name": "set", + "description": "Stickerset" + } + } + }, + "stickerSetNoCovered": { + "name": "stickerSetNoCovered", + "description": [ + "Just the stickerset information, with no previews." + ], + "fields": { + "set": { + "name": "set", + "description": "Stickerset information." + } + } + }, + "stickers.suggestedShortName": { + "name": "stickers.suggestedShortName", + "description": [ + "A suggested short name for a stickerpack" + ], + "fields": { + "short_name": { + "name": "short_name", + "description": "Suggested short name" + } + } + }, + "storage.fileGif": { + "name": "storage.fileGif", + "description": [ + "GIF image. MIME type: image/gif." + ] + }, + "storage.fileJpeg": { + "name": "storage.fileJpeg", + "description": [ + "JPEG image. MIME type: image/jpeg." + ] + }, + "storage.fileMov": { + "name": "storage.fileMov", + "description": [ + "Quicktime video. MIME type: video/quicktime." + ] + }, + "storage.fileMp3": { + "name": "storage.fileMp3", + "description": [ + "Mp3 audio. MIME type: audio/mpeg." + ] + }, + "storage.fileMp4": { + "name": "storage.fileMp4", + "description": [ + "MPEG-4 video. MIME type: video/mp4." + ] + }, + "storage.filePartial": { + "name": "storage.filePartial", + "description": [ + "Part of a bigger file." + ] + }, + "storage.filePdf": { + "name": "storage.filePdf", + "description": [ + "PDF document image. MIME type: application/pdf." + ] + }, + "storage.filePng": { + "name": "storage.filePng", + "description": [ + "PNG image. MIME type: image/png." + ] + }, + "storage.fileUnknown": { + "name": "storage.fileUnknown", + "description": [ + "Unknown type." + ] + }, + "storage.fileWebp": { + "name": "storage.fileWebp", + "description": [ + "WEBP image. MIME type: image/webp." + ] + }, + "stories.allStories": { + "name": "stories.allStories", + "description": [ + "Full list of active (or active and hidden) stories¹." + ], + "links": [ + "https://core.telegram.org/api/stories#watching-stories" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "count": { + "name": "count", + "description": "Total number of active (or active and hidden) stories" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "has_more": { + "name": "has_more", + "description": "Whether more results can be fetched as described here »¹.", + "links": [ + "https://core.telegram.org/api/stories#watching-stories" + ] + }, + "peer_stories": { + "name": "peer_stories", + "description": "Stories" + }, + "state": { + "name": "state", + "description": "State to use for pagination" + }, + "stealth_mode": { + "name": "stealth_mode", + "description": "Current stealth mode¹ information", + "links": [ + "https://core.telegram.org/api/stories#stealth-mode" + ] + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "stories.allStoriesNotModified": { + "name": "stories.allStoriesNotModified", + "description": [ + "The list of active (or active and hidden) stories¹ has not changed." + ], + "links": [ + "https://core.telegram.org/api/stories#watching-stories" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "state": { + "name": "state", + "description": "State to use to ask for updates" + }, + "stealth_mode": { + "name": "stealth_mode", + "description": "Current stealth mode¹ information", + "links": [ + "https://core.telegram.org/api/stories#stealth-mode" + ] + } + } + }, + "stories.peerStories": { + "name": "stories.peerStories", + "description": [ + "Active story list¹ of a specific peer." + ], + "links": [ + "https://core.telegram.org/api/stories#watching-stories" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "stories": { + "name": "stories", + "description": "Stories" + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "stories.stories": { + "name": "stories.stories", + "description": [ + "List of stories¹" + ], + "links": [ + "https://core.telegram.org/api/stories#pinned-or-archived-stories" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "count": { + "name": "count", + "description": "Total number of stories that can be fetched" + }, + "stories": { + "name": "stories", + "description": "Stories" + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "stories.storyReactionsList": { + "name": "stories.storyReactionsList", + "description": [ + "List of peers that reacted to or intercated with a specific story¹" + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "count": { + "name": "count", + "description": "Total number of reactions matching query" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "next_offset": { + "name": "next_offset", + "description": "If set, indicates the next offset to use to load more results by invoking stories.getStoryReactionsList¹.", + "links": [ + "https://core.telegram.org/method/stories.getStoryReactionsList" + ] + }, + "reactions": { + "name": "reactions", + "description": "List of peers that reacted to or interacted with a specific story" + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "stories.storyViews": { + "name": "stories.storyViews", + "description": [ + "Reaction and view counters for a list of stories¹" + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "users": { + "name": "users", + "description": "Mentioned users" + }, + "views": { + "name": "views", + "description": "View date and reaction information of multiple stories" + } + } + }, + "stories.storyViewsList": { + "name": "stories.storyViewsList", + "description": [ + "Reaction and view counters for a story¹" + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "count": { + "name": "count", + "description": "Total number of results that can be fetched" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "forwards_count": { + "name": "forwards_count", + "description": "Total number of story forwards/reposts" + }, + "next_offset": { + "name": "next_offset", + "description": "Offset for pagination" + }, + "reactions_count": { + "name": "reactions_count", + "description": "Number of reactions that were added to the story" + }, + "users": { + "name": "users", + "description": "Mentioned users" + }, + "views": { + "name": "views", + "description": "Story view date and reaction information" + }, + "views_count": { + "name": "views_count", + "description": "Total number of story views" + } + } + }, + "storiesStealthMode": { + "name": "storiesStealthMode", + "description": [ + "Information about the current stealth mode¹ session." + ], + "links": [ + "https://core.telegram.org/api/stories#stealth-mode" + ], + "fields": { + "active_until_date": { + "name": "active_until_date", + "description": "The date up to which stealth mode will be active." + }, + "cooldown_until_date": { + "name": "cooldown_until_date", + "description": "The date starting from which the user will be allowed to re-enable stealth mode again." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + } + } + }, + "storyFwdHeader": { + "name": "storyFwdHeader", + "description": [ + "Contains info about the original poster of a reposted story." + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "from": { + "name": "from", + "description": "Peer that originally posted the story; will be empty for stories forwarded from a user with forwards privacy enabled, in which case from_name will be set, instead." + }, + "from_name": { + "name": "from_name", + "description": "Will be set for stories forwarded from a user with forwards privacy enabled, in which case from will also be empty." + }, + "modified": { + "name": "modified", + "description": "Whether the story media was modified before reposting it (for example by overlaying a round video with a reaction)." + }, + "story_id": { + "name": "story_id", + "description": ", contains the story ID" + } + } + }, + "storyItem": { + "name": "storyItem", + "description": [ + "Represents a story¹." + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "caption": { + "name": "caption", + "description": "Story caption." + }, + "close_friends": { + "name": "close_friends", + "description": "Whether this story can only be viewed by our close friends, see here »¹ for more info", + "links": [ + "https://core.telegram.org/api/privacy" + ] + }, + "contacts": { + "name": "contacts", + "description": "Whether this story can only be viewed by our contacts" + }, + "date": { + "name": "date", + "description": "When was the story posted." + }, + "edited": { + "name": "edited", + "description": "Indicates whether the story was edited." + }, + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "expire_date": { + "name": "expire_date", + "description": "When does the story expire." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "fwd_from": { + "name": "fwd_from", + "description": "For reposted stories »¹, contains info about the original story.", + "links": [ + "https://core.telegram.org/api/stories#reposting-stories" + ] + }, + "id": { + "name": "id", + "description": "ID of the story." + }, + "media": { + "name": "media", + "description": "Story media." + }, + "media_areas": { + "name": "media_areas", + "description": "List of media areas, see here »¹ for more info on media areas.", + "links": [ + "https://core.telegram.org/api/stories#media-areas" + ] + }, + "min": { + "name": "min", + "description": "Full information about this story was omitted for space and performance reasons; use stories.getStoriesByID¹ to fetch full info about this story when and if needed.", + "links": [ + "https://core.telegram.org/method/stories.getStoriesByID" + ] + }, + "noforwards": { + "name": "noforwards", + "description": "Whether this story is protected¹ and thus cannot be forwarded; clients should also prevent users from saving attached media (i.e. videos should only be streamed, photos should be kept in RAM, et cetera).", + "links": [ + "https://telegram.org/blog/protected-content-delete-by-date-and-more" + ] + }, + "out": { + "name": "out", + "description": "indicates whether we sent this story." + }, + "pinned": { + "name": "pinned", + "description": "Whether this story is pinned on the user's profile" + }, + "privacy": { + "name": "privacy", + "description": "Privacy rules¹ indicating who can and can't view this story", + "links": [ + "https://core.telegram.org/api/privacy" + ] + }, + "public": { + "name": "public", + "description": "Whether this story is public and can be viewed by everyone" + }, + "selected_contacts": { + "name": "selected_contacts", + "description": "Whether this story can only be viewed by a select list of our contacts" + }, + "sent_reaction": { + "name": "sent_reaction", + "description": "The reaction we sent." + }, + "views": { + "name": "views", + "description": "View date and reaction information" + } + } + }, + "storyItemDeleted": { + "name": "storyItemDeleted", + "description": [ + "Represents a previously active story, that was deleted" + ], + "fields": { + "id": { + "name": "id", + "description": "Story ID" + } + } + }, + "storyItemSkipped": { + "name": "storyItemSkipped", + "description": [ + "Represents an active story, whose full information was omitted for space and performance reasons; use stories.getStoriesByID¹ to fetch full info about the skipped story when and if needed." + ], + "links": [ + "https://core.telegram.org/method/stories.getStoriesByID" + ], + "fields": { + "close_friends": { + "name": "close_friends", + "description": "Whether this story can only be viewed by our close friends, see here »¹ for more info", + "links": [ + "https://core.telegram.org/api/privacy" + ] + }, + "date": { + "name": "date", + "description": "When was the story posted." + }, + "expire_date": { + "name": "expire_date", + "description": "When does the story expire." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Story ID" + } + } + }, + "storyReaction": { + "name": "storyReaction", + "description": [ + "How a certain peer reacted to a story" + ], + "fields": { + "date": { + "name": "date", + "description": "Reaction date" + }, + "peer_id": { + "name": "peer_id", + "description": "The peer" + }, + "reaction": { + "name": "reaction", + "description": "The reaction" + } + } + }, + "storyReactionPublicForward": { + "name": "storyReactionPublicForward", + "description": [ + "A certain peer has forwarded the story as a message to a public chat or channel." + ], + "fields": { + "message": { + "name": "message", + "description": "The message with the forwarded story." + } + } + }, + "storyReactionPublicRepost": { + "name": "storyReactionPublicRepost", + "description": [ + "A certain peer has reposted the story." + ], + "fields": { + "peer_id": { + "name": "peer_id", + "description": "The peer that reposted the story." + }, + "story": { + "name": "story", + "description": "The reposted story." + } + } + }, + "storyView": { + "name": "storyView", + "description": [ + "Story¹ view date and reaction information" + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "blocked": { + "name": "blocked", + "description": "Whether we have completely blocked¹ this user, including from viewing more of our stories.", + "links": [ + "https://core.telegram.org/api/block" + ] + }, + "blocked_my_stories_from": { + "name": "blocked_my_stories_from", + "description": "Whether we have blocked¹ this user from viewing more of our stories.", + "links": [ + "https://core.telegram.org/api/block" + ] + }, + "date": { + "name": "date", + "description": "When did the user view the story" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "reaction": { + "name": "reaction", + "description": "If present, contains the reaction that the user left on the story" + }, + "user_id": { + "name": "user_id", + "description": "The user that viewed the story" + } + } + }, + "storyViewPublicForward": { + "name": "storyViewPublicForward", + "description": [ + "A certain peer has forwarded the story as a message to a public chat or channel." + ], + "fields": { + "blocked": { + "name": "blocked", + "description": "Whether we have completely blocked¹ this user, including from viewing more of our stories.", + "links": [ + "https://core.telegram.org/api/block" + ] + }, + "blocked_my_stories_from": { + "name": "blocked_my_stories_from", + "description": "Whether we have blocked¹ this user from viewing more of our stories.", + "links": [ + "https://core.telegram.org/api/block" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "message": { + "name": "message", + "description": "The message with the forwarded story." + } + } + }, + "storyViewPublicRepost": { + "name": "storyViewPublicRepost", + "description": [ + "A certain peer has reposted the story." + ], + "fields": { + "blocked": { + "name": "blocked", + "description": "Whether we have completely blocked¹ this user, including from viewing more of our stories.", + "links": [ + "https://core.telegram.org/api/block" + ] + }, + "blocked_my_stories_from": { + "name": "blocked_my_stories_from", + "description": "Whether we have blocked¹ this user from viewing more of our stories.", + "links": [ + "https://core.telegram.org/api/block" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer_id": { + "name": "peer_id", + "description": "The peer that reposted the story." + }, + "story": { + "name": "story", + "description": "The reposted story." + } + } + }, + "storyViews": { + "name": "storyViews", + "description": [ + "Aggregated view and reaction information of a story¹." + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "forwards_count": { + "name": "forwards_count", + "description": "Forward counter of the story" + }, + "has_viewers": { + "name": "has_viewers", + "description": "If set, indicates that the viewers list is currently viewable, and was not yet deleted because the story has expired while the user didn't have a Premium¹ account.", + "links": [ + "https://core.telegram.org/api/premium" + ] + }, + "reactions": { + "name": "reactions", + "description": "All reactions sent to this story" + }, + "reactions_count": { + "name": "reactions_count", + "description": "Number of reactions added to the story" + }, + "recent_viewers": { + "name": "recent_viewers", + "description": "User IDs of some recent viewers of the story" + }, + "views_count": { + "name": "views_count", + "description": "View counter of the story" + } + } + }, + "textAnchor": { + "name": "textAnchor", + "description": [ + "Text linking to another section of the page" + ], + "fields": { + "name": { + "name": "name", + "description": "Section name" + }, + "text": { + "name": "text", + "description": "Text" + } + } + }, + "textBold": { + "name": "textBold", + "description": [ + "Bold text" + ], + "fields": { + "text": { + "name": "text", + "description": "Text" + } + } + }, + "textConcat": { + "name": "textConcat", + "description": [ + "Concatenation of rich texts" + ], + "fields": { + "texts": { + "name": "texts", + "description": "Concatenated rich texts" + } + } + }, + "textEmail": { + "name": "textEmail", + "description": [ + "Rich text email link" + ], + "fields": { + "email": { + "name": "email", + "description": "Email address" + }, + "text": { + "name": "text", + "description": "Link text" + } + } + }, + "textEmpty": { + "name": "textEmpty", + "description": [ + "Empty rich text element" + ] + }, + "textFixed": { + "name": "textFixed", + "description": [ + "fixed-width rich text" + ], + "fields": { + "text": { + "name": "text", + "description": "Text" + } + } + }, + "textImage": { + "name": "textImage", + "description": [ + "Inline image" + ], + "fields": { + "document_id": { + "name": "document_id", + "description": "Document ID" + }, + "h": { + "name": "h", + "description": "Height" + }, + "w": { + "name": "w", + "description": "Width" + } + } + }, + "textItalic": { + "name": "textItalic", + "description": [ + "Italic text" + ], + "fields": { + "text": { + "name": "text", + "description": "Text" + } + } + }, + "textMarked": { + "name": "textMarked", + "description": [ + "Highlighted text" + ], + "fields": { + "text": { + "name": "text", + "description": "Text" + } + } + }, + "textPhone": { + "name": "textPhone", + "description": [ + "Rich text linked to a phone number" + ], + "fields": { + "phone": { + "name": "phone", + "description": "Phone number" + }, + "text": { + "name": "text", + "description": "Text" + } + } + }, + "textPlain": { + "name": "textPlain", + "description": [ + "Plain text" + ], + "fields": { + "text": { + "name": "text", + "description": "Text" + } + } + }, + "textStrike": { + "name": "textStrike", + "description": [ + "Strikethrough text" + ], + "fields": { + "text": { + "name": "text", + "description": "Text" + } + } + }, + "textSubscript": { + "name": "textSubscript", + "description": [ + "Subscript text" + ], + "fields": { + "text": { + "name": "text", + "description": "Text" + } + } + }, + "textSuperscript": { + "name": "textSuperscript", + "description": [ + "Superscript text" + ], + "fields": { + "text": { + "name": "text", + "description": "Text" + } + } + }, + "textUnderline": { + "name": "textUnderline", + "description": [ + "Underlined text" + ], + "fields": { + "text": { + "name": "text", + "description": "Text" + } + } + }, + "textUrl": { + "name": "textUrl", + "description": [ + "Link" + ], + "fields": { + "text": { + "name": "text", + "description": "Text of link" + }, + "url": { + "name": "url", + "description": "Webpage HTTP URL" + }, + "webpage_id": { + "name": "webpage_id", + "description": "If a preview was already generated for the page, the page ID" + } + } + }, + "textWithEntities": { + "name": "textWithEntities", + "description": [ + "Styled text with message entities¹" + ], + "links": [ + "https://core.telegram.org/api/entities" + ], + "fields": { + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "text": { + "name": "text", + "description": "Text" + } + } + }, + "theme": { + "name": "theme", + "description": [ + "Theme" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Theme access hash" + }, + "creator": { + "name": "creator", + "description": "Whether the current user is the creator of this theme" + }, + "default": { + "name": "default", + "description": "Whether this is the default theme" + }, + "document": { + "name": "document", + "description": "Theme" + }, + "emoticon": { + "name": "emoticon", + "description": "Theme emoji" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "for_chat": { + "name": "for_chat", + "description": "Whether this theme is meant to be used as a chat theme¹", + "links": [ + "https://telegram.org/blog/chat-themes-interactive-emoji-read-receipts" + ] + }, + "id": { + "name": "id", + "description": "Theme ID" + }, + "installs_count": { + "name": "installs_count", + "description": "Installation count" + }, + "settings": { + "name": "settings", + "description": "Theme settings" + }, + "slug": { + "name": "slug", + "description": "Unique theme ID" + }, + "title": { + "name": "title", + "description": "Theme name" + } + } + }, + "themeSettings": { + "name": "themeSettings", + "description": [ + "Theme settings" + ], + "fields": { + "accent_color": { + "name": "accent_color", + "description": "Accent color, ARGB format" + }, + "base_theme": { + "name": "base_theme", + "description": "Base theme" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "message_colors": { + "name": "message_colors", + "description": "The fill to be used as a background for outgoing messages, in RGB24 format. If just one or two equal colors are provided, describes a solid fill of a background. If two different colors are provided, describes the top and bottom colors of a 0-degree gradient.If three or four colors are provided, describes a freeform gradient fill of a background." + }, + "message_colors_animated": { + "name": "message_colors_animated", + "description": "If set, the freeform gradient fill needs to be animated on every sent message." + }, + "outbox_accent_color": { + "name": "outbox_accent_color", + "description": "Accent color of outgoing messages in ARGB format" + }, + "wallpaper": { + "name": "wallpaper", + "description": "Wallpaper¹", + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + } + } + }, + "topPeer": { + "name": "topPeer", + "description": [ + "Top peer" + ], + "fields": { + "peer": { + "name": "peer", + "description": "Peer" + }, + "rating": { + "name": "rating", + "description": "Rating as computed in top peer rating »¹", + "links": [ + "https://core.telegram.org/api/top-rating" + ] + } + } + }, + "topPeerCategoryBotsInline": { + "name": "topPeerCategoryBotsInline", + "description": [ + "Most used inline bots" + ] + }, + "topPeerCategoryBotsPM": { + "name": "topPeerCategoryBotsPM", + "description": [ + "Most used bots" + ] + }, + "topPeerCategoryChannels": { + "name": "topPeerCategoryChannels", + "description": [ + "Most frequently visited channels" + ] + }, + "topPeerCategoryCorrespondents": { + "name": "topPeerCategoryCorrespondents", + "description": [ + "Users we've chatted most frequently with" + ] + }, + "topPeerCategoryForwardChats": { + "name": "topPeerCategoryForwardChats", + "description": [ + "Chats to which the users often forwards messages to" + ] + }, + "topPeerCategoryForwardUsers": { + "name": "topPeerCategoryForwardUsers", + "description": [ + "Users to which the users often forwards messages to" + ] + }, + "topPeerCategoryGroups": { + "name": "topPeerCategoryGroups", + "description": [ + "Often-opened groups and supergroups" + ] + }, + "topPeerCategoryPeers": { + "name": "topPeerCategoryPeers", + "description": [ + "Top peer category" + ], + "fields": { + "category": { + "name": "category", + "description": "Top peer category of peers" + }, + "count": { + "name": "count", + "description": "Count of peers" + }, + "peers": { + "name": "peers", + "description": "Peers" + } + } + }, + "topPeerCategoryPhoneCalls": { + "name": "topPeerCategoryPhoneCalls", + "description": [ + "Most frequently called users" + ] + }, + "true": { + "name": "true", + "description": [ + "See predefined identifiers¹." + ], + "links": [ + "https://core.telegram.org/mtproto/TL-formal#predefined-identifiers" + ] + }, + "updateAttachMenuBots": { + "name": "updateAttachMenuBots", + "description": [ + "The list of installed attachment menu entries »¹ has changed, use messages.getAttachMenuBots² to fetch the updated list." + ], + "links": [ + "https://core.telegram.org/api/bots/attach", + "https://core.telegram.org/method/messages.getAttachMenuBots" + ] + }, + "updateAutoSaveSettings": { + "name": "updateAutoSaveSettings", + "description": [ + "Media autosave settings have changed and must be refetched using account.getAutoSaveSettings¹." + ], + "links": [ + "https://core.telegram.org/method/account.getAutoSaveSettings" + ] + }, + "updateBotCallbackQuery": { + "name": "updateBotCallbackQuery", + "description": [ + "A callback button was pressed, and the button data was sent to the bot that created the button" + ], + "fields": { + "chat_instance": { + "name": "chat_instance", + "description": "Global identifier, uniquely corresponding to the chat to which the message with the callback button was sent. Useful for high scores in games." + }, + "data": { + "name": "data", + "description": "Callback data" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "game_short_name": { + "name": "game_short_name", + "description": "Short name of a Game to be returned, serves as the unique identifier for the game" + }, + "msg_id": { + "name": "msg_id", + "description": "Message ID" + }, + "peer": { + "name": "peer", + "description": "Chat where the inline keyboard was sent" + }, + "query_id": { + "name": "query_id", + "description": "Query ID" + }, + "user_id": { + "name": "user_id", + "description": "ID of the user that pressed the button" + } + } + }, + "updateBotChatBoost": { + "name": "updateBotChatBoost", + "description": [ + "A channel boost¹ has changed (bots only)" + ], + "links": [ + "https://core.telegram.org/api/boost" + ], + "fields": { + "boost": { + "name": "boost", + "description": "New boost information" + }, + "peer": { + "name": "peer", + "description": "Channel" + }, + "qts": { + "name": "qts", + "description": "QTS¹ event sequence identifier", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updateBotChatInviteRequester": { + "name": "updateBotChatInviteRequester", + "description": [ + "Someone has requested to join a chat or channel (bots only, users will receive an updatePendingJoinRequests¹, instead)" + ], + "links": [ + "https://core.telegram.org/constructor/updatePendingJoinRequests" + ], + "fields": { + "about": { + "name": "about", + "description": "Bio of the user" + }, + "date": { + "name": "date", + "description": "When was the join request »¹ made", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + }, + "invite": { + "name": "invite", + "description": "Chat invite link that was used by the user to send the join request »¹", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + }, + "peer": { + "name": "peer", + "description": "The chat or channel in question" + }, + "qts": { + "name": "qts", + "description": "QTS¹ event sequence identifier", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "user_id": { + "name": "user_id", + "description": "The user ID that is asking to join the chat or channel" + } + } + }, + "updateBotCommands": { + "name": "updateBotCommands", + "description": [ + "The command set¹ of a certain bot in a certain chat has changed." + ], + "links": [ + "https://core.telegram.org/api/bots/commands" + ], + "fields": { + "bot_id": { + "name": "bot_id", + "description": "ID of the bot that changed its command set" + }, + "commands": { + "name": "commands", + "description": "New bot commands" + }, + "peer": { + "name": "peer", + "description": "The affected chat" + } + } + }, + "updateBotInlineQuery": { + "name": "updateBotInlineQuery", + "description": [ + "An incoming inline query" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "geo": { + "name": "geo", + "description": "Attached geolocation" + }, + "offset": { + "name": "offset", + "description": "Offset to navigate through results" + }, + "peer_type": { + "name": "peer_type", + "description": "Type of the chat from which the inline query was sent." + }, + "query": { + "name": "query", + "description": "Text of query" + }, + "query_id": { + "name": "query_id", + "description": "Query ID" + }, + "user_id": { + "name": "user_id", + "description": "User that sent the query" + } + } + }, + "updateBotInlineSend": { + "name": "updateBotInlineSend", + "description": [ + "The result of an inline query that was chosen by a user and sent to their chat partner. Please see our documentation on the feedback collecting¹ for details on how to enable these updates for your bot." + ], + "links": [ + "https://core.telegram.org/bots/inline#collecting-feedback" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "geo": { + "name": "geo", + "description": "Optional. Sender location, only for bots that require user location" + }, + "id": { + "name": "id", + "description": "The unique identifier for the result that was chosen" + }, + "msg_id": { + "name": "msg_id", + "description": "Identifier of the sent inline message. Available only if there is an inline keyboard attached to the message. Will be also received in callback queries and can be used to edit the message." + }, + "query": { + "name": "query", + "description": "The query that was used to obtain the result" + }, + "user_id": { + "name": "user_id", + "description": "The user that chose the result" + } + } + }, + "updateBotMenuButton": { + "name": "updateBotMenuButton", + "description": [ + "The menu button behavior for the specified bot has changed" + ], + "fields": { + "bot_id": { + "name": "bot_id", + "description": "Bot ID" + }, + "button": { + "name": "button", + "description": "New menu button" + } + } + }, + "updateBotMessageReaction": { + "name": "updateBotMessageReaction", + "description": [ + "Bots only: a user has changed their reactions on a message with public reactions." + ], + "fields": { + "actor": { + "name": "actor", + "description": "The user that (un)reacted to the message." + }, + "date": { + "name": "date", + "description": "Date of the change." + }, + "msg_id": { + "name": "msg_id", + "description": "ID of the reacted-to message." + }, + "new_reactions": { + "name": "new_reactions", + "description": "New reactions" + }, + "old_reactions": { + "name": "old_reactions", + "description": "Old reactions" + }, + "peer": { + "name": "peer", + "description": "Peer of the reacted-to message." + }, + "qts": { + "name": "qts", + "description": "QTS¹ event sequence identifier", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updateBotMessageReactions": { + "name": "updateBotMessageReactions", + "description": [ + "Bots only: the number of reactions on a message with anonymous reactions has changed." + ], + "fields": { + "date": { + "name": "date", + "description": "Date of the change." + }, + "msg_id": { + "name": "msg_id", + "description": "ID of the reacted-to message." + }, + "peer": { + "name": "peer", + "description": "Peer of the reacted-to message." + }, + "qts": { + "name": "qts", + "description": "QTS¹ event sequence identifier", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "reactions": { + "name": "reactions", + "description": "New reaction counters." + } + } + }, + "updateBotPrecheckoutQuery": { + "name": "updateBotPrecheckoutQuery", + "description": [ + "This object contains information about an incoming pre-checkout query." + ], + "fields": { + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "info": { + "name": "info", + "description": "Order info provided by the user" + }, + "payload": { + "name": "payload", + "description": "Bot specified invoice payload" + }, + "query_id": { + "name": "query_id", + "description": "Unique query identifier" + }, + "shipping_option_id": { + "name": "shipping_option_id", + "description": "Identifier of the shipping option chosen by the user" + }, + "total_amount": { + "name": "total_amount", + "description": "Total amount in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + }, + "user_id": { + "name": "user_id", + "description": "User who sent the query" + } + } + }, + "updateBotShippingQuery": { + "name": "updateBotShippingQuery", + "description": [ + "This object contains information about an incoming shipping query." + ], + "fields": { + "payload": { + "name": "payload", + "description": "Bot specified invoice payload" + }, + "query_id": { + "name": "query_id", + "description": "Unique query identifier" + }, + "shipping_address": { + "name": "shipping_address", + "description": "User specified shipping address" + }, + "user_id": { + "name": "user_id", + "description": "User who sent the query" + } + } + }, + "updateBotStopped": { + "name": "updateBotStopped", + "description": [ + "A bot was stopped or re-started." + ], + "fields": { + "date": { + "name": "date", + "description": "When did this action occur" + }, + "qts": { + "name": "qts", + "description": "New qts value, see updates »¹ for more info.", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "stopped": { + "name": "stopped", + "description": "Whether the bot was stopped or started" + }, + "user_id": { + "name": "user_id", + "description": "The user ID" + } + } + }, + "updateBotWebhookJSON": { + "name": "updateBotWebhookJSON", + "description": [ + "A new incoming event; for bots only" + ], + "fields": { + "data": { + "name": "data", + "description": "The event" + } + } + }, + "updateBotWebhookJSONQuery": { + "name": "updateBotWebhookJSONQuery", + "description": [ + "A new incoming query; for bots only" + ], + "fields": { + "data": { + "name": "data", + "description": "Query data" + }, + "query_id": { + "name": "query_id", + "description": "Query identifier" + }, + "timeout": { + "name": "timeout", + "description": "Query timeout" + } + } + }, + "updateChannel": { + "name": "updateChannel", + "description": [ + "A new channel or supergroup is available, or info about an existing channel has changed and must be refeteched." + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "Channel ID" + } + } + }, + "updateChannelAvailableMessages": { + "name": "updateChannelAvailableMessages", + "description": [ + "The history of a channel/supergroup¹ was hidden." + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "available_min_id": { + "name": "available_min_id", + "description": "Identifier of a maximum unavailable message in a channel due to hidden history." + }, + "channel_id": { + "name": "channel_id", + "description": "Channel/supergroup ID" + } + } + }, + "updateChannelMessageForwards": { + "name": "updateChannelMessageForwards", + "description": [ + "The forward counter of a message in a channel has changed" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "Channel ID" + }, + "forwards": { + "name": "forwards", + "description": "New forward counter" + }, + "id": { + "name": "id", + "description": "ID of the message" + } + } + }, + "updateChannelMessageViews": { + "name": "updateChannelMessageViews", + "description": [ + "The view counter of a message in a channel has changed" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "Channel ID" + }, + "id": { + "name": "id", + "description": "ID of the message" + }, + "views": { + "name": "views", + "description": "New view counter" + } + } + }, + "updateChannelParticipant": { + "name": "updateChannelParticipant", + "description": [ + "A participant has left, joined, was banned or admined in a channel or supergroup¹." + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "actor_id": { + "name": "actor_id", + "description": "User that triggered the change (inviter, admin that kicked the user, or the even the user_id itself)" + }, + "channel_id": { + "name": "channel_id", + "description": "Channel ID" + }, + "date": { + "name": "date", + "description": "Date of the event" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invite": { + "name": "invite", + "description": "Chat invite used to join the channel/supergroup¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "new_participant": { + "name": "new_participant", + "description": "New participant status" + }, + "prev_participant": { + "name": "prev_participant", + "description": "Previous participant status" + }, + "qts": { + "name": "qts", + "description": "New qts value, see updates »¹ for more info.", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "user_id": { + "name": "user_id", + "description": "User that was affected by the change" + }, + "via_chatlist": { + "name": "via_chatlist", + "description": "Whether the participant joined using a chat folder deep link »¹.", + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + } + } + }, + "updateChannelPinnedTopic": { + "name": "updateChannelPinnedTopic", + "description": [ + "A forum topic »¹ was pinned or unpinned." + ], + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "The forum ID" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "pinned": { + "name": "pinned", + "description": "Whether the topic was pinned or unpinned" + }, + "topic_id": { + "name": "topic_id", + "description": "The topic ID" + } + } + }, + "updateChannelPinnedTopics": { + "name": "updateChannelPinnedTopics", + "description": [ + "The pinned topics¹ of a forum have changed." + ], + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "Forum ID." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "order": { + "name": "order", + "description": "Ordered list containing the IDs of all pinned topics." + } + } + }, + "updateChannelReadMessagesContents": { + "name": "updateChannelReadMessagesContents", + "description": [ + "The specified channel/supergroup¹ messages were read" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "Channel/supergroup¹ ID", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "messages": { + "name": "messages", + "description": "IDs of messages that were read" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "Forum topic ID¹.", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + } + } + }, + "updateChannelTooLong": { + "name": "updateChannelTooLong", + "description": [ + "There are new updates in the specified channel, the client must fetch them.", + "If the difference is too long or if the channel isn't currently in the states, start fetching from the specified pts." + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "The channel" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "pts": { + "name": "pts", + "description": "The PTS¹.", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updateChannelUserTyping": { + "name": "updateChannelUserTyping", + "description": [ + "A user is typing in a supergroup, channel¹ or message thread²" + ], + "links": [ + "https://core.telegram.org/api/channel", + "https://core.telegram.org/api/threads" + ], + "fields": { + "action": { + "name": "action", + "description": "Whether the user is typing, sending a media or doing something else" + }, + "channel_id": { + "name": "channel_id", + "description": "Channel ID" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "from_id": { + "name": "from_id", + "description": "The peer that is typing" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "Thread ID¹", + "links": [ + "https://core.telegram.org/api/threads" + ] + } + } + }, + "updateChannelViewForumAsMessages": { + "name": "updateChannelViewForumAsMessages", + "description": [ + "Users may also choose to display messages from all topics as if they were sent to a normal group, using a \"View as messages\" setting in the local client.", + "This setting only affects the current account, and is synced to other logged in sessions using the channels.toggleViewForumAsMessages¹ method; invoking this method will update the value of the view_forum_as_messages flag of channelFull² or dialog³ and emit an updateChannelViewForumAsMessages⁴." + ], + "links": [ + "https://core.telegram.org/method/channels.toggleViewForumAsMessages", + "https://core.telegram.org/constructor/channelFull", + "https://core.telegram.org/constructor/dialog", + "https://core.telegram.org/constructor/updateChannelViewForumAsMessages" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "The forum ID" + }, + "enabled": { + "name": "enabled", + "description": "The new value of the toggle." + } + } + }, + "updateChannelWebPage": { + "name": "updateChannelWebPage", + "description": [ + "A webpage preview of a link in a channel/supergroup¹ message was generated" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "Channel/supergroup¹ ID", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "Number of events that were generated¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "webpage": { + "name": "webpage", + "description": "Generated webpage preview" + } + } + }, + "updateChat": { + "name": "updateChat", + "description": [ + "A new chat is available" + ], + "fields": { + "chat_id": { + "name": "chat_id", + "description": "Chat ID" + } + } + }, + "updateChatDefaultBannedRights": { + "name": "updateChatDefaultBannedRights", + "description": [ + "Default banned rights in a normal chat¹ were updated" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "default_banned_rights": { + "name": "default_banned_rights", + "description": "New default banned rights" + }, + "peer": { + "name": "peer", + "description": "The chat" + }, + "version": { + "name": "version", + "description": "Version" + } + } + }, + "updateChatParticipant": { + "name": "updateChatParticipant", + "description": [ + "A user has joined or left a specific chat" + ], + "fields": { + "actor_id": { + "name": "actor_id", + "description": "User that triggered the change (inviter, admin that kicked the user, or the even the user_id itself)" + }, + "chat_id": { + "name": "chat_id", + "description": "Chat¹ ID", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "date": { + "name": "date", + "description": "When did this event occur" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invite": { + "name": "invite", + "description": "The invite that was used to join the group" + }, + "new_participant": { + "name": "new_participant", + "description": "New participant info (empty if this participant just left)" + }, + "prev_participant": { + "name": "prev_participant", + "description": "Previous participant info (empty if this participant just joined)" + }, + "qts": { + "name": "qts", + "description": "New qts value, see updates »¹ for more info.", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "user_id": { + "name": "user_id", + "description": "User that was affected by the change" + } + } + }, + "updateChatParticipantAdd": { + "name": "updateChatParticipantAdd", + "description": [ + "New group member." + ], + "fields": { + "chat_id": { + "name": "chat_id", + "description": "Group ID" + }, + "date": { + "name": "date", + "description": "When was the participant added" + }, + "inviter_id": { + "name": "inviter_id", + "description": "ID of the user, who added member to the group" + }, + "user_id": { + "name": "user_id", + "description": "ID of the new member" + }, + "version": { + "name": "version", + "description": "Chat version number" + } + } + }, + "updateChatParticipantAdmin": { + "name": "updateChatParticipantAdmin", + "description": [ + "Admin permissions of a user in a basic group¹ were changed" + ], + "links": [ + "https://core.telegram.org/api/channel#basic-groups" + ], + "fields": { + "chat_id": { + "name": "chat_id", + "description": "Chat ID" + }, + "is_admin": { + "name": "is_admin", + "description": "Whether the user was rendered admin" + }, + "user_id": { + "name": "user_id", + "description": "ID of the (de)admined user" + }, + "version": { + "name": "version", + "description": "Used in basic groups to reorder updates and make sure that all of them was received." + } + } + }, + "updateChatParticipantDelete": { + "name": "updateChatParticipantDelete", + "description": [ + "A member has left the group." + ], + "fields": { + "chat_id": { + "name": "chat_id", + "description": "Group ID" + }, + "user_id": { + "name": "user_id", + "description": "ID of the user" + }, + "version": { + "name": "version", + "description": "Used in basic groups to reorder updates and make sure that all of them was received." + } + } + }, + "updateChatParticipants": { + "name": "updateChatParticipants", + "description": [ + "Composition of chat participants changed." + ], + "fields": { + "participants": { + "name": "participants", + "description": "Updated chat participants" + } + } + }, + "updateChatUserTyping": { + "name": "updateChatUserTyping", + "description": [ + "The user is preparing a message in a group; typing, recording, uploading, etc. This update is valid for 6 seconds. If no further updates of this kind are received after 6 seconds, it should be considered that the user stopped doing whatever they were doing" + ], + "fields": { + "action": { + "name": "action", + "description": "Type of action" + }, + "chat_id": { + "name": "chat_id", + "description": "Group id" + }, + "from_id": { + "name": "from_id", + "description": "Peer that started typing (can be the chat itself, in case of anonymous admins)." + } + } + }, + "updateConfig": { + "name": "updateConfig", + "description": [ + "The server-side configuration has changed; the client should re-fetch the config using help.getConfig¹" + ], + "links": [ + "https://core.telegram.org/method/help.getConfig" + ] + }, + "updateContactsReset": { + "name": "updateContactsReset", + "description": [ + "All contacts were deleted" + ] + }, + "updateDcOptions": { + "name": "updateDcOptions", + "description": [ + "Changes in the data center configuration options." + ], + "fields": { + "dc_options": { + "name": "dc_options", + "description": "New connection options" + } + } + }, + "updateDeleteChannelMessages": { + "name": "updateDeleteChannelMessages", + "description": [ + "Some messages in a supergroup/channel¹ were deleted" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "Channel ID" + }, + "messages": { + "name": "messages", + "description": "IDs of messages that were deleted" + }, + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "Number of events that were generated¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updateDeleteMessages": { + "name": "updateDeleteMessages", + "description": [ + "Messages were deleted." + ], + "fields": { + "messages": { + "name": "messages", + "description": "List of identifiers of deleted messages" + }, + "pts": { + "name": "pts", + "description": "New quality of actions in a message box" + }, + "pts_count": { + "name": "pts_count", + "description": "Number of generated events¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updateDeleteScheduledMessages": { + "name": "updateDeleteScheduledMessages", + "description": [ + "Some scheduled messages¹ were deleted from the schedule queue of a chat" + ], + "links": [ + "https://core.telegram.org/api/scheduled-messages" + ], + "fields": { + "messages": { + "name": "messages", + "description": "Deleted scheduled messages" + }, + "peer": { + "name": "peer", + "description": "Peer" + } + } + }, + "updateDialogFilter": { + "name": "updateDialogFilter", + "description": [ + "A new folder¹ was added" + ], + "links": [ + "https://core.telegram.org/api/folders" + ], + "fields": { + "filter": { + "name": "filter", + "description": "Folder¹ info", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Folder¹ ID", + "links": [ + "https://core.telegram.org/api/folders" + ] + } + } + }, + "updateDialogFilterOrder": { + "name": "updateDialogFilterOrder", + "description": [ + "New folder¹ order" + ], + "links": [ + "https://core.telegram.org/api/folders" + ], + "fields": { + "order": { + "name": "order", + "description": "Ordered folder IDs¹", + "links": [ + "https://core.telegram.org/api/folders" + ] + } + } + }, + "updateDialogFilters": { + "name": "updateDialogFilters", + "description": [ + "Clients should update folder¹ info" + ], + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "updateDialogPinned": { + "name": "updateDialogPinned", + "description": [ + "A dialog was pinned/unpinned" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + }, + "peer": { + "name": "peer", + "description": "The dialog" + }, + "pinned": { + "name": "pinned", + "description": "Whether the dialog was pinned" + } + } + }, + "updateDialogUnreadMark": { + "name": "updateDialogUnreadMark", + "description": [ + "The manual unread mark of a chat was changed" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "The dialog" + }, + "unread": { + "name": "unread", + "description": "Was the chat marked or unmarked as read" + } + } + }, + "updateDraftMessage": { + "name": "updateDraftMessage", + "description": [ + "Notifies a change of a message draft¹." + ], + "links": [ + "https://core.telegram.org/api/drafts" + ], + "fields": { + "draft": { + "name": "draft", + "description": "The draft" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "The peer to which the draft is associated" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "ID of the forum topic¹ to which the draft is associated", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + } + } + }, + "updateEditChannelMessage": { + "name": "updateEditChannelMessage", + "description": [ + "A message was edited in a channel/supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "message": { + "name": "message", + "description": "The new message" + }, + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "Number of events that were generated¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updateEditMessage": { + "name": "updateEditMessage", + "description": [ + "A message was edited" + ], + "fields": { + "message": { + "name": "message", + "description": "The new edited message" + }, + "pts": { + "name": "pts", + "description": "PTS¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "PTS count¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updateEncryptedChatTyping": { + "name": "updateEncryptedChatTyping", + "description": [ + "Interlocutor is typing a message in an encrypted chat. Update period is 6 second. If upon this time there is no repeated update, it shall be considered that the interlocutor stopped typing." + ], + "fields": { + "chat_id": { + "name": "chat_id", + "description": "Chat ID" + } + } + }, + "updateEncryptedMessagesRead": { + "name": "updateEncryptedMessagesRead", + "description": [ + "Communication history in an encrypted chat was marked as read." + ], + "fields": { + "chat_id": { + "name": "chat_id", + "description": "Chat ID" + }, + "date": { + "name": "date", + "description": "Time when messages were read" + }, + "max_date": { + "name": "max_date", + "description": "Maximum value of data for read messages" + } + } + }, + "updateEncryption": { + "name": "updateEncryption", + "description": [ + "Change of state in an encrypted chat." + ], + "fields": { + "chat": { + "name": "chat", + "description": "Encrypted chat" + }, + "date": { + "name": "date", + "description": "Date of change" + } + } + }, + "updateFavedStickers": { + "name": "updateFavedStickers", + "description": [ + "The list of favorited stickers was changed, the client should call messages.getFavedStickers¹ to refetch the new list" + ], + "links": [ + "https://core.telegram.org/method/messages.getFavedStickers" + ] + }, + "updateFolderPeers": { + "name": "updateFolderPeers", + "description": [ + "The peer list of a peer folder¹ was updated" + ], + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ], + "fields": { + "folder_peers": { + "name": "folder_peers", + "description": "New peer list" + }, + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "Number of events that were generated¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updateGeoLiveViewed": { + "name": "updateGeoLiveViewed", + "description": [ + "Live geoposition message was viewed" + ], + "fields": { + "msg_id": { + "name": "msg_id", + "description": "Message ID of geoposition message" + }, + "peer": { + "name": "peer", + "description": "The user that viewed the live geoposition" + } + } + }, + "updateGroupCall": { + "name": "updateGroupCall", + "description": [ + "A new groupcall was started" + ], + "fields": { + "call": { + "name": "call", + "description": "Info about the group call or livestream" + }, + "chat_id": { + "name": "chat_id", + "description": "The channel/supergroup¹ where this group call or livestream takes place", + "links": [ + "https://core.telegram.org/api/channel" + ] + } + } + }, + "updateGroupCallConnection": { + "name": "updateGroupCallConnection", + "description": [ + "New WebRTC parameters" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "params": { + "name": "params", + "description": "WebRTC parameters" + }, + "presentation": { + "name": "presentation", + "description": "Are these parameters related to the screen capture session currently in progress?" + } + } + }, + "updateGroupCallParticipants": { + "name": "updateGroupCallParticipants", + "description": [ + "The participant list of a certain group call has changed" + ], + "fields": { + "call": { + "name": "call", + "description": "Group call" + }, + "participants": { + "name": "participants", + "description": "New participant list" + }, + "version": { + "name": "version", + "description": "Version" + } + } + }, + "updateGroupInvitePrivacyForbidden": { + "name": "updateGroupInvitePrivacyForbidden", + "description": [ + "0-N updates of this type may be returned only when invoking messages.addChatUser¹, channels.inviteToChannel² or messages.createChat³: it indicates we couldn't add a user to a chat because of their privacy settings; if required, an invite link⁴ can be shared with the user, instead." + ], + "links": [ + "https://core.telegram.org/method/messages.addChatUser", + "https://core.telegram.org/method/channels.inviteToChannel", + "https://core.telegram.org/method/messages.createChat", + "https://core.telegram.org/api/invites" + ], + "fields": { + "user_id": { + "name": "user_id", + "description": "ID of the user we couldn't add." + } + } + }, + "updateInlineBotCallbackQuery": { + "name": "updateInlineBotCallbackQuery", + "description": [ + "This notification is received by bots when a button is pressed" + ], + "fields": { + "chat_instance": { + "name": "chat_instance", + "description": "Global identifier, uniquely corresponding to the chat to which the message with the callback button was sent. Useful for high scores in games." + }, + "data": { + "name": "data", + "description": "Data associated with the callback button. Be aware that a bad client can send arbitrary data in this field." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "game_short_name": { + "name": "game_short_name", + "description": "Short name of a Game to be returned, serves as the unique identifier for the game" + }, + "msg_id": { + "name": "msg_id", + "description": "ID of the inline message with the button" + }, + "query_id": { + "name": "query_id", + "description": "Query ID" + }, + "user_id": { + "name": "user_id", + "description": "ID of the user that pressed the button" + } + } + }, + "updateLangPack": { + "name": "updateLangPack", + "description": [ + "Language pack updated" + ], + "fields": { + "difference": { + "name": "difference", + "description": "Changed strings" + } + } + }, + "updateLangPackTooLong": { + "name": "updateLangPackTooLong", + "description": [ + "A language pack has changed, the client should manually fetch the changed strings using langpack.getDifference¹" + ], + "links": [ + "https://core.telegram.org/method/langpack.getDifference" + ], + "fields": { + "lang_code": { + "name": "lang_code", + "description": "Language code" + } + } + }, + "updateLoginToken": { + "name": "updateLoginToken", + "description": [ + "A login token (for login via QR code) was accepted." + ] + }, + "updateMessageExtendedMedia": { + "name": "updateMessageExtendedMedia", + "description": [ + "Extended media update" + ], + "fields": { + "extended_media": { + "name": "extended_media", + "description": "Extended media" + }, + "msg_id": { + "name": "msg_id", + "description": "Message ID" + }, + "peer": { + "name": "peer", + "description": "Peer" + } + } + }, + "updateMessageID": { + "name": "updateMessageID", + "description": [ + "Sent message with random_id client identifier was assigned an identifier." + ], + "fields": { + "id": { + "name": "id", + "description": "id identifier of a respective Message¹", + "links": [ + "https://core.telegram.org/type/Message" + ] + }, + "random_id": { + "name": "random_id", + "description": "Previously transferred client random_id identifier" + } + } + }, + "updateMessagePoll": { + "name": "updateMessagePoll", + "description": [ + "The results of a poll have changed" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "poll": { + "name": "poll", + "description": "If the server knows the client hasn't cached this poll yet, the poll itself" + }, + "poll_id": { + "name": "poll_id", + "description": "Poll ID" + }, + "results": { + "name": "results", + "description": "New poll results" + } + } + }, + "updateMessagePollVote": { + "name": "updateMessagePollVote", + "description": [ + "A specific peer has voted in a poll" + ], + "fields": { + "options": { + "name": "options", + "description": "Chosen option(s)" + }, + "peer": { + "name": "peer", + "description": "The peer that voted in the poll" + }, + "poll_id": { + "name": "poll_id", + "description": "Poll ID" + }, + "qts": { + "name": "qts", + "description": "New qts value, see updates »¹ for more info.", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updateMessageReactions": { + "name": "updateMessageReactions", + "description": [ + "New message reactions »¹ are available" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "msg_id": { + "name": "msg_id", + "description": "Message ID" + }, + "peer": { + "name": "peer", + "description": "Peer" + }, + "reactions": { + "name": "reactions", + "description": "Reactions" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "Forum topic ID¹", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + } + } + }, + "updateMoveStickerSetToTop": { + "name": "updateMoveStickerSetToTop", + "description": [ + "A stickerset was just moved to top, see here for more info »¹" + ], + "links": [ + "https://core.telegram.org/api/stickers#recent-stickersets" + ], + "fields": { + "emojis": { + "name": "emojis", + "description": "This update is referring to a custom emoji stickerset¹", + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "masks": { + "name": "masks", + "description": "This update is referring to a mask stickerset¹", + "links": [ + "https://core.telegram.org/api/stickers#mask-stickers" + ] + }, + "stickerset": { + "name": "stickerset", + "description": "Stickerset¹ ID", + "links": [ + "https://core.telegram.org/api/stickers" + ] + } + } + }, + "updateNewAuthorization": { + "name": "updateNewAuthorization", + "description": [ + "A new session logged into the current user's account through an unknown device." + ], + "fields": { + "date": { + "name": "date", + "description": "Authorization date" + }, + "device": { + "name": "device", + "description": "Name of device, for example Android" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "location": { + "name": "location", + "description": "Location, for example USA, NY (IP=1.2.3.4)" + }, + "unconfirmed": { + "name": "unconfirmed", + "description": "Whether the session is unconfirmed, see here »¹ for more info.", + "links": [ + "https://core.telegram.org/api/auth#confirming-login" + ] + } + } + }, + "updateNewChannelMessage": { + "name": "updateNewChannelMessage", + "description": [ + "A new message was sent in a channel/supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "message": { + "name": "message", + "description": "New message" + }, + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "Number of events that were generated¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updateNewEncryptedMessage": { + "name": "updateNewEncryptedMessage", + "description": [ + "New encrypted message." + ], + "fields": { + "message": { + "name": "message", + "description": "Message" + }, + "qts": { + "name": "qts", + "description": "New qts value, see updates »¹ for more info.", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updateNewMessage": { + "name": "updateNewMessage", + "description": [ + "New message in a private chat or in a basic group¹." + ], + "links": [ + "https://core.telegram.org/api/channel#basic-groups" + ], + "fields": { + "message": { + "name": "message", + "description": "Message" + }, + "pts": { + "name": "pts", + "description": "New quantity of actions in a message box" + }, + "pts_count": { + "name": "pts_count", + "description": "Number of generated events" + } + } + }, + "updateNewScheduledMessage": { + "name": "updateNewScheduledMessage", + "description": [ + "A message was added to the schedule queue of a chat¹" + ], + "links": [ + "https://core.telegram.org/api/scheduled-messages" + ], + "fields": { + "message": { + "name": "message", + "description": "Message" + } + } + }, + "updateNewStickerSet": { + "name": "updateNewStickerSet", + "description": [ + "A new stickerset was installed" + ], + "fields": { + "stickerset": { + "name": "stickerset", + "description": "The installed stickerset" + } + } + }, + "updateNotifySettings": { + "name": "updateNotifySettings", + "description": [ + "Changes in notification settings." + ], + "fields": { + "notify_settings": { + "name": "notify_settings", + "description": "New notification settings" + }, + "peer": { + "name": "peer", + "description": "Notification source" + } + } + }, + "updatePeerBlocked": { + "name": "updatePeerBlocked", + "description": [ + "We blocked a peer, see here »¹ for more info on blocklists." + ], + "links": [ + "https://core.telegram.org/api/block" + ], + "fields": { + "blocked": { + "name": "blocked", + "description": "Whether the peer was blocked or unblocked" + }, + "blocked_my_stories_from": { + "name": "blocked_my_stories_from", + "description": "Whether the peer was added/removed to/from the story blocklist; if not set, this update affects the main blocklist, see here »¹ for more info.", + "links": [ + "https://core.telegram.org/api/block" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer_id": { + "name": "peer_id", + "description": "The (un)blocked peer" + } + } + }, + "updatePeerHistoryTTL": { + "name": "updatePeerHistoryTTL", + "description": [ + "The Time-To-Live for messages sent by the current user in a specific chat has changed" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "The chat" + }, + "ttl_period": { + "name": "ttl_period", + "description": "The new Time-To-Live" + } + } + }, + "updatePeerLocated": { + "name": "updatePeerLocated", + "description": [ + "List of peers near you was updated" + ], + "fields": { + "peers": { + "name": "peers", + "description": "Geolocated peer list update" + } + } + }, + "updatePeerSettings": { + "name": "updatePeerSettings", + "description": [ + "Settings of a certain peer have changed" + ], + "fields": { + "peer": { + "name": "peer", + "description": "The peer" + }, + "settings": { + "name": "settings", + "description": "Associated peer settings" + } + } + }, + "updatePeerWallpaper": { + "name": "updatePeerWallpaper", + "description": [ + "The wallpaper »¹ of a given peer has changed." + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "The peer where the wallpaper has changed." + }, + "wallpaper": { + "name": "wallpaper", + "description": "The new wallpaper, if none the wallpaper was removed and the default wallpaper should be used." + }, + "wallpaper_overridden": { + "name": "wallpaper_overridden", + "description": "Whether the other user has chosen a custom wallpaper for us using messages.setChatWallPaper¹ and the for_both flag, see here »² for more info.", + "links": [ + "https://core.telegram.org/method/messages.setChatWallPaper", + "https://core.telegram.org/api/wallpapers#installing-wallpapers-in-a-specific-chat-or-channel" + ] + } + } + }, + "updatePendingJoinRequests": { + "name": "updatePendingJoinRequests", + "description": [ + "Someone has requested to join a chat or channel" + ], + "fields": { + "peer": { + "name": "peer", + "description": "Chat or channel" + }, + "recent_requesters": { + "name": "recent_requesters", + "description": "IDs of users that have recently requested to join" + }, + "requests_pending": { + "name": "requests_pending", + "description": "Number of pending join requests »¹ for the chat or channel", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + } + } + }, + "updatePhoneCall": { + "name": "updatePhoneCall", + "description": [ + "An incoming phone call" + ], + "fields": { + "phone_call": { + "name": "phone_call", + "description": "Phone call" + } + } + }, + "updatePhoneCallSignalingData": { + "name": "updatePhoneCallSignalingData", + "description": [ + "Incoming phone call signaling payload" + ], + "fields": { + "data": { + "name": "data", + "description": "Signaling payload" + }, + "phone_call_id": { + "name": "phone_call_id", + "description": "Phone call ID" + } + } + }, + "updatePinnedChannelMessages": { + "name": "updatePinnedChannelMessages", + "description": [ + "Messages were pinned/unpinned in a channel/supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "Channel ID" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "messages": { + "name": "messages", + "description": "Messages" + }, + "pinned": { + "name": "pinned", + "description": "Whether the messages were pinned or unpinned" + }, + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "Number of events that were generated¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updatePinnedDialogs": { + "name": "updatePinnedDialogs", + "description": [ + "Pinned dialogs were updated" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + }, + "order": { + "name": "order", + "description": "New order of pinned dialogs" + } + } + }, + "updatePinnedMessages": { + "name": "updatePinnedMessages", + "description": [ + "Some messages were pinned in a chat" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "messages": { + "name": "messages", + "description": "Message IDs" + }, + "peer": { + "name": "peer", + "description": "Peer" + }, + "pinned": { + "name": "pinned", + "description": "Whether the messages were pinned or unpinned" + }, + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "Number of events that were generated¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updatePinnedSavedDialogs": { + "name": "updatePinnedSavedDialogs", + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "order": { + "name": "order", + "description": " " + } + } + }, + "updatePrivacy": { + "name": "updatePrivacy", + "description": [ + "Privacy rules were changed" + ], + "fields": { + "key": { + "name": "key", + "description": "Peers to which the privacy rules apply" + }, + "rules": { + "name": "rules", + "description": "New privacy rules" + } + } + }, + "updatePtsChanged": { + "name": "updatePtsChanged", + "description": [ + "Common message box sequence PTS¹ has changed, state has to be refetched using updates.getState²" + ], + "links": [ + "https://core.telegram.org/api/updates", + "https://core.telegram.org/api/updates#fetching-state" + ] + }, + "updateReadChannelDiscussionInbox": { + "name": "updateReadChannelDiscussionInbox", + "description": [ + "Incoming comments in a discussion thread¹ were marked as read" + ], + "links": [ + "https://core.telegram.org/api/threads" + ], + "fields": { + "broadcast_id": { + "name": "broadcast_id", + "description": "If set, contains the ID of the channel¹ that contains the post that started the comment thread² in the discussion group (channel_id)", + "links": [ + "https://core.telegram.org/api/channel", + "https://core.telegram.org/api/threads" + ] + }, + "broadcast_post": { + "name": "broadcast_post", + "description": "If set, contains the ID of the channel post that started the comment thread¹", + "links": [ + "https://core.telegram.org/api/threads" + ] + }, + "channel_id": { + "name": "channel_id", + "description": "Discussion group ID¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "read_max_id": { + "name": "read_max_id", + "description": "Message ID of latest read incoming message for this thread¹", + "links": [ + "https://core.telegram.org/api/threads" + ] + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "ID of the group message that started the thread¹ (message in linked discussion group)", + "links": [ + "https://core.telegram.org/api/threads" + ] + } + } + }, + "updateReadChannelDiscussionOutbox": { + "name": "updateReadChannelDiscussionOutbox", + "description": [ + "Outgoing comments in a discussion thread¹ were marked as read" + ], + "links": [ + "https://core.telegram.org/api/threads" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "Supergroup ID¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "read_max_id": { + "name": "read_max_id", + "description": "Message ID of latest read outgoing message for this thread¹", + "links": [ + "https://core.telegram.org/api/threads" + ] + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "ID of the group message that started the thread¹", + "links": [ + "https://core.telegram.org/api/threads" + ] + } + } + }, + "updateReadChannelInbox": { + "name": "updateReadChannelInbox", + "description": [ + "Incoming messages in a channel/supergroup¹ were read" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "Channel/supergroup ID" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + }, + "max_id": { + "name": "max_id", + "description": "Position up to which all incoming messages are read." + }, + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "still_unread_count": { + "name": "still_unread_count", + "description": "Count of messages weren't read yet" + } + } + }, + "updateReadChannelOutbox": { + "name": "updateReadChannelOutbox", + "description": [ + "Outgoing messages in a channel/supergroup¹ were read" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "Channel/supergroup ID" + }, + "max_id": { + "name": "max_id", + "description": "Position up to which all outgoing messages are read." + } + } + }, + "updateReadFeaturedEmojiStickers": { + "name": "updateReadFeaturedEmojiStickers", + "description": [ + "Some featured custom emoji stickers¹ were marked as read" + ], + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + }, + "updateReadFeaturedStickers": { + "name": "updateReadFeaturedStickers", + "description": [ + "Some featured stickers were marked as read" + ] + }, + "updateReadHistoryInbox": { + "name": "updateReadHistoryInbox", + "description": [ + "Incoming messages were read" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + }, + "max_id": { + "name": "max_id", + "description": "Maximum ID of messages read" + }, + "peer": { + "name": "peer", + "description": "Peer" + }, + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "Number of events that were generated¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "still_unread_count": { + "name": "still_unread_count", + "description": "Number of messages that are still unread" + } + } + }, + "updateReadHistoryOutbox": { + "name": "updateReadHistoryOutbox", + "description": [ + "Outgoing messages were read" + ], + "fields": { + "max_id": { + "name": "max_id", + "description": "Maximum ID of read outgoing messages" + }, + "peer": { + "name": "peer", + "description": "Peer" + }, + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "Number of events that were generated¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updateReadMessagesContents": { + "name": "updateReadMessagesContents", + "description": [ + "Contents of messages in the common message box¹ were read" + ], + "links": [ + "https://core.telegram.org/api/updates" + ], + "fields": { + "date": { + "name": "date", + "description": "When was the last message in messages marked as read." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "messages": { + "name": "messages", + "description": "IDs of read messages" + }, + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "Number of events that were generated¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updateReadStories": { + "name": "updateReadStories", + "description": [ + "Stories of a specific peer were marked as read." + ], + "fields": { + "max_id": { + "name": "max_id", + "description": "ID of the last story that was marked as read" + }, + "peer": { + "name": "peer", + "description": "The peer" + } + } + }, + "updateRecentEmojiStatuses": { + "name": "updateRecentEmojiStatuses", + "description": [ + "The list of recent emoji statuses¹ has changed" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + }, + "updateRecentReactions": { + "name": "updateRecentReactions", + "description": [ + "The list of recent message reactions¹ has changed" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ] + }, + "updateRecentStickers": { + "name": "updateRecentStickers", + "description": [ + "The recent sticker list was updated" + ] + }, + "updateSavedDialogPinned": { + "name": "updateSavedDialogPinned", + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": " " + }, + "pinned": { + "name": "pinned", + "description": " " + } + } + }, + "updateSavedGifs": { + "name": "updateSavedGifs", + "description": [ + "The saved gif list has changed, the client should refetch it using messages.getSavedGifs¹" + ], + "links": [ + "https://core.telegram.org/method/messages.getSavedGifs" + ] + }, + "updateSavedRingtones": { + "name": "updateSavedRingtones", + "description": [ + "The list of saved notification sounds has changed, use account.getSavedRingtones¹ to fetch the new list." + ], + "links": [ + "https://core.telegram.org/method/account.getSavedRingtones" + ] + }, + "updateSentStoryReaction": { + "name": "updateSentStoryReaction", + "description": [ + "Indicates we reacted to a story »¹." + ], + "links": [ + "https://core.telegram.org/api/stories#reactions" + ], + "fields": { + "peer": { + "name": "peer", + "description": "The peer that sent the story" + }, + "reaction": { + "name": "reaction", + "description": "The reaction that was sent" + }, + "story_id": { + "name": "story_id", + "description": "ID of the story we reacted to" + } + } + }, + "updateServiceNotification": { + "name": "updateServiceNotification", + "description": [ + "A service message for the user.", + "The app must show the message to the user upon receiving this update. In case the popup parameter was passed, the text message must be displayed in a popup alert immediately upon receipt. It is recommended to handle the text as you would an ordinary message in terms of highlighting links, etc. The message must also be stored locally as part of the message history with the user id 777000 (Telegram Notifications)." + ], + "fields": { + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "inbox_date": { + "name": "inbox_date", + "description": "When was the notification receivedThe message must also be stored locally as part of the message history with the user id 777000 (Telegram Notifications)." + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "media": { + "name": "media", + "description": "Media content (optional)" + }, + "message": { + "name": "message", + "description": "Message text" + }, + "popup": { + "name": "popup", + "description": "If set, the message must be displayed in a popup." + }, + "type": { + "name": "type", + "description": "String, identical in format and contents to the type¹ field in API errors. Describes type of service message. It is acceptable to ignore repeated messages of the same type within a short period of time (15 minutes).", + "links": [ + "https://core.telegram.org/api/errors#error-type" + ] + } + } + }, + "updateShort": { + "name": "updateShort", + "description": [ + "Shortened constructor containing info on one update not requiring auxiliary data" + ], + "fields": { + "date": { + "name": "date", + "description": "Date of event" + }, + "update": { + "name": "update", + "description": "Update" + } + } + }, + "updateShortChatMessage": { + "name": "updateShortChatMessage", + "description": [ + "Shortened constructor containing info on one new incoming text message from a chat" + ], + "fields": { + "chat_id": { + "name": "chat_id", + "description": "ID of the chat where the message was sent" + }, + "date": { + "name": "date", + "description": "date¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "entities": { + "name": "entities", + "description": "Entities¹ for styled text", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "from_id": { + "name": "from_id", + "description": "ID of the sender of the message" + }, + "fwd_from": { + "name": "fwd_from", + "description": "Info about a forwarded message" + }, + "id": { + "name": "id", + "description": "ID of the message" + }, + "media_unread": { + "name": "media_unread", + "description": "Whether the message contains some unread mentions" + }, + "mentioned": { + "name": "mentioned", + "description": "Whether we were mentioned in this message" + }, + "message": { + "name": "message", + "description": "Message" + }, + "out": { + "name": "out", + "description": "Whether the message is outgoing" + }, + "pts": { + "name": "pts", + "description": "PTS¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "PTS count¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "reply_to": { + "name": "reply_to", + "description": "Reply (thread) information" + }, + "silent": { + "name": "silent", + "description": "If true, the message is a silent message, no notifications should be triggered" + }, + "ttl_period": { + "name": "ttl_period", + "description": "Time To Live of the message, once updateShortChatMessage.date+updateShortChatMessage.ttl_period === time(), the message will be deleted on the server, and must be deleted locally as well." + }, + "via_bot_id": { + "name": "via_bot_id", + "description": "Info about the inline bot used to generate this message" + } + } + }, + "updateShortMessage": { + "name": "updateShortMessage", + "description": [ + "Info about a message sent to (received from) another user" + ], + "fields": { + "date": { + "name": "date", + "description": "date¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "entities": { + "name": "entities", + "description": "Entities¹ for styled text", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "fwd_from": { + "name": "fwd_from", + "description": "Info about a forwarded message" + }, + "id": { + "name": "id", + "description": "The message ID" + }, + "media_unread": { + "name": "media_unread", + "description": "Whether there are some unread mentions in this message" + }, + "mentioned": { + "name": "mentioned", + "description": "Whether we were mentioned in the message" + }, + "message": { + "name": "message", + "description": "The message" + }, + "out": { + "name": "out", + "description": "Whether the message is outgoing" + }, + "pts": { + "name": "pts", + "description": "PTS¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "PTS count¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "reply_to": { + "name": "reply_to", + "description": "Reply and thread¹ information", + "links": [ + "https://core.telegram.org/api/threads" + ] + }, + "silent": { + "name": "silent", + "description": "If true, the message is a silent message, no notifications should be triggered" + }, + "ttl_period": { + "name": "ttl_period", + "description": "Time To Live of the message, once message.date+message.ttl_period === time(), the message will be deleted on the server, and must be deleted locally as well." + }, + "user_id": { + "name": "user_id", + "description": "The ID of the sender (if outgoing will be the ID of the destination) of the message" + }, + "via_bot_id": { + "name": "via_bot_id", + "description": "Info about the inline bot used to generate this message" + } + } + }, + "updateShortSentMessage": { + "name": "updateShortSentMessage", + "description": [ + "Shortened constructor containing info on one outgoing message to a contact (the destination chat has to be extracted from the method call that returned this object)." + ], + "fields": { + "date": { + "name": "date", + "description": "date¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "entities": { + "name": "entities", + "description": "Entities¹ for styled text", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "ID of the sent message" + }, + "media": { + "name": "media", + "description": "Attached media" + }, + "out": { + "name": "out", + "description": "Whether the message is outgoing" + }, + "pts": { + "name": "pts", + "description": "PTS¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "PTS count¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "ttl_period": { + "name": "ttl_period", + "description": "Time To Live of the message, once message.date+message.ttl_period === time(), the message will be deleted on the server, and must be deleted locally as well." + } + } + }, + "updateStickerSets": { + "name": "updateStickerSets", + "description": [ + "Installed stickersets have changed, the client should refetch them as described in the docs¹." + ], + "links": [ + "https://core.telegram.org/api/stickers#installing-stickersets" + ], + "fields": { + "emojis": { + "name": "emojis", + "description": "Whether the list of installed custom emoji stickersets¹ has changed", + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "masks": { + "name": "masks", + "description": "Whether mask stickersets have changed" + } + } + }, + "updateStickerSetsOrder": { + "name": "updateStickerSetsOrder", + "description": [ + "The order of stickersets was changed" + ], + "fields": { + "emojis": { + "name": "emojis", + "description": "Whether the updated stickers are custom emoji stickers" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "masks": { + "name": "masks", + "description": "Whether the updated stickers are mask stickers" + }, + "order": { + "name": "order", + "description": "New sticker order by sticker ID" + } + } + }, + "updateStoriesStealthMode": { + "name": "updateStoriesStealthMode", + "description": [ + "Indicates that stories stealth mode¹ was activated." + ], + "links": [ + "https://core.telegram.org/api/stories#stealth-mode" + ], + "fields": { + "stealth_mode": { + "name": "stealth_mode", + "description": "Information about the current stealth mode¹ session.", + "links": [ + "https://core.telegram.org/api/stories#stealth-mode" + ] + } + } + }, + "updateStory": { + "name": "updateStory", + "description": [ + "A new story was posted." + ], + "fields": { + "peer": { + "name": "peer", + "description": "ID of the poster." + }, + "story": { + "name": "story", + "description": "The story that was posted." + } + } + }, + "updateStoryID": { + "name": "updateStoryID", + "description": [ + "A story was successfully uploaded.", + "Once a story is successfully uploaded, an updateStoryID¹ will be returned, indicating the story ID (id) that was attributed to the story (like for messages, random_id indicates the random_id that was passed to stories.sendStory²: this way, you can tell which story was assigned a specific id by checking which stories.sendStory³ call has the returned random_id)." + ], + "links": [ + "https://core.telegram.org/constructor/updateStoryID", + "https://core.telegram.org/method/stories.sendStory", + "https://core.telegram.org/method/stories.sendStory" + ], + "fields": { + "id": { + "name": "id", + "description": "The id that was attributed to the story." + }, + "random_id": { + "name": "random_id", + "description": "The random_id that was passed to stories.sendStory¹.", + "links": [ + "https://core.telegram.org/method/stories.sendStory" + ] + } + } + }, + "updateTheme": { + "name": "updateTheme", + "description": [ + "A cloud theme was updated" + ], + "fields": { + "theme": { + "name": "theme", + "description": "Theme" + } + } + }, + "updateTranscribedAudio": { + "name": "updateTranscribedAudio", + "description": [ + "A pending voice message transcription »¹ initiated with messages.transcribeAudio² was updated." + ], + "links": [ + "https://core.telegram.org/api/transcribe", + "https://core.telegram.org/method/messages.transcribeAudio" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "msg_id": { + "name": "msg_id", + "description": "Transcribed message ID" + }, + "peer": { + "name": "peer", + "description": "Peer of the transcribed message" + }, + "pending": { + "name": "pending", + "description": "Whether this transcription is still pending and further updateTranscribedAudio¹ about it will be sent in the future.", + "links": [ + "https://core.telegram.org/constructor/updateTranscribedAudio" + ] + }, + "text": { + "name": "text", + "description": "Transcribed text" + }, + "transcription_id": { + "name": "transcription_id", + "description": "Transcription ID" + } + } + }, + "updateUser": { + "name": "updateUser", + "description": [ + "User information was updated, it must be refetched using users.getFullUser¹." + ], + "links": [ + "https://core.telegram.org/method/users.getFullUser" + ], + "fields": { + "user_id": { + "name": "user_id", + "description": "User ID" + } + } + }, + "updateUserEmojiStatus": { + "name": "updateUserEmojiStatus", + "description": [ + "The emoji status¹ of a certain user has changed" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ], + "fields": { + "emoji_status": { + "name": "emoji_status", + "description": "New emoji status¹", + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + } + }, + "updateUserName": { + "name": "updateUserName", + "description": [ + "Changes the user's first name, last name and username." + ], + "fields": { + "first_name": { + "name": "first_name", + "description": "New first name. Corresponds to the new value of real_first_name field of the userFull¹ constructor.", + "links": [ + "https://core.telegram.org/constructor/userFull" + ] + }, + "last_name": { + "name": "last_name", + "description": "New last name. Corresponds to the new value of real_last_name field of the userFull¹ constructor.", + "links": [ + "https://core.telegram.org/constructor/userFull" + ] + }, + "user_id": { + "name": "user_id", + "description": "User identifier" + }, + "usernames": { + "name": "usernames", + "description": "Usernames." + } + } + }, + "updateUserPhone": { + "name": "updateUserPhone", + "description": [ + "A user's phone number was changed" + ], + "fields": { + "phone": { + "name": "phone", + "description": "New phone number" + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + } + }, + "updateUserStatus": { + "name": "updateUserStatus", + "description": [ + "Contact status update." + ], + "fields": { + "status": { + "name": "status", + "description": "New status" + }, + "user_id": { + "name": "user_id", + "description": "User identifier" + } + } + }, + "updateUserTyping": { + "name": "updateUserTyping", + "description": [ + "The user is preparing a message; typing, recording, uploading, etc. This update is valid for 6 seconds. If no further updates of this kind are received after 6 seconds, it should be considered that the user stopped doing whatever they were doing" + ], + "fields": { + "action": { + "name": "action", + "description": "Action type" + }, + "user_id": { + "name": "user_id", + "description": "User id" + } + } + }, + "updateWebPage": { + "name": "updateWebPage", + "description": [ + "An instant view¹ webpage preview was generated" + ], + "links": [ + "https://instantview.telegram.org" + ], + "fields": { + "pts": { + "name": "pts", + "description": "Event count after generation¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_count": { + "name": "pts_count", + "description": "Number of events that were generated¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "webpage": { + "name": "webpage", + "description": "Webpage preview" + } + } + }, + "updateWebViewResultSent": { + "name": "updateWebViewResultSent", + "description": [ + "Indicates to a bot that a webview was closed and an inline message was sent on behalf of the user using messages.sendWebViewResultMessage¹" + ], + "links": [ + "https://core.telegram.org/method/messages.sendWebViewResultMessage" + ], + "fields": { + "query_id": { + "name": "query_id", + "description": "Web app interaction ID" + } + } + }, + "updates.channelDifference": { + "name": "updates.channelDifference", + "description": [ + "The new updates" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chats" + }, + "final": { + "name": "final", + "description": "Whether there are more updates to be fetched using getDifference, starting from the provided pts" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "new_messages": { + "name": "new_messages", + "description": "New messages" + }, + "other_updates": { + "name": "other_updates", + "description": "Other updates" + }, + "pts": { + "name": "pts", + "description": "The PTS¹ from which to start getting updates the next time", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "timeout": { + "name": "timeout", + "description": "Clients are supposed to refetch the channel difference after timeout seconds have elapsed" + }, + "users": { + "name": "users", + "description": "Users" + } + } + }, + "updates.channelDifferenceEmpty": { + "name": "updates.channelDifferenceEmpty", + "description": [ + "There are no new updates" + ], + "fields": { + "final": { + "name": "final", + "description": "Whether there are more updates that must be fetched (always false)" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "pts": { + "name": "pts", + "description": "The latest PTS¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "timeout": { + "name": "timeout", + "description": "Clients are supposed to refetch the channel difference after timeout seconds have elapsed" + } + } + }, + "updates.channelDifferenceTooLong": { + "name": "updates.channelDifferenceTooLong", + "description": [ + "The provided pts + limit \u003c remote pts. Simply, there are too many updates to be fetched (more than limit), the client has to resolve the update gap in one of the following ways (assuming the existence of a persistent database to locally store messages):", + "It should be also noted that some messages like live location messages shouldn't be deleted." + ], + "fields": { + "chats": { + "name": "chats", + "description": "Chats from messages" + }, + "dialog": { + "name": "dialog", + "description": "Dialog containing the latest PTS¹ that can be used to reset the channel state", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "final": { + "name": "final", + "description": "Whether there are more updates that must be fetched (always false)" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "messages": { + "name": "messages", + "description": "The latest messages" + }, + "timeout": { + "name": "timeout", + "description": "Clients are supposed to refetch the channel difference after timeout seconds have elapsed" + }, + "users": { + "name": "users", + "description": "Users from messages" + } + } + }, + "updates.difference": { + "name": "updates.difference", + "description": [ + "Full list of occurred events." + ], + "fields": { + "chats": { + "name": "chats", + "description": "List of chats mentioned in events" + }, + "new_encrypted_messages": { + "name": "new_encrypted_messages", + "description": "List of new encrypted secret chat messages" + }, + "new_messages": { + "name": "new_messages", + "description": "List of new messages" + }, + "other_updates": { + "name": "other_updates", + "description": "List of updates" + }, + "state": { + "name": "state", + "description": "Current state" + }, + "users": { + "name": "users", + "description": "List of users mentioned in events" + } + } + }, + "updates.differenceEmpty": { + "name": "updates.differenceEmpty", + "description": [ + "No events." + ], + "fields": { + "date": { + "name": "date", + "description": "Current date" + }, + "seq": { + "name": "seq", + "description": "Number of sent updates" + } + } + }, + "updates.differenceSlice": { + "name": "updates.differenceSlice", + "description": [ + "Incomplete list of occurred events." + ], + "fields": { + "chats": { + "name": "chats", + "description": "List of chats mentioned in events" + }, + "intermediate_state": { + "name": "intermediate_state", + "description": "Intermediary state" + }, + "new_encrypted_messages": { + "name": "new_encrypted_messages", + "description": "New messages from the encrypted event sequence¹", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "new_messages": { + "name": "new_messages", + "description": "List of new messages" + }, + "other_updates": { + "name": "other_updates", + "description": "List of updates" + }, + "users": { + "name": "users", + "description": "List of users mentioned in events" + } + } + }, + "updates.differenceTooLong": { + "name": "updates.differenceTooLong", + "description": [ + "The difference is too long¹, and the specified state must be used to refetch updates." + ], + "links": [ + "https://core.telegram.org/api/updates#recovering-gaps" + ], + "fields": { + "pts": { + "name": "pts", + "description": "The new state to use." + } + } + }, + "updates.state": { + "name": "updates.state", + "description": [ + "Updates state." + ], + "fields": { + "date": { + "name": "date", + "description": "Date of condition" + }, + "pts": { + "name": "pts", + "description": "Number of events occurred in a text box" + }, + "qts": { + "name": "qts", + "description": "Position in a sequence of updates in secret chats. For further details refer to article secret chats¹", + "links": [ + "https://core.telegram.org/api/end-to-end" + ] + }, + "seq": { + "name": "seq", + "description": "Number of sent updates" + }, + "unread_count": { + "name": "unread_count", + "description": "Number of unread messages" + } + } + }, + "updatesCombined": { + "name": "updatesCombined", + "description": [ + "Constructor for a group of updates." + ], + "fields": { + "chats": { + "name": "chats", + "description": "List of chats mentioned in updates" + }, + "date": { + "name": "date", + "description": "Current date" + }, + "seq": { + "name": "seq", + "description": "Value seq for the latest update in a group" + }, + "seq_start": { + "name": "seq_start", + "description": "Value seq for the earliest update in a group" + }, + "updates": { + "name": "updates", + "description": "List of updates" + }, + "users": { + "name": "users", + "description": "List of users mentioned in updates" + } + } + }, + "updatesTooLong": { + "name": "updatesTooLong", + "description": [ + "Too many updates, it is necessary to execute updates.getDifference¹." + ], + "links": [ + "https://core.telegram.org/method/updates.getDifference" + ] + }, + "upload.cdnFile": { + "name": "upload.cdnFile", + "description": [ + "Represent a chunk of a CDN¹ file." + ], + "links": [ + "https://core.telegram.org/cdn" + ], + "fields": { + "bytes": { + "name": "bytes", + "description": "The data" + } + } + }, + "upload.cdnFileReuploadNeeded": { + "name": "upload.cdnFileReuploadNeeded", + "description": [ + "The file was cleared from the temporary RAM cache of the CDN¹ and has to be re-uploaded." + ], + "links": [ + "https://core.telegram.org/cdn" + ], + "fields": { + "request_token": { + "name": "request_token", + "description": "Request token (see CDN¹)", + "links": [ + "https://core.telegram.org/cdn" + ] + } + } + }, + "upload.file": { + "name": "upload.file", + "description": [ + "File content." + ], + "fields": { + "bytes": { + "name": "bytes", + "description": "Binary data, file content" + }, + "mtime": { + "name": "mtime", + "description": "Modification time" + }, + "type": { + "name": "type", + "description": "File type" + } + } + }, + "upload.fileCdnRedirect": { + "name": "upload.fileCdnRedirect", + "description": [ + "The file must be downloaded from a CDN DC¹." + ], + "links": [ + "https://core.telegram.org/cdn" + ], + "fields": { + "dc_id": { + "name": "dc_id", + "description": "CDN DC¹ ID", + "links": [ + "https://core.telegram.org/cdn" + ] + }, + "encryption_iv": { + "name": "encryption_iv", + "description": "Encryption IV (see CDN files¹)", + "links": [ + "https://core.telegram.org/cdn" + ] + }, + "encryption_key": { + "name": "encryption_key", + "description": "Encryption key (see CDN files¹)", + "links": [ + "https://core.telegram.org/cdn" + ] + }, + "file_hashes": { + "name": "file_hashes", + "description": "File hashes (see CDN files¹)", + "links": [ + "https://core.telegram.org/cdn" + ] + }, + "file_token": { + "name": "file_token", + "description": "File token (see CDN files¹)", + "links": [ + "https://core.telegram.org/cdn" + ] + } + } + }, + "upload.webFile": { + "name": "upload.webFile", + "description": [ + "Represents a chunk of an HTTP webfile¹ downloaded through telegram's secure MTProto servers" + ], + "links": [ + "https://core.telegram.org/api/files" + ], + "fields": { + "bytes": { + "name": "bytes", + "description": "Data" + }, + "file_type": { + "name": "file_type", + "description": "File type" + }, + "mime_type": { + "name": "mime_type", + "description": "Mime type" + }, + "mtime": { + "name": "mtime", + "description": "Modified time" + }, + "size": { + "name": "size", + "description": "File size" + } + } + }, + "urlAuthResultAccepted": { + "name": "urlAuthResultAccepted", + "description": [ + "Details about an accepted authorization request, for more info click here »¹" + ], + "links": [ + "https://core.telegram.org/api/url-authorization" + ], + "fields": { + "url": { + "name": "url", + "description": "The URL name of the website on which the user has logged in." + } + } + }, + "urlAuthResultDefault": { + "name": "urlAuthResultDefault", + "description": [ + "Details about an accepted authorization request, for more info click here »¹" + ], + "links": [ + "https://core.telegram.org/api/url-authorization" + ] + }, + "urlAuthResultRequest": { + "name": "urlAuthResultRequest", + "description": [ + "Details about the authorization request, for more info click here »¹" + ], + "links": [ + "https://core.telegram.org/api/url-authorization" + ], + "fields": { + "bot": { + "name": "bot", + "description": "Username of a bot, which will be used for user authorization. If not specified, the current bot's username will be assumed. The url's domain must be the same as the domain linked with the bot. See Linking your domain to the bot¹ for more details.", + "links": [ + "https://core.telegram.org/widgets/login#linking-your-domain-to-the-bot" + ] + }, + "domain": { + "name": "domain", + "description": "The domain name of the website on which the user will log in." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "request_write_access": { + "name": "request_write_access", + "description": "Whether the bot would like to send messages to the user" + } + } + }, + "user": { + "name": "user", + "description": [ + "Indicates info about a certain user" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash of the user" + }, + "apply_min_photo": { + "name": "apply_min_photo", + "description": "If set, the profile picture for this user should be refetched" + }, + "attach_menu_enabled": { + "name": "attach_menu_enabled", + "description": "Whether we installed the attachment menu web app¹ offered by this bot", + "links": [ + "https://core.telegram.org/api/bots/attach" + ] + }, + "bot": { + "name": "bot", + "description": "Is this user a bot?" + }, + "bot_attach_menu": { + "name": "bot_attach_menu", + "description": "Whether this bot offers an attachment menu web app¹", + "links": [ + "https://core.telegram.org/api/bots/attach" + ] + }, + "bot_can_edit": { + "name": "bot_can_edit", + "description": "Whether we can edit the profile picture, name, about text and description of this bot because we own it." + }, + "bot_chat_history": { + "name": "bot_chat_history", + "description": "Can the bot see all messages in groups?" + }, + "bot_info_version": { + "name": "bot_info_version", + "description": "Version of the bot_info field in userFull¹, incremented every time it changes", + "links": [ + "https://core.telegram.org/constructor/userFull" + ] + }, + "bot_inline_geo": { + "name": "bot_inline_geo", + "description": "Whether the bot can request our geolocation in inline mode" + }, + "bot_inline_placeholder": { + "name": "bot_inline_placeholder", + "description": "Inline placeholder for this inline bot" + }, + "bot_nochats": { + "name": "bot_nochats", + "description": "Can the bot be added to groups?" + }, + "close_friend": { + "name": "close_friend", + "description": "Whether we marked this user as a close friend, see here » for more info¹", + "links": [ + "https://core.telegram.org/api/privacy" + ] + }, + "color": { + "name": "color", + "description": "The user's accent color¹.", + "links": [ + "https://core.telegram.org/api/colors" + ] + }, + "contact": { + "name": "contact", + "description": "Whether this user is a contact" + }, + "deleted": { + "name": "deleted", + "description": "Whether the account of this user was deleted" + }, + "emoji_status": { + "name": "emoji_status", + "description": "Emoji status¹", + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + }, + "fake": { + "name": "fake", + "description": "If set, this user was reported by many users as a fake or scam user: be careful when interacting with them." + }, + "first_name": { + "name": "first_name", + "description": "First name" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "flags2": { + "name": "flags2", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "ID of the user" + }, + "lang_code": { + "name": "lang_code", + "description": "Language code of the user" + }, + "last_name": { + "name": "last_name", + "description": "Last name" + }, + "min": { + "name": "min", + "description": "See min¹", + "links": [ + "https://core.telegram.org/api/min" + ] + }, + "mutual_contact": { + "name": "mutual_contact", + "description": "Whether this user is a mutual contact" + }, + "phone": { + "name": "phone", + "description": "Phone number" + }, + "photo": { + "name": "photo", + "description": "Profile picture of user" + }, + "premium": { + "name": "premium", + "description": "Whether this user is a Telegram Premium user" + }, + "profile_color": { + "name": "profile_color", + "description": "The user's profile color¹.", + "links": [ + "https://core.telegram.org/api/colors" + ] + }, + "restricted": { + "name": "restricted", + "description": "Access to this user must be restricted for the reason specified in restriction_reason" + }, + "restriction_reason": { + "name": "restriction_reason", + "description": "Contains the reason why access to this user must be restricted." + }, + "scam": { + "name": "scam", + "description": "This may be a scam user" + }, + "self": { + "name": "self", + "description": "Whether this user indicates the currently logged in user" + }, + "status": { + "name": "status", + "description": "Online status of user" + }, + "stories_hidden": { + "name": "stories_hidden", + "description": "Whether we have hidden »¹ all active stories of this user.", + "links": [ + "https://core.telegram.org/api/stories#hiding-stories-of-other-users" + ] + }, + "stories_max_id": { + "name": "stories_max_id", + "description": "ID of the maximum read story¹.", + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "stories_unavailable": { + "name": "stories_unavailable", + "description": "No stories from this user are visible." + }, + "support": { + "name": "support", + "description": "Whether this is an official support user" + }, + "username": { + "name": "username", + "description": "Username" + }, + "usernames": { + "name": "usernames", + "description": "Additional usernames" + }, + "verified": { + "name": "verified", + "description": "Whether this user is verified" + } + } + }, + "userEmpty": { + "name": "userEmpty", + "description": [ + "Empty constructor, non-existent user." + ], + "fields": { + "id": { + "name": "id", + "description": "User identifier or 0" + } + } + }, + "userFull": { + "name": "userFull", + "description": [ + "Extended user info" + ], + "fields": { + "about": { + "name": "about", + "description": "Bio of the user" + }, + "blocked": { + "name": "blocked", + "description": "Whether you have blocked this user" + }, + "blocked_my_stories_from": { + "name": "blocked_my_stories_from", + "description": "Whether we've blocked this user, preventing them from seeing our stories »¹.", + "links": [ + "https://core.telegram.org/api/block" + ] + }, + "bot_broadcast_admin_rights": { + "name": "bot_broadcast_admin_rights", + "description": "A suggested set of administrator rights¹ for the bot, to be shown when adding the bot as admin to a channel, see here for more info on how to handle them »².", + "links": [ + "https://core.telegram.org/api/rights#suggested-bot-rights", + "https://core.telegram.org/api/rights#suggested-bot-rights" + ] + }, + "bot_group_admin_rights": { + "name": "bot_group_admin_rights", + "description": "A suggested set of administrator rights¹ for the bot, to be shown when adding the bot as admin to a group, see here for more info on how to handle them »².", + "links": [ + "https://core.telegram.org/api/rights#suggested-bot-rights", + "https://core.telegram.org/api/rights#suggested-bot-rights" + ] + }, + "bot_info": { + "name": "bot_info", + "description": "For bots, info about the bot (bot commands, etc)" + }, + "can_pin_message": { + "name": "can_pin_message", + "description": "Whether you can pin messages in the chat with this user, you can do this only for a chat with yourself" + }, + "common_chats_count": { + "name": "common_chats_count", + "description": "Chats in common with this user" + }, + "fallback_photo": { + "name": "fallback_photo", + "description": "Fallback profile photo, displayed if no photo is present in profile_photo or personal_photo, due to privacy settings." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + }, + "has_scheduled": { + "name": "has_scheduled", + "description": "Whether scheduled messages¹ are available", + "links": [ + "https://core.telegram.org/api/scheduled-messages" + ] + }, + "id": { + "name": "id", + "description": "User ID" + }, + "notify_settings": { + "name": "notify_settings", + "description": "Notification settings" + }, + "personal_photo": { + "name": "personal_photo", + "description": "Personal profile photo, to be shown instead of profile_photo." + }, + "phone_calls_available": { + "name": "phone_calls_available", + "description": "Whether this user can make VoIP calls" + }, + "phone_calls_private": { + "name": "phone_calls_private", + "description": "Whether this user's privacy settings allow you to call them" + }, + "pinned_msg_id": { + "name": "pinned_msg_id", + "description": "Message ID of the last pinned message¹", + "links": [ + "https://core.telegram.org/api/pin" + ] + }, + "premium_gifts": { + "name": "premium_gifts", + "description": "Telegram Premium subscriptions gift options" + }, + "private_forward_name": { + "name": "private_forward_name", + "description": "Anonymized text to be shown instead of the user's name on forwarded messages" + }, + "profile_photo": { + "name": "profile_photo", + "description": "Profile photo" + }, + "settings": { + "name": "settings", + "description": "Peer settings" + }, + "stories": { + "name": "stories", + "description": "Active stories »¹", + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "stories_pinned_available": { + "name": "stories_pinned_available", + "description": "Whether this user has some pinned stories¹.", + "links": [ + "https://core.telegram.org/api/stories#pinned-or-archived-stories" + ] + }, + "theme_emoticon": { + "name": "theme_emoticon", + "description": "Emoji associated with chat theme" + }, + "translations_disabled": { + "name": "translations_disabled", + "description": "Whether the real-time chat translation popup¹ should be hidden.", + "links": [ + "https://core.telegram.org/api/translation" + ] + }, + "ttl_period": { + "name": "ttl_period", + "description": "Time To Live of all messages in this chat; once a message is this many seconds old, it must be deleted." + }, + "video_calls_available": { + "name": "video_calls_available", + "description": "Whether the user can receive video calls" + }, + "voice_messages_forbidden": { + "name": "voice_messages_forbidden", + "description": "Whether this user doesn't allow sending voice messages in a private chat with them" + }, + "wallpaper": { + "name": "wallpaper", + "description": "Wallpaper¹ to use in the private chat with the user.", + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + }, + "wallpaper_overridden": { + "name": "wallpaper_overridden", + "description": "Whether the other user has chosen a custom wallpaper for us using messages.setChatWallPaper¹ and the for_both flag, see here »² for more info.", + "links": [ + "https://core.telegram.org/method/messages.setChatWallPaper", + "https://core.telegram.org/api/wallpapers#installing-wallpapers-in-a-specific-chator-channel" + ] + } + } + }, + "userProfilePhoto": { + "name": "userProfilePhoto", + "description": [ + "User profile photo." + ], + "fields": { + "dc_id": { + "name": "dc_id", + "description": "DC ID where the photo is stored" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "has_video": { + "name": "has_video", + "description": "Whether an animated profile picture¹ is available for this user", + "links": [ + "https://core.telegram.org/api/files#animated-profile-pictures" + ] + }, + "personal": { + "name": "personal", + "description": "Whether this profile photo is only visible to us (i.e. it was set using photos.uploadContactProfilePhoto¹).", + "links": [ + "https://core.telegram.org/method/photos.uploadContactProfilePhoto" + ] + }, + "photo_id": { + "name": "photo_id", + "description": "Identifier of the respective photo" + }, + "stripped_thumb": { + "name": "stripped_thumb", + "description": "Stripped thumbnail¹", + "links": [ + "https://core.telegram.org/api/files#stripped-thumbnails" + ] + } + } + }, + "userProfilePhotoEmpty": { + "name": "userProfilePhotoEmpty", + "description": [ + "Profile photo has not been set, or was hidden." + ] + }, + "userStatusEmpty": { + "name": "userStatusEmpty", + "description": [ + "User status has not been set yet." + ] + }, + "userStatusLastMonth": { + "name": "userStatusLastMonth", + "description": [ + "Online status: last seen last month" + ] + }, + "userStatusLastWeek": { + "name": "userStatusLastWeek", + "description": [ + "Online status: last seen last week" + ] + }, + "userStatusOffline": { + "name": "userStatusOffline", + "description": [ + "The user's offline status." + ], + "fields": { + "was_online": { + "name": "was_online", + "description": "Time the user was last seen online" + } + } + }, + "userStatusOnline": { + "name": "userStatusOnline", + "description": [ + "Online status of the user." + ], + "fields": { + "expires": { + "name": "expires", + "description": "Time to expiration of the current online status" + } + } + }, + "userStatusRecently": { + "name": "userStatusRecently", + "description": [ + "Online status: last seen recently" + ] + }, + "username": { + "name": "username", + "description": [ + "Contains information about a username." + ], + "fields": { + "active": { + "name": "active", + "description": "Whether the username is active." + }, + "editable": { + "name": "editable", + "description": "Whether the username is editable, meaning it wasn't bought on fragment¹.", + "links": [ + "https://fragment.com" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "username": { + "name": "username", + "description": "The username." + } + } + }, + "users.userFull": { + "name": "users.userFull", + "description": [ + "Full user information" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "full_user": { + "name": "full_user", + "description": "Full user information" + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, + "vector": { + "name": "vector", + "description": [ + "A universal vector constructor." + ] + }, + "videoSize": { + "name": "videoSize", + "description": [ + "An animated profile picture¹ in MPEG4 format" + ], + "links": [ + "https://core.telegram.org/api/files#animated-profile-pictures" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "h": { + "name": "h", + "description": "Video height" + }, + "size": { + "name": "size", + "description": "File size" + }, + "type": { + "name": "type", + "description": "u for animated profile pictures, and v for trimmed and downscaled video previews" + }, + "video_start_ts": { + "name": "video_start_ts", + "description": "Timestamp that should be shown as static preview to the user (seconds)" + }, + "w": { + "name": "w", + "description": "Video width" + } + } + }, + "videoSizeEmojiMarkup": { + "name": "videoSizeEmojiMarkup", + "description": [ + "An animated profile picture¹ based on a custom emoji sticker²." + ], + "links": [ + "https://core.telegram.org/api/files#animated-profile-pictures", + "https://core.telegram.org/api/custom-emoji" + ], + "fields": { + "background_colors": { + "name": "background_colors", + "description": "1, 2, 3 or 4 RBG-24 colors used to generate a solid (1), gradient (2) or freeform gradient (3, 4) background, similar to how fill wallpapers¹ are generated. The rotation angle for gradient backgrounds is 0.", + "links": [ + "https://core.telegram.org/api/wallpapers#fill-types" + ] + }, + "emoji_id": { + "name": "emoji_id", + "description": "Custom emoji ID¹: the custom emoji sticker is shown at the center of the profile picture and occupies at most 67% of it.", + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + } + } + }, + "videoSizeStickerMarkup": { + "name": "videoSizeStickerMarkup", + "description": [ + "An animated profile picture¹ based on a sticker²." + ], + "links": [ + "https://core.telegram.org/api/files#animated-profile-pictures", + "https://core.telegram.org/api/stickers" + ], + "fields": { + "background_colors": { + "name": "background_colors", + "description": "1, 2, 3 or 4 RBG-24 colors used to generate a solid (1), gradient (2) or freeform gradient (3, 4) background, similar to how fill wallpapers¹ are generated. The rotation angle for gradient backgrounds is 0.", + "links": [ + "https://core.telegram.org/api/wallpapers#fill-types" + ] + }, + "sticker_id": { + "name": "sticker_id", + "description": "Sticker ID" + }, + "stickerset": { + "name": "stickerset", + "description": "Stickerset" + } + } + }, + "wallPaper": { + "name": "wallPaper", + "description": [ + "Represents a wallpaper¹ based on an image." + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "creator": { + "name": "creator", + "description": "Whether we created this wallpaper" + }, + "dark": { + "name": "dark", + "description": "Whether this wallpaper should be used in dark mode." + }, + "default": { + "name": "default", + "description": "Whether this is the default wallpaper" + }, + "document": { + "name": "document", + "description": "The actual wallpaper" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Identifier" + }, + "pattern": { + "name": "pattern", + "description": "Whether this is a pattern wallpaper »¹", + "links": [ + "https://core.telegram.org/api/wallpapers#pattern-wallpapers" + ] + }, + "settings": { + "name": "settings", + "description": "Info on how to generate the wallpaper, according to these instructions »¹.", + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + }, + "slug": { + "name": "slug", + "description": "Unique wallpaper ID, used when generating wallpaper links¹ or importing wallpaper links².", + "links": [ + "https://core.telegram.org/api/links#wallpaper-links", + "https://core.telegram.org/api/wallpapers" + ] + } + } + }, + "wallPaperNoFile": { + "name": "wallPaperNoFile", + "description": [ + "Represents a wallpaper¹ only based on colors/gradients." + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "fields": { + "dark": { + "name": "dark", + "description": "Whether this wallpaper should be used in dark mode." + }, + "default": { + "name": "default", + "description": "Whether this is the default wallpaper" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Wallpaper ID" + }, + "settings": { + "name": "settings", + "description": "Info on how to generate the wallpaper." + } + } + }, + "wallPaperSettings": { + "name": "wallPaperSettings", + "description": [ + "Wallpaper¹ rendering information." + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "fields": { + "background_color": { + "name": "background_color", + "description": "Used for solid »¹, gradient »² and freeform gradient »³ fills.", + "links": [ + "https://core.telegram.org/api/wallpapers#solid-fill", + "https://core.telegram.org/api/wallpapers#gradient-fill", + "https://core.telegram.org/api/wallpapers#freeform-gradient-fill" + ] + }, + "blur": { + "name": "blur", + "description": "For image wallpapers »¹: if set, the JPEG must be downscaled to fit in 450x450 square and then box-blurred with radius 12.", + "links": [ + "https://core.telegram.org/api/wallpapers#image-wallpapers" + ] + }, + "emoticon": { + "name": "emoticon", + "description": "If set, this wallpaper can be used as a channel wallpaper and is represented by the specified UTF-8 emoji." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "fourth_background_color": { + "name": "fourth_background_color", + "description": "Used for freeform gradient »¹ fills.", + "links": [ + "https://core.telegram.org/api/wallpapers#freeform-gradient-fill" + ] + }, + "intensity": { + "name": "intensity", + "description": "Used for pattern wallpapers »¹.", + "links": [ + "https://core.telegram.org/api/wallpapers#pattern-wallpapers" + ] + }, + "motion": { + "name": "motion", + "description": "If set, the background needs to be slightly moved when the device is rotated." + }, + "rotation": { + "name": "rotation", + "description": "Clockwise rotation angle of the gradient, in degrees; 0-359. Should be always divisible by 45." + }, + "second_background_color": { + "name": "second_background_color", + "description": "Used for gradient »¹ and freeform gradient »² fills.", + "links": [ + "https://core.telegram.org/api/wallpapers#gradient-fill", + "https://core.telegram.org/api/wallpapers#freeform-gradient-fill" + ] + }, + "third_background_color": { + "name": "third_background_color", + "description": "Used for freeform gradient »¹ fills.", + "links": [ + "https://core.telegram.org/api/wallpapers#freeform-gradient-fill" + ] + } + } + }, + "webAuthorization": { + "name": "webAuthorization", + "description": [ + "Represents a bot logged in using the Telegram login widget¹" + ], + "links": [ + "https://core.telegram.org/widgets/login" + ], + "fields": { + "bot_id": { + "name": "bot_id", + "description": "Bot ID" + }, + "browser": { + "name": "browser", + "description": "Browser user-agent" + }, + "date_active": { + "name": "date_active", + "description": "When was the web session last active" + }, + "date_created": { + "name": "date_created", + "description": "When was the web session created" + }, + "domain": { + "name": "domain", + "description": "The domain name of the website on which the user has logged in." + }, + "hash": { + "name": "hash", + "description": "Authorization hash" + }, + "ip": { + "name": "ip", + "description": "IP address" + }, + "platform": { + "name": "platform", + "description": "Platform" + }, + "region": { + "name": "region", + "description": "Region, determined from IP address" + } + } + }, + "webDocument": { + "name": "webDocument", + "description": [ + "Remote document" + ], + "fields": { + "access_hash": { + "name": "access_hash", + "description": "Access hash" + }, + "attributes": { + "name": "attributes", + "description": "Attributes for media types" + }, + "mime_type": { + "name": "mime_type", + "description": "MIME type" + }, + "size": { + "name": "size", + "description": "File size" + }, + "url": { + "name": "url", + "description": "Document URL" + } + } + }, + "webDocumentNoProxy": { + "name": "webDocumentNoProxy", + "description": [ + "Remote document that can be downloaded without proxying through telegram¹" + ], + "links": [ + "https://core.telegram.org/api/files" + ], + "fields": { + "attributes": { + "name": "attributes", + "description": "Attributes for media types" + }, + "mime_type": { + "name": "mime_type", + "description": "MIME type" + }, + "size": { + "name": "size", + "description": "File size" + }, + "url": { + "name": "url", + "description": "Document URL" + } + } + }, + "webPage": { + "name": "webPage", + "description": [ + "Webpage preview" + ], + "fields": { + "attributes": { + "name": "attributes", + "description": "Webpage attributes" + }, + "author": { + "name": "author", + "description": "Author of the content" + }, + "cached_page": { + "name": "cached_page", + "description": "Page contents in instant view¹ format", + "links": [ + "https://instantview.telegram.org" + ] + }, + "description": { + "name": "description", + "description": "Content description" + }, + "display_url": { + "name": "display_url", + "description": "Webpage URL to be displayed to the user" + }, + "document": { + "name": "document", + "description": "Preview of the content as a media file" + }, + "duration": { + "name": "duration", + "description": "Duration of the content, in seconds" + }, + "embed_height": { + "name": "embed_height", + "description": "Height of the embedded preview" + }, + "embed_type": { + "name": "embed_type", + "description": "MIME type of the embedded preview, (e.g., text/html or video/mp4)" + }, + "embed_url": { + "name": "embed_url", + "description": "URL to show in the embedded preview" + }, + "embed_width": { + "name": "embed_width", + "description": "Width of the embedded preview" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "has_large_media": { + "name": "has_large_media", + "description": "Whether the size of the media in the preview can be changed." + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "id": { + "name": "id", + "description": "Preview ID" + }, + "photo": { + "name": "photo", + "description": "Image representing the content" + }, + "site_name": { + "name": "site_name", + "description": "Short name of the site (e.g., Google Docs, App Store)" + }, + "title": { + "name": "title", + "description": "Title of the content" + }, + "type": { + "name": "type", + "description": "Type of the web page. Can be: article, photo, audio, video, document, profile, app, or something else" + }, + "url": { + "name": "url", + "description": "URL of previewed webpage" + } + } + }, + "webPageAttributeStory": { + "name": "webPageAttributeStory", + "description": [ + "Webpage preview of a Telegram story" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Story ID¹", + "links": [ + "https://core.telegram.org/api/stories#watching-stories" + ] + }, + "peer": { + "name": "peer", + "description": "Peer that posted the story" + }, + "story": { + "name": "story", + "description": "May contain the story, if not the story should be fetched when and if needed using stories.getStoriesByID¹ with the above id and peer.", + "links": [ + "https://core.telegram.org/method/stories.getStoriesByID" + ] + } + } + }, + "webPageAttributeTheme": { + "name": "webPageAttributeTheme", + "description": [ + "Page theme" + ], + "fields": { + "documents": { + "name": "documents", + "description": "Theme files" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "settings": { + "name": "settings", + "description": "Theme settings" + } + } + }, + "webPageEmpty": { + "name": "webPageEmpty", + "description": [ + "No preview is available for the webpage" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Preview ID" + }, + "url": { + "name": "url", + "description": "URL of the webpage." + } + } + }, + "webPageNotModified": { + "name": "webPageNotModified", + "description": [ + "The preview of the webpage hasn't changed" + ], + "fields": { + "cached_page_views": { + "name": "cached_page_views", + "description": "Page view count" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + } + } + }, + "webPagePending": { + "name": "webPagePending", + "description": [ + "A preview of the webpage is currently being generated" + ], + "fields": { + "date": { + "name": "date", + "description": "When was the processing started" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "ID of preview" + }, + "url": { + "name": "url", + "description": "URL of the webpage" + } + } + }, + "webViewMessageSent": { + "name": "webViewMessageSent", + "description": [ + "Info about a sent inline webview message" + ], + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "msg_id": { + "name": "msg_id", + "description": "Message ID" + } + } + }, + "webViewResultUrl": { + "name": "webViewResultUrl", + "description": [ + "Contains the webview URL with appropriate theme and user info parameters added" + ], + "fields": { + "query_id": { + "name": "query_id", + "description": "Webview session ID" + }, + "url": { + "name": "url", + "description": "Webview URL to open" + } + } + } + }, + "types": { + "#": { + "name": "#", + "description": [ + "A basic bare type, the values of which correspond to single-element sequences, i.e. unsigned numbers from 0 to 2^32-1 which in this case represent themselves.", + "More on basic types »¹" + ], + "links": [ + "https://core.telegram.org/mtproto/serialize" + ] + }, + "Account.AuthorizationForm": { + "name": "Account.AuthorizationForm", + "description": [ + "Authorization form" + ] + }, + "Account.Authorizations": { + "name": "Account.Authorizations", + "description": [ + "Logged-in sessions" + ] + }, + "Account.AutoDownloadSettings": { + "name": "Account.AutoDownloadSettings", + "description": [ + "Media autodownload settings" + ] + }, + "Account.PrivacyRules": { + "name": "Account.PrivacyRules", + "description": [ + "Privacy rules" + ] + }, + "Account.Takeout": { + "name": "Account.Takeout", + "description": [ + "Takeout info" + ] + }, + "Account.TmpPassword": { + "name": "Account.TmpPassword", + "description": [ + "Temporary password" + ] + }, + "Account.WallPapers": { + "name": "Account.WallPapers", + "description": [ + "Wallpapers¹" + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + }, + "Account.WebAuthorizations": { + "name": "Account.WebAuthorizations", + "description": [ + "Web authorizations" + ] + }, + "AccountDaysTTL": { + "name": "AccountDaysTTL", + "description": [ + "Time-to-live of current account" + ] + }, + "AppWebViewResult": { + "name": "AppWebViewResult", + "description": [ + "Contains the link that must be used to open a named Mini App¹." + ], + "links": [ + "https://core.telegram.org/api/bots/webapps#named-mini-apps" + ] + }, + "AttachMenuBot": { + "name": "AttachMenuBot", + "description": [ + "Represents a bot mini app that can be launched from the attachment menu »¹" + ], + "links": [ + "https://core.telegram.org/bots/webapps#launching-mini-apps-from-the-attachment-menu" + ] + }, + "AttachMenuBotIcon": { + "name": "AttachMenuBotIcon", + "description": [ + "Represents an attachment menu icon for bot mini apps »¹" + ], + "links": [ + "https://core.telegram.org/bots/webapps#launching-mini-apps-from-the-attachment-menu" + ] + }, + "AttachMenuBotIconColor": { + "name": "AttachMenuBotIconColor", + "description": [ + "Represents an attachment menu icon color for bot mini apps »¹" + ], + "links": [ + "https://core.telegram.org/bots/webapps#launching-mini-apps-from-the-attachment-menu" + ] + }, + "AttachMenuBots": { + "name": "AttachMenuBots", + "description": [ + "Represents a list of bot mini apps that can be launched from the attachment menu »¹" + ], + "links": [ + "https://core.telegram.org/bots/webapps#launching-mini-apps-from-the-attachment-menu" + ] + }, + "AttachMenuBotsBot": { + "name": "AttachMenuBotsBot", + "description": [ + "Represents a bot mini app that can be launched from the attachment menu »¹" + ], + "links": [ + "https://core.telegram.org/bots/webapps#launching-mini-apps-from-the-attachment-menu" + ] + }, + "AttachMenuPeerType": { + "name": "AttachMenuPeerType", + "description": [ + "Indicates a supported peer type for a bot mini app attachment menu¹" + ], + "links": [ + "https://core.telegram.org/bots/webapps#launching-mini-apps-from-the-attachment-menu" + ] + }, + "Auth.ExportedAuthorization": { + "name": "Auth.ExportedAuthorization", + "description": [ + "Exported authorization" + ] + }, + "Authorization": { + "name": "Authorization", + "description": [ + "Represents a logged-in session" + ] + }, + "AutoDownloadSettings": { + "name": "AutoDownloadSettings", + "description": [ + "Media autodownload settings" + ] + }, + "AutoSaveException": { + "name": "AutoSaveException", + "description": [ + "Peer-specific autosave settings" + ] + }, + "AutoSaveSettings": { + "name": "AutoSaveSettings", + "description": [ + "Media autosave settings" + ] + }, + "AvailableReaction": { + "name": "AvailableReaction", + "description": [ + "Animations associated with a message reaction" + ] + }, + "BankCardOpenUrl": { + "name": "BankCardOpenUrl", + "description": [ + "Credit card info URL provided by the bank" + ] + }, + "BaseTheme": { + "name": "BaseTheme", + "description": [ + "Basic theme settings" + ] + }, + "Bool": { + "name": "Bool", + "description": [ + "Boolean type." + ] + }, + "Boost": { + "name": "Boost", + "description": [ + "Info about one or more boosts¹ applied by a specific user." + ], + "links": [ + "https://core.telegram.org/api/boost" + ] + }, + "BotApp": { + "name": "BotApp", + "description": [ + "Contains information about a named Mini App¹." + ], + "links": [ + "https://core.telegram.org/api/bots/webapps#named-mini-apps" + ] + }, + "BotCommand": { + "name": "BotCommand", + "description": [ + "Describes a bot command that can be used in a chat" + ] + }, + "BotCommandScope": { + "name": "BotCommandScope", + "description": [ + "Represents a scope where the bot commands, specified using bots.setBotCommands¹ will be valid." + ], + "links": [ + "https://core.telegram.org/method/bots.setBotCommands" + ] + }, + "BotInfo": { + "name": "BotInfo", + "description": [ + "Info about bots (available bot commands, etc)" + ] + }, + "BotInlineMessage": { + "name": "BotInlineMessage", + "description": [ + "Inline message" + ] + }, + "BotInlineResult": { + "name": "BotInlineResult", + "description": [ + "Results of an inline query" + ] + }, + "BotMenuButton": { + "name": "BotMenuButton", + "description": [ + "Indicates the action to execute when pressing the in-UI menu button for bots" + ] + }, + "CdnConfig": { + "name": "CdnConfig", + "description": [ + "Configuration for CDN¹ file downloads." + ], + "links": [ + "https://core.telegram.org/cdn" + ] + }, + "CdnPublicKey": { + "name": "CdnPublicKey", + "description": [ + "Public key to use only during handshakes to CDN¹ DCs." + ], + "links": [ + "https://core.telegram.org/cdn" + ] + }, + "ChannelAdminLogEvent": { + "name": "ChannelAdminLogEvent", + "description": [ + "An event in a channel admin log" + ] + }, + "ChannelAdminLogEventAction": { + "name": "ChannelAdminLogEventAction", + "description": [ + "Channel admin log event" + ] + }, + "ChannelAdminLogEventsFilter": { + "name": "ChannelAdminLogEventsFilter", + "description": [ + "Filter for fetching events in the channel admin log" + ] + }, + "ChannelLocation": { + "name": "ChannelLocation", + "description": [ + "Geographical location of supergroup (geogroups)" + ] + }, + "ChannelMessagesFilter": { + "name": "ChannelMessagesFilter", + "description": [ + "Filter for fetching only certain types of channel messages" + ] + }, + "ChannelParticipant": { + "name": "ChannelParticipant", + "description": [ + "Channel participant" + ] + }, + "ChannelParticipantsFilter": { + "name": "ChannelParticipantsFilter", + "description": [ + "Filter for fetching channel participants" + ] + }, + "Channels.AdminLogResults": { + "name": "Channels.AdminLogResults", + "description": [ + "Admin log events" + ] + }, + "Channels.ChannelParticipant": { + "name": "Channels.ChannelParticipant", + "description": [ + "Channel participant" + ] + }, + "Channels.ChannelParticipants": { + "name": "Channels.ChannelParticipants", + "description": [ + "Channel/supergroup participants" + ] + }, + "Chat": { + "name": "Chat", + "description": [ + "Object defines a group." + ] + }, + "ChatAdminRights": { + "name": "ChatAdminRights", + "description": [ + "Represents the rights of an admin in a channel/supergroup¹." + ], + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "ChatAdminWithInvites": { + "name": "ChatAdminWithInvites", + "description": [ + "Info about chat invites generated by admins." + ] + }, + "ChatBannedRights": { + "name": "ChatBannedRights", + "description": [ + "Represents the rights of a normal user in a supergroup/channel/chat¹." + ], + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "ChatFull": { + "name": "ChatFull", + "description": [ + "Full info about a channel¹, supergroup², gigagroup³ or basic group⁴." + ], + "links": [ + "https://core.telegram.org/api/channel#channels", + "https://core.telegram.org/api/channel#supergroups", + "https://core.telegram.org/api/channel#gigagroups", + "https://core.telegram.org/api/channel#basic-groups" + ] + }, + "ChatInvite": { + "name": "ChatInvite", + "description": [ + "Chat invite" + ] + }, + "ChatInviteImporter": { + "name": "ChatInviteImporter", + "description": [ + "When and which user joined the chat using a chat invite" + ] + }, + "ChatOnlines": { + "name": "ChatOnlines", + "description": [ + "Number of online users in a chat" + ] + }, + "ChatParticipant": { + "name": "ChatParticipant", + "description": [ + "Details of a group member." + ] + }, + "ChatParticipants": { + "name": "ChatParticipants", + "description": [ + "Object contains info on group members." + ] + }, + "ChatPhoto": { + "name": "ChatPhoto", + "description": [ + "Object defines a group profile photo." + ] + }, + "ChatReactions": { + "name": "ChatReactions", + "description": [ + "Available chat reactions" + ] + }, + "CodeSettings": { + "name": "CodeSettings", + "description": [ + "Settings for the code type to send" + ] + }, + "Config": { + "name": "Config", + "description": [ + "Object contains info on API configuring parameters." + ] + }, + "Contact": { + "name": "Contact", + "description": [ + "A contact of the current user." + ] + }, + "ContactStatus": { + "name": "ContactStatus", + "description": [ + "Contact status: online / offline." + ] + }, + "Contacts.ResolvedPeer": { + "name": "Contacts.ResolvedPeer", + "description": [ + "Peer returned after resolving a @username" + ] + }, + "Contacts.TopPeers": { + "name": "Contacts.TopPeers", + "description": [ + "Top peers" + ] + }, + "DataJSON": { + "name": "DataJSON", + "description": [ + "Represent a JSON-encoded object" + ] + }, + "DcOption": { + "name": "DcOption", + "description": [ + "Information for connection to data center." + ] + }, + "DefaultHistoryTTL": { + "name": "DefaultHistoryTTL", + "description": [ + "Contains info about the default value of the Time-To-Live setting, applied to all new chats." + ] + }, + "Dialog": { + "name": "Dialog", + "description": [ + "Chat info." + ] + }, + "DialogFilter": { + "name": "DialogFilter", + "description": [ + "Dialog filter (folder »¹)" + ], + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "DialogFilterSuggested": { + "name": "DialogFilterSuggested", + "description": [ + "Suggested dialog filters (folder »¹)" + ], + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "DialogPeer": { + "name": "DialogPeer", + "description": [ + "Peer, or all peers in a folder" + ] + }, + "Document": { + "name": "Document", + "description": [ + "A document." + ] + }, + "DocumentAttribute": { + "name": "DocumentAttribute", + "description": [ + "Various possible attributes of a document (used to define if it's a sticker, a GIF, a video, a mask sticker, an image, an audio, and so on)" + ] + }, + "DraftMessage": { + "name": "DraftMessage", + "description": [ + "Represents a message draft¹." + ], + "links": [ + "https://core.telegram.org/api/drafts" + ] + }, + "EmailVerification": { + "name": "EmailVerification", + "description": [ + "Email verification code or token" + ] + }, + "EmailVerifyPurpose": { + "name": "EmailVerifyPurpose", + "description": [ + "Email verification purpose" + ] + }, + "EmojiGroup": { + "name": "EmojiGroup", + "description": [ + "Represents an emoji category¹." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji#emoji-categories" + ] + }, + "EmojiKeyword": { + "name": "EmojiKeyword", + "description": [ + "Emoji keyword" + ] + }, + "EmojiKeywordsDifference": { + "name": "EmojiKeywordsDifference", + "description": [ + "New emoji keywords" + ] + }, + "EmojiLanguage": { + "name": "EmojiLanguage", + "description": [ + "Emoji language" + ] + }, + "EmojiList": { + "name": "EmojiList", + "description": [ + "Represents a list of custom emojis¹." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + }, + "EmojiStatus": { + "name": "EmojiStatus", + "description": [ + "Emoji status¹" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + }, + "EmojiURL": { + "name": "EmojiURL", + "description": [ + "Emoji URL" + ] + }, + "EncryptedChat": { + "name": "EncryptedChat", + "description": [ + "Object contains info on an encrypted chat." + ] + }, + "EncryptedFile": { + "name": "EncryptedFile", + "description": [ + "Seta an encrypted file." + ] + }, + "EncryptedMessage": { + "name": "EncryptedMessage", + "description": [ + "Object contains encrypted message." + ] + }, + "Error": { + "name": "Error", + "description": [ + "An object containing a query error." + ] + }, + "ExportedChatInvite": { + "name": "ExportedChatInvite", + "description": [ + "Exported chat invite" + ] + }, + "ExportedChatlistInvite": { + "name": "ExportedChatlistInvite", + "description": [ + "An exported chat folder deep link »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + }, + "ExportedContactToken": { + "name": "ExportedContactToken", + "description": [ + "Describes a temporary profile link¹." + ], + "links": [ + "https://core.telegram.org/api/links#temporary-profile-links" + ] + }, + "ExportedMessageLink": { + "name": "ExportedMessageLink", + "description": [ + "HTTP link and embed info of channel message" + ] + }, + "ExportedStoryLink": { + "name": "ExportedStoryLink", + "description": [ + "Represents a story deep link¹" + ], + "links": [ + "https://core.telegram.org/api/stories#story-links" + ] + }, + "FileHash": { + "name": "FileHash", + "description": [ + "Hash of an uploaded file, to be checked for validity after download" + ] + }, + "Folder": { + "name": "Folder", + "description": [ + "A folder" + ] + }, + "FolderPeer": { + "name": "FolderPeer", + "description": [ + "Peer associated to folder" + ] + }, + "ForumTopic": { + "name": "ForumTopic", + "description": [ + "Contains information about a forum topic¹" + ], + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + }, + "Game": { + "name": "Game", + "description": [ + "Indicates an already sent game" + ] + }, + "GeoPoint": { + "name": "GeoPoint", + "description": [ + "Object defines a GeoPoint." + ] + }, + "GlobalPrivacySettings": { + "name": "GlobalPrivacySettings", + "description": [ + "Global privacy settings" + ] + }, + "GroupCall": { + "name": "GroupCall", + "description": [ + "A group call" + ] + }, + "GroupCallParticipant": { + "name": "GroupCallParticipant", + "description": [ + "Info about a group call participant" + ] + }, + "GroupCallParticipantVideo": { + "name": "GroupCallParticipantVideo", + "description": [ + "Info about a video stream" + ] + }, + "GroupCallParticipantVideoSourceGroup": { + "name": "GroupCallParticipantVideoSourceGroup", + "description": [ + "Describes a group of video synchronization source identifiers" + ] + }, + "GroupCallStreamChannel": { + "name": "GroupCallStreamChannel", + "description": [ + "Info about an RTMP stream in a group call or livestream" + ] + }, + "Help.DeepLinkInfo": { + "name": "Help.DeepLinkInfo", + "description": [ + "Contains information about an unsupported deep link »¹" + ], + "links": [ + "https://core.telegram.org/api/links#unsupported-links" + ] + }, + "Help.PassportConfig": { + "name": "Help.PassportConfig", + "description": [ + "Telegram passport¹ configuration" + ], + "links": [ + "https://core.telegram.org/passport" + ] + }, + "Help.PeerColorOption": { + "name": "Help.PeerColorOption", + "description": [ + "Contains info about a color palette »¹." + ], + "links": [ + "https://core.telegram.org/api/colors" + ] + }, + "Help.PeerColorSet": { + "name": "Help.PeerColorSet", + "description": [ + "Contains info about a color palette »¹." + ], + "links": [ + "https://core.telegram.org/api/colors" + ] + }, + "Help.PeerColors": { + "name": "Help.PeerColors", + "description": [ + "Contains info about multiple color palettes »¹." + ], + "links": [ + "https://core.telegram.org/api/colors" + ] + }, + "Help.RecentMeUrls": { + "name": "Help.RecentMeUrls", + "description": [ + "Recent t.me URLs" + ] + }, + "Help.SupportName": { + "name": "Help.SupportName", + "description": [ + "Get localized name for support user" + ] + }, + "Help.TermsOfServiceUpdate": { + "name": "Help.TermsOfServiceUpdate", + "description": [ + "Update of Telegram's terms of service" + ] + }, + "Help.UserInfo": { + "name": "Help.UserInfo", + "description": [ + "User info" + ] + }, + "HighScore": { + "name": "HighScore", + "description": [ + "Game high score" + ] + }, + "ImportedContact": { + "name": "ImportedContact", + "description": [ + "Object contains info on a successfully imported contact." + ] + }, + "InlineBotSwitchPM": { + "name": "InlineBotSwitchPM", + "description": [ + "The bot requested the user to message them in private" + ] + }, + "InlineBotWebView": { + "name": "InlineBotWebView", + "description": [ + "Specifies an inline mode mini app¹ button, shown on top of the inline query results list." + ], + "links": [ + "https://core.telegram.org/api/bots/webapps#inline-mode-mini-apps" + ] + }, + "InlineQueryPeerType": { + "name": "InlineQueryPeerType", + "description": [ + "Inline query peer type." + ] + }, + "InputAppEvent": { + "name": "InputAppEvent", + "description": [ + "Object contains info about an event that occurred in the application." + ] + }, + "InputBotApp": { + "name": "InputBotApp", + "description": [ + "Used to fetch information about a named Mini App¹" + ], + "links": [ + "https://core.telegram.org/api/bots/webapps#named-mini-apps" + ] + }, + "InputBotInlineMessage": { + "name": "InputBotInlineMessage", + "description": [ + "Represents a sent inline message from the perspective of a bot" + ] + }, + "InputBotInlineMessageID": { + "name": "InputBotInlineMessageID", + "description": [ + "Represents a sent inline message from the perspective of a bot" + ] + }, + "InputBotInlineResult": { + "name": "InputBotInlineResult", + "description": [ + "Inline bot result" + ] + }, + "InputChannel": { + "name": "InputChannel", + "description": [ + "Represents a channel" + ] + }, + "InputChatPhoto": { + "name": "InputChatPhoto", + "description": [ + "Defines a new group profile photo." + ] + }, + "InputChatlist": { + "name": "InputChatlist", + "description": [ + "Represents a folder" + ] + }, + "InputCheckPasswordSRP": { + "name": "InputCheckPasswordSRP", + "description": [ + "Constructors for checking the validity of a 2FA SRP password¹" + ], + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "InputClientProxy": { + "name": "InputClientProxy", + "description": [ + "Info about an MTProxy¹ used to connect." + ], + "links": [ + "https://core.telegram.org/mtproto/mtproto-transports#transport-obfuscation" + ] + }, + "InputContact": { + "name": "InputContact", + "description": [ + "Object defines a contact from the user's phone book." + ] + }, + "InputDialogPeer": { + "name": "InputDialogPeer", + "description": [ + "Peer, or all peers in a certain folder" + ] + }, + "InputDocument": { + "name": "InputDocument", + "description": [ + "Defines a document for subsequent interaction." + ] + }, + "InputEncryptedChat": { + "name": "InputEncryptedChat", + "description": [ + "Object sets an encrypted chat ID." + ] + }, + "InputEncryptedFile": { + "name": "InputEncryptedFile", + "description": [ + "Object sets encrypted file for attachment" + ] + }, + "InputFile": { + "name": "InputFile", + "description": [ + "Defines a file uploaded by the client." + ] + }, + "InputFileLocation": { + "name": "InputFileLocation", + "description": [ + "Defines the location of a file for download." + ] + }, + "InputFolderPeer": { + "name": "InputFolderPeer", + "description": [ + "Peer in a folder" + ] + }, + "InputGame": { + "name": "InputGame", + "description": [ + "A game to send" + ] + }, + "InputGeoPoint": { + "name": "InputGeoPoint", + "description": [ + "Defines a GeoPoint." + ] + }, + "InputGroupCall": { + "name": "InputGroupCall", + "description": [ + "Indicates a group call" + ] + }, + "InputInvoice": { + "name": "InputInvoice", + "description": [ + "An invoice" + ] + }, + "InputMedia": { + "name": "InputMedia", + "description": [ + "Defines media content of a message." + ] + }, + "InputMessage": { + "name": "InputMessage", + "description": [ + "A message" + ] + }, + "InputNotifyPeer": { + "name": "InputNotifyPeer", + "description": [ + "Object defines the set of users and/or groups that generate notifications." + ] + }, + "InputPaymentCredentials": { + "name": "InputPaymentCredentials", + "description": [ + "Payment credentials" + ] + }, + "InputPeer": { + "name": "InputPeer", + "description": [ + "Peer" + ] + }, + "InputPeerNotifySettings": { + "name": "InputPeerNotifySettings", + "description": [ + "Notifications settings." + ] + }, + "InputPhoneCall": { + "name": "InputPhoneCall", + "description": [ + "Phone call" + ] + }, + "InputPhoto": { + "name": "InputPhoto", + "description": [ + "Defines a photo for further interaction." + ] + }, + "InputPrivacyKey": { + "name": "InputPrivacyKey", + "description": [ + "Privacy keys together with privacy rules »¹ indicate what can or can't someone do and are specified by a PrivacyKey² constructor, and its input counterpart InputPrivacyKey³.", + "See the privacy documentation »¹ for more info." + ], + "links": [ + "https://core.telegram.org/api/privacy#privacy-rules", + "https://core.telegram.org/type/PrivacyKey", + "https://core.telegram.org/type/InputPrivacyKey", + "https://core.telegram.org/api/privacy" + ] + }, + "InputPrivacyRule": { + "name": "InputPrivacyRule", + "description": [ + "Privacy rules indicate who can or can't do something and are specified by a PrivacyRule¹, and its input counterpart InputPrivacyRule².", + "See the privacy documentation »¹ for more info." + ], + "links": [ + "https://core.telegram.org/type/PrivacyRule", + "https://core.telegram.org/type/InputPrivacyRule", + "https://core.telegram.org/api/privacy" + ] + }, + "InputReplyTo": { + "name": "InputReplyTo", + "description": [ + "Contains info about a message or story to reply to." + ] + }, + "InputSecureFile": { + "name": "InputSecureFile", + "description": [ + "Secure passport¹ file, for more info see the passport docs »²" + ], + "links": [ + "https://core.telegram.org/passport", + "https://core.telegram.org/passport/encryption#inputsecurefile" + ] + }, + "InputSecureValue": { + "name": "InputSecureValue", + "description": [ + "Secure value, for more info see the passport docs »¹" + ], + "links": [ + "https://core.telegram.org/passport/encryption#encryption" + ] + }, + "InputSingleMedia": { + "name": "InputSingleMedia", + "description": [ + "A single media in an album or grouped media¹ sent with messages.sendMultiMedia²." + ], + "links": [ + "https://core.telegram.org/api/files#albums-grouped-media", + "https://core.telegram.org/method/messages.sendMultiMedia" + ] + }, + "InputStickerSet": { + "name": "InputStickerSet", + "description": [ + "Represents a stickerset" + ] + }, + "InputStickerSetItem": { + "name": "InputStickerSetItem", + "description": [ + "Sticker" + ] + }, + "InputStickeredMedia": { + "name": "InputStickeredMedia", + "description": [ + "Represents a media with attached stickers" + ] + }, + "InputStorePaymentPurpose": { + "name": "InputStorePaymentPurpose", + "description": [ + "Info about a Telegram Premium purchase" + ] + }, + "InputTheme": { + "name": "InputTheme", + "description": [ + "Cloud theme" + ] + }, + "InputThemeSettings": { + "name": "InputThemeSettings", + "description": [ + "Theme settings" + ] + }, + "InputUser": { + "name": "InputUser", + "description": [ + "Defines a user for subsequent interaction." + ] + }, + "InputWallPaper": { + "name": "InputWallPaper", + "description": [ + "Wallpaper¹" + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + }, + "InputWebDocument": { + "name": "InputWebDocument", + "description": [ + "Specifies a document that will have to be downloaded from the URL by the telegram servers" + ] + }, + "InputWebFileLocation": { + "name": "InputWebFileLocation", + "description": [ + "Location of remote file" + ] + }, + "Invoice": { + "name": "Invoice", + "description": [ + "Invoice" + ] + }, + "JSONObjectValue": { + "name": "JSONObjectValue", + "description": [ + "JSON key: value pair" + ] + }, + "JSONValue": { + "name": "JSONValue", + "description": [ + "JSON value" + ] + }, + "KeyboardButton": { + "name": "KeyboardButton", + "description": [ + "Bot or inline keyboard buttons" + ] + }, + "KeyboardButtonRow": { + "name": "KeyboardButtonRow", + "description": [ + "Bot or inline keyboard rows" + ] + }, + "LabeledPrice": { + "name": "LabeledPrice", + "description": [ + "Labeled pricetag" + ] + }, + "LangPackDifference": { + "name": "LangPackDifference", + "description": [ + "Language pack changes" + ] + }, + "LangPackLanguage": { + "name": "LangPackLanguage", + "description": [ + "Language pack language" + ] + }, + "LangPackString": { + "name": "LangPackString", + "description": [ + "Language pack string" + ] + }, + "MaskCoords": { + "name": "MaskCoords", + "description": [ + "Mask coordinates (if this is a mask sticker, attached to a photo)" + ] + }, + "MediaArea": { + "name": "MediaArea", + "description": [ + "Represents a story media area »¹" + ], + "links": [ + "https://core.telegram.org/api/stories#media-areas" + ] + }, + "MediaAreaCoordinates": { + "name": "MediaAreaCoordinates", + "description": [ + "Coordinates and size of a clicable rectangular area on top of a story." + ] + }, + "Message": { + "name": "Message", + "description": [ + "Object describing a message." + ] + }, + "MessageAction": { + "name": "MessageAction", + "description": [ + "Object describing actions connected to a service message." + ] + }, + "MessageEntity": { + "name": "MessageEntity", + "description": [ + "Message entities, representing styled text in a message" + ] + }, + "MessageExtendedMedia": { + "name": "MessageExtendedMedia", + "description": [ + "Extended media" + ] + }, + "MessageFwdHeader": { + "name": "MessageFwdHeader", + "description": [ + "Info about a forwarded message" + ] + }, + "MessageMedia": { + "name": "MessageMedia", + "description": [ + "Media" + ] + }, + "MessagePeerReaction": { + "name": "MessagePeerReaction", + "description": [ + "How a certain peer reacted to the message" + ] + }, + "MessagePeerVote": { + "name": "MessagePeerVote", + "description": [ + "How a user voted in a poll" + ] + }, + "MessageRange": { + "name": "MessageRange", + "description": [ + "Indicates a range of chat messages" + ] + }, + "MessageReactions": { + "name": "MessageReactions", + "description": [ + "Message reactions »¹" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ] + }, + "MessageReplies": { + "name": "MessageReplies", + "description": [ + "Info about post comments (for channels) or message replies (for groups)¹" + ], + "links": [ + "https://core.telegram.org/api/threads" + ] + }, + "MessageReplyHeader": { + "name": "MessageReplyHeader", + "description": [ + "Reply information" + ] + }, + "MessageViews": { + "name": "MessageViews", + "description": [ + "View, forward counter + info about replies of a specific message" + ] + }, + "Messages.AffectedMessages": { + "name": "Messages.AffectedMessages", + "description": [ + "Messages affected by changes" + ] + }, + "Messages.AllStickers": { + "name": "Messages.AllStickers", + "description": [ + "All stickers" + ] + }, + "Messages.ArchivedStickers": { + "name": "Messages.ArchivedStickers", + "description": [ + "Archived stickers" + ] + }, + "Messages.BotCallbackAnswer": { + "name": "Messages.BotCallbackAnswer", + "description": [ + "Callback answer of bot" + ] + }, + "Messages.DhConfig": { + "name": "Messages.DhConfig", + "description": [ + "Contains Diffie-Hellman key generation protocol parameters." + ] + }, + "Messages.FavedStickers": { + "name": "Messages.FavedStickers", + "description": [ + "Favorited stickers" + ] + }, + "Messages.FeaturedStickers": { + "name": "Messages.FeaturedStickers", + "description": [ + "Featured stickers" + ] + }, + "Messages.FoundStickerSets": { + "name": "Messages.FoundStickerSets", + "description": [ + "Found stickersets" + ] + }, + "Messages.HighScores": { + "name": "Messages.HighScores", + "description": [ + "High scores (in games)" + ] + }, + "Messages.MessageEditData": { + "name": "Messages.MessageEditData", + "description": [ + "Message edit data for media" + ] + }, + "Messages.PeerDialogs": { + "name": "Messages.PeerDialogs", + "description": [ + "List of dialogs" + ] + }, + "Messages.RecentStickers": { + "name": "Messages.RecentStickers", + "description": [ + "Recent stickers" + ] + }, + "Messages.SavedGifs": { + "name": "Messages.SavedGifs", + "description": [ + "Saved GIFs" + ] + }, + "Messages.SearchCounter": { + "name": "Messages.SearchCounter", + "description": [ + "Number of results that would be returned by a search" + ] + }, + "Messages.SentEncryptedMessage": { + "name": "Messages.SentEncryptedMessage", + "description": [ + "Contains info on message sent to an encrypted chat." + ] + }, + "Messages.StickerSet": { + "name": "Messages.StickerSet", + "description": [ + "Stickerset" + ] + }, + "Messages.StickerSetInstallResult": { + "name": "Messages.StickerSetInstallResult", + "description": [ + "Result of stickerset installation process" + ] + }, + "Messages.Stickers": { + "name": "Messages.Stickers", + "description": [ + "Stickers" + ] + }, + "Messages.WebPage": { + "name": "Messages.WebPage", + "description": [ + "Contains an instant view webpage." + ] + }, + "MessagesFilter": { + "name": "MessagesFilter", + "description": [ + "Object describes message filter." + ] + }, + "MyBoost": { + "name": "MyBoost", + "description": [ + "Contains information about a single boost slot »¹." + ], + "links": [ + "https://core.telegram.org/api/boost" + ] + }, + "NearestDc": { + "name": "NearestDc", + "description": [ + "Object contains info on nearest data center." + ] + }, + "NotificationSound": { + "name": "NotificationSound", + "description": [ + "Represents a notification sound" + ] + }, + "NotifyPeer": { + "name": "NotifyPeer", + "description": [ + "Object defines the set of users and/or groups that generate notifications." + ] + }, + "Null": { + "name": "Null", + "description": [ + "Object corresponds to an arbitrary empty object." + ] + }, + "Page": { + "name": "Page", + "description": [ + "Instant view¹ page" + ], + "links": [ + "https://instantview.telegram.org" + ] + }, + "PageBlock": { + "name": "PageBlock", + "description": [ + "Represents an instant view page element¹" + ], + "links": [ + "https://instantview.telegram.org" + ] + }, + "PageCaption": { + "name": "PageCaption", + "description": [ + "Page caption" + ] + }, + "PageListItem": { + "name": "PageListItem", + "description": [ + "Item in block list" + ] + }, + "PageListOrderedItem": { + "name": "PageListOrderedItem", + "description": [ + "Represents an instant view ordered list¹" + ], + "links": [ + "https://instantview.telegram.org" + ] + }, + "PageRelatedArticle": { + "name": "PageRelatedArticle", + "description": [ + "Related articles" + ] + }, + "PageTableCell": { + "name": "PageTableCell", + "description": [ + "Represents a table in an instant view table¹" + ], + "links": [ + "https://instantview.telegram.org" + ] + }, + "PageTableRow": { + "name": "PageTableRow", + "description": [ + "Table row" + ] + }, + "PasswordKdfAlgo": { + "name": "PasswordKdfAlgo", + "description": [ + "Key derivation function to use when generating the password hash for SRP two-factor authorization¹" + ], + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "PaymentCharge": { + "name": "PaymentCharge", + "description": [ + "Charged payment" + ] + }, + "PaymentFormMethod": { + "name": "PaymentFormMethod", + "description": [ + "Represents a payment method" + ] + }, + "PaymentRequestedInfo": { + "name": "PaymentRequestedInfo", + "description": [ + "Requested payment info" + ] + }, + "PaymentSavedCredentials": { + "name": "PaymentSavedCredentials", + "description": [ + "Saved payment credentials" + ] + }, + "Payments.CheckedGiftCode": { + "name": "Payments.CheckedGiftCode", + "description": [ + "Info about a Telegram Premium Giftcode¹." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ] + }, + "Payments.GiveawayInfo": { + "name": "Payments.GiveawayInfo", + "description": [ + "Info about a Telegram Premium Giveaway¹." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ] + }, + "Payments.PaymentForm": { + "name": "Payments.PaymentForm", + "description": [ + "Payment form" + ] + }, + "Payments.PaymentReceipt": { + "name": "Payments.PaymentReceipt", + "description": [ + "Payment receipt" + ] + }, + "Payments.PaymentResult": { + "name": "Payments.PaymentResult", + "description": [ + "Payment result" + ] + }, + "Payments.SavedInfo": { + "name": "Payments.SavedInfo", + "description": [ + "Saved payment info" + ] + }, + "Payments.ValidatedRequestedInfo": { + "name": "Payments.ValidatedRequestedInfo", + "description": [ + "Validated requested info" + ] + }, + "Peer": { + "name": "Peer", + "description": [ + "Chat partner or group." + ] + }, + "PeerBlocked": { + "name": "PeerBlocked", + "description": [ + "Info about a blocked user" + ] + }, + "PeerColor": { + "name": "PeerColor", + "description": [ + "Represents a color palette »¹." + ], + "links": [ + "https://core.telegram.org/api/colors" + ] + }, + "PeerLocated": { + "name": "PeerLocated", + "description": [ + "Geolocated peer" + ] + }, + "PeerNotifySettings": { + "name": "PeerNotifySettings", + "description": [ + "Notification settings." + ] + }, + "PeerSettings": { + "name": "PeerSettings", + "description": [ + "List of actions that are possible when interacting with this user, to be shown as suggested actions in the chat bar" + ] + }, + "PeerStories": { + "name": "PeerStories", + "description": [ + "Stories¹ associated to a peer" + ], + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "Phone.PhoneCall": { + "name": "Phone.PhoneCall", + "description": [ + "Phone call" + ] + }, + "PhoneCall": { + "name": "PhoneCall", + "description": [ + "Phone call" + ] + }, + "PhoneCallDiscardReason": { + "name": "PhoneCallDiscardReason", + "description": [ + "Why was the phone call discarded?" + ] + }, + "PhoneCallProtocol": { + "name": "PhoneCallProtocol", + "description": [ + "Phone call protocol" + ] + }, + "PhoneConnection": { + "name": "PhoneConnection", + "description": [ + "Phone call connection" + ] + }, + "Photo": { + "name": "Photo", + "description": [ + "Object describes a photo." + ] + }, + "PhotoSize": { + "name": "PhotoSize", + "description": [ + "Location of a certain size of a picture" + ] + }, + "Poll": { + "name": "Poll", + "description": [ + "Indicates a poll message" + ] + }, + "PollAnswer": { + "name": "PollAnswer", + "description": [ + "Indicates a possible answer to a poll¹." + ], + "links": [ + "https://core.telegram.org/type/Poll" + ] + }, + "PollAnswerVoters": { + "name": "PollAnswerVoters", + "description": [ + "How users voted on a certain poll answer" + ] + }, + "PollResults": { + "name": "PollResults", + "description": [ + "Results of poll" + ] + }, + "PopularContact": { + "name": "PopularContact", + "description": [ + "Popular contact" + ] + }, + "PostAddress": { + "name": "PostAddress", + "description": [ + "Shipping address" + ] + }, + "PostInteractionCounters": { + "name": "PostInteractionCounters", + "description": [ + "Interaction counters" + ] + }, + "Premium.BoostsList": { + "name": "Premium.BoostsList", + "description": [ + "List of boosts¹ that were applied to a peer by multiple users." + ], + "links": [ + "https://core.telegram.org/api/boost" + ] + }, + "Premium.BoostsStatus": { + "name": "Premium.BoostsStatus", + "description": [ + "Contains info about the current boost status¹ of a peer." + ], + "links": [ + "https://core.telegram.org/api/boost" + ] + }, + "Premium.MyBoosts": { + "name": "Premium.MyBoosts", + "description": [ + "A list of peers we are currently boosting¹, and how many boost slots² we have left." + ], + "links": [ + "https://core.telegram.org/api/boost", + "https://core.telegram.org/api/boost" + ] + }, + "PremiumGiftCodeOption": { + "name": "PremiumGiftCodeOption", + "description": [ + "Giveaway¹ option." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ] + }, + "PremiumGiftOption": { + "name": "PremiumGiftOption", + "description": [ + "Telegram Premium gift option" + ] + }, + "PremiumSubscriptionOption": { + "name": "PremiumSubscriptionOption", + "description": [ + "Telegram Premium subscription option" + ] + }, + "PrepaidGiveaway": { + "name": "PrepaidGiveaway", + "description": [ + "Contains info about a prepaid giveaway »¹." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ] + }, + "PrivacyKey": { + "name": "PrivacyKey", + "description": [ + "Privacy keys together with privacy rules »¹ indicate what can or can't someone do and are specified by a PrivacyKey² constructor, and its input counterpart InputPrivacyKey³.", + "See the privacy documentation »¹ for more info." + ], + "links": [ + "https://core.telegram.org/api/privacy#privacy-rules", + "https://core.telegram.org/type/PrivacyKey", + "https://core.telegram.org/type/InputPrivacyKey", + "https://core.telegram.org/api/privacy" + ] + }, + "PrivacyRule": { + "name": "PrivacyRule", + "description": [ + "Privacy rules together with privacy keys¹ indicate what can or can't someone do and are specified by a PrivacyRule² constructor, and its input counterpart InputPrivacyRule³.", + "See the privacy documentation »¹ for more info." + ], + "links": [ + "https://core.telegram.org/api/privacy#privacy-keys", + "https://core.telegram.org/type/PrivacyRule", + "https://core.telegram.org/type/InputPrivacyRule", + "https://core.telegram.org/api/privacy" + ] + }, + "PublicForward": { + "name": "PublicForward", + "description": [ + "Contains info about the forwards of a story¹ as a message to public chats and reposts by public channels." + ], + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "Reaction": { + "name": "Reaction", + "description": [ + "Message reaction¹" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ] + }, + "ReactionCount": { + "name": "ReactionCount", + "description": [ + "Number of users that reacted with a certain emoji" + ] + }, + "ReadParticipantDate": { + "name": "ReadParticipantDate", + "description": [ + "Contains info about when a certain participant has read a message" + ] + }, + "ReceivedNotifyMessage": { + "name": "ReceivedNotifyMessage", + "description": [ + "Confirmation of message receipt" + ] + }, + "RecentMeUrl": { + "name": "RecentMeUrl", + "description": [ + "Recent t.me urls" + ] + }, + "ReplyMarkup": { + "name": "ReplyMarkup", + "description": [ + "Reply markup for bot and inline keyboards" + ] + }, + "ReportReason": { + "name": "ReportReason", + "description": [ + "Report reason" + ] + }, + "RequestPeerType": { + "name": "RequestPeerType", + "description": [ + "Filtering criteria to use for the peer selection list shown to the user." + ] + }, + "RestrictionReason": { + "name": "RestrictionReason", + "description": [ + "Restriction reason" + ] + }, + "RichText": { + "name": "RichText", + "description": [ + "Rich text" + ] + }, + "SavedContact": { + "name": "SavedContact", + "description": [ + "Saved contact" + ] + }, + "SavedDialog": { + "name": "SavedDialog" + }, + "SearchResultsCalendarPeriod": { + "name": "SearchResultsCalendarPeriod", + "description": [ + "Information about found messages sent on a specific day, used to split the messages in messages.searchResultsCalendar¹ constructors by days." + ], + "links": [ + "https://core.telegram.org/constructor/messages.searchResultsCalendar" + ] + }, + "SearchResultsPosition": { + "name": "SearchResultsPosition", + "description": [ + "Information about a message in a specific position" + ] + }, + "SecureCredentialsEncrypted": { + "name": "SecureCredentialsEncrypted", + "description": [ + "Encrypted secure credentials" + ] + }, + "SecureData": { + "name": "SecureData", + "description": [ + "Secure passport¹ data, for more info see the passport docs »²" + ], + "links": [ + "https://core.telegram.org/passport", + "https://core.telegram.org/passport/encryption#securedata" + ] + }, + "SecureFile": { + "name": "SecureFile", + "description": [ + "Secure passport¹ file, for more info see the passport docs »²" + ], + "links": [ + "https://core.telegram.org/passport", + "https://core.telegram.org/passport/encryption#inputsecurefile" + ] + }, + "SecurePasswordKdfAlgo": { + "name": "SecurePasswordKdfAlgo", + "description": [ + "KDF algorithm to use for computing telegram passport¹ hash" + ], + "links": [ + "https://core.telegram.org/passport" + ] + }, + "SecurePlainData": { + "name": "SecurePlainData", + "description": [ + "Plaintext verified passport data¹." + ], + "links": [ + "https://core.telegram.org/passport/encryption#secureplaindata" + ] + }, + "SecureRequiredType": { + "name": "SecureRequiredType", + "description": [ + "Required secure file type" + ] + }, + "SecureSecretSettings": { + "name": "SecureSecretSettings", + "description": [ + "Telegram passport¹ settings" + ], + "links": [ + "https://core.telegram.org/passport" + ] + }, + "SecureValue": { + "name": "SecureValue", + "description": [ + "Secure Telegram Passport value" + ] + }, + "SecureValueError": { + "name": "SecureValueError", + "description": [ + "Secure value error" + ] + }, + "SecureValueHash": { + "name": "SecureValueHash", + "description": [ + "Secure value hash" + ] + }, + "SecureValueType": { + "name": "SecureValueType", + "description": [ + "Secure value type" + ] + }, + "SendAsPeer": { + "name": "SendAsPeer", + "description": [ + "Indicates a peer that can be used to send messages" + ] + }, + "SendMessageAction": { + "name": "SendMessageAction", + "description": [ + "User actions. Use this to provide users with detailed info about their chat partner's actions: typing or sending attachments of all kinds." + ] + }, + "ShippingOption": { + "name": "ShippingOption", + "description": [ + "Shipping options" + ] + }, + "SimpleWebViewResult": { + "name": "SimpleWebViewResult", + "description": [ + "Contains the webview URL with appropriate theme parameters added" + ] + }, + "SponsoredMessage": { + "name": "SponsoredMessage", + "description": [ + "A sponsored message" + ] + }, + "SponsoredWebPage": { + "name": "SponsoredWebPage", + "description": [ + "Represents a sponsored website." + ] + }, + "Stats.BroadcastStats": { + "name": "Stats.BroadcastStats", + "description": [ + "Channel statistics" + ] + }, + "Stats.PublicForwards": { + "name": "Stats.PublicForwards", + "description": [ + "Contains info about the forwards of a story¹ as a message to public chats and reposts by public channels." + ], + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "Stats.StoryStats": { + "name": "Stats.StoryStats", + "description": [ + "Contains statistics¹ about a story²." + ], + "links": [ + "https://core.telegram.org/api/stats", + "https://core.telegram.org/api/stories" + ] + }, + "StatsAbsValueAndPrev": { + "name": "StatsAbsValueAndPrev", + "description": [ + "Channel statistics value pair" + ] + }, + "StatsDateRangeDays": { + "name": "StatsDateRangeDays", + "description": [ + "Channel statistics date range" + ] + }, + "StatsGraph": { + "name": "StatsGraph", + "description": [ + "Channel statistics graph" + ] + }, + "StatsGroupTopAdmin": { + "name": "StatsGroupTopAdmin", + "description": [ + "Most active admin in a supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "StatsGroupTopInviter": { + "name": "StatsGroupTopInviter", + "description": [ + "Most active inviter in a supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "StatsGroupTopPoster": { + "name": "StatsGroupTopPoster", + "description": [ + "Most active user in a supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "StatsPercentValue": { + "name": "StatsPercentValue", + "description": [ + "Channel statistics percentage" + ] + }, + "StatsURL": { + "name": "StatsURL", + "description": [ + "URL with chat statistics" + ] + }, + "StickerKeyword": { + "name": "StickerKeyword", + "description": [ + "Keywords for a certain sticker" + ] + }, + "StickerPack": { + "name": "StickerPack", + "description": [ + "Stickerpack" + ] + }, + "StickerSet": { + "name": "StickerSet", + "description": [ + "Represents a stickerset (stickerpack)" + ] + }, + "StickerSetCovered": { + "name": "StickerSetCovered", + "description": [ + "Stickerset preview" + ] + }, + "StoriesStealthMode": { + "name": "StoriesStealthMode", + "description": [ + "Story stealth mode status¹" + ], + "links": [ + "https://core.telegram.org/api/stories#stealth-mode" + ] + }, + "StoryFwdHeader": { + "name": "StoryFwdHeader", + "description": [ + "Contains info about the original poster of a reposted story." + ] + }, + "StoryItem": { + "name": "StoryItem", + "description": [ + "Represents a Telegram Story¹" + ], + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "StoryReaction": { + "name": "StoryReaction", + "description": [ + "How a certain peer reacted to or interacted with a story" + ] + }, + "StoryView": { + "name": "StoryView", + "description": [ + "Story¹ view date and reaction information" + ], + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "StoryViews": { + "name": "StoryViews", + "description": [ + "Aggregated view and reaction information of a story¹" + ], + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "TextWithEntities": { + "name": "TextWithEntities", + "description": [ + "Styled text with message entities¹" + ], + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "Theme": { + "name": "Theme", + "description": [ + "Cloud theme" + ] + }, + "ThemeSettings": { + "name": "ThemeSettings", + "description": [ + "Theme settings" + ] + }, + "TopPeer": { + "name": "TopPeer", + "description": [ + "Top peer" + ] + }, + "TopPeerCategory": { + "name": "TopPeerCategory", + "description": [ + "Top peer category" + ] + }, + "TopPeerCategoryPeers": { + "name": "TopPeerCategoryPeers", + "description": [ + "Top peers by top peer category" + ] + }, + "True": { + "name": "True", + "description": [ + "See predefined identifiers¹." + ], + "links": [ + "https://core.telegram.org/mtproto/TL-formal#predefined-identifiers" + ] + }, + "Update": { + "name": "Update", + "description": [ + "Object contains info on events occurred." + ] + }, + "Updates": { + "name": "Updates", + "description": [ + "Object which is perceived by the client without a call on its part when an event occurs." + ] + }, + "Upload.WebFile": { + "name": "Upload.WebFile", + "description": [ + "Remote file" + ] + }, + "UrlAuthResult": { + "name": "UrlAuthResult", + "description": [ + "URL authorization result" + ] + }, + "User": { + "name": "User", + "description": [ + "Object defines a user." + ] + }, + "UserFull": { + "name": "UserFull", + "description": [ + "Object contains extended user info." + ] + }, + "UserProfilePhoto": { + "name": "UserProfilePhoto", + "description": [ + "Object contains info on the user's profile photo." + ] + }, + "UserStatus": { + "name": "UserStatus", + "description": [ + "User online status" + ] + }, + "Username": { + "name": "Username", + "description": [ + "Contains information about a username" + ] + }, + "Vector t": { + "name": "Vector t", + "description": [ + "Universal vector." + ] + }, + "VideoSize": { + "name": "VideoSize", + "description": [ + "Represents an animated video thumbnail" + ] + }, + "WallPaper": { + "name": "WallPaper", + "description": [ + "Object contains info on a wallpaper¹." + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + }, + "WallPaperSettings": { + "name": "WallPaperSettings", + "description": [ + "Wallpaper rendering information." + ] + }, + "WebAuthorization": { + "name": "WebAuthorization", + "description": [ + "Web authorization" + ] + }, + "WebDocument": { + "name": "WebDocument", + "description": [ + "Remote document" + ] + }, + "WebPage": { + "name": "WebPage", + "description": [ + "Instant View¹ webpage preview" + ], + "links": [ + "https://instantview.telegram.org" + ] + }, + "WebPageAttribute": { + "name": "WebPageAttribute", + "description": [ + "Webpage attributes" + ] + }, + "WebViewMessageSent": { + "name": "WebViewMessageSent", + "description": [ + "Contains information about an inline message sent by a Web App¹ on behalf of a user." + ], + "links": [ + "https://core.telegram.org/bots/webapps" + ] + }, + "WebViewResult": { + "name": "WebViewResult", + "description": [ + "Contains the webview URL with appropriate theme and user info parameters added" + ] + }, + "account.AutoSaveSettings": { + "name": "account.AutoSaveSettings", + "description": [ + "Contains media autosave settings" + ] + }, + "account.ContentSettings": { + "name": "account.ContentSettings", + "description": [ + "Sensitive content settings" + ] + }, + "account.EmailVerified": { + "name": "account.EmailVerified", + "description": [ + "Email verification status" + ] + }, + "account.EmojiStatuses": { + "name": "account.EmojiStatuses", + "description": [ + "A list of emoji statuses¹" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + }, + "account.Password": { + "name": "account.Password", + "description": [ + "Configuration for two-factor authorization" + ] + }, + "account.PasswordInputSettings": { + "name": "account.PasswordInputSettings", + "description": [ + "Constructor for setting up a new 2FA SRP password¹" + ], + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "account.PasswordSettings": { + "name": "account.PasswordSettings", + "description": [ + "Private info associated to the password info (recovery email, telegram passport¹ info \u0026 so on)" + ], + "links": [ + "https://core.telegram.org/passport" + ] + }, + "account.ResetPasswordResult": { + "name": "account.ResetPasswordResult", + "description": [ + "Result of an account.resetPassword¹ request." + ], + "links": [ + "https://core.telegram.org/method/account.resetPassword" + ] + }, + "account.SavedRingtone": { + "name": "account.SavedRingtone", + "description": [ + "Contains information about a saved notification sound" + ] + }, + "account.SavedRingtones": { + "name": "account.SavedRingtones", + "description": [ + "Contains a list of saved notification sounds" + ] + }, + "account.SentEmailCode": { + "name": "account.SentEmailCode", + "description": [ + "The email code that was sent" + ] + }, + "account.Themes": { + "name": "account.Themes", + "description": [ + "Installed themes" + ] + }, + "auth.Authorization": { + "name": "auth.Authorization", + "description": [ + "Object contains info on user authorization." + ] + }, + "auth.CodeType": { + "name": "auth.CodeType", + "description": [ + "Type of verification code that will be sent next if you call the resendCode method" + ] + }, + "auth.LoggedOut": { + "name": "auth.LoggedOut", + "description": [ + "Future auth token »¹ to be used on subsequent authorizations" + ], + "links": [ + "https://core.telegram.org/api/auth#future-auth-tokens" + ] + }, + "auth.LoginToken": { + "name": "auth.LoginToken", + "description": [ + "Login token (for QR code login)" + ] + }, + "auth.PasswordRecovery": { + "name": "auth.PasswordRecovery", + "description": [ + "Recovery info of a 2FA password¹, only for accounts with a recovery email configured²." + ], + "links": [ + "https://core.telegram.org/api/srp", + "https://core.telegram.org/api/srp#email-verification" + ] + }, + "auth.SentCode": { + "name": "auth.SentCode", + "description": [ + "Contains info on a confirmation code message sent via SMS, phone call or Telegram." + ] + }, + "auth.SentCodeType": { + "name": "auth.SentCodeType", + "description": [ + "Type of the verification code that was sent" + ] + }, + "bots.BotInfo": { + "name": "bots.BotInfo", + "description": [ + "Localized name, about text and description of a bot." + ] + }, + "bytes": { + "name": "bytes", + "description": [ + "Basic bare type. It is an alias of the string¹ type, with the difference that the value may contain arbitrary byte sequences, including invalid UTF-8 sequences.", + "When computing crc32 for a constructor or method it is necessary to replace all byte types with string types.", + "A basic bare type. Values of type string look differently depending on the length L of the string being serialized:", + "All strings passed to the API must be encoded in UTF-8. When arbitrary byte sequences have to be serialized, bytes¹ alias is to be used.", + "Further details on basic types»¹" + ], + "links": [ + "https://core.telegram.org/type/string", + "https://core.telegram.org/type/bytes", + "https://core.telegram.org/mtproto/serialize" + ] + }, + "channels.SendAsPeers": { + "name": "channels.SendAsPeers", + "description": [ + "A list of peers that can be used to send messages in a specific group" + ] + }, + "chatlists.ChatlistInvite": { + "name": "chatlists.ChatlistInvite", + "description": [ + "Info about a chat folder deep link »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + }, + "chatlists.ChatlistUpdates": { + "name": "chatlists.ChatlistUpdates", + "description": [ + "Updated info about a chat folder deep link »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + }, + "chatlists.ExportedChatlistInvite": { + "name": "chatlists.ExportedChatlistInvite", + "description": [ + "Exported chat folder deep link »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + }, + "chatlists.ExportedInvites": { + "name": "chatlists.ExportedInvites", + "description": [ + "A list of exported chat folder deep links »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + }, + "contacts.Blocked": { + "name": "contacts.Blocked", + "description": [ + "Info on users from the current user's black list." + ] + }, + "contacts.Contacts": { + "name": "contacts.Contacts", + "description": [ + "Info on the current user's contact list." + ] + }, + "contacts.Found": { + "name": "contacts.Found", + "description": [ + "Object contains info on users found by name substring and auxiliary data." + ] + }, + "contacts.ImportedContacts": { + "name": "contacts.ImportedContacts", + "description": [ + "Object contains info on successfully imported contacts." + ] + }, + "double": { + "name": "double", + "description": [ + "A basic bare type, values of which correspond two-element sequences containing 64-bit real numbers in a standard double format.", + "More on basic types»¹" + ], + "links": [ + "https://core.telegram.org/mtproto/serialize" + ] + }, + "help.AppConfig": { + "name": "help.AppConfig", + "description": [ + "Contains various client configuration parameters¹" + ], + "links": [ + "https://core.telegram.org/api/config#client-configuration" + ] + }, + "help.AppUpdate": { + "name": "help.AppUpdate", + "description": [ + "Contains info on app update availability." + ] + }, + "help.CountriesList": { + "name": "help.CountriesList", + "description": [ + "Name, ISO code, localized name and phone codes/patterns of all available countries" + ] + }, + "help.Country": { + "name": "help.Country", + "description": [ + "Name, ISO code, localized name and phone codes/patterns of a specific country" + ] + }, + "help.CountryCode": { + "name": "help.CountryCode", + "description": [ + "Country code and phone number pattern of a specific country" + ] + }, + "help.InviteText": { + "name": "help.InviteText", + "description": [ + "Object contains info on the text of a message with an invitation." + ] + }, + "help.PremiumPromo": { + "name": "help.PremiumPromo", + "description": [ + "Telegram Premium promotion information" + ] + }, + "help.PromoData": { + "name": "help.PromoData", + "description": [ + "Info about pinned MTProxy or Public Service Announcement peers." + ] + }, + "help.Support": { + "name": "help.Support", + "description": [ + "Info about the support user, relevant to the current user." + ] + }, + "help.TermsOfService": { + "name": "help.TermsOfService", + "description": [ + "Contains info about the latest telegram Terms Of Service." + ] + }, + "int": { + "name": "int", + "description": [ + "A basic bare type, the values of which correspond to single-element sequences, i.e. numbers from -2^31 to 2^31-1 which in this case represent themselves.", + "More on basic types »¹" + ], + "links": [ + "https://core.telegram.org/mtproto/serialize" + ] + }, + "long": { + "name": "long", + "description": [ + "A basic bare type, elements of which correspond to two-element sequences, representing 64-bit signed numbers (little-endian).", + "More on basic types »¹" + ], + "links": [ + "https://core.telegram.org/mtproto/serialize" + ] + }, + "messages.AffectedFoundMessages": { + "name": "messages.AffectedFoundMessages", + "description": [ + "Messages found and affected by changes" + ] + }, + "messages.AffectedHistory": { + "name": "messages.AffectedHistory", + "description": [ + "Object contains info on affected part of communication history with the user or in a chat." + ] + }, + "messages.AvailableReactions": { + "name": "messages.AvailableReactions", + "description": [ + "Animations and metadata associated with message reactions »¹" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ] + }, + "messages.BotApp": { + "name": "messages.BotApp", + "description": [ + "Contains information about a named Mini App¹" + ], + "links": [ + "https://core.telegram.org/api/bots/webapps#named-mini-apps" + ] + }, + "messages.BotResults": { + "name": "messages.BotResults", + "description": [ + "Result of a query to an inline bot" + ] + }, + "messages.ChatAdminsWithInvites": { + "name": "messages.ChatAdminsWithInvites", + "description": [ + "Info about chat invites generated by admins." + ] + }, + "messages.ChatFull": { + "name": "messages.ChatFull", + "description": [ + "Full info about a channel¹, supergroup², gigagroup³ or basic group⁴." + ], + "links": [ + "https://core.telegram.org/api/channel#channels", + "https://core.telegram.org/api/channel#supergroups", + "https://core.telegram.org/api/channel#gigagroups", + "https://core.telegram.org/api/channel#basic-groups" + ] + }, + "messages.ChatInviteImporters": { + "name": "messages.ChatInviteImporters", + "description": [ + "List of users that imported a chat invitation link." + ] + }, + "messages.Chats": { + "name": "messages.Chats", + "description": [ + "Object contains list of chats with auxiliary data." + ] + }, + "messages.CheckedHistoryImportPeer": { + "name": "messages.CheckedHistoryImportPeer", + "description": [ + "Contains a confirmation text to be shown to the user, upon importing chat history, click here for more info »¹." + ], + "links": [ + "https://core.telegram.org/api/import" + ] + }, + "messages.Dialogs": { + "name": "messages.Dialogs", + "description": [ + "Object contains a list of chats with messages and auxiliary data." + ] + }, + "messages.DiscussionMessage": { + "name": "messages.DiscussionMessage", + "description": [ + "Info about a message thread" + ] + }, + "messages.EmojiGroups": { + "name": "messages.EmojiGroups", + "description": [ + "Represents a list of emoji categories¹." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji#emoji-categories" + ] + }, + "messages.ExportedChatInvite": { + "name": "messages.ExportedChatInvite", + "description": [ + "Contains info about a chat invite, and eventually a pointer to the newest chat invite." + ] + }, + "messages.ExportedChatInvites": { + "name": "messages.ExportedChatInvites", + "description": [ + "Info about chat invites exported by a certain admin." + ] + }, + "messages.ForumTopics": { + "name": "messages.ForumTopics", + "description": [ + "Contains information about multiple forum topics¹" + ], + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + }, + "messages.HistoryImport": { + "name": "messages.HistoryImport", + "description": [ + "Identifier of a history import session, click here for more info »¹." + ], + "links": [ + "https://core.telegram.org/api/import" + ] + }, + "messages.HistoryImportParsed": { + "name": "messages.HistoryImportParsed", + "description": [ + "Contains information about a chat export file, generated by a foreign chat app." + ] + }, + "messages.InactiveChats": { + "name": "messages.InactiveChats", + "description": [ + "Inactive chat list" + ] + }, + "messages.MessageReactionsList": { + "name": "messages.MessageReactionsList", + "description": [ + "List of peers that reacted to a specific message" + ] + }, + "messages.MessageViews": { + "name": "messages.MessageViews", + "description": [ + "View, forward counter + info about replies" + ] + }, + "messages.Messages": { + "name": "messages.Messages", + "description": [ + "Object contains information on list of messages with auxiliary data." + ] + }, + "messages.PeerSettings": { + "name": "messages.PeerSettings", + "description": [ + "Peer settings" + ] + }, + "messages.Reactions": { + "name": "messages.Reactions", + "description": [ + "A set of message reactions¹" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ] + }, + "messages.SavedDialogs": { + "name": "messages.SavedDialogs" + }, + "messages.SearchResultsCalendar": { + "name": "messages.SearchResultsCalendar", + "description": [ + "Information about found messages sent on a specific day" + ] + }, + "messages.SearchResultsPositions": { + "name": "messages.SearchResultsPositions", + "description": [ + "Information about sparse positions of messages" + ] + }, + "messages.SponsoredMessages": { + "name": "messages.SponsoredMessages", + "description": [ + "A set of sponsored messages¹ associated with a channel" + ], + "links": [ + "https://core.telegram.org/api/sponsored-messages" + ] + }, + "messages.TranscribedAudio": { + "name": "messages.TranscribedAudio", + "description": [ + "Transcribed text¹ from a voice message" + ], + "links": [ + "https://core.telegram.org/api/transcribe" + ] + }, + "messages.TranslatedText": { + "name": "messages.TranslatedText", + "description": [ + "Translated text with entities¹." + ], + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "messages.VotesList": { + "name": "messages.VotesList", + "description": [ + "How users voted in a poll" + ] + }, + "payments.BankCardData": { + "name": "payments.BankCardData", + "description": [ + "Credit card info, provided by the card's bank(s)" + ] + }, + "payments.ExportedInvoice": { + "name": "payments.ExportedInvoice", + "description": [ + "Exported invoice" + ] + }, + "phone.ExportedGroupCallInvite": { + "name": "phone.ExportedGroupCallInvite", + "description": [ + "An exported group call invitation." + ] + }, + "phone.GroupCall": { + "name": "phone.GroupCall", + "description": [ + "Contains info about a group call, and partial info about its participants." + ] + }, + "phone.GroupCallStreamChannels": { + "name": "phone.GroupCallStreamChannels", + "description": [ + "Info about RTMP streams in a group call or livestream" + ] + }, + "phone.GroupCallStreamRtmpUrl": { + "name": "phone.GroupCallStreamRtmpUrl", + "description": [ + "RTMP URL and stream key to be used in streaming software" + ] + }, + "phone.GroupParticipants": { + "name": "phone.GroupParticipants", + "description": [ + "Info about the participants of a group call or livestream" + ] + }, + "phone.JoinAsPeers": { + "name": "phone.JoinAsPeers", + "description": [ + "A list of peers that can be used to join a group call, presenting yourself as a specific user/channel." + ] + }, + "photos.Photo": { + "name": "photos.Photo", + "description": [ + "Photo with auxiliary data." + ] + }, + "photos.Photos": { + "name": "photos.Photos", + "description": [ + "Object contains list of photos with auxiliary data." + ] + }, + "stats.MegagroupStats": { + "name": "stats.MegagroupStats", + "description": [ + "Supergroup statistics" + ] + }, + "stats.MessageStats": { + "name": "stats.MessageStats", + "description": [ + "Message statistics" + ] + }, + "stickers.SuggestedShortName": { + "name": "stickers.SuggestedShortName", + "description": [ + "A suggested short name for the specified stickerpack" + ] + }, + "storage.FileType": { + "name": "storage.FileType", + "description": [ + "Object describes the file type." + ] + }, + "stories.AllStories": { + "name": "stories.AllStories", + "description": [ + "Full list of active (or active and hidden) stories¹." + ], + "links": [ + "https://core.telegram.org/api/stories#watching-stories" + ] + }, + "stories.PeerStories": { + "name": "stories.PeerStories", + "description": [ + "Active story list¹ of a specific peer." + ], + "links": [ + "https://core.telegram.org/api/stories#watching-stories" + ] + }, + "stories.Stories": { + "name": "stories.Stories", + "description": [ + "List of stories¹" + ], + "links": [ + "https://core.telegram.org/api/stories#pinned-or-archived-stories" + ] + }, + "stories.StoryReactionsList": { + "name": "stories.StoryReactionsList", + "description": [ + "List of peers that reacted to a specific story¹" + ], + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "stories.StoryViews": { + "name": "stories.StoryViews", + "description": [ + "Reaction and view counters for a list of stories¹" + ], + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "stories.StoryViewsList": { + "name": "stories.StoryViewsList", + "description": [ + "Reaction and view counters for a story¹" + ], + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "string": { + "name": "string", + "description": [ + "A basic bare type. Values of type string look differently depending on the length L of the string being serialized:", + "All strings passed to the API must be encoded in UTF-8. When arbitrary byte sequences have to be serialized, bytes¹ alias is to be used.", + "Further details on basic types»¹", + "Basic bare type. It is an alias of the string¹ type, with the difference that the value may contain arbitrary byte sequences, including invalid UTF-8 sequences.", + "When computing crc32 for a constructor or method it is necessary to replace all byte types with string types." + ], + "links": [ + "https://core.telegram.org/type/bytes", + "https://core.telegram.org/mtproto/serialize", + "https://core.telegram.org/type/string" + ] + }, + "updates.ChannelDifference": { + "name": "updates.ChannelDifference", + "description": [ + "Contains the difference (new messages) between our local channel state and the remote state" + ] + }, + "updates.Difference": { + "name": "updates.Difference", + "description": [ + "Occurred changes." + ] + }, + "updates.State": { + "name": "updates.State", + "description": [ + "Object contains info on state for further updates." + ] + }, + "upload.CdnFile": { + "name": "upload.CdnFile", + "description": [ + "Represents the download status of a CDN file" + ] + }, + "upload.File": { + "name": "upload.File", + "description": [ + "Contains info on file." + ] + }, + "users.UserFull": { + "name": "users.UserFull", + "description": [ + "Full user information, with attached context peers for reactions" + ] + } + }, + "methods": { + "account.acceptAuthorization": { + "name": "account.acceptAuthorization", + "description": [ + "Sends a Telegram Passport authorization form, effectively sharing data with the service" + ], + "parameters": { + "bot_id": { + "name": "bot_id", + "description": "Bot ID" + }, + "credentials": { + "name": "credentials", + "description": "Encrypted values" + }, + "public_key": { + "name": "public_key", + "description": "Service's public key" + }, + "scope": { + "name": "scope", + "description": "Telegram Passport element types requested by the service" + }, + "value_hashes": { + "name": "value_hashes", + "description": "Types of values sent and their hashes" + } + } + }, + "account.cancelPasswordEmail": { + "name": "account.cancelPasswordEmail", + "description": [ + "Cancel the code that was sent to verify an email to use as 2FA recovery method¹." + ], + "links": [ + "https://core.telegram.org/api/srp" + ], + "parameters": { + "400": { + "name": "400", + "description": "Email hash expired." + } + }, + "errors": [ + { + "code": 400, + "type": "EMAIL_HASH_EXPIRED", + "description": "Email hash expired." + } + ] + }, + "account.changeAuthorizationSettings": { + "name": "account.changeAuthorizationSettings", + "description": [ + "Change settings related to a session." + ], + "parameters": { + "call_requests_disabled": { + "name": "call_requests_disabled", + "description": "Whether to enable or disable receiving calls: if the flag is not set, the previous setting is not changed" + }, + "confirmed": { + "name": "confirmed", + "description": "If set, confirms a newly logged in session »¹.", + "links": [ + "https://core.telegram.org/api/auth#confirming-login" + ] + }, + "encrypted_requests_disabled": { + "name": "encrypted_requests_disabled", + "description": "Whether to enable or disable receiving encrypted chats: if the flag is not set, the previous setting is not changed" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hash": { + "name": "hash", + "description": "Session ID from the authorization¹ constructor, fetchable using account.getAuthorizations²", + "links": [ + "https://core.telegram.org/constructor/authorization", + "https://core.telegram.org/method/account.getAuthorizations" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "HASH_INVALID", + "description": "The provided hash is invalid." + } + ] + }, + "account.changePhone": { + "name": "account.changePhone", + "description": [ + "Change the phone number of the current account" + ], + "parameters": { + "phone_code": { + "name": "phone_code", + "description": "Phone code received when calling account.sendChangePhoneCode¹", + "links": [ + "https://core.telegram.org/method/account.sendChangePhoneCode" + ] + }, + "phone_code_hash": { + "name": "phone_code_hash", + "description": "Phone code hash received when calling account.sendChangePhoneCode¹", + "links": [ + "https://core.telegram.org/method/account.sendChangePhoneCode" + ] + }, + "phone_number": { + "name": "phone_number", + "description": "New phone number" + } + }, + "errors": [ + { + "code": 400, + "type": "PHONE_CODE_EMPTY", + "description": "phone_code is missing." + }, + { + "code": 400, + "type": "PHONE_CODE_EXPIRED", + "description": "The phone code you provided has expired." + }, + { + "code": 406, + "type": "PHONE_NUMBER_INVALID", + "description": "The phone number is invalid." + }, + { + "code": 400, + "type": "PHONE_NUMBER_OCCUPIED", + "description": "The phone number is already in use." + } + ] + }, + "account.checkUsername": { + "name": "account.checkUsername", + "description": [ + "Validates a username and checks availability." + ], + "parameters": { + "username": { + "name": "username", + "description": "usernameAccepted characters: A-z (case-insensitive), 0-9 and underscores.Length: 5-32 characters." + } + }, + "errors": [ + { + "code": 400, + "type": "USERNAME_INVALID", + "description": "The provided username is not valid." + }, + { + "code": 400, + "type": "USERNAME_OCCUPIED", + "description": "The provided username is already occupied." + }, + { + "code": 400, + "type": "USERNAME_PURCHASE_AVAILABLE", + "description": "The specified username can be purchased on https://fragment.com." + } + ] + }, + "account.clearRecentEmojiStatuses": { + "name": "account.clearRecentEmojiStatuses", + "description": [ + "Clears list of recently used emoji statuses¹" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + }, + "account.confirmPasswordEmail": { + "name": "account.confirmPasswordEmail", + "description": [ + "Verify an email to use as 2FA recovery method¹." + ], + "links": [ + "https://core.telegram.org/api/srp" + ], + "parameters": { + "code": { + "name": "code", + "description": "The phone code that was received after setting a recovery email¹", + "links": [ + "https://core.telegram.org/api/srp#email-verification" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CODE_INVALID", + "description": "Code invalid." + }, + { + "code": 400, + "type": "EMAIL_HASH_EXPIRED", + "description": "Email hash expired." + } + ] + }, + "account.confirmPhone": { + "name": "account.confirmPhone", + "description": [ + "Confirm a phone number to cancel account deletion, for more info click here »¹" + ], + "links": [ + "https://core.telegram.org/api/account-deletion" + ], + "parameters": { + "phone_code": { + "name": "phone_code", + "description": "SMS code, for more info click here »¹", + "links": [ + "https://core.telegram.org/api/account-deletion" + ] + }, + "phone_code_hash": { + "name": "phone_code_hash", + "description": "Phone code hash, for more info click here »¹", + "links": [ + "https://core.telegram.org/api/account-deletion" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CODE_HASH_INVALID", + "description": "Code hash invalid." + }, + { + "code": 400, + "type": "PHONE_CODE_EMPTY", + "description": "phone_code is missing." + } + ] + }, + "account.createTheme": { + "name": "account.createTheme", + "description": [ + "Create a theme" + ], + "parameters": { + "document": { + "name": "document", + "description": "Theme file" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "settings": { + "name": "settings", + "description": "Theme settings, multiple values can be provided for the different base themes (day/night mode, etc)." + }, + "slug": { + "name": "slug", + "description": "Unique theme ID used to generate theme deep links¹, can be empty to autogenerate a random ID.", + "links": [ + "https://core.telegram.org/api/links#theme-links" + ] + }, + "title": { + "name": "title", + "description": "Theme name" + } + }, + "errors": [ + { + "code": 400, + "type": "THEME_MIME_INVALID", + "description": "The theme's MIME type is invalid." + }, + { + "code": 400, + "type": "THEME_TITLE_INVALID", + "description": "The specified theme title is invalid." + } + ] + }, + "account.declinePasswordReset": { + "name": "account.declinePasswordReset", + "description": [ + "Abort a pending 2FA password reset, see here for more info »¹" + ], + "links": [ + "https://core.telegram.org/api/srp#password-reset" + ], + "parameters": { + "400": { + "name": "400", + "description": "No password reset is in progress." + } + }, + "errors": [ + { + "code": 400, + "type": "RESET_REQUEST_MISSING", + "description": "No password reset is in progress." + } + ] + }, + "account.deleteAccount": { + "name": "account.deleteAccount", + "description": [ + "Delete the user's account from the telegram servers.", + "Can also be used to delete the account of a user that provided the login code, but forgot the 2FA password and no recovery method is configured, see here »¹ for more info on password recovery, and here »² for more info on account deletion." + ], + "links": [ + "https://core.telegram.org/api/srp#password-recovery", + "https://core.telegram.org/api/account-deletion" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "password": { + "name": "password", + "description": "2FA password¹: this field can be omitted even for accounts with 2FA enabled: in this case account account deletion will be delayed by 7 days as specified in the docs »²", + "links": [ + "https://core.telegram.org/api/srp", + "https://core.telegram.org/api/account-deletion" + ] + }, + "reason": { + "name": "reason", + "description": "Why is the account being deleted, can be empty" + } + }, + "errors": [ + { + "code": 420, + "type": "2FA_CONFIRM_WAIT_%d", + "description": "Since this account is active and protected by a 2FA password, we will delete it in 1 week for security purposes. You can cancel this process at any time, you'll be able to reset your account in %d seconds." + } + ] + }, + "account.deleteAutoSaveExceptions": { + "name": "account.deleteAutoSaveExceptions", + "description": [ + "Clear all peer-specific autosave settings." + ] + }, + "account.deleteSecureValue": { + "name": "account.deleteSecureValue", + "description": [ + "Delete stored Telegram Passport¹ documents, for more info see the passport docs »²" + ], + "links": [ + "https://core.telegram.org/passport", + "https://core.telegram.org/passport/encryption#encryption" + ], + "parameters": { + "types": { + "name": "types", + "description": "Document types to delete" + } + } + }, + "account.finishTakeoutSession": { + "name": "account.finishTakeoutSession", + "description": [ + "Terminate a takeout session, see here » for more info¹." + ], + "links": [ + "https://core.telegram.org/api/takeout" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "success": { + "name": "success", + "description": "Data exported successfully" + } + }, + "errors": [ + { + "code": 403, + "type": "TAKEOUT_REQUIRED", + "description": "A takeout session needs to be initialized first, see here » for more info." + } + ] + }, + "account.getAccountTTL": { + "name": "account.getAccountTTL", + "description": [ + "Get days to live of account" + ] + }, + "account.getAllSecureValues": { + "name": "account.getAllSecureValues", + "description": [ + "Get all saved Telegram Passport¹ documents, for more info see the passport docs »²" + ], + "links": [ + "https://core.telegram.org/passport", + "https://core.telegram.org/passport/encryption#encryption" + ] + }, + "account.getAuthorizationForm": { + "name": "account.getAuthorizationForm", + "description": [ + "Returns a Telegram Passport authorization form for sharing data with a service" + ], + "parameters": { + "bot_id": { + "name": "bot_id", + "description": "User identifier of the service's bot" + }, + "public_key": { + "name": "public_key", + "description": "Service's public key" + }, + "scope": { + "name": "scope", + "description": "Telegram Passport element types requested by the service" + } + }, + "errors": [ + { + "code": 400, + "type": "PUBLIC_KEY_REQUIRED", + "description": "A public key is required." + } + ] + }, + "account.getAuthorizations": { + "name": "account.getAuthorizations", + "description": [ + "Get logged-in sessions" + ] + }, + "account.getAutoDownloadSettings": { + "name": "account.getAutoDownloadSettings", + "description": [ + "Get media autodownload settings" + ] + }, + "account.getAutoSaveSettings": { + "name": "account.getAutoSaveSettings", + "description": [ + "Get autosave settings" + ] + }, + "account.getChannelDefaultEmojiStatuses": { + "name": "account.getChannelDefaultEmojiStatuses", + "description": [ + "Get a list of default suggested channel emoji statuses¹." + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + }, + "bot_can_use": true + }, + "account.getChannelRestrictedStatusEmojis": { + "name": "account.getChannelRestrictedStatusEmojis", + "description": [ + "Returns fetch the full list of custom emoji IDs »¹ that cannot be used in channel emoji statuses »²." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji", + "https://core.telegram.org/api/emoji-status" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + }, + "bot_can_use": true + }, + "account.getChatThemes": { + "name": "account.getChatThemes", + "description": [ + "Get all available chat themes »¹." + ], + "links": [ + "https://core.telegram.org/api/themes" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "account.getContactSignUpNotification": { + "name": "account.getContactSignUpNotification", + "description": [ + "Whether the user will receive notifications when contacts sign up" + ] + }, + "account.getContentSettings": { + "name": "account.getContentSettings", + "description": [ + "Get sensitive content settings" + ] + }, + "account.getDefaultBackgroundEmojis": { + "name": "account.getDefaultBackgroundEmojis", + "description": [ + "Get a set of suggested custom emoji stickers¹ that can be used in an accent color pattern²." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji", + "https://core.telegram.org/api/colors" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "account.getDefaultEmojiStatuses": { + "name": "account.getDefaultEmojiStatuses", + "description": [ + "Get a list of default suggested emoji statuses¹" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "account.getDefaultGroupPhotoEmojis": { + "name": "account.getDefaultGroupPhotoEmojis", + "description": [ + "Get a set of suggested custom emoji stickers¹ that can be used as group picture²" + ], + "links": [ + "https://core.telegram.org/api/custom-emoji", + "https://core.telegram.org/api/files#sticker-profile-pictures" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "account.getDefaultProfilePhotoEmojis": { + "name": "account.getDefaultProfilePhotoEmojis", + "description": [ + "Get a set of suggested custom emoji stickers¹ that can be used as profile picture²" + ], + "links": [ + "https://core.telegram.org/api/custom-emoji", + "https://core.telegram.org/api/files#sticker-profile-pictures" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "account.getGlobalPrivacySettings": { + "name": "account.getGlobalPrivacySettings", + "description": [ + "Get global privacy settings" + ] + }, + "account.getMultiWallPapers": { + "name": "account.getMultiWallPapers", + "description": [ + "Get info about multiple wallpapers¹" + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "parameters": { + "wallpapers": { + "name": "wallpapers", + "description": "Wallpapers¹ to fetch info about", + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "WALLPAPER_INVALID", + "description": "The specified wallpaper is invalid." + } + ] + }, + "account.getNotifyExceptions": { + "name": "account.getNotifyExceptions", + "description": [ + "Returns list of chats with non-default notification settings" + ], + "parameters": { + "compare_sound": { + "name": "compare_sound", + "description": "If set, chats with non-default sound will be returned" + }, + "compare_stories": { + "name": "compare_stories", + "description": "If set, chats with non-default notification settings for stories will be returned" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "If specified, only chats of the specified category will be returned" + } + } + }, + "account.getNotifySettings": { + "name": "account.getNotifySettings", + "description": [ + "Gets current notification settings for a given user/group, from all users/all groups." + ], + "parameters": { + "peer": { + "name": "peer", + "description": "Notification source" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "account.getPassword": { + "name": "account.getPassword", + "description": [ + "Obtain configuration for two-factor authorization with password" + ] + }, + "account.getPasswordSettings": { + "name": "account.getPasswordSettings", + "description": [ + "Get private info associated to the password info (recovery email, telegram passport¹ info \u0026 so on)" + ], + "links": [ + "https://core.telegram.org/passport" + ], + "parameters": { + "password": { + "name": "password", + "description": "The password (see SRP¹)", + "links": [ + "https://core.telegram.org/api/srp" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "PASSWORD_HASH_INVALID", + "description": "The provided password hash is invalid." + } + ] + }, + "account.getPrivacy": { + "name": "account.getPrivacy", + "description": [ + "Get privacy settings of current account" + ], + "parameters": { + "key": { + "name": "key", + "description": "Peer category whose privacy settings should be fetched" + } + }, + "errors": [ + { + "code": 400, + "type": "PRIVACY_KEY_INVALID", + "description": "The privacy key is invalid." + } + ] + }, + "account.getRecentEmojiStatuses": { + "name": "account.getRecentEmojiStatuses", + "description": [ + "Get recently used emoji statuses¹" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "account.getSavedRingtones": { + "name": "account.getSavedRingtones", + "description": [ + "Fetch saved notification sounds" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "account.getSecureValue": { + "name": "account.getSecureValue", + "description": [ + "Get saved Telegram Passport¹ document, for more info see the passport docs »²" + ], + "links": [ + "https://core.telegram.org/passport", + "https://core.telegram.org/passport/encryption#encryption" + ], + "parameters": { + "types": { + "name": "types", + "description": "Requested value types" + } + } + }, + "account.getTheme": { + "name": "account.getTheme", + "description": [ + "Get theme information" + ], + "parameters": { + "format": { + "name": "format", + "description": "Theme format, a string that identifies the theming engines supported by the client" + }, + "theme": { + "name": "theme", + "description": "Theme" + } + }, + "errors": [ + { + "code": 400, + "type": "THEME_FORMAT_INVALID", + "description": "Invalid theme format provided." + }, + { + "code": 400, + "type": "THEME_INVALID", + "description": "Invalid theme provided." + } + ] + }, + "account.getThemes": { + "name": "account.getThemes", + "description": [ + "Get installed themes" + ], + "parameters": { + "format": { + "name": "format", + "description": "Theme format, a string that identifies the theming engines supported by the client" + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "account.getTmpPassword": { + "name": "account.getTmpPassword", + "description": [ + "Get temporary payment password" + ], + "parameters": { + "password": { + "name": "password", + "description": "SRP password parameters" + }, + "period": { + "name": "period", + "description": "Time during which the temporary password will be valid, in seconds; should be between 60 and 86400" + } + }, + "errors": [ + { + "code": 400, + "type": "PASSWORD_HASH_INVALID", + "description": "The provided password hash is invalid." + }, + { + "code": 400, + "type": "TMP_PASSWORD_DISABLED", + "description": "The temporary password is disabled." + } + ] + }, + "account.getWallPaper": { + "name": "account.getWallPaper", + "description": [ + "Get info about a certain wallpaper¹" + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "parameters": { + "wallpaper": { + "name": "wallpaper", + "description": "The wallpaper¹ to get info about", + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "WALLPAPER_INVALID", + "description": "The specified wallpaper is invalid." + } + ] + }, + "account.getWallPapers": { + "name": "account.getWallPapers", + "description": [ + "Returns a list of available wallpapers¹." + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "account.getWebAuthorizations": { + "name": "account.getWebAuthorizations", + "description": [ + "Get web login widget¹ authorizations" + ], + "links": [ + "https://core.telegram.org/widgets/login" + ] + }, + "account.initTakeoutSession": { + "name": "account.initTakeoutSession", + "description": [ + "Initialize a takeout session, see here » for more info¹." + ], + "links": [ + "https://core.telegram.org/api/takeout" + ], + "parameters": { + "contacts": { + "name": "contacts", + "description": "Whether to export contacts" + }, + "file_max_size": { + "name": "file_max_size", + "description": "Maximum size of files to export" + }, + "files": { + "name": "files", + "description": "Whether to export files" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "message_channels": { + "name": "message_channels", + "description": "Whether to export messages in channels¹", + "links": [ + "https://core.telegram.org/api/channel#channels" + ] + }, + "message_chats": { + "name": "message_chats", + "description": "Whether to export messages in basic groups¹", + "links": [ + "https://core.telegram.org/api/channel#basic-groups" + ] + }, + "message_megagroups": { + "name": "message_megagroups", + "description": "Whether to export messages in supergroups¹", + "links": [ + "https://core.telegram.org/api/channel#supergroups" + ] + }, + "message_users": { + "name": "message_users", + "description": "Whether to export messages in private chats" + } + }, + "errors": [ + { + "code": 420, + "type": "TAKEOUT_INIT_DELAY_%d", + "description": "Sorry, for security reasons, you will be able to begin downloading your data in %d seconds. We have notified all your devices about the export request to make sure it's authorized and to give you time to react if it's not." + } + ] + }, + "account.installTheme": { + "name": "account.installTheme", + "description": [ + "Install a theme" + ], + "parameters": { + "base_theme": { + "name": "base_theme", + "description": "Indicates a basic theme provided by all clients" + }, + "dark": { + "name": "dark", + "description": "Whether to install the dark version" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "format": { + "name": "format", + "description": "Theme format, a string that identifies the theming engines supported by the client" + }, + "theme": { + "name": "theme", + "description": "Theme to install" + } + } + }, + "account.installWallPaper": { + "name": "account.installWallPaper", + "description": [ + "Install wallpaper¹" + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "parameters": { + "settings": { + "name": "settings", + "description": "Wallpaper¹ settings", + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + }, + "wallpaper": { + "name": "wallpaper", + "description": "Wallpaper¹ to install", + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "WALLPAPER_INVALID", + "description": "The specified wallpaper is invalid." + } + ] + }, + "account.invalidateSignInCodes": { + "name": "account.invalidateSignInCodes", + "description": [ + "Invalidate the specified login codes, see here »¹ for more info." + ], + "links": [ + "https://core.telegram.org/api/auth#invalidating-login-codes" + ], + "parameters": { + "codes": { + "name": "codes", + "description": "The login codes to invalidate." + } + } + }, + "account.registerDevice": { + "name": "account.registerDevice", + "description": [ + "Register device to receive PUSH notifications¹" + ], + "links": [ + "https://core.telegram.org/api/push-updates" + ], + "parameters": { + "app_sandbox": { + "name": "app_sandbox", + "description": "If (boolTrue)¹ is transmitted, a sandbox-certificate will be used during transmission.", + "links": [ + "https://core.telegram.org/constructor/boolTrue" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "no_muted": { + "name": "no_muted", + "description": "Avoid receiving (silent and invisible background) notifications. Useful to save battery." + }, + "other_uids": { + "name": "other_uids", + "description": "List of user identifiers of other users currently using the client" + }, + "secret": { + "name": "secret", + "description": "For FCM and APNS VoIP, optional encryption key used to encrypt push notifications" + }, + "token": { + "name": "token", + "description": "Device token, see PUSH updates¹ for the possible values.", + "links": [ + "https://core.telegram.org/api/push-updates#subscribing-to-notifications" + ] + }, + "token_type": { + "name": "token_type", + "description": "Device token type, see PUSH updates¹ for the possible values.", + "links": [ + "https://core.telegram.org/api/push-updates#subscribing-to-notifications" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "TOKEN_EMPTY", + "description": "The specified token is empty." + }, + { + "code": 400, + "type": "TOKEN_INVALID", + "description": "The provided token is invalid." + }, + { + "code": 400, + "type": "TOKEN_TYPE_INVALID", + "description": "The specified token type is invalid." + }, + { + "code": 400, + "type": "WEBPUSH_AUTH_INVALID", + "description": "The specified web push authentication secret is invalid." + }, + { + "code": 400, + "type": "WEBPUSH_KEY_INVALID", + "description": "The specified web push elliptic curve Diffie-Hellman public key is invalid." + }, + { + "code": 400, + "type": "WEBPUSH_TOKEN_INVALID", + "description": "The specified web push token is invalid." + } + ] + }, + "account.reorderUsernames": { + "name": "account.reorderUsernames", + "description": [ + "Reorder usernames associated with the currently logged-in user." + ], + "parameters": { + "order": { + "name": "order", + "description": "The new order for active usernames. All active usernames must be specified." + } + }, + "errors": [ + { + "code": 400, + "type": "ORDER_INVALID", + "description": "The specified username order is invalid." + } + ] + }, + "account.reportPeer": { + "name": "account.reportPeer", + "description": [ + "Report a peer for violation of telegram's Terms of Service" + ], + "parameters": { + "message": { + "name": "message", + "description": "Comment for report moderation" + }, + "peer": { + "name": "peer", + "description": "The peer to report" + }, + "reason": { + "name": "reason", + "description": "The reason why this peer is being reported" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "account.reportProfilePhoto": { + "name": "account.reportProfilePhoto", + "description": [ + "Report a profile photo of a dialog" + ], + "parameters": { + "message": { + "name": "message", + "description": "Comment for report moderation" + }, + "peer": { + "name": "peer", + "description": "The dialog" + }, + "photo_id": { + "name": "photo_id", + "description": "Dialog photo ID" + }, + "reason": { + "name": "reason", + "description": "Report reason" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "account.resendPasswordEmail": { + "name": "account.resendPasswordEmail", + "description": [ + "Resend the code to verify an email to use as 2FA recovery method¹." + ], + "links": [ + "https://core.telegram.org/api/srp" + ], + "parameters": { + "400": { + "name": "400", + "description": "Email hash expired." + } + }, + "errors": [ + { + "code": 400, + "type": "EMAIL_HASH_EXPIRED", + "description": "Email hash expired." + } + ] + }, + "account.resetAuthorization": { + "name": "account.resetAuthorization", + "description": [ + "Log out an active authorized session¹ by its hash" + ], + "links": [ + "https://core.telegram.org/api/auth" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Session hash" + } + }, + "errors": [ + { + "code": 406, + "type": "FRESH_RESET_AUTHORISATION_FORBIDDEN", + "description": "You can't logout other sessions if less than 24 hours have passed since you logged on the current session." + }, + { + "code": 400, + "type": "HASH_INVALID", + "description": "The provided hash is invalid." + } + ] + }, + "account.resetNotifySettings": { + "name": "account.resetNotifySettings", + "description": [ + "Resets all notification settings from users and groups." + ] + }, + "account.resetPassword": { + "name": "account.resetPassword", + "description": [ + "Initiate a 2FA password reset: can only be used if the user is already logged-in, see here for more info »¹" + ], + "links": [ + "https://core.telegram.org/api/srp#password-reset" + ], + "parameters": { + "400": { + "name": "400", + "description": "The provided password is empty." + } + }, + "errors": [ + { + "code": 400, + "type": "PASSWORD_EMPTY", + "description": "The provided password is empty." + } + ] + }, + "account.resetWallPapers": { + "name": "account.resetWallPapers", + "description": [ + "Delete all installed wallpapers¹, reverting to the default wallpaper set." + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + }, + "account.resetWebAuthorization": { + "name": "account.resetWebAuthorization", + "description": [ + "Log out an active web telegram login¹ session" + ], + "links": [ + "https://core.telegram.org/widgets/login" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Session¹ hash", + "links": [ + "https://core.telegram.org/constructor/webAuthorization" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "HASH_INVALID", + "description": "The provided hash is invalid." + } + ] + }, + "account.resetWebAuthorizations": { + "name": "account.resetWebAuthorizations", + "description": [ + "Reset all active web telegram login¹ sessions" + ], + "links": [ + "https://core.telegram.org/widgets/login" + ] + }, + "account.saveAutoDownloadSettings": { + "name": "account.saveAutoDownloadSettings", + "description": [ + "Change media autodownload settings" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "high": { + "name": "high", + "description": "Whether to save media in the high data usage preset" + }, + "low": { + "name": "low", + "description": "Whether to save media in the low data usage preset" + }, + "settings": { + "name": "settings", + "description": "Media autodownload settings" + } + } + }, + "account.saveAutoSaveSettings": { + "name": "account.saveAutoSaveSettings", + "description": [ + "Modify autosave settings" + ], + "parameters": { + "broadcasts": { + "name": "broadcasts", + "description": "Whether the new settings should affect all channels¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "chats": { + "name": "chats", + "description": "Whether the new settings should affect all groups" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "Whether the new settings should affect a specific peer" + }, + "settings": { + "name": "settings", + "description": "The new autosave settings" + }, + "users": { + "name": "users", + "description": "Whether the new settings should affect all private chats" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ], + "bot_can_use": true + }, + "account.saveRingtone": { + "name": "account.saveRingtone", + "description": [ + "Save or remove saved notification sound.", + "If the notification sound is already in MP3 format, account.savedRingtone¹ will be returned.", + "Otherwise, it will be automatically converted and a account.savedRingtoneConverted² will be returned, containing a new document³ object that should be used to refer to the ringtone from now on (ie when deleting it using the unsave parameter, or when downloading it)." + ], + "links": [ + "https://core.telegram.org/constructor/account.savedRingtone", + "https://core.telegram.org/constructor/account.savedRingtoneConverted", + "https://core.telegram.org/constructor/document" + ], + "parameters": { + "id": { + "name": "id", + "description": "Notification sound uploaded using account.uploadRingtone¹", + "links": [ + "https://core.telegram.org/method/account.uploadRingtone" + ] + }, + "unsave": { + "name": "unsave", + "description": "Whether to add or delete the notification sound" + } + } + }, + "account.saveSecureValue": { + "name": "account.saveSecureValue", + "description": [ + "Securely save Telegram Passport¹ document, for more info see the passport docs »²" + ], + "links": [ + "https://core.telegram.org/passport", + "https://core.telegram.org/passport/encryption#encryption" + ], + "parameters": { + "secure_secret_id": { + "name": "secure_secret_id", + "description": "Passport secret hash, for more info see the passport docs »¹", + "links": [ + "https://core.telegram.org/passport/encryption#encryption" + ] + }, + "value": { + "name": "value", + "description": "Secure value, for more info see the passport docs »¹", + "links": [ + "https://core.telegram.org/passport/encryption#encryption" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "PASSWORD_REQUIRED", + "description": "A 2FA password must be configured to use Telegram Passport." + } + ] + }, + "account.saveTheme": { + "name": "account.saveTheme", + "description": [ + "Save a theme" + ], + "parameters": { + "theme": { + "name": "theme", + "description": "Theme to save" + }, + "unsave": { + "name": "unsave", + "description": "Unsave" + } + } + }, + "account.saveWallPaper": { + "name": "account.saveWallPaper", + "description": [ + "Install/uninstall wallpaper¹" + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "parameters": { + "settings": { + "name": "settings", + "description": "Wallpaper settings" + }, + "unsave": { + "name": "unsave", + "description": "Uninstall wallpaper?" + }, + "wallpaper": { + "name": "wallpaper", + "description": "Wallpaper¹ to install or uninstall", + "links": [ + "https://core.telegram.org/api/wallpapers" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "WALLPAPER_INVALID", + "description": "The specified wallpaper is invalid." + } + ] + }, + "account.sendChangePhoneCode": { + "name": "account.sendChangePhoneCode", + "description": [ + "Verify a new phone number to associate to the current account" + ], + "parameters": { + "phone_number": { + "name": "phone_number", + "description": "New phone number" + }, + "settings": { + "name": "settings", + "description": "Phone code settings" + } + }, + "errors": [ + { + "code": 406, + "type": "FRESH_CHANGE_PHONE_FORBIDDEN", + "description": "You can't change phone number right after logging in, please wait at least 24 hours." + }, + { + "code": 400, + "type": "PHONE_NUMBER_BANNED", + "description": "The provided phone number is banned from telegram." + }, + { + "code": 406, + "type": "PHONE_NUMBER_INVALID", + "description": "The phone number is invalid." + }, + { + "code": 400, + "type": "PHONE_NUMBER_OCCUPIED", + "description": "The phone number is already in use." + } + ] + }, + "account.sendConfirmPhoneCode": { + "name": "account.sendConfirmPhoneCode", + "description": [ + "Send confirmation code to cancel account deletion, for more info click here »¹" + ], + "links": [ + "https://core.telegram.org/api/account-deletion" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "The hash from the service notification, for more info click here »¹", + "links": [ + "https://core.telegram.org/api/account-deletion" + ] + }, + "settings": { + "name": "settings", + "description": "Phone code settings" + } + }, + "errors": [ + { + "code": 400, + "type": "HASH_INVALID", + "description": "The provided hash is invalid." + } + ] + }, + "account.sendVerifyEmailCode": { + "name": "account.sendVerifyEmailCode", + "description": [ + "Send an email verification code." + ], + "parameters": { + "email": { + "name": "email", + "description": "The email where to send the code." + }, + "purpose": { + "name": "purpose", + "description": "Verification purpose." + } + }, + "errors": [ + { + "code": 400, + "type": "EMAIL_INVALID", + "description": "The specified email is invalid." + }, + { + "code": 400, + "type": "EMAIL_NOT_SETUP", + "description": "In order to change the login email with emailVerifyPurposeLoginChange, an existing login email must already be set using emailVerifyPurposeLoginSetup." + }, + { + "code": 400, + "type": "PHONE_HASH_EXPIRED", + "description": "An invalid or expired phone_code_hash was provided." + }, + { + "code": 400, + "type": "PHONE_NUMBER_INVALID", + "description": "The phone number is invalid." + } + ] + }, + "account.sendVerifyPhoneCode": { + "name": "account.sendVerifyPhoneCode", + "description": [ + "Send the verification phone code for telegram passport¹." + ], + "links": [ + "https://core.telegram.org/passport" + ], + "parameters": { + "phone_number": { + "name": "phone_number", + "description": "The phone number to verify" + }, + "settings": { + "name": "settings", + "description": "Phone code settings" + } + }, + "errors": [ + { + "code": 400, + "type": "PHONE_NUMBER_INVALID", + "description": "The phone number is invalid." + } + ] + }, + "account.setAccountTTL": { + "name": "account.setAccountTTL", + "description": [ + "Set account self-destruction period" + ], + "parameters": { + "ttl": { + "name": "ttl", + "description": "Time to live in days" + } + }, + "errors": [ + { + "code": 400, + "type": "TTL_DAYS_INVALID", + "description": "The provided TTL is invalid." + } + ] + }, + "account.setAuthorizationTTL": { + "name": "account.setAuthorizationTTL", + "description": [ + "Set time-to-live of current session" + ], + "parameters": { + "authorization_ttl_days": { + "name": "authorization_ttl_days", + "description": "Time-to-live of current session in days" + } + }, + "errors": [ + { + "code": 406, + "type": "FRESH_RESET_AUTHORISATION_FORBIDDEN", + "description": "You can't logout other sessions if less than 24 hours have passed since you logged on the current session." + }, + { + "code": 400, + "type": "TTL_DAYS_INVALID", + "description": "The provided TTL is invalid." + } + ] + }, + "account.setContactSignUpNotification": { + "name": "account.setContactSignUpNotification", + "description": [ + "Toggle contact sign up notifications" + ], + "parameters": { + "silent": { + "name": "silent", + "description": "Whether to disable contact sign up notifications" + } + } + }, + "account.setContentSettings": { + "name": "account.setContentSettings", + "description": [ + "Set sensitive content settings (for viewing or hiding NSFW content)" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "sensitive_enabled": { + "name": "sensitive_enabled", + "description": "Enable NSFW content" + } + }, + "errors": [ + { + "code": 403, + "type": "SENSITIVE_CHANGE_FORBIDDEN", + "description": "You can't change your sensitive content settings." + } + ] + }, + "account.setGlobalPrivacySettings": { + "name": "account.setGlobalPrivacySettings", + "description": [ + "Set global privacy settings" + ], + "parameters": { + "settings": { + "name": "settings", + "description": "Global privacy settings" + } + }, + "errors": [ + { + "code": 400, + "type": "AUTOARCHIVE_NOT_AVAILABLE", + "description": "The autoarchive setting is not available at this time: please check the value of the autoarchive_setting_available field in client config » before calling this method." + } + ] + }, + "account.setPrivacy": { + "name": "account.setPrivacy", + "description": [ + "Change privacy settings of current account" + ], + "parameters": { + "key": { + "name": "key", + "description": "New privacy rule" + }, + "rules": { + "name": "rules", + "description": "Peers to which the privacy rule will apply." + } + }, + "errors": [ + { + "code": 400, + "type": "PRIVACY_KEY_INVALID", + "description": "The privacy key is invalid." + }, + { + "code": 400, + "type": "PRIVACY_TOO_LONG", + "description": "Too many privacy rules were specified, the current limit is 1000." + }, + { + "code": 400, + "type": "PRIVACY_VALUE_INVALID", + "description": "The specified privacy rule combination is invalid." + } + ] + }, + "account.toggleUsername": { + "name": "account.toggleUsername", + "description": [ + "Activate or deactivate a purchased fragment.com¹ username associated to the currently logged-in user." + ], + "links": [ + "https://fragment.com" + ], + "parameters": { + "active": { + "name": "active", + "description": "Whether to activate or deactivate it" + }, + "username": { + "name": "username", + "description": "Username" + } + }, + "errors": [ + { + "code": 400, + "type": "USERNAMES_ACTIVE_TOO_MUCH", + "description": "The maximum number of active usernames was reached." + }, + { + "code": 400, + "type": "USERNAME_INVALID", + "description": "The provided username is not valid." + } + ] + }, + "account.unregisterDevice": { + "name": "account.unregisterDevice", + "description": [ + "Deletes a device by its token, stops sending PUSH-notifications to it." + ], + "parameters": { + "other_uids": { + "name": "other_uids", + "description": "List of user identifiers of other users currently using the client" + }, + "token": { + "name": "token", + "description": "Device token, see PUSH updates¹ for the possible values.", + "links": [ + "https://core.telegram.org/api/push-updates#subscribing-to-notifications" + ] + }, + "token_type": { + "name": "token_type", + "description": "Device token type, see PUSH updates¹ for the possible values.", + "links": [ + "https://core.telegram.org/api/push-updates#subscribing-to-notifications" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "TOKEN_INVALID", + "description": "The provided token is invalid." + } + ] + }, + "account.updateColor": { + "name": "account.updateColor", + "description": [ + "Update the accent color and background custom emoji »¹ of the current account." + ], + "links": [ + "https://core.telegram.org/api/colors" + ], + "parameters": { + "background_emoji_id": { + "name": "background_emoji_id", + "description": "Custom emoji ID used in the accent color pattern." + }, + "color": { + "name": "color", + "description": "ID of the accent color palette »¹ to use (not RGB24, see here »² for more info).", + "links": [ + "https://core.telegram.org/api/colors", + "https://core.telegram.org/api/colors" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "for_profile": { + "name": "for_profile", + "description": "Whether to change the accent color emoji pattern of the profile page; otherwise, the accent color and emoji pattern of messages will be changed." + } + }, + "errors": [ + { + "code": 400, + "type": "COLOR_INVALID", + "description": "The specified color palette ID was invalid." + } + ] + }, + "account.updateDeviceLocked": { + "name": "account.updateDeviceLocked", + "description": [ + "When client-side passcode lock feature is enabled, will not show message texts in incoming PUSH notifications¹." + ], + "links": [ + "https://core.telegram.org/api/push-updates" + ], + "parameters": { + "period": { + "name": "period", + "description": "Inactivity period after which to start hiding message texts in PUSH notifications¹.", + "links": [ + "https://core.telegram.org/api/push-updates" + ] + } + } + }, + "account.updateEmojiStatus": { + "name": "account.updateEmojiStatus", + "description": [ + "Set an emoji status¹" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ], + "parameters": { + "emoji_status": { + "name": "emoji_status", + "description": "Emoji status¹ to set", + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "DOCUMENT_INVALID", + "description": "The specified document is invalid." + } + ] + }, + "account.updateNotifySettings": { + "name": "account.updateNotifySettings", + "description": [ + "Edits notification settings from a given user/group, from all users/all groups." + ], + "parameters": { + "peer": { + "name": "peer", + "description": "Notification source" + }, + "settings": { + "name": "settings", + "description": "Notification settings" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "SETTINGS_INVALID", + "description": "Invalid settings were provided." + } + ] + }, + "account.updatePasswordSettings": { + "name": "account.updatePasswordSettings", + "description": [ + "Set a new 2FA password" + ], + "parameters": { + "new_settings": { + "name": "new_settings", + "description": "The new password (see SRP¹)", + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "password": { + "name": "password", + "description": "The old password (see SRP¹)", + "links": [ + "https://core.telegram.org/api/srp" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "EMAIL_INVALID", + "description": "The specified email is invalid." + }, + { + "code": 400, + "type": "EMAIL_UNCONFIRMED", + "description": "Email unconfirmed." + }, + { + "code": 400, + "type": "EMAIL_UNCONFIRMED_%d", + "description": "The provided email isn't confirmed, %d is the length of the verification code that was just sent to the email: use account.verifyEmail to enter the received verification code and enable the recovery email." + }, + { + "code": 400, + "type": "NEW_SALT_INVALID", + "description": "The new salt is invalid." + }, + { + "code": 400, + "type": "NEW_SETTINGS_EMPTY", + "description": "No password is set on the current account, and no new password was specified in new_settings." + }, + { + "code": 400, + "type": "NEW_SETTINGS_INVALID", + "description": "The new password settings are invalid." + }, + { + "code": 400, + "type": "PASSWORD_HASH_INVALID", + "description": "The provided password hash is invalid." + }, + { + "code": 400, + "type": "SRP_ID_INVALID", + "description": "Invalid SRP ID provided." + }, + { + "code": 400, + "type": "SRP_PASSWORD_CHANGED", + "description": "Password has changed." + } + ] + }, + "account.updateProfile": { + "name": "account.updateProfile", + "description": [ + "Updates user profile." + ], + "parameters": { + "about": { + "name": "about", + "description": "New bio" + }, + "first_name": { + "name": "first_name", + "description": "New user first name" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "last_name": { + "name": "last_name", + "description": "New user last name" + } + }, + "errors": [ + { + "code": 400, + "type": "ABOUT_TOO_LONG", + "description": "About string too long." + }, + { + "code": 400, + "type": "FIRSTNAME_INVALID", + "description": "The first name is invalid." + } + ] + }, + "account.updateStatus": { + "name": "account.updateStatus", + "description": [ + "Updates online user status." + ], + "parameters": { + "offline": { + "name": "offline", + "description": "If (boolTrue)¹ is transmitted, user status will change to (userStatusOffline)².", + "links": [ + "https://core.telegram.org/constructor/boolTrue", + "https://core.telegram.org/constructor/userStatusOffline" + ] + } + } + }, + "account.updateTheme": { + "name": "account.updateTheme", + "description": [ + "Update theme" + ], + "parameters": { + "document": { + "name": "document", + "description": "Theme file" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "format": { + "name": "format", + "description": "Theme format, a string that identifies the theming engines supported by the client" + }, + "settings": { + "name": "settings", + "description": "Theme settings" + }, + "slug": { + "name": "slug", + "description": "Unique theme ID" + }, + "theme": { + "name": "theme", + "description": "Theme to update" + }, + "title": { + "name": "title", + "description": "Theme name" + } + }, + "errors": [ + { + "code": 400, + "type": "THEME_INVALID", + "description": "Invalid theme provided." + } + ] + }, + "account.updateUsername": { + "name": "account.updateUsername", + "description": [ + "Changes username for the current user." + ], + "parameters": { + "username": { + "name": "username", + "description": "username or empty string if username is to be removedAccepted characters: a-z (case-insensitive), 0-9 and underscores.Length: 5-32 characters." + } + }, + "errors": [ + { + "code": 400, + "type": "USERNAME_INVALID", + "description": "The provided username is not valid." + }, + { + "code": 400, + "type": "USERNAME_NOT_MODIFIED", + "description": "The username was not modified." + }, + { + "code": 400, + "type": "USERNAME_OCCUPIED", + "description": "The provided username is already occupied." + }, + { + "code": 400, + "type": "USERNAME_PURCHASE_AVAILABLE", + "description": "The specified username can be purchased on https://fragment.com." + } + ] + }, + "account.uploadRingtone": { + "name": "account.uploadRingtone", + "description": [ + "Upload notification sound, use account.saveRingtone¹ to convert it and add it to the list of saved notification sounds." + ], + "links": [ + "https://core.telegram.org/method/account.saveRingtone" + ], + "parameters": { + "file": { + "name": "file", + "description": "Notification sound" + }, + "file_name": { + "name": "file_name", + "description": "File name" + }, + "mime_type": { + "name": "mime_type", + "description": "MIME type of file" + } + } + }, + "account.uploadTheme": { + "name": "account.uploadTheme", + "description": [ + "Upload theme" + ], + "parameters": { + "file": { + "name": "file", + "description": "Previously uploaded¹ theme file with platform-specific colors for UI components, can be left unset when creating themes that only modify the wallpaper or accent colors.", + "links": [ + "https://core.telegram.org/api/themes#uploading-theme-files" + ] + }, + "file_name": { + "name": "file_name", + "description": "File name" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "mime_type": { + "name": "mime_type", + "description": "MIME type, must be application/x-tgtheme-{format}, where format depends on the client" + }, + "thumb": { + "name": "thumb", + "description": "Thumbnail" + } + }, + "errors": [ + { + "code": 400, + "type": "THEME_FILE_INVALID", + "description": "Invalid theme file provided." + } + ] + }, + "account.uploadWallPaper": { + "name": "account.uploadWallPaper", + "description": [ + "Create and upload a new wallpaper¹" + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "parameters": { + "file": { + "name": "file", + "description": "The JPG/PNG wallpaper" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "for_chat": { + "name": "for_chat", + "description": "Set this flag when uploading wallpapers to be passed to messages.setChatWallPaper¹.", + "links": [ + "https://core.telegram.org/method/messages.setChatWallPaper" + ] + }, + "mime_type": { + "name": "mime_type", + "description": "MIME type of uploaded wallpaper" + }, + "settings": { + "name": "settings", + "description": "Wallpaper settings" + } + }, + "errors": [ + { + "code": 400, + "type": "WALLPAPER_FILE_INVALID", + "description": "The specified wallpaper file is invalid." + }, + { + "code": 400, + "type": "WALLPAPER_MIME_INVALID", + "description": "The specified wallpaper MIME type is invalid." + } + ] + }, + "account.verifyEmail": { + "name": "account.verifyEmail", + "description": [ + "Verify an email address." + ], + "parameters": { + "purpose": { + "name": "purpose", + "description": "Verification purpose" + }, + "verification": { + "name": "verification", + "description": "Email verification code or token" + } + }, + "errors": [ + { + "code": 400, + "type": "EMAIL_INVALID", + "description": "The specified email is invalid." + }, + { + "code": 400, + "type": "EMAIL_VERIFY_EXPIRED", + "description": "The verification email has expired." + } + ] + }, + "account.verifyPhone": { + "name": "account.verifyPhone", + "description": [ + "Verify a phone number for telegram passport¹." + ], + "links": [ + "https://core.telegram.org/passport" + ], + "parameters": { + "phone_code": { + "name": "phone_code", + "description": "Code received after the call to account.sendVerifyPhoneCode¹", + "links": [ + "https://core.telegram.org/method/account.sendVerifyPhoneCode" + ] + }, + "phone_code_hash": { + "name": "phone_code_hash", + "description": "Phone code hash received from the call to account.sendVerifyPhoneCode¹", + "links": [ + "https://core.telegram.org/method/account.sendVerifyPhoneCode" + ] + }, + "phone_number": { + "name": "phone_number", + "description": "Phone number" + } + }, + "errors": [ + { + "code": 400, + "type": "PHONE_CODE_EMPTY", + "description": "phone_code is missing." + }, + { + "code": 400, + "type": "PHONE_CODE_EXPIRED", + "description": "The phone code you provided has expired." + }, + { + "code": 400, + "type": "PHONE_NUMBER_INVALID", + "description": "The phone number is invalid." + } + ] + }, + "auth.acceptLoginToken": { + "name": "auth.acceptLoginToken", + "description": [ + "Accept QR code login token, logging in the app that generated it.", + "Returns info about the new session.", + "For more info, see login via QR code¹." + ], + "links": [ + "https://core.telegram.org/api/qr-login" + ], + "parameters": { + "token": { + "name": "token", + "description": "Login token embedded in QR code, for more info, see login via QR code¹.", + "links": [ + "https://core.telegram.org/api/qr-login" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "AUTH_TOKEN_ALREADY_ACCEPTED", + "description": "The specified auth token was already accepted." + }, + { + "code": 400, + "type": "AUTH_TOKEN_EXCEPTION", + "description": "An error occurred while importing the auth token." + }, + { + "code": 400, + "type": "AUTH_TOKEN_EXPIRED", + "description": "The authorization token has expired." + }, + { + "code": 400, + "type": "AUTH_TOKEN_INVALIDX", + "description": "The specified auth token is invalid." + } + ] + }, + "auth.bindTempAuthKey": { + "name": "auth.bindTempAuthKey", + "description": [ + "Binds a temporary authorization key temp_auth_key_id to the permanent authorization key perm_auth_key_id. Each permanent key may only be bound to one temporary key at a time, binding a new temporary key overwrites the previous one.", + "For more information, see Perfect Forward Secrecy¹." + ], + "links": [ + "https://core.telegram.org/api/pfs" + ], + "parameters": { + "encrypted_message": { + "name": "encrypted_message", + "description": "See Generating encrypted_message¹", + "links": [ + "https://core.telegram.org#generating-encrypted-message" + ] + }, + "expires_at": { + "name": "expires_at", + "description": "Unix timestamp to invalidate temporary key, see Binding message contents¹", + "links": [ + "https://core.telegram.org#binding-message-contents" + ] + }, + "nonce": { + "name": "nonce", + "description": "Random long from Binding message contents¹", + "links": [ + "https://core.telegram.org#binding-message-contents" + ] + }, + "perm_auth_key_id": { + "name": "perm_auth_key_id", + "description": "Permanent auth_key_id to bind to" + } + }, + "errors": [ + { + "code": 400, + "type": "ENCRYPTED_MESSAGE_INVALID", + "description": "Encrypted message invalid." + }, + { + "code": 400, + "type": "TEMP_AUTH_KEY_ALREADY_BOUND", + "description": "The passed temporary key is already bound to another perm_auth_key_id." + }, + { + "code": 400, + "type": "TEMP_AUTH_KEY_EMPTY", + "description": "No temporary auth key provided." + } + ], + "bot_can_use": true + }, + "auth.cancelCode": { + "name": "auth.cancelCode", + "description": [ + "Cancel the login verification code" + ], + "parameters": { + "phone_code_hash": { + "name": "phone_code_hash", + "description": "Phone code hash from auth.sendCode¹", + "links": [ + "https://core.telegram.org/method/auth.sendCode" + ] + }, + "phone_number": { + "name": "phone_number", + "description": "Phone number" + } + }, + "errors": [ + { + "code": 400, + "type": "PHONE_CODE_EXPIRED", + "description": "The phone code you provided has expired." + }, + { + "code": 406, + "type": "PHONE_NUMBER_INVALID", + "description": "The phone number is invalid." + } + ] + }, + "auth.checkPassword": { + "name": "auth.checkPassword", + "description": [ + "Try logging to an account protected by a 2FA password¹." + ], + "links": [ + "https://core.telegram.org/api/srp" + ], + "parameters": { + "password": { + "name": "password", + "description": "The account's password (see SRP¹)", + "links": [ + "https://core.telegram.org/api/srp" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "PASSWORD_HASH_INVALID", + "description": "The provided password hash is invalid." + }, + { + "code": 400, + "type": "SRP_ID_INVALID", + "description": "Invalid SRP ID provided." + }, + { + "code": 400, + "type": "SRP_PASSWORD_CHANGED", + "description": "Password has changed." + } + ] + }, + "auth.checkRecoveryPassword": { + "name": "auth.checkRecoveryPassword", + "description": [ + "Check if the 2FA recovery code¹ sent using auth.requestPasswordRecovery² is valid, before passing it to auth.recoverPassword³." + ], + "links": [ + "https://core.telegram.org/api/srp", + "https://core.telegram.org/method/auth.requestPasswordRecovery", + "https://core.telegram.org/method/auth.recoverPassword" + ], + "parameters": { + "code": { + "name": "code", + "description": "Code received via email" + } + }, + "errors": [ + { + "code": 400, + "type": "PASSWORD_RECOVERY_EXPIRED", + "description": "The recovery code has expired." + } + ] + }, + "auth.dropTempAuthKeys": { + "name": "auth.dropTempAuthKeys", + "description": [ + "Delete all temporary authorization keys except for the ones specified" + ], + "parameters": { + "except_auth_keys": { + "name": "except_auth_keys", + "description": "The auth keys that shouldn't be dropped." + } + }, + "bot_can_use": true + }, + "auth.exportAuthorization": { + "name": "auth.exportAuthorization", + "description": [ + "Returns data for copying authorization to another data-center." + ], + "parameters": { + "dc_id": { + "name": "dc_id", + "description": "Number of a target data-center" + } + }, + "errors": [ + { + "code": 400, + "type": "DC_ID_INVALID", + "description": "The provided DC ID is invalid." + } + ], + "bot_can_use": true + }, + "auth.exportLoginToken": { + "name": "auth.exportLoginToken", + "description": [ + "Generate a login token, for login via QR code¹.", + "The generated login token should be encoded using base64url, then shown as a tg://login?token=base64encodedtoken deep link »² in the QR code.", + "For more info, see login via QR code¹." + ], + "links": [ + "https://core.telegram.org/api/qr-login", + "https://core.telegram.org/api/links#qr-code-login-links", + "https://core.telegram.org/api/qr-login" + ], + "parameters": { + "api_hash": { + "name": "api_hash", + "description": "Application identifier hash (see. App configuration¹)", + "links": [ + "https://core.telegram.org/myapp" + ] + }, + "api_id": { + "name": "api_id", + "description": "Application identifier (see. App configuration¹)", + "links": [ + "https://core.telegram.org/myapp" + ] + }, + "except_ids": { + "name": "except_ids", + "description": "List of already logged-in user IDs, to prevent logging in twice with the same user" + } + }, + "errors": [ + { + "code": 400, + "type": "API_ID_INVALID", + "description": "API ID invalid." + }, + { + "code": 400, + "type": "API_ID_PUBLISHED_FLOOD", + "description": "This API id was published somewhere, you can't use it now." + } + ] + }, + "auth.importAuthorization": { + "name": "auth.importAuthorization", + "description": [ + "Logs in a user using a key transmitted from his native data-center." + ], + "parameters": { + "bytes": { + "name": "bytes", + "description": "Authorization key" + }, + "id": { + "name": "id", + "description": "User ID" + } + }, + "errors": [ + { + "code": 400, + "type": "AUTH_BYTES_INVALID", + "description": "The provided authorization is invalid." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ], + "bot_can_use": true + }, + "auth.importBotAuthorization": { + "name": "auth.importBotAuthorization", + "description": [ + "Login as a bot" + ], + "parameters": { + "api_hash": { + "name": "api_hash", + "description": "Application identifier hash (see. App configuration¹)", + "links": [ + "https://core.telegram.org/myapp" + ] + }, + "api_id": { + "name": "api_id", + "description": "Application identifier (see. App configuration¹)", + "links": [ + "https://core.telegram.org/myapp" + ] + }, + "bot_auth_token": { + "name": "bot_auth_token", + "description": "Bot token (see bots¹)", + "links": [ + "https://core.telegram.org/bots" + ] + }, + "flags": { + "name": "flags", + "description": "Reserved for future use" + } + }, + "errors": [ + { + "code": 400, + "type": "ACCESS_TOKEN_EXPIRED", + "description": "Access token expired." + }, + { + "code": 400, + "type": "ACCESS_TOKEN_INVALID", + "description": "Access token invalid." + }, + { + "code": 400, + "type": "API_ID_INVALID", + "description": "API ID invalid." + }, + { + "code": 400, + "type": "API_ID_PUBLISHED_FLOOD", + "description": "This API id was published somewhere, you can't use it now." + } + ], + "bot_can_use": true + }, + "auth.importLoginToken": { + "name": "auth.importLoginToken", + "description": [ + "Login using a redirected login token, generated in case of DC mismatch during QR code login¹.", + "For more info, see login via QR code¹." + ], + "links": [ + "https://core.telegram.org/api/qr-login", + "https://core.telegram.org/api/qr-login" + ], + "parameters": { + "token": { + "name": "token", + "description": "Login token" + } + }, + "errors": [ + { + "code": 400, + "type": "AUTH_TOKEN_ALREADY_ACCEPTED", + "description": "The specified auth token was already accepted." + }, + { + "code": 400, + "type": "AUTH_TOKEN_EXPIRED", + "description": "The authorization token has expired." + }, + { + "code": 400, + "type": "AUTH_TOKEN_INVALID", + "description": "The specified auth token is invalid." + }, + { + "code": 400, + "type": "AUTH_TOKEN_INVALIDX", + "description": "The specified auth token is invalid." + }, + { + "code": 500, + "type": "MEMBER_NOT_FOUND" + } + ] + }, + "auth.importWebTokenAuthorization": { + "name": "auth.importWebTokenAuthorization", + "description": [ + "Login by importing an authorization token" + ], + "parameters": { + "api_hash": { + "name": "api_hash", + "description": "API hash¹", + "links": [ + "https://core.telegram.org/api/obtaining_api_id" + ] + }, + "api_id": { + "name": "api_id", + "description": "API ID¹", + "links": [ + "https://core.telegram.org/api/obtaining_api_id" + ] + }, + "web_auth_token": { + "name": "web_auth_token", + "description": "The authorization token" + } + }, + "errors": [ + { + "code": 400, + "type": "API_ID_INVALID", + "description": "API ID invalid." + } + ] + }, + "auth.logOut": { + "name": "auth.logOut", + "description": [ + "Logs out the user." + ], + "bot_can_use": true + }, + "auth.recoverPassword": { + "name": "auth.recoverPassword", + "description": [ + "Reset the 2FA password¹ using the recovery code sent using auth.requestPasswordRecovery²." + ], + "links": [ + "https://core.telegram.org/api/srp", + "https://core.telegram.org/method/auth.requestPasswordRecovery" + ], + "parameters": { + "code": { + "name": "code", + "description": "Code received via email" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "new_settings": { + "name": "new_settings", + "description": "New password" + } + }, + "errors": [ + { + "code": 400, + "type": "CODE_EMPTY", + "description": "The provided code is empty." + }, + { + "code": 400, + "type": "NEW_SETTINGS_INVALID", + "description": "The new password settings are invalid." + } + ] + }, + "auth.requestFirebaseSms": { + "name": "auth.requestFirebaseSms", + "description": [ + "Request an SMS code via Firebase." + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "ios_push_secret": { + "name": "ios_push_secret", + "description": "Secret token received via an apple push notification" + }, + "phone_code_hash": { + "name": "phone_code_hash", + "description": "Phone code hash returned by auth.sendCode¹", + "links": [ + "https://core.telegram.org/method/auth.sendCode" + ] + }, + "phone_number": { + "name": "phone_number", + "description": "Phone number" + }, + "safety_net_token": { + "name": "safety_net_token", + "description": "On Android, a JWS object obtained as described in the auth documentation »¹", + "links": [ + "https://core.telegram.org/api/auth" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "PHONE_NUMBER_INVALID", + "description": "The phone number is invalid." + } + ] + }, + "auth.requestPasswordRecovery": { + "name": "auth.requestPasswordRecovery", + "description": [ + "Request recovery code of a 2FA password¹, only for accounts with a recovery email configured²." + ], + "links": [ + "https://core.telegram.org/api/srp", + "https://core.telegram.org/api/srp#email-verification" + ], + "parameters": { + "400": { + "name": "400", + "description": "No email was set, can't recover password via email." + } + }, + "errors": [ + { + "code": 400, + "type": "PASSWORD_EMPTY", + "description": "The provided password is empty." + }, + { + "code": 400, + "type": "PASSWORD_RECOVERY_NA", + "description": "No email was set, can't recover password via email." + } + ] + }, + "auth.resendCode": { + "name": "auth.resendCode", + "description": [ + "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 login¹ for more info." + ], + "links": [ + "https://core.telegram.org/api/auth" + ], + "parameters": { + "phone_code_hash": { + "name": "phone_code_hash", + "description": "The phone code hash obtained from auth.sendCode¹", + "links": [ + "https://core.telegram.org/method/auth.sendCode" + ] + }, + "phone_number": { + "name": "phone_number", + "description": "The phone number" + } + }, + "errors": [ + { + "code": 400, + "type": "PHONE_CODE_EMPTY", + "description": "phone_code is missing." + }, + { + "code": 400, + "type": "PHONE_CODE_EXPIRED", + "description": "The phone code you provided has expired." + }, + { + "code": 400, + "type": "PHONE_CODE_HASH_EMPTY", + "description": "phone_code_hash is missing." + }, + { + "code": 406, + "type": "PHONE_NUMBER_INVALID", + "description": "The phone number is invalid." + }, + { + "code": 406, + "type": "SEND_CODE_UNAVAILABLE", + "description": "Returned when all available options for this type of number were already used (e.g. flash-call, then SMS, then this error might be returned to trigger a second resend)." + } + ] + }, + "auth.resetAuthorizations": { + "name": "auth.resetAuthorizations", + "description": [ + "Terminates all user's authorized sessions except for the current one.", + "After calling this method it is necessary to reregister the current device using the method account.registerDevice¹" + ], + "links": [ + "https://core.telegram.org/method/account.registerDevice" + ], + "parameters": { + "406": { + "name": "406", + "description": "You can't logout other sessions if less than 24 hours have passed since you logged on the current session." + } + }, + "errors": [ + { + "code": 406, + "type": "FRESH_RESET_AUTHORISATION_FORBIDDEN", + "description": "You can't logout other sessions if less than 24 hours have passed since you logged on the current session." + } + ] + }, + "auth.resetLoginEmail": { + "name": "auth.resetLoginEmail", + "description": [ + "Reset the login email »¹." + ], + "links": [ + "https://core.telegram.org/api/auth#email-verification" + ], + "parameters": { + "phone_code_hash": { + "name": "phone_code_hash", + "description": "Phone code hash, obtained as described in the documentation »¹", + "links": [ + "https://core.telegram.org/api/auth" + ] + }, + "phone_number": { + "name": "phone_number", + "description": "Phone number of the account" + } + }, + "errors": [ + { + "code": 400, + "type": "PHONE_NUMBER_INVALID", + "description": "The phone number is invalid." + }, + { + "code": 400, + "type": "TASK_ALREADY_EXISTS", + "description": "An email reset was already requested." + } + ] + }, + "auth.sendCode": { + "name": "auth.sendCode", + "description": [ + "Send the verification code for login" + ], + "parameters": { + "api_hash": { + "name": "api_hash", + "description": "Application secret hash (see App configuration¹)", + "links": [ + "https://core.telegram.org/myapp" + ] + }, + "api_id": { + "name": "api_id", + "description": "Application identifier (see App configuration¹)", + "links": [ + "https://core.telegram.org/myapp" + ] + }, + "phone_number": { + "name": "phone_number", + "description": "Phone number in international format" + }, + "settings": { + "name": "settings", + "description": "Settings for the code type to send" + } + }, + "errors": [ + { + "code": 400, + "type": "API_ID_INVALID", + "description": "API ID invalid." + }, + { + "code": 400, + "type": "API_ID_PUBLISHED_FLOOD", + "description": "This API id was published somewhere, you can't use it now." + }, + { + "code": 500, + "type": "AUTH_RESTART", + "description": "Restart the authorization process." + }, + { + "code": 400, + "type": "PHONE_NUMBER_APP_SIGNUP_FORBIDDEN", + "description": "You can't sign up using this app." + }, + { + "code": 400, + "type": "PHONE_NUMBER_BANNED", + "description": "The provided phone number is banned from telegram." + }, + { + "code": 400, + "type": "PHONE_NUMBER_FLOOD", + "description": "You asked for the code too many times." + }, + { + "code": 406, + "type": "PHONE_NUMBER_INVALID", + "description": "The phone number is invalid." + }, + { + "code": 406, + "type": "PHONE_PASSWORD_FLOOD", + "description": "You have tried logging in too many times." + }, + { + "code": 400, + "type": "PHONE_PASSWORD_PROTECTED", + "description": "This phone is password protected." + }, + { + "code": 400, + "type": "SMS_CODE_CREATE_FAILED", + "description": "An error occurred while creating the SMS code." + } + ] + }, + "auth.signIn": { + "name": "auth.signIn", + "description": [ + "Signs in a user with a validated phone number." + ], + "parameters": { + "email_verification": { + "name": "email_verification", + "description": "Email verification code or token" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "phone_code": { + "name": "phone_code", + "description": "Valid numerical code from the SMS-message" + }, + "phone_code_hash": { + "name": "phone_code_hash", + "description": "SMS-message ID, obtained from auth.sendCode¹", + "links": [ + "https://core.telegram.org/method/auth.sendCode" + ] + }, + "phone_number": { + "name": "phone_number", + "description": "Phone number in the international format" + } + }, + "errors": [ + { + "code": 500, + "type": "AUTH_RESTART", + "description": "Restart the authorization process." + }, + { + "code": 400, + "type": "PHONE_CODE_EMPTY", + "description": "phone_code is missing." + }, + { + "code": 400, + "type": "PHONE_CODE_EXPIRED", + "description": "The phone code you provided has expired." + }, + { + "code": 400, + "type": "PHONE_CODE_INVALID", + "description": "The provided phone code is invalid." + }, + { + "code": 406, + "type": "PHONE_NUMBER_INVALID", + "description": "The phone number is invalid." + }, + { + "code": 400, + "type": "PHONE_NUMBER_UNOCCUPIED", + "description": "The phone number is not yet being used." + }, + { + "code": 500, + "type": "SIGN_IN_FAILED", + "description": "Failure while signing in." + } + ] + }, + "auth.signUp": { + "name": "auth.signUp", + "description": [ + "Registers a validated phone number in the system." + ], + "parameters": { + "first_name": { + "name": "first_name", + "description": "New user first name" + }, + "last_name": { + "name": "last_name", + "description": "New user last name" + }, + "phone_code_hash": { + "name": "phone_code_hash", + "description": "SMS-message ID" + }, + "phone_number": { + "name": "phone_number", + "description": "Phone number in the international format" + } + }, + "errors": [ + { + "code": 400, + "type": "FIRSTNAME_INVALID", + "description": "The first name is invalid." + }, + { + "code": 400, + "type": "LASTNAME_INVALID", + "description": "The last name is invalid." + }, + { + "code": 400, + "type": "PHONE_CODE_EMPTY", + "description": "phone_code is missing." + }, + { + "code": 400, + "type": "PHONE_CODE_EXPIRED", + "description": "The phone code you provided has expired." + }, + { + "code": 400, + "type": "PHONE_CODE_INVALID", + "description": "The provided phone code is invalid." + }, + { + "code": 400, + "type": "PHONE_NUMBER_FLOOD", + "description": "You asked for the code too many times." + }, + { + "code": 406, + "type": "PHONE_NUMBER_INVALID", + "description": "The phone number is invalid." + }, + { + "code": 400, + "type": "PHONE_NUMBER_OCCUPIED", + "description": "The phone number is already in use." + } + ] + }, + "bots.allowSendMessage": { + "name": "bots.allowSendMessage", + "description": [ + "Allow the specified bot to send us messages" + ], + "parameters": { + "bot": { + "name": "bot", + "description": "The bot" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_INVALID", + "description": "This is not a valid bot." + } + ] + }, + "bots.answerWebhookJSONQuery": { + "name": "bots.answerWebhookJSONQuery", + "description": [ + "Answers a custom query; for bots only" + ], + "parameters": { + "data": { + "name": "data", + "description": "JSON-serialized answer to the query" + }, + "query_id": { + "name": "query_id", + "description": "Identifier of a custom query" + } + }, + "errors": [ + { + "code": 400, + "type": "DATA_JSON_INVALID", + "description": "The provided JSON data is invalid." + }, + { + "code": 400, + "type": "QUERY_ID_INVALID", + "description": "The query ID is invalid." + }, + { + "code": 403, + "type": "USER_BOT_INVALID", + "description": "User accounts must provide the bot method parameter when calling this method. If there is no such method parameter, this method can only be invoked by bot accounts." + } + ], + "bot_can_use": true + }, + "bots.canSendMessage": { + "name": "bots.canSendMessage", + "description": [ + "Check whether the specified bot can send us messages" + ], + "parameters": { + "bot": { + "name": "bot", + "description": "The bot" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_INVALID", + "description": "This is not a valid bot." + } + ] + }, + "bots.getBotCommands": { + "name": "bots.getBotCommands", + "description": [ + "Obtain a list of bot commands for the specified bot scope and language code" + ], + "parameters": { + "lang_code": { + "name": "lang_code", + "description": "Language code" + }, + "scope": { + "name": "scope", + "description": "Command scope" + } + }, + "errors": [ + { + "code": 400, + "type": "USER_BOT_INVALID", + "description": "User accounts must provide the bot method parameter when calling this method. If there is no such method parameter, this method can only be invoked by bot accounts." + } + ], + "bot_can_use": true + }, + "bots.getBotInfo": { + "name": "bots.getBotInfo", + "description": [ + "Get localized name, about text and description of a bot (or of the current account, if called by a bot)." + ], + "parameters": { + "bot": { + "name": "bot", + "description": "If called by a user, must contain the peer of a bot we own." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "lang_code": { + "name": "lang_code", + "description": "Language code, if left empty this method will return the fallback about text and description." + } + }, + "errors": [ + { + "code": 400, + "type": "LANG_CODE_INVALID", + "description": "The specified language code is invalid." + }, + { + "code": 400, + "type": "USER_BOT_INVALID", + "description": "User accounts must provide the bot method parameter when calling this method. If there is no such method parameter, this method can only be invoked by bot accounts." + } + ], + "bot_can_use": true + }, + "bots.getBotMenuButton": { + "name": "bots.getBotMenuButton", + "description": [ + "Gets the menu button action for a given user or for all users, previously set using bots.setBotMenuButton¹; users can see this information in the botInfo² constructor." + ], + "links": [ + "https://core.telegram.org/method/bots.setBotMenuButton", + "https://core.telegram.org/constructor/botInfo" + ], + "parameters": { + "user_id": { + "name": "user_id", + "description": "User ID or empty for the default menu button." + } + }, + "errors": [ + { + "code": 400, + "type": "USER_BOT_REQUIRED", + "description": "This method can only be called by a bot." + } + ], + "bot_can_use": true + }, + "bots.invokeWebViewCustomMethod": { + "name": "bots.invokeWebViewCustomMethod", + "description": [ + "Send a custom request from a mini bot app¹, triggered by a web_app_invoke_custom_method event »².", + "The response should be sent using a custom_method_invoked¹ event, see here »² for more info on the flow." + ], + "links": [ + "https://core.telegram.org/api/bots/webapps", + "https://core.telegram.org/api/web-events#web-app-invoke-custom-method", + "https://core.telegram.org/api/bots/webapps#custom-method-invoked", + "https://core.telegram.org/api/web-events#web-app-invoke-custom-method" + ], + "parameters": { + "bot": { + "name": "bot", + "description": "Identifier of the bot associated to the mini bot app¹", + "links": [ + "https://core.telegram.org/api/bots/webapps" + ] + }, + "custom_method": { + "name": "custom_method", + "description": "Identifier of the custom method to invoke" + }, + "params": { + "name": "params", + "description": "Method parameters" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_INVALID", + "description": "This is not a valid bot." + } + ] + }, + "bots.reorderUsernames": { + "name": "bots.reorderUsernames", + "description": [ + "Reorder usernames associated to a bot we own." + ], + "parameters": { + "bot": { + "name": "bot", + "description": "The bot" + }, + "order": { + "name": "order", + "description": "The new order for active usernames. All active usernames must be specified." + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_INVALID", + "description": "This is not a valid bot." + } + ], + "bot_can_use": true + }, + "bots.resetBotCommands": { + "name": "bots.resetBotCommands", + "description": [ + "Clear bot commands for the specified bot scope and language code" + ], + "parameters": { + "lang_code": { + "name": "lang_code", + "description": "Language code" + }, + "scope": { + "name": "scope", + "description": "Command scope" + } + }, + "errors": [ + { + "code": 400, + "type": "LANG_CODE_INVALID", + "description": "The specified language code is invalid." + } + ], + "bot_can_use": true + }, + "bots.sendCustomRequest": { + "name": "bots.sendCustomRequest", + "description": [ + "Sends a custom request; for bots only" + ], + "parameters": { + "custom_method": { + "name": "custom_method", + "description": "The method name" + }, + "params": { + "name": "params", + "description": "JSON-serialized method parameters" + } + }, + "errors": [ + { + "code": 400, + "type": "DATA_JSON_INVALID", + "description": "The provided JSON data is invalid." + }, + { + "code": 400, + "type": "METHOD_INVALID", + "description": "The specified method is invalid." + }, + { + "code": 403, + "type": "USER_BOT_INVALID", + "description": "User accounts must provide the bot method parameter when calling this method. If there is no such method parameter, this method can only be invoked by bot accounts." + } + ], + "bot_can_use": true + }, + "bots.setBotBroadcastDefaultAdminRights": { + "name": "bots.setBotBroadcastDefaultAdminRights", + "description": [ + "Set the default suggested admin rights¹ for bots being added as admins to channels, see here for more info on how to handle them »²." + ], + "links": [ + "https://core.telegram.org/api/rights#suggested-bot-rights", + "https://core.telegram.org/api/rights#suggested-bot-rights" + ], + "parameters": { + "admin_rights": { + "name": "admin_rights", + "description": "Admin rights" + } + }, + "errors": [ + { + "code": 400, + "type": "RIGHTS_NOT_MODIFIED", + "description": "The new admin rights are equal to the old rights, no change was made." + } + ], + "bot_can_use": true + }, + "bots.setBotCommands": { + "name": "bots.setBotCommands", + "description": [ + "Set bot command list" + ], + "parameters": { + "commands": { + "name": "commands", + "description": "Bot commands" + }, + "lang_code": { + "name": "lang_code", + "description": "Language code" + }, + "scope": { + "name": "scope", + "description": "Command scope" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_COMMAND_DESCRIPTION_INVALID", + "description": "The specified command description is invalid." + }, + { + "code": 400, + "type": "BOT_COMMAND_INVALID", + "description": "The specified command is invalid." + }, + { + "code": 400, + "type": "LANG_CODE_INVALID", + "description": "The specified language code is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USER_BOT_REQUIRED", + "description": "This method can only be called by a bot." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ], + "bot_can_use": true + }, + "bots.setBotGroupDefaultAdminRights": { + "name": "bots.setBotGroupDefaultAdminRights", + "description": [ + "Set the default suggested admin rights¹ for bots being added as admins to groups, see here for more info on how to handle them »²." + ], + "links": [ + "https://core.telegram.org/api/rights#suggested-bot-rights", + "https://core.telegram.org/api/rights#suggested-bot-rights" + ], + "parameters": { + "admin_rights": { + "name": "admin_rights", + "description": "Admin rights" + } + }, + "errors": [ + { + "code": 400, + "type": "RIGHTS_NOT_MODIFIED", + "description": "The new admin rights are equal to the old rights, no change was made." + }, + { + "code": 400, + "type": "USER_BOT_REQUIRED", + "description": "This method can only be called by a bot." + } + ], + "bot_can_use": true + }, + "bots.setBotInfo": { + "name": "bots.setBotInfo", + "description": [ + "Set localized name, about text and description of a bot (or of the current account, if called by a bot)." + ], + "parameters": { + "about": { + "name": "about", + "description": "New about text" + }, + "bot": { + "name": "bot", + "description": "If called by a user, must contain the peer of a bot we own." + }, + "description": { + "name": "description", + "description": "New description" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "lang_code": { + "name": "lang_code", + "description": "Language code, if left empty update the fallback about text and description" + }, + "name": { + "name": "name", + "description": "New bot name" + } + }, + "errors": [ + { + "code": 400, + "type": "USER_BOT_INVALID", + "description": "User accounts must provide the bot method parameter when calling this method. If there is no such method parameter, this method can only be invoked by bot accounts." + } + ], + "bot_can_use": true + }, + "bots.setBotMenuButton": { + "name": "bots.setBotMenuButton", + "description": [ + "Sets the menu button action »¹ for a given user or for all users" + ], + "links": [ + "https://core.telegram.org/api/bots/menu" + ], + "parameters": { + "button": { + "name": "button", + "description": "Bot menu button action" + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + }, + "errors": [ + { + "code": 400, + "type": "BUTTON_TEXT_INVALID", + "description": "The specified button text is invalid." + }, + { + "code": 400, + "type": "BUTTON_URL_INVALID", + "description": "Button URL invalid." + } + ], + "bot_can_use": true + }, + "bots.toggleUsername": { + "name": "bots.toggleUsername", + "description": [ + "Activate or deactivate a purchased fragment.com¹ username associated to a bot we own." + ], + "links": [ + "https://fragment.com" + ], + "parameters": { + "active": { + "name": "active", + "description": "Whether to activate or deactivate it" + }, + "bot": { + "name": "bot", + "description": "The bot" + }, + "username": { + "name": "username", + "description": "Username" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_INVALID", + "description": "This is not a valid bot." + } + ], + "bot_can_use": true + }, + "channels.checkUsername": { + "name": "channels.checkUsername", + "description": [ + "Check if a username is free and can be assigned to a channel/supergroup" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "The channel/supergroup¹ that will assigned the specified username", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "username": { + "name": "username", + "description": "The username to check" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNELS_ADMIN_PUBLIC_TOO_MUCH", + "description": "You're admin of too many public channels, make some channels private to change the username of this channel." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "USERNAME_INVALID", + "description": "The provided username is not valid." + }, + { + "code": 400, + "type": "USERNAME_OCCUPIED", + "description": "The provided username is already occupied." + }, + { + "code": 400, + "type": "USERNAME_PURCHASE_AVAILABLE", + "description": "The specified username can be purchased on https://fragment.com." + } + ] + }, + "channels.clickSponsoredMessage": { + "name": "channels.clickSponsoredMessage", + "description": [ + "Informs the server that the user has either:" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel where the sponsored message was posted" + }, + "random_id": { + "name": "random_id", + "description": "Message ID" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + } + ] + }, + "channels.convertToGigagroup": { + "name": "channels.convertToGigagroup", + "description": [ + "Convert a supergroup¹ to a gigagroup², when requested by channel suggestions³." + ], + "links": [ + "https://core.telegram.org/api/channel", + "https://core.telegram.org/api/channel", + "https://core.telegram.org/api/config#channel-suggestions" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "The supergroup¹ to convert", + "links": [ + "https://core.telegram.org/api/channel" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_ID_INVALID", + "description": "The specified supergroup ID is invalid." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "FORUM_ENABLED", + "description": "You can't execute the specified action because the group is a forum, disable forum functionality to continue." + }, + { + "code": 400, + "type": "PARTICIPANTS_TOO_FEW", + "description": "Not enough participants." + } + ] + }, + "channels.createChannel": { + "name": "channels.createChannel", + "description": [ + "Create a supergroup/channel¹." + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "about": { + "name": "about", + "description": "Channel description" + }, + "address": { + "name": "address", + "description": "Geogroup address, see here »¹ for more info on geogroups.", + "links": [ + "https://core.telegram.org/api/nearby" + ] + }, + "broadcast": { + "name": "broadcast", + "description": "Whether to create a channel¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "for_import": { + "name": "for_import", + "description": "Whether the supergroup is being created to import messages from a foreign chat service using messages.initHistoryImport¹", + "links": [ + "https://core.telegram.org/method/messages.initHistoryImport" + ] + }, + "forum": { + "name": "forum", + "description": "Whether to create a forum¹", + "links": [ + "https://core.telegram.org/api/forum" + ] + }, + "geo_point": { + "name": "geo_point", + "description": "Geogroup location, see here »¹ for more info on geogroups.", + "links": [ + "https://core.telegram.org/api/nearby" + ] + }, + "megagroup": { + "name": "megagroup", + "description": "Whether to create a supergroup¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "title": { + "name": "title", + "description": "Channel title" + }, + "ttl_period": { + "name": "ttl_period", + "description": "Time-to-live of all messages that will be sent in the supergroup: once message.date+message.ttl_period === time(), the message will be deleted on the server, and must be deleted locally as well. You can use messages.setDefaultHistoryTTL¹ to edit this value later.", + "links": [ + "https://core.telegram.org/method/messages.setDefaultHistoryTTL" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "ADDRESS_INVALID", + "description": "The specified geopoint address is invalid." + }, + { + "code": 400, + "type": "CHANNELS_ADMIN_LOCATED_TOO_MUCH", + "description": "The user has reached the limit of public geogroups." + }, + { + "code": 400, + "type": "CHANNELS_TOO_MUCH", + "description": "You have joined too many channels/supergroups." + }, + { + "code": 400, + "type": "CHAT_ABOUT_TOO_LONG", + "description": "Chat about too long." + }, + { + "code": 500, + "type": "CHAT_INVALID", + "description": "Invalid chat." + }, + { + "code": 400, + "type": "CHAT_TITLE_EMPTY", + "description": "No chat title provided." + }, + { + "code": 400, + "type": "TTL_PERIOD_INVALID", + "description": "The specified TTL period is invalid." + }, + { + "code": 406, + "type": "USER_RESTRICTED", + "description": "You're spamreported, you can't create channels or chats." + } + ] + }, + "channels.createForumTopic": { + "name": "channels.createForumTopic", + "description": [ + "Create a forum topic¹; requires manage_topics rights²." + ], + "links": [ + "https://core.telegram.org/api/forum", + "https://core.telegram.org/api/rights" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "The forum¹", + "links": [ + "https://core.telegram.org/api/forum" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "icon_color": { + "name": "icon_color", + "description": "If no custom emoji icon is specified, specifies the color of the fallback topic icon (RGB), one of 0x6FB9F0, 0xFFD67E, 0xCB86DB, 0x8EEE98, 0xFF93B2, or 0xFB6F5F." + }, + "icon_emoji_id": { + "name": "icon_emoji_id", + "description": "ID of the custom emoji¹ used as topic icon. Telegram Premium² users can use any custom emoji, other users can only use the custom emojis contained in the inputStickerSetEmojiDefaultTopicIcons³ emoji pack.", + "links": [ + "https://core.telegram.org/api/custom-emoji", + "https://core.telegram.org/api/premium", + "https://core.telegram.org/constructor/inputStickerSetEmojiDefaultTopicIcons" + ] + }, + "random_id": { + "name": "random_id", + "description": "Unique client message ID to prevent duplicate sending of the same event" + }, + "send_as": { + "name": "send_as", + "description": "Create the topic as the specified peer" + }, + "title": { + "name": "title", + "description": "Topic title (maximum UTF-8 length: 128)" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_FORUM_MISSING", + "description": "This supergroup is not a forum." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 403, + "type": "PREMIUM_ACCOUNT_REQUIRED", + "description": "A premium account is required to execute this action." + }, + { + "code": 400, + "type": "TOPIC_TITLE_EMPTY", + "description": "The specified topic title is empty." + } + ], + "bot_can_use": true + }, + "channels.deactivateAllUsernames": { + "name": "channels.deactivateAllUsernames", + "description": [ + "Disable all purchased usernames of a supergroup or channel" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Supergroup or channel" + } + }, + "bot_can_use": true + }, + "channels.deleteChannel": { + "name": "channels.deleteChannel", + "description": [ + "Delete a channel/supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel/supergroup¹ to delete", + "links": [ + "https://core.telegram.org/api/channel" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 406, + "type": "CHANNEL_TOO_LARGE", + "description": "Channel is too large to be deleted; this error is issued when trying to delete channels with more than 1000 members (subject to change)." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + } + ] + }, + "channels.deleteHistory": { + "name": "channels.deleteHistory", + "description": [ + "Delete the history of a supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Supergroup¹ whose history must be deleted", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "for_everyone": { + "name": "for_everyone", + "description": "Whether the history should be deleted for everyone" + }, + "max_id": { + "name": "max_id", + "description": "ID of message up to which the history must be deleted" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PARICIPANT_MISSING", + "description": "The current user is not in the channel." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHANNEL_TOO_BIG", + "description": "This channel has too many participants (\u003e1000) to be deleted." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + } + ] + }, + "channels.deleteMessages": { + "name": "channels.deleteMessages", + "description": [ + "Delete messages in a channel/supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel/supergroup¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "id": { + "name": "id", + "description": "IDs of messages to delete" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "MESSAGE_DELETE_FORBIDDEN", + "description": "You can't delete one of the messages you tried to delete, most likely because it is a service message." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + } + ], + "bot_can_use": true + }, + "channels.deleteParticipantHistory": { + "name": "channels.deleteParticipantHistory", + "description": [ + "Delete all messages sent by a specific participant of a given supergroup" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Supergroup" + }, + "participant": { + "name": "participant", + "description": "The participant whose messages should be deleted" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PARTICIPANT_ID_INVALID", + "description": "The specified participant ID is invalid." + } + ] + }, + "channels.deleteTopicHistory": { + "name": "channels.deleteTopicHistory", + "description": [ + "Delete message history of a forum topic¹" + ], + "links": [ + "https://core.telegram.org/api/forum" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Forum" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "Topic ID" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "TOPIC_ID_INVALID", + "description": "The specified topic ID is invalid." + } + ], + "bot_can_use": true + }, + "channels.editAdmin": { + "name": "channels.editAdmin", + "description": [ + "Modify the admin rights of a user in a supergroup/channel¹." + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "admin_rights": { + "name": "admin_rights", + "description": "The admin rights" + }, + "channel": { + "name": "channel", + "description": "The supergroup/channel¹.", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "rank": { + "name": "rank", + "description": "Indicates the role (rank) of the admin in the group: just an arbitrary string" + }, + "user_id": { + "name": "user_id", + "description": "The ID of the user whose admin rights should be modified" + } + }, + "errors": [ + { + "code": 400, + "type": "ADMINS_TOO_MUCH", + "description": "There are too many admins." + }, + { + "code": 400, + "type": "ADMIN_RANK_EMOJI_NOT_ALLOWED", + "description": "An admin rank cannot contain emojis." + }, + { + "code": 400, + "type": "ADMIN_RANK_INVALID", + "description": "The specified admin rank is invalid." + }, + { + "code": 400, + "type": "BOTS_TOO_MUCH", + "description": "There are too many bots in this chat/channel." + }, + { + "code": 400, + "type": "BOT_CHANNELS_NA", + "description": "Bots can't edit admin privileges." + }, + { + "code": 400, + "type": "BOT_GROUPS_BLOCKED", + "description": "This bot can't be added to groups." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_INVITE_REQUIRED", + "description": "You do not have the rights to do this." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 406, + "type": "FRESH_CHANGE_ADMINS_FORBIDDEN", + "description": "You were just elected admin, you can't add or modify other admins yet." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 403, + "type": "RIGHT_FORBIDDEN", + "description": "Your admin rights do not allow you to do this." + }, + { + "code": 400, + "type": "USERS_TOO_MUCH", + "description": "The maximum number of users has been exceeded (to create a chat, for example)." + }, + { + "code": 400, + "type": "USER_BLOCKED", + "description": "User blocked." + }, + { + "code": 403, + "type": "USER_CHANNELS_TOO_MUCH", + "description": "One of the users you tried to add is already in too many channels/supergroups." + }, + { + "code": 400, + "type": "USER_CREATOR", + "description": "You can't leave this channel, because you're its creator." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + }, + { + "code": 403, + "type": "USER_NOT_MUTUAL_CONTACT", + "description": "The provided user is not a mutual contact." + }, + { + "code": 403, + "type": "USER_PRIVACY_RESTRICTED", + "description": "The user's privacy settings do not allow you to do this." + }, + { + "code": 403, + "type": "USER_RESTRICTED", + "description": "You're spamreported, you can't create channels or chats." + } + ], + "bot_can_use": true + }, + "channels.editBanned": { + "name": "channels.editBanned", + "description": [ + "Ban/unban/kick a user in a supergroup/channel¹." + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "banned_rights": { + "name": "banned_rights", + "description": "The banned rights" + }, + "channel": { + "name": "channel", + "description": "The supergroup/channel¹.", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "participant": { + "name": "participant", + "description": "Participant to ban" + } + }, + "errors": [ + { + "code": 406, + "type": "BANNED_RIGHTS_INVALID", + "description": "You provided some invalid flags in the banned rights." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PARTICIPANT_ID_INVALID", + "description": "The specified participant ID is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USER_ADMIN_INVALID", + "description": "You're not an admin." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ], + "bot_can_use": true + }, + "channels.editCreator": { + "name": "channels.editCreator", + "description": [ + "Transfer channel ownership" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel" + }, + "password": { + "name": "password", + "description": "2FA password¹ of account", + "links": [ + "https://core.telegram.org/api/srp" + ] + }, + "user_id": { + "name": "user_id", + "description": "New channel owner" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNELS_ADMIN_PUBLIC_TOO_MUCH", + "description": "You're admin of too many public channels, make some channels private to change the username of this channel." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "PASSWORD_HASH_INVALID", + "description": "The provided password hash is invalid." + }, + { + "code": 400, + "type": "PASSWORD_MISSING", + "description": "You must enable 2FA in order to transfer ownership of a channel." + }, + { + "code": 400, + "type": "PASSWORD_TOO_FRESH_%d", + "description": "The password was modified less than 24 hours ago, try again in %d seconds." + }, + { + "code": 400, + "type": "SESSION_TOO_FRESH_%d", + "description": "This session was created less than 24 hours ago, try again in %d seconds." + }, + { + "code": 400, + "type": "SRP_ID_INVALID", + "description": "Invalid SRP ID provided." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ] + }, + "channels.editForumTopic": { + "name": "channels.editForumTopic", + "description": [ + "Edit forum topic¹; requires manage_topics rights²." + ], + "links": [ + "https://core.telegram.org/api/forum", + "https://core.telegram.org/api/rights" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Supergroup" + }, + "closed": { + "name": "closed", + "description": "If present, will update the open/closed status of the topic." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hidden": { + "name": "hidden", + "description": "If present, will hide/unhide the topic (only valid for the \"General\" topic, id=1)." + }, + "icon_emoji_id": { + "name": "icon_emoji_id", + "description": "If present, updates the custom emoji¹ used as topic icon. Telegram Premium² users can use any custom emoji, other users can only use the custom emojis contained in the inputStickerSetEmojiDefaultTopicIcons³ emoji pack. Pass 0 to switch to the fallback topic icon.", + "links": [ + "https://core.telegram.org/api/custom-emoji", + "https://core.telegram.org/api/premium", + "https://core.telegram.org/constructor/inputStickerSetEmojiDefaultTopicIcons" + ] + }, + "title": { + "name": "title", + "description": "If present, will update the topic title (maximum UTF-8 length: 128)." + }, + "topic_id": { + "name": "topic_id", + "description": "Topic ID" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_FORUM_MISSING", + "description": "This supergroup is not a forum." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "DOCUMENT_INVALID", + "description": "The specified document is invalid." + }, + { + "code": 400, + "type": "GENERAL_MODIFY_ICON_FORBIDDEN", + "description": "You can't modify the icon of the \"General\" topic." + }, + { + "code": 400, + "type": "TOPIC_CLOSE_SEPARATELY", + "description": "The close flag cannot be provided together with any of the other flags." + }, + { + "code": 400, + "type": "TOPIC_HIDE_SEPARATELY", + "description": "The hide flag cannot be provided together with any of the other flags." + }, + { + "code": 400, + "type": "TOPIC_ID_INVALID", + "description": "The specified topic ID is invalid." + }, + { + "code": 400, + "type": "TOPIC_NOT_MODIFIED", + "description": "The updated topic info is equal to the current topic info, nothing was changed." + } + ], + "bot_can_use": true + }, + "channels.editLocation": { + "name": "channels.editLocation", + "description": [ + "Edit location of geogroup, see here »¹ for more info on geogroups." + ], + "links": [ + "https://core.telegram.org/api/nearby" + ], + "parameters": { + "address": { + "name": "address", + "description": "Address string" + }, + "channel": { + "name": "channel", + "description": "Geogroup¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "geo_point": { + "name": "geo_point", + "description": "New geolocation" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 400, + "type": "MEGAGROUP_GEO_REQUIRED", + "description": "This method can only be invoked on a geogroup." + }, + { + "code": 400, + "type": "MEGAGROUP_REQUIRED", + "description": "You can only use this method on a supergroup." + } + ] + }, + "channels.editPhoto": { + "name": "channels.editPhoto", + "description": [ + "Change the photo of a channel/supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel/supergroup whose photo should be edited" + }, + "photo": { + "name": "photo", + "description": "New photo" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "FILE_PARTS_INVALID", + "description": "The number of file parts is invalid." + }, + { + "code": 400, + "type": "FILE_REFERENCE_INVALID", + "description": "The specified file reference is invalid." + }, + { + "code": 400, + "type": "PHOTO_CROP_SIZE_SMALL", + "description": "Photo is too small." + }, + { + "code": 400, + "type": "PHOTO_EXT_INVALID", + "description": "The extension of the photo is invalid." + }, + { + "code": 400, + "type": "PHOTO_INVALID", + "description": "Photo invalid." + }, + { + "code": 400, + "type": "STICKER_MIME_INVALID", + "description": "The specified sticker MIME type is invalid." + } + ], + "bot_can_use": true + }, + "channels.editTitle": { + "name": "channels.editTitle", + "description": [ + "Edit the name of a channel/supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel/supergroup" + }, + "title": { + "name": "title", + "description": "New name" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 400, + "type": "CHAT_TITLE_EMPTY", + "description": "No chat title provided." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + } + ], + "bot_can_use": true + }, + "channels.exportMessageLink": { + "name": "channels.exportMessageLink", + "description": [ + "Get link and embed info of a message in a channel/supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "grouped": { + "name": "grouped", + "description": "Whether to include other grouped media (for albums)" + }, + "id": { + "name": "id", + "description": "Message ID" + }, + "thread": { + "name": "thread", + "description": "Whether to also include a thread ID, if available, inside of the link" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + } + ] + }, + "channels.getAdminLog": { + "name": "channels.getAdminLog", + "description": [ + "Get the admin log of a channel/supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "admins": { + "name": "admins", + "description": "Only show events from these admins" + }, + "channel": { + "name": "channel", + "description": "Channel" + }, + "events_filter": { + "name": "events_filter", + "description": "Event filter" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "max_id": { + "name": "max_id", + "description": "Maximum ID of message to return (see pagination¹)", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "min_id": { + "name": "min_id", + "description": "Minimum ID of message to return (see pagination¹)", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "q": { + "name": "q", + "description": "Search query, can be empty" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + } + ] + }, + "channels.getAdminedPublicChannels": { + "name": "channels.getAdminedPublicChannels", + "description": [ + "Get channels/supergroups/geogroups¹ we're admin in. Usually called when the user exceeds the limit² for owned public channels/supergroups/geogroups³, and the user is given the choice to remove one of his channels/supergroups/geogroups." + ], + "links": [ + "https://core.telegram.org/api/channel", + "https://core.telegram.org/constructor/config", + "https://core.telegram.org/api/channel" + ], + "parameters": { + "by_location": { + "name": "by_location", + "description": "Get geogroups" + }, + "check_limit": { + "name": "check_limit", + "description": "If set and the user has reached the limit of owned public channels/supergroups/geogroups¹, instead of returning the channel list one of the specified errors² will be returned.Useful to check if a new public channel can indeed be created, even before asking the user to enter a channel username to use in channels.checkUsername³/channels.updateUsername⁴.", + "links": [ + "https://core.telegram.org/api/channel", + "https://core.telegram.org#possible-errors", + "https://core.telegram.org/method/channels.checkUsername", + "https://core.telegram.org/method/channels.updateUsername" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNELS_ADMIN_LOCATED_TOO_MUCH", + "description": "The user has reached the limit of public geogroups." + }, + { + "code": 400, + "type": "CHANNELS_ADMIN_PUBLIC_TOO_MUCH", + "description": "You're admin of too many public channels, make some channels private to change the username of this channel." + } + ] + }, + "channels.getChannelRecommendations": { + "name": "channels.getChannelRecommendations", + "description": [ + "Obtain a list of similarly themed public channels, selected based on similarities in their subscriber bases." + ], + "parameters": { + "channel": { + "name": "channel", + "description": "The method will return channels related to the passed channel." + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + } + ] + }, + "channels.getChannels": { + "name": "channels.getChannels", + "description": [ + "Get info about channels/supergroups¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "id": { + "name": "id", + "description": "IDs of channels/supergroups to get info about" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + } + ], + "bot_can_use": true + }, + "channels.getForumTopics": { + "name": "channels.getForumTopics", + "description": [ + "Get topics of a forum¹" + ], + "links": [ + "https://core.telegram.org/api/forum" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Supergroup" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹. For optimal performance, the number of returned topics is chosen by the server and can be smaller than the specified limit.", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_date": { + "name": "offset_date", + "description": "Offsets for pagination, for more info click here¹, date of the last message of the last found topic. Use 0 or any date in the future to get results from the last topic.", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹, ID of the last message of the last found topic (or initially 0).", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_topic": { + "name": "offset_topic", + "description": "Offsets for pagination, for more info click here¹, ID of the last found topic (or initially 0).", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "q": { + "name": "q", + "description": "Search query" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_FORUM_MISSING", + "description": "This supergroup is not a forum." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + } + ] + }, + "channels.getForumTopicsByID": { + "name": "channels.getForumTopicsByID", + "description": [ + "Get forum topics by their ID" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Forum" + }, + "topics": { + "name": "topics", + "description": "Topic IDs" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_FORUM_MISSING", + "description": "This supergroup is not a forum." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "TOPICS_EMPTY", + "description": "You specified no topic IDs." + } + ], + "bot_can_use": true + }, + "channels.getFullChannel": { + "name": "channels.getFullChannel", + "description": [ + "Get full info about a supergroup¹, gigagroup² or channel³" + ], + "links": [ + "https://core.telegram.org/api/channel#supergroups", + "https://core.telegram.org/api/channel#gigagroups", + "https://core.telegram.org/api/channel#channels" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "The channel¹, supergroup² or gigagroup³ to get info about", + "links": [ + "https://core.telegram.org/api/channel#channels", + "https://core.telegram.org/api/channel#supergroups", + "https://core.telegram.org/api/channel#gigagroups" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHANNEL_PUBLIC_GROUP_NA", + "description": "channel/supergroup not available." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + } + ], + "bot_can_use": true + }, + "channels.getGroupsForDiscussion": { + "name": "channels.getGroupsForDiscussion", + "description": [ + "Get all groups that can be used as discussion groups¹.", + "Returned basic group chats¹ must be first upgraded to supergroups² before they can be set as a discussion group.", + "To set a returned supergroup as a discussion group, access to its old messages must be enabled using channels.togglePreHistoryHidden³, first." + ], + "links": [ + "https://core.telegram.org/api/discussion", + "https://core.telegram.org/api/channel#basic-groups", + "https://core.telegram.org/api/channel#supergroups", + "https://core.telegram.org/method/channels.togglePreHistoryHidden" + ] + }, + "channels.getInactiveChannels": { + "name": "channels.getInactiveChannels", + "description": [ + "Get inactive channels and supergroups" + ] + }, + "channels.getLeftChannels": { + "name": "channels.getLeftChannels", + "description": [ + "Get a list of channels/supergroups¹ we left, requires a takeout session, see here » for more info²." + ], + "links": [ + "https://core.telegram.org/api/channel", + "https://core.telegram.org/api/takeout" + ], + "parameters": { + "offset": { + "name": "offset", + "description": "Offset for pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + } + }, + "errors": [ + { + "code": 403, + "type": "TAKEOUT_REQUIRED", + "description": "A takeout session needs to be initialized first, see here » for more info." + } + ] + }, + "channels.getMessages": { + "name": "channels.getMessages", + "description": [ + "Get channel/supergroup¹ messages" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel/supergroup" + }, + "id": { + "name": "id", + "description": "IDs of messages to get" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MESSAGE_IDS_EMPTY", + "description": "No message ids were provided." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + } + ], + "bot_can_use": true + }, + "channels.getParticipant": { + "name": "channels.getParticipant", + "description": [ + "Get info about a channel/supergroup¹ participant" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel/supergroup" + }, + "participant": { + "name": "participant", + "description": "Participant to get info about" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PARTICIPANT_ID_INVALID", + "description": "The specified participant ID is invalid." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + }, + { + "code": 400, + "type": "USER_NOT_PARTICIPANT", + "description": "You're not a member of this supergroup/channel." + } + ], + "bot_can_use": true + }, + "channels.getParticipants": { + "name": "channels.getParticipants", + "description": [ + "Get the participants of a supergroup/channel¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel" + }, + "filter": { + "name": "filter", + "description": "Which participant types to fetch" + }, + "hash": { + "name": "hash", + "description": "Hash¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "limit": { + "name": "limit", + "description": "Limit¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset": { + "name": "offset", + "description": "Offset¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + } + ], + "bot_can_use": true + }, + "channels.getSendAs": { + "name": "channels.getSendAs", + "description": [ + "Obtains a list of peers that can be used to send messages in a specific group" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "The group where we intend to send messages" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "channels.getSponsoredMessages": { + "name": "channels.getSponsoredMessages", + "description": [ + "Get a list of sponsored messages" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Peer" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + } + ] + }, + "channels.inviteToChannel": { + "name": "channels.inviteToChannel", + "description": [ + "Invite users to a channel/supergroup", + "May also return 0-N updates of type updateGroupInvitePrivacyForbidden¹: it indicates we couldn't add a user to a chat because of their privacy settings; if required, an invite link² can be shared with the user, instead." + ], + "links": [ + "https://core.telegram.org/constructor/updateGroupInvitePrivacyForbidden", + "https://core.telegram.org/api/invites" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel/supergroup" + }, + "users": { + "name": "users", + "description": "Users to invite" + } + }, + "errors": [ + { + "code": 400, + "type": "BOTS_TOO_MUCH", + "description": "There are too many bots in this chat/channel." + }, + { + "code": 400, + "type": "BOT_GROUPS_BLOCKED", + "description": "This bot can't be added to groups." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_INVALID", + "description": "Invalid chat." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "USERS_TOO_MUCH", + "description": "The maximum number of users has been exceeded (to create a chat, for example)." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + }, + { + "code": 400, + "type": "USER_BLOCKED", + "description": "User blocked." + }, + { + "code": 400, + "type": "USER_BOT", + "description": "Bots can only be admins in channels." + }, + { + "code": 403, + "type": "USER_CHANNELS_TOO_MUCH", + "description": "One of the users you tried to add is already in too many channels/supergroups." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + }, + { + "code": 400, + "type": "USER_KICKED", + "description": "This user was kicked from this supergroup/channel." + }, + { + "code": 403, + "type": "USER_NOT_MUTUAL_CONTACT", + "description": "The provided user is not a mutual contact." + }, + { + "code": 403, + "type": "USER_PRIVACY_RESTRICTED", + "description": "The user's privacy settings do not allow you to do this." + } + ] + }, + "channels.joinChannel": { + "name": "channels.joinChannel", + "description": [ + "Join a channel/supergroup" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel/supergroup to join" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNELS_TOO_MUCH", + "description": "You have joined too many channels/supergroups." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_INVALID", + "description": "Invalid chat." + }, + { + "code": 400, + "type": "INVITE_HASH_EMPTY", + "description": "The invite hash is empty." + }, + { + "code": 406, + "type": "INVITE_HASH_EXPIRED", + "description": "The invite link has expired." + }, + { + "code": 400, + "type": "INVITE_HASH_INVALID", + "description": "The invite hash is invalid." + }, + { + "code": 400, + "type": "INVITE_REQUEST_SENT", + "description": "You have successfully requested to join this chat or channel." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USERS_TOO_MUCH", + "description": "The maximum number of users has been exceeded (to create a chat, for example)." + }, + { + "code": 400, + "type": "USER_ALREADY_PARTICIPANT", + "description": "The user is already in the group." + }, + { + "code": 400, + "type": "USER_CHANNELS_TOO_MUCH", + "description": "One of the users you tried to add is already in too many channels/supergroups." + } + ] + }, + "channels.leaveChannel": { + "name": "channels.leaveChannel", + "description": [ + "Leave a channel/supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel/supergroup¹ to leave", + "links": [ + "https://core.telegram.org/api/channel" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHANNEL_PUBLIC_GROUP_NA", + "description": "channel/supergroup not available." + }, + { + "code": 400, + "type": "CHAT_INVALID", + "description": "Invalid chat." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + }, + { + "code": 400, + "type": "USER_CREATOR", + "description": "You can't leave this channel, because you're its creator." + }, + { + "code": 400, + "type": "USER_NOT_PARTICIPANT", + "description": "You're not a member of this supergroup/channel." + } + ], + "bot_can_use": true + }, + "channels.readHistory": { + "name": "channels.readHistory", + "description": [ + "Mark channel/supergroup¹ history as read" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel/supergroup¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "max_id": { + "name": "max_id", + "description": "ID of message up to which messages should be marked as read" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + } + ] + }, + "channels.readMessageContents": { + "name": "channels.readMessageContents", + "description": [ + "Mark channel/supergroup¹ message contents as read" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel/supergroup¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "id": { + "name": "id", + "description": "IDs of messages whose contents should be marked as read" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + } + ] + }, + "channels.reorderPinnedForumTopics": { + "name": "channels.reorderPinnedForumTopics", + "description": [ + "Reorder pinned forum topics" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Supergroup ID" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "force": { + "name": "force", + "description": "If not set, the order of only the topics present both server-side and in order will be changed (i.e. mentioning topics not pinned server-side in order will not pin them, and not mentioning topics pinned server-side will not unpin them). If set, the entire server-side pinned topic list will be replaced with order (i.e. mentioning topics not pinned server-side in order will pin them, and not mentioning topics pinned server-side will unpin them)" + }, + "order": { + "name": "order", + "description": "Topic IDs »¹", + "links": [ + "https://core.telegram.org/api/forum" + ] + } + }, + "bot_can_use": true + }, + "channels.reorderUsernames": { + "name": "channels.reorderUsernames", + "description": [ + "Reorder active usernames" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "The supergroup or channel" + }, + "order": { + "name": "order", + "description": "The new order for active usernames. All active usernames must be specified." + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + } + ], + "bot_can_use": true + }, + "channels.reportAntiSpamFalsePositive": { + "name": "channels.reportAntiSpamFalsePositive", + "description": [ + "Report a native antispam¹ false positive" + ], + "links": [ + "https://core.telegram.org/api/antispam" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Supergroup ID" + }, + "msg_id": { + "name": "msg_id", + "description": "Message ID that was mistakenly deleted by the native antispam¹ system, taken from the admin log²", + "links": [ + "https://core.telegram.org/api/antispam", + "https://core.telegram.org/api/recent-actions" + ] + } + }, + "bot_can_use": true + }, + "channels.reportSpam": { + "name": "channels.reportSpam", + "description": [ + "Reports some messages from a user in a supergroup as spam; requires administrator rights in the supergroup" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Supergroup" + }, + "id": { + "name": "id", + "description": "IDs of spam messages" + }, + "participant": { + "name": "participant", + "description": "Participant whose messages should be reported" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ] + }, + "channels.setDiscussionGroup": { + "name": "channels.setDiscussionGroup", + "description": [ + "Associate a group to a channel as discussion group¹ for that channel" + ], + "links": [ + "https://core.telegram.org/api/discussion" + ], + "parameters": { + "broadcast": { + "name": "broadcast", + "description": "Channel" + }, + "group": { + "name": "group", + "description": "Discussion group¹ to associate to the channel", + "links": [ + "https://core.telegram.org/api/discussion" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "BROADCAST_ID_INVALID", + "description": "Broadcast ID invalid." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "LINK_NOT_MODIFIED", + "description": "Discussion link not modified." + }, + { + "code": 400, + "type": "MEGAGROUP_ID_INVALID", + "description": "Invalid supergroup ID." + }, + { + "code": 400, + "type": "MEGAGROUP_PREHISTORY_HIDDEN", + "description": "Group with hidden history for new members can't be set as discussion groups." + } + ] + }, + "channels.setStickers": { + "name": "channels.setStickers", + "description": [ + "Associate a stickerset to the supergroup" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Supergroup" + }, + "stickerset": { + "name": "stickerset", + "description": "The stickerset to associate" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "PARTICIPANTS_TOO_FEW", + "description": "Not enough participants." + }, + { + "code": 406, + "type": "STICKERSET_OWNER_ANONYMOUS", + "description": "Provided stickerset can't be installed as group stickerset to prevent admin deanonymization." + } + ], + "bot_can_use": true + }, + "channels.toggleAntiSpam": { + "name": "channels.toggleAntiSpam", + "description": [ + "Enable or disable the native antispam system¹." + ], + "links": [ + "https://core.telegram.org/api/antispam" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Supergroup ID. The specified supergroup must have at least telegram_antispam_group_size_min members to enable antispam functionality, as specified by the client configuration parameters¹.", + "links": [ + "https://core.telegram.org/api/config#client-configuration" + ] + }, + "enabled": { + "name": "enabled", + "description": "Enable or disable the native antispam system." + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + } + ], + "bot_can_use": true + }, + "channels.toggleForum": { + "name": "channels.toggleForum", + "description": [ + "Enable or disable forum functionality¹ in a supergroup." + ], + "links": [ + "https://core.telegram.org/api/forum" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Supergroup ID" + }, + "enabled": { + "name": "enabled", + "description": "Enable or disable forum functionality" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_DISCUSSION_UNALLOWED", + "description": "You can't enable forum topics in a discussion group linked to a channel." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + } + ], + "bot_can_use": true + }, + "channels.toggleJoinRequest": { + "name": "channels.toggleJoinRequest", + "description": [ + "Set whether all users should request admin approval to join the group »¹." + ], + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Group" + }, + "enabled": { + "name": "enabled", + "description": "Toggle" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 400, + "type": "CHAT_PUBLIC_REQUIRED", + "description": "You can only enable join requests in public groups." + } + ] + }, + "channels.toggleJoinToSend": { + "name": "channels.toggleJoinToSend", + "description": [ + "Set whether all users should join a discussion group in order to comment on a post »¹" + ], + "links": [ + "https://core.telegram.org/api/discussion#requiring-users-to-join-the-group" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Discussion group" + }, + "enabled": { + "name": "enabled", + "description": "Toggle" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + } + ] + }, + "channels.toggleParticipantsHidden": { + "name": "channels.toggleParticipantsHidden", + "description": [ + "Hide or display the participants list in a supergroup¹.", + "The supergroup must have at least hidden_members_group_size_min participants in order to use this method, as specified by the client configuration parameters »¹." + ], + "links": [ + "https://core.telegram.org/api/channel", + "https://core.telegram.org/api/config#client-configuration" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Supergroup ID" + }, + "enabled": { + "name": "enabled", + "description": "If true, will hide the participants list; otherwise will unhide it." + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 400, + "type": "PARTICIPANTS_TOO_FEW", + "description": "Not enough participants." + } + ], + "bot_can_use": true + }, + "channels.togglePreHistoryHidden": { + "name": "channels.togglePreHistoryHidden", + "description": [ + "Hide/unhide message history for new channel/supergroup users" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel/supergroup" + }, + "enabled": { + "name": "enabled", + "description": "Hide/unhide" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "CHAT_LINK_EXISTS", + "description": "The chat is public, you can't hide the history to new users." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 400, + "type": "FORUM_ENABLED", + "description": "You can't execute the specified action because the group is a forum, disable forum functionality to continue." + } + ] + }, + "channels.toggleSignatures": { + "name": "channels.toggleSignatures", + "description": [ + "Enable/disable message signatures in channels" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel" + }, + "enabled": { + "name": "enabled", + "description": "Value" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + } + ] + }, + "channels.toggleSlowMode": { + "name": "channels.toggleSlowMode", + "description": [ + "Toggle supergroup slow mode: if enabled, users will only be able to send one message every seconds seconds" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "The supergroup¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "seconds": { + "name": "seconds", + "description": "Users will only be able to send one message every seconds seconds, 0 to disable the limitation" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 400, + "type": "SECONDS_INVALID", + "description": "Invalid duration provided." + } + ] + }, + "channels.toggleUsername": { + "name": "channels.toggleUsername", + "description": [ + "Activate or deactivate a purchased fragment.com¹ username associated to a supergroup or channel² we own." + ], + "links": [ + "https://fragment.com", + "https://core.telegram.org/api/channel" + ], + "parameters": { + "active": { + "name": "active", + "description": "Whether to activate or deactivate the username" + }, + "channel": { + "name": "channel", + "description": "Supergroup or channel¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "username": { + "name": "username", + "description": "Username" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "USERNAMES_ACTIVE_TOO_MUCH", + "description": "The maximum number of active usernames was reached." + }, + { + "code": 400, + "type": "USERNAME_INVALID", + "description": "The provided username is not valid." + } + ], + "bot_can_use": true + }, + "channels.toggleViewForumAsMessages": { + "name": "channels.toggleViewForumAsMessages", + "description": [ + "Users may also choose to display messages from all topics of a forum¹ as if they were sent to a normal group, using a \"View as messages\" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method.", + "Invoking this method will update the value of the view_forum_as_messages flag of channelFull¹ or dialog² and emit an updateChannelViewForumAsMessages³." + ], + "links": [ + "https://core.telegram.org/api/forum", + "https://core.telegram.org/constructor/channelFull", + "https://core.telegram.org/constructor/dialog", + "https://core.telegram.org/constructor/updateChannelViewForumAsMessages" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "The forum" + }, + "enabled": { + "name": "enabled", + "description": "The new value of the view_forum_as_messages flag." + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + } + ] + }, + "channels.updateColor": { + "name": "channels.updateColor", + "description": [ + "Update the accent color and background custom emoji »¹ of a channel." + ], + "links": [ + "https://core.telegram.org/api/colors" + ], + "parameters": { + "background_emoji_id": { + "name": "background_emoji_id", + "description": "Custom emoji ID used in the accent color pattern." + }, + "channel": { + "name": "channel", + "description": "Channel whose accent color should be changed." + }, + "color": { + "name": "color", + "description": "ID of the accent color palette »¹ to use (not RGB24, see here »² for more info); if not set, the default palette is used.", + "links": [ + "https://core.telegram.org/api/colors", + "https://core.telegram.org/api/colors" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "for_profile": { + "name": "for_profile", + "description": "Whether to change the accent color emoji pattern of the profile page; otherwise, the accent color and emoji pattern of messages will be changed." + } + }, + "errors": [ + { + "code": 400, + "type": "BOOSTS_REQUIRED", + "description": "The specified channel must first be boosted by its users in order to perform this action." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + } + ] + }, + "channels.updateEmojiStatus": { + "name": "channels.updateEmojiStatus", + "description": [ + "Set an emoji status¹ for a channel." + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "The channel, must have at least channel_emoji_status_level_min boosts¹.", + "links": [ + "https://core.telegram.org/api/config#channel-emoji-status-level-min" + ] + }, + "emoji_status": { + "name": "emoji_status", + "description": "Emoji status¹ to set", + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + } + }, + "bot_can_use": true + }, + "channels.updatePinnedForumTopic": { + "name": "channels.updatePinnedForumTopic", + "description": [ + "Pin or unpin forum topics¹" + ], + "links": [ + "https://core.telegram.org/api/forum" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Supergroup ID" + }, + "pinned": { + "name": "pinned", + "description": "Whether to pin or unpin the topic" + }, + "topic_id": { + "name": "topic_id", + "description": "Forum topic ID¹", + "links": [ + "https://core.telegram.org/api/forum" + ] + } + }, + "bot_can_use": true + }, + "channels.updateUsername": { + "name": "channels.updateUsername", + "description": [ + "Change or remove the username of a supergroup/channel" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel" + }, + "username": { + "name": "username", + "description": "New username, pass an empty string to remove the username" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNELS_ADMIN_PUBLIC_TOO_MUCH", + "description": "You're admin of too many public channels, make some channels private to change the username of this channel." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "USERNAME_INVALID", + "description": "The provided username is not valid." + }, + { + "code": 400, + "type": "USERNAME_NOT_MODIFIED", + "description": "The username was not modified." + }, + { + "code": 400, + "type": "USERNAME_OCCUPIED", + "description": "The provided username is already occupied." + }, + { + "code": 400, + "type": "USERNAME_PURCHASE_AVAILABLE", + "description": "The specified username can be purchased on https://fragment.com." + } + ] + }, + "channels.viewSponsoredMessage": { + "name": "channels.viewSponsoredMessage", + "description": [ + "Mark a specific sponsored message as read" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Peer" + }, + "random_id": { + "name": "random_id", + "description": "Message ID" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + } + ] + }, + "chatlists.checkChatlistInvite": { + "name": "chatlists.checkChatlistInvite", + "description": [ + "Obtain information about a chat folder deep link »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "parameters": { + "slug": { + "name": "slug", + "description": "slug obtained from the chat folder deep link »¹", + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "INVITE_SLUG_EMPTY", + "description": "The specified invite slug is empty." + }, + { + "code": 400, + "type": "INVITE_SLUG_EXPIRED", + "description": "The specified chat folder link has expired." + } + ], + "bot_can_use": true + }, + "chatlists.deleteExportedInvite": { + "name": "chatlists.deleteExportedInvite", + "description": [ + "Delete a previously created chat folder deep link »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "parameters": { + "chatlist": { + "name": "chatlist", + "description": "The related folder" + }, + "slug": { + "name": "slug", + "description": "slug obtained from the chat folder deep link »¹.", + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "FILTER_ID_INVALID", + "description": "The specified filter ID is invalid." + } + ], + "bot_can_use": true + }, + "chatlists.editExportedInvite": { + "name": "chatlists.editExportedInvite", + "description": [ + "Edit a chat folder deep link »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "parameters": { + "chatlist": { + "name": "chatlist", + "description": "Folder ID" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peers": { + "name": "peers", + "description": "If set, changes the list of peers shared with the link" + }, + "slug": { + "name": "slug", + "description": "slug obtained from the chat folder deep link »¹.", + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + }, + "title": { + "name": "title", + "description": "If set, sets a new name for the link" + } + }, + "errors": [ + { + "code": 400, + "type": "FILTER_ID_INVALID", + "description": "The specified filter ID is invalid." + } + ], + "bot_can_use": true + }, + "chatlists.exportChatlistInvite": { + "name": "chatlists.exportChatlistInvite", + "description": [ + "Export a folder »¹, creating a chat folder deep link »²." + ], + "links": [ + "https://core.telegram.org/api/folders", + "https://core.telegram.org/api/links#chat-folder-links" + ], + "parameters": { + "chatlist": { + "name": "chatlist", + "description": "The folder to export" + }, + "peers": { + "name": "peers", + "description": "The list of channels, group and supergroups to share with the link. Basic groups will automatically be converted to supergroups¹ when invoking the method.", + "links": [ + "https://core.telegram.org/api/channel#migration" + ] + }, + "title": { + "name": "title", + "description": "An optional name for the link" + } + }, + "errors": [ + { + "code": 400, + "type": "FILTER_ID_INVALID", + "description": "The specified filter ID is invalid." + }, + { + "code": 400, + "type": "FILTER_NOT_SUPPORTED", + "description": "The specified filter cannot be used in this context." + }, + { + "code": 400, + "type": "INVITES_TOO_MUCH", + "description": "The maximum number of per-folder invites specified by the chatlist_invites_limit_default/chatlist_invites_limit_premium client configuration parameters » was reached." + }, + { + "code": 400, + "type": "PEERS_LIST_EMPTY", + "description": "The specified list of peers is empty." + } + ] + }, + "chatlists.getChatlistUpdates": { + "name": "chatlists.getChatlistUpdates", + "description": [ + "Fetch new chats associated with an imported chat folder deep link »¹. Must be invoked at most every chatlist_update_period seconds (as per the related client configuration parameter »²)." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links", + "https://core.telegram.org/api/config#chatlist-update-period" + ], + "parameters": { + "chatlist": { + "name": "chatlist", + "description": "The folder" + } + }, + "errors": [ + { + "code": 400, + "type": "FILTER_ID_INVALID", + "description": "The specified filter ID is invalid." + }, + { + "code": 400, + "type": "INPUT_CHATLIST_INVALID", + "description": "The specified folder is invalid." + } + ], + "bot_can_use": true + }, + "chatlists.getExportedInvites": { + "name": "chatlists.getExportedInvites", + "description": [ + "List all chat folder deep links »¹ associated to a folder" + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "parameters": { + "chatlist": { + "name": "chatlist", + "description": "The folder" + } + }, + "bot_can_use": true + }, + "chatlists.getLeaveChatlistSuggestions": { + "name": "chatlists.getLeaveChatlistSuggestions", + "description": [ + "Returns identifiers of pinned or always included chats from a chat folder imported using a chat folder deep link »¹, which are suggested to be left when the chat folder is deleted." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "parameters": { + "chatlist": { + "name": "chatlist", + "description": "Folder ID" + } + }, + "bot_can_use": true + }, + "chatlists.hideChatlistUpdates": { + "name": "chatlists.hideChatlistUpdates", + "description": [ + "Dismiss new pending peers recently added to a chat folder deep link »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "parameters": { + "chatlist": { + "name": "chatlist", + "description": "The folder" + } + }, + "bot_can_use": true + }, + "chatlists.joinChatlistInvite": { + "name": "chatlists.joinChatlistInvite", + "description": [ + "Import a chat folder deep link »¹, joining some or all the chats in the folder." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "parameters": { + "peers": { + "name": "peers", + "description": "List of new chats to join, fetched using chatlists.checkChatlistInvite¹ and filtered as specified in the documentation »².", + "links": [ + "https://core.telegram.org/method/chatlists.checkChatlistInvite", + "https://core.telegram.org/api/folders#shared-folders" + ] + }, + "slug": { + "name": "slug", + "description": "slug obtained from a chat folder deep link »¹.", + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "FILTER_INCLUDE_EMPTY", + "description": "The include_peers vector of the filter is empty." + }, + { + "code": 400, + "type": "INVITE_SLUG_EMPTY", + "description": "The specified invite slug is empty." + }, + { + "code": 400, + "type": "INVITE_SLUG_EXPIRED", + "description": "The specified chat folder link has expired." + } + ], + "bot_can_use": true + }, + "chatlists.joinChatlistUpdates": { + "name": "chatlists.joinChatlistUpdates", + "description": [ + "Join channels and supergroups recently added to a chat folder deep link »¹." + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "parameters": { + "chatlist": { + "name": "chatlist", + "description": "The folder" + }, + "peers": { + "name": "peers", + "description": "List of new chats to join, fetched using chatlists.getChatlistUpdates¹ and filtered as specified in the documentation »².", + "links": [ + "https://core.telegram.org/method/chatlists.getChatlistUpdates", + "https://core.telegram.org/api/folders#shared-folders" + ] + } + }, + "bot_can_use": true + }, + "chatlists.leaveChatlist": { + "name": "chatlists.leaveChatlist", + "description": [ + "Delete a folder imported using a chat folder deep link »¹" + ], + "links": [ + "https://core.telegram.org/api/links#chat-folder-links" + ], + "parameters": { + "chatlist": { + "name": "chatlist", + "description": "Folder ID" + }, + "peers": { + "name": "peers", + "description": "Also leave the specified channels and groups" + } + }, + "bot_can_use": true + }, + "contacts.acceptContact": { + "name": "contacts.acceptContact", + "description": [ + "If the add contact action bar is active¹, add that user as contact" + ], + "links": [ + "https://core.telegram.org/api/action-bar#add-contact" + ], + "parameters": { + "id": { + "name": "id", + "description": "The user to add as contact" + } + }, + "errors": [ + { + "code": 400, + "type": "CONTACT_ADD_MISSING", + "description": "Contact to add is missing." + }, + { + "code": 400, + "type": "CONTACT_ID_INVALID", + "description": "The provided contact ID is invalid." + }, + { + "code": 400, + "type": "CONTACT_REQ_MISSING", + "description": "Missing contact request." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + } + ] + }, + "contacts.addContact": { + "name": "contacts.addContact", + "description": [ + "Add an existing telegram user as contact.", + "Use contacts.importContacts¹ to add contacts by phone number, without knowing their Telegram ID." + ], + "links": [ + "https://core.telegram.org/method/contacts.importContacts" + ], + "parameters": { + "add_phone_privacy_exception": { + "name": "add_phone_privacy_exception", + "description": "Allow the other user to see our phone number?" + }, + "first_name": { + "name": "first_name", + "description": "First name" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Telegram ID of the other user" + }, + "last_name": { + "name": "last_name", + "description": "Last name" + }, + "phone": { + "name": "phone", + "description": "User's phone number, may be omitted to simply add the user to the contact list, without a phone number." + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CONTACT_ID_INVALID", + "description": "The provided contact ID is invalid." + }, + { + "code": 400, + "type": "CONTACT_NAME_EMPTY", + "description": "Contact name empty." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + } + ] + }, + "contacts.block": { + "name": "contacts.block", + "description": [ + "Adds a peer to a blocklist, see here »¹ for more info." + ], + "links": [ + "https://core.telegram.org/api/block" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Peer" + }, + "my_stories_from": { + "name": "my_stories_from", + "description": "Whether the peer should be added to the story blocklist; if not set, the peer will be added to the main blocklist, see here »¹ for more info.", + "links": [ + "https://core.telegram.org/api/block" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CONTACT_ID_INVALID", + "description": "The provided contact ID is invalid." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "contacts.blockFromReplies": { + "name": "contacts.blockFromReplies", + "description": [ + "Stop getting notifications about discussion replies¹ of a certain user in @replies" + ], + "links": [ + "https://core.telegram.org/api/discussion" + ], + "parameters": { + "delete_history": { + "name": "delete_history", + "description": "Whether to delete all @replies messages from this user as well" + }, + "delete_message": { + "name": "delete_message", + "description": "Whether to delete the specified message as well" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "msg_id": { + "name": "msg_id", + "description": "ID of the message in the @replies¹ chat", + "links": [ + "https://core.telegram.org/api/discussion#replies" + ] + }, + "report_spam": { + "name": "report_spam", + "description": "Whether to also report this user for spam" + } + } + }, + "contacts.deleteByPhones": { + "name": "contacts.deleteByPhones", + "description": [ + "Delete contacts by phone number" + ], + "parameters": { + "phones": { + "name": "phones", + "description": "Phone numbers" + } + } + }, + "contacts.deleteContacts": { + "name": "contacts.deleteContacts", + "description": [ + "Deletes several contacts from the list." + ], + "parameters": { + "id": { + "name": "id", + "description": "User ID list" + } + } + }, + "contacts.editCloseFriends": { + "name": "contacts.editCloseFriends", + "description": [ + "Edit the close friends list, see here »¹ for more info." + ], + "links": [ + "https://core.telegram.org/api/privacy" + ], + "parameters": { + "id": { + "name": "id", + "description": "Full list of user IDs of close friends, see here¹ for more info.", + "links": [ + "https://core.telegram.org/api/privacy" + ] + } + } + }, + "contacts.exportContactToken": { + "name": "contacts.exportContactToken", + "description": [ + "Generates a temporary profile link¹ for the currently logged-in user." + ], + "links": [ + "https://core.telegram.org/api/links#temporary-profile-links" + ], + "bot_can_use": true + }, + "contacts.getBlocked": { + "name": "contacts.getBlocked", + "description": [ + "Returns the list of blocked users." + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "limit": { + "name": "limit", + "description": "The number of list elements to be returned" + }, + "my_stories_from": { + "name": "my_stories_from", + "description": "Whether to fetch the story blocklist; if not set, will fetch the main blocklist. See here »¹ for differences between the two.", + "links": [ + "https://core.telegram.org/api/block" + ] + }, + "offset": { + "name": "offset", + "description": "The number of list elements to be skipped" + } + } + }, + "contacts.getContactIDs": { + "name": "contacts.getContactIDs", + "description": [ + "Get the telegram IDs of all contacts.", + "Returns an array of Telegram user IDs for all contacts (0 if a contact does not have an associated Telegram account or have hidden their account using privacy settings)." + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "contacts.getContacts": { + "name": "contacts.getContacts", + "description": [ + "Returns the current user's contact list." + ], + "parameters": { + "hash": { + "name": "hash", + "description": "If there already is a full contact list on the client, a hash¹ of a the list of contact IDs in ascending order may be passed in this parameter. If the contact set was not changed, (contacts.contactsNotModified)² will be returned.", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation", + "https://core.telegram.org/constructor/contacts.contactsNotModified" + ] + } + } + }, + "contacts.getLocated": { + "name": "contacts.getLocated", + "description": [ + "Get users and geochats near you, see here »¹ for more info." + ], + "links": [ + "https://core.telegram.org/api/nearby" + ], + "parameters": { + "background": { + "name": "background", + "description": "While the geolocation of the current user is public, clients should update it in the background every half-an-hour or so, while setting this flag. Do this only if the new location is more than 1 KM away from the previous one, or if the previous location is unknown." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "geo_point": { + "name": "geo_point", + "description": "Geolocation" + }, + "self_expires": { + "name": "self_expires", + "description": "If set, the geolocation of the current user will be public for the specified number of seconds; pass 0x7fffffff to disable expiry, 0 to make the current geolocation private; if the flag isn't set, no changes will be applied." + } + }, + "errors": [ + { + "code": 400, + "type": "GEO_POINT_INVALID", + "description": "Invalid geoposition provided." + }, + { + "code": 406, + "type": "USERPIC_PRIVACY_REQUIRED", + "description": "You need to disable privacy settings for your profile picture in order to make your geolocation public." + }, + { + "code": 406, + "type": "USERPIC_UPLOAD_REQUIRED", + "description": "You must have a profile picture to publish your geolocation." + } + ] + }, + "contacts.getSaved": { + "name": "contacts.getSaved", + "description": [ + "Get all contacts, requires a takeout session, see here » for more info¹." + ], + "links": [ + "https://core.telegram.org/api/takeout" + ], + "parameters": { + "403": { + "name": "403", + "description": "A takeout¹ session needs to be initialized first, see here » for more info².", + "links": [ + "https://core.telegram.org/api/takeout", + "https://core.telegram.org/api/takeout" + ] + } + }, + "errors": [ + { + "code": 403, + "type": "TAKEOUT_REQUIRED", + "description": "A takeout¹ session needs to be initialized first, see here » for more info²." + } + ] + }, + "contacts.getStatuses": { + "name": "contacts.getStatuses", + "description": [ + "Use this method to obtain the online statuses of all contacts with an accessible associated Telegram account." + ] + }, + "contacts.getTopPeers": { + "name": "contacts.getTopPeers", + "description": [ + "Get most used peers" + ], + "parameters": { + "bots_inline": { + "name": "bots_inline", + "description": "Most used inline bots" + }, + "bots_pm": { + "name": "bots_pm", + "description": "Most used bots" + }, + "channels": { + "name": "channels", + "description": "Most frequently visited channels" + }, + "correspondents": { + "name": "correspondents", + "description": "Users we've chatted most frequently with" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "forward_chats": { + "name": "forward_chats", + "description": "Chats to which the users often forwards messages to" + }, + "forward_users": { + "name": "forward_users", + "description": "Users to which the users often forwards messages to" + }, + "groups": { + "name": "groups", + "description": "Often-opened groups and supergroups" + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset": { + "name": "offset", + "description": "Offset for pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "phone_calls": { + "name": "phone_calls", + "description": "Most frequently called users" + } + }, + "errors": [ + { + "code": 400, + "type": "TYPES_EMPTY", + "description": "No top peer type was provided." + } + ] + }, + "contacts.importContactToken": { + "name": "contacts.importContactToken", + "description": [ + "Obtain user info from a temporary profile link¹." + ], + "links": [ + "https://core.telegram.org/api/links#temporary-profile-links" + ], + "parameters": { + "token": { + "name": "token", + "description": "The token extracted from the temporary profile link¹.", + "links": [ + "https://core.telegram.org/api/links#temporary-profile-links" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "IMPORT_TOKEN_INVALID", + "description": "The specified token is invalid." + } + ], + "bot_can_use": true + }, + "contacts.importContacts": { + "name": "contacts.importContacts", + "description": [ + "Imports contacts: saves a full list on the server, adds already registered contacts to the contact list, returns added contacts and their info.", + "Use contacts.addContact¹ to add Telegram contacts without actually using their phone number." + ], + "links": [ + "https://core.telegram.org/method/contacts.addContact" + ], + "parameters": { + "contacts": { + "name": "contacts", + "description": "List of contacts to import" + } + } + }, + "contacts.resetSaved": { + "name": "contacts.resetSaved", + "description": [ + "Removes all contacts without an associated Telegram account." + ] + }, + "contacts.resetTopPeerRating": { + "name": "contacts.resetTopPeerRating", + "description": [ + "Reset rating¹ of top peer" + ], + "links": [ + "https://core.telegram.org/api/top-rating" + ], + "parameters": { + "category": { + "name": "category", + "description": "Top peer category" + }, + "peer": { + "name": "peer", + "description": "Peer whose rating should be reset" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "contacts.resolvePhone": { + "name": "contacts.resolvePhone", + "description": [ + "Resolve a phone number to get user info, if their privacy settings allow it." + ], + "parameters": { + "phone": { + "name": "phone", + "description": "Phone number in international format, possibly obtained from a phone number deep link¹.", + "links": [ + "https://core.telegram.org/api/links#phone-number-links" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "PHONE_NOT_OCCUPIED", + "description": "No user is associated to the specified phone number." + } + ] + }, + "contacts.resolveUsername": { + "name": "contacts.resolveUsername", + "description": [ + "Resolve a @username to get peer info" + ], + "parameters": { + "username": { + "name": "username", + "description": "@username to resolve" + } + }, + "errors": [ + { + "code": 400, + "type": "CONNECTION_LAYER_INVALID", + "description": "Layer invalid." + }, + { + "code": 400, + "type": "USERNAME_INVALID", + "description": "The provided username is not valid." + }, + { + "code": 400, + "type": "USERNAME_NOT_OCCUPIED", + "description": "The provided username is not occupied." + } + ], + "bot_can_use": true + }, + "contacts.search": { + "name": "contacts.search", + "description": [ + "Returns users found by username substring." + ], + "parameters": { + "limit": { + "name": "limit", + "description": "Maximum number of users to be returned" + }, + "q": { + "name": "q", + "description": "Target substring" + } + }, + "errors": [ + { + "code": 400, + "type": "QUERY_TOO_SHORT", + "description": "The query string is too short." + }, + { + "code": 400, + "type": "SEARCH_QUERY_EMPTY", + "description": "The search query is empty." + } + ] + }, + "contacts.setBlocked": { + "name": "contacts.setBlocked", + "description": [ + "Replace the contents of an entire blocklist, see here for more info »¹." + ], + "links": [ + "https://core.telegram.org/api/block" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Full content of the blocklist." + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "my_stories_from": { + "name": "my_stories_from", + "description": "Whether to edit the story blocklist; if not set, will edit the main blocklist. See here »¹ for differences between the two.", + "links": [ + "https://core.telegram.org/api/block" + ] + } + } + }, + "contacts.toggleTopPeers": { + "name": "contacts.toggleTopPeers", + "description": [ + "Enable/disable top peers¹" + ], + "links": [ + "https://core.telegram.org/api/top-rating" + ], + "parameters": { + "enabled": { + "name": "enabled", + "description": "Enable/disable" + } + } + }, + "contacts.unblock": { + "name": "contacts.unblock", + "description": [ + "Deletes a peer from a blocklist, see here »¹ for more info." + ], + "links": [ + "https://core.telegram.org/api/block" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Peer" + }, + "my_stories_from": { + "name": "my_stories_from", + "description": "Whether the peer should be removed from the story blocklist; if not set, the peer will be removed from the main blocklist, see here »¹ for more info.", + "links": [ + "https://core.telegram.org/api/block" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CONTACT_ID_INVALID", + "description": "The provided contact ID is invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "folders.editPeerFolders": { + "name": "folders.editPeerFolders", + "description": [ + "Edit peers in peer folder¹" + ], + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ], + "parameters": { + "folder_peers": { + "name": "folder_peers", + "description": "New peer list" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "FOLDER_ID_INVALID", + "description": "Invalid folder ID." + } + ] + }, + "help.acceptTermsOfService": { + "name": "help.acceptTermsOfService", + "description": [ + "Accept the new terms of service" + ], + "parameters": { + "id": { + "name": "id", + "description": "ID of terms of service" + } + }, + "errors": [ + { + "code": 400, + "type": "DATA_JSON_INVALID", + "description": "The provided JSON data is invalid." + } + ] + }, + "help.dismissSuggestion": { + "name": "help.dismissSuggestion", + "description": [ + "Dismiss a suggestion, see here for more info »¹." + ], + "links": [ + "https://core.telegram.org/api/config#suggestions" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "In the case of pending suggestions in channels¹, the channel ID.", + "links": [ + "https://core.telegram.org/constructor/channelFull" + ] + }, + "suggestion": { + "name": "suggestion", + "description": "Suggestion, see here for more info »¹.", + "links": [ + "https://core.telegram.org/api/config#suggestions" + ] + } + } + }, + "help.editUserInfo": { + "name": "help.editUserInfo", + "description": [ + "Internal use" + ], + "parameters": { + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "message": { + "name": "message", + "description": "Message" + }, + "user_id": { + "name": "user_id", + "description": "User" + } + }, + "errors": [ + { + "code": 400, + "type": "ENTITY_BOUNDS_INVALID", + "description": "A specified entity offset or length is invalid, see here » for info on how to properly compute the entity offset/length." + }, + { + "code": 403, + "type": "USER_INVALID", + "description": "Invalid user provided." + } + ] + }, + "help.getAppConfig": { + "name": "help.getAppConfig", + "description": [ + "Get app-specific configuration, see client configuration¹ for more info on the result." + ], + "links": [ + "https://core.telegram.org/api/config#client-configuration" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "help.getAppUpdate": { + "name": "help.getAppUpdate", + "description": [ + "Returns information on update availability for the current application." + ], + "parameters": { + "source": { + "name": "source", + "description": "Source" + } + } + }, + "help.getCdnConfig": { + "name": "help.getCdnConfig", + "description": [ + "Get configuration for CDN¹ file downloads." + ], + "links": [ + "https://core.telegram.org/cdn" + ], + "bot_can_use": true + }, + "help.getConfig": { + "name": "help.getConfig", + "description": [ + "Returns current configuration, including data center configuration." + ], + "parameters": { + "400": { + "name": "400", + "description": "The provided username is not valid." + }, + "403": { + "name": "403", + "description": "The user's privacy settings do not allow you to do this." + } + }, + "errors": [ + { + "code": 400, + "type": "CONNECTION_API_ID_INVALID", + "description": "The provided API id is invalid." + }, + { + "code": 400, + "type": "CONNECTION_APP_VERSION_EMPTY", + "description": "App version is empty." + }, + { + "code": 400, + "type": "CONNECTION_LAYER_INVALID", + "description": "Layer invalid." + }, + { + "code": 400, + "type": "DATA_INVALID", + "description": "Encrypted data invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "USERNAME_INVALID", + "description": "The provided username is not valid." + }, + { + "code": 403, + "type": "USER_PRIVACY_RESTRICTED", + "description": "The user's privacy settings do not allow you to do this." + } + ], + "bot_can_use": true + }, + "help.getCountriesList": { + "name": "help.getCountriesList", + "description": [ + "Get name, ISO code, localized name and phone codes/patterns of all available countries" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "lang_code": { + "name": "lang_code", + "description": "Language code of the current user" + } + } + }, + "help.getDeepLinkInfo": { + "name": "help.getDeepLinkInfo", + "description": [ + "Get info about an unsupported deep link, see here for more info »¹." + ], + "links": [ + "https://core.telegram.org/api/links#unsupported-links" + ], + "parameters": { + "path": { + "name": "path", + "description": "Path component of a tg: link" + } + } + }, + "help.getInviteText": { + "name": "help.getInviteText", + "description": [ + "Returns localized text of a text message with an invitation." + ] + }, + "help.getNearestDc": { + "name": "help.getNearestDc", + "description": [ + "Returns info on data center nearest to the user." + ] + }, + "help.getPassportConfig": { + "name": "help.getPassportConfig", + "description": [ + "Get passport¹ configuration" + ], + "links": [ + "https://core.telegram.org/passport" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "help.getPeerColors": { + "name": "help.getPeerColors", + "description": [ + "Get the set of accent color palettes »¹ that can be used for message accents." + ], + "links": [ + "https://core.telegram.org/api/colors" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "help.getPeerProfileColors": { + "name": "help.getPeerProfileColors", + "description": [ + "Get the set of accent color palettes »¹ that can be used in profile page backgrounds." + ], + "links": [ + "https://core.telegram.org/api/colors" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "help.getPremiumPromo": { + "name": "help.getPremiumPromo", + "description": [ + "Get Telegram Premium promotion information" + ] + }, + "help.getPromoData": { + "name": "help.getPromoData", + "description": [ + "Get MTProxy/Public Service Announcement information" + ] + }, + "help.getRecentMeUrls": { + "name": "help.getRecentMeUrls", + "description": [ + "Get recently used t.me links.", + "When installing official applications from \"Download Telegram\" buttons present in t.me¹ pages, a referral parameter is passed to applications after installation.", + "If, after downloading the application, the user creates a new account (instead of logging into an existing one), the referral parameter should be imported using this method, which returns the t.me² pages the user recently opened, before installing Telegram." + ], + "links": [ + "https://t.me", + "https://t.me" + ], + "parameters": { + "referer": { + "name": "referer", + "description": "Referrer" + } + } + }, + "help.getSupport": { + "name": "help.getSupport", + "description": [ + "Returns the support user for the \"ask a question\" feature." + ] + }, + "help.getSupportName": { + "name": "help.getSupportName", + "description": [ + "Get localized name of the telegram support user" + ], + "parameters": { + "403": { + "name": "403", + "description": "Invalid user provided." + } + }, + "errors": [ + { + "code": 403, + "type": "USER_INVALID", + "description": "Invalid user provided." + } + ] + }, + "help.getTermsOfServiceUpdate": { + "name": "help.getTermsOfServiceUpdate", + "description": [ + "Look for updates of telegram's terms of service" + ] + }, + "help.getUserInfo": { + "name": "help.getUserInfo", + "description": [ + "Can only be used by TSF members to obtain internal information." + ], + "parameters": { + "user_id": { + "name": "user_id", + "description": "User ID" + } + }, + "errors": [ + { + "code": 403, + "type": "USER_INVALID", + "description": "Invalid user provided." + } + ] + }, + "help.hidePromoData": { + "name": "help.hidePromoData", + "description": [ + "Hide MTProxy/Public Service Announcement information" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "Peer to hide" + } + } + }, + "help.saveAppLog": { + "name": "help.saveAppLog", + "description": [ + "Saves logs of application on the server." + ], + "parameters": { + "events": { + "name": "events", + "description": "List of input events" + } + } + }, + "help.setBotUpdatesStatus": { + "name": "help.setBotUpdatesStatus", + "description": [ + "Informs the server about the number of pending bot updates if they haven't been processed for a long time; for bots only" + ], + "parameters": { + "message": { + "name": "message", + "description": "Error message, if present" + }, + "pending_updates_count": { + "name": "pending_updates_count", + "description": "Number of pending updates" + } + }, + "bot_can_use": true + }, + "initConnection": { + "name": "initConnection", + "description": [ + "Initialize connection" + ], + "parameters": { + "api_id": { + "name": "api_id", + "description": "Application identifier (see. App configuration¹)", + "links": [ + "https://core.telegram.org/myapp" + ] + }, + "app_version": { + "name": "app_version", + "description": "Application version" + }, + "device_model": { + "name": "device_model", + "description": "Device model" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "lang_code": { + "name": "lang_code", + "description": "Code for the language used on the client, ISO 639-1 standard" + }, + "lang_pack": { + "name": "lang_pack", + "description": "Language pack to use" + }, + "params": { + "name": "params", + "description": "Additional initConnection parameters. For now, only the tz_offset field is supported, for specifying timezone offset in seconds." + }, + "proxy": { + "name": "proxy", + "description": "Info about an MTProto proxy" + }, + "query": { + "name": "query", + "description": "The query itself" + }, + "system_lang_code": { + "name": "system_lang_code", + "description": "Code for the language used on the device's OS, ISO 639-1 standard" + }, + "system_version": { + "name": "system_version", + "description": "Operation system version" + } + }, + "errors": [ + { + "code": 400, + "type": "CONNECTION_LAYER_INVALID", + "description": "Layer invalid." + } + ], + "bot_can_use": true + }, + "invokeAfterMsg": { + "name": "invokeAfterMsg", + "description": [ + "Invokes a query after successful completion of one of the previous queries." + ], + "parameters": { + "msg_id": { + "name": "msg_id", + "description": "Message identifier on which a current query depends" + }, + "query": { + "name": "query", + "description": "The query itself" + } + }, + "bot_can_use": true + }, + "invokeAfterMsgs": { + "name": "invokeAfterMsgs", + "description": [ + "Invokes a query after a successful completion of previous queries" + ], + "parameters": { + "msg_ids": { + "name": "msg_ids", + "description": "List of messages on which a current query depends" + }, + "query": { + "name": "query", + "description": "The query itself" + } + }, + "bot_can_use": true + }, + "invokeWithLayer": { + "name": "invokeWithLayer", + "description": [ + "Invoke the specified query using the specified API layer¹" + ], + "links": [ + "https://core.telegram.org/api/invoking#layers" + ], + "parameters": { + "layer": { + "name": "layer", + "description": "The layer to use" + }, + "query": { + "name": "query", + "description": "The query" + } + }, + "errors": [ + { + "code": 400, + "type": "AUTH_BYTES_INVALID", + "description": "The provided authorization is invalid." + }, + { + "code": 400, + "type": "CDN_METHOD_INVALID", + "description": "You can't call this method in a CDN DC." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "CONNECTION_API_ID_INVALID", + "description": "The provided API id is invalid." + }, + { + "code": 406, + "type": "INVITE_HASH_EXPIRED", + "description": "The invite link has expired." + } + ], + "bot_can_use": true + }, + "invokeWithMessagesRange": { + "name": "invokeWithMessagesRange", + "description": [ + "Invoke with the given message range" + ], + "parameters": { + "query": { + "name": "query", + "description": "Query" + }, + "range": { + "name": "range", + "description": "Message range" + } + }, + "bot_can_use": true + }, + "invokeWithTakeout": { + "name": "invokeWithTakeout", + "description": [ + "Invoke a method within a takeout session, see here » for more info¹." + ], + "links": [ + "https://core.telegram.org/api/takeout" + ], + "parameters": { + "query": { + "name": "query", + "description": "Query" + }, + "takeout_id": { + "name": "takeout_id", + "description": "Takeout session ID »¹", + "links": [ + "https://core.telegram.org/api/takeout" + ] + } + }, + "bot_can_use": true + }, + "invokeWithoutUpdates": { + "name": "invokeWithoutUpdates", + "description": [ + "Invoke a request without subscribing the used connection for updates¹ (this is enabled by default for file queries²)." + ], + "links": [ + "https://core.telegram.org/api/updates", + "https://core.telegram.org/api/files" + ], + "parameters": { + "query": { + "name": "query", + "description": "The query" + } + }, + "bot_can_use": true + }, + "langpack.getDifference": { + "name": "langpack.getDifference", + "description": [ + "Get new strings in language pack" + ], + "parameters": { + "from_version": { + "name": "from_version", + "description": "Previous localization pack version" + }, + "lang_code": { + "name": "lang_code", + "description": "Language code" + }, + "lang_pack": { + "name": "lang_pack", + "description": "Language pack" + } + }, + "errors": [ + { + "code": 400, + "type": "LANG_PACK_INVALID", + "description": "The provided language pack is invalid." + } + ] + }, + "langpack.getLangPack": { + "name": "langpack.getLangPack", + "description": [ + "Get localization pack strings" + ], + "parameters": { + "lang_code": { + "name": "lang_code", + "description": "Language code" + }, + "lang_pack": { + "name": "lang_pack", + "description": "Language pack name, usually obtained from a language pack link¹", + "links": [ + "https://core.telegram.org/api/links#language-pack-links" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "LANG_CODE_NOT_SUPPORTED", + "description": "The specified language code is not supported." + }, + { + "code": 400, + "type": "LANG_PACK_INVALID", + "description": "The provided language pack is invalid." + } + ] + }, + "langpack.getLanguage": { + "name": "langpack.getLanguage", + "description": [ + "Get information about a language in a localization pack" + ], + "parameters": { + "lang_code": { + "name": "lang_code", + "description": "Language code" + }, + "lang_pack": { + "name": "lang_pack", + "description": "Language pack name, usually obtained from a language pack link¹", + "links": [ + "https://core.telegram.org/api/links#language-pack-links" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "LANG_CODE_NOT_SUPPORTED", + "description": "The specified language code is not supported." + }, + { + "code": 400, + "type": "LANG_PACK_INVALID", + "description": "The provided language pack is invalid." + } + ] + }, + "langpack.getLanguages": { + "name": "langpack.getLanguages", + "description": [ + "Get information about all languages in a localization pack" + ], + "parameters": { + "lang_pack": { + "name": "lang_pack", + "description": "Language pack" + } + }, + "errors": [ + { + "code": 400, + "type": "LANG_PACK_INVALID", + "description": "The provided language pack is invalid." + } + ] + }, + "langpack.getStrings": { + "name": "langpack.getStrings", + "description": [ + "Get strings from a language pack" + ], + "parameters": { + "keys": { + "name": "keys", + "description": "Strings to get" + }, + "lang_code": { + "name": "lang_code", + "description": "Language code" + }, + "lang_pack": { + "name": "lang_pack", + "description": "Language pack name, usually obtained from a language pack link¹", + "links": [ + "https://core.telegram.org/api/links#language-pack-links" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "LANG_CODE_NOT_SUPPORTED", + "description": "The specified language code is not supported." + }, + { + "code": 400, + "type": "LANG_PACK_INVALID", + "description": "The provided language pack is invalid." + } + ] + }, + "messages.acceptEncryption": { + "name": "messages.acceptEncryption", + "description": [ + "Confirms creation of a secret chat" + ], + "parameters": { + "g_b": { + "name": "g_b", + "description": "B = g ^ b mod p, see Wikipedia¹", + "links": [ + "https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange" + ] + }, + "key_fingerprint": { + "name": "key_fingerprint", + "description": "64-bit fingerprint of the received key" + }, + "peer": { + "name": "peer", + "description": "Secret chat ID" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "ENCRYPTION_ALREADY_ACCEPTED", + "description": "Secret chat already accepted." + }, + { + "code": 400, + "type": "ENCRYPTION_ALREADY_DECLINED", + "description": "The secret chat was already declined." + } + ] + }, + "messages.acceptUrlAuth": { + "name": "messages.acceptUrlAuth", + "description": [ + "Use this to accept a Seamless Telegram Login authorization request, for more info click here »¹" + ], + "links": [ + "https://core.telegram.org/api/url-authorization" + ], + "parameters": { + "button_id": { + "name": "button_id", + "description": "ID of the login button" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "msg_id": { + "name": "msg_id", + "description": "Message ID of the message with the login button" + }, + "peer": { + "name": "peer", + "description": "The location of the message" + }, + "url": { + "name": "url", + "description": "URL used for link URL authorization, click here for more info »¹", + "links": [ + "https://core.telegram.org/api/url-authorization#link-url-authorization" + ] + }, + "write_allowed": { + "name": "write_allowed", + "description": "Set this flag to allow the bot to send messages to you (if requested)" + } + } + }, + "messages.addChatUser": { + "name": "messages.addChatUser", + "description": [ + "Adds a user to a chat and sends a service message on it.", + "May also return 0-N updates of type updateGroupInvitePrivacyForbidden¹: it indicates we couldn't add a user to a chat because of their privacy settings; if required, an invite link² can be shared with the user, instead." + ], + "links": [ + "https://core.telegram.org/constructor/updateGroupInvitePrivacyForbidden", + "https://core.telegram.org/api/invites" + ], + "parameters": { + "chat_id": { + "name": "chat_id", + "description": "Chat ID" + }, + "fwd_limit": { + "name": "fwd_limit", + "description": "Number of last messages to be forwarded" + }, + "user_id": { + "name": "user_id", + "description": "User ID to be added" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_GROUPS_BLOCKED", + "description": "This bot can't be added to groups." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USERS_TOO_MUCH", + "description": "The maximum number of users has been exceeded (to create a chat, for example)." + }, + { + "code": 400, + "type": "USER_ALREADY_PARTICIPANT", + "description": "The user is already in the group." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + }, + { + "code": 400, + "type": "USER_IS_BLOCKED", + "description": "You were blocked by this user." + }, + { + "code": 403, + "type": "USER_NOT_MUTUAL_CONTACT", + "description": "The provided user is not a mutual contact." + }, + { + "code": 403, + "type": "USER_PRIVACY_RESTRICTED", + "description": "The user's privacy settings do not allow you to do this." + }, + { + "code": 400, + "type": "YOU_BLOCKED_USER", + "description": "You blocked this user." + } + ] + }, + "messages.checkChatInvite": { + "name": "messages.checkChatInvite", + "description": [ + "Check the validity of a chat invite link and get basic info about it" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Invite hash from chat invite deep link »¹.", + "links": [ + "https://core.telegram.org/api/links#chat-invite-links" + ] + } + }, + "errors": [ + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "INVITE_HASH_EMPTY", + "description": "The invite hash is empty." + }, + { + "code": 406, + "type": "INVITE_HASH_EXPIRED", + "description": "The invite link has expired." + }, + { + "code": 400, + "type": "INVITE_HASH_INVALID", + "description": "The invite hash is invalid." + } + ] + }, + "messages.checkHistoryImport": { + "name": "messages.checkHistoryImport", + "description": [ + "Obtains information about a chat export file, generated by a foreign chat app, click here for more info about imported chats »¹." + ], + "links": [ + "https://core.telegram.org/api/import" + ], + "parameters": { + "import_head": { + "name": "import_head", + "description": "Beginning of the message file; up to 100 lines." + } + }, + "errors": [ + { + "code": 400, + "type": "IMPORT_FORMAT_UNRECOGNIZED", + "description": "The specified chat export file was exported from an unsupported chat app." + } + ] + }, + "messages.checkHistoryImportPeer": { + "name": "messages.checkHistoryImportPeer", + "description": [ + "Check whether chat history exported from another chat app can be imported into a specific Telegram chat, click here for more info »¹.", + "If the check succeeds, and no RPC errors are returned, a messages.CheckedHistoryImportPeer¹ constructor will be returned, with a confirmation text to be shown to the user, before actually initializing the import." + ], + "links": [ + "https://core.telegram.org/api/import", + "https://core.telegram.org/type/messages.CheckedHistoryImportPeer" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "The chat where we want to import history »¹.", + "links": [ + "https://core.telegram.org/api/import" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USER_NOT_MUTUAL_CONTACT", + "description": "The provided user is not a mutual contact." + } + ] + }, + "messages.clearAllDrafts": { + "name": "messages.clearAllDrafts", + "description": [ + "Clear all drafts¹." + ], + "links": [ + "https://core.telegram.org/api/drafts" + ] + }, + "messages.clearRecentReactions": { + "name": "messages.clearRecentReactions", + "description": [ + "Clear recently used message reactions¹" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ] + }, + "messages.clearRecentStickers": { + "name": "messages.clearRecentStickers", + "description": [ + "Clear recent stickers" + ], + "parameters": { + "attached": { + "name": "attached", + "description": "Set this flag to clear the list of stickers recently attached to photo or video files" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + } + } + }, + "messages.createChat": { + "name": "messages.createChat", + "description": [ + "Creates a new chat.", + "May also return 0-N updates of type updateGroupInvitePrivacyForbidden¹: it indicates we couldn't add a user to a chat because of their privacy settings; if required, an invite link² can be shared with the user, instead." + ], + "links": [ + "https://core.telegram.org/constructor/updateGroupInvitePrivacyForbidden", + "https://core.telegram.org/api/invites" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "title": { + "name": "title", + "description": "Chat name" + }, + "ttl_period": { + "name": "ttl_period", + "description": "Time-to-live of all messages that will be sent in the chat: once message.date+message.ttl_period === time(), the message will be deleted on the server, and must be deleted locally as well. You can use messages.setDefaultHistoryTTL¹ to edit this value later.", + "links": [ + "https://core.telegram.org/method/messages.setDefaultHistoryTTL" + ] + }, + "users": { + "name": "users", + "description": "List of user IDs to be invited" + } + }, + "errors": [ + { + "code": 500, + "type": "CHAT_ID_GENERATE_FAILED", + "description": "Failure while generating the chat ID." + }, + { + "code": 400, + "type": "CHAT_INVALID", + "description": "Invalid chat." + }, + { + "code": 400, + "type": "CHAT_TITLE_EMPTY", + "description": "No chat title provided." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "TTL_PERIOD_INVALID", + "description": "The specified TTL period is invalid." + }, + { + "code": 400, + "type": "USERS_TOO_FEW", + "description": "Not enough users (to create a chat, for example)." + }, + { + "code": 406, + "type": "USER_RESTRICTED", + "description": "You're spamreported, you can't create channels or chats." + } + ] + }, + "messages.deleteChat": { + "name": "messages.deleteChat", + "description": [ + "Delete a chat¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "chat_id": { + "name": "chat_id", + "description": "Chat ID" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.deleteChatUser": { + "name": "messages.deleteChatUser", + "description": [ + "Deletes a user from a chat and sends a service message on it." + ], + "parameters": { + "chat_id": { + "name": "chat_id", + "description": "Chat ID" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "revoke_history": { + "name": "revoke_history", + "description": "Remove the entire chat history of the specified user in this chat." + }, + "user_id": { + "name": "user_id", + "description": "User ID to be deleted" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + }, + { + "code": 400, + "type": "USER_NOT_PARTICIPANT", + "description": "You're not a member of this supergroup/channel." + } + ], + "bot_can_use": true + }, + "messages.deleteExportedChatInvite": { + "name": "messages.deleteExportedChatInvite", + "description": [ + "Delete a chat invite" + ], + "parameters": { + "link": { + "name": "link", + "description": "Invite link" + }, + "peer": { + "name": "peer", + "description": "Peer" + } + }, + "errors": [ + { + "code": 400, + "type": "INVITE_HASH_EXPIRED", + "description": "The invite link has expired." + }, + { + "code": 400, + "type": "INVITE_REVOKED_MISSING", + "description": "The specified invite link was already revoked or is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.deleteHistory": { + "name": "messages.deleteHistory", + "description": [ + "Deletes communication history." + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "just_clear": { + "name": "just_clear", + "description": "Just clear history for the current user, without actually removing messages for every chat user" + }, + "max_date": { + "name": "max_date", + "description": "Delete all messages older than this UNIX timestamp" + }, + "max_id": { + "name": "max_id", + "description": "Maximum ID of message to delete" + }, + "min_date": { + "name": "min_date", + "description": "Delete all messages newer than this UNIX timestamp" + }, + "peer": { + "name": "peer", + "description": "User or chat, communication history of which will be deleted" + }, + "revoke": { + "name": "revoke", + "description": "Whether to delete the message history for all chat participants" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "CHAT_REVOKE_DATE_UNSUPPORTED", + "description": "min_date and max_date are not available for using with non-user peers." + }, + { + "code": 400, + "type": "MAX_DATE_INVALID", + "description": "The specified maximum date is invalid." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "MIN_DATE_INVALID", + "description": "The specified minimum date is invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.deleteMessages": { + "name": "messages.deleteMessages", + "description": [ + "Deletes messages by their identifiers." + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Message ID list" + }, + "revoke": { + "name": "revoke", + "description": "Whether to delete messages for all participants of the chat" + } + }, + "errors": [ + { + "code": 403, + "type": "MESSAGE_DELETE_FORBIDDEN", + "description": "You can't delete one of the messages you tried to delete, most likely because it is a service message." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + } + ], + "bot_can_use": true + }, + "messages.deletePhoneCallHistory": { + "name": "messages.deletePhoneCallHistory", + "description": [ + "Delete the entire phone call history." + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "revoke": { + "name": "revoke", + "description": "Whether to remove phone call history for participants as well" + } + } + }, + "messages.deleteRevokedExportedChatInvites": { + "name": "messages.deleteRevokedExportedChatInvites", + "description": [ + "Delete all revoked chat invites" + ], + "parameters": { + "admin_id": { + "name": "admin_id", + "description": "ID of the admin that originally generated the revoked chat invites" + }, + "peer": { + "name": "peer", + "description": "Chat" + } + }, + "errors": [ + { + "code": 400, + "type": "ADMIN_ID_INVALID", + "description": "The specified admin ID is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.deleteSavedHistory": { + "name": "messages.deleteSavedHistory", + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "max_date": { + "name": "max_date", + "description": " " + }, + "max_id": { + "name": "max_id", + "description": " " + }, + "min_date": { + "name": "min_date", + "description": " " + }, + "peer": { + "name": "peer", + "description": " " + } + }, + "bot_can_use": true + }, + "messages.deleteScheduledMessages": { + "name": "messages.deleteScheduledMessages", + "description": [ + "Delete scheduled messages" + ], + "parameters": { + "id": { + "name": "id", + "description": "Scheduled message IDs" + }, + "peer": { + "name": "peer", + "description": "Peer" + } + } + }, + "messages.discardEncryption": { + "name": "messages.discardEncryption", + "description": [ + "Cancels a request for creation and/or delete info on secret chat." + ], + "parameters": { + "chat_id": { + "name": "chat_id", + "description": "Secret chat ID" + }, + "delete_history": { + "name": "delete_history", + "description": "Whether to delete the entire chat history for the other user as well" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ID_EMPTY", + "description": "The provided chat ID is empty." + }, + { + "code": 400, + "type": "ENCRYPTION_ALREADY_ACCEPTED", + "description": "Secret chat already accepted." + }, + { + "code": 400, + "type": "ENCRYPTION_ALREADY_DECLINED", + "description": "The secret chat was already declined." + }, + { + "code": 400, + "type": "ENCRYPTION_ID_INVALID", + "description": "The provided secret chat ID is invalid." + } + ] + }, + "messages.editChatAbout": { + "name": "messages.editChatAbout", + "description": [ + "Edit the description of a group/supergroup/channel¹." + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "about": { + "name": "about", + "description": "The new description" + }, + "peer": { + "name": "peer", + "description": "The group/supergroup/channel¹.", + "links": [ + "https://core.telegram.org/api/channel" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ABOUT_NOT_MODIFIED", + "description": "About text has not changed." + }, + { + "code": 400, + "type": "CHAT_ABOUT_TOO_LONG", + "description": "Chat about too long." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ], + "bot_can_use": true + }, + "messages.editChatAdmin": { + "name": "messages.editChatAdmin", + "description": [ + "Make a user admin in a basic group¹." + ], + "links": [ + "https://core.telegram.org/api/channel#basic-groups" + ], + "parameters": { + "chat_id": { + "name": "chat_id", + "description": "The ID of the group" + }, + "is_admin": { + "name": "is_admin", + "description": "Whether to make them admin" + }, + "user_id": { + "name": "user_id", + "description": "The user to make admin" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + }, + { + "code": 400, + "type": "USER_NOT_PARTICIPANT", + "description": "You're not a member of this supergroup/channel." + } + ] + }, + "messages.editChatDefaultBannedRights": { + "name": "messages.editChatDefaultBannedRights", + "description": [ + "Edit the default banned rights of a channel/supergroup/group¹." + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "banned_rights": { + "name": "banned_rights", + "description": "The new global rights" + }, + "peer": { + "name": "peer", + "description": "The peer" + } + }, + "errors": [ + { + "code": 400, + "type": "BANNED_RIGHTS_INVALID", + "description": "You provided some invalid flags in the banned rights." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "UNTIL_DATE_INVALID", + "description": "Invalid until date provided." + } + ], + "bot_can_use": true + }, + "messages.editChatPhoto": { + "name": "messages.editChatPhoto", + "description": [ + "Changes chat photo and sends a service message on it" + ], + "parameters": { + "chat_id": { + "name": "chat_id", + "description": "Chat ID" + }, + "photo": { + "name": "photo", + "description": "Photo to be set" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 400, + "type": "IMAGE_PROCESS_FAILED", + "description": "Failure while processing image." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "PHOTO_CROP_SIZE_SMALL", + "description": "Photo is too small." + }, + { + "code": 400, + "type": "PHOTO_EXT_INVALID", + "description": "The extension of the photo is invalid." + }, + { + "code": 400, + "type": "PHOTO_INVALID", + "description": "Photo invalid." + } + ], + "bot_can_use": true + }, + "messages.editChatTitle": { + "name": "messages.editChatTitle", + "description": [ + "Changes chat name and sends a service message on it." + ], + "parameters": { + "chat_id": { + "name": "chat_id", + "description": "Chat ID" + }, + "title": { + "name": "title", + "description": "New chat name, different from the old one" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 400, + "type": "CHAT_TITLE_EMPTY", + "description": "No chat title provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ], + "bot_can_use": true + }, + "messages.editExportedChatInvite": { + "name": "messages.editExportedChatInvite", + "description": [ + "Edit an exported chat invite" + ], + "parameters": { + "expire_date": { + "name": "expire_date", + "description": "New expiration date" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "link": { + "name": "link", + "description": "Invite link" + }, + "peer": { + "name": "peer", + "description": "Chat" + }, + "request_needed": { + "name": "request_needed", + "description": "Whether admin confirmation is required before admitting each separate user into the chat" + }, + "revoked": { + "name": "revoked", + "description": "Whether to revoke the chat invite" + }, + "title": { + "name": "title", + "description": "Description of the invite link, visible only to administrators" + }, + "usage_limit": { + "name": "usage_limit", + "description": "Maximum number of users that can join using this link" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_INVITE_PERMANENT", + "description": "You can't set an expiration date on permanent invite links." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 403, + "type": "EDIT_BOT_INVITE_FORBIDDEN", + "description": "Normal users can't edit invites that were created by bots." + }, + { + "code": 400, + "type": "INVITE_HASH_EXPIRED", + "description": "The invite link has expired." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ], + "bot_can_use": true + }, + "messages.editInlineBotMessage": { + "name": "messages.editInlineBotMessage", + "description": [ + "Edit an inline bot message" + ], + "parameters": { + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Sent inline message ID" + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "media": { + "name": "media", + "description": "Media" + }, + "message": { + "name": "message", + "description": "Message" + }, + "no_webpage": { + "name": "no_webpage", + "description": "Disable webpage preview" + }, + "reply_markup": { + "name": "reply_markup", + "description": "Reply markup for inline keyboards" + } + }, + "errors": [ + { + "code": 400, + "type": "BUTTON_DATA_INVALID", + "description": "The data of one or more of the buttons you provided is invalid." + }, + { + "code": 400, + "type": "ENTITY_BOUNDS_INVALID", + "description": "A specified entity offset or length is invalid, see here » for info on how to properly compute the entity offset/length." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "MESSAGE_NOT_MODIFIED", + "description": "The provided message data is identical to the previous message data, the message wasn't modified." + } + ], + "bot_can_use": true + }, + "messages.editMessage": { + "name": "messages.editMessage", + "description": [ + "Edit message" + ], + "parameters": { + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "ID of the message to edit" + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "media": { + "name": "media", + "description": "New attached media" + }, + "message": { + "name": "message", + "description": "New message" + }, + "no_webpage": { + "name": "no_webpage", + "description": "Disable webpage preview" + }, + "peer": { + "name": "peer", + "description": "Where was the message sent" + }, + "reply_markup": { + "name": "reply_markup", + "description": "Reply markup for inline keyboards" + }, + "schedule_date": { + "name": "schedule_date", + "description": "Scheduled message date for scheduled messages¹", + "links": [ + "https://core.telegram.org/api/scheduled-messages" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_DOMAIN_INVALID", + "description": "Bot domain invalid." + }, + { + "code": 400, + "type": "BOT_INVALID", + "description": "This is not a valid bot." + }, + { + "code": 400, + "type": "BUTTON_DATA_INVALID", + "description": "The data of one or more of the buttons you provided is invalid." + }, + { + "code": 400, + "type": "BUTTON_TYPE_INVALID", + "description": "The type of one or more of the buttons you provided is invalid." + }, + { + "code": 400, + "type": "BUTTON_URL_INVALID", + "description": "Button URL invalid." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_FORWARDS_RESTRICTED", + "description": "You can't forward messages from a protected chat." + }, + { + "code": 403, + "type": "CHAT_SEND_GIFS_FORBIDDEN", + "description": "You can't send gifs in this chat." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "DOCUMENT_INVALID", + "description": "The specified document is invalid." + }, + { + "code": 400, + "type": "ENTITIES_TOO_LONG", + "description": "You provided too many styled message entities." + }, + { + "code": 400, + "type": "ENTITY_BOUNDS_INVALID", + "description": "A specified entity offset or length is invalid, see here » for info on how to properly compute the entity offset/length." + }, + { + "code": 400, + "type": "FILE_PARTS_INVALID", + "description": "The number of file parts is invalid." + }, + { + "code": 400, + "type": "IMAGE_PROCESS_FAILED", + "description": "Failure while processing image." + }, + { + "code": 403, + "type": "INLINE_BOT_REQUIRED", + "description": "Only the inline bot can edit message." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MEDIA_CAPTION_TOO_LONG", + "description": "The caption is too long." + }, + { + "code": 400, + "type": "MEDIA_EMPTY", + "description": "The provided media object is invalid." + }, + { + "code": 400, + "type": "MEDIA_GROUPED_INVALID", + "description": "You tried to send media of different types in an album." + }, + { + "code": 400, + "type": "MEDIA_INVALID", + "description": "Media invalid." + }, + { + "code": 400, + "type": "MEDIA_NEW_INVALID", + "description": "The new media is invalid." + }, + { + "code": 400, + "type": "MEDIA_PREV_INVALID", + "description": "Previous media invalid." + }, + { + "code": 400, + "type": "MEDIA_TTL_INVALID", + "description": "The specified media TTL is invalid." + }, + { + "code": 403, + "type": "MESSAGE_AUTHOR_REQUIRED", + "description": "Message author required." + }, + { + "code": 400, + "type": "MESSAGE_EDIT_TIME_EXPIRED", + "description": "You can't edit this message anymore, too much time has passed since its creation." + }, + { + "code": 400, + "type": "MESSAGE_EMPTY", + "description": "The provided message is empty." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "MESSAGE_NOT_MODIFIED", + "description": "The provided message data is identical to the previous message data, the message wasn't modified." + }, + { + "code": 400, + "type": "MESSAGE_TOO_LONG", + "description": "The provided message is too long." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 500, + "type": "MSG_WAIT_FAILED", + "description": "A waiting call returned an error." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "REPLY_MARKUP_INVALID", + "description": "The provided reply markup is invalid." + }, + { + "code": 400, + "type": "SCHEDULE_DATE_INVALID", + "description": "Invalid schedule date provided." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + } + ], + "bot_can_use": true + }, + "messages.exportChatInvite": { + "name": "messages.exportChatInvite", + "description": [ + "Export an invite link for a chat" + ], + "parameters": { + "expire_date": { + "name": "expire_date", + "description": "Expiration date" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "legacy_revoke_permanent": { + "name": "legacy_revoke_permanent", + "description": "Legacy flag, reproducing legacy behavior of this method: if set, revokes all previous links before creating a new one. Kept for bot API BC, should not be used by modern clients." + }, + "peer": { + "name": "peer", + "description": "Chat" + }, + "request_needed": { + "name": "request_needed", + "description": "Whether admin confirmation is required before admitting each separate user into the chat" + }, + "title": { + "name": "title", + "description": "Description of the invite link, visible only to administrators" + }, + "usage_limit": { + "name": "usage_limit", + "description": "Maximum number of users that can join using this link" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "EXPIRE_DATE_INVALID", + "description": "The specified expiration date is invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USAGE_LIMIT_INVALID", + "description": "The specified usage limit is invalid." + } + ], + "bot_can_use": true + }, + "messages.faveSticker": { + "name": "messages.faveSticker", + "description": [ + "Mark or unmark a sticker as favorite" + ], + "parameters": { + "id": { + "name": "id", + "description": "Sticker in question" + }, + "unfave": { + "name": "unfave", + "description": "Whether to add or remove a sticker from favorites" + } + }, + "errors": [ + { + "code": 400, + "type": "STICKER_ID_INVALID", + "description": "The provided sticker ID is invalid." + } + ] + }, + "messages.forwardMessages": { + "name": "messages.forwardMessages", + "description": [ + "Forwards messages by their IDs." + ], + "parameters": { + "background": { + "name": "background", + "description": "Whether to send the message in background" + }, + "drop_author": { + "name": "drop_author", + "description": "Whether to forward messages without quoting the original author" + }, + "drop_media_captions": { + "name": "drop_media_captions", + "description": "Whether to strip captions from media" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "from_peer": { + "name": "from_peer", + "description": "Source of messages" + }, + "id": { + "name": "id", + "description": "IDs of messages" + }, + "noforwards": { + "name": "noforwards", + "description": "Only for bots, disallows further re-forwarding and saving of the messages, even if the destination chat doesn't have content protection¹ enabled", + "links": [ + "https://telegram.org/blog/protected-content-delete-by-date-and-more" + ] + }, + "random_id": { + "name": "random_id", + "description": "Random ID to prevent resending of messages" + }, + "schedule_date": { + "name": "schedule_date", + "description": "Scheduled message date for scheduled messages" + }, + "send_as": { + "name": "send_as", + "description": "Forward the messages as the specified peer" + }, + "silent": { + "name": "silent", + "description": "Whether to send messages silently (no notification will be triggered on the destination clients)" + }, + "to_peer": { + "name": "to_peer", + "description": "Destination peer" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "Destination forum topic¹", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + }, + "with_my_score": { + "name": "with_my_score", + "description": "When forwarding games, whether to include your score in the game" + } + }, + "errors": [ + { + "code": 400, + "type": "BROADCAST_PUBLIC_VOTERS_FORBIDDEN", + "description": "You can't forward polls with public voters." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 406, + "type": "CHAT_FORWARDS_RESTRICTED", + "description": "You can't forward messages from a protected chat." + }, + { + "code": 403, + "type": "CHAT_GUEST_SEND_FORBIDDEN", + "description": "You join the discussion group before commenting, see here » for more info." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "CHAT_RESTRICTED", + "description": "You can't send messages in this chat, you were restricted." + }, + { + "code": 403, + "type": "CHAT_SEND_AUDIOS_FORBIDDEN", + "description": "You can't send audio messages in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_DOCS_FORBIDDEN", + "description": "You can't send documents in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_GAME_FORBIDDEN", + "description": "You can't send a game to this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_GIFS_FORBIDDEN", + "description": "You can't send gifs in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_MEDIA_FORBIDDEN", + "description": "You can't send media in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_PHOTOS_FORBIDDEN", + "description": "You can't send photos in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_PLAIN_FORBIDDEN", + "description": "You can't send non-media (text) messages in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_POLL_FORBIDDEN", + "description": "You can't send polls in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_STICKERS_FORBIDDEN", + "description": "You can't send stickers in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_VIDEOS_FORBIDDEN", + "description": "You can't send videos in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_VOICES_FORBIDDEN", + "description": "You can't send voice recordings in this chat." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "GROUPED_MEDIA_INVALID", + "description": "Invalid grouped media." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MEDIA_EMPTY", + "description": "The provided media object is invalid." + }, + { + "code": 400, + "type": "MESSAGE_IDS_EMPTY", + "description": "No message ids were provided." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 406, + "type": "PAYMENT_UNSUPPORTED", + "description": "A detailed description of the error will be received separately as described here »." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "QUIZ_ANSWER_MISSING", + "description": "You can forward a quiz while hiding the original author only after choosing an option in the quiz." + }, + { + "code": 500, + "type": "RANDOM_ID_DUPLICATE", + "description": "You provided a random ID that was already used." + }, + { + "code": 400, + "type": "RANDOM_ID_INVALID", + "description": "A provided random ID is invalid." + }, + { + "code": 400, + "type": "SCHEDULE_DATE_TOO_LATE", + "description": "You can't schedule a message this far in the future." + }, + { + "code": 400, + "type": "SCHEDULE_TOO_MUCH", + "description": "There are too many scheduled messages." + }, + { + "code": 400, + "type": "SEND_AS_PEER_INVALID", + "description": "You can't send messages as the specified peer." + }, + { + "code": 400, + "type": "SLOWMODE_MULTI_MSGS_DISABLED", + "description": "Slowmode is enabled, you cannot forward multiple messages to this group." + }, + { + "code": 420, + "type": "SLOWMODE_WAIT_%d", + "description": "Slowmode is enabled in this chat: wait %d seconds before sending another message to this chat." + }, + { + "code": 406, + "type": "TOPIC_CLOSED", + "description": "This topic was closed, you can't send messages to it anymore." + }, + { + "code": 406, + "type": "TOPIC_DELETED", + "description": "The specified topic was deleted." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + }, + { + "code": 403, + "type": "USER_IS_BLOCKED", + "description": "You were blocked by this user." + }, + { + "code": 400, + "type": "USER_IS_BOT", + "description": "Bots can't send messages to other bots." + }, + { + "code": 403, + "type": "VOICE_MESSAGES_FORBIDDEN", + "description": "This user's privacy settings forbid you from sending voice messages." + }, + { + "code": 400, + "type": "YOU_BLOCKED_USER", + "description": "You blocked this user." + } + ], + "bot_can_use": true + }, + "messages.getAdminsWithInvites": { + "name": "messages.getAdminsWithInvites", + "description": [ + "Get info about chat invites generated by admins." + ], + "parameters": { + "peer": { + "name": "peer", + "description": "Chat" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getAllDrafts": { + "name": "messages.getAllDrafts", + "description": [ + "Return all message drafts¹.", + "Returns all the latest updateDraftMessage² updates related to all chats with drafts." + ], + "links": [ + "https://core.telegram.org/api/drafts", + "https://core.telegram.org/constructor/updateDraftMessage" + ] + }, + "messages.getAllStickers": { + "name": "messages.getAllStickers", + "description": [ + "Get all installed stickers" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "messages.getArchivedStickers": { + "name": "messages.getArchivedStickers", + "description": [ + "Get all archived stickers" + ], + "parameters": { + "emojis": { + "name": "emojis", + "description": "Get custom emoji stickers¹", + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "masks": { + "name": "masks", + "description": "Get mask stickers¹", + "links": [ + "https://core.telegram.org/api/stickers#mask-stickers" + ] + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + } + } + }, + "messages.getAttachMenuBot": { + "name": "messages.getAttachMenuBot", + "description": [ + "Returns attachment menu entry for a bot mini app that can be launched from the attachment menu »¹" + ], + "links": [ + "https://core.telegram.org/api/bots/attach" + ], + "parameters": { + "bot": { + "name": "bot", + "description": "Bot ID" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_INVALID", + "description": "This is not a valid bot." + } + ] + }, + "messages.getAttachMenuBots": { + "name": "messages.getAttachMenuBots", + "description": [ + "Returns installed attachment menu bot mini apps »¹" + ], + "links": [ + "https://core.telegram.org/api/bots/attach" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "messages.getAttachedStickers": { + "name": "messages.getAttachedStickers", + "description": [ + "Get stickers attached to a photo or video" + ], + "parameters": { + "media": { + "name": "media", + "description": "Stickered media" + } + } + }, + "messages.getAvailableReactions": { + "name": "messages.getAvailableReactions", + "description": [ + "Obtain available message reactions »¹" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "messages.getBotApp": { + "name": "messages.getBotApp", + "description": [ + "Obtain information about a named Mini App¹" + ], + "links": [ + "https://core.telegram.org/api/bots/webapps#named-mini-apps" + ], + "parameters": { + "app": { + "name": "app", + "description": "Bot app information obtained from a named Mini App deep link »¹.", + "links": [ + "https://core.telegram.org/api/links#named-mini-app-links" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_APP_INVALID", + "description": "The specified bot app is invalid." + } + ] + }, + "messages.getBotCallbackAnswer": { + "name": "messages.getBotCallbackAnswer", + "description": [ + "Press an inline callback button and get a callback answer from the bot" + ], + "parameters": { + "data": { + "name": "data", + "description": "Callback data" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "game": { + "name": "game", + "description": "Whether this is a \"play game\" button" + }, + "msg_id": { + "name": "msg_id", + "description": "ID of the Message with the inline keyboard" + }, + "password": { + "name": "password", + "description": "For buttons requiring you to verify your identity with your 2FA password¹, the SRP payload generated using SRP².", + "links": [ + "https://core.telegram.org/constructor/keyboardButtonCallback", + "https://core.telegram.org/api/srp" + ] + }, + "peer": { + "name": "peer", + "description": "Where was the inline keyboard sent" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_RESPONSE_TIMEOUT", + "description": "A timeout occurred while fetching data from the bot." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "DATA_INVALID", + "description": "Encrypted data invalid." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": -503, + "type": "Timeout", + "description": "Timeout while fetching data." + } + ] + }, + "messages.getChatInviteImporters": { + "name": "messages.getChatInviteImporters", + "description": [ + "Get info about the users that joined the chat using a specific chat invite" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "link": { + "name": "link", + "description": "Invite link" + }, + "offset_date": { + "name": "offset_date", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_user": { + "name": "offset_user", + "description": "User ID for pagination¹: if set, offset_date must also be set.", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "peer": { + "name": "peer", + "description": "Chat" + }, + "q": { + "name": "q", + "description": "Search for a user in the pending join requests »¹ list: only available when the requested flag is set, cannot be used together with a specific link.", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + }, + "requested": { + "name": "requested", + "description": "If set, only returns info about users with pending join requests »¹", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "INVITE_HASH_EXPIRED", + "description": "The invite link has expired." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "SEARCH_WITH_LINK_NOT_SUPPORTED", + "description": "You cannot provide a search query and an invite link at the same time." + } + ] + }, + "messages.getChats": { + "name": "messages.getChats", + "description": [ + "Returns chat basic info on their IDs." + ], + "parameters": { + "id": { + "name": "id", + "description": "List of chat IDs" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ], + "bot_can_use": true + }, + "messages.getCommonChats": { + "name": "messages.getCommonChats", + "description": [ + "Get chats in common with a user" + ], + "parameters": { + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "max_id": { + "name": "max_id", + "description": "Maximum ID of chat to return (see pagination¹)", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + }, + "errors": [ + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ] + }, + "messages.getCustomEmojiDocuments": { + "name": "messages.getCustomEmojiDocuments", + "description": [ + "Fetch custom emoji stickers »¹.", + "Returns a list of documents¹ with the animated custom emoji in TGS format, and a documentAttributeCustomEmoji² attribute with the original emoji and info about the emoji stickerset this custom emoji belongs to." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji", + "https://core.telegram.org/constructor/document", + "https://core.telegram.org/constructor/documentAttributeCustomEmoji" + ], + "parameters": { + "document_id": { + "name": "document_id", + "description": "Custom emoji¹ IDs from a messageEntityCustomEmoji².", + "links": [ + "https://core.telegram.org/api/custom-emoji", + "https://core.telegram.org/constructor/messageEntityCustomEmoji" + ] + } + }, + "bot_can_use": true + }, + "messages.getDefaultHistoryTTL": { + "name": "messages.getDefaultHistoryTTL", + "description": [ + "Gets the default value of the Time-To-Live setting, applied to all new chats." + ], + "bot_can_use": true + }, + "messages.getDhConfig": { + "name": "messages.getDhConfig", + "description": [ + "Returns configuration parameters for Diffie-Hellman key generation. Can also return a random sequence of bytes of required length." + ], + "parameters": { + "random_length": { + "name": "random_length", + "description": "Length of the required random sequence" + }, + "version": { + "name": "version", + "description": "Value of the version parameter from messages.dhConfig¹, available at the client", + "links": [ + "https://core.telegram.org/constructor/messages.dhConfig" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "RANDOM_LENGTH_INVALID", + "description": "Random length invalid." + } + ] + }, + "messages.getDialogFilters": { + "name": "messages.getDialogFilters", + "description": [ + "Get folders¹" + ], + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "messages.getDialogUnreadMarks": { + "name": "messages.getDialogUnreadMarks", + "description": [ + "Get dialogs manually marked as unread" + ] + }, + "messages.getDialogs": { + "name": "messages.getDialogs", + "description": [ + "Returns the current user dialog list." + ], + "parameters": { + "exclude_pinned": { + "name": "exclude_pinned", + "description": "Exclude pinned dialogs" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "limit": { + "name": "limit", + "description": "Number of list elements to be returned" + }, + "offset_date": { + "name": "offset_date", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹ (top_message ID used for pagination)", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_peer": { + "name": "offset_peer", + "description": "Offset peer for pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + } + }, + "errors": [ + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "FOLDER_ID_INVALID", + "description": "Invalid folder ID." + }, + { + "code": 400, + "type": "OFFSET_PEER_ID_INVALID", + "description": "The provided offset peer is invalid." + } + ] + }, + "messages.getDiscussionMessage": { + "name": "messages.getDiscussionMessage", + "description": [ + "Get discussion message¹ from the associated discussion group² of a channel to show it on top of the comment section, without actually joining the group" + ], + "links": [ + "https://core.telegram.org/api/threads", + "https://core.telegram.org/api/discussion" + ], + "parameters": { + "msg_id": { + "name": "msg_id", + "description": "Message ID" + }, + "peer": { + "name": "peer", + "description": "Channel ID¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "TOPIC_ID_INVALID", + "description": "The specified topic ID is invalid." + } + ] + }, + "messages.getDocumentByHash": { + "name": "messages.getDocumentByHash", + "description": [ + "Get a document by its SHA256 hash, mainly used for gifs" + ], + "parameters": { + "mime_type": { + "name": "mime_type", + "description": "Mime type" + }, + "sha256": { + "name": "sha256", + "description": "SHA256 of file" + }, + "size": { + "name": "size", + "description": "Size of the file in bytes" + } + }, + "errors": [ + { + "code": 400, + "type": "SHA256_HASH_INVALID", + "description": "The provided SHA256 hash is invalid." + } + ], + "bot_can_use": true + }, + "messages.getEmojiGroups": { + "name": "messages.getEmojiGroups", + "description": [ + "Represents a list of emoji categories¹, to be used when selecting custom emojis²." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji#emoji-categories", + "https://core.telegram.org/api/custom-emoji" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + }, + "bot_can_use": true + }, + "messages.getEmojiKeywords": { + "name": "messages.getEmojiKeywords", + "description": [ + "Get localized emoji keywords »¹." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji#emoji-keywords" + ], + "parameters": { + "lang_code": { + "name": "lang_code", + "description": "Language code" + } + } + }, + "messages.getEmojiKeywordsDifference": { + "name": "messages.getEmojiKeywordsDifference", + "description": [ + "Get changed emoji keywords »¹." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji#emoji-keywords" + ], + "parameters": { + "from_version": { + "name": "from_version", + "description": "Previous stored emoji keyword list version" + }, + "lang_code": { + "name": "lang_code", + "description": "Language code" + } + } + }, + "messages.getEmojiKeywordsLanguages": { + "name": "messages.getEmojiKeywordsLanguages", + "description": [ + "Obtain a list of related languages that must be used when fetching emoji keyword lists »¹.", + "Usually the method will return the passed language codes (if localized) + en + some language codes for similar languages (if applicable)." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji#emoji-keywords" + ], + "parameters": { + "lang_codes": { + "name": "lang_codes", + "description": "The user's language codes" + } + } + }, + "messages.getEmojiProfilePhotoGroups": { + "name": "messages.getEmojiProfilePhotoGroups", + "description": [ + "Represents a list of emoji categories¹, to be used when selecting custom emojis to set as profile picture²." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji#emoji-categories", + "https://core.telegram.org/api/files#sticker-profile-pictures" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + }, + "bot_can_use": true + }, + "messages.getEmojiStatusGroups": { + "name": "messages.getEmojiStatusGroups", + "description": [ + "Represents a list of emoji categories¹, to be used when selecting custom emojis to set as custom emoji status²." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji#emoji-categories", + "https://core.telegram.org/api" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + }, + "bot_can_use": true + }, + "messages.getEmojiStickers": { + "name": "messages.getEmojiStickers", + "description": [ + "Gets the list of currently installed custom emoji stickersets¹." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "messages.getEmojiURL": { + "name": "messages.getEmojiURL", + "description": [ + "Returns an HTTP URL which can be used to automatically log in into translation platform and suggest new emoji keywords »¹. The URL will be valid for 30 seconds after generation." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji#emoji-keywords" + ], + "parameters": { + "lang_code": { + "name": "lang_code", + "description": "Language code for which the emoji keywords will be suggested" + } + } + }, + "messages.getExportedChatInvite": { + "name": "messages.getExportedChatInvite", + "description": [ + "Get info about a chat invite" + ], + "parameters": { + "link": { + "name": "link", + "description": "Invite link" + }, + "peer": { + "name": "peer", + "description": "Chat" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "INVITE_HASH_EXPIRED", + "description": "The invite link has expired." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getExportedChatInvites": { + "name": "messages.getExportedChatInvites", + "description": [ + "Get info about the chat invites of a specific chat" + ], + "parameters": { + "admin_id": { + "name": "admin_id", + "description": "Whether to only fetch chat invites from this admin" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_date": { + "name": "offset_date", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_link": { + "name": "offset_link", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "peer": { + "name": "peer", + "description": "Chat" + }, + "revoked": { + "name": "revoked", + "description": "Whether to fetch revoked chat invites" + } + }, + "errors": [ + { + "code": 400, + "type": "ADMIN_ID_INVALID", + "description": "The specified admin ID is invalid." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getExtendedMedia": { + "name": "messages.getExtendedMedia", + "description": [ + "Get information about extended media" + ], + "parameters": { + "id": { + "name": "id", + "description": "Message IDs" + }, + "peer": { + "name": "peer", + "description": "Peer" + } + } + }, + "messages.getFavedStickers": { + "name": "messages.getFavedStickers", + "description": [ + "Get faved stickers" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "messages.getFeaturedEmojiStickers": { + "name": "messages.getFeaturedEmojiStickers", + "description": [ + "Gets featured custom emoji stickersets." + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "messages.getFeaturedStickers": { + "name": "messages.getFeaturedStickers", + "description": [ + "Get featured stickers" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "messages.getFullChat": { + "name": "messages.getFullChat", + "description": [ + "Get full info about a basic group¹." + ], + "links": [ + "https://core.telegram.org/api/channel#basic-groups" + ], + "parameters": { + "chat_id": { + "name": "chat_id", + "description": "Basic group¹ ID.", + "links": [ + "https://core.telegram.org/api/channel#basic-groups" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ], + "bot_can_use": true + }, + "messages.getGameHighScores": { + "name": "messages.getGameHighScores", + "description": [ + "Get highscores of a game" + ], + "parameters": { + "id": { + "name": "id", + "description": "ID of message with game media attachment" + }, + "peer": { + "name": "peer", + "description": "Where was the game sent" + }, + "user_id": { + "name": "user_id", + "description": "Get high scores made by a certain user" + } + }, + "errors": [ + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USER_BOT_REQUIRED", + "description": "This method can only be called by a bot." + } + ], + "bot_can_use": true + }, + "messages.getHistory": { + "name": "messages.getHistory", + "description": [ + "Returns the conversation history with one interlocutor / within a chat" + ], + "parameters": { + "add_offset": { + "name": "add_offset", + "description": "Number of list elements to be skipped, negative values are also accepted." + }, + "hash": { + "name": "hash", + "description": "Result hash¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "limit": { + "name": "limit", + "description": "Number of results to return" + }, + "max_id": { + "name": "max_id", + "description": "If a positive value was transferred, the method will return only messages with IDs less than max_id" + }, + "min_id": { + "name": "min_id", + "description": "If a positive value was transferred, the method will return only messages with IDs more than min_id" + }, + "offset_date": { + "name": "offset_date", + "description": "Only return messages sent before the specified date" + }, + "offset_id": { + "name": "offset_id", + "description": "Only return messages starting from the specified message ID" + }, + "peer": { + "name": "peer", + "description": "Target peer" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getInlineBotResults": { + "name": "messages.getInlineBotResults", + "description": [ + "Query an inline bot" + ], + "parameters": { + "bot": { + "name": "bot", + "description": "The bot to query" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "geo_point": { + "name": "geo_point", + "description": "The geolocation, if requested" + }, + "offset": { + "name": "offset", + "description": "The offset within the results, will be passed directly as-is to the bot." + }, + "peer": { + "name": "peer", + "description": "The currently opened chat" + }, + "query": { + "name": "query", + "description": "The query" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_INLINE_DISABLED", + "description": "This bot can't be used in inline mode." + }, + { + "code": 400, + "type": "BOT_INVALID", + "description": "This is not a valid bot." + }, + { + "code": 400, + "type": "BOT_RESPONSE_TIMEOUT", + "description": "A timeout occurred while fetching data from the bot." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": -503, + "type": "Timeout", + "description": "Timeout while fetching data." + } + ] + }, + "messages.getInlineGameHighScores": { + "name": "messages.getInlineGameHighScores", + "description": [ + "Get highscores of a game sent using an inline bot" + ], + "parameters": { + "id": { + "name": "id", + "description": "ID of inline message" + }, + "user_id": { + "name": "user_id", + "description": "Get high scores of a certain user" + } + }, + "errors": [ + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "USER_BOT_REQUIRED", + "description": "This method can only be called by a bot." + } + ], + "bot_can_use": true + }, + "messages.getMaskStickers": { + "name": "messages.getMaskStickers", + "description": [ + "Get installed mask stickers" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "messages.getMessageEditData": { + "name": "messages.getMessageEditData", + "description": [ + "Find out if a media message's caption can be edited" + ], + "parameters": { + "id": { + "name": "id", + "description": "ID of message" + }, + "peer": { + "name": "peer", + "description": "Peer where the media was sent" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 403, + "type": "MESSAGE_AUTHOR_REQUIRED", + "description": "Message author required." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getMessageReactionsList": { + "name": "messages.getMessageReactionsList", + "description": [ + "Get message reaction¹ list, along with the sender of each reaction." + ], + "links": [ + "https://core.telegram.org/api/reactions" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Message ID" + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset": { + "name": "offset", + "description": "Offset for pagination (taken from the next_offset field of the returned messages.MessageReactionsList¹); empty in the first request.", + "links": [ + "https://core.telegram.org/type/messages.MessageReactionsList" + ] + }, + "peer": { + "name": "peer", + "description": "Peer" + }, + "reaction": { + "name": "reaction", + "description": "Get only reactions of this type" + } + }, + "errors": [ + { + "code": 403, + "type": "BROADCAST_FORBIDDEN", + "description": "Channel poll voters and reactions cannot be fetched to prevent deanonymization." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + } + ] + }, + "messages.getMessageReadParticipants": { + "name": "messages.getMessageReadParticipants", + "description": [ + "Get which users read a specific message: only available for groups and supergroups with less than chat_read_mark_size_threshold members¹, read receipts will be stored for chat_read_mark_expire_period seconds after the message was sent², see client configuration for more info »³." + ], + "links": [ + "https://core.telegram.org/api/config#chat-read-mark-size-threshold", + "https://core.telegram.org/api/config#chat-read-mark-expire-period", + "https://core.telegram.org/api/config#client-configuration" + ], + "parameters": { + "msg_id": { + "name": "msg_id", + "description": "Message ID" + }, + "peer": { + "name": "peer", + "description": "Dialog" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_TOO_BIG", + "description": "This method is not available for groups with more than chat_read_mark_size_threshold members, see client configuration »." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "MSG_TOO_OLD", + "description": "chat_read_mark_expire_period seconds have passed since the message was sent, read receipts were deleted." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getMessages": { + "name": "messages.getMessages", + "description": [ + "Returns the list of messages by their IDs." + ], + "parameters": { + "id": { + "name": "id", + "description": "Message ID list" + } + }, + "bot_can_use": true + }, + "messages.getMessagesReactions": { + "name": "messages.getMessagesReactions", + "description": [ + "Get message reactions »¹" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ], + "parameters": { + "id": { + "name": "id", + "description": "Message IDs" + }, + "peer": { + "name": "peer", + "description": "Peer" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + } + ] + }, + "messages.getMessagesViews": { + "name": "messages.getMessagesViews", + "description": [ + "Get and increase the view counter of a message sent or forwarded from a channel¹" + ], + "links": [ + "https://core.telegram.org/api/channel" + ], + "parameters": { + "id": { + "name": "id", + "description": "ID of message" + }, + "increment": { + "name": "increment", + "description": "Whether to mark the message as viewed and increment the view counter" + }, + "peer": { + "name": "peer", + "description": "Peer where the message was found" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getOldFeaturedStickers": { + "name": "messages.getOldFeaturedStickers", + "description": [ + "Method for fetching previously featured stickers" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset": { + "name": "offset", + "description": "Offset" + } + } + }, + "messages.getOnlines": { + "name": "messages.getOnlines", + "description": [ + "Get count of online users in a chat" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "The chat" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getPeerDialogs": { + "name": "messages.getPeerDialogs", + "description": [ + "Get dialog info of specified peers" + ], + "parameters": { + "peers": { + "name": "peers", + "description": "Peers" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getPeerSettings": { + "name": "messages.getPeerSettings", + "description": [ + "Get peer settings" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "The peer" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getPinnedDialogs": { + "name": "messages.getPinnedDialogs", + "description": [ + "Get pinned dialogs" + ], + "parameters": { + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "FOLDER_ID_INVALID", + "description": "Invalid folder ID." + } + ] + }, + "messages.getPinnedSavedDialogs": { + "name": "messages.getPinnedSavedDialogs", + "bot_can_use": true + }, + "messages.getPollResults": { + "name": "messages.getPollResults", + "description": [ + "Get poll results" + ], + "parameters": { + "msg_id": { + "name": "msg_id", + "description": "Message ID of poll message" + }, + "peer": { + "name": "peer", + "description": "Peer where the poll was found" + } + }, + "errors": [ + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getPollVotes": { + "name": "messages.getPollVotes", + "description": [ + "Get poll results for non-anonymous polls" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Message ID" + }, + "limit": { + "name": "limit", + "description": "Number of results to return" + }, + "offset": { + "name": "offset", + "description": "Offset for results, taken from the next_offset field of messages.votesList¹, initially an empty string. Note: if no more results are available, the method call will return an empty next_offset; thus, avoid providing the next_offset returned in messages.votesList² if it is empty, to avoid an infinite loop.", + "links": [ + "https://core.telegram.org/constructor/messages.votesList", + "https://core.telegram.org/constructor/messages.votesList" + ] + }, + "option": { + "name": "option", + "description": "Get only results for the specified poll option" + }, + "peer": { + "name": "peer", + "description": "Chat where the poll was sent" + } + }, + "errors": [ + { + "code": 403, + "type": "BROADCAST_FORBIDDEN", + "description": "Channel poll voters and reactions cannot be fetched to prevent deanonymization." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 403, + "type": "POLL_VOTE_REQUIRED", + "description": "Cast a vote in the poll before calling this method." + } + ] + }, + "messages.getRecentLocations": { + "name": "messages.getRecentLocations", + "description": [ + "Get live location history of a certain user" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "peer": { + "name": "peer", + "description": "User" + } + } + }, + "messages.getRecentReactions": { + "name": "messages.getRecentReactions", + "description": [ + "Get recently used message reactions¹" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + } + } + }, + "messages.getRecentStickers": { + "name": "messages.getRecentStickers", + "description": [ + "Get recent stickers" + ], + "parameters": { + "attached": { + "name": "attached", + "description": "Get stickers recently attached to photo or video files" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "messages.getReplies": { + "name": "messages.getReplies", + "description": [ + "Get messages in a reply thread" + ], + "parameters": { + "add_offset": { + "name": "add_offset", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "max_id": { + "name": "max_id", + "description": "If a positive value was transferred, the method will return only messages with ID smaller than max_id" + }, + "min_id": { + "name": "min_id", + "description": "If a positive value was transferred, the method will return only messages with ID bigger than min_id" + }, + "msg_id": { + "name": "msg_id", + "description": "Message ID" + }, + "offset_date": { + "name": "offset_date", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "peer": { + "name": "peer", + "description": "Peer" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "TOPIC_ID_INVALID", + "description": "The specified topic ID is invalid." + } + ] + }, + "messages.getSavedDialogs": { + "name": "messages.getSavedDialogs", + "parameters": { + "exclude_pinned": { + "name": "exclude_pinned", + "description": " " + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_date": { + "name": "offset_date", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_peer": { + "name": "offset_peer", + "description": " " + } + }, + "bot_can_use": true + }, + "messages.getSavedGifs": { + "name": "messages.getSavedGifs", + "description": [ + "Get saved GIFs" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + } + }, + "messages.getSavedHistory": { + "name": "messages.getSavedHistory", + "parameters": { + "add_offset": { + "name": "add_offset", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "max_id": { + "name": "max_id", + "description": " " + }, + "min_id": { + "name": "min_id", + "description": " " + }, + "offset_date": { + "name": "offset_date", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "peer": { + "name": "peer", + "description": " " + } + }, + "bot_can_use": true + }, + "messages.getScheduledHistory": { + "name": "messages.getScheduledHistory", + "description": [ + "Get scheduled messages" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "peer": { + "name": "peer", + "description": "Peer" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getScheduledMessages": { + "name": "messages.getScheduledMessages", + "description": [ + "Get scheduled messages" + ], + "parameters": { + "id": { + "name": "id", + "description": "IDs of scheduled messages" + }, + "peer": { + "name": "peer", + "description": "Peer" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getSearchCounters": { + "name": "messages.getSearchCounters", + "description": [ + "Get the number of results that would be found by a messages.search¹ call with the same parameters" + ], + "links": [ + "https://core.telegram.org/method/messages.search" + ], + "parameters": { + "filters": { + "name": "filters", + "description": "Search filters" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "Peer where to search" + }, + "saved_peer_id": { + "name": "saved_peer_id", + "description": " " + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "If set, consider only messages within the specified forum topic¹", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getSearchResultsCalendar": { + "name": "messages.getSearchResultsCalendar", + "description": [ + "Returns information about the next messages of the specified type in the chat split by days.", + "Returns the results in reverse chronological order.", + "Can return partial results for the last returned day." + ], + "parameters": { + "filter": { + "name": "filter", + "description": "Message filter, inputMessagesFilterEmpty¹, inputMessagesFilterMyMentions² filters are not supported by this method.", + "links": [ + "https://core.telegram.org/constructor/inputMessagesFilterEmpty", + "https://core.telegram.org/constructor/inputMessagesFilterMyMentions" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "offset_date": { + "name": "offset_date", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "peer": { + "name": "peer", + "description": "Peer where to search" + }, + "saved_peer_id": { + "name": "saved_peer_id", + "description": " " + } + }, + "errors": [ + { + "code": 400, + "type": "FILTER_NOT_SUPPORTED", + "description": "The specified filter cannot be used in this context." + } + ] + }, + "messages.getSearchResultsPositions": { + "name": "messages.getSearchResultsPositions", + "description": [ + "Returns sparse positions of messages of the specified type in the chat to be used for shared media scroll implementation.", + "Returns the results in reverse chronological order (i.e., in order of decreasing message_id)." + ], + "parameters": { + "filter": { + "name": "filter", + "description": "Message filter, inputMessagesFilterEmpty¹, inputMessagesFilterMyMentions² filters are not supported by this method.", + "links": [ + "https://core.telegram.org/constructor/inputMessagesFilterEmpty", + "https://core.telegram.org/constructor/inputMessagesFilterMyMentions" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "peer": { + "name": "peer", + "description": "Peer where to search" + }, + "saved_peer_id": { + "name": "saved_peer_id", + "description": " " + } + } + }, + "messages.getSplitRanges": { + "name": "messages.getSplitRanges", + "description": [ + "Get message ranges for saving the user's chat history" + ] + }, + "messages.getStickerSet": { + "name": "messages.getStickerSet", + "description": [ + "Get info about a stickerset" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "stickerset": { + "name": "stickerset", + "description": "Stickerset" + } + }, + "errors": [ + { + "code": 400, + "type": "EMOTICON_STICKERPACK_MISSING", + "description": "inputStickerSetDice.emoji cannot be empty." + }, + { + "code": 406, + "type": "STICKERSET_INVALID", + "description": "The provided sticker set is invalid." + } + ], + "bot_can_use": true + }, + "messages.getStickers": { + "name": "messages.getStickers", + "description": [ + "Get stickers by emoji" + ], + "parameters": { + "emoticon": { + "name": "emoticon", + "description": "The emoji" + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "EMOTICON_EMPTY", + "description": "The emoji is empty." + } + ] + }, + "messages.getSuggestedDialogFilters": { + "name": "messages.getSuggestedDialogFilters", + "description": [ + "Get suggested folders¹" + ], + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "messages.getTopReactions": { + "name": "messages.getTopReactions", + "description": [ + "Got popular message reactions¹" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + } + } + }, + "messages.getUnreadMentions": { + "name": "messages.getUnreadMentions", + "description": [ + "Get unread messages where we were mentioned" + ], + "parameters": { + "add_offset": { + "name": "add_offset", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "max_id": { + "name": "max_id", + "description": "Maximum message ID to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "min_id": { + "name": "min_id", + "description": "Minimum message ID to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "peer": { + "name": "peer", + "description": "Peer where to look for mentions" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "If set, considers only messages within the specified forum topic¹", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.getUnreadReactions": { + "name": "messages.getUnreadReactions", + "description": [ + "Get unread reactions to messages you sent" + ], + "parameters": { + "add_offset": { + "name": "add_offset", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "max_id": { + "name": "max_id", + "description": "Only return reactions for messages up until this message ID" + }, + "min_id": { + "name": "min_id", + "description": "Only return reactions for messages starting from this message ID" + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "peer": { + "name": "peer", + "description": "Peer" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "If set, considers only reactions to messages within the specified forum topic¹", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + } + } + }, + "messages.getWebPage": { + "name": "messages.getWebPage", + "description": [ + "Get instant view¹ page" + ], + "links": [ + "https://instantview.telegram.org" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "url": { + "name": "url", + "description": "URL of IV page to fetch" + } + }, + "errors": [ + { + "code": 400, + "type": "WC_CONVERT_URL_INVALID", + "description": "WC convert URL invalid." + } + ] + }, + "messages.getWebPagePreview": { + "name": "messages.getWebPagePreview", + "description": [ + "Get preview of webpage" + ], + "parameters": { + "entities": { + "name": "entities", + "description": "Message entities for styled text¹", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "message": { + "name": "message", + "description": "Message from which to extract the preview" + } + }, + "errors": [ + { + "code": 400, + "type": "ENTITY_BOUNDS_INVALID", + "description": "A specified entity offset or length is invalid, see here » for info on how to properly compute the entity offset/length." + }, + { + "code": 400, + "type": "MESSAGE_EMPTY", + "description": "The provided message is empty." + } + ] + }, + "messages.hideAllChatJoinRequests": { + "name": "messages.hideAllChatJoinRequests", + "description": [ + "Dismiss or approve all join requests¹ related to a specific chat or channel." + ], + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ], + "parameters": { + "approved": { + "name": "approved", + "description": "Whether to dismiss or approve all chat join requests »¹", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "link": { + "name": "link", + "description": "Only dismiss or approve join requests »¹ initiated using this invite link", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + }, + "peer": { + "name": "peer", + "description": "The chat or channel" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNELS_TOO_MUCH", + "description": "You have joined too many channels/supergroups." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "HIDE_REQUESTER_MISSING", + "description": "The join request was missing or was already handled." + }, + { + "code": 400, + "type": "INVITE_HASH_EXPIRED", + "description": "The invite link has expired." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USER_CHANNELS_TOO_MUCH", + "description": "One of the users you tried to add is already in too many channels/supergroups." + } + ] + }, + "messages.hideChatJoinRequest": { + "name": "messages.hideChatJoinRequest", + "description": [ + "Dismiss or approve a chat join request¹ related to a specific chat or channel." + ], + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ], + "parameters": { + "approved": { + "name": "approved", + "description": "Whether to dismiss or approve the chat join request »¹", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "The chat or channel" + }, + "user_id": { + "name": "user_id", + "description": "The user whose join request »¹ should be dismissed or approved", + "links": [ + "https://core.telegram.org/api/invites#join-requests" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNELS_TOO_MUCH", + "description": "You have joined too many channels/supergroups." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "HIDE_REQUESTER_MISSING", + "description": "The join request was missing or was already handled." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USER_ALREADY_PARTICIPANT", + "description": "The user is already in the group." + }, + { + "code": 403, + "type": "USER_CHANNELS_TOO_MUCH", + "description": "One of the users you tried to add is already in too many channels/supergroups." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ], + "bot_can_use": true + }, + "messages.hidePeerSettingsBar": { + "name": "messages.hidePeerSettingsBar", + "description": [ + "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 action bar »²." + ], + "links": [ + "https://core.telegram.org/api/action-bar", + "https://core.telegram.org/api/action-bar" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "Peer" + } + } + }, + "messages.importChatInvite": { + "name": "messages.importChatInvite", + "description": [ + "Import a chat invite and join a private chat/supergroup/channel" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "hash from a chat invite deep link¹", + "links": [ + "https://core.telegram.org/api/links#chat-invite-links" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNELS_TOO_MUCH", + "description": "You have joined too many channels/supergroups." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_INVALID", + "description": "Invalid chat." + }, + { + "code": 400, + "type": "INVITE_HASH_EMPTY", + "description": "The invite hash is empty." + }, + { + "code": 406, + "type": "INVITE_HASH_EXPIRED", + "description": "The invite link has expired." + }, + { + "code": 400, + "type": "INVITE_HASH_INVALID", + "description": "The invite hash is invalid." + }, + { + "code": 400, + "type": "INVITE_REQUEST_SENT", + "description": "You have successfully requested to join this chat or channel." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USERS_TOO_MUCH", + "description": "The maximum number of users has been exceeded (to create a chat, for example)." + }, + { + "code": 400, + "type": "USER_ALREADY_PARTICIPANT", + "description": "The user is already in the group." + }, + { + "code": 400, + "type": "USER_CHANNELS_TOO_MUCH", + "description": "One of the users you tried to add is already in too many channels/supergroups." + } + ] + }, + "messages.initHistoryImport": { + "name": "messages.initHistoryImport", + "description": [ + "Import chat history from a foreign chat app into a specific Telegram chat, click here for more info about imported chats »¹." + ], + "links": [ + "https://core.telegram.org/api/import" + ], + "parameters": { + "file": { + "name": "file", + "description": "File with messages to import." + }, + "media_count": { + "name": "media_count", + "description": "Number of media files associated with the chat that will be uploaded using messages.uploadImportedMedia¹.", + "links": [ + "https://core.telegram.org/method/messages.uploadImportedMedia" + ] + }, + "peer": { + "name": "peer", + "description": "The Telegram chat where the history should be imported¹.", + "links": [ + "https://core.telegram.org/api/import" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "IMPORT_FILE_INVALID", + "description": "The specified chat export file is invalid." + }, + { + "code": 400, + "type": "IMPORT_FORMAT_UNRECOGNIZED", + "description": "The specified chat export file was exported from an unsupported chat app." + }, + { + "code": 406, + "type": "PREVIOUS_CHAT_IMPORT_ACTIVE_WAIT_%dMIN", + "description": "Import for this chat is already in progress, wait %d minutes before starting a new one." + } + ] + }, + "messages.installStickerSet": { + "name": "messages.installStickerSet", + "description": [ + "Install a stickerset" + ], + "parameters": { + "archived": { + "name": "archived", + "description": "Whether to archive stickerset" + }, + "stickerset": { + "name": "stickerset", + "description": "Stickerset to install" + } + }, + "errors": [ + { + "code": 406, + "type": "STICKERSET_INVALID", + "description": "The provided sticker set is invalid." + } + ] + }, + "messages.markDialogUnread": { + "name": "messages.markDialogUnread", + "description": [ + "Manually mark dialog as unread" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "Dialog" + }, + "unread": { + "name": "unread", + "description": "Mark as unread/read" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.migrateChat": { + "name": "messages.migrateChat", + "description": [ + "Turn a basic group into a supergroup¹" + ], + "links": [ + "https://core.telegram.org/api/channel#migration" + ], + "parameters": { + "chat_id": { + "name": "chat_id", + "description": "Basic group¹ to migrate", + "links": [ + "https://core.telegram.org/api/channel#basic-groups" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNELS_TOO_MUCH", + "description": "You have joined too many channels/supergroups." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 500, + "type": "CHAT_INVALID", + "description": "Invalid chat." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.prolongWebView": { + "name": "messages.prolongWebView", + "description": [ + "Indicate to the server (from the user side) that the user is still using a web app.", + "If the method returns a QUERY_ID_INVALID error, the webview must be closed." + ], + "parameters": { + "bot": { + "name": "bot", + "description": "Bot that owns the web app¹", + "links": [ + "https://core.telegram.org/api/bots/webapps" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "Dialog where the web app was opened." + }, + "query_id": { + "name": "query_id", + "description": "Web app interaction ID obtained from messages.requestWebView¹", + "links": [ + "https://core.telegram.org/method/messages.requestWebView" + ] + }, + "reply_to": { + "name": "reply_to", + "description": "If set, indicates that the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated¹ should be sent in reply to the specified message or story.", + "links": [ + "https://core.telegram.org/method/messages.sendWebViewResultMessage" + ] + }, + "send_as": { + "name": "send_as", + "description": "Open the web app as the specified peer" + }, + "silent": { + "name": "silent", + "description": "Whether the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated¹ should be sent silently (no notifications for the receivers).", + "links": [ + "https://core.telegram.org/method/messages.sendWebViewResultMessage" + ] + } + } + }, + "messages.rateTranscribedAudio": { + "name": "messages.rateTranscribedAudio", + "description": [ + "Rate transcribed voice message¹" + ], + "links": [ + "https://core.telegram.org/api/transcribe" + ], + "parameters": { + "good": { + "name": "good", + "description": "Whether the transcription was correct" + }, + "msg_id": { + "name": "msg_id", + "description": "Message ID" + }, + "peer": { + "name": "peer", + "description": "Peer where the voice message was sent" + }, + "transcription_id": { + "name": "transcription_id", + "description": "Transcription ID" + } + } + }, + "messages.readDiscussion": { + "name": "messages.readDiscussion", + "description": [ + "Mark a thread¹ as read" + ], + "links": [ + "https://core.telegram.org/api/threads" + ], + "parameters": { + "msg_id": { + "name": "msg_id", + "description": "ID of message that started the thread" + }, + "peer": { + "name": "peer", + "description": "Group ID" + }, + "read_max_id": { + "name": "read_max_id", + "description": "ID up to which thread messages were read" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.readEncryptedHistory": { + "name": "messages.readEncryptedHistory", + "description": [ + "Marks message history within a secret chat as read." + ], + "parameters": { + "max_date": { + "name": "max_date", + "description": "Maximum date value for received messages in history" + }, + "peer": { + "name": "peer", + "description": "Secret chat ID" + } + }, + "errors": [ + { + "code": 400, + "type": "MSG_WAIT_FAILED", + "description": "A waiting call returned an error." + } + ] + }, + "messages.readFeaturedStickers": { + "name": "messages.readFeaturedStickers", + "description": [ + "Mark new featured stickers as read" + ], + "parameters": { + "id": { + "name": "id", + "description": "IDs of stickersets to mark as read" + } + } + }, + "messages.readHistory": { + "name": "messages.readHistory", + "description": [ + "Marks message history as read." + ], + "parameters": { + "max_id": { + "name": "max_id", + "description": "If a positive value is passed, only messages with identifiers less or equal than the given one will be read" + }, + "peer": { + "name": "peer", + "description": "Target user or group" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.readMentions": { + "name": "messages.readMentions", + "description": [ + "Mark mentions as read" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "Dialog" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "Mark as read only mentions within the specified forum topic¹", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.readMessageContents": { + "name": "messages.readMessageContents", + "description": [ + "Notifies the sender about the recipient having listened a voice message or watched a video." + ], + "parameters": { + "id": { + "name": "id", + "description": "Message ID list" + } + } + }, + "messages.readReactions": { + "name": "messages.readReactions", + "description": [ + "Mark message reactions »¹ as read" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "Peer" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "Mark as read only reactions to messages within the specified forum topic¹", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.receivedMessages": { + "name": "messages.receivedMessages", + "description": [ + "Confirms receipt of messages by a client, cancels PUSH-notification sending." + ], + "parameters": { + "max_id": { + "name": "max_id", + "description": "Maximum message ID available in a client." + } + } + }, + "messages.receivedQueue": { + "name": "messages.receivedQueue", + "description": [ + "Confirms receipt of messages in a secret chat by client, cancels push notifications.", + "The method returns a list of random_ids of messages for which push notifications were cancelled." + ], + "parameters": { + "max_qts": { + "name": "max_qts", + "description": "Maximum qts value available at the client" + } + }, + "errors": [ + { + "code": 400, + "type": "MAX_QTS_INVALID", + "description": "The specified max_qts is invalid." + }, + { + "code": 500, + "type": "MSG_WAIT_FAILED", + "description": "A waiting call returned an error." + } + ] + }, + "messages.reorderPinnedDialogs": { + "name": "messages.reorderPinnedDialogs", + "description": [ + "Reorder pinned dialogs" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + }, + "force": { + "name": "force", + "description": "If set, dialogs pinned server-side but not present in the order field will be unpinned." + }, + "order": { + "name": "order", + "description": "New dialog order" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.reorderPinnedSavedDialogs": { + "name": "messages.reorderPinnedSavedDialogs", + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "force": { + "name": "force", + "description": " " + }, + "order": { + "name": "order", + "description": " " + } + }, + "bot_can_use": true + }, + "messages.reorderStickerSets": { + "name": "messages.reorderStickerSets", + "description": [ + "Reorder installed stickersets" + ], + "parameters": { + "emojis": { + "name": "emojis", + "description": "Reorder custom emoji stickersets¹", + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "masks": { + "name": "masks", + "description": "Reorder mask stickersets" + }, + "order": { + "name": "order", + "description": "New stickerset order by stickerset IDs" + } + } + }, + "messages.report": { + "name": "messages.report", + "description": [ + "Report a message in a chat for violation of telegram's Terms of Service" + ], + "parameters": { + "id": { + "name": "id", + "description": "IDs of messages to report" + }, + "message": { + "name": "message", + "description": "Comment for report moderation" + }, + "peer": { + "name": "peer", + "description": "Peer" + }, + "reason": { + "name": "reason", + "description": "Why are these messages being reported" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.reportEncryptedSpam": { + "name": "messages.reportEncryptedSpam", + "description": [ + "Report a secret chat for spam" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "The secret chat to report" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + } + ] + }, + "messages.reportReaction": { + "name": "messages.reportReaction", + "description": [ + "Report a message reaction¹" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ], + "parameters": { + "id": { + "name": "id", + "description": "Message ID" + }, + "peer": { + "name": "peer", + "description": "Peer where the message was sent" + }, + "reaction_peer": { + "name": "reaction_peer", + "description": "Peer that sent the reaction" + } + }, + "errors": [ + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ] + }, + "messages.reportSpam": { + "name": "messages.reportSpam", + "description": [ + "Report a new incoming chat for spam, if the peer settings¹ of the chat allow us to do that" + ], + "links": [ + "https://core.telegram.org/constructor/peerSettings" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "Peer to report" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.requestAppWebView": { + "name": "messages.requestAppWebView", + "description": [ + "Open a bot mini app¹ from a named Mini App deep link², sending over user information after user confirmation.", + "After calling this method, until the user closes the webview, messages.prolongWebView¹ must be called every 60 seconds." + ], + "links": [ + "https://core.telegram.org/bots/webapps", + "https://core.telegram.org/api/links#named-mini-app-links", + "https://core.telegram.org/method/messages.prolongWebView" + ], + "parameters": { + "app": { + "name": "app", + "description": "The app obtained by invoking messages.getBotApp¹ as specified in the named Mini App deep link² docs.", + "links": [ + "https://core.telegram.org/method/messages.getBotApp", + "https://core.telegram.org/api/links#named-mini-app-links" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "If the client has clicked on the link in a Telegram chat, pass the chat's peer information; otherwise pass the bot's peer information, instead." + }, + "platform": { + "name": "platform", + "description": "Short name of the application; 0-64 English letters, digits, and underscores" + }, + "start_param": { + "name": "start_param", + "description": "If the startapp query string parameter is present in the named Mini App deep link¹, pass it to start_param.", + "links": [ + "https://core.telegram.org/api/links#named-mini-app-links" + ] + }, + "theme_params": { + "name": "theme_params", + "description": "Theme parameters »¹", + "links": [ + "https://core.telegram.org/api/bots/webapps#theme-parameters" + ] + }, + "write_allowed": { + "name": "write_allowed", + "description": "Set this flag if the bot is asking permission to send messages to the user as specified in the named Mini App deep link¹ docs, and the user agreed.", + "links": [ + "https://core.telegram.org/api/links#named-mini-app-links" + ] + } + } + }, + "messages.requestEncryption": { + "name": "messages.requestEncryption", + "description": [ + "Sends a request to start a secret chat to the user." + ], + "parameters": { + "g_a": { + "name": "g_a", + "description": "A = g ^ a mod p, see Wikipedia¹", + "links": [ + "https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange" + ] + }, + "random_id": { + "name": "random_id", + "description": "Unique client request ID required to prevent resending. This also doubles as the chat ID." + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + }, + "errors": [ + { + "code": 400, + "type": "DH_G_A_INVALID", + "description": "g_a invalid." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ] + }, + "messages.requestSimpleWebView": { + "name": "messages.requestSimpleWebView", + "description": [ + "Open a bot mini app¹." + ], + "links": [ + "https://core.telegram.org/api/bots/webapps" + ], + "parameters": { + "bot": { + "name": "bot", + "description": "Bot that owns the mini app" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "from_side_menu": { + "name": "from_side_menu", + "description": "Set this flag if opening the Mini App from the installed side menu entry »¹ or from a Mini App link »².", + "links": [ + "https://core.telegram.org/api/bots/attach", + "https://core.telegram.org/api/links#mini-app-links" + ] + }, + "from_switch_webview": { + "name": "from_switch_webview", + "description": "Whether the webapp was opened by clicking on the switch_webview button shown on top of the inline results list returned by messages.getInlineBotResults¹.", + "links": [ + "https://core.telegram.org/method/messages.getInlineBotResults" + ] + }, + "platform": { + "name": "platform", + "description": "Short name of the application; 0-64 English letters, digits, and underscores" + }, + "start_param": { + "name": "start_param", + "description": "Start parameter, if opening from a Mini App link »¹.", + "links": [ + "https://core.telegram.org/api/links#mini-app-links" + ] + }, + "theme_params": { + "name": "theme_params", + "description": "Theme parameters »¹", + "links": [ + "https://core.telegram.org/api/bots/webapps#theme-parameters" + ] + }, + "url": { + "name": "url", + "description": "Web app URL, if opening from a keyboard button or inline result" + } + } + }, + "messages.requestUrlAuth": { + "name": "messages.requestUrlAuth", + "description": [ + "Get more info about a Seamless Telegram Login authorization request, for more info click here »¹" + ], + "links": [ + "https://core.telegram.org/api/url-authorization" + ], + "parameters": { + "button_id": { + "name": "button_id", + "description": "The ID of the button with the authorization request" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "msg_id": { + "name": "msg_id", + "description": "The message" + }, + "peer": { + "name": "peer", + "description": "Peer where the message is located" + }, + "url": { + "name": "url", + "description": "URL used for link URL authorization, click here for more info »¹", + "links": [ + "https://core.telegram.org/api/url-authorization#link-url-authorization" + ] + } + } + }, + "messages.requestWebView": { + "name": "messages.requestWebView", + "description": [ + "Open a bot mini app¹, sending over user information after user confirmation.", + "After calling this method, until the user closes the webview, messages.prolongWebView¹ must be called every 60 seconds." + ], + "links": [ + "https://core.telegram.org/bots/webapps", + "https://core.telegram.org/method/messages.prolongWebView" + ], + "parameters": { + "bot": { + "name": "bot", + "description": "Bot that owns the web app¹", + "links": [ + "https://core.telegram.org/api/bots/webapps" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "from_bot_menu": { + "name": "from_bot_menu", + "description": "Whether the webview was opened by clicking on the bot's menu button »¹.", + "links": [ + "https://core.telegram.org/api/bots/menu" + ] + }, + "peer": { + "name": "peer", + "description": "Dialog where the web app is being opened, and where the resulting message will be sent (see the docs for more info »¹).", + "links": [ + "https://core.telegram.org/api/bots/webapps" + ] + }, + "platform": { + "name": "platform", + "description": "Short name of the application; 0-64 English letters, digits, and underscores" + }, + "reply_to": { + "name": "reply_to", + "description": "If set, indicates that the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated¹ should be sent in reply to the specified message or story.", + "links": [ + "https://core.telegram.org/method/messages.sendWebViewResultMessage" + ] + }, + "send_as": { + "name": "send_as", + "description": "Open the web app as the specified peer, sending the resulting the message as the specified peer." + }, + "silent": { + "name": "silent", + "description": "Whether the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated¹ should be sent silently (no notifications for the receivers).", + "links": [ + "https://core.telegram.org/method/messages.sendWebViewResultMessage" + ] + }, + "start_param": { + "name": "start_param", + "description": "If the web app was opened from the attachment menu using a attachment menu deep link¹, start_param should contain the data from the startattach parameter.", + "links": [ + "https://core.telegram.org/api/links#bot-attachment-or-side-menu-links" + ] + }, + "theme_params": { + "name": "theme_params", + "description": "Theme parameters »¹", + "links": [ + "https://core.telegram.org/api/bots/webapps#theme-parameters" + ] + }, + "url": { + "name": "url", + "description": "Web app URL¹", + "links": [ + "https://core.telegram.org/api/bots/webapps" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_INVALID", + "description": "This is not a valid bot." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.saveDefaultSendAs": { + "name": "messages.saveDefaultSendAs", + "description": [ + "Change the default peer that should be used when sending messages, reactions, poll votes to a specific group" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "Group" + }, + "send_as": { + "name": "send_as", + "description": "The default peer that should be used when sending messages to the group" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "SEND_AS_PEER_INVALID", + "description": "You can't send messages as the specified peer." + } + ] + }, + "messages.saveDraft": { + "name": "messages.saveDraft", + "description": [ + "Save a message draft¹ associated to a chat." + ], + "links": [ + "https://core.telegram.org/api/drafts" + ], + "parameters": { + "entities": { + "name": "entities", + "description": "Message entities¹ for styled text", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "media": { + "name": "media", + "description": "Attached media" + }, + "message": { + "name": "message", + "description": "The draft" + }, + "no_webpage": { + "name": "no_webpage", + "description": "Disable generation of the webpage preview" + }, + "peer": { + "name": "peer", + "description": "Destination of the message that should be sent" + }, + "reply_to": { + "name": "reply_to", + "description": "If set, indicates that the message should be sent in reply to the specified message or story." + } + }, + "errors": [ + { + "code": 400, + "type": "ENTITY_BOUNDS_INVALID", + "description": "A specified entity offset or length is invalid, see here » for info on how to properly compute the entity offset/length." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.saveGif": { + "name": "messages.saveGif", + "description": [ + "Add GIF to saved gifs list" + ], + "parameters": { + "id": { + "name": "id", + "description": "GIF to save" + }, + "unsave": { + "name": "unsave", + "description": "Whether to remove GIF from saved gifs list" + } + }, + "errors": [ + { + "code": 400, + "type": "GIF_ID_INVALID", + "description": "The provided GIF ID is invalid." + } + ] + }, + "messages.saveRecentSticker": { + "name": "messages.saveRecentSticker", + "description": [ + "Add/remove sticker from recent stickers list" + ], + "parameters": { + "attached": { + "name": "attached", + "description": "Whether to add/remove stickers recently attached to photo or video files" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Sticker" + }, + "unsave": { + "name": "unsave", + "description": "Whether to save or unsave the sticker" + } + }, + "errors": [ + { + "code": 400, + "type": "STICKER_ID_INVALID", + "description": "The provided sticker ID is invalid." + } + ] + }, + "messages.search": { + "name": "messages.search", + "description": [ + "Search for messages." + ], + "parameters": { + "add_offset": { + "name": "add_offset", + "description": "Additional offset¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "filter": { + "name": "filter", + "description": "Filter to return only specified message types" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "from_id": { + "name": "from_id", + "description": "Only return messages sent by the specified user ID" + }, + "hash": { + "name": "hash", + "description": "Hash¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "limit": { + "name": "limit", + "description": "Number of results to return¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "max_date": { + "name": "max_date", + "description": "If a positive value was transferred, only messages with a sending date smaller than the transferred one will be returned" + }, + "max_id": { + "name": "max_id", + "description": "Maximum message ID to return¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "min_date": { + "name": "min_date", + "description": "If a positive value was transferred, only messages with a sending date bigger than the transferred one will be returned" + }, + "min_id": { + "name": "min_id", + "description": "Minimum message ID to return¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_id": { + "name": "offset_id", + "description": "Only return messages starting from the specified message ID" + }, + "peer": { + "name": "peer", + "description": "User or chat, histories with which are searched, or (inputPeerEmpty)¹ constructor to search in all private chats and normal groups (not channels) »². Use messages.searchGlobal³ to search globally in all chats, groups, supergroups and channels.", + "links": [ + "https://core.telegram.org/constructor/inputPeerEmpty", + "https://core.telegram.org/api/channel", + "https://core.telegram.org/method/messages.searchGlobal" + ] + }, + "q": { + "name": "q", + "description": "Text search request" + }, + "saved_peer_id": { + "name": "saved_peer_id", + "description": " " + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "Thread ID¹", + "links": [ + "https://core.telegram.org/api/threads" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "FROM_PEER_INVALID", + "description": "The specified from_id is invalid." + }, + { + "code": 400, + "type": "INPUT_FILTER_INVALID", + "description": "The specified filter is invalid." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_NOT_SUPPORTED", + "description": "The provided peer ID is not supported." + }, + { + "code": 400, + "type": "SEARCH_QUERY_EMPTY", + "description": "The search query is empty." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ] + }, + "messages.searchCustomEmoji": { + "name": "messages.searchCustomEmoji", + "description": [ + "Look for custom emojis¹ associated to a UTF8 emoji" + ], + "links": [ + "https://core.telegram.org/api/custom-emoji" + ], + "parameters": { + "emoticon": { + "name": "emoticon", + "description": "The emoji" + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "EMOTICON_EMPTY", + "description": "The emoji is empty." + } + ], + "bot_can_use": true + }, + "messages.searchEmojiStickerSets": { + "name": "messages.searchEmojiStickerSets", + "description": [ + "Search for custom emoji stickersets »¹" + ], + "links": [ + "https://core.telegram.org/api/custom-emoji" + ], + "parameters": { + "exclude_featured": { + "name": "exclude_featured", + "description": "Exclude featured stickersets from results" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "q": { + "name": "q", + "description": "Query string" + } + } + }, + "messages.searchGlobal": { + "name": "messages.searchGlobal", + "description": [ + "Search for messages and peers globally" + ], + "parameters": { + "filter": { + "name": "filter", + "description": "Global search filter" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "folder_id": { + "name": "folder_id", + "description": "Peer folder ID, for more info click here¹", + "links": [ + "https://core.telegram.org/api/folders#peer-folders" + ] + }, + "limit": { + "name": "limit", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "max_date": { + "name": "max_date", + "description": "If a positive value was transferred, the method will return only messages with date smaller than max_date" + }, + "min_date": { + "name": "min_date", + "description": "If a positive value was specified, the method will return only messages with date bigger than min_date" + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_peer": { + "name": "offset_peer", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_rate": { + "name": "offset_rate", + "description": "Initially 0, then set to the next_rate parameter of messages.messagesSlice¹", + "links": [ + "https://core.telegram.org/constructor/messages.messagesSlice" + ] + }, + "q": { + "name": "q", + "description": "Query" + } + }, + "errors": [ + { + "code": 400, + "type": "FOLDER_ID_INVALID", + "description": "Invalid folder ID." + }, + { + "code": 400, + "type": "SEARCH_QUERY_EMPTY", + "description": "The search query is empty." + } + ] + }, + "messages.searchSentMedia": { + "name": "messages.searchSentMedia", + "description": [ + "View and search recently sent media.", + "This method does not support pagination." + ], + "parameters": { + "filter": { + "name": "filter", + "description": "Message filter" + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return (max 100)." + }, + "q": { + "name": "q", + "description": "Optional search query" + } + }, + "errors": [ + { + "code": 400, + "type": "FILTER_NOT_SUPPORTED", + "description": "The specified filter cannot be used in this context." + } + ] + }, + "messages.searchStickerSets": { + "name": "messages.searchStickerSets", + "description": [ + "Search for stickersets" + ], + "parameters": { + "exclude_featured": { + "name": "exclude_featured", + "description": "Exclude featured stickersets from results" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "q": { + "name": "q", + "description": "Query string" + } + } + }, + "messages.sendBotRequestedPeer": { + "name": "messages.sendBotRequestedPeer", + "description": [ + "Send one or more chosen peers, as requested by a keyboardButtonRequestPeer¹ button." + ], + "links": [ + "https://core.telegram.org/constructor/keyboardButtonRequestPeer" + ], + "parameters": { + "button_id": { + "name": "button_id", + "description": "The button_id field from the keyboardButtonRequestPeer¹ constructor.", + "links": [ + "https://core.telegram.org/constructor/keyboardButtonRequestPeer" + ] + }, + "msg_id": { + "name": "msg_id", + "description": "ID of the message that contained the reply keyboard with the keyboardButtonRequestPeer¹ button.", + "links": [ + "https://core.telegram.org/constructor/keyboardButtonRequestPeer" + ] + }, + "peer": { + "name": "peer", + "description": "The bot that sent the keyboardButtonRequestPeer¹ button.", + "links": [ + "https://core.telegram.org/constructor/keyboardButtonRequestPeer" + ] + }, + "requested_peers": { + "name": "requested_peers", + "description": "The chosen peers." + } + }, + "bot_can_use": true + }, + "messages.sendEncrypted": { + "name": "messages.sendEncrypted", + "description": [ + "Sends a text message to a secret chat." + ], + "parameters": { + "data": { + "name": "data", + "description": "TL-serialization of DecryptedMessage¹ type, encrypted with a key that was created during chat initialization", + "links": [ + "https://core.telegram.org/type/DecryptedMessage" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "Secret chat ID" + }, + "random_id": { + "name": "random_id", + "description": "Unique client message ID, necessary to avoid message resending" + }, + "silent": { + "name": "silent", + "description": "Send encrypted message without a notification" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "DATA_INVALID", + "description": "Encrypted data invalid." + }, + { + "code": 400, + "type": "DATA_TOO_LONG", + "description": "Data too long." + }, + { + "code": 400, + "type": "ENCRYPTION_DECLINED", + "description": "The secret chat was declined." + }, + { + "code": 500, + "type": "MSG_WAIT_FAILED", + "description": "A waiting call returned an error." + }, + { + "code": 403, + "type": "USER_IS_BLOCKED", + "description": "You were blocked by this user." + } + ] + }, + "messages.sendEncryptedFile": { + "name": "messages.sendEncryptedFile", + "description": [ + "Sends a message with a file attachment to a secret chat" + ], + "parameters": { + "data": { + "name": "data", + "description": "TL-serialization of DecryptedMessage¹ type, encrypted with a key generated during chat initialization", + "links": [ + "https://core.telegram.org/type/DecryptedMessage" + ] + }, + "file": { + "name": "file", + "description": "File attachment for the secret chat" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "Secret chat ID" + }, + "random_id": { + "name": "random_id", + "description": "Unique client message ID necessary to prevent message resending" + }, + "silent": { + "name": "silent", + "description": "Whether to send the file without triggering a notification" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "DATA_TOO_LONG", + "description": "Data too long." + }, + { + "code": 400, + "type": "ENCRYPTION_DECLINED", + "description": "The secret chat was declined." + }, + { + "code": 400, + "type": "FILE_EMTPY", + "description": "An empty file was provided." + }, + { + "code": 400, + "type": "MD5_CHECKSUM_INVALID", + "description": "The MD5 checksums do not match." + }, + { + "code": 400, + "type": "MSG_WAIT_FAILED", + "description": "A waiting call returned an error." + } + ] + }, + "messages.sendEncryptedService": { + "name": "messages.sendEncryptedService", + "description": [ + "Sends a service message to a secret chat." + ], + "parameters": { + "data": { + "name": "data", + "description": "TL-serialization of DecryptedMessage¹ type, encrypted with a key generated during chat initialization", + "links": [ + "https://core.telegram.org/type/DecryptedMessage" + ] + }, + "peer": { + "name": "peer", + "description": "Secret chat ID" + }, + "random_id": { + "name": "random_id", + "description": "Unique client message ID required to prevent message resending" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "DATA_INVALID", + "description": "Encrypted data invalid." + }, + { + "code": 400, + "type": "ENCRYPTION_DECLINED", + "description": "The secret chat was declined." + }, + { + "code": 400, + "type": "ENCRYPTION_ID_INVALID", + "description": "The provided secret chat ID is invalid." + }, + { + "code": 500, + "type": "MSG_WAIT_FAILED", + "description": "A waiting call returned an error." + }, + { + "code": 403, + "type": "USER_DELETED", + "description": "You can't send this secret message because the other participant deleted their account." + }, + { + "code": 403, + "type": "USER_IS_BLOCKED", + "description": "You were blocked by this user." + } + ] + }, + "messages.sendInlineBotResult": { + "name": "messages.sendInlineBotResult", + "description": [ + "Send a result obtained using messages.getInlineBotResults¹." + ], + "links": [ + "https://core.telegram.org/method/messages.getInlineBotResults" + ], + "parameters": { + "background": { + "name": "background", + "description": "Whether to send the message in background" + }, + "clear_draft": { + "name": "clear_draft", + "description": "Whether to clear the draft¹", + "links": [ + "https://core.telegram.org/api/drafts" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hide_via": { + "name": "hide_via", + "description": "Whether to hide the via @botname in the resulting message (only for bot usernames encountered in the config¹)", + "links": [ + "https://core.telegram.org/constructor/config" + ] + }, + "id": { + "name": "id", + "description": "Result ID from messages.getInlineBotResults¹", + "links": [ + "https://core.telegram.org/method/messages.getInlineBotResults" + ] + }, + "peer": { + "name": "peer", + "description": "Destination" + }, + "query_id": { + "name": "query_id", + "description": "Query ID from messages.getInlineBotResults¹", + "links": [ + "https://core.telegram.org/method/messages.getInlineBotResults" + ] + }, + "random_id": { + "name": "random_id", + "description": "Random ID to avoid resending the same query" + }, + "reply_to": { + "name": "reply_to", + "description": "If set, indicates that the message should be sent in reply to the specified message or story." + }, + "schedule_date": { + "name": "schedule_date", + "description": "Scheduled message date for scheduled messages" + }, + "send_as": { + "name": "send_as", + "description": "Send this message as the specified peer" + }, + "silent": { + "name": "silent", + "description": "Whether to send the message silently (no notification will be triggered on the other client)" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_GUEST_SEND_FORBIDDEN", + "description": "You join the discussion group before commenting, see here » for more info." + }, + { + "code": 400, + "type": "CHAT_RESTRICTED", + "description": "You can't send messages in this chat, you were restricted." + }, + { + "code": 403, + "type": "CHAT_SEND_AUDIOS_FORBIDDEN", + "description": "You can't send audio messages in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_GAME_FORBIDDEN", + "description": "You can't send a game to this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_GIFS_FORBIDDEN", + "description": "You can't send gifs in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_INLINE_FORBIDDEN", + "description": "You can't send inline messages in this group." + }, + { + "code": 403, + "type": "CHAT_SEND_MEDIA_FORBIDDEN", + "description": "You can't send media in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_PHOTOS_FORBIDDEN", + "description": "You can't send photos in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_STICKERS_FORBIDDEN", + "description": "You can't send stickers in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_VOICES_FORBIDDEN", + "description": "You can't send voice recordings in this chat." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "ENTITY_BOUNDS_INVALID", + "description": "A specified entity offset or length is invalid, see here » for info on how to properly compute the entity offset/length." + }, + { + "code": 400, + "type": "INLINE_RESULT_EXPIRED", + "description": "The inline query expired." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MEDIA_EMPTY", + "description": "The provided media object is invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "QUERY_ID_EMPTY", + "description": "The query ID is empty." + }, + { + "code": 500, + "type": "RANDOM_ID_DUPLICATE", + "description": "You provided a random ID that was already used." + }, + { + "code": 400, + "type": "RESULT_ID_EMPTY", + "description": "Result ID empty." + }, + { + "code": 400, + "type": "RESULT_ID_INVALID", + "description": "One of the specified result IDs is invalid." + }, + { + "code": 400, + "type": "SCHEDULE_DATE_TOO_LATE", + "description": "You can't schedule a message this far in the future." + }, + { + "code": 400, + "type": "SCHEDULE_TOO_MUCH", + "description": "There are too many scheduled messages." + }, + { + "code": 500, + "type": "SEND_MEDIA_INVALID" + }, + { + "code": 420, + "type": "SLOWMODE_WAIT_%d", + "description": "Slowmode is enabled in this chat: wait %d seconds before sending another message to this chat." + }, + { + "code": 400, + "type": "TOPIC_DELETED", + "description": "The specified topic was deleted." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + }, + { + "code": 400, + "type": "VOICE_MESSAGES_FORBIDDEN", + "description": "This user's privacy settings forbid you from sending voice messages." + }, + { + "code": 400, + "type": "WEBPAGE_CURL_FAILED", + "description": "Failure while fetching the webpage with cURL." + }, + { + "code": 400, + "type": "WEBPAGE_MEDIA_EMPTY", + "description": "Webpage media empty." + }, + { + "code": 400, + "type": "YOU_BLOCKED_USER", + "description": "You blocked this user." + } + ] + }, + "messages.sendMedia": { + "name": "messages.sendMedia", + "description": [ + "Send a media" + ], + "parameters": { + "background": { + "name": "background", + "description": "Send message in background" + }, + "clear_draft": { + "name": "clear_draft", + "description": "Clear the draft" + }, + "entities": { + "name": "entities", + "description": "Message entities¹ for styled text", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "media": { + "name": "media", + "description": "Attached media" + }, + "message": { + "name": "message", + "description": "Caption" + }, + "noforwards": { + "name": "noforwards", + "description": "Only for bots, disallows forwarding and saving of the messages, even if the destination chat doesn't have content protection¹ enabled", + "links": [ + "https://telegram.org/blog/protected-content-delete-by-date-and-more" + ] + }, + "peer": { + "name": "peer", + "description": "Destination" + }, + "random_id": { + "name": "random_id", + "description": "Random ID to avoid resending the same message" + }, + "reply_markup": { + "name": "reply_markup", + "description": "Reply markup for bot keyboards" + }, + "reply_to": { + "name": "reply_to", + "description": "If set, indicates that the message should be sent in reply to the specified message or story." + }, + "schedule_date": { + "name": "schedule_date", + "description": "Scheduled message date for scheduled messages¹", + "links": [ + "https://core.telegram.org/api/scheduled-messages" + ] + }, + "send_as": { + "name": "send_as", + "description": "Send this message as the specified peer" + }, + "silent": { + "name": "silent", + "description": "Send message silently (no notification should be triggered)" + }, + "update_stickersets_order": { + "name": "update_stickersets_order", + "description": "Whether to move used stickersets to top, see here for more info on this flag »¹", + "links": [ + "https://core.telegram.org/api/stickers#recent-stickersets" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_PAYMENTS_DISABLED", + "description": "Please enable bot payments in botfather before calling this method." + }, + { + "code": 400, + "type": "BROADCAST_PUBLIC_VOTERS_FORBIDDEN", + "description": "You can't forward polls with public voters." + }, + { + "code": 400, + "type": "BUTTON_DATA_INVALID", + "description": "The data of one or more of the buttons you provided is invalid." + }, + { + "code": 400, + "type": "BUTTON_TYPE_INVALID", + "description": "The type of one or more of the buttons you provided is invalid." + }, + { + "code": 400, + "type": "BUTTON_URL_INVALID", + "description": "Button URL invalid." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_FORWARDS_RESTRICTED", + "description": "You can't forward messages from a protected chat." + }, + { + "code": 403, + "type": "CHAT_GUEST_SEND_FORBIDDEN", + "description": "You join the discussion group before commenting, see here » for more info." + }, + { + "code": 400, + "type": "CHAT_RESTRICTED", + "description": "You can't send messages in this chat, you were restricted." + }, + { + "code": 403, + "type": "CHAT_SEND_AUDIOS_FORBIDDEN", + "description": "You can't send audio messages in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_DOCS_FORBIDDEN", + "description": "You can't send documents in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_GIFS_FORBIDDEN", + "description": "You can't send gifs in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_MEDIA_FORBIDDEN", + "description": "You can't send media in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_PHOTOS_FORBIDDEN", + "description": "You can't send photos in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_PLAIN_FORBIDDEN", + "description": "You can't send non-media (text) messages in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_POLL_FORBIDDEN", + "description": "You can't send polls in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_STICKERS_FORBIDDEN", + "description": "You can't send stickers in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_VIDEOS_FORBIDDEN", + "description": "You can't send videos in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_VOICES_FORBIDDEN", + "description": "You can't send voice recordings in this chat." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "CURRENCY_TOTAL_AMOUNT_INVALID", + "description": "The total amount of all prices is invalid." + }, + { + "code": 400, + "type": "DOCUMENT_INVALID", + "description": "The specified document is invalid." + }, + { + "code": 400, + "type": "EMOTICON_INVALID", + "description": "The specified emoji is invalid." + }, + { + "code": 400, + "type": "ENTITY_BOUNDS_INVALID", + "description": "A specified entity offset or length is invalid, see here » for info on how to properly compute the entity offset/length." + }, + { + "code": 400, + "type": "EXTERNAL_URL_INVALID", + "description": "External URL invalid." + }, + { + "code": 400, + "type": "FILE_PARTS_INVALID", + "description": "The number of file parts is invalid." + }, + { + "code": 400, + "type": "FILE_PART_LENGTH_INVALID", + "description": "The length of a file part is invalid." + }, + { + "code": 400, + "type": "FILE_REFERENCE_EMPTY", + "description": "An empty file reference was specified." + }, + { + "code": 400, + "type": "FILE_REFERENCE_EXPIRED", + "description": "File reference expired, it must be refetched as described in the documentation." + }, + { + "code": 400, + "type": "GAME_BOT_INVALID", + "description": "Bots can't send another bot's game." + }, + { + "code": 400, + "type": "IMAGE_PROCESS_FAILED", + "description": "Failure while processing image." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MD5_CHECKSUM_INVALID", + "description": "The MD5 checksums do not match." + }, + { + "code": 400, + "type": "MEDIA_CAPTION_TOO_LONG", + "description": "The caption is too long." + }, + { + "code": 400, + "type": "MEDIA_EMPTY", + "description": "The provided media object is invalid." + }, + { + "code": 400, + "type": "MEDIA_INVALID", + "description": "Media invalid." + }, + { + "code": 400, + "type": "MESSAGE_EMPTY", + "description": "The provided message is empty." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PAYMENT_PROVIDER_INVALID", + "description": "The specified payment provider is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "PHOTO_EXT_INVALID", + "description": "The extension of the photo is invalid." + }, + { + "code": 400, + "type": "PHOTO_INVALID_DIMENSIONS", + "description": "The photo dimensions are invalid." + }, + { + "code": 400, + "type": "PHOTO_SAVE_FILE_INVALID", + "description": "Internal issues, try again later." + }, + { + "code": 400, + "type": "POLL_ANSWERS_INVALID", + "description": "Invalid poll answers were provided." + }, + { + "code": 400, + "type": "POLL_ANSWER_INVALID", + "description": "One of the poll answers is not acceptable." + }, + { + "code": 400, + "type": "POLL_OPTION_DUPLICATE", + "description": "Duplicate poll options provided." + }, + { + "code": 400, + "type": "POLL_OPTION_INVALID", + "description": "Invalid poll option provided." + }, + { + "code": 400, + "type": "POLL_QUESTION_INVALID", + "description": "One of the poll questions is not acceptable." + }, + { + "code": 403, + "type": "PREMIUM_ACCOUNT_REQUIRED", + "description": "A premium account is required to execute this action." + }, + { + "code": 400, + "type": "QUIZ_CORRECT_ANSWERS_EMPTY", + "description": "No correct quiz answer was specified." + }, + { + "code": 400, + "type": "QUIZ_CORRECT_ANSWERS_TOO_MUCH", + "description": "You specified too many correct answers in a quiz, quizzes can only have one right answer!" + }, + { + "code": 400, + "type": "QUIZ_CORRECT_ANSWER_INVALID", + "description": "An invalid value was provided to the correct_answers field." + }, + { + "code": 400, + "type": "QUIZ_MULTIPLE_INVALID", + "description": "Quizzes can't have the multiple_choice flag set!" + }, + { + "code": 500, + "type": "RANDOM_ID_DUPLICATE", + "description": "You provided a random ID that was already used." + }, + { + "code": 400, + "type": "REPLY_MARKUP_BUY_EMPTY", + "description": "Reply markup for buy button empty." + }, + { + "code": 400, + "type": "REPLY_MARKUP_INVALID", + "description": "The provided reply markup is invalid." + }, + { + "code": 400, + "type": "REPLY_MARKUP_TOO_LONG", + "description": "The specified reply_markup is too long." + }, + { + "code": 400, + "type": "SCHEDULE_BOT_NOT_ALLOWED", + "description": "Bots cannot schedule messages." + }, + { + "code": 400, + "type": "SCHEDULE_DATE_TOO_LATE", + "description": "You can't schedule a message this far in the future." + }, + { + "code": 400, + "type": "SCHEDULE_TOO_MUCH", + "description": "There are too many scheduled messages." + }, + { + "code": 400, + "type": "SEND_AS_PEER_INVALID", + "description": "You can't send messages as the specified peer." + }, + { + "code": 420, + "type": "SLOWMODE_WAIT_%d", + "description": "Slowmode is enabled in this chat: wait %d seconds before sending another message to this chat." + }, + { + "code": 406, + "type": "TOPIC_CLOSED", + "description": "This topic was closed, you can't send messages to it anymore." + }, + { + "code": 406, + "type": "TOPIC_DELETED", + "description": "The specified topic was deleted." + }, + { + "code": 400, + "type": "TTL_MEDIA_INVALID", + "description": "Invalid media Time To Live was provided." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + }, + { + "code": 403, + "type": "USER_IS_BLOCKED", + "description": "You were blocked by this user." + }, + { + "code": 400, + "type": "USER_IS_BOT", + "description": "Bots can't send messages to other bots." + }, + { + "code": 400, + "type": "VIDEO_CONTENT_TYPE_INVALID", + "description": "The video's content type is invalid." + }, + { + "code": 400, + "type": "VOICE_MESSAGES_FORBIDDEN", + "description": "This user's privacy settings forbid you from sending voice messages." + }, + { + "code": 400, + "type": "WEBDOCUMENT_MIME_INVALID", + "description": "Invalid webdocument mime type provided." + }, + { + "code": 400, + "type": "WEBPAGE_CURL_FAILED", + "description": "Failure while fetching the webpage with cURL." + }, + { + "code": 400, + "type": "WEBPAGE_MEDIA_EMPTY", + "description": "Webpage media empty." + }, + { + "code": 400, + "type": "WEBPAGE_NOT_FOUND", + "description": "A preview for the specified webpage url could not be generated." + }, + { + "code": 400, + "type": "WEBPAGE_URL_INVALID", + "description": "The specified webpage url is invalid." + }, + { + "code": 400, + "type": "YOU_BLOCKED_USER", + "description": "You blocked this user." + } + ], + "bot_can_use": true + }, + "messages.sendMessage": { + "name": "messages.sendMessage", + "description": [ + "Sends a message to a chat" + ], + "parameters": { + "background": { + "name": "background", + "description": "Send this message as background message" + }, + "clear_draft": { + "name": "clear_draft", + "description": "Clear the draft field" + }, + "entities": { + "name": "entities", + "description": "Message entities¹ for sending styled text", + "links": [ + "https://core.telegram.org/api/entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "message": { + "name": "message", + "description": "The message" + }, + "no_webpage": { + "name": "no_webpage", + "description": "Set this flag to disable generation of the webpage preview" + }, + "noforwards": { + "name": "noforwards", + "description": "Only for bots, disallows forwarding and saving of the messages, even if the destination chat doesn't have content protection¹ enabled", + "links": [ + "https://telegram.org/blog/protected-content-delete-by-date-and-more" + ] + }, + "peer": { + "name": "peer", + "description": "The destination where the message will be sent" + }, + "random_id": { + "name": "random_id", + "description": "Unique client message ID required to prevent message resending" + }, + "reply_markup": { + "name": "reply_markup", + "description": "Reply markup for sending bot buttons" + }, + "reply_to": { + "name": "reply_to", + "description": "If set, indicates that the message should be sent in reply to the specified message or story." + }, + "schedule_date": { + "name": "schedule_date", + "description": "Scheduled message date for scheduled messages¹", + "links": [ + "https://core.telegram.org/api/scheduled-messages" + ] + }, + "send_as": { + "name": "send_as", + "description": "Send this message as the specified peer" + }, + "silent": { + "name": "silent", + "description": "Send this message silently (no notifications for the receivers)" + }, + "update_stickersets_order": { + "name": "update_stickersets_order", + "description": "Whether to move used stickersets to top, see here for more info on this flag »¹", + "links": [ + "https://core.telegram.org/api/stickers#recent-stickersets" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "ADMIN_RIGHTS_EMPTY" + }, + { + "code": 400, + "type": "BOT_DOMAIN_INVALID", + "description": "Bot domain invalid." + }, + { + "code": 400, + "type": "BOT_INVALID", + "description": "This is not a valid bot." + }, + { + "code": 400, + "type": "BUTTON_DATA_INVALID", + "description": "The data of one or more of the buttons you provided is invalid." + }, + { + "code": 400, + "type": "BUTTON_TYPE_INVALID", + "description": "The type of one or more of the buttons you provided is invalid." + }, + { + "code": 400, + "type": "BUTTON_URL_INVALID", + "description": "Button URL invalid." + }, + { + "code": 400, + "type": "BUTTON_USER_PRIVACY_RESTRICTED", + "description": "The privacy setting of the user specified in a inputKeyboardButtonUserProfile button do not allow creating such a button." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_GUEST_SEND_FORBIDDEN", + "description": "You join the discussion group before commenting, see here » for more info." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "CHAT_RESTRICTED", + "description": "You can't send messages in this chat, you were restricted." + }, + { + "code": 403, + "type": "CHAT_SEND_PLAIN_FORBIDDEN", + "description": "You can't send non-media (text) messages in this chat." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "DOCUMENT_INVALID", + "description": "The specified document is invalid." + }, + { + "code": 400, + "type": "ENCRYPTION_DECLINED", + "description": "The secret chat was declined." + }, + { + "code": 400, + "type": "ENTITIES_TOO_LONG", + "description": "You provided too many styled message entities." + }, + { + "code": 400, + "type": "ENTITY_BOUNDS_INVALID", + "description": "A specified entity offset or length is invalid, see here » for info on how to properly compute the entity offset/length." + }, + { + "code": 400, + "type": "ENTITY_MENTION_USER_INVALID", + "description": "You mentioned an invalid user." + }, + { + "code": 400, + "type": "FROM_MESSAGE_BOT_DISABLED", + "description": "Bots can't use fromMessage min constructors." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MESSAGE_EMPTY", + "description": "The provided message is empty." + }, + { + "code": 400, + "type": "MESSAGE_TOO_LONG", + "description": "The provided message is too long." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 500, + "type": "MSG_WAIT_FAILED", + "description": "A waiting call returned an error." + }, + { + "code": 406, + "type": "PAYMENT_UNSUPPORTED", + "description": "A detailed description of the error will be received separately as described here »." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "PINNED_DIALOGS_TOO_MUCH", + "description": "Too many pinned dialogs." + }, + { + "code": 400, + "type": "POLL_OPTION_INVALID", + "description": "Invalid poll option provided." + }, + { + "code": 500, + "type": "RANDOM_ID_DUPLICATE", + "description": "You provided a random ID that was already used." + }, + { + "code": 400, + "type": "REPLY_MARKUP_INVALID", + "description": "The provided reply markup is invalid." + }, + { + "code": 400, + "type": "REPLY_MARKUP_TOO_LONG", + "description": "The specified reply_markup is too long." + }, + { + "code": 400, + "type": "REPLY_TO_INVALID", + "description": "The specified reply_to field is invalid." + }, + { + "code": 400, + "type": "REPLY_TO_USER_INVALID", + "description": "The replied-to user is invalid." + }, + { + "code": 400, + "type": "SCHEDULE_BOT_NOT_ALLOWED", + "description": "Bots cannot schedule messages." + }, + { + "code": 400, + "type": "SCHEDULE_DATE_TOO_LATE", + "description": "You can't schedule a message this far in the future." + }, + { + "code": 400, + "type": "SCHEDULE_STATUS_PRIVATE", + "description": "Can't schedule until user is online, if the user's last seen timestamp is hidden by their privacy settings." + }, + { + "code": 400, + "type": "SCHEDULE_TOO_MUCH", + "description": "There are too many scheduled messages." + }, + { + "code": 400, + "type": "SEND_AS_PEER_INVALID", + "description": "You can't send messages as the specified peer." + }, + { + "code": 420, + "type": "SLOWMODE_WAIT_%d", + "description": "Slowmode is enabled in this chat: wait %d seconds before sending another message to this chat." + }, + { + "code": 400, + "type": "STORY_ID_INVALID", + "description": "The specified story ID is invalid." + }, + { + "code": 406, + "type": "TOPIC_CLOSED", + "description": "This topic was closed, you can't send messages to it anymore." + }, + { + "code": 406, + "type": "TOPIC_DELETED", + "description": "The specified topic was deleted." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + }, + { + "code": 403, + "type": "USER_IS_BLOCKED", + "description": "You were blocked by this user." + }, + { + "code": 400, + "type": "USER_IS_BOT", + "description": "Bots can't send messages to other bots." + }, + { + "code": 400, + "type": "WC_CONVERT_URL_INVALID", + "description": "WC convert URL invalid." + }, + { + "code": 400, + "type": "YOU_BLOCKED_USER", + "description": "You blocked this user." + } + ], + "bot_can_use": true + }, + "messages.sendMultiMedia": { + "name": "messages.sendMultiMedia", + "description": [ + "Send an album or grouped media¹" + ], + "links": [ + "https://core.telegram.org/api/files#albums-grouped-media" + ], + "parameters": { + "background": { + "name": "background", + "description": "Send in background?" + }, + "clear_draft": { + "name": "clear_draft", + "description": "Whether to clear drafts¹", + "links": [ + "https://core.telegram.org/api/drafts" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invert_media": { + "name": "invert_media", + "description": "If set, any eventual webpage preview will be shown on top of the message instead of at the bottom." + }, + "multi_media": { + "name": "multi_media", + "description": "The medias to send: note that they must be separately uploaded using messages.uploadMedia¹ first, using raw inputMediaUploaded* constructors is not supported.", + "links": [ + "https://core.telegram.org/method/messages.uploadMedia" + ] + }, + "noforwards": { + "name": "noforwards", + "description": "Only for bots, disallows forwarding and saving of the messages, even if the destination chat doesn't have content protection¹ enabled", + "links": [ + "https://telegram.org/blog/protected-content-delete-by-date-and-more" + ] + }, + "peer": { + "name": "peer", + "description": "The destination chat" + }, + "reply_to": { + "name": "reply_to", + "description": "If set, indicates that the message should be sent in reply to the specified message or story." + }, + "schedule_date": { + "name": "schedule_date", + "description": "Scheduled message date for scheduled messages" + }, + "send_as": { + "name": "send_as", + "description": "Send this message as the specified peer" + }, + "silent": { + "name": "silent", + "description": "Whether to send the album silently (no notification triggered)" + }, + "update_stickersets_order": { + "name": "update_stickersets_order", + "description": "Whether to move used stickersets to top, see here for more info on this flag »¹", + "links": [ + "https://core.telegram.org/api/stickers#recent-stickersets" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_FORWARDS_RESTRICTED", + "description": "You can't forward messages from a protected chat." + }, + { + "code": 403, + "type": "CHAT_SEND_MEDIA_FORBIDDEN", + "description": "You can't send media in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_PHOTOS_FORBIDDEN", + "description": "You can't send photos in this chat." + }, + { + "code": 403, + "type": "CHAT_SEND_VIDEOS_FORBIDDEN", + "description": "You can't send videos in this chat." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "ENTITY_BOUNDS_INVALID", + "description": "A specified entity offset or length is invalid, see here » for info on how to properly compute the entity offset/length." + }, + { + "code": 400, + "type": "MEDIA_CAPTION_TOO_LONG", + "description": "The caption is too long." + }, + { + "code": 400, + "type": "MEDIA_EMPTY", + "description": "The provided media object is invalid." + }, + { + "code": 400, + "type": "MEDIA_INVALID", + "description": "Media invalid." + }, + { + "code": 400, + "type": "MULTI_MEDIA_TOO_LONG", + "description": "Too many media files for album." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 500, + "type": "RANDOM_ID_DUPLICATE", + "description": "You provided a random ID that was already used." + }, + { + "code": 400, + "type": "RANDOM_ID_EMPTY", + "description": "Random ID empty." + }, + { + "code": 400, + "type": "SCHEDULE_DATE_TOO_LATE", + "description": "You can't schedule a message this far in the future." + }, + { + "code": 400, + "type": "SCHEDULE_TOO_MUCH", + "description": "There are too many scheduled messages." + }, + { + "code": 400, + "type": "SEND_AS_PEER_INVALID", + "description": "You can't send messages as the specified peer." + }, + { + "code": 420, + "type": "SLOWMODE_WAIT_%d", + "description": "Slowmode is enabled in this chat: wait %d seconds before sending another message to this chat." + }, + { + "code": 400, + "type": "TOPIC_CLOSED", + "description": "This topic was closed, you can't send messages to it anymore." + }, + { + "code": 400, + "type": "TOPIC_DELETED", + "description": "The specified topic was deleted." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + } + ], + "bot_can_use": true + }, + "messages.sendReaction": { + "name": "messages.sendReaction", + "description": [ + "React to message.", + "Starting from layer 159, the reaction will be sent from the peer specified using messages.saveDefaultSendAs¹." + ], + "links": [ + "https://core.telegram.org/method/messages.saveDefaultSendAs" + ], + "parameters": { + "add_to_recent": { + "name": "add_to_recent", + "description": "Whether to add this reaction to the recent reactions list »¹.", + "links": [ + "https://core.telegram.org/api/reactions#recent-reactions" + ] + }, + "big": { + "name": "big", + "description": "Whether a bigger and longer reaction should be shown" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "msg_id": { + "name": "msg_id", + "description": "Message ID to react to" + }, + "peer": { + "name": "peer", + "description": "Peer" + }, + "reaction": { + "name": "reaction", + "description": "A list of reactions" + } + }, + "errors": [ + { + "code": 403, + "type": "ANONYMOUS_REACTIONS_DISABLED" + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "CUSTOM_REACTIONS_TOO_MANY", + "description": "Too many custom reactions were specified." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "MESSAGE_NOT_MODIFIED", + "description": "The provided message data is identical to the previous message data, the message wasn't modified." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 403, + "type": "PREMIUM_ACCOUNT_REQUIRED", + "description": "A premium account is required to execute this action." + }, + { + "code": 400, + "type": "REACTIONS_TOO_MANY", + "description": "The message already has exactly reactions_uniq_max reaction emojis, you can't react with a new emoji, see the docs for more info »." + }, + { + "code": 400, + "type": "REACTION_EMPTY", + "description": "Empty reaction provided." + }, + { + "code": 400, + "type": "REACTION_INVALID", + "description": "The specified reaction is invalid." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + } + ] + }, + "messages.sendScheduledMessages": { + "name": "messages.sendScheduledMessages", + "description": [ + "Send scheduled messages right away" + ], + "parameters": { + "id": { + "name": "id", + "description": "Scheduled message IDs" + }, + "peer": { + "name": "peer", + "description": "Peer" + } + }, + "errors": [ + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.sendScreenshotNotification": { + "name": "messages.sendScreenshotNotification", + "description": [ + "Notify the other user in a private chat that a screenshot of the chat was taken" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "Other user" + }, + "random_id": { + "name": "random_id", + "description": "Random ID to avoid message resending" + }, + "reply_to": { + "name": "reply_to", + "description": "Indicates the message that was screenshotted (the specified message ID can also be 0 to avoid indicating any specific message)." + } + }, + "errors": [ + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "STORY_ID_INVALID", + "description": "The specified story ID is invalid." + }, + { + "code": 400, + "type": "YOU_BLOCKED_USER", + "description": "You blocked this user." + } + ] + }, + "messages.sendVote": { + "name": "messages.sendVote", + "description": [ + "Vote in a poll¹", + "Starting from layer 159, the vote will be sent from the peer specified using messages.saveDefaultSendAs¹." + ], + "links": [ + "https://core.telegram.org/constructor/poll", + "https://core.telegram.org/method/messages.saveDefaultSendAs" + ], + "parameters": { + "msg_id": { + "name": "msg_id", + "description": "The message ID of the poll" + }, + "options": { + "name": "options", + "description": "The options that were chosen" + }, + "peer": { + "name": "peer", + "description": "The chat where the poll was sent" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "MESSAGE_POLL_CLOSED", + "description": "Poll closed." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "OPTIONS_TOO_MUCH", + "description": "Too many options provided." + }, + { + "code": 400, + "type": "OPTION_INVALID", + "description": "Invalid option selected." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "REVOTE_NOT_ALLOWED", + "description": "You cannot change your vote." + } + ] + }, + "messages.sendWebViewData": { + "name": "messages.sendWebViewData", + "description": [ + "Used by the user to relay data from an opened reply keyboard bot mini app¹ to the bot that owns it." + ], + "links": [ + "https://core.telegram.org/api/bots/webapps" + ], + "parameters": { + "bot": { + "name": "bot", + "description": "Bot that owns the web app" + }, + "button_text": { + "name": "button_text", + "description": "Text of the keyboardButtonSimpleWebView¹ that was pressed to open the web app.", + "links": [ + "https://core.telegram.org/constructor/keyboardButtonSimpleWebView" + ] + }, + "data": { + "name": "data", + "description": "Data to relay to the bot, obtained from a web_app_data_send JS event¹.", + "links": [ + "https://core.telegram.org/api/web-events#web-app-data-send" + ] + }, + "random_id": { + "name": "random_id", + "description": "Unique client message ID to prevent duplicate sending of the same event" + } + } + }, + "messages.sendWebViewResultMessage": { + "name": "messages.sendWebViewResultMessage", + "description": [ + "Terminate webview interaction started with messages.requestWebView¹, sending the specified message to the chat on behalf of the user." + ], + "links": [ + "https://core.telegram.org/method/messages.requestWebView" + ], + "parameters": { + "bot_query_id": { + "name": "bot_query_id", + "description": "Webview interaction ID obtained from messages.requestWebView¹", + "links": [ + "https://core.telegram.org/method/messages.requestWebView" + ] + }, + "result": { + "name": "result", + "description": "Message to send" + } + }, + "errors": [ + { + "code": 400, + "type": "QUERY_ID_INVALID", + "description": "The query ID is invalid." + } + ], + "bot_can_use": true + }, + "messages.setBotCallbackAnswer": { + "name": "messages.setBotCallbackAnswer", + "description": [ + "Set the callback answer to a user button press (bots only)" + ], + "parameters": { + "alert": { + "name": "alert", + "description": "Whether to show the message as a popup instead of a toast notification" + }, + "cache_time": { + "name": "cache_time", + "description": "Cache validity" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "message": { + "name": "message", + "description": "Popup to show" + }, + "query_id": { + "name": "query_id", + "description": "Query ID" + }, + "url": { + "name": "url", + "description": "URL to open" + } + }, + "errors": [ + { + "code": 400, + "type": "MESSAGE_TOO_LONG", + "description": "The provided message is too long." + }, + { + "code": 400, + "type": "QUERY_ID_INVALID", + "description": "The query ID is invalid." + }, + { + "code": 400, + "type": "URL_INVALID", + "description": "Invalid URL provided." + }, + { + "code": 400, + "type": "USER_BOT_REQUIRED", + "description": "This method can only be called by a bot." + } + ], + "bot_can_use": true + }, + "messages.setBotPrecheckoutResults": { + "name": "messages.setBotPrecheckoutResults", + "description": [ + "Once the user has confirmed their payment and shipping details, the bot receives an updateBotPrecheckoutQuery¹ update.", + "Use this method to respond to such pre-checkout queries.", + "Note: Telegram must receive an answer within 10 seconds after the pre-checkout query was sent." + ], + "links": [ + "https://core.telegram.org/constructor/updateBotPrecheckoutQuery" + ], + "parameters": { + "error": { + "name": "error", + "description": "Required if the success isn't set. Error message in human readable form that explains the reason for failure to proceed with the checkout (e.g. \"Sorry, somebody just bought the last of our amazing black T-shirts while you were busy filling out your payment details. Please choose a different color or garment!\"). Telegram will display this message to the user." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "query_id": { + "name": "query_id", + "description": "Unique identifier for the query to be answered" + }, + "success": { + "name": "success", + "description": "Set this flag if everything is alright (goods are available, etc.) and the bot is ready to proceed with the order, otherwise do not set it, and set the error field, instead" + } + }, + "errors": [ + { + "code": 400, + "type": "ERROR_TEXT_EMPTY", + "description": "The provided error message is empty." + } + ], + "bot_can_use": true + }, + "messages.setBotShippingResults": { + "name": "messages.setBotShippingResults", + "description": [ + "If you sent an invoice requesting a shipping address and the parameter is_flexible was specified, the bot will receive an updateBotShippingQuery¹ update. Use this method to reply to shipping queries." + ], + "links": [ + "https://core.telegram.org/constructor/updateBotShippingQuery" + ], + "parameters": { + "error": { + "name": "error", + "description": "Error message in human readable form that explains why it is impossible to complete the order (e.g. \"Sorry, delivery to your desired address is unavailable\"). Telegram will display this message to the user." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "query_id": { + "name": "query_id", + "description": "Unique identifier for the query to be answered" + }, + "shipping_options": { + "name": "shipping_options", + "description": "A vector of available shipping options." + } + }, + "errors": [ + { + "code": 400, + "type": "QUERY_ID_INVALID", + "description": "The query ID is invalid." + } + ], + "bot_can_use": true + }, + "messages.setChatAvailableReactions": { + "name": "messages.setChatAvailableReactions", + "description": [ + "Change the set of message reactions »¹ that can be used in a certain group, supergroup or channel" + ], + "links": [ + "https://core.telegram.org/api/reactions" + ], + "parameters": { + "available_reactions": { + "name": "available_reactions", + "description": "Allowed reaction emojis" + }, + "peer": { + "name": "peer", + "description": "Group where to apply changes" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.setChatTheme": { + "name": "messages.setChatTheme", + "description": [ + "Change the chat theme of a certain chat" + ], + "parameters": { + "emoticon": { + "name": "emoticon", + "description": "Emoji, identifying a specific chat theme; a list of chat themes can be fetched using account.getChatThemes¹", + "links": [ + "https://core.telegram.org/method/account.getChatThemes" + ] + }, + "peer": { + "name": "peer", + "description": "Private chat where to change theme" + } + }, + "errors": [ + { + "code": 400, + "type": "EMOJI_INVALID", + "description": "The specified theme emoji is valid." + }, + { + "code": 400, + "type": "EMOJI_NOT_MODIFIED", + "description": "The theme wasn't changed." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.setChatWallPaper": { + "name": "messages.setChatWallPaper", + "description": [ + "Set a custom wallpaper »¹ in a specific private chat with another user." + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "for_both": { + "name": "for_both", + "description": "Only for Premium¹ users, sets the specified wallpaper for both users of the chat, without requiring confirmation from the other user.", + "links": [ + "https://core.telegram.org/api/premium" + ] + }, + "id": { + "name": "id", + "description": "If the wallpaper was obtained from a messageActionSetChatWallPaper¹ service message, must contain the ID of that message.", + "links": [ + "https://core.telegram.org/constructor/messageActionSetChatWallPaper" + ] + }, + "peer": { + "name": "peer", + "description": "The private chat where the wallpaper will be set" + }, + "revert": { + "name": "revert", + "description": "If we don't like the new wallpaper the other user of the chat has chosen for us using the for_both flag, we can re-set our previous wallpaper just on our side using this flag." + }, + "settings": { + "name": "settings", + "description": "Wallpaper settings, obtained as described in the wallpaper documentation »¹ or from messageActionSetChatWallPaper².wallpaper.settings.", + "links": [ + "https://core.telegram.org/api/wallpapers#uploading-wallpapers", + "https://core.telegram.org/constructor/messageActionSetChatWallPaper" + ] + }, + "wallpaper": { + "name": "wallpaper", + "description": "The wallpaper »¹, obtained as described in the wallpaper documentation »²; must not be provided when installing a wallpaper obtained from a messageActionSetChatWallPaper³ service message (id must be provided, instead).", + "links": [ + "https://core.telegram.org/api/wallpapers", + "https://core.telegram.org/api/wallpapers#uploading-wallpapers", + "https://core.telegram.org/constructor/messageActionSetChatWallPaper" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "WALLPAPER_INVALID", + "description": "The specified wallpaper is invalid." + }, + { + "code": 400, + "type": "WALLPAPER_NOT_FOUND", + "description": "The specified wallpaper could not be found." + } + ], + "bot_can_use": true + }, + "messages.setDefaultHistoryTTL": { + "name": "messages.setDefaultHistoryTTL", + "description": [ + "Changes the default value of the Time-To-Live setting, applied to all new chats." + ], + "parameters": { + "period": { + "name": "period", + "description": "The new default Time-To-Live of all messages sent in new chats." + } + }, + "bot_can_use": true + }, + "messages.setDefaultReaction": { + "name": "messages.setDefaultReaction", + "description": [ + "Change default emoji reaction to use in the quick reaction menu: the value is synced across devices and can be fetched using help.getConfig, reactions_default field¹." + ], + "links": [ + "https://core.telegram.org/method/help.getConfig" + ], + "parameters": { + "reaction": { + "name": "reaction", + "description": "New emoji reaction" + } + }, + "errors": [ + { + "code": 400, + "type": "REACTION_INVALID", + "description": "The specified reaction is invalid." + } + ] + }, + "messages.setEncryptedTyping": { + "name": "messages.setEncryptedTyping", + "description": [ + "Send typing event by the current user to a secret chat." + ], + "parameters": { + "peer": { + "name": "peer", + "description": "Secret chat ID" + }, + "typing": { + "name": "typing", + "description": "Typing.Possible values:(boolTrue)¹, if the user started typing and more than 5 seconds have passed since the last request(boolFalse)², if the user stopped typing", + "links": [ + "https://core.telegram.org/constructor/boolTrue", + "https://core.telegram.org/constructor/boolFalse" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + } + ] + }, + "messages.setGameScore": { + "name": "messages.setGameScore", + "description": [ + "Use this method to set the score of the specified user in a game sent as a normal message (bots only)." + ], + "parameters": { + "edit_message": { + "name": "edit_message", + "description": "Set this flag if the game message should be automatically edited to include the current scoreboard" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "force": { + "name": "force", + "description": "Set this flag if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters" + }, + "id": { + "name": "id", + "description": "Identifier of the sent message" + }, + "peer": { + "name": "peer", + "description": "Unique identifier of target chat" + }, + "score": { + "name": "score", + "description": "New score" + }, + "user_id": { + "name": "user_id", + "description": "User identifier" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_SCORE_NOT_MODIFIED", + "description": "The score wasn't modified." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "SCORE_INVALID", + "description": "The specified game score is invalid." + }, + { + "code": 400, + "type": "USER_BOT_REQUIRED", + "description": "This method can only be called by a bot." + } + ], + "bot_can_use": true + }, + "messages.setHistoryTTL": { + "name": "messages.setHistoryTTL", + "description": [ + "Set maximum Time-To-Live of all messages in the specified chat" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "The dialog" + }, + "period": { + "name": "period", + "description": "Automatically delete all messages sent in the chat after this many seconds" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 400, + "type": "TTL_PERIOD_INVALID", + "description": "The specified TTL period is invalid." + } + ] + }, + "messages.setInlineBotResults": { + "name": "messages.setInlineBotResults", + "description": [ + "Answer an inline query, for bots only" + ], + "parameters": { + "cache_time": { + "name": "cache_time", + "description": "The maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "gallery": { + "name": "gallery", + "description": "Set this flag if the results are composed of media files" + }, + "next_offset": { + "name": "next_offset", + "description": "Pass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don't support pagination. Offset length can't exceed 64 bytes." + }, + "private": { + "name": "private", + "description": "Set this flag if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query" + }, + "query_id": { + "name": "query_id", + "description": "Unique identifier for the answered query" + }, + "results": { + "name": "results", + "description": "Vector of results for the inline query" + }, + "switch_pm": { + "name": "switch_pm", + "description": "If passed, clients will display a button on top of the remaining inline result list with the specified text, that switches the user to a private chat with the bot and sends the bot a start message with a certain parameter." + }, + "switch_webview": { + "name": "switch_webview", + "description": "If passed, clients will display a button on top of the remaining inline result list with the specified text, that switches the user to the specified inline mode mini app¹.", + "links": [ + "https://core.telegram.org/api/bots/webapps#inline-mode-mini-apps" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "ARTICLE_TITLE_EMPTY", + "description": "The title of the article is empty." + }, + { + "code": 400, + "type": "AUDIO_CONTENT_URL_EMPTY", + "description": "The remote URL specified in the content field is empty." + }, + { + "code": 400, + "type": "AUDIO_TITLE_EMPTY", + "description": "An empty audio title was provided." + }, + { + "code": 400, + "type": "BUTTON_DATA_INVALID", + "description": "The data of one or more of the buttons you provided is invalid." + }, + { + "code": 400, + "type": "BUTTON_TYPE_INVALID", + "description": "The type of one or more of the buttons you provided is invalid." + }, + { + "code": 400, + "type": "BUTTON_URL_INVALID", + "description": "Button URL invalid." + }, + { + "code": 400, + "type": "DOCUMENT_INVALID", + "description": "The specified document is invalid." + }, + { + "code": 400, + "type": "FILE_CONTENT_TYPE_INVALID", + "description": "File content-type is invalid." + }, + { + "code": 400, + "type": "FILE_TITLE_EMPTY", + "description": "An empty file title was specified." + }, + { + "code": 400, + "type": "GIF_CONTENT_TYPE_INVALID", + "description": "GIF content-type invalid." + }, + { + "code": 400, + "type": "MESSAGE_EMPTY", + "description": "The provided message is empty." + }, + { + "code": 400, + "type": "MESSAGE_TOO_LONG", + "description": "The provided message is too long." + }, + { + "code": 400, + "type": "NEXT_OFFSET_INVALID", + "description": "The specified offset is longer than 64 bytes." + }, + { + "code": 400, + "type": "PHOTO_CONTENT_TYPE_INVALID", + "description": "Photo mime-type invalid." + }, + { + "code": 400, + "type": "PHOTO_CONTENT_URL_EMPTY", + "description": "Photo URL invalid." + }, + { + "code": 400, + "type": "PHOTO_INVALID", + "description": "Photo invalid." + }, + { + "code": 400, + "type": "PHOTO_THUMB_URL_EMPTY", + "description": "Photo thumbnail URL is empty." + }, + { + "code": 400, + "type": "QUERY_ID_INVALID", + "description": "The query ID is invalid." + }, + { + "code": 400, + "type": "REPLY_MARKUP_INVALID", + "description": "The provided reply markup is invalid." + }, + { + "code": 400, + "type": "RESULTS_TOO_MUCH", + "description": "Too many results were provided." + }, + { + "code": 400, + "type": "RESULT_ID_DUPLICATE", + "description": "You provided a duplicate result ID." + }, + { + "code": 400, + "type": "RESULT_ID_INVALID", + "description": "One of the specified result IDs is invalid." + }, + { + "code": 400, + "type": "RESULT_TYPE_INVALID", + "description": "Result type invalid." + }, + { + "code": 400, + "type": "SEND_MESSAGE_MEDIA_INVALID", + "description": "Invalid media provided." + }, + { + "code": 400, + "type": "SEND_MESSAGE_TYPE_INVALID", + "description": "The message type is invalid." + }, + { + "code": 400, + "type": "START_PARAM_EMPTY", + "description": "The start parameter is empty." + }, + { + "code": 400, + "type": "START_PARAM_INVALID", + "description": "Start parameter invalid." + }, + { + "code": 400, + "type": "STICKER_DOCUMENT_INVALID", + "description": "The specified sticker document is invalid." + }, + { + "code": 400, + "type": "SWITCH_PM_TEXT_EMPTY", + "description": "The switch_pm.text field was empty." + }, + { + "code": 400, + "type": "URL_INVALID", + "description": "Invalid URL provided." + }, + { + "code": 403, + "type": "USER_BOT_INVALID", + "description": "User accounts must provide the bot method parameter when calling this method. If there is no such method parameter, this method can only be invoked by bot accounts." + }, + { + "code": 400, + "type": "VIDEO_TITLE_EMPTY", + "description": "The specified video title is empty." + }, + { + "code": 400, + "type": "WEBDOCUMENT_INVALID", + "description": "Invalid webdocument URL provided." + }, + { + "code": 400, + "type": "WEBDOCUMENT_MIME_INVALID", + "description": "Invalid webdocument mime type provided." + }, + { + "code": 400, + "type": "WEBDOCUMENT_SIZE_TOO_BIG", + "description": "Webdocument is too big!" + }, + { + "code": 400, + "type": "WEBDOCUMENT_URL_INVALID", + "description": "The specified webdocument URL is invalid." + } + ], + "bot_can_use": true + }, + "messages.setInlineGameScore": { + "name": "messages.setInlineGameScore", + "description": [ + "Use this method to set the score of the specified user in a game sent as an inline message (bots only)." + ], + "parameters": { + "edit_message": { + "name": "edit_message", + "description": "Set this flag if the game message should be automatically edited to include the current scoreboard" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "force": { + "name": "force", + "description": "Set this flag if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters" + }, + "id": { + "name": "id", + "description": "ID of the inline message" + }, + "score": { + "name": "score", + "description": "New score" + }, + "user_id": { + "name": "user_id", + "description": "User identifier" + } + }, + "errors": [ + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "USER_BOT_REQUIRED", + "description": "This method can only be called by a bot." + } + ], + "bot_can_use": true + }, + "messages.setTyping": { + "name": "messages.setTyping", + "description": [ + "Sends a current user typing event (see SendMessageAction¹ for all event types) to a conversation partner or group." + ], + "links": [ + "https://core.telegram.org/type/SendMessageAction" + ], + "parameters": { + "action": { + "name": "action", + "description": "Type of action" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "Target user or group" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "Topic ID¹", + "links": [ + "https://core.telegram.org/api/threads" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 403, + "type": "GROUPCALL_FORBIDDEN", + "description": "The group call has already ended." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + }, + { + "code": 403, + "type": "USER_IS_BLOCKED", + "description": "You were blocked by this user." + }, + { + "code": 400, + "type": "USER_IS_BOT", + "description": "Bots can't send messages to other bots." + } + ], + "bot_can_use": true + }, + "messages.startBot": { + "name": "messages.startBot", + "description": [ + "Start a conversation with a bot using a deep linking parameter¹" + ], + "links": [ + "https://core.telegram.org/api/links#bot-links" + ], + "parameters": { + "bot": { + "name": "bot", + "description": "The bot" + }, + "peer": { + "name": "peer", + "description": "The chat where to start the bot, can be the bot's private chat or a group" + }, + "random_id": { + "name": "random_id", + "description": "Random ID to avoid resending the same message" + }, + "start_param": { + "name": "start_param", + "description": "Deep linking parameter¹", + "links": [ + "https://core.telegram.org/api/links#bot-links" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_INVALID", + "description": "This is not a valid bot." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 500, + "type": "RANDOM_ID_DUPLICATE", + "description": "You provided a random ID that was already used." + }, + { + "code": 400, + "type": "START_PARAM_EMPTY", + "description": "The start parameter is empty." + }, + { + "code": 400, + "type": "START_PARAM_INVALID", + "description": "Start parameter invalid." + }, + { + "code": 400, + "type": "START_PARAM_TOO_LONG", + "description": "Start parameter is too long." + } + ] + }, + "messages.startHistoryImport": { + "name": "messages.startHistoryImport", + "description": [ + "Complete the history import process¹, importing all messages into the chat.", + "To be called only after initializing the import with messages.initHistoryImport² and uploading all files using messages.uploadImportedMedia³." + ], + "links": [ + "https://core.telegram.org/api/import", + "https://core.telegram.org/method/messages.initHistoryImport", + "https://core.telegram.org/method/messages.uploadImportedMedia" + ], + "parameters": { + "import_id": { + "name": "import_id", + "description": "Identifier of a history import session, returned by messages.initHistoryImport¹.", + "links": [ + "https://core.telegram.org/method/messages.initHistoryImport" + ] + }, + "peer": { + "name": "peer", + "description": "The Telegram chat where the messages should be imported, click here for more info »¹", + "links": [ + "https://core.telegram.org/api/import" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "IMPORT_ID_INVALID", + "description": "The specified import ID is invalid." + } + ] + }, + "messages.toggleBotInAttachMenu": { + "name": "messages.toggleBotInAttachMenu", + "description": [ + "Enable or disable web bot attachment menu »¹" + ], + "links": [ + "https://core.telegram.org/api/bots/attach" + ], + "parameters": { + "bot": { + "name": "bot", + "description": "Bot ID" + }, + "enabled": { + "name": "enabled", + "description": "Toggle" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "write_allowed": { + "name": "write_allowed", + "description": "Whether the user authorizes the bot to write messages to them, if requested by attachMenuBot¹.request_write_access", + "links": [ + "https://core.telegram.org/constructor/attachMenuBot" + ] + } + } + }, + "messages.toggleDialogPin": { + "name": "messages.toggleDialogPin", + "description": [ + "Pin/unpin a dialog" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "The dialog to pin" + }, + "pinned": { + "name": "pinned", + "description": "Whether to pin or unpin the dialog" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "PEER_HISTORY_EMPTY", + "description": "You can't pin an empty chat with a user." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "PINNED_DIALOGS_TOO_MUCH", + "description": "Too many pinned dialogs." + } + ] + }, + "messages.toggleNoForwards": { + "name": "messages.toggleNoForwards", + "description": [ + "Enable or disable content protection¹ on a channel or chat" + ], + "links": [ + "https://telegram.org/blog/protected-content-delete-by-date-and-more" + ], + "parameters": { + "enabled": { + "name": "enabled", + "description": "Enable or disable content protection" + }, + "peer": { + "name": "peer", + "description": "The chat or channel" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "messages.togglePeerTranslations": { + "name": "messages.togglePeerTranslations", + "description": [ + "Show or hide the real-time chat translation popup¹ for a certain chat" + ], + "links": [ + "https://core.telegram.org/api/translation" + ], + "parameters": { + "disabled": { + "name": "disabled", + "description": "Whether to disable or enable the real-time chat translation popup" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "The peer" + } + }, + "bot_can_use": true + }, + "messages.toggleSavedDialogPin": { + "name": "messages.toggleSavedDialogPin", + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": " " + }, + "pinned": { + "name": "pinned", + "description": " " + } + }, + "bot_can_use": true + }, + "messages.toggleStickerSets": { + "name": "messages.toggleStickerSets", + "description": [ + "Apply changes to multiple stickersets" + ], + "parameters": { + "archive": { + "name": "archive", + "description": "Archive the specified stickersets" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "stickersets": { + "name": "stickersets", + "description": "Stickersets to act upon" + }, + "unarchive": { + "name": "unarchive", + "description": "Unarchive the specified stickersets" + }, + "uninstall": { + "name": "uninstall", + "description": "Uninstall the specified stickersets" + } + } + }, + "messages.transcribeAudio": { + "name": "messages.transcribeAudio", + "description": [ + "Transcribe voice message¹" + ], + "links": [ + "https://core.telegram.org/api/transcribe" + ], + "parameters": { + "msg_id": { + "name": "msg_id", + "description": "Voice message ID" + }, + "peer": { + "name": "peer", + "description": "Peer ID where the voice message was sent" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 403, + "type": "PREMIUM_ACCOUNT_REQUIRED", + "description": "A premium account is required to execute this action." + }, + { + "code": 400, + "type": "TRANSCRIPTION_FAILED", + "description": "Audio transcription failed." + } + ] + }, + "messages.translateText": { + "name": "messages.translateText", + "description": [ + "Translate a given text.", + "Styled text entities¹ will only be preserved for Telegram Premium² users." + ], + "links": [ + "https://core.telegram.org/api/entities", + "https://core.telegram.org/api/premium" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "A list of message IDs to translate" + }, + "peer": { + "name": "peer", + "description": "If the text is a chat message, the peer ID" + }, + "text": { + "name": "text", + "description": "A list of styled messages to translate" + }, + "to_lang": { + "name": "to_lang", + "description": "Two-letter ISO 639-1 language code of the language to which the message is translated" + } + }, + "errors": [ + { + "code": 400, + "type": "INPUT_TEXT_EMPTY", + "description": "The specified text is empty." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "TO_LANG_INVALID", + "description": "The specified destination language is invalid." + } + ] + }, + "messages.uninstallStickerSet": { + "name": "messages.uninstallStickerSet", + "description": [ + "Uninstall a stickerset" + ], + "parameters": { + "stickerset": { + "name": "stickerset", + "description": "The stickerset to uninstall" + } + }, + "errors": [ + { + "code": 406, + "type": "STICKERSET_INVALID", + "description": "The provided sticker set is invalid." + } + ] + }, + "messages.unpinAllMessages": { + "name": "messages.unpinAllMessages", + "description": [ + "Unpin¹ all pinned messages" + ], + "links": [ + "https://core.telegram.org/api/pin" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "Chat where to unpin" + }, + "top_msg_id": { + "name": "top_msg_id", + "description": "Forum topic¹ where to unpin", + "links": [ + "https://core.telegram.org/api/forum#forum-topics" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + } + ], + "bot_can_use": true + }, + "messages.updateDialogFilter": { + "name": "messages.updateDialogFilter", + "description": [ + "Update folder¹" + ], + "links": [ + "https://core.telegram.org/api/folders" + ], + "parameters": { + "filter": { + "name": "filter", + "description": "Folder¹ info", + "links": [ + "https://core.telegram.org/api/folders" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Folder¹ ID", + "links": [ + "https://core.telegram.org/api/folders" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHATLIST_EXCLUDE_INVALID", + "description": "The specified exclude_peers are invalid." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "FILTER_ID_INVALID", + "description": "The specified filter ID is invalid." + }, + { + "code": 400, + "type": "FILTER_INCLUDE_EMPTY", + "description": "The include_peers vector of the filter is empty." + }, + { + "code": 400, + "type": "FILTER_TITLE_EMPTY", + "description": "The title field of the filter is empty." + } + ] + }, + "messages.updateDialogFiltersOrder": { + "name": "messages.updateDialogFiltersOrder", + "description": [ + "Reorder folders¹" + ], + "links": [ + "https://core.telegram.org/api/folders" + ], + "parameters": { + "order": { + "name": "order", + "description": "New folder¹ order", + "links": [ + "https://core.telegram.org/api/folders" + ] + } + } + }, + "messages.updatePinnedMessage": { + "name": "messages.updatePinnedMessage", + "description": [ + "Pin a message" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "The message to pin or unpin" + }, + "peer": { + "name": "peer", + "description": "The peer where to pin the message" + }, + "pm_oneside": { + "name": "pm_oneside", + "description": "Whether the message should only be pinned on the local side of a one-to-one chat" + }, + "silent": { + "name": "silent", + "description": "Pin the message silently, without triggering a notification" + }, + "unpin": { + "name": "unpin", + "description": "Whether the message should unpinned or pinned" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_ONESIDE_NOT_AVAIL", + "description": "Bots can't pin messages in PM just for themselves." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "PIN_RESTRICTED", + "description": "You can't pin messages." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + } + ], + "bot_can_use": true + }, + "messages.uploadEncryptedFile": { + "name": "messages.uploadEncryptedFile", + "description": [ + "Upload encrypted file and associate it to a secret chat" + ], + "parameters": { + "file": { + "name": "file", + "description": "The file" + }, + "peer": { + "name": "peer", + "description": "The secret chat to associate the file to" + } + } + }, + "messages.uploadImportedMedia": { + "name": "messages.uploadImportedMedia", + "description": [ + "Upload a media file associated with an imported chat, click here for more info »¹." + ], + "links": [ + "https://core.telegram.org/api/import" + ], + "parameters": { + "file_name": { + "name": "file_name", + "description": "File name" + }, + "import_id": { + "name": "import_id", + "description": "Identifier of a history import session¹, returned by messages.initHistoryImport²", + "links": [ + "https://core.telegram.org/api/import", + "https://core.telegram.org/method/messages.initHistoryImport" + ] + }, + "media": { + "name": "media", + "description": "Media metadata" + }, + "peer": { + "name": "peer", + "description": "The Telegram chat where the media will be imported" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + } + ] + }, + "messages.uploadMedia": { + "name": "messages.uploadMedia", + "description": [ + "Upload a file and associate it to a chat (without actually sending it to the chat)" + ], + "parameters": { + "media": { + "name": "media", + "description": "File uploaded in chunks as described in files »¹", + "links": [ + "https://core.telegram.org/api/files" + ] + }, + "peer": { + "name": "peer", + "description": "The chat, can be inputPeerEmpty¹ for bots and inputPeerSelf² for users.", + "links": [ + "https://core.telegram.org/constructor/inputPeerEmpty", + "https://core.telegram.org/constructor/inputPeerSelf" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + { + "code": 400, + "type": "CHAT_RESTRICTED", + "description": "You can't send messages in this chat, you were restricted." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "FILE_PARTS_INVALID", + "description": "The number of file parts is invalid." + }, + { + "code": 400, + "type": "FILE_PART_LENGTH_INVALID", + "description": "The length of a file part is invalid." + }, + { + "code": 400, + "type": "IMAGE_PROCESS_FAILED", + "description": "Failure while processing image." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "MEDIA_INVALID", + "description": "Media invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "PHOTO_EXT_INVALID", + "description": "The extension of the photo is invalid." + }, + { + "code": 400, + "type": "PHOTO_INVALID_DIMENSIONS", + "description": "The photo dimensions are invalid." + }, + { + "code": 400, + "type": "PHOTO_SAVE_FILE_INVALID", + "description": "Internal issues, try again later." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + }, + { + "code": 400, + "type": "WEBPAGE_CURL_FAILED", + "description": "Failure while fetching the webpage with cURL." + } + ], + "bot_can_use": true + }, + "payments.applyGiftCode": { + "name": "payments.applyGiftCode", + "description": [ + "Apply a Telegram Premium giftcode »¹" + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ], + "parameters": { + "slug": { + "name": "slug", + "description": "The code to apply" + } + }, + "errors": [ + { + "code": 406, + "type": "GIFTCODE_NOT_ALLOWED" + } + ] + }, + "payments.assignAppStoreTransaction": { + "name": "payments.assignAppStoreTransaction", + "description": [ + "Informs server about a purchase made through the App Store: for official applications only." + ], + "parameters": { + "purpose": { + "name": "purpose", + "description": "Payment purpose" + }, + "receipt": { + "name": "receipt", + "description": "Receipt" + } + } + }, + "payments.assignPlayMarketTransaction": { + "name": "payments.assignPlayMarketTransaction", + "description": [ + "Informs server about a purchase made through the Play Store: for official applications only." + ], + "parameters": { + "purpose": { + "name": "purpose", + "description": "Payment purpose" + }, + "receipt": { + "name": "receipt", + "description": "Receipt" + } + } + }, + "payments.canPurchasePremium": { + "name": "payments.canPurchasePremium", + "description": [ + "Checks whether Telegram Premium purchase is possible. Must be called before in-store Premium purchase, official apps only." + ], + "parameters": { + "purpose": { + "name": "purpose", + "description": "Payment purpose" + } + } + }, + "payments.checkGiftCode": { + "name": "payments.checkGiftCode", + "description": [ + "Obtain information about a Telegram Premium giftcode »¹" + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ], + "parameters": { + "slug": { + "name": "slug", + "description": "The giftcode to check" + } + }, + "errors": [ + { + "code": 400, + "type": "GIFT_SLUG_INVALID", + "description": "The specified slug is invalid." + } + ] + }, + "payments.clearSavedInfo": { + "name": "payments.clearSavedInfo", + "description": [ + "Clear saved payment information" + ], + "parameters": { + "credentials": { + "name": "credentials", + "description": "Remove saved payment credentials" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "info": { + "name": "info", + "description": "Clear the last order settings saved by the user" + } + } + }, + "payments.exportInvoice": { + "name": "payments.exportInvoice", + "description": [ + "Generate an invoice deep link¹" + ], + "links": [ + "https://core.telegram.org/api/links#invoice-links" + ], + "parameters": { + "invoice_media": { + "name": "invoice_media", + "description": "Invoice" + } + }, + "errors": [ + { + "code": 400, + "type": "CURRENCY_TOTAL_AMOUNT_INVALID", + "description": "The total amount of all prices is invalid." + }, + { + "code": 400, + "type": "INVOICE_PAYLOAD_INVALID", + "description": "The specified invoice payload is invalid." + }, + { + "code": 400, + "type": "MEDIA_INVALID", + "description": "Media invalid." + }, + { + "code": 400, + "type": "PAYMENT_PROVIDER_INVALID", + "description": "The specified payment provider is invalid." + } + ], + "bot_can_use": true + }, + "payments.getBankCardData": { + "name": "payments.getBankCardData", + "description": [ + "Get info about a credit card" + ], + "parameters": { + "number": { + "name": "number", + "description": "Credit card number" + } + }, + "errors": [ + { + "code": 400, + "type": "BANK_CARD_NUMBER_INVALID", + "description": "The specified card number is invalid." + } + ] + }, + "payments.getGiveawayInfo": { + "name": "payments.getGiveawayInfo", + "description": [ + "Obtain information about a Telegram Premium giveaway »¹." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ], + "parameters": { + "msg_id": { + "name": "msg_id", + "description": "Message ID of the messageActionGiveawayLaunch¹ service message", + "links": [ + "https://core.telegram.org/constructor/messageActionGiveawayLaunch" + ] + }, + "peer": { + "name": "peer", + "description": "The peer where the giveaway was posted." + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "payments.getPaymentForm": { + "name": "payments.getPaymentForm", + "description": [ + "Get a payment form" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invoice": { + "name": "invoice", + "description": "Invoice" + }, + "theme_params": { + "name": "theme_params", + "description": "A JSON object with the following keys, containing color theme information (integers, RGB24) to pass to the payment provider, to apply in eventual verification pages: bg_color - Background color text_color - Text color hint_color - Hint text color link_color - Link color button_color - Button color button_text_color - Button text color" + } + }, + "errors": [ + { + "code": 400, + "type": "BOOST_PEER_INVALID", + "description": "The specified boost_peer is invalid." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "SLUG_INVALID", + "description": "The specified invoice slug is invalid." + }, + { + "code": 400, + "type": "UNTIL_DATE_INVALID", + "description": "Invalid until date provided." + } + ] + }, + "payments.getPaymentReceipt": { + "name": "payments.getPaymentReceipt", + "description": [ + "Get payment receipt" + ], + "parameters": { + "msg_id": { + "name": "msg_id", + "description": "Message ID of receipt" + }, + "peer": { + "name": "peer", + "description": "The peer where the payment receipt was sent" + } + }, + "errors": [ + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + } + ] + }, + "payments.getPremiumGiftCodeOptions": { + "name": "payments.getPremiumGiftCodeOptions", + "description": [ + "Obtain a list of Telegram Premium giveaway/gift code »¹ options." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ], + "parameters": { + "boost_peer": { + "name": "boost_peer", + "description": "The channel that will start the giveaway" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + } + } + }, + "payments.getSavedInfo": { + "name": "payments.getSavedInfo", + "description": [ + "Get saved payment information" + ] + }, + "payments.launchPrepaidGiveaway": { + "name": "payments.launchPrepaidGiveaway", + "description": [ + "Launch a prepaid giveaway »¹." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ], + "parameters": { + "giveaway_id": { + "name": "giveaway_id", + "description": "The prepaid giveaway ID." + }, + "peer": { + "name": "peer", + "description": "The peer where to launch the giveaway." + }, + "purpose": { + "name": "purpose", + "description": "Giveway parameters" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "payments.sendPaymentForm": { + "name": "payments.sendPaymentForm", + "description": [ + "Send compiled payment form" + ], + "parameters": { + "credentials": { + "name": "credentials", + "description": "Payment credentials" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "form_id": { + "name": "form_id", + "description": "Form ID" + }, + "invoice": { + "name": "invoice", + "description": "Invoice" + }, + "requested_info_id": { + "name": "requested_info_id", + "description": "ID of saved and validated order info¹", + "links": [ + "https://core.telegram.org/constructor/payments.validatedRequestedInfo" + ] + }, + "shipping_option_id": { + "name": "shipping_option_id", + "description": "Chosen shipping option ID" + }, + "tip_amount": { + "name": "tip_amount", + "description": "Tip, in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + } + ] + }, + "payments.validateRequestedInfo": { + "name": "payments.validateRequestedInfo", + "description": [ + "Submit requested order information for validation" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "info": { + "name": "info", + "description": "Requested order information" + }, + "invoice": { + "name": "invoice", + "description": "Invoice" + }, + "save": { + "name": "save", + "description": "Save order information to re-use it for future orders" + } + }, + "errors": [ + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + } + ] + }, + "phone.acceptCall": { + "name": "phone.acceptCall", + "description": [ + "Accept incoming call" + ], + "parameters": { + "g_b": { + "name": "g_b", + "description": "Parameter for E2E encryption key exchange »¹", + "links": [ + "https://core.telegram.org/api/end-to-end/voice-calls" + ] + }, + "peer": { + "name": "peer", + "description": "The call to accept" + }, + "protocol": { + "name": "protocol", + "description": "Phone call settings" + } + }, + "errors": [ + { + "code": 400, + "type": "CALL_ALREADY_ACCEPTED", + "description": "The call was already accepted." + }, + { + "code": 400, + "type": "CALL_ALREADY_DECLINED", + "description": "The call was already declined." + }, + { + "code": 500, + "type": "CALL_OCCUPY_FAILED", + "description": "The call failed because the user is already making another call." + }, + { + "code": 400, + "type": "CALL_PEER_INVALID", + "description": "The provided call peer object is invalid." + }, + { + "code": 406, + "type": "CALL_PROTOCOL_COMPAT_LAYER_INVALID", + "description": "The other side of the call does not support any of the VoIP protocols supported by the local client, as specified by the protocol.layer and protocol.library_versions fields." + }, + { + "code": 400, + "type": "CALL_PROTOCOL_FLAGS_INVALID", + "description": "Call protocol flags invalid." + } + ] + }, + "phone.checkGroupCall": { + "name": "phone.checkGroupCall", + "description": [ + "Check whether the group call Server Forwarding Unit is currently receiving the streams with the specified WebRTC source IDs.", + "Returns an intersection of the source IDs specified in sources, and the source IDs currently being forwarded by the SFU." + ], + "parameters": { + "call": { + "name": "call", + "description": "Group call" + }, + "sources": { + "name": "sources", + "description": "Source IDs" + } + }, + "errors": [ + { + "code": 400, + "type": "GROUPCALL_JOIN_MISSING", + "description": "You haven't joined this group call." + } + ] + }, + "phone.confirmCall": { + "name": "phone.confirmCall", + "description": [ + "Complete phone call E2E encryption key exchange »¹" + ], + "links": [ + "https://core.telegram.org/api/end-to-end/voice-calls" + ], + "parameters": { + "g_a": { + "name": "g_a", + "description": "Parameter for E2E encryption key exchange »¹", + "links": [ + "https://core.telegram.org/api/end-to-end/voice-calls" + ] + }, + "key_fingerprint": { + "name": "key_fingerprint", + "description": "Key fingerprint" + }, + "peer": { + "name": "peer", + "description": "The phone call" + }, + "protocol": { + "name": "protocol", + "description": "Phone call settings" + } + }, + "errors": [ + { + "code": 400, + "type": "CALL_ALREADY_DECLINED", + "description": "The call was already declined." + }, + { + "code": 400, + "type": "CALL_PEER_INVALID", + "description": "The provided call peer object is invalid." + } + ] + }, + "phone.createGroupCall": { + "name": "phone.createGroupCall", + "description": [ + "Create a group call or livestream" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "Associate the group call or livestream to the provided group/supergroup/channel¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "random_id": { + "name": "random_id", + "description": "Unique client message ID required to prevent creation of duplicate group calls" + }, + "rtmp_stream": { + "name": "rtmp_stream", + "description": "Whether RTMP stream support should be enabled: only the group/supergroup/channel¹ owner can use this flag.", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "schedule_date": { + "name": "schedule_date", + "description": "For scheduled group call or livestreams, the absolute date when the group call will start" + }, + "title": { + "name": "title", + "description": "Call title" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "CREATE_CALL_FAILED", + "description": "An error occurred while creating the call." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "SCHEDULE_DATE_INVALID", + "description": "Invalid schedule date provided." + } + ] + }, + "phone.discardCall": { + "name": "phone.discardCall", + "description": [ + "Refuse or end running call" + ], + "parameters": { + "connection_id": { + "name": "connection_id", + "description": "Preferred libtgvoip relay ID" + }, + "duration": { + "name": "duration", + "description": "Call duration" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "The phone call" + }, + "reason": { + "name": "reason", + "description": "Why was the call discarded" + }, + "video": { + "name": "video", + "description": "Whether this is a video call" + } + }, + "errors": [ + { + "code": 400, + "type": "CALL_ALREADY_ACCEPTED", + "description": "The call was already accepted." + }, + { + "code": 500, + "type": "CALL_OCCUPY_FAILED", + "description": "The call failed because the user is already making another call." + }, + { + "code": 400, + "type": "CALL_PEER_INVALID", + "description": "The provided call peer object is invalid." + } + ] + }, + "phone.discardGroupCall": { + "name": "phone.discardGroupCall", + "description": [ + "Terminate a group call" + ], + "parameters": { + "call": { + "name": "call", + "description": "The group call to terminate" + } + }, + "errors": [ + { + "code": 400, + "type": "GROUPCALL_ALREADY_DISCARDED", + "description": "The group call was already discarded." + }, + { + "code": 403, + "type": "GROUPCALL_FORBIDDEN", + "description": "The group call has already ended." + }, + { + "code": 400, + "type": "GROUPCALL_INVALID", + "description": "The specified group call is invalid." + } + ] + }, + "phone.editGroupCallParticipant": { + "name": "phone.editGroupCallParticipant", + "description": [ + "Edit information about a given group call participant", + "Note: flags¹.N?Bool² parameters can have three possible values:" + ], + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields", + "https://core.telegram.org/type/Bool" + ], + "parameters": { + "call": { + "name": "call", + "description": "The group call" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "muted": { + "name": "muted", + "description": "Whether to mute or unmute the specified participant" + }, + "participant": { + "name": "participant", + "description": "The group call participant (can also be the user itself)" + }, + "presentation_paused": { + "name": "presentation_paused", + "description": "Pause or resume the screen sharing stream" + }, + "raise_hand": { + "name": "raise_hand", + "description": "Raise or lower hand" + }, + "video_paused": { + "name": "video_paused", + "description": "Pause or resume the video stream" + }, + "video_stopped": { + "name": "video_stopped", + "description": "Start or stop the video stream" + }, + "volume": { + "name": "volume", + "description": "New volume" + } + }, + "errors": [ + { + "code": 403, + "type": "GROUPCALL_FORBIDDEN", + "description": "The group call has already ended." + }, + { + "code": 400, + "type": "PARTICIPANT_JOIN_MISSING", + "description": "Trying to enable a presentation, when the user hasn't joined the Video Chat with phone.joinGroupCall." + }, + { + "code": 400, + "type": "USER_VOLUME_INVALID", + "description": "The specified user volume is invalid." + } + ] + }, + "phone.editGroupCallTitle": { + "name": "phone.editGroupCallTitle", + "description": [ + "Edit the title of a group call or livestream" + ], + "parameters": { + "call": { + "name": "call", + "description": "Group call" + }, + "title": { + "name": "title", + "description": "New title" + } + }, + "errors": [ + { + "code": 403, + "type": "GROUPCALL_FORBIDDEN", + "description": "The group call has already ended." + } + ] + }, + "phone.exportGroupCallInvite": { + "name": "phone.exportGroupCallInvite", + "description": [ + "Get an invite link¹ for a group call or livestream" + ], + "links": [ + "https://core.telegram.org/api/links#video-chat-livestream-links" + ], + "parameters": { + "call": { + "name": "call", + "description": "The group call" + }, + "can_self_unmute": { + "name": "can_self_unmute", + "description": "For livestreams or muted group chats, if set, users that join using this link will be able to speak without explicitly requesting permission by (for example by raising their hand)." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + } + }, + "errors": [ + { + "code": 403, + "type": "PUBLIC_CHANNEL_MISSING", + "description": "You can only export group call invite links for public chats or channels." + } + ] + }, + "phone.getCallConfig": { + "name": "phone.getCallConfig", + "description": [ + "Get phone call configuration to be passed to libtgvoip's shared config" + ] + }, + "phone.getGroupCall": { + "name": "phone.getGroupCall", + "description": [ + "Get info about a group call" + ], + "parameters": { + "call": { + "name": "call", + "description": "The group call" + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + } + }, + "errors": [ + { + "code": 403, + "type": "GROUPCALL_FORBIDDEN", + "description": "The group call has already ended." + }, + { + "code": 400, + "type": "GROUPCALL_INVALID", + "description": "The specified group call is invalid." + } + ] + }, + "phone.getGroupCallJoinAs": { + "name": "phone.getGroupCallJoinAs", + "description": [ + "Get a list of peers that can be used to join a group call, presenting yourself as a specific user/channel." + ], + "parameters": { + "peer": { + "name": "peer", + "description": "The dialog whose group call or livestream we're trying to join" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "phone.getGroupCallStreamChannels": { + "name": "phone.getGroupCallStreamChannels", + "description": [ + "Get info about RTMP streams in a group call or livestream.", + "This method should be invoked to the same group/channel-related DC used for downloading livestream chunks¹.", + "As usual, the media DC is preferred, if available." + ], + "links": [ + "https://core.telegram.org/api/files#downloading-files" + ], + "parameters": { + "call": { + "name": "call", + "description": "Group call or livestream" + } + }, + "errors": [ + { + "code": 400, + "type": "GROUPCALL_INVALID", + "description": "The specified group call is invalid." + }, + { + "code": 400, + "type": "GROUPCALL_JOIN_MISSING", + "description": "You haven't joined this group call." + } + ] + }, + "phone.getGroupCallStreamRtmpUrl": { + "name": "phone.getGroupCallStreamRtmpUrl", + "description": [ + "Get RTMP URL and stream key for RTMP livestreams. Can be used even before creating the actual RTMP livestream with phone.createGroupCall¹ (the rtmp_stream flag must be set)." + ], + "links": [ + "https://core.telegram.org/method/phone.createGroupCall" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "Peer to livestream into" + }, + "revoke": { + "name": "revoke", + "description": "Whether to revoke the previous stream key or simply return the existing one" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + } + ] + }, + "phone.getGroupParticipants": { + "name": "phone.getGroupParticipants", + "description": [ + "Get group call participants" + ], + "parameters": { + "call": { + "name": "call", + "description": "Group call" + }, + "ids": { + "name": "ids", + "description": "If specified, will fetch group participant info about the specified peers" + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset": { + "name": "offset", + "description": "Offset for results, taken from the next_offset field of phone.groupParticipants¹, initially an empty string. Note: if no more results are available, the method call will return an empty next_offset; thus, avoid providing the next_offset returned in phone.groupParticipants² if it is empty, to avoid an infinite loop.", + "links": [ + "https://core.telegram.org/constructor/phone.groupParticipants", + "https://core.telegram.org/constructor/phone.groupParticipants" + ] + }, + "sources": { + "name": "sources", + "description": "If specified, will fetch group participant info about the specified WebRTC source IDs" + } + } + }, + "phone.inviteToGroupCall": { + "name": "phone.inviteToGroupCall", + "description": [ + "Invite a set of users to a group call." + ], + "parameters": { + "call": { + "name": "call", + "description": "The group call" + }, + "users": { + "name": "users", + "description": "The users to invite." + } + }, + "errors": [ + { + "code": 403, + "type": "GROUPCALL_FORBIDDEN", + "description": "The group call has already ended." + }, + { + "code": 400, + "type": "GROUPCALL_INVALID", + "description": "The specified group call is invalid." + }, + { + "code": 400, + "type": "INVITE_FORBIDDEN_WITH_JOINAS", + "description": "If the user has anonymously joined a group call as a channel, they can't invite other users to the group call because that would cause deanonymization, because the invite would be sent using the original user ID, not the anonymized channel ID." + }, + { + "code": 400, + "type": "USER_ALREADY_INVITED", + "description": "You have already invited this user." + } + ] + }, + "phone.joinGroupCall": { + "name": "phone.joinGroupCall", + "description": [ + "Join a group call" + ], + "parameters": { + "call": { + "name": "call", + "description": "The group call" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "invite_hash": { + "name": "invite_hash", + "description": "The invitation hash from the invite link »¹, if provided allows speaking in a livestream or muted group chat.", + "links": [ + "https://core.telegram.org/api/links#video-chat-livestream-links" + ] + }, + "join_as": { + "name": "join_as", + "description": "Join the group call, presenting yourself as the specified user/channel" + }, + "muted": { + "name": "muted", + "description": "If set, the user will be muted by default upon joining." + }, + "params": { + "name": "params", + "description": "WebRTC parameters" + }, + "video_stopped": { + "name": "video_stopped", + "description": "If set, the user's video will be disabled by default upon joining." + } + }, + "errors": [ + { + "code": 400, + "type": "DATA_JSON_INVALID", + "description": "The provided JSON data is invalid." + }, + { + "code": 500, + "type": "GROUPCALL_ADD_PARTICIPANTS_FAILED" + }, + { + "code": 403, + "type": "GROUPCALL_FORBIDDEN", + "description": "The group call has already ended." + }, + { + "code": 400, + "type": "GROUPCALL_INVALID", + "description": "The specified group call is invalid." + }, + { + "code": 400, + "type": "GROUPCALL_SSRC_DUPLICATE_MUCH", + "description": "The app needs to retry joining the group call with a new SSRC value." + }, + { + "code": 400, + "type": "JOIN_AS_PEER_INVALID", + "description": "The specified peer cannot be used to join a group call." + } + ] + }, + "phone.joinGroupCallPresentation": { + "name": "phone.joinGroupCallPresentation", + "description": [ + "Start screen sharing in a call" + ], + "parameters": { + "call": { + "name": "call", + "description": "The group call" + }, + "params": { + "name": "params", + "description": "WebRTC parameters" + } + }, + "errors": [ + { + "code": 403, + "type": "PARTICIPANT_JOIN_MISSING", + "description": "Trying to enable a presentation, when the user hasn't joined the Video Chat with phone.joinGroupCall." + } + ] + }, + "phone.leaveGroupCall": { + "name": "phone.leaveGroupCall", + "description": [ + "Leave a group call" + ], + "parameters": { + "call": { + "name": "call", + "description": "The group call" + }, + "source": { + "name": "source", + "description": "Your source ID" + } + } + }, + "phone.leaveGroupCallPresentation": { + "name": "phone.leaveGroupCallPresentation", + "description": [ + "Stop screen sharing in a group call" + ], + "parameters": { + "call": { + "name": "call", + "description": "The group call" + } + } + }, + "phone.receivedCall": { + "name": "phone.receivedCall", + "description": [ + "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." + ], + "parameters": { + "peer": { + "name": "peer", + "description": "The phone call we're currently in" + } + }, + "errors": [ + { + "code": 400, + "type": "CALL_ALREADY_DECLINED", + "description": "The call was already declined." + }, + { + "code": 400, + "type": "CALL_PEER_INVALID", + "description": "The provided call peer object is invalid." + } + ] + }, + "phone.requestCall": { + "name": "phone.requestCall", + "description": [ + "Start a telegram phone call" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "g_a_hash": { + "name": "g_a_hash", + "description": "Parameter for E2E encryption key exchange »¹", + "links": [ + "https://core.telegram.org/api/end-to-end/voice-calls" + ] + }, + "protocol": { + "name": "protocol", + "description": "Phone call settings" + }, + "random_id": { + "name": "random_id", + "description": "Random ID to avoid resending the same object" + }, + "user_id": { + "name": "user_id", + "description": "Destination of the phone call" + }, + "video": { + "name": "video", + "description": "Whether to start a video call" + } + }, + "errors": [ + { + "code": 400, + "type": "CALL_PROTOCOL_FLAGS_INVALID", + "description": "Call protocol flags invalid." + }, + { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + { + "code": 400, + "type": "PARTICIPANT_VERSION_OUTDATED", + "description": "The other participant does not use an up to date telegram client with support for calls." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + }, + { + "code": 403, + "type": "USER_IS_BLOCKED", + "description": "You were blocked by this user." + }, + { + "code": 403, + "type": "USER_PRIVACY_RESTRICTED", + "description": "The user's privacy settings do not allow you to do this." + } + ] + }, + "phone.saveCallDebug": { + "name": "phone.saveCallDebug", + "description": [ + "Send phone call debug data to server" + ], + "parameters": { + "debug": { + "name": "debug", + "description": "Debug statistics obtained from libtgvoip" + }, + "peer": { + "name": "peer", + "description": "Phone call" + } + }, + "errors": [ + { + "code": 400, + "type": "CALL_PEER_INVALID", + "description": "The provided call peer object is invalid." + }, + { + "code": 400, + "type": "DATA_JSON_INVALID", + "description": "The provided JSON data is invalid." + } + ] + }, + "phone.saveCallLog": { + "name": "phone.saveCallLog", + "description": [ + "Save phone call debug information" + ], + "parameters": { + "file": { + "name": "file", + "description": "Logs" + }, + "peer": { + "name": "peer", + "description": "Phone call" + } + } + }, + "phone.saveDefaultGroupCallJoinAs": { + "name": "phone.saveDefaultGroupCallJoinAs", + "description": [ + "Set the default peer that will be used to join a group call in a specific dialog." + ], + "parameters": { + "join_as": { + "name": "join_as", + "description": "The default peer that will be used to join group calls in this dialog, presenting yourself as a specific user/channel." + }, + "peer": { + "name": "peer", + "description": "The dialog" + } + }, + "errors": [ + { + "code": 400, + "type": "JOIN_AS_PEER_INVALID", + "description": "The specified peer cannot be used to join a group call." + } + ] + }, + "phone.sendSignalingData": { + "name": "phone.sendSignalingData", + "description": [ + "Send VoIP signaling data" + ], + "parameters": { + "data": { + "name": "data", + "description": "Signaling payload" + }, + "peer": { + "name": "peer", + "description": "Phone call" + } + } + }, + "phone.setCallRating": { + "name": "phone.setCallRating", + "description": [ + "Rate a call, returns info about the rating message sent to the official VoIP bot." + ], + "parameters": { + "comment": { + "name": "comment", + "description": "An additional comment" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "The call to rate" + }, + "rating": { + "name": "rating", + "description": "Rating in 1-5 stars" + }, + "user_initiative": { + "name": "user_initiative", + "description": "Whether the user decided on their own initiative to rate the call" + } + }, + "errors": [ + { + "code": 400, + "type": "CALL_PEER_INVALID", + "description": "The provided call peer object is invalid." + } + ] + }, + "phone.startScheduledGroupCall": { + "name": "phone.startScheduledGroupCall", + "description": [ + "Start a scheduled group call." + ], + "parameters": { + "call": { + "name": "call", + "description": "The scheduled group call" + } + } + }, + "phone.toggleGroupCallRecord": { + "name": "phone.toggleGroupCallRecord", + "description": [ + "Start or stop recording a group call: the recorded audio and video streams will be automatically sent to Saved messages (the chat with ourselves)." + ], + "parameters": { + "call": { + "name": "call", + "description": "The group call or livestream" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "start": { + "name": "start", + "description": "Whether to start or stop recording" + }, + "title": { + "name": "title", + "description": "Recording title" + }, + "video": { + "name": "video", + "description": "Whether to also record video streams" + }, + "video_portrait": { + "name": "video_portrait", + "description": "If video stream recording is enabled, whether to record in portrait or landscape mode" + } + }, + "errors": [ + { + "code": 403, + "type": "GROUPCALL_FORBIDDEN", + "description": "The group call has already ended." + }, + { + "code": 400, + "type": "GROUPCALL_NOT_MODIFIED", + "description": "Group call settings weren't modified." + } + ] + }, + "phone.toggleGroupCallSettings": { + "name": "phone.toggleGroupCallSettings", + "description": [ + "Change group call settings" + ], + "parameters": { + "call": { + "name": "call", + "description": "Group call" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "join_muted": { + "name": "join_muted", + "description": "Whether all users will that join this group call are muted by default upon joining the group call" + }, + "reset_invite_hash": { + "name": "reset_invite_hash", + "description": "Invalidate existing invite links" + } + }, + "errors": [ + { + "code": 400, + "type": "GROUPCALL_NOT_MODIFIED", + "description": "Group call settings weren't modified." + } + ] + }, + "phone.toggleGroupCallStartSubscription": { + "name": "phone.toggleGroupCallStartSubscription", + "description": [ + "Subscribe or unsubscribe to a scheduled group call" + ], + "parameters": { + "call": { + "name": "call", + "description": "Scheduled group call" + }, + "subscribed": { + "name": "subscribed", + "description": "Enable or disable subscription" + } + }, + "errors": [ + { + "code": 403, + "type": "GROUPCALL_ALREADY_STARTED", + "description": "The groupcall has already started, you can join directly using phone.joinGroupCall." + } + ] + }, + "photos.deletePhotos": { + "name": "photos.deletePhotos", + "description": [ + "Deletes profile photos. The method returns a list of successfully deleted photo IDs." + ], + "parameters": { + "id": { + "name": "id", + "description": "Input photos to delete" + } + } + }, + "photos.getUserPhotos": { + "name": "photos.getUserPhotos", + "description": [ + "Returns the list of user photos." + ], + "parameters": { + "limit": { + "name": "limit", + "description": "Number of list elements to be returned" + }, + "max_id": { + "name": "max_id", + "description": "If a positive value was transferred, the method will return only photos with IDs less than the set one. This parameter is often useful when refetching file references »¹, as in conjuction with limit=1 and offset=-1 the photo² object with the id specified in max_id can be fetched.", + "links": [ + "https://core.telegram.org/api/file_reference", + "https://core.telegram.org/constructor/photo" + ] + }, + "offset": { + "name": "offset", + "description": "Number of list elements to be skipped" + }, + "user_id": { + "name": "user_id", + "description": "User ID" + } + }, + "errors": [ + { + "code": 400, + "type": "MAX_ID_INVALID", + "description": "The provided max ID is invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ], + "bot_can_use": true + }, + "photos.updateProfilePhoto": { + "name": "photos.updateProfilePhoto", + "description": [ + "Installs a previously uploaded photo as a profile photo." + ], + "parameters": { + "bot": { + "name": "bot", + "description": "Can contain info of a bot we own, to change the profile photo of that bot, instead of the current user." + }, + "fallback": { + "name": "fallback", + "description": "If set, the chosen profile photo will be shown to users that can't display your main profile photo due to your privacy settings." + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Input photo" + } + }, + "errors": [ + { + "code": 400, + "type": "ALBUM_PHOTOS_TOO_MANY", + "description": "You have uploaded too many profile photos, delete some before retrying." + }, + { + "code": 400, + "type": "FILE_PARTS_INVALID", + "description": "The number of file parts is invalid." + }, + { + "code": 400, + "type": "IMAGE_PROCESS_FAILED", + "description": "Failure while processing image." + }, + { + "code": 400, + "type": "LOCATION_INVALID", + "description": "The provided location is invalid." + }, + { + "code": 400, + "type": "PHOTO_CROP_SIZE_SMALL", + "description": "Photo is too small." + }, + { + "code": 400, + "type": "PHOTO_EXT_INVALID", + "description": "The extension of the photo is invalid." + }, + { + "code": 400, + "type": "PHOTO_ID_INVALID", + "description": "Photo ID invalid." + } + ], + "bot_can_use": true + }, + "photos.uploadContactProfilePhoto": { + "name": "photos.uploadContactProfilePhoto", + "description": [ + "Upload a custom profile picture for a contact, or suggest a new profile picture to a contact.", + "The file, video and video_emoji_markup flags are mutually exclusive." + ], + "parameters": { + "file": { + "name": "file", + "description": "Profile photo" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "save": { + "name": "save", + "description": "If set, removes a previously set personal profile picture (does not affect suggested profile pictures, to remove them simply deleted the messageActionSuggestProfilePhoto¹ service message with messages.deleteMessages²).", + "links": [ + "https://core.telegram.org/constructor/messageActionSuggestProfilePhoto", + "https://core.telegram.org/method/messages.deleteMessages" + ] + }, + "suggest": { + "name": "suggest", + "description": "If set, will send a messageActionSuggestProfilePhoto¹ service message to user_id, suggesting them to use the specified profile picture; otherwise, will set a personal profile picture for the user (only visible to the current user).", + "links": [ + "https://core.telegram.org/constructor/messageActionSuggestProfilePhoto" + ] + }, + "user_id": { + "name": "user_id", + "description": "The contact" + }, + "video": { + "name": "video", + "description": "Animated profile picture¹ video", + "links": [ + "https://core.telegram.org/api/files#animated-profile-pictures" + ] + }, + "video_emoji_markup": { + "name": "video_emoji_markup", + "description": "Animated sticker profile picture, must contain either a videoSizeEmojiMarkup¹ or a videoSizeStickerMarkup² constructor.", + "links": [ + "https://core.telegram.org/constructor/videoSizeEmojiMarkup", + "https://core.telegram.org/constructor/videoSizeStickerMarkup" + ] + }, + "video_start_ts": { + "name": "video_start_ts", + "description": "Floating point UNIX timestamp in seconds, indicating the frame of the video/sticker that should be used as static preview; can only be used if video or video_emoji_markup is set." + } + }, + "errors": [ + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ], + "bot_can_use": true + }, + "photos.uploadProfilePhoto": { + "name": "photos.uploadProfilePhoto", + "description": [ + "Updates current user profile photo.", + "The file, video and video_emoji_markup flags are mutually exclusive." + ], + "parameters": { + "bot": { + "name": "bot", + "description": "Can contain info of a bot we own, to change the profile photo of that bot, instead of the current user." + }, + "fallback": { + "name": "fallback", + "description": "If set, the chosen profile photo will be shown to users that can't display your main profile photo due to your privacy settings." + }, + "file": { + "name": "file", + "description": "Profile photo" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "video": { + "name": "video", + "description": "Animated profile picture¹ video", + "links": [ + "https://core.telegram.org/api/files#animated-profile-pictures" + ] + }, + "video_emoji_markup": { + "name": "video_emoji_markup", + "description": "Animated sticker profile picture, must contain either a videoSizeEmojiMarkup¹ or a videoSizeStickerMarkup² constructor.", + "links": [ + "https://core.telegram.org/constructor/videoSizeEmojiMarkup", + "https://core.telegram.org/constructor/videoSizeStickerMarkup" + ] + }, + "video_start_ts": { + "name": "video_start_ts", + "description": "Floating point UNIX timestamp in seconds, indicating the frame of the video/sticker that should be used as static preview; can only be used if video or video_emoji_markup is set." + } + }, + "errors": [ + { + "code": 400, + "type": "ALBUM_PHOTOS_TOO_MANY", + "description": "You have uploaded too many profile photos, delete some before retrying." + }, + { + "code": 400, + "type": "BOT_INVALID", + "description": "This is not a valid bot." + }, + { + "code": 400, + "type": "EMOJI_MARKUP_INVALID", + "description": "The specified video_emoji_markup was invalid." + }, + { + "code": 400, + "type": "FILE_PARTS_INVALID", + "description": "The number of file parts is invalid." + }, + { + "code": 400, + "type": "IMAGE_PROCESS_FAILED", + "description": "Failure while processing image." + }, + { + "code": 400, + "type": "PHOTO_CROP_FILE_MISSING", + "description": "Photo crop file missing." + }, + { + "code": 400, + "type": "PHOTO_CROP_SIZE_SMALL", + "description": "Photo is too small." + }, + { + "code": 400, + "type": "PHOTO_EXT_INVALID", + "description": "The extension of the photo is invalid." + }, + { + "code": 400, + "type": "PHOTO_FILE_MISSING", + "description": "Profile photo file missing." + }, + { + "code": 400, + "type": "PHOTO_INVALID", + "description": "Photo invalid." + }, + { + "code": 400, + "type": "STICKER_MIME_INVALID", + "description": "The specified sticker MIME type is invalid." + }, + { + "code": 400, + "type": "VIDEO_FILE_INVALID", + "description": "The specified video file is invalid." + } + ], + "bot_can_use": true + }, + "premium.applyBoost": { + "name": "premium.applyBoost", + "description": [ + "Apply one or more boosts »¹ to a peer." + ], + "links": [ + "https://core.telegram.org/api/boost" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "The peer to boost." + }, + "slots": { + "name": "slots", + "description": "Which boost slots¹ to assign to this peer.", + "links": [ + "https://core.telegram.org/api/boost" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "BOOSTS_EMPTY", + "description": "No boost slots were specified." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "SLOTS_EMPTY", + "description": "The specified slot list is empty." + } + ] + }, + "premium.getBoostsList": { + "name": "premium.getBoostsList", + "description": [ + "Obtains info about the boosts that were applied to a certain channel (admins only)" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "gifts": { + "name": "gifts", + "description": "Whether to return only info about boosts received from gift codes and giveaways created by the channel »¹", + "links": [ + "https://core.telegram.org/api/giveaways" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset": { + "name": "offset", + "description": "Offset for pagination, obtained from premium.boostsList¹.next_offset", + "links": [ + "https://core.telegram.org/constructor/premium.boostsList" + ] + }, + "peer": { + "name": "peer", + "description": "The channel" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "premium.getBoostsStatus": { + "name": "premium.getBoostsStatus", + "description": [ + "Gets the current number of boosts¹ of a channel." + ], + "links": [ + "https://core.telegram.org/api/boost" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "The peer." + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "premium.getMyBoosts": { + "name": "premium.getMyBoosts", + "description": [ + "Obtain which peers are we currently boosting¹, and how many boost slots² we have left." + ], + "links": [ + "https://core.telegram.org/api/boost", + "https://core.telegram.org/api/boost" + ] + }, + "premium.getUserBoosts": { + "name": "premium.getUserBoosts", + "description": [ + "Returns the lists of boost that were applied to a channel by a specific user (admins only)" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "The channel" + }, + "user_id": { + "name": "user_id", + "description": "The user" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ], + "bot_can_use": true + }, + "stats.getBroadcastStats": { + "name": "stats.getBroadcastStats", + "description": [ + "Get channel statistics¹" + ], + "links": [ + "https://core.telegram.org/api/stats" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "The channel" + }, + "dark": { + "name": "dark", + "description": "Whether to enable dark theme for graph colors" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "BROADCAST_REQUIRED", + "description": "This method can only be called on a channel, please use stats.getMegagroupStats for supergroups." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + } + ] + }, + "stats.getMegagroupStats": { + "name": "stats.getMegagroupStats", + "description": [ + "Get supergroup statistics¹" + ], + "links": [ + "https://core.telegram.org/api/stats" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Supergroup ID¹", + "links": [ + "https://core.telegram.org/api/channel" + ] + }, + "dark": { + "name": "dark", + "description": "Whether to enable dark theme for graph colors" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 403, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "MEGAGROUP_REQUIRED", + "description": "You can only use this method on a supergroup." + } + ] + }, + "stats.getMessagePublicForwards": { + "name": "stats.getMessagePublicForwards", + "description": [ + "Obtains a list of messages, indicating to which other public channels was a channel message forwarded.", + "Will return a list of messages¹ with peer_id equal to the public channel to which this message was forwarded." + ], + "links": [ + "https://core.telegram.org/constructor/message" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Source channel" + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "msg_id": { + "name": "msg_id", + "description": "Source message ID" + }, + "offset": { + "name": "offset", + "description": "Offset for pagination¹, empty string on first call, then use the next_offset field of the returned constructor (if present, otherwise no more results are available).", + "links": [ + "https://core.telegram.org/api/offsets" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "stats.getMessageStats": { + "name": "stats.getMessageStats", + "description": [ + "Get message statistics¹" + ], + "links": [ + "https://core.telegram.org/api/stats" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "Channel ID" + }, + "dark": { + "name": "dark", + "description": "Whether to enable dark theme for graph colors" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "msg_id": { + "name": "msg_id", + "description": "Message ID" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "stats.getStoryPublicForwards": { + "name": "stats.getStoryPublicForwards", + "description": [ + "Obtain forwards of a story¹ as a message to public chats and reposts by public channels." + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "parameters": { + "id": { + "name": "id", + "description": "Story¹ ID", + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset": { + "name": "offset", + "description": "Offset for pagination, from stats.PublicForwards¹.next_offset.", + "links": [ + "https://core.telegram.org/constructor/stats.publicForwards" + ] + }, + "peer": { + "name": "peer", + "description": "Peer where the story was originally posted" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "stats.getStoryStats": { + "name": "stats.getStoryStats", + "description": [ + "Get statistics¹ for a certain story²." + ], + "links": [ + "https://core.telegram.org/api/stats", + "https://core.telegram.org/api/stories" + ], + "parameters": { + "dark": { + "name": "dark", + "description": "Whether to enable the dark theme for graph colors" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "Story ID" + }, + "peer": { + "name": "peer", + "description": "The peer that posted the story" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "stats.loadAsyncGraph": { + "name": "stats.loadAsyncGraph", + "description": [ + "Load channel statistics graph¹ asynchronously" + ], + "links": [ + "https://core.telegram.org/api/stats" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "token": { + "name": "token", + "description": "Graph token from statsGraphAsync¹ constructor", + "links": [ + "https://core.telegram.org/constructor/statsGraphAsync" + ] + }, + "x": { + "name": "x", + "description": "Zoom value, if required" + } + }, + "errors": [ + { + "code": 400, + "type": "GRAPH_EXPIRED_RELOAD", + "description": "This graph has expired, please obtain a new graph token." + }, + { + "code": 400, + "type": "GRAPH_INVALID_RELOAD", + "description": "Invalid graph token provided, please reload the stats and provide the updated token." + }, + { + "code": 400, + "type": "GRAPH_OUTDATED_RELOAD", + "description": "The graph is outdated, please get a new async token using stats.getBroadcastStats." + } + ] + }, + "stickers.addStickerToSet": { + "name": "stickers.addStickerToSet", + "description": [ + "Add a sticker to a stickerset, bots only. The sticker set must have been created by the bot." + ], + "parameters": { + "sticker": { + "name": "sticker", + "description": "The sticker" + }, + "stickerset": { + "name": "stickerset", + "description": "The stickerset" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_MISSING", + "description": "Only bots can call this method, please use @stickers if you're a user." + }, + { + "code": 400, + "type": "STICKERPACK_STICKERS_TOO_MUCH", + "description": "There are too many stickers in this stickerpack, you can't add any more." + }, + { + "code": 406, + "type": "STICKERSET_INVALID", + "description": "The provided sticker set is invalid." + }, + { + "code": 400, + "type": "STICKERS_TOO_MUCH", + "description": "There are too many stickers in this stickerpack, you can't add any more." + }, + { + "code": 400, + "type": "STICKER_PNG_NOPNG", + "description": "One of the specified stickers is not a valid PNG file." + }, + { + "code": 400, + "type": "STICKER_TGS_NOTGS", + "description": "Invalid TGS sticker provided." + } + ], + "bot_can_use": true + }, + "stickers.changeSticker": { + "name": "stickers.changeSticker", + "description": [ + "Update the keywords, emojis or mask coordinates¹ of a sticker, bots only." + ], + "links": [ + "https://core.telegram.org/api/stickers#mask-stickers" + ], + "parameters": { + "emoji": { + "name": "emoji", + "description": "If set, updates the emoji list associated to the sticker" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "keywords": { + "name": "keywords", + "description": "If set, updates the sticker keywords (separated by commas). Can't be provided for mask stickers." + }, + "mask_coords": { + "name": "mask_coords", + "description": "If set, updates the mask coordinates¹", + "links": [ + "https://core.telegram.org/api/stickers#mask-stickers" + ] + }, + "sticker": { + "name": "sticker", + "description": "The sticker" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_MISSING", + "description": "Only bots can call this method, please use @stickers if you're a user." + }, + { + "code": 400, + "type": "STICKER_INVALID", + "description": "The provided sticker is invalid." + } + ], + "bot_can_use": true + }, + "stickers.changeStickerPosition": { + "name": "stickers.changeStickerPosition", + "description": [ + "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" + ], + "parameters": { + "position": { + "name": "position", + "description": "The new position of the sticker, zero-based" + }, + "sticker": { + "name": "sticker", + "description": "The sticker" + } + }, + "errors": [ + { + "code": 400, + "type": "STICKER_INVALID", + "description": "The provided sticker is invalid." + } + ], + "bot_can_use": true + }, + "stickers.checkShortName": { + "name": "stickers.checkShortName", + "description": [ + "Check whether the given short name is available" + ], + "parameters": { + "short_name": { + "name": "short_name", + "description": "Short name" + } + }, + "errors": [ + { + "code": 400, + "type": "SHORT_NAME_INVALID", + "description": "The specified short name is invalid." + }, + { + "code": 400, + "type": "SHORT_NAME_OCCUPIED", + "description": "The specified short name is already in use." + } + ] + }, + "stickers.createStickerSet": { + "name": "stickers.createStickerSet", + "description": [ + "Create a stickerset, bots only." + ], + "parameters": { + "animated": { + "name": "animated", + "description": "Whether this is an animated stickerset" + }, + "emojis": { + "name": "emojis", + "description": "Whether this is a custom emoji¹ stickerset.", + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "masks": { + "name": "masks", + "description": "Whether this is a mask stickerset" + }, + "short_name": { + "name": "short_name", + "description": "Short name of sticker set, to be used in sticker deep links »¹. Can contain only english letters, digits and underscores. Must begin with a letter, can't contain consecutive underscores and, if called by a bot, must end in \"_by_\u003cbot_username\u003e\". \u003cbot_username\u003e is case insensitive. 1-64 characters.", + "links": [ + "https://core.telegram.org/api/links#stickerset-links" + ] + }, + "software": { + "name": "software", + "description": "Used when importing stickers using the sticker import SDKs¹, specifies the name of the software that created the stickers", + "links": [ + "https://core.telegram.org/import-stickers" + ] + }, + "stickers": { + "name": "stickers", + "description": "Stickers" + }, + "text_color": { + "name": "text_color", + "description": "Whether the color of TGS custom emojis contained in this set should be changed to the text color when used in messages, the accent color if used as emoji status, white on chat photos, or another appropriate color based on context. For custom emoji stickersets only." + }, + "thumb": { + "name": "thumb", + "description": "Thumbnail" + }, + "title": { + "name": "title", + "description": "Stickerset name, 1-64 chars" + }, + "user_id": { + "name": "user_id", + "description": "Stickerset owner" + }, + "videos": { + "name": "videos", + "description": "Whether this is a video stickerset" + } + }, + "errors": [ + { + "code": 400, + "type": "PACK_SHORT_NAME_INVALID", + "description": "Short pack name invalid." + }, + { + "code": 400, + "type": "PACK_SHORT_NAME_OCCUPIED", + "description": "A stickerpack with this name already exists." + }, + { + "code": 400, + "type": "PACK_TITLE_INVALID", + "description": "The stickerpack title is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "STICKERS_EMPTY", + "description": "No sticker provided." + }, + { + "code": 400, + "type": "STICKER_EMOJI_INVALID", + "description": "Sticker emoji invalid." + }, + { + "code": 400, + "type": "STICKER_FILE_INVALID", + "description": "Sticker file invalid." + }, + { + "code": 400, + "type": "STICKER_GIF_DIMENSIONS", + "description": "The specified video sticker has invalid dimensions." + }, + { + "code": 400, + "type": "STICKER_PNG_DIMENSIONS", + "description": "Sticker png dimensions invalid." + }, + { + "code": 400, + "type": "STICKER_PNG_NOPNG", + "description": "One of the specified stickers is not a valid PNG file." + }, + { + "code": 400, + "type": "STICKER_TGS_NODOC", + "description": "You must send the animated sticker as a document." + }, + { + "code": 400, + "type": "STICKER_TGS_NOTGS", + "description": "Invalid TGS sticker provided." + }, + { + "code": 400, + "type": "STICKER_THUMB_PNG_NOPNG", + "description": "Incorrect stickerset thumb file provided, PNG / WEBP expected." + }, + { + "code": 400, + "type": "STICKER_THUMB_TGS_NOTGS", + "description": "Incorrect stickerset TGS thumb file provided." + }, + { + "code": 400, + "type": "STICKER_VIDEO_BIG", + "description": "The specified video sticker is too big." + }, + { + "code": 400, + "type": "STICKER_VIDEO_NODOC", + "description": "You must send the video sticker as a document." + }, + { + "code": 400, + "type": "STICKER_VIDEO_NOWEBM", + "description": "The specified video sticker is not in webm format." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ], + "bot_can_use": true + }, + "stickers.deleteStickerSet": { + "name": "stickers.deleteStickerSet", + "description": [ + "Deletes a stickerset we created, bots only." + ], + "parameters": { + "stickerset": { + "name": "stickerset", + "description": "Stickerset to delete" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_MISSING", + "description": "Only bots can call this method, please use @stickers if you're a user." + }, + { + "code": 400, + "type": "STICKERSET_INVALID", + "description": "The provided sticker set is invalid." + } + ], + "bot_can_use": true + }, + "stickers.removeStickerFromSet": { + "name": "stickers.removeStickerFromSet", + "description": [ + "Remove a sticker from the set where it belongs, bots only. The sticker set must have been created by the bot." + ], + "parameters": { + "sticker": { + "name": "sticker", + "description": "The sticker to remove" + } + }, + "errors": [ + { + "code": 400, + "type": "BOT_MISSING", + "description": "Only bots can call this method, please use @stickers if you're a user." + }, + { + "code": 400, + "type": "STICKER_INVALID", + "description": "The provided sticker is invalid." + } + ], + "bot_can_use": true + }, + "stickers.renameStickerSet": { + "name": "stickers.renameStickerSet", + "description": [ + "Renames a stickerset, bots only." + ], + "parameters": { + "stickerset": { + "name": "stickerset", + "description": "Stickerset to rename" + }, + "title": { + "name": "title", + "description": "New stickerset title" + } + }, + "errors": [ + { + "code": 400, + "type": "STICKERSET_INVALID", + "description": "The provided sticker set is invalid." + } + ], + "bot_can_use": true + }, + "stickers.setStickerSetThumb": { + "name": "stickers.setStickerSetThumb", + "description": [ + "Set stickerset thumbnail" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "stickerset": { + "name": "stickerset", + "description": "Stickerset" + }, + "thumb": { + "name": "thumb", + "description": "Thumbnail (only for normal stickersets, not custom emoji stickersets)." + }, + "thumb_document_id": { + "name": "thumb_document_id", + "description": "Only for custom emoji stickersets¹, ID of a custom emoji present in the set to use as thumbnail; pass 0 to fallback to the first custom emoji of the set.", + "links": [ + "https://core.telegram.org/api/custom-emoji" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "STICKERSET_INVALID", + "description": "The provided sticker set is invalid." + }, + { + "code": 400, + "type": "STICKER_THUMB_PNG_NOPNG", + "description": "Incorrect stickerset thumb file provided, PNG / WEBP expected." + }, + { + "code": 400, + "type": "STICKER_THUMB_TGS_NOTGS", + "description": "Incorrect stickerset TGS thumb file provided." + } + ], + "bot_can_use": true + }, + "stickers.suggestShortName": { + "name": "stickers.suggestShortName", + "description": [ + "Suggests a short name for a given stickerpack name" + ], + "parameters": { + "title": { + "name": "title", + "description": "Sticker pack name" + } + }, + "errors": [ + { + "code": 400, + "type": "TITLE_INVALID", + "description": "The specified stickerpack title is invalid." + } + ] + }, + "stories.activateStealthMode": { + "name": "stories.activateStealthMode", + "description": [ + "Activates stories stealth mode¹, see here »² for more info.", + "Will return an updateStoriesStealthMode¹." + ], + "links": [ + "https://core.telegram.org/api/stories#stealth-mode", + "https://core.telegram.org/api/stories#stealth-mode", + "https://core.telegram.org/constructor/updateStoriesStealthMode" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "future": { + "name": "future", + "description": "Whether to hide future story views for the next stories_stealth_future_period seconds »¹, as specified by the client configuration².", + "links": [ + "https://core.telegram.org/api/config#stories-stealth-future-period", + "https://core.telegram.org/api/config#client-configuration" + ] + }, + "past": { + "name": "past", + "description": "Whether to erase views from any stories opened in the past stories_stealth_past_period seconds »¹, as specified by the client configuration².", + "links": [ + "https://core.telegram.org/api/config#stories-stealth-past-period", + "https://core.telegram.org/api/config#client-configuration" + ] + } + } + }, + "stories.canSendStory": { + "name": "stories.canSendStory", + "description": [ + "Check whether we can post stories as the specified peer." + ], + "parameters": { + "peer": { + "name": "peer", + "description": "The peer from which we wish to post stories." + } + }, + "errors": [ + { + "code": 400, + "type": "BOOSTS_REQUIRED", + "description": "The specified channel must first be boosted by its users in order to perform this action." + }, + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "PREMIUM_ACCOUNT_REQUIRED", + "description": "A premium account is required to execute this action." + }, + { + "code": 400, + "type": "STORIES_TOO_MUCH", + "description": "You have hit the maximum active stories limit as specified by the story_expiring_limit_* client configuration parameters: you should buy a Premium subscription, delete an active story, or wait for the oldest story to expire." + }, + { + "code": 400, + "type": "STORY_SEND_FLOOD_MONTHLY_%d", + "description": "You've hit the monthly story limit as specified by the stories_sent_monthly_limit_* client configuration parameters: wait for the specified number of seconds before posting a new story." + }, + { + "code": 400, + "type": "STORY_SEND_FLOOD_WEEKLY_%d", + "description": "You've hit the weekly story limit as specified by the stories_sent_weekly_limit_* client configuration parameters: wait for the specified number of seconds before posting a new story." + } + ] + }, + "stories.deleteStories": { + "name": "stories.deleteStories", + "description": [ + "Deletes some posted stories¹." + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "parameters": { + "id": { + "name": "id", + "description": "IDs of stories to delete." + }, + "peer": { + "name": "peer", + "description": "Channel/user from where to delete stories." + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "stories.editStory": { + "name": "stories.editStory", + "description": [ + "Edit an uploaded story¹" + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "parameters": { + "caption": { + "name": "caption", + "description": "If specified, replaces the story caption." + }, + "entities": { + "name": "entities", + "description": "Message entities for styled text in the caption¹, if allowed by the stories_entities client configuration parameter »².", + "links": [ + "https://core.telegram.org/api/entities", + "https://core.telegram.org/api/config#stories-entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "id": { + "name": "id", + "description": "ID of story to edit." + }, + "media": { + "name": "media", + "description": "If specified, replaces the story media." + }, + "media_areas": { + "name": "media_areas", + "description": "Media areas¹ associated to the story, see here »² for more info.", + "links": [ + "https://core.telegram.org/api/stories#media-areas", + "https://core.telegram.org/api/stories#media-areas" + ] + }, + "peer": { + "name": "peer", + "description": "Peer where the story was posted." + }, + "privacy_rules": { + "name": "privacy_rules", + "description": "If specified, alters the privacy settings »¹ of the story, changing who can or can't view the story.", + "links": [ + "https://core.telegram.org/api/privacy" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "STORY_NOT_MODIFIED", + "description": "The new story information you passed is equal to the previous story information, thus it wasn't modified." + } + ] + }, + "stories.exportStoryLink": { + "name": "stories.exportStoryLink", + "description": [ + "Generate a story deep link¹ for a specific story" + ], + "links": [ + "https://core.telegram.org/api/links#story-links" + ], + "parameters": { + "id": { + "name": "id", + "description": "Story ID" + }, + "peer": { + "name": "peer", + "description": "Peer where the story was posted" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USER_PUBLIC_MISSING" + } + ] + }, + "stories.getAllReadPeerStories": { + "name": "stories.getAllReadPeerStories", + "description": [ + "Obtain the latest read story ID for all peers when first logging in, returned as a list of updateReadStories¹ updates, see here »² for more info." + ], + "links": [ + "https://core.telegram.org/constructor/updateReadStories", + "https://core.telegram.org/api/stories#watching-stories" + ] + }, + "stories.getAllStories": { + "name": "stories.getAllStories", + "description": [ + "Fetch the List of active (or active and hidden) stories, see here »¹ for more info on watching stories." + ], + "links": [ + "https://core.telegram.org/api/stories#watching-stories" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hidden": { + "name": "hidden", + "description": "If set, fetches the hidden active story list, otherwise fetches the active story list, see here »¹ for more info on the full flow.", + "links": [ + "https://core.telegram.org/api/stories#watching-stories" + ] + }, + "next": { + "name": "next", + "description": "If next and state are both set, uses the passed state to paginate to the next results; if neither state nor next are set, fetches the initial page; if state is set and next is not set, check for changes in the active/hidden peerset, see here »¹ for more info on the full flow.", + "links": [ + "https://core.telegram.org/api/stories#watching-stories" + ] + }, + "state": { + "name": "state", + "description": "If next and state are both set, uses the passed state to paginate to the next results; if neither state nor next are set, fetches the initial page; if state is set and next is not set, check for changes in the active/hidden peerset, see here »¹ for more info on the full flow.", + "links": [ + "https://core.telegram.org/api/stories#watching-stories" + ] + } + } + }, + "stories.getChatsToSend": { + "name": "stories.getChatsToSend", + "description": [ + "Obtain a list of channels where the user can post stories¹" + ], + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "stories.getPeerMaxIDs": { + "name": "stories.getPeerMaxIDs", + "description": [ + "Get the IDs of the maximum read stories for a set of peers." + ], + "parameters": { + "id": { + "name": "id", + "description": "Peers" + } + } + }, + "stories.getPeerStories": { + "name": "stories.getPeerStories", + "description": [ + "Fetch the full active story list¹ of a specific peer." + ], + "links": [ + "https://core.telegram.org/api/stories#watching-stories" + ], + "parameters": { + "peer": { + "name": "peer", + "description": "Peer whose stories should be fetched" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "stories.getPinnedStories": { + "name": "stories.getPinnedStories", + "description": [ + "Fetch the stories¹ pinned on a peer's profile." + ], + "links": [ + "https://core.telegram.org/api/stories#pinned-or-archived-stories" + ], + "parameters": { + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "peer": { + "name": "peer", + "description": "Peer whose pinned stories should be fetched" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ] + }, + "stories.getStoriesArchive": { + "name": "stories.getStoriesArchive", + "description": [ + "Fetch the story archive »¹ of a peer we control." + ], + "links": [ + "https://core.telegram.org/api/stories#pinned-or-archived-stories" + ], + "parameters": { + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "peer": { + "name": "peer", + "description": "Peer whose archived stories should be fetched" + } + }, + "errors": [ + { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "stories.getStoriesByID": { + "name": "stories.getStoriesByID", + "description": [ + "Obtain full info about a set of stories¹ by their IDs." + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "parameters": { + "id": { + "name": "id", + "description": "Story IDs" + }, + "peer": { + "name": "peer", + "description": "Peer where the stories were posted" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "STORIES_NEVER_CREATED" + }, + { + "code": 400, + "type": "STORY_ID_EMPTY", + "description": "You specified no story IDs." + } + ] + }, + "stories.getStoriesViews": { + "name": "stories.getStoriesViews", + "description": [ + "Obtain info about the view count, forward count, reactions and recent viewers of one or more stories¹." + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "parameters": { + "id": { + "name": "id", + "description": "Story IDs" + }, + "peer": { + "name": "peer", + "description": "Peer whose stories should be fetched" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "STORY_ID_EMPTY", + "description": "You specified no story IDs." + } + ] + }, + "stories.getStoryReactionsList": { + "name": "stories.getStoryReactionsList", + "description": [ + "Get the reaction¹ and interaction list of a story² posted to a channel, along with the sender of each reaction.", + "Can only be used by channel admins." + ], + "links": [ + "https://core.telegram.org/api/reactions", + "https://core.telegram.org/api/stories" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "forwards_first": { + "name": "forwards_first", + "description": "If set, returns forwards and reposts first, then reactions, then other views; otherwise returns interactions sorted just by interaction date." + }, + "id": { + "name": "id", + "description": "Story¹ ID", + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset": { + "name": "offset", + "description": "Offset for pagination (taken from the next_offset field of the returned stories.StoryReactionsList¹); empty in the first request.", + "links": [ + "https://core.telegram.org/type/stories.StoryReactionsList" + ] + }, + "peer": { + "name": "peer", + "description": "Channel" + }, + "reaction": { + "name": "reaction", + "description": "Get only reactions of this type" + } + }, + "bot_can_use": true + }, + "stories.getStoryViewsList": { + "name": "stories.getStoryViewsList", + "description": [ + "Obtain the list of users that have viewed a specific story we posted¹" + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "forwards_first": { + "name": "forwards_first", + "description": "If set, returns forwards and reposts first, then reactions, then other views; otherwise returns interactions sorted just by interaction date." + }, + "id": { + "name": "id", + "description": "Story ID" + }, + "just_contacts": { + "name": "just_contacts", + "description": "Whether to only fetch view reaction/views made by our contacts¹", + "links": [ + "https://core.telegram.org/api/contacts" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset": { + "name": "offset", + "description": "Offset for pagination, obtained from stories.storyViewsList¹.next_offset", + "links": [ + "https://core.telegram.org/constructor/stories.storyViewsList" + ] + }, + "peer": { + "name": "peer", + "description": "Peer where the story was posted" + }, + "q": { + "name": "q", + "description": "Search for specific peers" + }, + "reactions_first": { + "name": "reactions_first", + "description": "Whether to return storyView¹ info about users that reacted to the story (i.e. if set, the server will first sort results by view date as usual, and then also additionally sort the list by putting storyView²s with an associated reaction first in the list). Ignored if forwards_first is set.", + "links": [ + "https://core.telegram.org/constructor/storyView", + "https://core.telegram.org/constructor/storyView" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "STORY_ID_INVALID", + "description": "The specified story ID is invalid." + } + ] + }, + "stories.incrementStoryViews": { + "name": "stories.incrementStoryViews", + "description": [ + "Increment the view counter of one or more stories." + ], + "parameters": { + "id": { + "name": "id", + "description": "IDs of the stories (maximum 200 at a time)." + }, + "peer": { + "name": "peer", + "description": "Peer where the stories were posted." + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "STORY_ID_EMPTY", + "description": "You specified no story IDs." + } + ] + }, + "stories.readStories": { + "name": "stories.readStories", + "description": [ + "Mark all stories up to a certain ID as read, for a given peer; will emit an updateReadStories¹ update to all logged-in sessions." + ], + "links": [ + "https://core.telegram.org/constructor/updateReadStories" + ], + "parameters": { + "max_id": { + "name": "max_id", + "description": "Mark all stories up to and including this ID as read" + }, + "peer": { + "name": "peer", + "description": "The peer whose stories should be marked as read." + } + }, + "errors": [ + { + "code": 400, + "type": "MAX_ID_INVALID", + "description": "The provided max ID is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "STORIES_NEVER_CREATED" + } + ] + }, + "stories.report": { + "name": "stories.report", + "description": [ + "Report a story." + ], + "parameters": { + "id": { + "name": "id", + "description": "IDs of the stories to report." + }, + "message": { + "name": "message", + "description": "Comment for report moderation" + }, + "peer": { + "name": "peer", + "description": "The peer that uploaded the story." + }, + "reason": { + "name": "reason", + "description": "Why are these storeis being reported." + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "stories.sendReaction": { + "name": "stories.sendReaction", + "description": [ + "React to a story." + ], + "parameters": { + "add_to_recent": { + "name": "add_to_recent", + "description": "Whether to add this reaction to the recent reactions list »¹.", + "links": [ + "https://core.telegram.org/api/reactions#recent-reactions" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": "The peer that sent the story" + }, + "reaction": { + "name": "reaction", + "description": "Reaction" + }, + "story_id": { + "name": "story_id", + "description": "ID of the story to react to" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "REACTION_INVALID", + "description": "The specified reaction is invalid." + }, + { + "code": 400, + "type": "STORY_ID_EMPTY", + "description": "You specified no story IDs." + } + ] + }, + "stories.sendStory": { + "name": "stories.sendStory", + "description": [ + "Uploads a Telegram Story¹." + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "parameters": { + "caption": { + "name": "caption", + "description": "Story caption." + }, + "entities": { + "name": "entities", + "description": "Message entities for styled text¹, if allowed by the stories_entities client configuration parameter »².", + "links": [ + "https://core.telegram.org/api/entities", + "https://core.telegram.org/api/config#stories-entities" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "fwd_from_id": { + "name": "fwd_from_id", + "description": "If set, indicates that this story is a repost of story with ID fwd_from_story posted by the peer in fwd_from_id." + }, + "fwd_from_story": { + "name": "fwd_from_story", + "description": "If set, indicates that this story is a repost of story with ID fwd_from_story posted by the peer in fwd_from_id." + }, + "fwd_modified": { + "name": "fwd_modified", + "description": "Set this flag when reposting stories with fwd_from_id+fwd_from_id, if the media was modified before reposting." + }, + "media": { + "name": "media", + "description": "The story media." + }, + "media_areas": { + "name": "media_areas", + "description": "Media areas¹ associated to the story, see here »² for more info.", + "links": [ + "https://core.telegram.org/api/stories#media-areas", + "https://core.telegram.org/api/stories#media-areas" + ] + }, + "noforwards": { + "name": "noforwards", + "description": "If set, disables forwards, screenshots, and downloads." + }, + "peer": { + "name": "peer", + "description": "The peer to send the story as." + }, + "period": { + "name": "period", + "description": "Period after which the story is moved to archive (and to the profile if pinned is set), in seconds; must be one of 6 * 3600, 12 * 3600, 86400, or 2 * 86400 for Telegram Premium users, and 86400 otherwise." + }, + "pinned": { + "name": "pinned", + "description": "Whether to add the story to the profile automatically upon expiration. If not set, the story will only be added to the archive, see here »¹ for more info.", + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "privacy_rules": { + "name": "privacy_rules", + "description": "Privacy rules¹ for the story, indicating who can or can't view the story.", + "links": [ + "https://core.telegram.org/api/privacy" + ] + }, + "random_id": { + "name": "random_id", + "description": "Unique client message ID required to prevent message resending." + } + }, + "errors": [ + { + "code": 400, + "type": "IMAGE_PROCESS_FAILED", + "description": "Failure while processing image." + }, + { + "code": 400, + "type": "MEDIA_EMPTY", + "description": "The provided media object is invalid." + }, + { + "code": 400, + "type": "MEDIA_FILE_INVALID", + "description": "The specified media file is invalid." + }, + { + "code": 400, + "type": "MEDIA_TYPE_INVALID", + "description": "The specified media type cannot be used in stories." + }, + { + "code": 400, + "type": "MEDIA_VIDEO_STORY_MISSING" + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + { + "code": 400, + "type": "PREMIUM_ACCOUNT_REQUIRED", + "description": "A premium account is required to execute this action." + }, + { + "code": 400, + "type": "STORIES_TOO_MUCH", + "description": "You have hit the maximum active stories limit as specified by the story_expiring_limit_* client configuration parameters: you should buy a Premium subscription, delete an active story, or wait for the oldest story to expire." + }, + { + "code": 400, + "type": "STORY_PERIOD_INVALID", + "description": "The specified story period is invalid for this account." + }, + { + "code": 400, + "type": "VENUE_ID_INVALID", + "description": "The specified venue ID is invalid." + } + ] + }, + "stories.toggleAllStoriesHidden": { + "name": "stories.toggleAllStoriesHidden", + "description": [ + "Hide the active stories of a specific peer, preventing them from being displayed on the action bar on the homescreen." + ], + "parameters": { + "hidden": { + "name": "hidden", + "description": "Whether to hide or unhide all active stories of the peer" + } + } + }, + "stories.togglePeerStoriesHidden": { + "name": "stories.togglePeerStoriesHidden", + "description": [ + "Hide the active stories of a user, preventing them from being displayed on the action bar on the homescreen, see here »¹ for more info." + ], + "links": [ + "https://core.telegram.org/api/stories#hiding-stories-of-other-users" + ], + "parameters": { + "hidden": { + "name": "hidden", + "description": "Whether to hide or unhide stories." + }, + "peer": { + "name": "peer", + "description": "Peer whose stories should be (un)hidden." + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "stories.togglePinned": { + "name": "stories.togglePinned", + "description": [ + "Pin or unpin one or more stories" + ], + "parameters": { + "id": { + "name": "id", + "description": "IDs of stories to pin or unpin" + }, + "peer": { + "name": "peer", + "description": "Peer where to pin or unpin stories" + }, + "pinned": { + "name": "pinned", + "description": "Whether to pin or unpin the stories" + } + }, + "errors": [ + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ] + }, + "updates.getChannelDifference": { + "name": "updates.getChannelDifference", + "description": [ + "Returns the difference between the current state of updates of a certain channel and transmitted." + ], + "parameters": { + "channel": { + "name": "channel", + "description": "The channel" + }, + "filter": { + "name": "filter", + "description": "Messsage filter" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "force": { + "name": "force", + "description": "Set to true to skip some possibly unneeded updates and reduce server-side load" + }, + "limit": { + "name": "limit", + "description": "How many updates to fetch, max 100000Ordinary (non-bot) users are supposed to pass 10-100" + }, + "pts": { + "name": "pts", + "description": "Persistent timestamp (see updates¹)", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 406, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHANNEL_PUBLIC_GROUP_NA", + "description": "channel/supergroup not available." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "FROM_MESSAGE_BOT_DISABLED", + "description": "Bots can't use fromMessage min constructors." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PERSISTENT_TIMESTAMP_EMPTY", + "description": "Persistent timestamp empty." + }, + { + "code": 400, + "type": "PERSISTENT_TIMESTAMP_INVALID", + "description": "Persistent timestamp invalid." + }, + { + "code": 500, + "type": "PERSISTENT_TIMESTAMP_OUTDATED", + "description": "Channel internal replication issues, try again later (treat this like an RPC_CALL_FAIL)." + }, + { + "code": 400, + "type": "PINNED_DIALOGS_TOO_MUCH", + "description": "Too many pinned dialogs." + }, + { + "code": 400, + "type": "RANGES_INVALID", + "description": "Invalid range provided." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + } + ], + "bot_can_use": true + }, + "updates.getDifference": { + "name": "updates.getDifference", + "description": [ + "Get new updates¹." + ], + "links": [ + "https://core.telegram.org/api/updates" + ], + "parameters": { + "date": { + "name": "date", + "description": "date, see updates¹.", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "pts": { + "name": "pts", + "description": "PTS, see updates¹.", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "pts_limit": { + "name": "pts_limit", + "description": "PTS limit" + }, + "pts_total_limit": { + "name": "pts_total_limit", + "description": "For fast updating: if provided and pts + pts_total_limit \u003c remote pts, updates.differenceTooLong¹ will be returned.Simply tells the server to not return the difference if it is bigger than pts_total_limitIf the remote pts is too big (\u003e ~4000000), this field will default to 1000000", + "links": [ + "https://core.telegram.org/constructor/updates.differenceTooLong" + ] + }, + "qts": { + "name": "qts", + "description": "QTS, see updates¹.", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "qts_limit": { + "name": "qts_limit", + "description": "QTS limit" + } + }, + "errors": [ + { + "code": 400, + "type": "CDN_METHOD_INVALID", + "description": "You can't call this method in a CDN DC." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + { + "code": 400, + "type": "DATE_EMPTY", + "description": "Date empty." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "PERSISTENT_TIMESTAMP_EMPTY", + "description": "Persistent timestamp empty." + }, + { + "code": 400, + "type": "PERSISTENT_TIMESTAMP_INVALID", + "description": "Persistent timestamp invalid." + }, + { + "code": 500, + "type": "RANDOM_ID_DUPLICATE", + "description": "You provided a random ID that was already used." + }, + { + "code": 400, + "type": "USERNAME_INVALID", + "description": "The provided username is not valid." + }, + { + "code": 400, + "type": "USER_NOT_PARTICIPANT", + "description": "You're not a member of this supergroup/channel." + } + ], + "bot_can_use": true + }, + "updates.getState": { + "name": "updates.getState", + "description": [ + "Returns a current state of updates." + ], + "bot_can_use": true + }, + "upload.getCdnFile": { + "name": "upload.getCdnFile", + "description": [ + "Download a CDN¹ file." + ], + "links": [ + "https://core.telegram.org/cdn" + ], + "parameters": { + "file_token": { + "name": "file_token", + "description": "File token" + }, + "limit": { + "name": "limit", + "description": "Length of chunk to download" + }, + "offset": { + "name": "offset", + "description": "Offset of chunk to download" + } + } + }, + "upload.getCdnFileHashes": { + "name": "upload.getCdnFileHashes", + "description": [ + "Get SHA256 hashes for verifying downloaded CDN¹ files" + ], + "links": [ + "https://core.telegram.org/cdn" + ], + "parameters": { + "file_token": { + "name": "file_token", + "description": "File" + }, + "offset": { + "name": "offset", + "description": "Offset from which to start getting hashes" + } + }, + "errors": [ + { + "code": 400, + "type": "CDN_METHOD_INVALID", + "description": "You can't call this method in a CDN DC." + }, + { + "code": 400, + "type": "FILE_TOKEN_INVALID", + "description": "The specified file token is invalid." + }, + { + "code": 400, + "type": "RSA_DECRYPT_FAILED", + "description": "Internal RSA decryption failed." + } + ], + "bot_can_use": true + }, + "upload.getFile": { + "name": "upload.getFile", + "description": [ + "Returns content of a whole file or its part." + ], + "parameters": { + "cdn_supported": { + "name": "cdn_supported", + "description": "Whether the current client supports CDN downloads¹", + "links": [ + "https://core.telegram.org/cdn" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "limit": { + "name": "limit", + "description": "Number of bytes to be returned" + }, + "location": { + "name": "location", + "description": "File location" + }, + "offset": { + "name": "offset", + "description": "Number of bytes to be skipped" + }, + "precise": { + "name": "precise", + "description": "Disable some checks on limit and offset values, useful for example to stream videos by keyframes" + } + }, + "errors": [ + { + "code": 400, + "type": "CDN_METHOD_INVALID", + "description": "You can't call this method in a CDN DC." + }, + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 406, + "type": "FILEREF_UPGRADE_NEEDED", + "description": "The client has to be updated in order to support file references." + }, + { + "code": 400, + "type": "FILE_ID_INVALID", + "description": "The provided file id is invalid." + }, + { + "code": 400, + "type": "FILE_REFERENCE_*", + "description": "The file reference expired, it must be refreshed." + }, + { + "code": 400, + "type": "FILE_REFERENCE_EXPIRED", + "description": "File reference expired, it must be refetched as described in the documentation." + }, + { + "code": 400, + "type": "LIMIT_INVALID", + "description": "The provided limit is invalid." + }, + { + "code": 400, + "type": "LOCATION_INVALID", + "description": "The provided location is invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "OFFSET_INVALID", + "description": "The provided offset is invalid." + }, + { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + } + ], + "bot_can_use": true + }, + "upload.getFileHashes": { + "name": "upload.getFileHashes", + "description": [ + "Get SHA256 hashes for verifying downloaded files" + ], + "parameters": { + "location": { + "name": "location", + "description": "File" + }, + "offset": { + "name": "offset", + "description": "Offset from which to get file hashes" + } + }, + "errors": [ + { + "code": 400, + "type": "LOCATION_INVALID", + "description": "The provided location is invalid." + } + ], + "bot_can_use": true + }, + "upload.getWebfile": { + "name": "upload.getWebfile", + "description": [ + "Returns content of a web file, by proxying the request through telegram, see the webfile docs for more info¹.", + "Note: the query must be sent to the DC specified in the webfile_dc_id MTProto configuration field¹." + ], + "links": [ + "https://core.telegram.org/api/files#downloading-webfiles", + "https://core.telegram.org/api/config#mtproto-configuration" + ], + "parameters": { + "limit": { + "name": "limit", + "description": "Number of bytes to be returned" + }, + "location": { + "name": "location", + "description": "The file to download" + }, + "offset": { + "name": "offset", + "description": "Number of bytes to be skipped" + } + }, + "errors": [ + { + "code": 400, + "type": "DOCUMENT_INVALID", + "description": "The specified document is invalid." + }, + { + "code": 400, + "type": "LOCATION_INVALID", + "description": "The provided location is invalid." + } + ] + }, + "upload.reuploadCdnFile": { + "name": "upload.reuploadCdnFile", + "description": [ + "Request a reupload of a certain file to a CDN DC¹." + ], + "links": [ + "https://core.telegram.org/cdn" + ], + "parameters": { + "file_token": { + "name": "file_token", + "description": "File token" + }, + "request_token": { + "name": "request_token", + "description": "Request token" + } + }, + "errors": [ + { + "code": 400, + "type": "CDN_METHOD_INVALID", + "description": "You can't call this method in a CDN DC." + }, + { + "code": 500, + "type": "CDN_UPLOAD_TIMEOUT", + "description": "A server-side timeout occurred while reuploading the file to the CDN DC." + }, + { + "code": 400, + "type": "FILE_TOKEN_INVALID", + "description": "The specified file token is invalid." + }, + { + "code": 400, + "type": "RSA_DECRYPT_FAILED", + "description": "Internal RSA decryption failed." + } + ], + "bot_can_use": true + }, + "upload.saveBigFilePart": { + "name": "upload.saveBigFilePart", + "description": [ + "Saves a part of a large file (over 10 MB in size) to be later passed to one of the methods." + ], + "parameters": { + "bytes": { + "name": "bytes", + "description": "Binary data, part contents" + }, + "file_id": { + "name": "file_id", + "description": "Random file id, created by the client" + }, + "file_part": { + "name": "file_part", + "description": "Part sequence number" + }, + "file_total_parts": { + "name": "file_total_parts", + "description": "Total number of parts" + } + }, + "errors": [ + { + "code": 400, + "type": "FILE_PARTS_INVALID", + "description": "The number of file parts is invalid." + }, + { + "code": 400, + "type": "FILE_PART_EMPTY", + "description": "The provided file part is empty." + }, + { + "code": 400, + "type": "FILE_PART_INVALID", + "description": "The file part number is invalid." + }, + { + "code": 400, + "type": "FILE_PART_SIZE_CHANGED", + "description": "Provided file part size has changed." + }, + { + "code": 400, + "type": "FILE_PART_SIZE_INVALID", + "description": "The provided file part size is invalid." + }, + { + "code": 400, + "type": "FILE_PART_TOO_BIG", + "description": "The uploaded file part is too big." + } + ], + "bot_can_use": true + }, + "upload.saveFilePart": { + "name": "upload.saveFilePart", + "description": [ + "Saves a part of file for further sending to one of the methods." + ], + "parameters": { + "bytes": { + "name": "bytes", + "description": "Binary data, content of a part" + }, + "file_id": { + "name": "file_id", + "description": "Random file identifier created by the client" + }, + "file_part": { + "name": "file_part", + "description": "Numerical order of a part" + } + }, + "errors": [ + { + "code": 400, + "type": "FILE_PART_EMPTY", + "description": "The provided file part is empty." + }, + { + "code": 400, + "type": "FILE_PART_INVALID", + "description": "The file part number is invalid." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + } + ], + "bot_can_use": true + }, + "users.getFullUser": { + "name": "users.getFullUser", + "description": [ + "Returns extended user info by ID." + ], + "parameters": { + "id": { + "name": "id", + "description": "User ID" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "USERNAME_OCCUPIED", + "description": "The provided username is already occupied." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ], + "bot_can_use": true + }, + "users.getUsers": { + "name": "users.getUsers", + "description": [ + "Returns basic user info according to their identifiers." + ], + "parameters": { + "id": { + "name": "id", + "description": "List of user identifiers" + } + }, + "errors": [ + { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + { + "code": 400, + "type": "FROM_MESSAGE_BOT_DISABLED", + "description": "Bots can't use fromMessage min constructors." + }, + { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + } + ], + "bot_can_use": true + }, + "users.setSecureValueErrors": { + "name": "users.setSecureValueErrors", + "description": [ + "Notify the user that the sent passport¹ 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).", + "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." + ], + "links": [ + "https://core.telegram.org/passport" + ], + "parameters": { + "errors": { + "name": "errors", + "description": "Errors" + }, + "id": { + "name": "id", + "description": "The user" + } + }, + "errors": [ + { + "code": 403, + "type": "USER_BOT_INVALID", + "description": "User accounts must provide the bot method parameter when calling this method. If there is no such method parameter, this method can only be invoked by bot accounts." + }, + { + "code": 400, + "type": "USER_BOT_REQUIRED", + "description": "This method can only be called by a bot." + }, + { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + } + ], + "bot_can_use": true + } + }, + "errors": { + "2FA_CONFIRM_WAIT_%d": { + "code": 420, + "type": "2FA_CONFIRM_WAIT_%d", + "description": "Since this account is active and protected by a 2FA password, we will delete it in 1 week for security purposes. You can cancel this process at any time, you'll be able to reset your account in %d seconds." + }, + "ABOUT_TOO_LONG": { + "code": 400, + "type": "ABOUT_TOO_LONG", + "description": "About string too long." + }, + "ACCESS_TOKEN_EXPIRED": { + "code": 400, + "type": "ACCESS_TOKEN_EXPIRED", + "description": "Access token expired." + }, + "ACCESS_TOKEN_INVALID": { + "code": 400, + "type": "ACCESS_TOKEN_INVALID", + "description": "Access token invalid." + }, + "ADDRESS_INVALID": { + "code": 400, + "type": "ADDRESS_INVALID", + "description": "The specified geopoint address is invalid." + }, + "ADMINS_TOO_MUCH": { + "code": 400, + "type": "ADMINS_TOO_MUCH", + "description": "There are too many admins." + }, + "ADMIN_ID_INVALID": { + "code": 400, + "type": "ADMIN_ID_INVALID", + "description": "The specified admin ID is invalid." + }, + "ADMIN_RANK_EMOJI_NOT_ALLOWED": { + "code": 400, + "type": "ADMIN_RANK_EMOJI_NOT_ALLOWED", + "description": "An admin rank cannot contain emojis." + }, + "ADMIN_RANK_INVALID": { + "code": 400, + "type": "ADMIN_RANK_INVALID", + "description": "The specified admin rank is invalid." + }, + "ADMIN_RIGHTS_EMPTY": { + "code": 400, + "type": "ADMIN_RIGHTS_EMPTY" + }, + "ALBUM_PHOTOS_TOO_MANY": { + "code": 400, + "type": "ALBUM_PHOTOS_TOO_MANY", + "description": "You have uploaded too many profile photos, delete some before retrying." + }, + "ANONYMOUS_REACTIONS_DISABLED": { + "code": 403, + "type": "ANONYMOUS_REACTIONS_DISABLED" + }, + "API_ID_INVALID": { + "code": 400, + "type": "API_ID_INVALID", + "description": "API ID invalid." + }, + "API_ID_PUBLISHED_FLOOD": { + "code": 400, + "type": "API_ID_PUBLISHED_FLOOD", + "description": "This API id was published somewhere, you can't use it now." + }, + "ARTICLE_TITLE_EMPTY": { + "code": 400, + "type": "ARTICLE_TITLE_EMPTY", + "description": "The title of the article is empty." + }, + "AUDIO_CONTENT_URL_EMPTY": { + "code": 400, + "type": "AUDIO_CONTENT_URL_EMPTY", + "description": "The remote URL specified in the content field is empty." + }, + "AUDIO_TITLE_EMPTY": { + "code": 400, + "type": "AUDIO_TITLE_EMPTY", + "description": "An empty audio title was provided." + }, + "AUTH_BYTES_INVALID": { + "code": 400, + "type": "AUTH_BYTES_INVALID", + "description": "The provided authorization is invalid." + }, + "AUTH_RESTART": { + "code": 500, + "type": "AUTH_RESTART", + "description": "Restart the authorization process." + }, + "AUTH_TOKEN_ALREADY_ACCEPTED": { + "code": 400, + "type": "AUTH_TOKEN_ALREADY_ACCEPTED", + "description": "The specified auth token was already accepted." + }, + "AUTH_TOKEN_EXCEPTION": { + "code": 400, + "type": "AUTH_TOKEN_EXCEPTION", + "description": "An error occurred while importing the auth token." + }, + "AUTH_TOKEN_EXPIRED": { + "code": 400, + "type": "AUTH_TOKEN_EXPIRED", + "description": "The authorization token has expired." + }, + "AUTH_TOKEN_INVALID": { + "code": 400, + "type": "AUTH_TOKEN_INVALID", + "description": "The specified auth token is invalid." + }, + "AUTH_TOKEN_INVALIDX": { + "code": 400, + "type": "AUTH_TOKEN_INVALIDX", + "description": "The specified auth token is invalid." + }, + "AUTOARCHIVE_NOT_AVAILABLE": { + "code": 400, + "type": "AUTOARCHIVE_NOT_AVAILABLE", + "description": "The autoarchive setting is not available at this time: please check the value of the autoarchive_setting_available field in client config » before calling this method." + }, + "BANK_CARD_NUMBER_INVALID": { + "code": 400, + "type": "BANK_CARD_NUMBER_INVALID", + "description": "The specified card number is invalid." + }, + "BANNED_RIGHTS_INVALID": { + "code": 400, + "type": "BANNED_RIGHTS_INVALID", + "description": "You provided some invalid flags in the banned rights." + }, + "BOOSTS_EMPTY": { + "code": 400, + "type": "BOOSTS_EMPTY", + "description": "No boost slots were specified." + }, + "BOOSTS_REQUIRED": { + "code": 400, + "type": "BOOSTS_REQUIRED", + "description": "The specified channel must first be boosted by its users in order to perform this action." + }, + "BOOST_PEER_INVALID": { + "code": 400, + "type": "BOOST_PEER_INVALID", + "description": "The specified boost_peer is invalid." + }, + "BOTS_TOO_MUCH": { + "code": 400, + "type": "BOTS_TOO_MUCH", + "description": "There are too many bots in this chat/channel." + }, + "BOT_APP_INVALID": { + "code": 400, + "type": "BOT_APP_INVALID", + "description": "The specified bot app is invalid." + }, + "BOT_CHANNELS_NA": { + "code": 400, + "type": "BOT_CHANNELS_NA", + "description": "Bots can't edit admin privileges." + }, + "BOT_COMMAND_DESCRIPTION_INVALID": { + "code": 400, + "type": "BOT_COMMAND_DESCRIPTION_INVALID", + "description": "The specified command description is invalid." + }, + "BOT_COMMAND_INVALID": { + "code": 400, + "type": "BOT_COMMAND_INVALID", + "description": "The specified command is invalid." + }, + "BOT_DOMAIN_INVALID": { + "code": 400, + "type": "BOT_DOMAIN_INVALID", + "description": "Bot domain invalid." + }, + "BOT_GROUPS_BLOCKED": { + "code": 400, + "type": "BOT_GROUPS_BLOCKED", + "description": "This bot can't be added to groups." + }, + "BOT_INLINE_DISABLED": { + "code": 400, + "type": "BOT_INLINE_DISABLED", + "description": "This bot can't be used in inline mode." + }, + "BOT_INVALID": { + "code": 400, + "type": "BOT_INVALID", + "description": "This is not a valid bot." + }, + "BOT_MISSING": { + "code": 400, + "type": "BOT_MISSING", + "description": "Only bots can call this method, please use @stickers if you're a user." + }, + "BOT_ONESIDE_NOT_AVAIL": { + "code": 400, + "type": "BOT_ONESIDE_NOT_AVAIL", + "description": "Bots can't pin messages in PM just for themselves." + }, + "BOT_PAYMENTS_DISABLED": { + "code": 400, + "type": "BOT_PAYMENTS_DISABLED", + "description": "Please enable bot payments in botfather before calling this method." + }, + "BOT_RESPONSE_TIMEOUT": { + "code": 400, + "type": "BOT_RESPONSE_TIMEOUT", + "description": "A timeout occurred while fetching data from the bot." + }, + "BOT_SCORE_NOT_MODIFIED": { + "code": 400, + "type": "BOT_SCORE_NOT_MODIFIED", + "description": "The score wasn't modified." + }, + "BROADCAST_FORBIDDEN": { + "code": 403, + "type": "BROADCAST_FORBIDDEN", + "description": "Channel poll voters and reactions cannot be fetched to prevent deanonymization." + }, + "BROADCAST_ID_INVALID": { + "code": 400, + "type": "BROADCAST_ID_INVALID", + "description": "Broadcast ID invalid." + }, + "BROADCAST_PUBLIC_VOTERS_FORBIDDEN": { + "code": 400, + "type": "BROADCAST_PUBLIC_VOTERS_FORBIDDEN", + "description": "You can't forward polls with public voters." + }, + "BROADCAST_REQUIRED": { + "code": 400, + "type": "BROADCAST_REQUIRED", + "description": "This method can only be called on a channel, please use stats.getMegagroupStats for supergroups." + }, + "BUTTON_DATA_INVALID": { + "code": 400, + "type": "BUTTON_DATA_INVALID", + "description": "The data of one or more of the buttons you provided is invalid." + }, + "BUTTON_TEXT_INVALID": { + "code": 400, + "type": "BUTTON_TEXT_INVALID", + "description": "The specified button text is invalid." + }, + "BUTTON_TYPE_INVALID": { + "code": 400, + "type": "BUTTON_TYPE_INVALID", + "description": "The type of one or more of the buttons you provided is invalid." + }, + "BUTTON_URL_INVALID": { + "code": 400, + "type": "BUTTON_URL_INVALID", + "description": "Button URL invalid." + }, + "BUTTON_USER_PRIVACY_RESTRICTED": { + "code": 400, + "type": "BUTTON_USER_PRIVACY_RESTRICTED", + "description": "The privacy setting of the user specified in a inputKeyboardButtonUserProfile button do not allow creating such a button." + }, + "CALL_ALREADY_ACCEPTED": { + "code": 400, + "type": "CALL_ALREADY_ACCEPTED", + "description": "The call was already accepted." + }, + "CALL_ALREADY_DECLINED": { + "code": 400, + "type": "CALL_ALREADY_DECLINED", + "description": "The call was already declined." + }, + "CALL_OCCUPY_FAILED": { + "code": 500, + "type": "CALL_OCCUPY_FAILED", + "description": "The call failed because the user is already making another call." + }, + "CALL_PEER_INVALID": { + "code": 400, + "type": "CALL_PEER_INVALID", + "description": "The provided call peer object is invalid." + }, + "CALL_PROTOCOL_COMPAT_LAYER_INVALID": { + "code": 406, + "type": "CALL_PROTOCOL_COMPAT_LAYER_INVALID", + "description": "The other side of the call does not support any of the VoIP protocols supported by the local client, as specified by the protocol.layer and protocol.library_versions fields." + }, + "CALL_PROTOCOL_FLAGS_INVALID": { + "code": 400, + "type": "CALL_PROTOCOL_FLAGS_INVALID", + "description": "Call protocol flags invalid." + }, + "CDN_METHOD_INVALID": { + "code": 400, + "type": "CDN_METHOD_INVALID", + "description": "You can't call this method in a CDN DC." + }, + "CDN_UPLOAD_TIMEOUT": { + "code": 500, + "type": "CDN_UPLOAD_TIMEOUT", + "description": "A server-side timeout occurred while reuploading the file to the CDN DC." + }, + "CHANNELS_ADMIN_LOCATED_TOO_MUCH": { + "code": 400, + "type": "CHANNELS_ADMIN_LOCATED_TOO_MUCH", + "description": "The user has reached the limit of public geogroups." + }, + "CHANNELS_ADMIN_PUBLIC_TOO_MUCH": { + "code": 400, + "type": "CHANNELS_ADMIN_PUBLIC_TOO_MUCH", + "description": "You're admin of too many public channels, make some channels private to change the username of this channel." + }, + "CHANNELS_TOO_MUCH": { + "code": 400, + "type": "CHANNELS_TOO_MUCH", + "description": "You have joined too many channels/supergroups." + }, + "CHANNEL_FORUM_MISSING": { + "code": 400, + "type": "CHANNEL_FORUM_MISSING", + "description": "This supergroup is not a forum." + }, + "CHANNEL_ID_INVALID": { + "code": 400, + "type": "CHANNEL_ID_INVALID", + "description": "The specified supergroup ID is invalid." + }, + "CHANNEL_INVALID": { + "code": 400, + "type": "CHANNEL_INVALID", + "description": "The provided channel is invalid." + }, + "CHANNEL_PARICIPANT_MISSING": { + "code": 400, + "type": "CHANNEL_PARICIPANT_MISSING", + "description": "The current user is not in the channel." + }, + "CHANNEL_PRIVATE": { + "code": 400, + "type": "CHANNEL_PRIVATE", + "description": "You haven't joined this channel/supergroup." + }, + "CHANNEL_PUBLIC_GROUP_NA": { + "code": 403, + "type": "CHANNEL_PUBLIC_GROUP_NA", + "description": "channel/supergroup not available." + }, + "CHANNEL_TOO_BIG": { + "code": 400, + "type": "CHANNEL_TOO_BIG", + "description": "This channel has too many participants (\u003e1000) to be deleted." + }, + "CHANNEL_TOO_LARGE": { + "code": 406, + "type": "CHANNEL_TOO_LARGE", + "description": "Channel is too large to be deleted; this error is issued when trying to delete channels with more than 1000 members (subject to change)." + }, + "CHATLIST_EXCLUDE_INVALID": { + "code": 400, + "type": "CHATLIST_EXCLUDE_INVALID", + "description": "The specified exclude_peers are invalid." + }, + "CHAT_ABOUT_NOT_MODIFIED": { + "code": 400, + "type": "CHAT_ABOUT_NOT_MODIFIED", + "description": "About text has not changed." + }, + "CHAT_ABOUT_TOO_LONG": { + "code": 400, + "type": "CHAT_ABOUT_TOO_LONG", + "description": "Chat about too long." + }, + "CHAT_ADMIN_INVITE_REQUIRED": { + "code": 403, + "type": "CHAT_ADMIN_INVITE_REQUIRED", + "description": "You do not have the rights to do this." + }, + "CHAT_ADMIN_REQUIRED": { + "code": 400, + "type": "CHAT_ADMIN_REQUIRED", + "description": "You must be an admin in this chat to do this." + }, + "CHAT_DISCUSSION_UNALLOWED": { + "code": 400, + "type": "CHAT_DISCUSSION_UNALLOWED", + "description": "You can't enable forum topics in a discussion group linked to a channel." + }, + "CHAT_FORWARDS_RESTRICTED": { + "code": 400, + "type": "CHAT_FORWARDS_RESTRICTED", + "description": "You can't forward messages from a protected chat." + }, + "CHAT_GUEST_SEND_FORBIDDEN": { + "code": 403, + "type": "CHAT_GUEST_SEND_FORBIDDEN", + "description": "You join the discussion group before commenting, see here » for more info." + }, + "CHAT_ID_EMPTY": { + "code": 400, + "type": "CHAT_ID_EMPTY", + "description": "The provided chat ID is empty." + }, + "CHAT_ID_GENERATE_FAILED": { + "code": 500, + "type": "CHAT_ID_GENERATE_FAILED", + "description": "Failure while generating the chat ID." + }, + "CHAT_ID_INVALID": { + "code": 400, + "type": "CHAT_ID_INVALID", + "description": "The provided chat id is invalid." + }, + "CHAT_INVALID": { + "code": 500, + "type": "CHAT_INVALID", + "description": "Invalid chat." + }, + "CHAT_INVITE_PERMANENT": { + "code": 400, + "type": "CHAT_INVITE_PERMANENT", + "description": "You can't set an expiration date on permanent invite links." + }, + "CHAT_LINK_EXISTS": { + "code": 400, + "type": "CHAT_LINK_EXISTS", + "description": "The chat is public, you can't hide the history to new users." + }, + "CHAT_NOT_MODIFIED": { + "code": 400, + "type": "CHAT_NOT_MODIFIED", + "description": "No changes were made to chat information because the new information you passed is identical to the current information." + }, + "CHAT_PUBLIC_REQUIRED": { + "code": 400, + "type": "CHAT_PUBLIC_REQUIRED", + "description": "You can only enable join requests in public groups." + }, + "CHAT_RESTRICTED": { + "code": 400, + "type": "CHAT_RESTRICTED", + "description": "You can't send messages in this chat, you were restricted." + }, + "CHAT_REVOKE_DATE_UNSUPPORTED": { + "code": 400, + "type": "CHAT_REVOKE_DATE_UNSUPPORTED", + "description": "min_date and max_date are not available for using with non-user peers." + }, + "CHAT_SEND_AUDIOS_FORBIDDEN": { + "code": 403, + "type": "CHAT_SEND_AUDIOS_FORBIDDEN", + "description": "You can't send audio messages in this chat." + }, + "CHAT_SEND_DOCS_FORBIDDEN": { + "code": 403, + "type": "CHAT_SEND_DOCS_FORBIDDEN", + "description": "You can't send documents in this chat." + }, + "CHAT_SEND_GAME_FORBIDDEN": { + "code": 403, + "type": "CHAT_SEND_GAME_FORBIDDEN", + "description": "You can't send a game to this chat." + }, + "CHAT_SEND_GIFS_FORBIDDEN": { + "code": 403, + "type": "CHAT_SEND_GIFS_FORBIDDEN", + "description": "You can't send gifs in this chat." + }, + "CHAT_SEND_INLINE_FORBIDDEN": { + "code": 403, + "type": "CHAT_SEND_INLINE_FORBIDDEN", + "description": "You can't send inline messages in this group." + }, + "CHAT_SEND_MEDIA_FORBIDDEN": { + "code": 403, + "type": "CHAT_SEND_MEDIA_FORBIDDEN", + "description": "You can't send media in this chat." + }, + "CHAT_SEND_PHOTOS_FORBIDDEN": { + "code": 403, + "type": "CHAT_SEND_PHOTOS_FORBIDDEN", + "description": "You can't send photos in this chat." + }, + "CHAT_SEND_PLAIN_FORBIDDEN": { + "code": 403, + "type": "CHAT_SEND_PLAIN_FORBIDDEN", + "description": "You can't send non-media (text) messages in this chat." + }, + "CHAT_SEND_POLL_FORBIDDEN": { + "code": 403, + "type": "CHAT_SEND_POLL_FORBIDDEN", + "description": "You can't send polls in this chat." + }, + "CHAT_SEND_STICKERS_FORBIDDEN": { + "code": 403, + "type": "CHAT_SEND_STICKERS_FORBIDDEN", + "description": "You can't send stickers in this chat." + }, + "CHAT_SEND_VIDEOS_FORBIDDEN": { + "code": 403, + "type": "CHAT_SEND_VIDEOS_FORBIDDEN", + "description": "You can't send videos in this chat." + }, + "CHAT_SEND_VOICES_FORBIDDEN": { + "code": 403, + "type": "CHAT_SEND_VOICES_FORBIDDEN", + "description": "You can't send voice recordings in this chat." + }, + "CHAT_TITLE_EMPTY": { + "code": 400, + "type": "CHAT_TITLE_EMPTY", + "description": "No chat title provided." + }, + "CHAT_TOO_BIG": { + "code": 400, + "type": "CHAT_TOO_BIG", + "description": "This method is not available for groups with more than chat_read_mark_size_threshold members, see client configuration »." + }, + "CHAT_WRITE_FORBIDDEN": { + "code": 403, + "type": "CHAT_WRITE_FORBIDDEN", + "description": "You can't write in this chat." + }, + "CODE_EMPTY": { + "code": 400, + "type": "CODE_EMPTY", + "description": "The provided code is empty." + }, + "CODE_HASH_INVALID": { + "code": 400, + "type": "CODE_HASH_INVALID", + "description": "Code hash invalid." + }, + "CODE_INVALID": { + "code": 400, + "type": "CODE_INVALID", + "description": "Code invalid." + }, + "COLOR_INVALID": { + "code": 400, + "type": "COLOR_INVALID", + "description": "The specified color palette ID was invalid." + }, + "CONNECTION_API_ID_INVALID": { + "code": 400, + "type": "CONNECTION_API_ID_INVALID", + "description": "The provided API id is invalid." + }, + "CONNECTION_APP_VERSION_EMPTY": { + "code": 400, + "type": "CONNECTION_APP_VERSION_EMPTY", + "description": "App version is empty." + }, + "CONNECTION_LAYER_INVALID": { + "code": 400, + "type": "CONNECTION_LAYER_INVALID", + "description": "Layer invalid." + }, + "CONTACT_ADD_MISSING": { + "code": 400, + "type": "CONTACT_ADD_MISSING", + "description": "Contact to add is missing." + }, + "CONTACT_ID_INVALID": { + "code": 400, + "type": "CONTACT_ID_INVALID", + "description": "The provided contact ID is invalid." + }, + "CONTACT_NAME_EMPTY": { + "code": 400, + "type": "CONTACT_NAME_EMPTY", + "description": "Contact name empty." + }, + "CONTACT_REQ_MISSING": { + "code": 400, + "type": "CONTACT_REQ_MISSING", + "description": "Missing contact request." + }, + "CREATE_CALL_FAILED": { + "code": 400, + "type": "CREATE_CALL_FAILED", + "description": "An error occurred while creating the call." + }, + "CURRENCY_TOTAL_AMOUNT_INVALID": { + "code": 400, + "type": "CURRENCY_TOTAL_AMOUNT_INVALID", + "description": "The total amount of all prices is invalid." + }, + "CUSTOM_REACTIONS_TOO_MANY": { + "code": 400, + "type": "CUSTOM_REACTIONS_TOO_MANY", + "description": "Too many custom reactions were specified." + }, + "DATA_INVALID": { + "code": 400, + "type": "DATA_INVALID", + "description": "Encrypted data invalid." + }, + "DATA_JSON_INVALID": { + "code": 400, + "type": "DATA_JSON_INVALID", + "description": "The provided JSON data is invalid." + }, + "DATA_TOO_LONG": { + "code": 400, + "type": "DATA_TOO_LONG", + "description": "Data too long." + }, + "DATE_EMPTY": { + "code": 400, + "type": "DATE_EMPTY", + "description": "Date empty." + }, + "DC_ID_INVALID": { + "code": 400, + "type": "DC_ID_INVALID", + "description": "The provided DC ID is invalid." + }, + "DH_G_A_INVALID": { + "code": 400, + "type": "DH_G_A_INVALID", + "description": "g_a invalid." + }, + "DOCUMENT_INVALID": { + "code": 400, + "type": "DOCUMENT_INVALID", + "description": "The specified document is invalid." + }, + "EDIT_BOT_INVITE_FORBIDDEN": { + "code": 403, + "type": "EDIT_BOT_INVITE_FORBIDDEN", + "description": "Normal users can't edit invites that were created by bots." + }, + "EMAIL_HASH_EXPIRED": { + "code": 400, + "type": "EMAIL_HASH_EXPIRED", + "description": "Email hash expired." + }, + "EMAIL_INVALID": { + "code": 400, + "type": "EMAIL_INVALID", + "description": "The specified email is invalid." + }, + "EMAIL_NOT_SETUP": { + "code": 400, + "type": "EMAIL_NOT_SETUP", + "description": "In order to change the login email with emailVerifyPurposeLoginChange, an existing login email must already be set using emailVerifyPurposeLoginSetup." + }, + "EMAIL_UNCONFIRMED": { + "code": 400, + "type": "EMAIL_UNCONFIRMED", + "description": "Email unconfirmed." + }, + "EMAIL_UNCONFIRMED_%d": { + "code": 400, + "type": "EMAIL_UNCONFIRMED_%d", + "description": "The provided email isn't confirmed, %d is the length of the verification code that was just sent to the email: use account.verifyEmail to enter the received verification code and enable the recovery email." + }, + "EMAIL_VERIFY_EXPIRED": { + "code": 400, + "type": "EMAIL_VERIFY_EXPIRED", + "description": "The verification email has expired." + }, + "EMOJI_INVALID": { + "code": 400, + "type": "EMOJI_INVALID", + "description": "The specified theme emoji is valid." + }, + "EMOJI_MARKUP_INVALID": { + "code": 400, + "type": "EMOJI_MARKUP_INVALID", + "description": "The specified video_emoji_markup was invalid." + }, + "EMOJI_NOT_MODIFIED": { + "code": 400, + "type": "EMOJI_NOT_MODIFIED", + "description": "The theme wasn't changed." + }, + "EMOTICON_EMPTY": { + "code": 400, + "type": "EMOTICON_EMPTY", + "description": "The emoji is empty." + }, + "EMOTICON_INVALID": { + "code": 400, + "type": "EMOTICON_INVALID", + "description": "The specified emoji is invalid." + }, + "EMOTICON_STICKERPACK_MISSING": { + "code": 400, + "type": "EMOTICON_STICKERPACK_MISSING", + "description": "inputStickerSetDice.emoji cannot be empty." + }, + "ENCRYPTED_MESSAGE_INVALID": { + "code": 400, + "type": "ENCRYPTED_MESSAGE_INVALID", + "description": "Encrypted message invalid." + }, + "ENCRYPTION_ALREADY_ACCEPTED": { + "code": 400, + "type": "ENCRYPTION_ALREADY_ACCEPTED", + "description": "Secret chat already accepted." + }, + "ENCRYPTION_ALREADY_DECLINED": { + "code": 400, + "type": "ENCRYPTION_ALREADY_DECLINED", + "description": "The secret chat was already declined." + }, + "ENCRYPTION_DECLINED": { + "code": 400, + "type": "ENCRYPTION_DECLINED", + "description": "The secret chat was declined." + }, + "ENCRYPTION_ID_INVALID": { + "code": 400, + "type": "ENCRYPTION_ID_INVALID", + "description": "The provided secret chat ID is invalid." + }, + "ENTITIES_TOO_LONG": { + "code": 400, + "type": "ENTITIES_TOO_LONG", + "description": "You provided too many styled message entities." + }, + "ENTITY_BOUNDS_INVALID": { + "code": 400, + "type": "ENTITY_BOUNDS_INVALID", + "description": "A specified entity offset or length is invalid, see here » for info on how to properly compute the entity offset/length." + }, + "ENTITY_MENTION_USER_INVALID": { + "code": 400, + "type": "ENTITY_MENTION_USER_INVALID", + "description": "You mentioned an invalid user." + }, + "ERROR_TEXT_EMPTY": { + "code": 400, + "type": "ERROR_TEXT_EMPTY", + "description": "The provided error message is empty." + }, + "EXPIRE_DATE_INVALID": { + "code": 400, + "type": "EXPIRE_DATE_INVALID", + "description": "The specified expiration date is invalid." + }, + "EXTERNAL_URL_INVALID": { + "code": 400, + "type": "EXTERNAL_URL_INVALID", + "description": "External URL invalid." + }, + "FILEREF_UPGRADE_NEEDED": { + "code": 406, + "type": "FILEREF_UPGRADE_NEEDED", + "description": "The client has to be updated in order to support file references." + }, + "FILE_CONTENT_TYPE_INVALID": { + "code": 400, + "type": "FILE_CONTENT_TYPE_INVALID", + "description": "File content-type is invalid." + }, + "FILE_EMTPY": { + "code": 400, + "type": "FILE_EMTPY", + "description": "An empty file was provided." + }, + "FILE_ID_INVALID": { + "code": 400, + "type": "FILE_ID_INVALID", + "description": "The provided file id is invalid." + }, + "FILE_PARTS_INVALID": { + "code": 400, + "type": "FILE_PARTS_INVALID", + "description": "The number of file parts is invalid." + }, + "FILE_PART_EMPTY": { + "code": 400, + "type": "FILE_PART_EMPTY", + "description": "The provided file part is empty." + }, + "FILE_PART_INVALID": { + "code": 400, + "type": "FILE_PART_INVALID", + "description": "The file part number is invalid." + }, + "FILE_PART_LENGTH_INVALID": { + "code": 400, + "type": "FILE_PART_LENGTH_INVALID", + "description": "The length of a file part is invalid." + }, + "FILE_PART_SIZE_CHANGED": { + "code": 400, + "type": "FILE_PART_SIZE_CHANGED", + "description": "Provided file part size has changed." + }, + "FILE_PART_SIZE_INVALID": { + "code": 400, + "type": "FILE_PART_SIZE_INVALID", + "description": "The provided file part size is invalid." + }, + "FILE_PART_TOO_BIG": { + "code": 400, + "type": "FILE_PART_TOO_BIG", + "description": "The uploaded file part is too big." + }, + "FILE_REFERENCE_*": { + "code": 400, + "type": "FILE_REFERENCE_*", + "description": "The file reference expired, it must be refreshed." + }, + "FILE_REFERENCE_EMPTY": { + "code": 400, + "type": "FILE_REFERENCE_EMPTY", + "description": "An empty file reference was specified." + }, + "FILE_REFERENCE_EXPIRED": { + "code": 400, + "type": "FILE_REFERENCE_EXPIRED", + "description": "File reference expired, it must be refetched as described in the documentation." + }, + "FILE_REFERENCE_INVALID": { + "code": 400, + "type": "FILE_REFERENCE_INVALID", + "description": "The specified file reference is invalid." + }, + "FILE_TITLE_EMPTY": { + "code": 400, + "type": "FILE_TITLE_EMPTY", + "description": "An empty file title was specified." + }, + "FILE_TOKEN_INVALID": { + "code": 400, + "type": "FILE_TOKEN_INVALID", + "description": "The specified file token is invalid." + }, + "FILTER_ID_INVALID": { + "code": 400, + "type": "FILTER_ID_INVALID", + "description": "The specified filter ID is invalid." + }, + "FILTER_INCLUDE_EMPTY": { + "code": 400, + "type": "FILTER_INCLUDE_EMPTY", + "description": "The include_peers vector of the filter is empty." + }, + "FILTER_NOT_SUPPORTED": { + "code": 400, + "type": "FILTER_NOT_SUPPORTED", + "description": "The specified filter cannot be used in this context." + }, + "FILTER_TITLE_EMPTY": { + "code": 400, + "type": "FILTER_TITLE_EMPTY", + "description": "The title field of the filter is empty." + }, + "FIRSTNAME_INVALID": { + "code": 400, + "type": "FIRSTNAME_INVALID", + "description": "The first name is invalid." + }, + "FOLDER_ID_INVALID": { + "code": 400, + "type": "FOLDER_ID_INVALID", + "description": "Invalid folder ID." + }, + "FORUM_ENABLED": { + "code": 400, + "type": "FORUM_ENABLED", + "description": "You can't execute the specified action because the group is a forum, disable forum functionality to continue." + }, + "FRESH_CHANGE_ADMINS_FORBIDDEN": { + "code": 406, + "type": "FRESH_CHANGE_ADMINS_FORBIDDEN", + "description": "You were just elected admin, you can't add or modify other admins yet." + }, + "FRESH_CHANGE_PHONE_FORBIDDEN": { + "code": 406, + "type": "FRESH_CHANGE_PHONE_FORBIDDEN", + "description": "You can't change phone number right after logging in, please wait at least 24 hours." + }, + "FRESH_RESET_AUTHORISATION_FORBIDDEN": { + "code": 406, + "type": "FRESH_RESET_AUTHORISATION_FORBIDDEN", + "description": "You can't logout other sessions if less than 24 hours have passed since you logged on the current session." + }, + "FROM_MESSAGE_BOT_DISABLED": { + "code": 400, + "type": "FROM_MESSAGE_BOT_DISABLED", + "description": "Bots can't use fromMessage min constructors." + }, + "FROM_PEER_INVALID": { + "code": 400, + "type": "FROM_PEER_INVALID", + "description": "The specified from_id is invalid." + }, + "GAME_BOT_INVALID": { + "code": 400, + "type": "GAME_BOT_INVALID", + "description": "Bots can't send another bot's game." + }, + "GENERAL_MODIFY_ICON_FORBIDDEN": { + "code": 400, + "type": "GENERAL_MODIFY_ICON_FORBIDDEN", + "description": "You can't modify the icon of the \"General\" topic." + }, + "GEO_POINT_INVALID": { + "code": 400, + "type": "GEO_POINT_INVALID", + "description": "Invalid geoposition provided." + }, + "GIFTCODE_NOT_ALLOWED": { + "code": 406, + "type": "GIFTCODE_NOT_ALLOWED" + }, + "GIFT_SLUG_INVALID": { + "code": 400, + "type": "GIFT_SLUG_INVALID", + "description": "The specified slug is invalid." + }, + "GIF_CONTENT_TYPE_INVALID": { + "code": 400, + "type": "GIF_CONTENT_TYPE_INVALID", + "description": "GIF content-type invalid." + }, + "GIF_ID_INVALID": { + "code": 400, + "type": "GIF_ID_INVALID", + "description": "The provided GIF ID is invalid." + }, + "GRAPH_EXPIRED_RELOAD": { + "code": 400, + "type": "GRAPH_EXPIRED_RELOAD", + "description": "This graph has expired, please obtain a new graph token." + }, + "GRAPH_INVALID_RELOAD": { + "code": 400, + "type": "GRAPH_INVALID_RELOAD", + "description": "Invalid graph token provided, please reload the stats and provide the updated token." + }, + "GRAPH_OUTDATED_RELOAD": { + "code": 400, + "type": "GRAPH_OUTDATED_RELOAD", + "description": "The graph is outdated, please get a new async token using stats.getBroadcastStats." + }, + "GROUPCALL_ADD_PARTICIPANTS_FAILED": { + "code": 500, + "type": "GROUPCALL_ADD_PARTICIPANTS_FAILED" + }, + "GROUPCALL_ALREADY_DISCARDED": { + "code": 400, + "type": "GROUPCALL_ALREADY_DISCARDED", + "description": "The group call was already discarded." + }, + "GROUPCALL_ALREADY_STARTED": { + "code": 403, + "type": "GROUPCALL_ALREADY_STARTED", + "description": "The groupcall has already started, you can join directly using phone.joinGroupCall." + }, + "GROUPCALL_FORBIDDEN": { + "code": 403, + "type": "GROUPCALL_FORBIDDEN", + "description": "The group call has already ended." + }, + "GROUPCALL_INVALID": { + "code": 400, + "type": "GROUPCALL_INVALID", + "description": "The specified group call is invalid." + }, + "GROUPCALL_JOIN_MISSING": { + "code": 400, + "type": "GROUPCALL_JOIN_MISSING", + "description": "You haven't joined this group call." + }, + "GROUPCALL_NOT_MODIFIED": { + "code": 400, + "type": "GROUPCALL_NOT_MODIFIED", + "description": "Group call settings weren't modified." + }, + "GROUPCALL_SSRC_DUPLICATE_MUCH": { + "code": 400, + "type": "GROUPCALL_SSRC_DUPLICATE_MUCH", + "description": "The app needs to retry joining the group call with a new SSRC value." + }, + "GROUPED_MEDIA_INVALID": { + "code": 400, + "type": "GROUPED_MEDIA_INVALID", + "description": "Invalid grouped media." + }, + "HASH_INVALID": { + "code": 400, + "type": "HASH_INVALID", + "description": "The provided hash is invalid." + }, + "HIDE_REQUESTER_MISSING": { + "code": 400, + "type": "HIDE_REQUESTER_MISSING", + "description": "The join request was missing or was already handled." + }, + "IMAGE_PROCESS_FAILED": { + "code": 400, + "type": "IMAGE_PROCESS_FAILED", + "description": "Failure while processing image." + }, + "IMPORT_FILE_INVALID": { + "code": 400, + "type": "IMPORT_FILE_INVALID", + "description": "The specified chat export file is invalid." + }, + "IMPORT_FORMAT_UNRECOGNIZED": { + "code": 400, + "type": "IMPORT_FORMAT_UNRECOGNIZED", + "description": "The specified chat export file was exported from an unsupported chat app." + }, + "IMPORT_ID_INVALID": { + "code": 400, + "type": "IMPORT_ID_INVALID", + "description": "The specified import ID is invalid." + }, + "IMPORT_TOKEN_INVALID": { + "code": 400, + "type": "IMPORT_TOKEN_INVALID", + "description": "The specified token is invalid." + }, + "INLINE_BOT_REQUIRED": { + "code": 403, + "type": "INLINE_BOT_REQUIRED", + "description": "Only the inline bot can edit message." + }, + "INLINE_RESULT_EXPIRED": { + "code": 400, + "type": "INLINE_RESULT_EXPIRED", + "description": "The inline query expired." + }, + "INPUT_CHATLIST_INVALID": { + "code": 400, + "type": "INPUT_CHATLIST_INVALID", + "description": "The specified folder is invalid." + }, + "INPUT_FILTER_INVALID": { + "code": 400, + "type": "INPUT_FILTER_INVALID", + "description": "The specified filter is invalid." + }, + "INPUT_TEXT_EMPTY": { + "code": 400, + "type": "INPUT_TEXT_EMPTY", + "description": "The specified text is empty." + }, + "INPUT_USER_DEACTIVATED": { + "code": 400, + "type": "INPUT_USER_DEACTIVATED", + "description": "The specified user was deleted." + }, + "INVITES_TOO_MUCH": { + "code": 400, + "type": "INVITES_TOO_MUCH", + "description": "The maximum number of per-folder invites specified by the chatlist_invites_limit_default/chatlist_invites_limit_premium client configuration parameters » was reached." + }, + "INVITE_FORBIDDEN_WITH_JOINAS": { + "code": 400, + "type": "INVITE_FORBIDDEN_WITH_JOINAS", + "description": "If the user has anonymously joined a group call as a channel, they can't invite other users to the group call because that would cause deanonymization, because the invite would be sent using the original user ID, not the anonymized channel ID." + }, + "INVITE_HASH_EMPTY": { + "code": 400, + "type": "INVITE_HASH_EMPTY", + "description": "The invite hash is empty." + }, + "INVITE_HASH_EXPIRED": { + "code": 406, + "type": "INVITE_HASH_EXPIRED", + "description": "The invite link has expired." + }, + "INVITE_HASH_INVALID": { + "code": 400, + "type": "INVITE_HASH_INVALID", + "description": "The invite hash is invalid." + }, + "INVITE_REQUEST_SENT": { + "code": 400, + "type": "INVITE_REQUEST_SENT", + "description": "You have successfully requested to join this chat or channel." + }, + "INVITE_REVOKED_MISSING": { + "code": 400, + "type": "INVITE_REVOKED_MISSING", + "description": "The specified invite link was already revoked or is invalid." + }, + "INVITE_SLUG_EMPTY": { + "code": 400, + "type": "INVITE_SLUG_EMPTY", + "description": "The specified invite slug is empty." + }, + "INVITE_SLUG_EXPIRED": { + "code": 400, + "type": "INVITE_SLUG_EXPIRED", + "description": "The specified chat folder link has expired." + }, + "INVOICE_PAYLOAD_INVALID": { + "code": 400, + "type": "INVOICE_PAYLOAD_INVALID", + "description": "The specified invoice payload is invalid." + }, + "JOIN_AS_PEER_INVALID": { + "code": 400, + "type": "JOIN_AS_PEER_INVALID", + "description": "The specified peer cannot be used to join a group call." + }, + "LANG_CODE_INVALID": { + "code": 400, + "type": "LANG_CODE_INVALID", + "description": "The specified language code is invalid." + }, + "LANG_CODE_NOT_SUPPORTED": { + "code": 400, + "type": "LANG_CODE_NOT_SUPPORTED", + "description": "The specified language code is not supported." + }, + "LANG_PACK_INVALID": { + "code": 400, + "type": "LANG_PACK_INVALID", + "description": "The provided language pack is invalid." + }, + "LASTNAME_INVALID": { + "code": 400, + "type": "LASTNAME_INVALID", + "description": "The last name is invalid." + }, + "LIMIT_INVALID": { + "code": 400, + "type": "LIMIT_INVALID", + "description": "The provided limit is invalid." + }, + "LINK_NOT_MODIFIED": { + "code": 400, + "type": "LINK_NOT_MODIFIED", + "description": "Discussion link not modified." + }, + "LOCATION_INVALID": { + "code": 400, + "type": "LOCATION_INVALID", + "description": "The provided location is invalid." + }, + "MAX_DATE_INVALID": { + "code": 400, + "type": "MAX_DATE_INVALID", + "description": "The specified maximum date is invalid." + }, + "MAX_ID_INVALID": { + "code": 400, + "type": "MAX_ID_INVALID", + "description": "The provided max ID is invalid." + }, + "MAX_QTS_INVALID": { + "code": 400, + "type": "MAX_QTS_INVALID", + "description": "The specified max_qts is invalid." + }, + "MD5_CHECKSUM_INVALID": { + "code": 400, + "type": "MD5_CHECKSUM_INVALID", + "description": "The MD5 checksums do not match." + }, + "MEDIA_CAPTION_TOO_LONG": { + "code": 400, + "type": "MEDIA_CAPTION_TOO_LONG", + "description": "The caption is too long." + }, + "MEDIA_EMPTY": { + "code": 400, + "type": "MEDIA_EMPTY", + "description": "The provided media object is invalid." + }, + "MEDIA_FILE_INVALID": { + "code": 400, + "type": "MEDIA_FILE_INVALID", + "description": "The specified media file is invalid." + }, + "MEDIA_GROUPED_INVALID": { + "code": 400, + "type": "MEDIA_GROUPED_INVALID", + "description": "You tried to send media of different types in an album." + }, + "MEDIA_INVALID": { + "code": 400, + "type": "MEDIA_INVALID", + "description": "Media invalid." + }, + "MEDIA_NEW_INVALID": { + "code": 400, + "type": "MEDIA_NEW_INVALID", + "description": "The new media is invalid." + }, + "MEDIA_PREV_INVALID": { + "code": 400, + "type": "MEDIA_PREV_INVALID", + "description": "Previous media invalid." + }, + "MEDIA_TTL_INVALID": { + "code": 400, + "type": "MEDIA_TTL_INVALID", + "description": "The specified media TTL is invalid." + }, + "MEDIA_TYPE_INVALID": { + "code": 400, + "type": "MEDIA_TYPE_INVALID", + "description": "The specified media type cannot be used in stories." + }, + "MEDIA_VIDEO_STORY_MISSING": { + "code": 400, + "type": "MEDIA_VIDEO_STORY_MISSING" + }, + "MEGAGROUP_GEO_REQUIRED": { + "code": 400, + "type": "MEGAGROUP_GEO_REQUIRED", + "description": "This method can only be invoked on a geogroup." + }, + "MEGAGROUP_ID_INVALID": { + "code": 400, + "type": "MEGAGROUP_ID_INVALID", + "description": "Invalid supergroup ID." + }, + "MEGAGROUP_PREHISTORY_HIDDEN": { + "code": 400, + "type": "MEGAGROUP_PREHISTORY_HIDDEN", + "description": "Group with hidden history for new members can't be set as discussion groups." + }, + "MEGAGROUP_REQUIRED": { + "code": 400, + "type": "MEGAGROUP_REQUIRED", + "description": "You can only use this method on a supergroup." + }, + "MEMBER_NOT_FOUND": { + "code": 500, + "type": "MEMBER_NOT_FOUND" + }, + "MESSAGE_AUTHOR_REQUIRED": { + "code": 403, + "type": "MESSAGE_AUTHOR_REQUIRED", + "description": "Message author required." + }, + "MESSAGE_DELETE_FORBIDDEN": { + "code": 403, + "type": "MESSAGE_DELETE_FORBIDDEN", + "description": "You can't delete one of the messages you tried to delete, most likely because it is a service message." + }, + "MESSAGE_EDIT_TIME_EXPIRED": { + "code": 400, + "type": "MESSAGE_EDIT_TIME_EXPIRED", + "description": "You can't edit this message anymore, too much time has passed since its creation." + }, + "MESSAGE_EMPTY": { + "code": 400, + "type": "MESSAGE_EMPTY", + "description": "The provided message is empty." + }, + "MESSAGE_IDS_EMPTY": { + "code": 400, + "type": "MESSAGE_IDS_EMPTY", + "description": "No message ids were provided." + }, + "MESSAGE_ID_INVALID": { + "code": 400, + "type": "MESSAGE_ID_INVALID", + "description": "The provided message id is invalid." + }, + "MESSAGE_NOT_MODIFIED": { + "code": 400, + "type": "MESSAGE_NOT_MODIFIED", + "description": "The provided message data is identical to the previous message data, the message wasn't modified." + }, + "MESSAGE_POLL_CLOSED": { + "code": 400, + "type": "MESSAGE_POLL_CLOSED", + "description": "Poll closed." + }, + "MESSAGE_TOO_LONG": { + "code": 400, + "type": "MESSAGE_TOO_LONG", + "description": "The provided message is too long." + }, + "METHOD_INVALID": { + "code": 400, + "type": "METHOD_INVALID", + "description": "The specified method is invalid." + }, + "MIN_DATE_INVALID": { + "code": 400, + "type": "MIN_DATE_INVALID", + "description": "The specified minimum date is invalid." + }, + "MSG_ID_INVALID": { + "code": 400, + "type": "MSG_ID_INVALID", + "description": "Invalid message ID provided." + }, + "MSG_TOO_OLD": { + "code": 400, + "type": "MSG_TOO_OLD", + "description": "chat_read_mark_expire_period seconds have passed since the message was sent, read receipts were deleted." + }, + "MSG_WAIT_FAILED": { + "code": 500, + "type": "MSG_WAIT_FAILED", + "description": "A waiting call returned an error." + }, + "MULTI_MEDIA_TOO_LONG": { + "code": 400, + "type": "MULTI_MEDIA_TOO_LONG", + "description": "Too many media files for album." + }, + "NEW_SALT_INVALID": { + "code": 400, + "type": "NEW_SALT_INVALID", + "description": "The new salt is invalid." + }, + "NEW_SETTINGS_EMPTY": { + "code": 400, + "type": "NEW_SETTINGS_EMPTY", + "description": "No password is set on the current account, and no new password was specified in new_settings." + }, + "NEW_SETTINGS_INVALID": { + "code": 400, + "type": "NEW_SETTINGS_INVALID", + "description": "The new password settings are invalid." + }, + "NEXT_OFFSET_INVALID": { + "code": 400, + "type": "NEXT_OFFSET_INVALID", + "description": "The specified offset is longer than 64 bytes." + }, + "OFFSET_INVALID": { + "code": 400, + "type": "OFFSET_INVALID", + "description": "The provided offset is invalid." + }, + "OFFSET_PEER_ID_INVALID": { + "code": 400, + "type": "OFFSET_PEER_ID_INVALID", + "description": "The provided offset peer is invalid." + }, + "OPTIONS_TOO_MUCH": { + "code": 400, + "type": "OPTIONS_TOO_MUCH", + "description": "Too many options provided." + }, + "OPTION_INVALID": { + "code": 400, + "type": "OPTION_INVALID", + "description": "Invalid option selected." + }, + "ORDER_INVALID": { + "code": 400, + "type": "ORDER_INVALID", + "description": "The specified username order is invalid." + }, + "PACK_SHORT_NAME_INVALID": { + "code": 400, + "type": "PACK_SHORT_NAME_INVALID", + "description": "Short pack name invalid." + }, + "PACK_SHORT_NAME_OCCUPIED": { + "code": 400, + "type": "PACK_SHORT_NAME_OCCUPIED", + "description": "A stickerpack with this name already exists." + }, + "PACK_TITLE_INVALID": { + "code": 400, + "type": "PACK_TITLE_INVALID", + "description": "The stickerpack title is invalid." + }, + "PARTICIPANTS_TOO_FEW": { + "code": 400, + "type": "PARTICIPANTS_TOO_FEW", + "description": "Not enough participants." + }, + "PARTICIPANT_ID_INVALID": { + "code": 400, + "type": "PARTICIPANT_ID_INVALID", + "description": "The specified participant ID is invalid." + }, + "PARTICIPANT_JOIN_MISSING": { + "code": 403, + "type": "PARTICIPANT_JOIN_MISSING", + "description": "Trying to enable a presentation, when the user hasn't joined the Video Chat with phone.joinGroupCall." + }, + "PARTICIPANT_VERSION_OUTDATED": { + "code": 400, + "type": "PARTICIPANT_VERSION_OUTDATED", + "description": "The other participant does not use an up to date telegram client with support for calls." + }, + "PASSWORD_EMPTY": { + "code": 400, + "type": "PASSWORD_EMPTY", + "description": "The provided password is empty." + }, + "PASSWORD_HASH_INVALID": { + "code": 400, + "type": "PASSWORD_HASH_INVALID", + "description": "The provided password hash is invalid." + }, + "PASSWORD_MISSING": { + "code": 400, + "type": "PASSWORD_MISSING", + "description": "You must enable 2FA in order to transfer ownership of a channel." + }, + "PASSWORD_RECOVERY_EXPIRED": { + "code": 400, + "type": "PASSWORD_RECOVERY_EXPIRED", + "description": "The recovery code has expired." + }, + "PASSWORD_RECOVERY_NA": { + "code": 400, + "type": "PASSWORD_RECOVERY_NA", + "description": "No email was set, can't recover password via email." + }, + "PASSWORD_REQUIRED": { + "code": 400, + "type": "PASSWORD_REQUIRED", + "description": "A 2FA password must be configured to use Telegram Passport." + }, + "PASSWORD_TOO_FRESH_%d": { + "code": 400, + "type": "PASSWORD_TOO_FRESH_%d", + "description": "The password was modified less than 24 hours ago, try again in %d seconds." + }, + "PAYMENT_PROVIDER_INVALID": { + "code": 400, + "type": "PAYMENT_PROVIDER_INVALID", + "description": "The specified payment provider is invalid." + }, + "PAYMENT_UNSUPPORTED": { + "code": 406, + "type": "PAYMENT_UNSUPPORTED", + "description": "A detailed description of the error will be received separately as described here »." + }, + "PEERS_LIST_EMPTY": { + "code": 400, + "type": "PEERS_LIST_EMPTY", + "description": "The specified list of peers is empty." + }, + "PEER_HISTORY_EMPTY": { + "code": 400, + "type": "PEER_HISTORY_EMPTY", + "description": "You can't pin an empty chat with a user." + }, + "PEER_ID_INVALID": { + "code": 400, + "type": "PEER_ID_INVALID", + "description": "The provided peer id is invalid." + }, + "PEER_ID_NOT_SUPPORTED": { + "code": 400, + "type": "PEER_ID_NOT_SUPPORTED", + "description": "The provided peer ID is not supported." + }, + "PERSISTENT_TIMESTAMP_EMPTY": { + "code": 400, + "type": "PERSISTENT_TIMESTAMP_EMPTY", + "description": "Persistent timestamp empty." + }, + "PERSISTENT_TIMESTAMP_INVALID": { + "code": 400, + "type": "PERSISTENT_TIMESTAMP_INVALID", + "description": "Persistent timestamp invalid." + }, + "PERSISTENT_TIMESTAMP_OUTDATED": { + "code": 500, + "type": "PERSISTENT_TIMESTAMP_OUTDATED", + "description": "Channel internal replication issues, try again later (treat this like an RPC_CALL_FAIL)." + }, + "PHONE_CODE_EMPTY": { + "code": 400, + "type": "PHONE_CODE_EMPTY", + "description": "phone_code is missing." + }, + "PHONE_CODE_EXPIRED": { + "code": 400, + "type": "PHONE_CODE_EXPIRED", + "description": "The phone code you provided has expired." + }, + "PHONE_CODE_HASH_EMPTY": { + "code": 400, + "type": "PHONE_CODE_HASH_EMPTY", + "description": "phone_code_hash is missing." + }, + "PHONE_CODE_INVALID": { + "code": 400, + "type": "PHONE_CODE_INVALID", + "description": "The provided phone code is invalid." + }, + "PHONE_HASH_EXPIRED": { + "code": 400, + "type": "PHONE_HASH_EXPIRED", + "description": "An invalid or expired phone_code_hash was provided." + }, + "PHONE_NOT_OCCUPIED": { + "code": 400, + "type": "PHONE_NOT_OCCUPIED", + "description": "No user is associated to the specified phone number." + }, + "PHONE_NUMBER_APP_SIGNUP_FORBIDDEN": { + "code": 400, + "type": "PHONE_NUMBER_APP_SIGNUP_FORBIDDEN", + "description": "You can't sign up using this app." + }, + "PHONE_NUMBER_BANNED": { + "code": 400, + "type": "PHONE_NUMBER_BANNED", + "description": "The provided phone number is banned from telegram." + }, + "PHONE_NUMBER_FLOOD": { + "code": 400, + "type": "PHONE_NUMBER_FLOOD", + "description": "You asked for the code too many times." + }, + "PHONE_NUMBER_INVALID": { + "code": 406, + "type": "PHONE_NUMBER_INVALID", + "description": "The phone number is invalid." + }, + "PHONE_NUMBER_OCCUPIED": { + "code": 400, + "type": "PHONE_NUMBER_OCCUPIED", + "description": "The phone number is already in use." + }, + "PHONE_NUMBER_UNOCCUPIED": { + "code": 400, + "type": "PHONE_NUMBER_UNOCCUPIED", + "description": "The phone number is not yet being used." + }, + "PHONE_PASSWORD_FLOOD": { + "code": 406, + "type": "PHONE_PASSWORD_FLOOD", + "description": "You have tried logging in too many times." + }, + "PHONE_PASSWORD_PROTECTED": { + "code": 400, + "type": "PHONE_PASSWORD_PROTECTED", + "description": "This phone is password protected." + }, + "PHOTO_CONTENT_TYPE_INVALID": { + "code": 400, + "type": "PHOTO_CONTENT_TYPE_INVALID", + "description": "Photo mime-type invalid." + }, + "PHOTO_CONTENT_URL_EMPTY": { + "code": 400, + "type": "PHOTO_CONTENT_URL_EMPTY", + "description": "Photo URL invalid." + }, + "PHOTO_CROP_FILE_MISSING": { + "code": 400, + "type": "PHOTO_CROP_FILE_MISSING", + "description": "Photo crop file missing." + }, + "PHOTO_CROP_SIZE_SMALL": { + "code": 400, + "type": "PHOTO_CROP_SIZE_SMALL", + "description": "Photo is too small." + }, + "PHOTO_EXT_INVALID": { + "code": 400, + "type": "PHOTO_EXT_INVALID", + "description": "The extension of the photo is invalid." + }, + "PHOTO_FILE_MISSING": { + "code": 400, + "type": "PHOTO_FILE_MISSING", + "description": "Profile photo file missing." + }, + "PHOTO_ID_INVALID": { + "code": 400, + "type": "PHOTO_ID_INVALID", + "description": "Photo ID invalid." + }, + "PHOTO_INVALID": { + "code": 400, + "type": "PHOTO_INVALID", + "description": "Photo invalid." + }, + "PHOTO_INVALID_DIMENSIONS": { + "code": 400, + "type": "PHOTO_INVALID_DIMENSIONS", + "description": "The photo dimensions are invalid." + }, + "PHOTO_SAVE_FILE_INVALID": { + "code": 400, + "type": "PHOTO_SAVE_FILE_INVALID", + "description": "Internal issues, try again later." + }, + "PHOTO_THUMB_URL_EMPTY": { + "code": 400, + "type": "PHOTO_THUMB_URL_EMPTY", + "description": "Photo thumbnail URL is empty." + }, + "PINNED_DIALOGS_TOO_MUCH": { + "code": 400, + "type": "PINNED_DIALOGS_TOO_MUCH", + "description": "Too many pinned dialogs." + }, + "PIN_RESTRICTED": { + "code": 400, + "type": "PIN_RESTRICTED", + "description": "You can't pin messages." + }, + "POLL_ANSWERS_INVALID": { + "code": 400, + "type": "POLL_ANSWERS_INVALID", + "description": "Invalid poll answers were provided." + }, + "POLL_ANSWER_INVALID": { + "code": 400, + "type": "POLL_ANSWER_INVALID", + "description": "One of the poll answers is not acceptable." + }, + "POLL_OPTION_DUPLICATE": { + "code": 400, + "type": "POLL_OPTION_DUPLICATE", + "description": "Duplicate poll options provided." + }, + "POLL_OPTION_INVALID": { + "code": 400, + "type": "POLL_OPTION_INVALID", + "description": "Invalid poll option provided." + }, + "POLL_QUESTION_INVALID": { + "code": 400, + "type": "POLL_QUESTION_INVALID", + "description": "One of the poll questions is not acceptable." + }, + "POLL_VOTE_REQUIRED": { + "code": 403, + "type": "POLL_VOTE_REQUIRED", + "description": "Cast a vote in the poll before calling this method." + }, + "PREMIUM_ACCOUNT_REQUIRED": { + "code": 400, + "type": "PREMIUM_ACCOUNT_REQUIRED", + "description": "A premium account is required to execute this action." + }, + "PREVIOUS_CHAT_IMPORT_ACTIVE_WAIT_%dMIN": { + "code": 406, + "type": "PREVIOUS_CHAT_IMPORT_ACTIVE_WAIT_%dMIN", + "description": "Import for this chat is already in progress, wait %d minutes before starting a new one." + }, + "PRIVACY_KEY_INVALID": { + "code": 400, + "type": "PRIVACY_KEY_INVALID", + "description": "The privacy key is invalid." + }, + "PRIVACY_TOO_LONG": { + "code": 400, + "type": "PRIVACY_TOO_LONG", + "description": "Too many privacy rules were specified, the current limit is 1000." + }, + "PRIVACY_VALUE_INVALID": { + "code": 400, + "type": "PRIVACY_VALUE_INVALID", + "description": "The specified privacy rule combination is invalid." + }, + "PUBLIC_CHANNEL_MISSING": { + "code": 403, + "type": "PUBLIC_CHANNEL_MISSING", + "description": "You can only export group call invite links for public chats or channels." + }, + "PUBLIC_KEY_REQUIRED": { + "code": 400, + "type": "PUBLIC_KEY_REQUIRED", + "description": "A public key is required." + }, + "QUERY_ID_EMPTY": { + "code": 400, + "type": "QUERY_ID_EMPTY", + "description": "The query ID is empty." + }, + "QUERY_ID_INVALID": { + "code": 400, + "type": "QUERY_ID_INVALID", + "description": "The query ID is invalid." + }, + "QUERY_TOO_SHORT": { + "code": 400, + "type": "QUERY_TOO_SHORT", + "description": "The query string is too short." + }, + "QUIZ_ANSWER_MISSING": { + "code": 400, + "type": "QUIZ_ANSWER_MISSING", + "description": "You can forward a quiz while hiding the original author only after choosing an option in the quiz." + }, + "QUIZ_CORRECT_ANSWERS_EMPTY": { + "code": 400, + "type": "QUIZ_CORRECT_ANSWERS_EMPTY", + "description": "No correct quiz answer was specified." + }, + "QUIZ_CORRECT_ANSWERS_TOO_MUCH": { + "code": 400, + "type": "QUIZ_CORRECT_ANSWERS_TOO_MUCH", + "description": "You specified too many correct answers in a quiz, quizzes can only have one right answer!" + }, + "QUIZ_CORRECT_ANSWER_INVALID": { + "code": 400, + "type": "QUIZ_CORRECT_ANSWER_INVALID", + "description": "An invalid value was provided to the correct_answers field." + }, + "QUIZ_MULTIPLE_INVALID": { + "code": 400, + "type": "QUIZ_MULTIPLE_INVALID", + "description": "Quizzes can't have the multiple_choice flag set!" + }, + "RANDOM_ID_DUPLICATE": { + "code": 500, + "type": "RANDOM_ID_DUPLICATE", + "description": "You provided a random ID that was already used." + }, + "RANDOM_ID_EMPTY": { + "code": 400, + "type": "RANDOM_ID_EMPTY", + "description": "Random ID empty." + }, + "RANDOM_ID_INVALID": { + "code": 400, + "type": "RANDOM_ID_INVALID", + "description": "A provided random ID is invalid." + }, + "RANDOM_LENGTH_INVALID": { + "code": 400, + "type": "RANDOM_LENGTH_INVALID", + "description": "Random length invalid." + }, + "RANGES_INVALID": { + "code": 400, + "type": "RANGES_INVALID", + "description": "Invalid range provided." + }, + "REACTIONS_TOO_MANY": { + "code": 400, + "type": "REACTIONS_TOO_MANY", + "description": "The message already has exactly reactions_uniq_max reaction emojis, you can't react with a new emoji, see the docs for more info »." + }, + "REACTION_EMPTY": { + "code": 400, + "type": "REACTION_EMPTY", + "description": "Empty reaction provided." + }, + "REACTION_INVALID": { + "code": 400, + "type": "REACTION_INVALID", + "description": "The specified reaction is invalid." + }, + "REPLY_MARKUP_BUY_EMPTY": { + "code": 400, + "type": "REPLY_MARKUP_BUY_EMPTY", + "description": "Reply markup for buy button empty." + }, + "REPLY_MARKUP_INVALID": { + "code": 400, + "type": "REPLY_MARKUP_INVALID", + "description": "The provided reply markup is invalid." + }, + "REPLY_MARKUP_TOO_LONG": { + "code": 400, + "type": "REPLY_MARKUP_TOO_LONG", + "description": "The specified reply_markup is too long." + }, + "REPLY_TO_INVALID": { + "code": 400, + "type": "REPLY_TO_INVALID", + "description": "The specified reply_to field is invalid." + }, + "REPLY_TO_USER_INVALID": { + "code": 400, + "type": "REPLY_TO_USER_INVALID", + "description": "The replied-to user is invalid." + }, + "RESET_REQUEST_MISSING": { + "code": 400, + "type": "RESET_REQUEST_MISSING", + "description": "No password reset is in progress." + }, + "RESULTS_TOO_MUCH": { + "code": 400, + "type": "RESULTS_TOO_MUCH", + "description": "Too many results were provided." + }, + "RESULT_ID_DUPLICATE": { + "code": 400, + "type": "RESULT_ID_DUPLICATE", + "description": "You provided a duplicate result ID." + }, + "RESULT_ID_EMPTY": { + "code": 400, + "type": "RESULT_ID_EMPTY", + "description": "Result ID empty." + }, + "RESULT_ID_INVALID": { + "code": 400, + "type": "RESULT_ID_INVALID", + "description": "One of the specified result IDs is invalid." + }, + "RESULT_TYPE_INVALID": { + "code": 400, + "type": "RESULT_TYPE_INVALID", + "description": "Result type invalid." + }, + "REVOTE_NOT_ALLOWED": { + "code": 400, + "type": "REVOTE_NOT_ALLOWED", + "description": "You cannot change your vote." + }, + "RIGHTS_NOT_MODIFIED": { + "code": 400, + "type": "RIGHTS_NOT_MODIFIED", + "description": "The new admin rights are equal to the old rights, no change was made." + }, + "RIGHT_FORBIDDEN": { + "code": 403, + "type": "RIGHT_FORBIDDEN", + "description": "Your admin rights do not allow you to do this." + }, + "RSA_DECRYPT_FAILED": { + "code": 400, + "type": "RSA_DECRYPT_FAILED", + "description": "Internal RSA decryption failed." + }, + "SCHEDULE_BOT_NOT_ALLOWED": { + "code": 400, + "type": "SCHEDULE_BOT_NOT_ALLOWED", + "description": "Bots cannot schedule messages." + }, + "SCHEDULE_DATE_INVALID": { + "code": 400, + "type": "SCHEDULE_DATE_INVALID", + "description": "Invalid schedule date provided." + }, + "SCHEDULE_DATE_TOO_LATE": { + "code": 400, + "type": "SCHEDULE_DATE_TOO_LATE", + "description": "You can't schedule a message this far in the future." + }, + "SCHEDULE_STATUS_PRIVATE": { + "code": 400, + "type": "SCHEDULE_STATUS_PRIVATE", + "description": "Can't schedule until user is online, if the user's last seen timestamp is hidden by their privacy settings." + }, + "SCHEDULE_TOO_MUCH": { + "code": 400, + "type": "SCHEDULE_TOO_MUCH", + "description": "There are too many scheduled messages." + }, + "SCORE_INVALID": { + "code": 400, + "type": "SCORE_INVALID", + "description": "The specified game score is invalid." + }, + "SEARCH_QUERY_EMPTY": { + "code": 400, + "type": "SEARCH_QUERY_EMPTY", + "description": "The search query is empty." + }, + "SEARCH_WITH_LINK_NOT_SUPPORTED": { + "code": 400, + "type": "SEARCH_WITH_LINK_NOT_SUPPORTED", + "description": "You cannot provide a search query and an invite link at the same time." + }, + "SECONDS_INVALID": { + "code": 400, + "type": "SECONDS_INVALID", + "description": "Invalid duration provided." + }, + "SEND_AS_PEER_INVALID": { + "code": 400, + "type": "SEND_AS_PEER_INVALID", + "description": "You can't send messages as the specified peer." + }, + "SEND_CODE_UNAVAILABLE": { + "code": 406, + "type": "SEND_CODE_UNAVAILABLE", + "description": "Returned when all available options for this type of number were already used (e.g. flash-call, then SMS, then this error might be returned to trigger a second resend)." + }, + "SEND_MEDIA_INVALID": { + "code": 500, + "type": "SEND_MEDIA_INVALID" + }, + "SEND_MESSAGE_MEDIA_INVALID": { + "code": 400, + "type": "SEND_MESSAGE_MEDIA_INVALID", + "description": "Invalid media provided." + }, + "SEND_MESSAGE_TYPE_INVALID": { + "code": 400, + "type": "SEND_MESSAGE_TYPE_INVALID", + "description": "The message type is invalid." + }, + "SENSITIVE_CHANGE_FORBIDDEN": { + "code": 403, + "type": "SENSITIVE_CHANGE_FORBIDDEN", + "description": "You can't change your sensitive content settings." + }, + "SESSION_TOO_FRESH_%d": { + "code": 400, + "type": "SESSION_TOO_FRESH_%d", + "description": "This session was created less than 24 hours ago, try again in %d seconds." + }, + "SETTINGS_INVALID": { + "code": 400, + "type": "SETTINGS_INVALID", + "description": "Invalid settings were provided." + }, + "SHA256_HASH_INVALID": { + "code": 400, + "type": "SHA256_HASH_INVALID", + "description": "The provided SHA256 hash is invalid." + }, + "SHORT_NAME_INVALID": { + "code": 400, + "type": "SHORT_NAME_INVALID", + "description": "The specified short name is invalid." + }, + "SHORT_NAME_OCCUPIED": { + "code": 400, + "type": "SHORT_NAME_OCCUPIED", + "description": "The specified short name is already in use." + }, + "SIGN_IN_FAILED": { + "code": 500, + "type": "SIGN_IN_FAILED", + "description": "Failure while signing in." + }, + "SLOTS_EMPTY": { + "code": 400, + "type": "SLOTS_EMPTY", + "description": "The specified slot list is empty." + }, + "SLOWMODE_MULTI_MSGS_DISABLED": { + "code": 400, + "type": "SLOWMODE_MULTI_MSGS_DISABLED", + "description": "Slowmode is enabled, you cannot forward multiple messages to this group." + }, + "SLOWMODE_WAIT_%d": { + "code": 420, + "type": "SLOWMODE_WAIT_%d", + "description": "Slowmode is enabled in this chat: wait %d seconds before sending another message to this chat." + }, + "SLUG_INVALID": { + "code": 400, + "type": "SLUG_INVALID", + "description": "The specified invoice slug is invalid." + }, + "SMS_CODE_CREATE_FAILED": { + "code": 400, + "type": "SMS_CODE_CREATE_FAILED", + "description": "An error occurred while creating the SMS code." + }, + "SRP_ID_INVALID": { + "code": 400, + "type": "SRP_ID_INVALID", + "description": "Invalid SRP ID provided." + }, + "SRP_PASSWORD_CHANGED": { + "code": 400, + "type": "SRP_PASSWORD_CHANGED", + "description": "Password has changed." + }, + "START_PARAM_EMPTY": { + "code": 400, + "type": "START_PARAM_EMPTY", + "description": "The start parameter is empty." + }, + "START_PARAM_INVALID": { + "code": 400, + "type": "START_PARAM_INVALID", + "description": "Start parameter invalid." + }, + "START_PARAM_TOO_LONG": { + "code": 400, + "type": "START_PARAM_TOO_LONG", + "description": "Start parameter is too long." + }, + "STICKERPACK_STICKERS_TOO_MUCH": { + "code": 400, + "type": "STICKERPACK_STICKERS_TOO_MUCH", + "description": "There are too many stickers in this stickerpack, you can't add any more." + }, + "STICKERSET_INVALID": { + "code": 400, + "type": "STICKERSET_INVALID", + "description": "The provided sticker set is invalid." + }, + "STICKERSET_OWNER_ANONYMOUS": { + "code": 406, + "type": "STICKERSET_OWNER_ANONYMOUS", + "description": "Provided stickerset can't be installed as group stickerset to prevent admin deanonymization." + }, + "STICKERS_EMPTY": { + "code": 400, + "type": "STICKERS_EMPTY", + "description": "No sticker provided." + }, + "STICKERS_TOO_MUCH": { + "code": 400, + "type": "STICKERS_TOO_MUCH", + "description": "There are too many stickers in this stickerpack, you can't add any more." + }, + "STICKER_DOCUMENT_INVALID": { + "code": 400, + "type": "STICKER_DOCUMENT_INVALID", + "description": "The specified sticker document is invalid." + }, + "STICKER_EMOJI_INVALID": { + "code": 400, + "type": "STICKER_EMOJI_INVALID", + "description": "Sticker emoji invalid." + }, + "STICKER_FILE_INVALID": { + "code": 400, + "type": "STICKER_FILE_INVALID", + "description": "Sticker file invalid." + }, + "STICKER_GIF_DIMENSIONS": { + "code": 400, + "type": "STICKER_GIF_DIMENSIONS", + "description": "The specified video sticker has invalid dimensions." + }, + "STICKER_ID_INVALID": { + "code": 400, + "type": "STICKER_ID_INVALID", + "description": "The provided sticker ID is invalid." + }, + "STICKER_INVALID": { + "code": 400, + "type": "STICKER_INVALID", + "description": "The provided sticker is invalid." + }, + "STICKER_MIME_INVALID": { + "code": 400, + "type": "STICKER_MIME_INVALID", + "description": "The specified sticker MIME type is invalid." + }, + "STICKER_PNG_DIMENSIONS": { + "code": 400, + "type": "STICKER_PNG_DIMENSIONS", + "description": "Sticker png dimensions invalid." + }, + "STICKER_PNG_NOPNG": { + "code": 400, + "type": "STICKER_PNG_NOPNG", + "description": "One of the specified stickers is not a valid PNG file." + }, + "STICKER_TGS_NODOC": { + "code": 400, + "type": "STICKER_TGS_NODOC", + "description": "You must send the animated sticker as a document." + }, + "STICKER_TGS_NOTGS": { + "code": 400, + "type": "STICKER_TGS_NOTGS", + "description": "Invalid TGS sticker provided." + }, + "STICKER_THUMB_PNG_NOPNG": { + "code": 400, + "type": "STICKER_THUMB_PNG_NOPNG", + "description": "Incorrect stickerset thumb file provided, PNG / WEBP expected." + }, + "STICKER_THUMB_TGS_NOTGS": { + "code": 400, + "type": "STICKER_THUMB_TGS_NOTGS", + "description": "Incorrect stickerset TGS thumb file provided." + }, + "STICKER_VIDEO_BIG": { + "code": 400, + "type": "STICKER_VIDEO_BIG", + "description": "The specified video sticker is too big." + }, + "STICKER_VIDEO_NODOC": { + "code": 400, + "type": "STICKER_VIDEO_NODOC", + "description": "You must send the video sticker as a document." + }, + "STICKER_VIDEO_NOWEBM": { + "code": 400, + "type": "STICKER_VIDEO_NOWEBM", + "description": "The specified video sticker is not in webm format." + }, + "STORIES_NEVER_CREATED": { + "code": 400, + "type": "STORIES_NEVER_CREATED" + }, + "STORIES_TOO_MUCH": { + "code": 400, + "type": "STORIES_TOO_MUCH", + "description": "You have hit the maximum active stories limit as specified by the story_expiring_limit_* client configuration parameters: you should buy a Premium subscription, delete an active story, or wait for the oldest story to expire." + }, + "STORY_ID_EMPTY": { + "code": 400, + "type": "STORY_ID_EMPTY", + "description": "You specified no story IDs." + }, + "STORY_ID_INVALID": { + "code": 400, + "type": "STORY_ID_INVALID", + "description": "The specified story ID is invalid." + }, + "STORY_NOT_MODIFIED": { + "code": 400, + "type": "STORY_NOT_MODIFIED", + "description": "The new story information you passed is equal to the previous story information, thus it wasn't modified." + }, + "STORY_PERIOD_INVALID": { + "code": 400, + "type": "STORY_PERIOD_INVALID", + "description": "The specified story period is invalid for this account." + }, + "STORY_SEND_FLOOD_MONTHLY_%d": { + "code": 400, + "type": "STORY_SEND_FLOOD_MONTHLY_%d", + "description": "You've hit the monthly story limit as specified by the stories_sent_monthly_limit_* client configuration parameters: wait for the specified number of seconds before posting a new story." + }, + "STORY_SEND_FLOOD_WEEKLY_%d": { + "code": 400, + "type": "STORY_SEND_FLOOD_WEEKLY_%d", + "description": "You've hit the weekly story limit as specified by the stories_sent_weekly_limit_* client configuration parameters: wait for the specified number of seconds before posting a new story." + }, + "SWITCH_PM_TEXT_EMPTY": { + "code": 400, + "type": "SWITCH_PM_TEXT_EMPTY", + "description": "The switch_pm.text field was empty." + }, + "TAKEOUT_INIT_DELAY_%d": { + "code": 420, + "type": "TAKEOUT_INIT_DELAY_%d", + "description": "Sorry, for security reasons, you will be able to begin downloading your data in %d seconds. We have notified all your devices about the export request to make sure it's authorized and to give you time to react if it's not." + }, + "TAKEOUT_REQUIRED": { + "code": 403, + "type": "TAKEOUT_REQUIRED", + "description": "A takeout¹ session needs to be initialized first, see here » for more info²." + }, + "TASK_ALREADY_EXISTS": { + "code": 400, + "type": "TASK_ALREADY_EXISTS", + "description": "An email reset was already requested." + }, + "TEMP_AUTH_KEY_ALREADY_BOUND": { + "code": 400, + "type": "TEMP_AUTH_KEY_ALREADY_BOUND", + "description": "The passed temporary key is already bound to another perm_auth_key_id." + }, + "TEMP_AUTH_KEY_EMPTY": { + "code": 400, + "type": "TEMP_AUTH_KEY_EMPTY", + "description": "No temporary auth key provided." + }, + "THEME_FILE_INVALID": { + "code": 400, + "type": "THEME_FILE_INVALID", + "description": "Invalid theme file provided." + }, + "THEME_FORMAT_INVALID": { + "code": 400, + "type": "THEME_FORMAT_INVALID", + "description": "Invalid theme format provided." + }, + "THEME_INVALID": { + "code": 400, + "type": "THEME_INVALID", + "description": "Invalid theme provided." + }, + "THEME_MIME_INVALID": { + "code": 400, + "type": "THEME_MIME_INVALID", + "description": "The theme's MIME type is invalid." + }, + "THEME_TITLE_INVALID": { + "code": 400, + "type": "THEME_TITLE_INVALID", + "description": "The specified theme title is invalid." + }, + "TITLE_INVALID": { + "code": 400, + "type": "TITLE_INVALID", + "description": "The specified stickerpack title is invalid." + }, + "TMP_PASSWORD_DISABLED": { + "code": 400, + "type": "TMP_PASSWORD_DISABLED", + "description": "The temporary password is disabled." + }, + "TOKEN_EMPTY": { + "code": 400, + "type": "TOKEN_EMPTY", + "description": "The specified token is empty." + }, + "TOKEN_INVALID": { + "code": 400, + "type": "TOKEN_INVALID", + "description": "The provided token is invalid." + }, + "TOKEN_TYPE_INVALID": { + "code": 400, + "type": "TOKEN_TYPE_INVALID", + "description": "The specified token type is invalid." + }, + "TOPICS_EMPTY": { + "code": 400, + "type": "TOPICS_EMPTY", + "description": "You specified no topic IDs." + }, + "TOPIC_CLOSED": { + "code": 400, + "type": "TOPIC_CLOSED", + "description": "This topic was closed, you can't send messages to it anymore." + }, + "TOPIC_CLOSE_SEPARATELY": { + "code": 400, + "type": "TOPIC_CLOSE_SEPARATELY", + "description": "The close flag cannot be provided together with any of the other flags." + }, + "TOPIC_DELETED": { + "code": 400, + "type": "TOPIC_DELETED", + "description": "The specified topic was deleted." + }, + "TOPIC_HIDE_SEPARATELY": { + "code": 400, + "type": "TOPIC_HIDE_SEPARATELY", + "description": "The hide flag cannot be provided together with any of the other flags." + }, + "TOPIC_ID_INVALID": { + "code": 400, + "type": "TOPIC_ID_INVALID", + "description": "The specified topic ID is invalid." + }, + "TOPIC_NOT_MODIFIED": { + "code": 400, + "type": "TOPIC_NOT_MODIFIED", + "description": "The updated topic info is equal to the current topic info, nothing was changed." + }, + "TOPIC_TITLE_EMPTY": { + "code": 400, + "type": "TOPIC_TITLE_EMPTY", + "description": "The specified topic title is empty." + }, + "TO_LANG_INVALID": { + "code": 400, + "type": "TO_LANG_INVALID", + "description": "The specified destination language is invalid." + }, + "TRANSCRIPTION_FAILED": { + "code": 400, + "type": "TRANSCRIPTION_FAILED", + "description": "Audio transcription failed." + }, + "TTL_DAYS_INVALID": { + "code": 400, + "type": "TTL_DAYS_INVALID", + "description": "The provided TTL is invalid." + }, + "TTL_MEDIA_INVALID": { + "code": 400, + "type": "TTL_MEDIA_INVALID", + "description": "Invalid media Time To Live was provided." + }, + "TTL_PERIOD_INVALID": { + "code": 400, + "type": "TTL_PERIOD_INVALID", + "description": "The specified TTL period is invalid." + }, + "TYPES_EMPTY": { + "code": 400, + "type": "TYPES_EMPTY", + "description": "No top peer type was provided." + }, + "Timeout": { + "code": -503, + "type": "Timeout", + "description": "Timeout while fetching data." + }, + "UNTIL_DATE_INVALID": { + "code": 400, + "type": "UNTIL_DATE_INVALID", + "description": "Invalid until date provided." + }, + "URL_INVALID": { + "code": 400, + "type": "URL_INVALID", + "description": "Invalid URL provided." + }, + "USAGE_LIMIT_INVALID": { + "code": 400, + "type": "USAGE_LIMIT_INVALID", + "description": "The specified usage limit is invalid." + }, + "USERNAMES_ACTIVE_TOO_MUCH": { + "code": 400, + "type": "USERNAMES_ACTIVE_TOO_MUCH", + "description": "The maximum number of active usernames was reached." + }, + "USERNAME_INVALID": { + "code": 400, + "type": "USERNAME_INVALID", + "description": "The provided username is not valid." + }, + "USERNAME_NOT_MODIFIED": { + "code": 400, + "type": "USERNAME_NOT_MODIFIED", + "description": "The username was not modified." + }, + "USERNAME_NOT_OCCUPIED": { + "code": 400, + "type": "USERNAME_NOT_OCCUPIED", + "description": "The provided username is not occupied." + }, + "USERNAME_OCCUPIED": { + "code": 400, + "type": "USERNAME_OCCUPIED", + "description": "The provided username is already occupied." + }, + "USERNAME_PURCHASE_AVAILABLE": { + "code": 400, + "type": "USERNAME_PURCHASE_AVAILABLE", + "description": "The specified username can be purchased on https://fragment.com." + }, + "USERPIC_PRIVACY_REQUIRED": { + "code": 406, + "type": "USERPIC_PRIVACY_REQUIRED", + "description": "You need to disable privacy settings for your profile picture in order to make your geolocation public." + }, + "USERPIC_UPLOAD_REQUIRED": { + "code": 406, + "type": "USERPIC_UPLOAD_REQUIRED", + "description": "You must have a profile picture to publish your geolocation." + }, + "USERS_TOO_FEW": { + "code": 400, + "type": "USERS_TOO_FEW", + "description": "Not enough users (to create a chat, for example)." + }, + "USERS_TOO_MUCH": { + "code": 400, + "type": "USERS_TOO_MUCH", + "description": "The maximum number of users has been exceeded (to create a chat, for example)." + }, + "USER_ADMIN_INVALID": { + "code": 400, + "type": "USER_ADMIN_INVALID", + "description": "You're not an admin." + }, + "USER_ALREADY_INVITED": { + "code": 400, + "type": "USER_ALREADY_INVITED", + "description": "You have already invited this user." + }, + "USER_ALREADY_PARTICIPANT": { + "code": 400, + "type": "USER_ALREADY_PARTICIPANT", + "description": "The user is already in the group." + }, + "USER_BANNED_IN_CHANNEL": { + "code": 400, + "type": "USER_BANNED_IN_CHANNEL", + "description": "You're banned from sending messages in supergroups/channels." + }, + "USER_BLOCKED": { + "code": 400, + "type": "USER_BLOCKED", + "description": "User blocked." + }, + "USER_BOT": { + "code": 400, + "type": "USER_BOT", + "description": "Bots can only be admins in channels." + }, + "USER_BOT_INVALID": { + "code": 403, + "type": "USER_BOT_INVALID", + "description": "User accounts must provide the bot method parameter when calling this method. If there is no such method parameter, this method can only be invoked by bot accounts." + }, + "USER_BOT_REQUIRED": { + "code": 400, + "type": "USER_BOT_REQUIRED", + "description": "This method can only be called by a bot." + }, + "USER_CHANNELS_TOO_MUCH": { + "code": 400, + "type": "USER_CHANNELS_TOO_MUCH", + "description": "One of the users you tried to add is already in too many channels/supergroups." + }, + "USER_CREATOR": { + "code": 400, + "type": "USER_CREATOR", + "description": "You can't leave this channel, because you're its creator." + }, + "USER_DELETED": { + "code": 403, + "type": "USER_DELETED", + "description": "You can't send this secret message because the other participant deleted their account." + }, + "USER_ID_INVALID": { + "code": 400, + "type": "USER_ID_INVALID", + "description": "The provided user ID is invalid." + }, + "USER_INVALID": { + "code": 403, + "type": "USER_INVALID", + "description": "Invalid user provided." + }, + "USER_IS_BLOCKED": { + "code": 403, + "type": "USER_IS_BLOCKED", + "description": "You were blocked by this user." + }, + "USER_IS_BOT": { + "code": 400, + "type": "USER_IS_BOT", + "description": "Bots can't send messages to other bots." + }, + "USER_KICKED": { + "code": 400, + "type": "USER_KICKED", + "description": "This user was kicked from this supergroup/channel." + }, + "USER_NOT_MUTUAL_CONTACT": { + "code": 400, + "type": "USER_NOT_MUTUAL_CONTACT", + "description": "The provided user is not a mutual contact." + }, + "USER_NOT_PARTICIPANT": { + "code": 400, + "type": "USER_NOT_PARTICIPANT", + "description": "You're not a member of this supergroup/channel." + }, + "USER_PRIVACY_RESTRICTED": { + "code": 403, + "type": "USER_PRIVACY_RESTRICTED", + "description": "The user's privacy settings do not allow you to do this." + }, + "USER_PUBLIC_MISSING": { + "code": 400, + "type": "USER_PUBLIC_MISSING" + }, + "USER_RESTRICTED": { + "code": 406, + "type": "USER_RESTRICTED", + "description": "You're spamreported, you can't create channels or chats." + }, + "USER_VOLUME_INVALID": { + "code": 400, + "type": "USER_VOLUME_INVALID", + "description": "The specified user volume is invalid." + }, + "VENUE_ID_INVALID": { + "code": 400, + "type": "VENUE_ID_INVALID", + "description": "The specified venue ID is invalid." + }, + "VIDEO_CONTENT_TYPE_INVALID": { + "code": 400, + "type": "VIDEO_CONTENT_TYPE_INVALID", + "description": "The video's content type is invalid." + }, + "VIDEO_FILE_INVALID": { + "code": 400, + "type": "VIDEO_FILE_INVALID", + "description": "The specified video file is invalid." + }, + "VIDEO_TITLE_EMPTY": { + "code": 400, + "type": "VIDEO_TITLE_EMPTY", + "description": "The specified video title is empty." + }, + "VOICE_MESSAGES_FORBIDDEN": { + "code": 400, + "type": "VOICE_MESSAGES_FORBIDDEN", + "description": "This user's privacy settings forbid you from sending voice messages." + }, + "WALLPAPER_FILE_INVALID": { + "code": 400, + "type": "WALLPAPER_FILE_INVALID", + "description": "The specified wallpaper file is invalid." + }, + "WALLPAPER_INVALID": { + "code": 400, + "type": "WALLPAPER_INVALID", + "description": "The specified wallpaper is invalid." + }, + "WALLPAPER_MIME_INVALID": { + "code": 400, + "type": "WALLPAPER_MIME_INVALID", + "description": "The specified wallpaper MIME type is invalid." + }, + "WALLPAPER_NOT_FOUND": { + "code": 400, + "type": "WALLPAPER_NOT_FOUND", + "description": "The specified wallpaper could not be found." + }, + "WC_CONVERT_URL_INVALID": { + "code": 400, + "type": "WC_CONVERT_URL_INVALID", + "description": "WC convert URL invalid." + }, + "WEBDOCUMENT_INVALID": { + "code": 400, + "type": "WEBDOCUMENT_INVALID", + "description": "Invalid webdocument URL provided." + }, + "WEBDOCUMENT_MIME_INVALID": { + "code": 400, + "type": "WEBDOCUMENT_MIME_INVALID", + "description": "Invalid webdocument mime type provided." + }, + "WEBDOCUMENT_SIZE_TOO_BIG": { + "code": 400, + "type": "WEBDOCUMENT_SIZE_TOO_BIG", + "description": "Webdocument is too big!" + }, + "WEBDOCUMENT_URL_INVALID": { + "code": 400, + "type": "WEBDOCUMENT_URL_INVALID", + "description": "The specified webdocument URL is invalid." + }, + "WEBPAGE_CURL_FAILED": { + "code": 400, + "type": "WEBPAGE_CURL_FAILED", + "description": "Failure while fetching the webpage with cURL." + }, + "WEBPAGE_MEDIA_EMPTY": { + "code": 400, + "type": "WEBPAGE_MEDIA_EMPTY", + "description": "Webpage media empty." + }, + "WEBPAGE_NOT_FOUND": { + "code": 400, + "type": "WEBPAGE_NOT_FOUND", + "description": "A preview for the specified webpage url could not be generated." + }, + "WEBPAGE_URL_INVALID": { + "code": 400, + "type": "WEBPAGE_URL_INVALID", + "description": "The specified webpage url is invalid." + }, + "WEBPUSH_AUTH_INVALID": { + "code": 400, + "type": "WEBPUSH_AUTH_INVALID", + "description": "The specified web push authentication secret is invalid." + }, + "WEBPUSH_KEY_INVALID": { + "code": 400, + "type": "WEBPUSH_KEY_INVALID", + "description": "The specified web push elliptic curve Diffie-Hellman public key is invalid." + }, + "WEBPUSH_TOKEN_INVALID": { + "code": 400, + "type": "WEBPUSH_TOKEN_INVALID", + "description": "The specified web push token is invalid." + }, + "YOU_BLOCKED_USER": { + "code": 400, + "type": "YOU_BLOCKED_USER", + "description": "You blocked this user." + } + } +} diff --git a/_schema/latest.json b/_schema/latest.json index 6356b14..3c7289f 100644 --- a/_schema/latest.json +++ b/_schema/latest.json @@ -1,6 +1,6 @@ { "index": { - "layer": 167, + "layer": 170, "categories": [ { "name": "constructor", @@ -114,16 +114,18 @@ "channelAdminLogEvent", "channelAdminLogEventActionChangeAbout", "channelAdminLogEventActionChangeAvailableReactions", - "channelAdminLogEventActionChangeBackgroundEmoji", - "channelAdminLogEventActionChangeColor", + "channelAdminLogEventActionChangeEmojiStatus", "channelAdminLogEventActionChangeHistoryTTL", "channelAdminLogEventActionChangeLinkedChat", "channelAdminLogEventActionChangeLocation", + "channelAdminLogEventActionChangePeerColor", "channelAdminLogEventActionChangePhoto", + "channelAdminLogEventActionChangeProfilePeerColor", "channelAdminLogEventActionChangeStickerSet", "channelAdminLogEventActionChangeTitle", "channelAdminLogEventActionChangeUsername", "channelAdminLogEventActionChangeUsernames", + "channelAdminLogEventActionChangeWallpaper", "channelAdminLogEventActionCreateTopic", "channelAdminLogEventActionDefaultBannedRights", "channelAdminLogEventActionDeleteMessage", @@ -387,6 +389,7 @@ "inputInvoiceSlug", "inputKeyboardButtonUrlAuth", "inputKeyboardButtonUserProfile", + "inputMediaAreaChannelPost", "inputMediaAreaVenue", "inputMediaContact", "inputMediaDice", @@ -490,6 +493,7 @@ "inputStickerSetAnimatedEmoji", "inputStickerSetAnimatedEmojiAnimations", "inputStickerSetDice", + "inputStickerSetEmojiChannelDefaultStatuses", "inputStickerSetEmojiDefaultStatuses", "inputStickerSetEmojiDefaultTopicIcons", "inputStickerSetEmojiGenericAnimations", @@ -550,6 +554,7 @@ "langPackStringDeleted", "langPackStringPluralized", "maskCoords", + "mediaAreaChannelPost", "mediaAreaCoordinates", "mediaAreaGeoPoint", "mediaAreaSuggestedReaction", @@ -628,6 +633,7 @@ "messageMediaGeo", "messageMediaGeoLive", "messageMediaGiveaway", + "messageMediaGiveawayResults", "messageMediaInvoice", "messageMediaPhoto", "messageMediaPoll", @@ -698,6 +704,9 @@ "messages.reactionsNotModified", "messages.recentStickers", "messages.recentStickersNotModified", + "messages.savedDialogs", + "messages.savedDialogsNotModified", + "messages.savedDialogsSlice", "messages.savedGifs", "messages.savedGifsNotModified", "messages.searchCounter", @@ -880,6 +889,7 @@ "requestPeerTypeChat", "requestPeerTypeUser", "restrictionReason", + "savedDialog", "savedPhoneContact", "searchResultPosition", "searchResultsCalendarPeriod", @@ -979,6 +989,7 @@ "stories.allStoriesNotModified", "stories.peerStories", "stories.stories", + "stories.storyReactionsList", "stories.storyViews", "stories.storyViewsList", "storiesStealthMode", @@ -986,7 +997,12 @@ "storyItem", "storyItemDeleted", "storyItemSkipped", + "storyReaction", + "storyReactionPublicForward", + "storyReactionPublicRepost", "storyView", + "storyViewPublicForward", + "storyViewPublicRepost", "storyViews", "textAnchor", "textBold", @@ -1027,6 +1043,8 @@ "updateBotInlineQuery", "updateBotInlineSend", "updateBotMenuButton", + "updateBotMessageReaction", + "updateBotMessageReactions", "updateBotPrecheckoutQuery", "updateBotShippingQuery", "updateBotStopped", @@ -1104,6 +1122,7 @@ "updatePinnedChannelMessages", "updatePinnedDialogs", "updatePinnedMessages", + "updatePinnedSavedDialogs", "updatePrivacy", "updatePtsChanged", "updateReadChannelDiscussionInbox", @@ -1119,6 +1138,7 @@ "updateRecentEmojiStatuses", "updateRecentReactions", "updateRecentStickers", + "updateSavedDialogPinned", "updateSavedGifs", "updateSavedRingtones", "updateSentStoryReaction", @@ -1217,6 +1237,8 @@ "account.getAuthorizations", "account.getAutoDownloadSettings", "account.getAutoSaveSettings", + "account.getChannelDefaultEmojiStatuses", + "account.getChannelRestrictedStatusEmojis", "account.getChatThemes", "account.getContactSignUpNotification", "account.getContentSettings", @@ -1381,6 +1403,7 @@ "channels.toggleUsername", "channels.toggleViewForumAsMessages", "channels.updateColor", + "channels.updateEmojiStatus", "channels.updatePinnedForumTopic", "channels.updateUsername", "channels.viewSponsoredMessage", @@ -1424,7 +1447,6 @@ "help.acceptTermsOfService", "help.dismissSuggestion", "help.editUserInfo", - "help.getAppChangelog", "help.getAppConfig", "help.getAppUpdate", "help.getCdnConfig", @@ -1475,6 +1497,7 @@ "messages.deleteMessages", "messages.deletePhoneCallHistory", "messages.deleteRevokedExportedChatInvites", + "messages.deleteSavedHistory", "messages.deleteScheduledMessages", "messages.discardEncryption", "messages.editChatAbout", @@ -1540,13 +1563,16 @@ "messages.getPeerDialogs", "messages.getPeerSettings", "messages.getPinnedDialogs", + "messages.getPinnedSavedDialogs", "messages.getPollResults", "messages.getPollVotes", "messages.getRecentLocations", "messages.getRecentReactions", "messages.getRecentStickers", "messages.getReplies", + "messages.getSavedDialogs", "messages.getSavedGifs", + "messages.getSavedHistory", "messages.getScheduledHistory", "messages.getScheduledMessages", "messages.getSearchCounters", @@ -1581,6 +1607,7 @@ "messages.receivedMessages", "messages.receivedQueue", "messages.reorderPinnedDialogs", + "messages.reorderPinnedSavedDialogs", "messages.reorderStickerSets", "messages.report", "messages.reportEncryptedSpam", @@ -1635,6 +1662,7 @@ "messages.toggleDialogPin", "messages.toggleNoForwards", "messages.togglePeerTranslations", + "messages.toggleSavedDialogPin", "messages.toggleStickerSets", "messages.transcribeAudio", "messages.translateText", @@ -1734,6 +1762,7 @@ "stories.getStoriesArchive", "stories.getStoriesByID", "stories.getStoriesViews", + "stories.getStoryReactionsList", "stories.getStoryViewsList", "stories.incrementStoryViews", "stories.readStories", @@ -1985,6 +2014,7 @@ "RestrictionReason", "RichText", "SavedContact", + "SavedDialog", "SearchResultsCalendarPeriod", "SearchResultsPosition", "SecureCredentialsEncrypted", @@ -2019,6 +2049,7 @@ "StoriesStealthMode", "StoryFwdHeader", "StoryItem", + "StoryReaction", "StoryView", "StoryViews", "TextWithEntities", @@ -2148,6 +2179,7 @@ "messages.PeerSettings", "messages.Reactions", "messages.RecentStickers", + "messages.SavedDialogs", "messages.SavedGifs", "messages.SearchCounter", "messages.SearchResultsCalendar", @@ -2192,6 +2224,7 @@ "stories.AllStories", "stories.PeerStories", "stories.Stories", + "stories.StoryReactionsList", "stories.StoryViews", "stories.StoryViewsList", "string", @@ -4684,6 +4717,13 @@ "https://core.telegram.org/api/rights" ] }, + "emoji_status": { + "name": "emoji_status", + "description": "Emoji status¹", + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + }, "fake": { "name": "fake", "description": "If set, this supergroup/channel¹ was reported by many users as a fake or scam: be careful when interacting with it.", @@ -4751,6 +4791,13 @@ "name": "left", "description": "Whether the current user has left or is not a member of this channel" }, + "level": { + "name": "level", + "description": "Boost level¹", + "links": [ + "https://core.telegram.org/api/boost" + ] + }, "megagroup": { "name": "megagroup", "description": "Is this a supergroup?" @@ -4777,6 +4824,13 @@ "name": "photo", "description": "Profile photo" }, + "profile_color": { + "name": "profile_color", + "description": "The channel's profile color¹.", + "links": [ + "https://core.telegram.org/api/colors" + ] + }, "restricted": { "name": "restricted", "description": "Whether viewing/writing in this channel for a reason (see restriction_reason" @@ -4899,54 +4953,22 @@ } } }, - "channelAdminLogEventActionChangeBackgroundEmoji": { - "name": "channelAdminLogEventActionChangeBackgroundEmoji", + "channelAdminLogEventActionChangeEmojiStatus": { + "name": "channelAdminLogEventActionChangeEmojiStatus", "description": [ - "The custom emoji¹ used to generate the pattern of the background profile color »² of a channel was changed." + "The emoji status¹ was changed" ], "links": [ - "https://core.telegram.org/api/custom-emoji", - "https://core.telegram.org/api/colors" - ], - "fields": { - "new_value": { - "name": "new_value", - "description": "New custom emoji ID¹ (or 0 if none)", - "links": [ - "https://core.telegram.org/api/custom-emoji" - ] - }, - "prev_value": { - "name": "prev_value", - "description": "Old custom emoji ID¹ (or 0 if none)", - "links": [ - "https://core.telegram.org/api/custom-emoji" - ] - } - } - }, - "channelAdminLogEventActionChangeColor": { - "name": "channelAdminLogEventActionChangeColor", - "description": [ - "The background profile color »¹ of a channel was changed." - ], - "links": [ - "https://core.telegram.org/api/colors" + "https://core.telegram.org/api/emoji-status" ], "fields": { "new_value": { "name": "new_value", - "description": "The old color palette ID¹.", - "links": [ - "https://core.telegram.org/api/colors" - ] + "description": "New emoji status" }, "prev_value": { "name": "prev_value", - "description": "The old color palette ID¹.", - "links": [ - "https://core.telegram.org/api/colors" - ] + "description": "Previous emoji status" } } }, @@ -4998,6 +5020,25 @@ } } }, + "channelAdminLogEventActionChangePeerColor": { + "name": "channelAdminLogEventActionChangePeerColor", + "description": [ + "The message accent color¹ was changed" + ], + "links": [ + "https://core.telegram.org/api/colors" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New accent palette" + }, + "prev_value": { + "name": "prev_value", + "description": "Previous accent palette" + } + } + }, "channelAdminLogEventActionChangePhoto": { "name": "channelAdminLogEventActionChangePhoto", "description": [ @@ -5014,6 +5055,25 @@ } } }, + "channelAdminLogEventActionChangeProfilePeerColor": { + "name": "channelAdminLogEventActionChangeProfilePeerColor", + "description": [ + "The profile accent color¹ was changed" + ], + "links": [ + "https://core.telegram.org/api/colors" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New accent palette" + }, + "prev_value": { + "name": "prev_value", + "description": "Previous accent palette" + } + } + }, "channelAdminLogEventActionChangeStickerSet": { "name": "channelAdminLogEventActionChangeStickerSet", "description": [ @@ -5078,6 +5138,25 @@ } } }, + "channelAdminLogEventActionChangeWallpaper": { + "name": "channelAdminLogEventActionChangeWallpaper", + "description": [ + "The wallpaper¹ was changed" + ], + "links": [ + "https://core.telegram.org/api/wallpapers" + ], + "fields": { + "new_value": { + "name": "new_value", + "description": "New wallpaper" + }, + "prev_value": { + "name": "prev_value", + "description": "Previous wallpaper" + } + } + }, "channelAdminLogEventActionCreateTopic": { "name": "channelAdminLogEventActionCreateTopic", "description": [ @@ -6041,6 +6120,13 @@ "https://core.telegram.org/api/forum", "https://core.telegram.org/method/channels.toggleViewForumAsMessages" ] + }, + "wallpaper": { + "name": "wallpaper", + "description": "Wallpaper¹", + "links": [ + "https://core.telegram.org/api/wallpapers" + ] } } }, @@ -10268,6 +10354,13 @@ "https://core.telegram.org/api/colors" ], "fields": { + "channel_min_level": { + "name": "channel_min_level", + "description": "Channels can use this palette only after reaching at least the boost level¹ specified in this field.", + "links": [ + "https://core.telegram.org/api/boost" + ] + }, "color_id": { "name": "color_id", "description": "Palette ID." @@ -12040,6 +12133,26 @@ } } }, + "inputMediaAreaChannelPost": { + "name": "inputMediaAreaChannelPost", + "description": [ + "Represents a channel post" + ], + "fields": { + "channel": { + "name": "channel", + "description": "The channel that posted the message" + }, + "coordinates": { + "name": "coordinates", + "description": "The size and location of the media area corresponding to the location sticker on top of the story media." + }, + "msg_id": { + "name": "msg_id", + "description": "ID of the channel message" + } + } + }, "inputMediaAreaVenue": { "name": "inputMediaAreaVenue", "description": [ @@ -13680,6 +13793,15 @@ } } }, + "inputStickerSetEmojiChannelDefaultStatuses": { + "name": "inputStickerSetEmojiChannelDefaultStatuses", + "description": [ + "Default custom emoji status¹ stickerset for channel statuses" + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + }, "inputStickerSetEmojiDefaultStatuses": { "name": "inputStickerSetEmojiDefaultStatuses", "description": [ @@ -13956,6 +14078,10 @@ "name": "only_new_subscribers", "description": "If set, only new subscribers starting from the giveaway creation date will be able to participate to the giveaway." }, + "prize_description": { + "name": "prize_description", + "description": "Can contain a textual description of additional giveaway prizes." + }, "random_id": { "name": "random_id", "description": "Random ID to avoid resending the giveaway" @@ -13967,6 +14093,13 @@ "https://core.telegram.org/api/config#giveaway-period-max", "https://core.telegram.org/api/giveaways" ] + }, + "winners_are_visible": { + "name": "winners_are_visible", + "description": "If set, giveaway winners are public and will be listed in a messageMediaGiveawayResults¹ message that will be automatically sent to the channel once the giveaway ends.", + "links": [ + "https://core.telegram.org/constructor/messageMediaGiveawayResults" + ] } } }, @@ -14558,7 +14691,7 @@ "keyboardButtonRequestPeer": { "name": "keyboardButtonRequestPeer", "description": [ - "Prompts the user to select and share a peer with the bot using messages.sendBotRequestedPeer¹" + "Prompts the user to select and share one or more peers with the bot using messages.sendBotRequestedPeer¹" ], "links": [ "https://core.telegram.org/method/messages.sendBotRequestedPeer" @@ -14571,9 +14704,13 @@ "https://core.telegram.org/method/messages.sendBotRequestedPeer" ] }, + "max_quantity": { + "name": "max_quantity", + "description": "Maximum number of peers that can be chosne." + }, "peer_type": { "name": "peer_type", - "description": "Filtering criteria to use for the peer selection list shown to the user. The list should display all existing peers of the specified type, and should also offer an option for the user to create and immediately use a peer of the specified type, if needed." + "description": "Filtering criteria to use for the peer selection list shown to the user. The list should display all existing peers of the specified type, and should also offer an option for the user to create and immediately use one or more (up to max_quantity) peers of the specified type, if needed." }, "text": { "name": "text", @@ -14994,6 +15131,26 @@ } } }, + "mediaAreaChannelPost": { + "name": "mediaAreaChannelPost", + "description": [ + "Represents a channel post." + ], + "fields": { + "channel_id": { + "name": "channel_id", + "description": "The channel that posted the message" + }, + "coordinates": { + "name": "coordinates", + "description": "The size and location of the media area corresponding to the location sticker on top of the story media." + }, + "msg_id": { + "name": "msg_id", + "description": "ID of the channel message" + } + } + }, "mediaAreaCoordinates": { "name": "mediaAreaCoordinates", "description": [ @@ -15257,6 +15414,10 @@ "name": "restriction_reason", "description": "Contains the reason why access to this message must be restricted." }, + "saved_peer_id": { + "name": "saved_peer_id", + "description": " " + }, "silent": { "name": "silent", "description": "Whether this is a silent message (no notification triggered)" @@ -15525,6 +15686,13 @@ "https://core.telegram.org/api/links#premium-giftcode-links" ], "fields": { + "amount": { + "name": "amount", + "description": "Total price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json¹, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).", + "links": [ + "https://core.telegram.org/bots/payments/currencies.json" + ] + }, "boost_peer": { "name": "boost_peer", "description": "Identifier of the channel that created the gift code either directly or through a giveaway¹: if we import this giftcode link, we will also automatically boost² this channel.", @@ -15533,6 +15701,21 @@ "https://core.telegram.org/api/boost" ] }, + "crypto_amount": { + "name": "crypto_amount", + "description": "If crypto_currency is set, contains the paid amount, in the smallest units of the cryptocurrency." + }, + "crypto_currency": { + "name": "crypto_currency", + "description": "If set, the gift was made using the specified cryptocurrency." + }, + "currency": { + "name": "currency", + "description": "Three-letter ISO 4217 currency¹ code", + "links": [ + "https://core.telegram.org/bots/payments#supported-currencies" + ] + }, "flags": { "name": "flags", "description": "Flags, see TL conditional fields¹", @@ -15838,7 +16021,7 @@ "messageActionRequestedPeer": { "name": "messageActionRequestedPeer", "description": [ - "Contains info about a peer that the user shared with the bot after clicking on a keyboardButtonRequestPeer¹ button." + "Contains info about one or more peers that the user shared with the bot after clicking on a keyboardButtonRequestPeer¹ button." ], "links": [ "https://core.telegram.org/constructor/keyboardButtonRequestPeer" @@ -15851,9 +16034,9 @@ "https://core.telegram.org/constructor/keyboardButtonRequestPeer" ] }, - "peer": { - "name": "peer", - "description": "The shared peer" + "peers": { + "name": "peers", + "description": "The shared peers" } } }, @@ -16698,13 +16881,29 @@ "name": "psa_type", "description": "PSA type" }, + "saved_date": { + "name": "saved_date", + "description": " " + }, + "saved_from_id": { + "name": "saved_from_id", + "description": " " + }, "saved_from_msg_id": { "name": "saved_from_msg_id", "description": "Only for messages forwarded to the current user (inputPeerSelf), ID of the message that was forwarded from the original user/channel" }, + "saved_from_name": { + "name": "saved_from_name", + "description": " " + }, "saved_from_peer": { "name": "saved_from_peer", "description": "Only for messages forwarded to the current user (inputPeerSelf), full info about the user/channel that originally sent the message" + }, + "saved_out": { + "name": "saved_out", + "description": " " } } }, @@ -16783,6 +16982,10 @@ "name": "nopremium", "description": "Whether this is a normal sticker, if not set this is a premium sticker and a premium sticker animation must be played." }, + "round": { + "name": "round", + "description": " " + }, "spoiler": { "name": "spoiler", "description": "Whether this media should be hidden behind a spoiler warning" @@ -16790,6 +16993,14 @@ "ttl_seconds": { "name": "ttl_seconds", "description": "Time to live of self-destructing document" + }, + "video": { + "name": "video", + "description": " " + }, + "voice": { + "name": "voice", + "description": " " } } }, @@ -16898,6 +17109,10 @@ "name": "only_new_subscribers", "description": "If set, only new subscribers starting from the giveaway creation date will be able to participate to the giveaway." }, + "prize_description": { + "name": "prize_description", + "description": "Can contain a textual description of additional giveaway prizes." + }, "quantity": { "name": "quantity", "description": "Number of Telegram Premium¹ subscriptions given away.", @@ -16908,6 +17123,81 @@ "until_date": { "name": "until_date", "description": "The end date of the giveaway." + }, + "winners_are_visible": { + "name": "winners_are_visible", + "description": "If set, giveaway winners are public and will be listed in a messageMediaGiveawayResults¹ message that will be automatically sent to the channel once the giveaway ends.", + "links": [ + "https://core.telegram.org/constructor/messageMediaGiveawayResults" + ] + } + } + }, + "messageMediaGiveawayResults": { + "name": "messageMediaGiveawayResults", + "description": [ + "A giveaway¹ with public winners has finished, this constructor contains info about the winners." + ], + "links": [ + "https://core.telegram.org/api/giveaways" + ], + "fields": { + "additional_peers_count": { + "name": "additional_peers_count", + "description": "Number of other channels that participated in the giveaway." + }, + "channel_id": { + "name": "channel_id", + "description": "ID of the channel that was automatically boosted¹ by the winners of the giveaway for duration of the Premium subscription.", + "links": [ + "https://core.telegram.org/api/boost" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "launch_msg_id": { + "name": "launch_msg_id", + "description": "Identifier of the message with the giveaway in channel_id." + }, + "months": { + "name": "months", + "description": "Duration in months of each Telegram Premium¹ subscription in the giveaway.", + "links": [ + "https://core.telegram.org/api/premium" + ] + }, + "only_new_subscribers": { + "name": "only_new_subscribers", + "description": "If set, only new subscribers starting from the giveaway creation date participated in the giveaway." + }, + "prize_description": { + "name": "prize_description", + "description": "Can contain a textual description of additional giveaway prizes." + }, + "refunded": { + "name": "refunded", + "description": "If set, the giveaway was canceled and was fully refunded." + }, + "unclaimed_count": { + "name": "unclaimed_count", + "description": "Number of not-yet-claimed prizes." + }, + "until_date": { + "name": "until_date", + "description": "Point in time (Unix timestamp) when the winners were selected. May be bigger than winners selection date specified in initial parameters of the giveaway." + }, + "winners": { + "name": "winners", + "description": "Up to 100 user identifiers of the winners of the giveaway." + }, + "winners_count": { + "name": "winners_count", + "description": "Total number of winners in the giveaway." } } }, @@ -18747,6 +19037,61 @@ "No new recent sticker was found" ] }, + "messages.savedDialogs": { + "name": "messages.savedDialogs", + "fields": { + "chats": { + "name": "chats", + "description": " " + }, + "dialogs": { + "name": "dialogs", + "description": " " + }, + "messages": { + "name": "messages", + "description": " " + }, + "users": { + "name": "users", + "description": " " + } + } + }, + "messages.savedDialogsNotModified": { + "name": "messages.savedDialogsNotModified", + "fields": { + "count": { + "name": "count", + "description": " " + } + } + }, + "messages.savedDialogsSlice": { + "name": "messages.savedDialogsSlice", + "fields": { + "chats": { + "name": "chats", + "description": " " + }, + "count": { + "name": "count", + "description": " " + }, + "dialogs": { + "name": "dialogs", + "description": " " + }, + "messages": { + "name": "messages", + "description": " " + }, + "users": { + "name": "users", + "description": " " + } + } + }, "messages.savedGifs": { "name": "messages.savedGifs", "description": [ @@ -20650,14 +20995,14 @@ "fields": { "background_emoji_id": { "name": "background_emoji_id", - "description": "Custom emoji ID¹ used to generate the pattern.", + "description": "Optional custom emoji ID¹ used to generate the pattern.", "links": [ "https://core.telegram.org/api/custom-emoji" ] }, "color": { "name": "color", - "description": "Color palette ID, see here »¹ for more info.", + "description": "Color palette ID, see here »¹ for more info; if not set, the default palette should be used.", "links": [ "https://core.telegram.org/api/colors" ] @@ -22836,6 +23181,30 @@ } } }, + "savedDialog": { + "name": "savedDialog", + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": " " + }, + "pinned": { + "name": "pinned", + "description": " " + }, + "top_message": { + "name": "top_message", + "description": " " + } + } + }, "savedPhoneContact": { "name": "savedPhoneContact", "description": [ @@ -24404,6 +24773,13 @@ "name": "archived", "description": "Whether this stickerset was archived (due to too many saved stickers in the current account)" }, + "channel_emoji_status": { + "name": "channel_emoji_status", + "description": "If set, this custom emoji stickerset can be used in channel emoji statuses¹.", + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + }, "count": { "name": "count", "description": "Number of stickers in pack" @@ -24755,6 +25131,47 @@ } } }, + "stories.storyReactionsList": { + "name": "stories.storyReactionsList", + "description": [ + "List of peers that reacted to or intercated with a specific story¹" + ], + "links": [ + "https://core.telegram.org/api/stories" + ], + "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, + "count": { + "name": "count", + "description": "Total number of reactions matching query" + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "next_offset": { + "name": "next_offset", + "description": "If set, indicates the next offset to use to load more results by invoking stories.getStoryReactionsList¹.", + "links": [ + "https://core.telegram.org/method/stories.getStoryReactionsList" + ] + }, + "reactions": { + "name": "reactions", + "description": "List of peers that reacted to or interacted with a specific story" + }, + "users": { + "name": "users", + "description": "Mentioned users" + } + } + }, "stories.storyViews": { "name": "stories.storyViews", "description": [ @@ -24783,6 +25200,10 @@ "https://core.telegram.org/api/stories" ], "fields": { + "chats": { + "name": "chats", + "description": "Mentioned chats" + }, "count": { "name": "count", "description": "Total number of results that can be fetched" @@ -24794,6 +25215,10 @@ "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" ] }, + "forwards_count": { + "name": "forwards_count", + "description": "Total number of story forwards/reposts" + }, "next_offset": { "name": "next_offset", "description": "Offset for pagination" @@ -24809,6 +25234,10 @@ "views": { "name": "views", "description": "Story view date and reaction information" + }, + "views_count": { + "name": "views_count", + "description": "Total number of story views" } } }, @@ -25037,6 +25466,54 @@ } } }, + "storyReaction": { + "name": "storyReaction", + "description": [ + "How a certain peer reacted to a story" + ], + "fields": { + "date": { + "name": "date", + "description": "Reaction date" + }, + "peer_id": { + "name": "peer_id", + "description": "The peer" + }, + "reaction": { + "name": "reaction", + "description": "The reaction" + } + } + }, + "storyReactionPublicForward": { + "name": "storyReactionPublicForward", + "description": [ + "A certain peer has forwarded the story as a message to a public chat or channel." + ], + "fields": { + "message": { + "name": "message", + "description": "The message with the forwarded story." + } + } + }, + "storyReactionPublicRepost": { + "name": "storyReactionPublicRepost", + "description": [ + "A certain peer has reposted the story." + ], + "fields": { + "peer_id": { + "name": "peer_id", + "description": "The peer that reposted the story." + }, + "story": { + "name": "story", + "description": "The reposted story." + } + } + }, "storyView": { "name": "storyView", "description": [ @@ -25081,6 +25558,76 @@ } } }, + "storyViewPublicForward": { + "name": "storyViewPublicForward", + "description": [ + "A certain peer has forwarded the story as a message to a public chat or channel." + ], + "fields": { + "blocked": { + "name": "blocked", + "description": "Whether we have completely blocked¹ this user, including from viewing more of our stories.", + "links": [ + "https://core.telegram.org/api/block" + ] + }, + "blocked_my_stories_from": { + "name": "blocked_my_stories_from", + "description": "Whether we have blocked¹ this user from viewing more of our stories.", + "links": [ + "https://core.telegram.org/api/block" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "message": { + "name": "message", + "description": "The message with the forwarded story." + } + } + }, + "storyViewPublicRepost": { + "name": "storyViewPublicRepost", + "description": [ + "A certain peer has reposted the story." + ], + "fields": { + "blocked": { + "name": "blocked", + "description": "Whether we have completely blocked¹ this user, including from viewing more of our stories.", + "links": [ + "https://core.telegram.org/api/block" + ] + }, + "blocked_my_stories_from": { + "name": "blocked_my_stories_from", + "description": "Whether we have blocked¹ this user from viewing more of our stories.", + "links": [ + "https://core.telegram.org/api/block" + ] + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer_id": { + "name": "peer_id", + "description": "The peer that reposted the story." + }, + "story": { + "name": "story", + "description": "The reposted story." + } + } + }, "storyViews": { "name": "storyViews", "description": [ @@ -25810,6 +26357,76 @@ } } }, + "updateBotMessageReaction": { + "name": "updateBotMessageReaction", + "description": [ + "Bots only: a user has changed their reactions on a message with public reactions." + ], + "fields": { + "actor": { + "name": "actor", + "description": "The user that (un)reacted to the message." + }, + "date": { + "name": "date", + "description": "Date of the change." + }, + "msg_id": { + "name": "msg_id", + "description": "ID of the reacted-to message." + }, + "new_reactions": { + "name": "new_reactions", + "description": "New reactions" + }, + "old_reactions": { + "name": "old_reactions", + "description": "Old reactions" + }, + "peer": { + "name": "peer", + "description": "Peer of the reacted-to message." + }, + "qts": { + "name": "qts", + "description": "QTS¹ event sequence identifier", + "links": [ + "https://core.telegram.org/api/updates" + ] + } + } + }, + "updateBotMessageReactions": { + "name": "updateBotMessageReactions", + "description": [ + "Bots only: the number of reactions on a message with anonymous reactions has changed." + ], + "fields": { + "date": { + "name": "date", + "description": "Date of the change." + }, + "msg_id": { + "name": "msg_id", + "description": "ID of the reacted-to message." + }, + "peer": { + "name": "peer", + "description": "Peer of the reacted-to message." + }, + "qts": { + "name": "qts", + "description": "QTS¹ event sequence identifier", + "links": [ + "https://core.telegram.org/api/updates" + ] + }, + "reactions": { + "name": "reactions", + "description": "New reaction counters." + } + } + }, "updateBotPrecheckoutQuery": { "name": "updateBotPrecheckoutQuery", "description": [ @@ -27480,7 +28097,7 @@ "description": "Whether the other user has chosen a custom wallpaper for us using messages.setChatWallPaper¹ and the for_both flag, see here »² for more info.", "links": [ "https://core.telegram.org/method/messages.setChatWallPaper", - "https://core.telegram.org/api/wallpapers#installing-wallpapers-in-a-specific-chat" + "https://core.telegram.org/api/wallpapers#installing-wallpapers-in-a-specific-chat-or-channel" ] } } @@ -27647,6 +28264,22 @@ } } }, + "updatePinnedSavedDialogs": { + "name": "updatePinnedSavedDialogs", + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "order": { + "name": "order", + "description": " " + } + } + }, "updatePrivacy": { "name": "updatePrivacy", "description": [ @@ -27995,6 +28628,26 @@ "The recent sticker list was updated" ] }, + "updateSavedDialogPinned": { + "name": "updateSavedDialogPinned", + "fields": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": " " + }, + "pinned": { + "name": "pinned", + "description": " " + } + } + }, "updateSavedGifs": { "name": "updateSavedGifs", "description": [ @@ -29532,7 +30185,7 @@ "description": "Whether the other user has chosen a custom wallpaper for us using messages.setChatWallPaper¹ and the for_both flag, see here »² for more info.", "links": [ "https://core.telegram.org/method/messages.setChatWallPaper", - "https://core.telegram.org/api/wallpapers#installing-wallpapers-in-a-specific-chat" + "https://core.telegram.org/api/wallpapers#installing-wallpapers-in-a-specific-chator-channel" ] } } @@ -29905,6 +30558,10 @@ "https://core.telegram.org/api/wallpapers#image-wallpapers" ] }, + "emoticon": { + "name": "emoticon", + "description": "If set, this wallpaper can be used as a channel wallpaper and is represented by the specified UTF-8 emoji." + }, "flags": { "name": "flags", "description": "Flags, see TL conditional fields¹", @@ -32185,6 +32842,9 @@ "Saved contact" ] }, + "SavedDialog": { + "name": "SavedDialog" + }, "SearchResultsCalendarPeriod": { "name": "SearchResultsCalendarPeriod", "description": [ @@ -32449,6 +33109,12 @@ "https://core.telegram.org/api/stories" ] }, + "StoryReaction": { + "name": "StoryReaction", + "description": [ + "How a certain peer reacted to or interacted with a story" + ] + }, "StoryView": { "name": "StoryView", "description": [ @@ -33122,6 +33788,9 @@ "https://core.telegram.org/api/reactions" ] }, + "messages.SavedDialogs": { + "name": "messages.SavedDialogs" + }, "messages.SearchResultsCalendar": { "name": "messages.SearchResultsCalendar", "description": [ @@ -33278,6 +33947,15 @@ "https://core.telegram.org/api/stories#pinned-or-archived-stories" ] }, + "stories.StoryReactionsList": { + "name": "stories.StoryReactionsList", + "description": [ + "List of peers that reacted to a specific story¹" + ], + "links": [ + "https://core.telegram.org/api/stories" + ] + }, "stories.StoryViews": { "name": "stories.StoryViews", "description": [ @@ -33816,10 +34494,52 @@ "Get autosave settings" ] }, + "account.getChannelDefaultEmojiStatuses": { + "name": "account.getChannelDefaultEmojiStatuses", + "description": [ + "Get a list of default suggested channel emoji statuses¹." + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + }, + "bot_can_use": true + }, + "account.getChannelRestrictedStatusEmojis": { + "name": "account.getChannelRestrictedStatusEmojis", + "description": [ + "Returns fetch the full list of custom emoji IDs »¹ that cannot be used in channel emoji statuses »²." + ], + "links": [ + "https://core.telegram.org/api/custom-emoji", + "https://core.telegram.org/api/emoji-status" + ], + "parameters": { + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + } + }, + "bot_can_use": true + }, "account.getChatThemes": { "name": "account.getChatThemes", "description": [ - "Get all available chat themes" + "Get all available chat themes »¹." + ], + "links": [ + "https://core.telegram.org/api/themes" ], "parameters": { "hash": { @@ -39810,7 +40530,7 @@ }, "color": { "name": "color", - "description": "ID of the accent color palette »¹ to use (not RGB24, see here »² for more info).", + "description": "ID of the accent color palette »¹ to use (not RGB24, see here »² for more info); if not set, the default palette is used.", "links": [ "https://core.telegram.org/api/colors", "https://core.telegram.org/api/colors" @@ -39822,6 +40542,10 @@ "links": [ "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" ] + }, + "for_profile": { + "name": "for_profile", + "description": "Whether to change the accent color emoji pattern of the profile page; otherwise, the accent color and emoji pattern of messages will be changed." } }, "errors": [ @@ -39837,6 +40561,32 @@ } ] }, + "channels.updateEmojiStatus": { + "name": "channels.updateEmojiStatus", + "description": [ + "Set an emoji status¹ for a channel." + ], + "links": [ + "https://core.telegram.org/api/emoji-status" + ], + "parameters": { + "channel": { + "name": "channel", + "description": "The channel, must have at least channel_emoji_status_level_min boosts¹.", + "links": [ + "https://core.telegram.org/api/config#channel-emoji-status-level-min" + ] + }, + "emoji_status": { + "name": "emoji_status", + "description": "Emoji status¹ to set", + "links": [ + "https://core.telegram.org/api/emoji-status" + ] + } + }, + "bot_can_use": true + }, "channels.updatePinnedForumTopic": { "name": "channels.updatePinnedForumTopic", "description": [ @@ -40784,7 +41534,7 @@ "contacts.resetSaved": { "name": "contacts.resetSaved", "description": [ - "Delete saved contacts" + "Removes all contacts without an associated Telegram account." ] }, "contacts.resetTopPeerRating": { @@ -41106,23 +41856,6 @@ } ] }, - "help.getAppChangelog": { - "name": "help.getAppChangelog", - "description": [ - "Get changelog of current app.", - "Typically, an updates¹ constructor will be returned, containing one or more updateServiceNotification² updates with app-specific changelogs." - ], - "links": [ - "https://core.telegram.org/constructor/updates", - "https://core.telegram.org/constructor/updateServiceNotification" - ], - "parameters": { - "prev_app_version": { - "name": "prev_app_version", - "description": "Previous app version" - } - } - }, "help.getAppConfig": { "name": "help.getAppConfig", "description": [ @@ -42457,6 +43190,35 @@ } ] }, + "messages.deleteSavedHistory": { + "name": "messages.deleteSavedHistory", + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "max_date": { + "name": "max_date", + "description": " " + }, + "max_id": { + "name": "max_id", + "description": " " + }, + "min_date": { + "name": "min_date", + "description": " " + }, + "peer": { + "name": "peer", + "description": " " + } + }, + "bot_can_use": true + }, "messages.deleteScheduledMessages": { "name": "messages.deleteScheduledMessages", "description": [ @@ -44896,7 +45658,7 @@ }, "offset": { "name": "offset", - "description": "Offset (typically taken from the next_offset field of the returned messages.MessageReactionsList¹)", + "description": "Offset for pagination (taken from the next_offset field of the returned messages.MessageReactionsList¹); empty in the first request.", "links": [ "https://core.telegram.org/type/messages.MessageReactionsList" ] @@ -44907,7 +45669,7 @@ }, "reaction": { "name": "reaction", - "description": "Get only reactions of this type (UTF8 emoji)" + "description": "Get only reactions of this type" } }, "errors": [ @@ -45200,6 +45962,10 @@ } ] }, + "messages.getPinnedSavedDialogs": { + "name": "messages.getPinnedSavedDialogs", + "bot_can_use": true + }, "messages.getPollResults": { "name": "messages.getPollResults", "description": [ @@ -45447,6 +46213,55 @@ } ] }, + "messages.getSavedDialogs": { + "name": "messages.getSavedDialogs", + "parameters": { + "exclude_pinned": { + "name": "exclude_pinned", + "description": " " + }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_date": { + "name": "offset_date", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_peer": { + "name": "offset_peer", + "description": " " + } + }, + "bot_can_use": true + }, "messages.getSavedGifs": { "name": "messages.getSavedGifs", "description": [ @@ -45462,6 +46277,59 @@ } } }, + "messages.getSavedHistory": { + "name": "messages.getSavedHistory", + "parameters": { + "add_offset": { + "name": "add_offset", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "hash": { + "name": "hash", + "description": "Hash for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets#hash-generation" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "max_id": { + "name": "max_id", + "description": " " + }, + "min_id": { + "name": "min_id", + "description": " " + }, + "offset_date": { + "name": "offset_date", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset_id": { + "name": "offset_id", + "description": "Offsets for pagination, for more info click here¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "peer": { + "name": "peer", + "description": " " + } + }, + "bot_can_use": true + }, "messages.getScheduledHistory": { "name": "messages.getScheduledHistory", "description": [ @@ -45545,6 +46413,10 @@ "name": "peer", "description": "Peer where to search" }, + "saved_peer_id": { + "name": "saved_peer_id", + "description": " " + }, "top_msg_id": { "name": "top_msg_id", "description": "If set, consider only messages within the specified forum topic¹", @@ -45577,6 +46449,13 @@ "https://core.telegram.org/constructor/inputMessagesFilterMyMentions" ] }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, "offset_date": { "name": "offset_date", "description": "Offsets for pagination, for more info click here¹", @@ -45594,6 +46473,10 @@ "peer": { "name": "peer", "description": "Peer where to search" + }, + "saved_peer_id": { + "name": "saved_peer_id", + "description": " " } }, "errors": [ @@ -45619,6 +46502,13 @@ "https://core.telegram.org/constructor/inputMessagesFilterMyMentions" ] }, + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, "limit": { "name": "limit", "description": "Maximum number of results to return, see pagination¹", @@ -45636,6 +46526,10 @@ "peer": { "name": "peer", "description": "Peer where to search" + }, + "saved_peer_id": { + "name": "saved_peer_id", + "description": " " } } }, @@ -46723,6 +47617,27 @@ } ] }, + "messages.reorderPinnedSavedDialogs": { + "name": "messages.reorderPinnedSavedDialogs", + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "force": { + "name": "force", + "description": " " + }, + "order": { + "name": "order", + "description": " " + } + }, + "bot_can_use": true + }, "messages.reorderStickerSets": { "name": "messages.reorderStickerSets", "description": [ @@ -47402,6 +48317,10 @@ "name": "q", "description": "Text search request" }, + "saved_peer_id": { + "name": "saved_peer_id", + "description": " " + }, "top_msg_id": { "name": "top_msg_id", "description": "Thread ID¹", @@ -47675,7 +48594,7 @@ "messages.sendBotRequestedPeer": { "name": "messages.sendBotRequestedPeer", "description": [ - "Send a chosen peer, as requested by a keyboardButtonRequestPeer¹ button." + "Send one or more chosen peers, as requested by a keyboardButtonRequestPeer¹ button." ], "links": [ "https://core.telegram.org/constructor/keyboardButtonRequestPeer" @@ -47702,9 +48621,9 @@ "https://core.telegram.org/constructor/keyboardButtonRequestPeer" ] }, - "requested_peer": { - "name": "requested_peer", - "description": "The chosen peer." + "requested_peers": { + "name": "requested_peers", + "description": "The chosen peers." } }, "bot_can_use": true @@ -50544,6 +51463,27 @@ }, "bot_can_use": true }, + "messages.toggleSavedDialogPin": { + "name": "messages.toggleSavedDialogPin", + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "peer": { + "name": "peer", + "description": " " + }, + "pinned": { + "name": "pinned", + "description": " " + } + }, + "bot_can_use": true + }, "messages.toggleStickerSets": { "name": "messages.toggleStickerSets", "description": [ @@ -53074,26 +54014,12 @@ "name": "msg_id", "description": "Source message ID" }, - "offset_id": { - "name": "offset_id", - "description": "Offsets for pagination, for more info click here¹", - "links": [ - "https://core.telegram.org/api/offsets" - ] - }, - "offset_peer": { - "name": "offset_peer", - "description": "Offsets for pagination, for more info click here¹", + "offset": { + "name": "offset", + "description": "Offset for pagination¹, empty string on first call, then use the next_offset field of the returned constructor (if present, otherwise no more results are available).", "links": [ "https://core.telegram.org/api/offsets" ] - }, - "offset_rate": { - "name": "offset_rate", - "description": "Initially 0, then set to the next_rate parameter of messages.messagesSlice¹", - "links": [ - "https://core.telegram.org/constructor/messages.messagesSlice" - ] } }, "errors": [ @@ -54228,6 +55154,60 @@ } ] }, + "stories.getStoryReactionsList": { + "name": "stories.getStoryReactionsList", + "description": [ + "Get the reaction¹ and interaction list of a story² posted to a channel, along with the sender of each reaction.", + "Can only be used by channel admins." + ], + "links": [ + "https://core.telegram.org/api/reactions", + "https://core.telegram.org/api/stories" + ], + "parameters": { + "flags": { + "name": "flags", + "description": "Flags, see TL conditional fields¹", + "links": [ + "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" + ] + }, + "forwards_first": { + "name": "forwards_first", + "description": "If set, returns forwards and reposts first, then reactions, then other views; otherwise returns interactions sorted just by interaction date." + }, + "id": { + "name": "id", + "description": "Story¹ ID", + "links": [ + "https://core.telegram.org/api/stories" + ] + }, + "limit": { + "name": "limit", + "description": "Maximum number of results to return, see pagination¹", + "links": [ + "https://core.telegram.org/api/offsets" + ] + }, + "offset": { + "name": "offset", + "description": "Offset for pagination (taken from the next_offset field of the returned stories.StoryReactionsList¹); empty in the first request.", + "links": [ + "https://core.telegram.org/type/stories.StoryReactionsList" + ] + }, + "peer": { + "name": "peer", + "description": "Channel" + }, + "reaction": { + "name": "reaction", + "description": "Get only reactions of this type" + } + }, + "bot_can_use": true + }, "stories.getStoryViewsList": { "name": "stories.getStoryViewsList", "description": [ @@ -54244,6 +55224,10 @@ "https://core.telegram.org/mtproto/TL-combinators#conditional-fields" ] }, + "forwards_first": { + "name": "forwards_first", + "description": "If set, returns forwards and reposts first, then reactions, then other views; otherwise returns interactions sorted just by interaction date." + }, "id": { "name": "id", "description": "Story ID" @@ -54279,7 +55263,7 @@ }, "reactions_first": { "name": "reactions_first", - "description": "Whether to return storyView¹ info about users that reacted to the story (i.e. if set, the server will first sort results by view date as usual, and then also additionally sort the list by putting storyView²s with an associated reaction first in the list).", + "description": "Whether to return storyView¹ info about users that reacted to the story (i.e. if set, the server will first sort results by view date as usual, and then also additionally sort the list by putting storyView²s with an associated reaction first in the list). Ignored if forwards_first is set.", "links": [ "https://core.telegram.org/constructor/storyView", "https://core.telegram.org/constructor/storyView" diff --git a/load.go b/load.go index 0bf305c..85df1e3 100644 --- a/load.go +++ b/load.go @@ -5,6 +5,7 @@ import ( "encoding/json" "fmt" "path" + "slices" "github.com/go-faster/errors" ) @@ -23,19 +24,15 @@ var Layers = []int{ 158, 164, 167, + 170, } // LayerLatest is id of the latest layer. -const LayerLatest = 167 +const LayerLatest = 170 // LayerExists returns true if layer is included in package. func LayerExists(layer int) bool { - for _, id := range Layers { - if id == layer { - return true - } - } - return false + return slices.Contains(Layers, layer) } // ErrNotFound means that current package version does not support requested layer.