action telegram_post_send_photo { label: "post_sendPhoto" description: "Use this method to send photos. On success, the sent [Message](https://core.telegram.org/bots/api/#message) is returned." provider: telegram method: POST path: "/sendPhoto" encoding: json output: { type: "object" required: ["ok", "result"] properties: { ok: { type: "boolean" } result: { type: "object" description: "This object represents a message." required: ["chat", "date", "message_id"] properties: { animation: { type: "object" description: "This object represents an animation file (GIF or H.264/MPEG-4 AVC video without sound)." required: ["duration", "file_id", "file_unique_id", "height", "width"] properties: { duration: { type: "integer" description: "Duration of the video in seconds as defined by sender" } file_id: { type: "string" description: "Identifier for this file, which can be used to download or reuse the file" } file_name: { type: "string" description: "*Optional*. Original animation filename as defined by sender" } file_size: { type: "integer" description: "*Optional*. File size" } file_unique_id: { type: "string" description: "Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file." } height: { type: "integer" description: "Video height as defined by sender" } mime_type: { type: "string" description: "*Optional*. MIME type of the file as defined by sender" } thumb: { type: "object" description: "This object represents one size of a photo or a [file](https://core.telegram.org/bots/api/#document) / [sticker](https://core.telegram.org/bots/api/#sticker) thumbnail." required: ["file_id", "file_unique_id", "height", "width"] properties: { file_id: { type: "string" description: "Identifier for this file, which can be used to download or reuse the file" } file_size: { type: "integer" description: "*Optional*. File size" } file_unique_id: { type: "string" description: "Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file." } height: { type: "integer" description: "Photo height" } width: { type: "integer" description: "Photo width" } } } width: { type: "integer" description: "Video width as defined by sender" } } } audio: { type: "object" description: "This object represents an audio file to be treated as music by the Telegram clients." required: ["duration", "file_id", "file_unique_id"] properties: { duration: { type: "integer" description: "Duration of the audio in seconds as defined by sender" } file_id: { type: "string" description: "Identifier for this file, which can be used to download or reuse the file" } file_name: { type: "string" description: "*Optional*. Original filename as defined by sender" } file_size: { type: "integer" description: "*Optional*. File size" } file_unique_id: { type: "string" description: "Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file." } mime_type: { type: "string" description: "*Optional*. MIME type of the file as defined by sender" } performer: { type: "string" description: "*Optional*. Performer of the audio as defined by sender or by audio tags" } thumb: { type: "object" additionalProperties: true } title: { type: "string" description: "*Optional*. Title of the audio as defined by sender or by audio tags" } } } author_signature: { type: "string" description: "*Optional*. Signature of the post author for messages in channels, or the custom title of an anonymous group administrator" } caption: { type: "string" description: "*Optional*. Caption for the animation, audio, document, photo, video or voice, 0-1024 characters" } caption_entities: { type: "array" description: "*Optional*. For messages with a caption, special entities like usernames, URLs, bot commands, etc. that appear in the caption" items: { type: "object" description: "This object represents one special entity in a text message. For example, hashtags, usernames, URLs, etc." required: ["type", "offset", "length"] properties: { language: { type: "string" description: "*Optional*. For “pre” only, the programming language of the entity text" } length: { type: "integer" description: "Length of the entity in UTF-16 code units" } offset: { type: "integer" description: "Offset in UTF-16 code units to the start of the entity" } type: { type: "string" description: "Type of the entity. Can be “mention” (`@username`), “hashtag” (`#hashtag`), “cashtag” (`$USD`), “bot\\_command” (`/start@jobs_bot`), “url” (`https://telegram.org`), “email” (`do-not-reply@telegram.org`), “phone\\_number” (`+1-212-555-0123`), “bold” (**bold text**), “italic” (*italic text*), “underline” (underlined text), “strikethrough” (strikethrough text), “code” (monowidth string), “pre” (monowidth block), “text\\_link” (for clickable text URLs), “text\\_mention” (for users [without usernames](https://telegram.org/blog/edit#new-mentions))" enum: ["mention", "hashtag", "cashtag", "bot_command", "url", "email", "phone_number", "bold", "italic", "underline", "strikethrough", "code", "pre", "text_link", "text_mention"] } url: { type: "string" description: "*Optional*. For “text\\_link” only, url that will be opened after user taps on the text" } user: { type: "object" description: "This object represents a Telegram user or bot." required: ["id", "is_bot", "first_name"] properties: { can_join_groups: { type: "boolean" description: "*Optional*. True, if the bot can be invited to groups. Returned only in [getMe](https://core.telegram.org/bots/api/#getme)." } can_read_all_group_messages: { type: "boolean" description: "*Optional*. True, if [privacy mode](https://core.telegram.org/bots#privacy-mode) is disabled for the bot. Returned only in [getMe](https://core.telegram.org/bots/api/#getme)." } first_name: { type: "string" description: "User's or bot's first name" } id: { type: "integer" description: "Unique identifier for this user or bot" } is_bot: { type: "boolean" description: "True, if this user is a bot" } language_code: { type: "string" description: "*Optional*. [IETF language tag](https://en.wikipedia.org/wiki/IETF_language_tag) of the user's language" } last_name: { type: "string" description: "*Optional*. User's or bot's last name" } supports_inline_queries: { type: "boolean" description: "*Optional*. True, if the bot supports inline queries. Returned only in [getMe](https://core.telegram.org/bots/api/#getme)." } username: { type: "string" description: "*Optional*. User's or bot's username" } } } } } } channel_chat_created: { type: "boolean" description: "*Optional*. Service message: the channel has been created. This field can't be received in a message coming through updates, because bot can't be a member of a channel when it is created. It can only be found in reply\\_to\\_message if someone replies to a very first message in a channel." } chat: { type: "object" description: "This object represents a chat." required: ["id", "type"] properties: { bio: { type: "string" description: "*Optional*. Bio of the other party in a private chat. Returned only in [getChat](https://core.telegram.org/bots/api/#getchat)." } can_set_sticker_set: { type: "boolean" description: "*Optional*. True, if the bot can change the group sticker set. Returned only in [getChat](https://core.telegram.org/bots/api/#getchat)." } description: { type: "string" description: "*Optional*. Description, for groups, supergroups and channel chats. Returned only in [getChat](https://core.telegram.org/bots/api/#getchat)." } first_name: { type: "string" description: "*Optional*. First name of the other party in a private chat" } id: { type: "integer" description: "Unique identifier for this chat. This number may be greater than 32 bits and some programming languages may have difficulty/silent defects in interpreting it. But it is smaller than 52 bits, so a signed 64 bit integer or double-precision float type are safe for storing this identifier." } invite_link: { type: "string" description: "*Optional*. Chat invite link, for groups, supergroups and channel chats. Each administrator in a chat generates their own invite links, so the bot must first generate the link using [exportChatInviteLink](https://core.telegram.org/bots/api/#exportchatinvitelink). Returned only in [getChat](https://core.telegram.org/bots/api/#getchat)." } last_name: { type: "string" description: "*Optional*. Last name of the other party in a private chat" } linked_chat_id: { type: "integer" description: "*Optional*. Unique identifier for the linked chat, i.e. the discussion group identifier for a channel and vice versa; for supergroups and channel chats. This identifier may be greater than 32 bits and some programming languages may have difficulty/silent defects in interpreting it. But it is smaller than 52 bits, so a signed 64 bit integer or double-precision float type are safe for storing this identifier. Returned only in [getChat](https://core.telegram.org/bots/api/#getchat)." } location: { type: "object" description: "Represents a location to which a chat is connected." required: ["address", "location"] properties: { address: { type: "string" description: "Location address; 1-64 characters, as defined by the chat owner" } location: { type: "object" description: "This object represents a point on the map." required: ["latitude", "longitude"] properties: { heading: { type: "integer" description: "*Optional*. The direction in which user is moving, in degrees; 1-360. For active live locations only." } horizontal_accuracy: { type: "number" description: "*Optional*. The radius of uncertainty for the location, measured in meters; 0-1500" } latitude: { type: "number" description: "Latitude as defined by sender" } live_period: { type: "integer" description: "*Optional*. Time relative to the message sending date, during which the location can be updated, in seconds. For active live locations only." } longitude: { type: "number" description: "Longitude as defined by sender" } proximity_alert_radius: { type: "integer" description: "*Optional*. Maximum distance for proximity alerts about approaching another chat member, in meters. For sent live locations only." } } } } } permissions: { type: "object" description: "Describes actions that a non-administrator user is allowed to take in a chat." properties: { can_add_web_page_previews: { type: "boolean" description: "*Optional*. True, if the user is allowed to add web page previews to their messages, implies can\\_send\\_media\\_messages" } can_change_info: { type: "boolean" description: "*Optional*. True, if the user is allowed to change the chat title, photo and other settings. Ignored in public supergroups" } can_invite_users: { type: "boolean" description: "*Optional*. True, if the user is allowed to invite new users to the chat" } can_pin_messages: { type: "boolean" description: "*Optional*. True, if the user is allowed to pin messages. Ignored in public supergroups" } can_send_media_messages: { type: "boolean" description: "*Optional*. True, if the user is allowed to send audios, documents, photos, videos, video notes and voice notes, implies can\\_send\\_messages" } can_send_messages: { type: "boolean" description: "*Optional*. True, if the user is allowed to send text messages, contacts, locations and venues" } can_send_other_messages: { type: "boolean" description: "*Optional*. True, if the user is allowed to send animations, games, stickers and use inline bots, implies can\\_send\\_media\\_messages" } can_send_polls: { type: "boolean" description: "*Optional*. True, if the user is allowed to send polls, implies can\\_send\\_messages" } } } photo: { type: "object" description: "This object represents a chat photo." required: ["big_file_id", "big_file_unique_id", "small_file_id", "small_file_unique_id"] properties: { big_file_id: { type: "string" description: "File identifier of big (640x640) chat photo. This file\\_id can be used only for photo download and only for as long as the photo is not changed." } big_file_unique_id: { type: "string" description: "Unique file identifier of big (640x640) chat photo, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file." } small_file_id: { type: "string" description: "File identifier of small (160x160) chat photo. This file\\_id can be used only for photo download and only for as long as the photo is not changed." } small_file_unique_id: { type: "string" description: "Unique file identifier of small (160x160) chat photo, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file." } } } pinned_message: { type: "object" additionalProperties: true } slow_mode_delay: { type: "integer" description: "*Optional*. For supergroups, the minimum allowed delay between consecutive messages sent by each unpriviledged user. Returned only in [getChat](https://core.telegram.org/bots/api/#getchat)." } sticker_set_name: { type: "string" description: "*Optional*. For supergroups, name of group sticker set. Returned only in [getChat](https://core.telegram.org/bots/api/#getchat)." } title: { type: "string" description: "*Optional*. Title, for supergroups, channels and group chats" } type: { type: "string" description: "Type of chat, can be either “private”, “group”, “supergroup” or “channel”" enum: ["private", "group", "supergroup", "channel"] } username: { type: "string" description: "*Optional*. Username, for private chats, supergroups and channels if available" } } } connected_website: { type: "string" description: "*Optional*. The domain name of the website on which the user has logged in. [More about Telegram Login »](/widgets/login)" } contact: { type: "object" description: "This object represents a phone contact." required: ["first_name", "phone_number"] properties: { first_name: { type: "string" description: "Contact's first name" } last_name: { type: "string" description: "*Optional*. Contact's last name" } phone_number: { type: "string" description: "Contact's phone number" } user_id: { type: "integer" description: "*Optional*. Contact's user identifier in Telegram" } vcard: { type: "string" description: "*Optional*. Additional data about the contact in the form of a [vCard](https://en.wikipedia.org/wiki/VCard)" } } } date: { type: "integer" description: "Date the message was sent in Unix time" } delete_chat_photo: { type: "boolean" description: "*Optional*. Service message: the chat photo was deleted" } dice: { type: "object" description: "This object represents an animated emoji that displays a random value." required: ["emoji", "value"] properties: { emoji: { type: "string" description: "Emoji on which the dice throw animation is based" } value: { type: "integer" description: "Value of the dice, 1-6 for “\"🎲\"” and “\"🎯\"” base emoji, 1-5 for “\"🏀\"” and “\"⚽\"” base emoji, 1-64 for “\"🎰\"” base emoji" } } } document: { type: "object" description: "This object represents a general file (as opposed to [photos](https://core.telegram.org/bots/api/#photosize), [voice messages](https://core.telegram.org/bots/api/#voice) and [audio files](https://core.telegram.org/bots/api/#audio))." required: ["file_id", "file_unique_id"] properties: { file_id: { type: "string" description: "Identifier for this file, which can be used to download or reuse the file" } file_name: { type: "string" description: "*Optional*. Original filename as defined by sender" } file_size: { type: "integer" description: "*Optional*. File size" } file_unique_id: { type: "string" description: "Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file." } mime_type: { type: "string" description: "*Optional*. MIME type of the file as defined by sender" } thumb: { type: "object" additionalProperties: true } } } edit_date: { type: "integer" description: "*Optional*. Date the message was last edited in Unix time" } entities: { type: "array" description: "*Optional*. For text messages, special entities like usernames, URLs, bot commands, etc. that appear in the text" items: { type: "object" additionalProperties: true } } forward_date: { type: "integer" description: "*Optional*. For forwarded messages, date the original message was sent in Unix time" } forward_from: { type: "object" additionalProperties: true } forward_from_chat: { type: "object" additionalProperties: true } forward_from_message_id: { type: "integer" description: "*Optional*. For messages forwarded from channels, identifier of the original message in the channel" } forward_sender_name: { type: "string" description: "*Optional*. Sender's name for messages forwarded from users who disallow adding a link to their account in forwarded messages" } forward_signature: { type: "string" description: "*Optional*. For messages forwarded from channels, signature of the post author if present" } from: { type: "object" additionalProperties: true } game: { type: "object" description: "This object represents a game. Use BotFather to create and edit games, their short names will act as unique identifiers." required: ["description", "photo", "title"] properties: { animation: { type: "object" additionalProperties: true } description: { type: "string" description: "Description of the game" } photo: { type: "array" description: "Photo that will be displayed in the game message in chats." items: { type: "object" additionalProperties: true } } text: { type: "string" description: "*Optional*. Brief description of the game or high scores included in the game message. Can be automatically edited to include current high scores for the game when the bot calls [setGameScore](https://core.telegram.org/bots/api/#setgamescore), or manually edited using [editMessageText](https://core.telegram.org/bots/api/#editmessagetext). 0-4096 characters." } text_entities: { type: "array" description: "*Optional*. Special entities that appear in *text*, such as usernames, URLs, bot commands, etc." items: { type: "object" additionalProperties: true } } title: { type: "string" description: "Title of the game" } } } group_chat_created: { type: "boolean" description: "*Optional*. Service message: the group has been created" } invoice: { type: "object" description: "This object contains basic information about an invoice." required: ["currency", "description", "start_parameter", "title", "total_amount"] properties: { currency: { type: "string" description: "Three-letter ISO 4217 [currency](/bots/payments#supported-currencies) code" } description: { type: "string" description: "Product description" } start_parameter: { type: "string" description: "Unique bot deep-linking parameter that can be used to generate this invoice" } title: { type: "string" description: "Product name" } total_amount: { type: "integer" 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](https://core.telegram.org/bots/payments/currencies.json), it shows the number of digits past the decimal point for each currency (2 for the majority of currencies)." } } } left_chat_member: { type: "object" additionalProperties: true } location: { type: "object" additionalProperties: true } media_group_id: { type: "string" description: "*Optional*. The unique identifier of a media message group this message belongs to" } message_id: { type: "integer" description: "Unique message identifier inside this chat" } migrate_from_chat_id: { type: "integer" description: "*Optional*. The supergroup has been migrated from a group with the specified identifier. This number may be greater than 32 bits and some programming languages may have difficulty/silent defects in interpreting it. But it is smaller than 52 bits, so a signed 64 bit integer or double-precision float type are safe for storing this identifier." } migrate_to_chat_id: { type: "integer" description: "*Optional*. The group has been migrated to a supergroup with the specified identifier. This number may be greater than 32 bits and some programming languages may have difficulty/silent defects in interpreting it. But it is smaller than 52 bits, so a signed 64 bit integer or double-precision float type are safe for storing this identifier." } new_chat_members: { type: "array" description: "*Optional*. New members that were added to the group or supergroup and information about them (the bot itself may be one of these members)" items: { type: "object" additionalProperties: true } } new_chat_photo: { type: "array" description: "*Optional*. A chat photo was change to this value" items: { type: "object" additionalProperties: true } } new_chat_title: { type: "string" description: "*Optional*. A chat title was changed to this value" } passport_data: { type: "object" description: "Contains information about Telegram Passport data shared with the bot by the user." required: ["credentials", "data"] properties: { credentials: { type: "object" description: "Contains data required for decrypting and authenticating [EncryptedPassportElement](https://core.telegram.org/bots/api/#encryptedpassportelement). See the [Telegram Passport Documentation](https://core.telegram.org/passport#receiving-information) for a complete description of the data decryption and authentication processes." required: ["data", "hash", "secret"] properties: { data: { type: "string" description: "Base64-encoded encrypted JSON-serialized data with unique user's payload, data hashes and secrets required for [EncryptedPassportElement](https://core.telegram.org/bots/api/#encryptedpassportelement) decryption and authentication" } hash: { type: "string" description: "Base64-encoded data hash for data authentication" } secret: { type: "string" description: "Base64-encoded secret, encrypted with the bot's public RSA key, required for data decryption" } } } data: { type: "array" description: "Array with information about documents and other Telegram Passport elements that was shared with the bot" items: { type: "object" description: "Contains information about documents or other Telegram Passport elements shared with the bot by the user." required: ["type", "hash"] properties: { data: { type: "string" description: "*Optional*. Base64-encoded encrypted Telegram Passport element data provided by the user, available for “personal\\_details”, “passport”, “driver\\_license”, “identity\\_card”, “internal\\_passport” and “address” types. Can be decrypted and verified using the accompanying [EncryptedCredentials](https://core.telegram.org/bots/api/#encryptedcredentials)." } email: { type: "string" description: "*Optional*. User's verified email address, available only for “email” type" } files: { type: "array" description: "*Optional*. Array of encrypted files with documents provided by the user, available for “utility\\_bill”, “bank\\_statement”, “rental\\_agreement”, “passport\\_registration” and “temporary\\_registration” types. Files can be decrypted and verified using the accompanying [EncryptedCredentials](https://core.telegram.org/bots/api/#encryptedcredentials)." items: { type: "object" description: "This object represents a file uploaded to Telegram Passport. Currently all Telegram Passport files are in JPEG format when decrypted and don't exceed 10MB." required: ["file_id", "file_unique_id", "file_size", "file_date"] properties: { file_date: { type: "integer" description: "Unix time when the file was uploaded" } file_id: { type: "string" description: "Identifier for this file, which can be used to download or reuse the file" } file_size: { type: "integer" description: "File size" } file_unique_id: { type: "string" description: "Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file." } } } } front_side: { type: "object" additionalProperties: true } hash: { type: "string" description: "Base64-encoded element hash for using in [PassportElementErrorUnspecified](https://core.telegram.org/bots/api/#passportelementerrorunspecified)" } phone_number: { type: "string" description: "*Optional*. User's verified phone number, available only for “phone\\_number” type" } reverse_side: { type: "object" additionalProperties: true } selfie: { type: "object" additionalProperties: true } translation: { type: "array" description: "*Optional*. Array of encrypted files with translated versions of documents provided by the user. Available if requested for “passport”, “driver\\_license”, “identity\\_card”, “internal\\_passport”, “utility\\_bill”, “bank\\_statement”, “rental\\_agreement”, “passport\\_registration” and “temporary\\_registration” types. Files can be decrypted and verified using the accompanying [EncryptedCredentials](https://core.telegram.org/bots/api/#encryptedcredentials)." items: { type: "object" additionalProperties: true } } type: { type: "string" description: "Element type. One of “personal\\_details”, “passport”, “driver\\_license”, “identity\\_card”, “internal\\_passport”, “address”, “utility\\_bill”, “bank\\_statement”, “rental\\_agreement”, “passport\\_registration”, “temporary\\_registration”, “phone\\_number”, “email”." enum: ["personal_details", "passport", "driver_license", "identity_card", "internal_passport", "address", "utility_bill", "bank_statement", "rental_agreement", "passport_registration", "temporary_registration", "phone_number", "email"] } } } } } } photo: { type: "array" description: "*Optional*. Message is a photo, available sizes of the photo" items: { type: "object" additionalProperties: true } } pinned_message: { type: "object" additionalProperties: true } poll: { type: "object" description: "This object contains information about a poll." required: ["allows_multiple_answers", "id", "is_anonymous", "is_closed", "options", "question", "total_voter_count", "type"] properties: { allows_multiple_answers: { type: "boolean" description: "True, if the poll allows multiple answers" } close_date: { type: "integer" description: "*Optional*. Point in time (Unix timestamp) when the poll will be automatically closed" } correct_option_id: { type: "integer" description: "*Optional*. 0-based identifier of the correct answer option. Available only for polls in the quiz mode, which are closed, or was sent (not forwarded) by the bot or to the private chat with the bot." } explanation: { type: "string" description: "*Optional*. Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters" } explanation_entities: { type: "array" description: "*Optional*. Special entities like usernames, URLs, bot commands, etc. that appear in the *explanation*" items: { type: "object" additionalProperties: true } } id: { type: "string" description: "Unique poll identifier" } is_anonymous: { type: "boolean" description: "True, if the poll is anonymous" } is_closed: { type: "boolean" description: "True, if the poll is closed" } open_period: { type: "integer" description: "*Optional*. Amount of time in seconds the poll will be active after creation" } options: { type: "array" description: "List of poll options" items: { type: "object" description: "This object contains information about one answer option in a poll." required: ["text", "voter_count"] properties: { text: { type: "string" description: "Option text, 1-100 characters" } voter_count: { type: "integer" description: "Number of users that voted for this option" } } } } question: { type: "string" description: "Poll question, 1-255 characters" } total_voter_count: { type: "integer" description: "Total number of users that voted in the poll" } type: { type: "string" description: "Poll type, currently can be “regular” or “quiz”" } } } proximity_alert_triggered: { type: "object" description: "This object represents the content of a service message, sent whenever a user in the chat triggers a proximity alert set by another user." required: ["distance", "traveler", "watcher"] properties: { distance: { type: "integer" description: "The distance between the users" } traveler: { type: "object" additionalProperties: true } watcher: { type: "object" additionalProperties: true } } } reply_markup: { type: "object" description: "This object represents an [inline keyboard](https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating) that appears right next to the message it belongs to." required: ["inline_keyboard"] properties: { inline_keyboard: { type: "array" description: "Array of button rows, each represented by an Array of [InlineKeyboardButton](https://core.telegram.org/bots/api/#inlinekeyboardbutton) objects" items: { type: "array" items: { type: "object" description: "This object represents one button of an inline keyboard. You **must** use exactly one of the optional fields." required: ["text"] properties: { callback_data: { type: "string" description: "*Optional*. Data to be sent in a [callback query](https://core.telegram.org/bots/api/#callbackquery) to the bot when button is pressed, 1-64 bytes" } callback_game: { description: "A placeholder, currently holds no information. Use [BotFather](https://t.me/botfather) to set up your game." type: "object" } login_url: { type: "object" description: "This object represents a parameter of the inline keyboard button used to automatically authorize a user. Serves as a great replacement for the [Telegram Login Widget](https://core.telegram.org/widgets/login) when the user is coming from Telegram. All the user needs to do is tap/click a button and confirm that they want to log in:\n\nTelegram apps support these buttons as of [version 5.7](https://telegram.org/blog/privacy-discussions-web-bots#meet-seamless-web-bots).\n\nSample bot: [@discussbot](https://t.me/discussbot)" required: ["url"] properties: { bot_username: { type: "string" description: "*Optional*. Username of a bot, which will be used for user authorization. See [Setting up a bot](https://core.telegram.org/widgets/login#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](https://core.telegram.org/widgets/login#linking-your-domain-to-the-bot) for more details." } forward_text: { type: "string" description: "*Optional*. New text of the button in forwarded messages." } request_write_access: { type: "boolean" description: "*Optional*. Pass True to request the permission for your bot to send messages to the user." } url: { type: "string" 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](https://core.telegram.org/widgets/login#receiving-authorization-data). \n\n**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](https://core.telegram.org/widgets/login#checking-authorization)." } } } pay: { type: "boolean" description: "*Optional*. Specify True, to send a [Pay button](https://core.telegram.org/bots/api/#payments). \n\n**NOTE:** This type of button **must** always be the first button in the first row." } switch_inline_query: { type: "string" description: "*Optional*. If set, 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. Can be empty, in which case just the bot's username will be inserted. \n\n**Note:** This offers an easy way for users to start using your bot in [inline mode](/bots/inline) when they are currently in a private chat with it. Especially useful when combined with [*switch\\_pm…*](https://core.telegram.org/bots/api/#answerinlinequery) actions – in this case the user will be automatically returned to the chat they switched from, skipping the chat selection screen." } switch_inline_query_current_chat: { type: "string" description: "*Optional*. If set, pressing the button will insert the bot's username and the specified inline query in the current chat's input field. Can be empty, in which case only the bot's username will be inserted. \n\nThis offers a quick way for the user to open your bot in inline mode in the same chat – good for selecting something from multiple options." } text: { type: "string" description: "Label text on the button" } url: { type: "string" description: "*Optional*. HTTP or tg:// url to be opened when button is pressed" } } } } } } } reply_to_message: { type: "object" additionalProperties: true } sender_chat: { type: "object" additionalProperties: true } sticker: { type: "object" description: "This object represents a sticker." required: ["file_id", "file_unique_id", "height", "is_animated", "width"] properties: { emoji: { type: "string" description: "*Optional*. Emoji associated with the sticker" } file_id: { type: "string" description: "Identifier for this file, which can be used to download or reuse the file" } file_size: { type: "integer" description: "*Optional*. File size" } file_unique_id: { type: "string" description: "Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file." } height: { type: "integer" description: "Sticker height" } is_animated: { type: "boolean" description: "*True*, if the sticker is [animated](https://telegram.org/blog/animated-stickers)" } mask_position: { type: "object" description: "This object describes the position on faces where a mask should be placed by default." required: ["point", "scale", "x_shift", "y_shift"] properties: { point: { type: "string" description: "The part of the face relative to which the mask should be placed. One of “forehead”, “eyes”, “mouth”, or “chin”." enum: ["forehead", "eyes", "mouth", "chin"] } scale: { type: "number" description: "Mask scaling coefficient. For example, 2.0 means double size." } x_shift: { type: "number" description: "Shift by X-axis measured in widths of the mask scaled to the face size, from left to right. For example, choosing -1.0 will place mask just to the left of the default mask position." } y_shift: { type: "number" 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." } } } set_name: { type: "string" description: "*Optional*. Name of the sticker set to which the sticker belongs" } thumb: { type: "object" additionalProperties: true } width: { type: "integer" description: "Sticker width" } } } successful_payment: { type: "object" description: "This object contains basic information about a successful payment." required: ["currency", "invoice_payload", "provider_payment_charge_id", "telegram_payment_charge_id", "total_amount"] properties: { currency: { type: "string" description: "Three-letter ISO 4217 [currency](/bots/payments#supported-currencies) code" } invoice_payload: { type: "string" description: "Bot specified invoice payload" } order_info: { type: "object" description: "This object represents information about an order." properties: { email: { type: "string" description: "*Optional*. User email" } name: { type: "string" description: "*Optional*. User name" } phone_number: { type: "string" description: "*Optional*. User's phone number" } shipping_address: { type: "object" description: "This object represents a shipping address." required: ["city", "country_code", "post_code", "state", "street_line1", "street_line2"] properties: { city: { type: "string" description: "City" } country_code: { type: "string" description: "ISO 3166-1 alpha-2 country code" } post_code: { type: "string" description: "Address post code" } state: { type: "string" description: "State, if applicable" } street_line1: { type: "string" description: "First line for the address" } street_line2: { type: "string" description: "Second line for the address" } } } } } provider_payment_charge_id: { type: "string" description: "Provider payment identifier" } shipping_option_id: { type: "string" description: "*Optional*. Identifier of the shipping option chosen by the user" } telegram_payment_charge_id: { type: "string" description: "Telegram payment identifier" } total_amount: { type: "integer" 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](https://core.telegram.org/bots/payments/currencies.json), it shows the number of digits past the decimal point for each currency (2 for the majority of currencies)." } } } supergroup_chat_created: { type: "boolean" description: "*Optional*. Service message: the supergroup has been created. This field can't be received in a message coming through updates, because bot can't be a member of a supergroup when it is created. It can only be found in reply\\_to\\_message if someone replies to a very first message in a directly created supergroup." } text: { type: "string" description: "*Optional*. For text messages, the actual UTF-8 text of the message, 0-4096 characters" } venue: { type: "object" description: "This object represents a venue." required: ["address", "location", "title"] properties: { address: { type: "string" description: "Address of the venue" } foursquare_id: { type: "string" description: "*Optional*. Foursquare identifier of the venue" } foursquare_type: { type: "string" description: "*Optional*. Foursquare type of the venue. (For example, “arts\\_entertainment/default”, “arts\\_entertainment/aquarium” or “food/icecream”.)" } google_place_id: { type: "string" description: "*Optional*. Google Places identifier of the venue" } google_place_type: { type: "string" description: "*Optional*. Google Places type of the venue. (See [supported types](https://developers.google.com/places/web-service/supported_types).)" } location: { type: "object" additionalProperties: true } title: { type: "string" description: "Name of the venue" } } } via_bot: { type: "object" additionalProperties: true } video: { type: "object" description: "This object represents a video file." required: ["duration", "file_id", "file_unique_id", "height", "width"] properties: { duration: { type: "integer" description: "Duration of the video in seconds as defined by sender" } file_id: { type: "string" description: "Identifier for this file, which can be used to download or reuse the file" } file_name: { type: "string" description: "*Optional*. Original filename as defined by sender" } file_size: { type: "integer" description: "*Optional*. File size" } file_unique_id: { type: "string" description: "Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file." } height: { type: "integer" description: "Video height as defined by sender" } mime_type: { type: "string" description: "*Optional*. Mime type of a file as defined by sender" } thumb: { type: "object" additionalProperties: true } width: { type: "integer" description: "Video width as defined by sender" } } } video_note: { type: "object" description: "This object represents a [video message](https://telegram.org/blog/video-messages-and-telescope) (available in Telegram apps as of [v.4.0](https://telegram.org/blog/video-messages-and-telescope))." required: ["duration", "file_id", "file_unique_id", "length"] properties: { duration: { type: "integer" description: "Duration of the video in seconds as defined by sender" } file_id: { type: "string" description: "Identifier for this file, which can be used to download or reuse the file" } file_size: { type: "integer" description: "*Optional*. File size" } file_unique_id: { type: "string" description: "Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file." } length: { type: "integer" description: "Video width and height (diameter of the video message) as defined by sender" } thumb: { type: "object" additionalProperties: true } } } voice: { type: "object" description: "This object represents a voice note." required: ["duration", "file_id", "file_unique_id"] properties: { duration: { type: "integer" description: "Duration of the audio in seconds as defined by sender" } file_id: { type: "string" description: "Identifier for this file, which can be used to download or reuse the file" } file_size: { type: "integer" description: "*Optional*. File size" } file_unique_id: { type: "string" description: "Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file." } mime_type: { type: "string" description: "*Optional*. MIME type of the file as defined by sender" } } } } } } } }