"description":"An object of this type can be returned on every function call, in case of an error",
"class":"Error",
"properties":[
{
"name":"code",
"type":"int32",
"description":"Error code; subject to future changes. If the error code is 406, the error message must not be processed in any way and must not be displayed to the user"
},
{
"name":"message",
"type":"string",
"description":"Error message; subject to future changes"
}
]
},
{
"name":"ok",
"description":"An object of this type is returned on a successful function call for certain functions",
"class":"Ok",
"properties":[]
},
{
"name":"authenticationCodeTypeTelegramMessage",
"description":"An authentication code is delivered via a private Telegram message, which can be viewed from another active session",
"description":"An authentication code is delivered by an immediately canceled call to the specified phone number. The phone number that calls is the code that must be entered automatically",
"description":"An authentication code is delivered by an immediately canceled call to the specified phone number. The last digits of the phone number that calls are the code that must be entered manually by the user",
"description":"An authentication code is delivered to https://fragment.com. The user must be logged in there via a wallet owning the phone number's NFT",
"description":"Email address can be reset after the given period. Call resetAuthenticationEmailAddress to reset it and allow the user to authorize with a code sent to the user's phone number",
"class":"EmailAddressResetState",
"properties":[
{
"name":"wait_period",
"type":"int32",
"description":"Time required to wait before the email address can be reset; 0 if the user is subscribed to Telegram Premium"
}
]
},
{
"name":"emailAddressResetStatePending",
"description":"Email address reset has already been requested. Call resetAuthenticationEmailAddress to check whether immediate reset is possible",
"class":"EmailAddressResetState",
"properties":[
{
"name":"reset_in",
"type":"int32",
"description":"Left time before the email address will be reset, in seconds. updateAuthorizationState is not sent when this field changes"
"description":"Entities contained in the text. Entities can be nested, but must not mutually intersect with each other. Pre, Code and PreCode entities can't contain other entities. BlockQuote entities can't contain other BlockQuote entities. Bold, Italic, Underline, Strikethrough, and Spoiler entities can contain and can be part of any other entities. All other entities can't contain each other"
"description":"TDLib needs the user's phone number to authorize. Call setAuthenticationPhoneNumber to provide the phone number, or use requestQrCodeAuthentication or checkAuthenticationBotToken for other authentication options",
"description":"TDLib needs the user's email address to authorize. Call setAuthenticationEmailAddress to provide the email address, or directly call checkAuthenticationEmailCode with Apple ID/Google ID token if allowed",
"description":"TDLib needs the user's authentication code sent to an email address to authorize. Call checkAuthenticationEmailCode to provide the code",
"description":"The user is unregistered and need to accept terms of service and enter their first name and last name to finish registration. Call registerUser to accept the terms of service and provide the data",
"description":"The user has been authorized, but needs to enter a 2-step verification password to start using the application. Call checkAuthenticationPassword to provide the password, or requestAuthenticationPasswordRecovery to recover the password, or deleteAccount to delete the account after a week",
"description":"The user is currently logging out",
"class":"AuthorizationState",
"properties":[]
},
{
"name":"authorizationStateClosing",
"description":"TDLib is closing, all subsequent queries will be answered with the error 500. Note that closing TDLib can take a while. All resources will be freed only after authorizationStateClosed has been received",
"description":"TDLib client is in its final state. All databases are closed and all resources are released. No other updates will be received after this. All queries will be responded to with error code 500. To continue working, one must create a new instance of the TDLib client",
"description":"If is_downloading_completed is false, then only some prefix of the file starting from download_offset is ready to be read. downloaded_prefix_size is the size of that prefix in bytes"
"description":"Total downloaded file size, in bytes. Can be used only for calculating download progress. The actual file size may be bigger, and some parts of it may contain garbage"
"description":"Remote file identifier; may be empty. Can be used by the current user across application restarts or even from other devices. Uniquely identifies a file, but a file can have a lot of different valid identifiers. If the identifier starts with \"http://\" or \"https://\", it represents the HTTP URL of the file. TDLib is currently unable to download files if only their URL is known. If downloadFile/addFileToDownloads is called on such a file or if it is sent to a secret chat, TDLib starts a file generation process by sending updateFileGenerationStart to the application with the HTTP URL in the original_path and \"#url#\" as the conversion string. Application must generate the file by downloading it to the specified location"
"description":"Unique file identifier; may be empty if unknown. The unique file identifier which is the same for the same file even for different users and is persistent over time"
},
{
"name":"is_uploading_active",
"type":"Bool",
"description":"True, if the file is currently being uploaded (or a remote copy is being generated by some other means)"
},
{
"name":"is_uploading_completed",
"type":"Bool",
"description":"True, if a remote copy is fully available"
"description":"A file defined by its remote identifier. The remote identifier is guaranteed to be usable only if the corresponding file is still accessible to the user and known to TDLib. For example, if the file is from a message, then the message must be not deleted and accessible to the user. If the file database is disabled, then the corresponding object with the file must be preloaded by the application",
"description":"String specifying the conversion applied to the original file; must be persistent across application restarts. Conversions beginning with '#' are reserved for internal TDLib usage"
"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)"
},
{
"name":"y_shift",
"type":"double",
"description":"Shift by Y-axis measured in heights of the mask scaled to the face size, from top to bottom. (For example, 1.0 will place the mask just below the default mask position)"
},
{
"name":"scale",
"type":"double",
"description":"Mask scaling coefficient. (For example, 2.0 means a doubled size)"
"description":"True, if the sticker must be repainted to a text color in messages, the color of the Telegram Premium badge in emoji status, white color on chat photos, or another appropriate color in other places"
"description":"Text that is shown when the user chooses an incorrect answer or taps on the lamp icon; 0-200 characters with at most 2 line feeds; empty for a yet unanswered poll"
"description":"The thumbnail of the album cover in JPEG format; as defined by the sender. The full size thumbnail is supposed to be extracted from the downloaded audio file; may be null"
},
{
"name":"external_album_covers",
"type":"vector\u003cthumbnail\u003e",
"description":"Album cover variants to use if the downloaded audio file contains no album cover. Provided thumbnail dimensions are approximate"
"description":"Describes a voice note. The voice note must be encoded with the Opus codec, and stored inside an OGG container. Voice notes can have only a single audio channel",
"class":"VoiceNote",
"properties":[
{
"name":"duration",
"type":"int32",
"description":"Duration of the voice note, in seconds; as defined by the sender"
},
{
"name":"waveform",
"type":"bytes",
"description":"A waveform representation of the voice note in 5-bit format"
},
{
"name":"mime_type",
"type":"string",
"description":"MIME type of the file; as defined by the sender"
"description":"Sticker for the emoji; may be null if yet unknown for a custom emoji. If the sticker is a custom emoji, then it can have arbitrary format"
"description":"File containing the sound to be played when the sticker is clicked; may be null. The sound is encoded with the Opus codec, and stored inside an OGG container"
"description":"Provider of the venue database; as defined by the sender. Currently, only \"foursquare\" and \"gplaces\" (Google Places) need to be supported"
"description":"A deleted user or deleted bot. No information on the user besides the user identifier is available. It is not possible to perform any active actions on this type of user",
"class":"UserType",
"properties":[]
},
{
"name":"userTypeBot",
"description":"A bot (see https://core.telegram.org/bots)",
"description":"True, if the bot is owned by the current user and can be edited using the methods toggleBotUsernameIsActive, reorderBotActiveUsernames, setBotProfilePhoto, setBotName, setBotInfoDescription, and setBotInfoShortDescription"
"description":"True, if the bot can be invited to basic group and supergroup chats"
},
{
"name":"can_read_all_group_messages",
"type":"Bool",
"description":"True, if the bot can read all messages in basic group or supergroup chats and not just those addressed to the bot. In private and channel chats a bot can always read all messages"
},
{
"name":"is_inline",
"type":"Bool",
"description":"True, if the bot supports inline queries"
},
{
"name":"inline_query_placeholder",
"type":"string",
"description":"Placeholder for inline queries (displayed on the application input field)"
"description":"No information on the user besides the user identifier is available, yet this user has not been deleted. This object is extremely rare and must be handled like a deleted user. It is not possible to perform any actions on users of this type",
"class":"UserType",
"properties":[]
},
{
"name":"botCommand",
"description":"Represents a command supported by a bot",
"description":"Send away messages outside of the business opening hours",
"class":"BusinessAwayMessageSchedule",
"properties":[]
},
{
"name":"businessAwayMessageScheduleCustom",
"description":"Send away messages only in the specified time span",
"class":"BusinessAwayMessageSchedule",
"properties":[
{
"name":"start_date",
"type":"int32",
"description":"Point in time (Unix timestamp) when the away messages will start to be sent"
},
{
"name":"end_date",
"type":"int32",
"description":"Point in time (Unix timestamp) when the away messages will stop to be sent"
}
]
},
{
"name":"businessLocation",
"description":"Represents a location of a business",
"class":"BusinessLocation",
"properties":[
{
"name":"location",
"type":"location",
"description":"The location; may be null if not specified"
},
{
"name":"address",
"type":"string",
"description":"Location address; 1-96 characters"
}
]
},
{
"name":"businessRecipients",
"description":"Describes private chats chosen for automatic interaction with a business",
"class":"BusinessRecipients",
"properties":[
{
"name":"chat_ids",
"type":"vector\u003cint53\u003e",
"description":"Identifiers of selected private chats"
},
{
"name":"excluded_chat_ids",
"type":"vector\u003cint53\u003e",
"description":"Identifiers of private chats that are always excluded; for businessConnectedBot only"
},
{
"name":"select_existing_chats",
"type":"Bool",
"description":"True, if all existing private chats are selected"
},
{
"name":"select_new_chats",
"type":"Bool",
"description":"True, if all new private chats are selected"
},
{
"name":"select_contacts",
"type":"Bool",
"description":"True, if all private chats with contacts are selected"
},
{
"name":"select_non_contacts",
"type":"Bool",
"description":"True, if all private chats with non-contacts are selected"
},
{
"name":"exclude_selected",
"type":"Bool",
"description":"If true, then all private chats except the selected are chosen. Otherwise, only the selected chats are chosen"
}
]
},
{
"name":"businessAwayMessageSettings",
"description":"Describes settings for messages that are automatically sent by a Telegram Business account when it is away",
"class":"BusinessAwayMessageSettings",
"properties":[
{
"name":"shortcut_id",
"type":"int32",
"description":"Unique quick reply shortcut identifier for the away messages"
},
{
"name":"recipients",
"type":"businessRecipients",
"description":"Chosen recipients of the away messages"
},
{
"name":"schedule",
"type":"BusinessAwayMessageSchedule",
"description":"Settings used to check whether the current user is away"
},
{
"name":"offline_only",
"type":"Bool",
"description":"True, if the messages must not be sent if the account was online in the last 10 minutes"
}
]
},
{
"name":"businessGreetingMessageSettings",
"description":"Describes settings for greeting messages that are automatically sent by a Telegram Business account as response to incoming messages in an inactive private chat",
"class":"BusinessGreetingMessageSettings",
"properties":[
{
"name":"shortcut_id",
"type":"int32",
"description":"Unique quick reply shortcut identifier for the greeting messages"
},
{
"name":"recipients",
"type":"businessRecipients",
"description":"Chosen recipients of the greeting messages"
},
{
"name":"inactivity_days",
"type":"int32",
"description":"The number of days after which a chat will be considered as inactive; currently, must be on of 7, 14, 21, or 28"
}
]
},
{
"name":"businessConnectedBot",
"description":"Describes a bot connected to a business account",
"class":"BusinessConnectedBot",
"properties":[
{
"name":"bot_user_id",
"type":"int53",
"description":"User identifier of the bot"
},
{
"name":"recipients",
"type":"businessRecipients",
"description":"Private chats that will be accessible to the bot"
},
{
"name":"can_reply",
"type":"Bool",
"description":"True, if the bot can send messages to the private chats; false otherwise"
}
]
},
{
"name":"businessIntro",
"description":"Describes settings for a business account intro",
"class":"BusinessIntro",
"properties":[
{
"name":"title",
"type":"string",
"description":"Title text of the intro"
},
{
"name":"message",
"type":"string",
"description":"Message text of the intro"
},
{
"name":"sticker",
"type":"sticker",
"description":"Greeting sticker of the intro; may be null if none"
}
]
},
{
"name":"inputBusinessIntro",
"description":"Describes settings for a business account intro to set",
"class":"InputBusinessIntro",
"properties":[
{
"name":"title",
"type":"string",
"description":"Title text of the intro; 0-getOption(\"business_intro_title_length_max\") characters"
},
{
"name":"message",
"type":"string",
"description":"Message text of the intro; 0-getOption(\"business_intro_message_length_max\") characters"
},
{
"name":"sticker",
"type":"InputFile",
"description":"Greeting sticker of the intro; pass null if none. The sticker must belong to a sticker set and must not be a custom emoji"
}
]
},
{
"name":"businessOpeningHoursInterval",
"description":"Describes an interval of time when the business is open",
"class":"BusinessOpeningHoursInterval",
"properties":[
{
"name":"start_minute",
"type":"int32",
"description":"The first minute of the interval since start of the week; 0-7*24*60"
},
{
"name":"end_minute",
"type":"int32",
"description":"The first minute after the end of the interval since start of the week; 1-8*24*60"
}
]
},
{
"name":"businessOpeningHours",
"description":"Describes opening hours of a business",
"description":"Intervals of the time when the business is open"
}
]
},
{
"name":"businessInfo",
"description":"Contains information about a Telegram Business account",
"class":"BusinessInfo",
"properties":[
{
"name":"location",
"type":"businessLocation",
"description":"Location of the business; may be null if none"
},
{
"name":"opening_hours",
"type":"businessOpeningHours",
"description":"Opening hours of the business; may be null if none. The hours are guaranteed to be valid and has already been split by week days"
},
{
"name":"greeting_message_settings",
"type":"businessGreetingMessageSettings",
"description":"The greeting message; may be null if none or the Business account is not of the current user"
},
{
"name":"away_message_settings",
"type":"businessAwayMessageSettings",
"description":"The away message; may be null if none or the Business account is not of the current user"
},
{
"name":"intro",
"type":"businessIntro",
"description":"Information about intro of the business; may be null if none"
}
]
},
{
"name":"chatPhotoStickerTypeRegularOrMask",
"description":"Information about the sticker, which was used to create the chat photo",
"class":"ChatPhotoStickerType",
"properties":[
{
"name":"sticker_set_id",
"type":"int64",
"description":"Sticker set identifier"
},
{
"name":"sticker_id",
"type":"int64",
"description":"Identifier of the sticker in the set"
}
]
},
{
"name":"chatPhotoStickerTypeCustomEmoji",
"description":"Information about the custom emoji, which was used to create the chat photo",
"class":"ChatPhotoStickerType",
"properties":[
{
"name":"custom_emoji_id",
"type":"int64",
"description":"Identifier of the custom emoji"
}
]
},
{
"name":"chatPhotoSticker",
"description":"Information about the sticker, which was used to create the chat photo. The sticker is shown at the center of the photo and occupies at most 67% of it",
"class":"ChatPhotoSticker",
"properties":[
{
"name":"type",
"type":"ChatPhotoStickerType",
"description":"Type of the sticker"
},
{
"name":"background_fill",
"type":"BackgroundFill",
"description":"The fill to be used as background for the sticker; rotation angle in backgroundFillGradient isn't supported"
"description":"True, if the administrator can access the chat event log, get boost list, see hidden supergroup and channel members, report supergroup spam messages and ignore slow mode. Implied by any other privilege; applicable to supergroups and channels only"
"description":"True, if the administrator can add new administrators with a subset of their own privileges or demote administrators that were directly or indirectly promoted by them"
},
{
"name":"can_manage_video_chats",
"type":"Bool",
"description":"True, if the administrator can manage video chats"
"description":"True, if the administrator can create new chat stories, or edit and delete posted stories; applicable to supergroups and channels only"
},
{
"name":"can_edit_stories",
"type":"Bool",
"description":"True, if the administrator can edit stories posted by other users, pin stories and access story archive; applicable to supergroups and channels only"
},
{
"name":"can_delete_stories",
"type":"Bool",
"description":"True, if the administrator can delete stories posted by other users; applicable to supergroups and channels only"
"description":"Identifier of the store product associated with the option"
},
{
"name":"payment_link",
"type":"InternalLinkType",
"description":"An internal link to be opened for buying Telegram Premium to the user if store payment isn't possible; may be null if direct payment isn't available"
"description":"Contains information about a Telegram Premium gift code",
"class":"PremiumGiftCodeInfo",
"properties":[
{
"name":"creator_id",
"type":"MessageSender",
"description":"Identifier of a chat or a user that created the gift code; may be null if unknown. If null and the code is from messagePremiumGiftCode message, then creator_id from the message can be used"
},
{
"name":"creation_date",
"type":"int32",
"description":"Point in time (Unix timestamp) when the code was created"
},
{
"name":"is_from_giveaway",
"type":"Bool",
"description":"True, if the gift code was created for a giveaway"
},
{
"name":"giveaway_message_id",
"type":"int53",
"description":"Identifier of the corresponding giveaway message in the creator_id chat; can be 0 or an identifier of a deleted message"
},
{
"name":"month_count",
"type":"int32",
"description":"Number of months the Telegram Premium subscription will be active after code activation"
},
{
"name":"user_id",
"type":"int53",
"description":"Identifier of a user for which the code was created; 0 if none"
},
{
"name":"use_date",
"type":"int32",
"description":"Point in time (Unix timestamp) when the code was activated; 0 if none"
"description":"The user can't participate in the giveaway, because they phone number is from a disallowed country",
"class":"PremiumGiveawayParticipantStatus",
"properties":[
{
"name":"user_country_code",
"type":"string",
"description":"A two-letter ISO 3166-1 alpha-2 country code of the user's country"
}
]
},
{
"name":"premiumGiveawayInfoOngoing",
"description":"Describes an ongoing giveaway",
"class":"PremiumGiveawayInfo",
"properties":[
{
"name":"creation_date",
"type":"int32",
"description":"Point in time (Unix timestamp) when the giveaway was created"
},
{
"name":"status",
"type":"PremiumGiveawayParticipantStatus",
"description":"Status of the current user in the giveaway"
},
{
"name":"is_ended",
"type":"Bool",
"description":"True, if the giveaway has ended and results are being prepared"
}
]
},
{
"name":"premiumGiveawayInfoCompleted",
"description":"Describes a completed giveaway",
"class":"PremiumGiveawayInfo",
"properties":[
{
"name":"creation_date",
"type":"int32",
"description":"Point in time (Unix timestamp) when the giveaway was created"
},
{
"name":"actual_winners_selection_date",
"type":"int32",
"description":"Point in time (Unix timestamp) when the winners were selected. May be bigger than winners selection date specified in parameters of the giveaway"
},
{
"name":"was_refunded",
"type":"Bool",
"description":"True, if the giveaway was canceled and was fully refunded"
},
{
"name":"winner_count",
"type":"int32",
"description":"Number of winners in the giveaway"
},
{
"name":"activation_count",
"type":"int32",
"description":"Number of winners, which activated their gift codes"
},
{
"name":"gift_code",
"type":"string",
"description":"Telegram Premium gift code that was received by the current user; empty if the user isn't a winner in the giveaway"
}
]
},
{
"name":"accentColor",
"description":"Contains information about supported accent color for user/chat name, background of empty chat photo, replies to messages and link previews",
"class":"AccentColor",
"properties":[
{
"name":"id",
"type":"int32",
"description":"Accent color identifier"
},
{
"name":"built_in_accent_color_id",
"type":"int32",
"description":"Identifier of a built-in color to use in places, where only one color is needed; 0-6"
},
{
"name":"light_theme_colors",
"type":"vector\u003cint32\u003e",
"description":"The list of 1-3 colors in RGB format, describing the accent color, as expected to be shown in light themes"
},
{
"name":"dark_theme_colors",
"type":"vector\u003cint32\u003e",
"description":"The list of 1-3 colors in RGB format, describing the accent color, as expected to be shown in dark themes"
},
{
"name":"min_channel_chat_boost_level",
"type":"int32",
"description":"The minimum chat boost level required to use the color in a channel chat"
}
]
},
{
"name":"profileAccentColors",
"description":"Contains information about supported accent colors for user profile photo background in RGB format",
"class":"ProfileAccentColors",
"properties":[
{
"name":"palette_colors",
"type":"vector\u003cint32\u003e",
"description":"The list of 1-2 colors in RGB format, describing the colors, as expected to be shown in the color palette settings"
},
{
"name":"background_colors",
"type":"vector\u003cint32\u003e",
"description":"The list of 1-2 colors in RGB format, describing the colors, as expected to be used for the profile photo background"
},
{
"name":"story_colors",
"type":"vector\u003cint32\u003e",
"description":"The list of 2 colors in RGB format, describing the colors of the gradient to be used for the unread active story indicator around profile photo"
}
]
},
{
"name":"profileAccentColor",
"description":"Contains information about supported accent color for user profile photo background",
"class":"ProfileAccentColor",
"properties":[
{
"name":"id",
"type":"int32",
"description":"Profile accent color identifier"
},
{
"name":"light_theme_colors",
"type":"profileAccentColors",
"description":"Accent colors expected to be used in light themes"
},
{
"name":"dark_theme_colors",
"type":"profileAccentColors",
"description":"Accent colors expected to be used in dark themes"
},
{
"name":"min_supergroup_chat_boost_level",
"type":"int32",
"description":"The minimum chat boost level required to use the color in a supergroup chat"
},
{
"name":"min_channel_chat_boost_level",
"type":"int32",
"description":"The minimum chat boost level required to use the color in a channel chat"
"description":"List of active usernames; the first one must be shown as the primary username. The order of active usernames can be changed with reorderActiveUsernames, reorderBotActiveUsernames or reorderSupergroupActiveUsernames"
"description":"List of currently disabled usernames; the username can be activated with toggleUsernameIsActive, toggleBotUsernameIsActive, or toggleSupergroupUsernameIsActive"
"description":"The active username, which can be changed with setUsername or setSupergroupUsername. Information about other active usernames can be received using getCollectibleItemInfo"
"description":"Identifier of the accent color for name, and backgrounds of profile photo, reply header, and link preview. For Telegram Premium users only"
},
{
"name":"background_custom_emoji_id",
"type":"int64",
"description":"Identifier of a custom emoji to be shown on the reply header and link preview background; 0 if none. For Telegram Premium users only"
},
{
"name":"profile_accent_color_id",
"type":"int32",
"description":"Identifier of the accent color for the user's profile; -1 if none. For Telegram Premium users only"
},
{
"name":"profile_background_custom_emoji_id",
"type":"int64",
"description":"Identifier of a custom emoji to be shown on the background of the user's profile; 0 if none. For Telegram Premium users only"
"description":"True, if the user has non-expired stories available to the current user"
},
{
"name":"has_unread_active_stories",
"type":"Bool",
"description":"True, if the user has unread non-expired stories available to the current user"
},
{
"name":"restricts_new_chats",
"type":"Bool",
"description":"True, if the user may restrict new chats with non-contacts. Use canSendMessageToUser to check whether the current user can message the user or try to create a chat with them"
"description":"If false, the user is inaccessible, and the only information known about the user is inside this class. Identifier of the user can't be passed to any method"
"description":"User profile photo set by the current user for the contact; may be null. If null and user.profile_photo is null, then the photo is empty; otherwise, it is unknown. If non-null, then it is the same photo as in user.profile_photo and chat.photo. This photo isn't returned in the list of user photos"
"description":"User profile photo; may be null. If null and user.profile_photo is null, then the photo is empty; otherwise, it is unknown. If non-null and personal_photo is null, then it is the same photo as in user.profile_photo and chat.photo"
"description":"User profile photo visible if the main photo is hidden by privacy settings; may be null. If null and user.profile_photo is null, then the photo is empty; otherwise, it is unknown. If non-null and both photo and personal_photo are null, then it is the same photo as in user.profile_photo and chat.photo. This photo isn't returned in the list of user photos"
"description":"The user is a member of the chat and has some additional privileges. In basic groups, administrators can edit and delete messages sent by others, add new members, ban unprivileged members, and manage video chats. In supergroups and channels, there are more detailed options for administrator privileges",
"description":"The user is under certain restrictions in the chat. Not supported in basic groups and channels",
"class":"ChatMemberStatus",
"properties":[
{
"name":"is_member",
"type":"Bool",
"description":"True, if the user is a member of the chat"
},
{
"name":"restricted_until_date",
"type":"int32",
"description":"Point in time (Unix timestamp) when restrictions will be lifted from the user; 0 if never. If the user is restricted for more than 366 days or for less than 30 seconds from the current time, the user is considered to be restricted forever"
"description":"The user or the chat was banned (and hence is not a member of the chat). Implies the user can't return to the chat, view messages, or be used as a participant identifier to join a video chat of the chat",
"description":"Point in time (Unix timestamp) when the user will be unbanned; 0 if never. If the user is banned for more than 366 days or for less than 30 seconds from the current time, the user is considered to be banned forever. Always 0 in basic groups"
"description":"Identifier of the chat member. Currently, other chats can be only Left or Banned. Only supergroups and channels can have other chats as Left or Banned members and these chats must be supergroups or channels"
"description":"Point in time (Unix timestamp) when the link will expire; 0 if never"
},
{
"name":"member_limit",
"type":"int32",
"description":"The maximum number of members, which can join the chat using the link simultaneously; 0 if not limited. Always 0 if the link requires approval"
"description":"True, if the link is primary. Primary invite link can't have name, expiration date, or usage limit. There is exactly one primary invite link for each administrator with can_invite_users right at a given time"
"description":"True, if non-administrators and non-bots can be hidden in responses to getSupergroupMembers and searchChatMembers for non-administrators after upgrading the basic group to a supergroup"
},
{
"name":"can_toggle_aggressive_anti_spam",
"type":"Bool",
"description":"True, if aggressive anti-spam checks can be enabled or disabled in the supergroup after upgrading the basic group to a supergroup"
"description":"Primary invite link for this group; may be null. For chat administrators with can_invite_users right only. Updated only after the basic group is opened"
},
{
"name":"bot_commands",
"type":"vector\u003cbotCommands\u003e",
"description":"List of commands of bots in the group"
}
]
},
{
"name":"supergroup",
"description":"Represents a supergroup or channel with zero or more members (subscribers in the case of channels). From the point of view of the system, a channel is a special kind of a supergroup: only administrators can post and see the list of members, and posts from all administrators use the name and photo of the channel instead of individual names and profile photos. Unlike supergroups, channels can have an unlimited number of subscribers",
"description":"Point in time (Unix timestamp) when the current user joined, or the point in time when the supergroup or channel was created, in case the user is not a member"
"description":"Number of members in the supergroup or channel; 0 if unknown. Currently, it is guaranteed to be known only if the supergroup or channel was received through getChatSimilarChats, getChatsToSendStories, getCreatedPublicChats, getGroupsInCommon, getInactiveSupergroupChats, getSuitableDiscussionChats, getUserPrivacySettingRules, getVideoChatAvailableParticipants, searchChatsNearby, searchPublicChats, or in chatFolderInviteLinkInfo.missing_chat_ids, or for public chats in which where sent messages and posted stories from publicForwards, or for public chats in which where sent messages from getMessagePublicForwards response"
},
{
"name":"boost_level",
"type":"int32",
"description":"Approximate boost level for the chat"
"description":"True, if users need to join the supergroup before they can send messages. Always true for channels and non-discussion supergroups"
},
{
"name":"join_by_request",
"type":"Bool",
"description":"True, if all users directly joining the supergroup need to be approved by supergroup administrators. Always false for channels and supergroups without username, location, or a linked chat"
"description":"True, if the supergroup is a broadcast group, i.e. only administrators can send messages and there is no limit on the number of members"
"description":"Number of members in the supergroup or channel; 0 if unknown"
},
{
"name":"administrator_count",
"type":"int32",
"description":"Number of privileged users in the supergroup or channel; 0 if unknown"
},
{
"name":"restricted_count",
"type":"int32",
"description":"Number of restricted users in the supergroup; 0 if unknown"
},
{
"name":"banned_count",
"type":"int32",
"description":"Number of users banned from chat; 0 if unknown"
},
{
"name":"linked_chat_id",
"type":"int53",
"description":"Chat identifier of a discussion group for the channel, or a channel, for which the supergroup is the designated discussion group; 0 if none or unknown"
},
{
"name":"slow_mode_delay",
"type":"int32",
"description":"Delay between consecutive sent messages for non-administrator supergroup members, in seconds"
},
{
"name":"slow_mode_delay_expires_in",
"type":"double",
"description":"Time left before next message can be sent in the supergroup, in seconds. An updateSupergroupFullInfo update is not triggered when value of this field changes, but both new and old values are non-zero"
"description":"True, if members of the chat can be retrieved via getSupergroupMembers or searchChatMembers"
},
{
"name":"has_hidden_members",
"type":"Bool",
"description":"True, if non-administrators can receive only administrators and bots using getSupergroupMembers or searchChatMembers"
},
{
"name":"can_hide_members",
"type":"Bool",
"description":"True, if non-administrators and non-bots can be hidden in responses to getSupergroupMembers and searchChatMembers for non-administrators"
"description":"True, if new chat members will have access to old messages. In public, discussion, of forum groups and all channels, old messages are always available, so this option affects only private non-forum supergroups without a linked chat. The value of this field is only available to chat administrators"
},
{
"name":"has_aggressive_anti_spam_enabled",
"type":"Bool",
"description":"True, if aggressive anti-spam checks are enabled in the supergroup. The value of this field is only available to chat administrators"
"description":"Hash of the currently used key for comparison with the hash of the chat partner's key. This is a string of 36 little-endian bytes, which must be split into groups of 2 bits, each denoting a pixel of one of 4 colors FFFFFF, D5E6F3, 2D5775, and 2F99C9. The pixels must be used to make a 12x12 square image filled from left to right, top to bottom. Alternatively, the first 32 bytes of the hash can be converted to the hexadecimal format and printed as 32 2-digit hex numbers"
"description":"Secret chat layer; determines features supported by the chat partner's application. Nested text entities and underline and strikethrough entities are supported if the layer \u003e= 101, files bigger than 2000MB are supported if the layer \u003e= 143, spoiler and custom emoji text entities are supported if the layer \u003e= 144"
"description":"For messages forwarded to the chat with the current user (Saved Messages), to the Replies bot chat, or to the channel's discussion group, information about the source message from which the message was forwarded last time; may be null for other forwards or if unknown"
"description":"Identifiers of at most 3 recent repliers to the message; available in channels with a discussion supergroup. The users and chats are expected to be inaccessible: only their photo and name will be available"
"description":"Information about direct or indirect replies to the message; may be null. Currently, available only in channels with a discussion supergroup and discussion supergroups for messages, which are not replies itself"
"description":"Describes manually or automatically chosen quote from another message",
"class":"TextQuote",
"properties":[
{
"name":"text",
"type":"formattedText",
"description":"Text of the quote. Only Bold, Italic, Underline, Strikethrough, Spoiler, and CustomEmoji entities can be present in the text"
},
{
"name":"position",
"type":"int32",
"description":"Approximate quote position in the original message in UTF-16 code units as specified by the message sender"
},
{
"name":"is_manual",
"type":"Bool",
"description":"True, if the quote was manually chosen by the message sender"
}
]
},
{
"name":"inputTextQuote",
"description":"Describes manually chosen quote from another message",
"class":"InputTextQuote",
"properties":[
{
"name":"text",
"type":"formattedText",
"description":"Text of the quote; 0-getOption(\"message_reply_quote_length_max\") characters. Only Bold, Italic, Underline, Strikethrough, Spoiler, and CustomEmoji entities are allowed to be kept and must be kept in the quote"
},
{
"name":"position",
"type":"int32",
"description":"Quote position in the original message in UTF-16 code units"
}
]
},
{
"name":"messageReplyToMessage",
"description":"Describes a message replied by a given message",
"class":"MessageReplyTo",
"properties":[
{
"name":"chat_id",
"type":"int53",
"description":"The identifier of the chat to which the message belongs; may be 0 if the replied message is in unknown chat"
},
{
"name":"message_id",
"type":"int53",
"description":"The identifier of the message; may be 0 if the replied message is in unknown chat"
},
{
"name":"quote",
"type":"textQuote",
"description":"Chosen quote from the replied message; may be null if none"
},
{
"name":"origin",
"type":"MessageOrigin",
"description":"Information about origin of the message if the message was from another chat or topic; may be null for messages from the same chat"
},
{
"name":"origin_send_date",
"type":"int32",
"description":"Point in time (Unix timestamp) when the message was sent if the message was from another chat or topic; 0 for messages from the same chat"
},
{
"name":"content",
"type":"MessageContent",
"description":"Media content of the message if the message was from another chat or topic; may be null for messages from the same chat and messages without media. Can be only one of the following types: messageAnimation, messageAudio, messageContact, messageDice, messageDocument, messageGame, messageInvoice, messageLocation, messagePhoto, messagePoll, messagePremiumGiveaway, messagePremiumGiveawayWinners, messageSticker, messageStory, messageText (for link preview), messageVenue, messageVideo, messageVideoNote, or messageVoiceNote"
}
]
},
{
"name":"messageReplyToStory",
"description":"Describes a story replied by a given message",
"class":"MessageReplyTo",
"properties":[
{
"name":"story_sender_chat_id",
"type":"int53",
"description":"The identifier of the sender of the story"
},
{
"name":"story_id",
"type":"int32",
"description":"The identifier of the story"
}
]
},
{
"name":"inputMessageReplyToMessage",
"description":"Describes a message to be replied",
"class":"InputMessageReplyTo",
"properties":[
{
"name":"chat_id",
"type":"int53",
"description":"The identifier of the chat to which the message to be replied belongs; pass 0 if the message to be replied is in the same chat. Must always be 0 for replies in secret chats. A message can be replied in another chat or topic only if message.can_be_replied_in_another_chat"
},
{
"name":"message_id",
"type":"int53",
"description":"The identifier of the message to be replied in the same or the specified chat"
},
{
"name":"quote",
"type":"inputTextQuote",
"description":"Quote from the message to be replied; pass null if none. Must always be null for replies in secret chats"
}
]
},
{
"name":"inputMessageReplyToStory",
"description":"Describes a story to be replied",
"class":"InputMessageReplyTo",
"properties":[
{
"name":"story_sender_chat_id",
"type":"int53",
"description":"The identifier of the sender of the story. Currently, stories can be replied only in the sender's chat and channel stories can't be replied"
"description":"True, if the message can be edited. For live location and poll messages this fields shows whether editMessageLiveLocation or stopPoll can be used with this message by the application"
},
{
"name":"can_be_forwarded",
"type":"Bool",
"description":"True, if the message can be forwarded"
"description":"True, if media timestamp links can be generated for media timestamp entities in the message text, caption or web page description through getMessageLink"
},
{
"name":"can_report_reactions",
"type":"Bool",
"description":"True, if reactions on the message can be reported through reportMessageReactions"
"description":"If non-zero, the user identifier of the inline bot through which this message was sent"
},
{
"name":"sender_business_bot_user_id",
"type":"int53",
"description":"If non-zero, the user identifier of the business bot that sent this message"
},
{
"name":"sender_boost_count",
"type":"int32",
"description":"Number of times the sender of the message boosted the supergroup at the time the message was sent; 0 if none or unknown. For messages sent by the current user, supergroupFullInfo.my_boost_count must be used instead"