<divid="dev_page_content"><p>We offer two kinds of APIs for developers. The <ahref="#bot-api"><strong>Bot API</strong></a> allows you to easily create programs that use Telegram messages for an interface. The <ahref="#tdlib-build-your-own-telegram"><strong>Telegram API and TDLib</strong></a> allow you to build your own customized Telegram clients. You are welcome to use both APIs free of charge.</p>
<divid="dev_page_content"><p>We offer two kinds of APIs for developers. The <ahref="#bot-api"><strong>Bot API</strong></a> allows you to easily create programs that use Telegram messages for an interface. The <ahref="#tdlib--build-your-own-telegram"><strong>Telegram API and TDLib</strong></a> allow you to build your own customized Telegram clients. You are welcome to use both APIs free of charge.</p>
<p>You can also add <ahref="/widgets"><strong>Telegram Widgets</strong></a> to your website.</p>
<p>Designers are welcome to create <ahref="/animated_stickers"><strong>Animated Stickers</strong></a> or <ahref="/themes"><strong>Custom Themes</strong></a> for Telegram.</p>
<divid="dev_page_content"><p>We offer two kinds of APIs for developers. The <ahref="#bot-api"><strong>Bot API</strong></a> allows you to easily create programs that use Telegram messages for an interface. The <ahref="#tdlib-build-your-own-telegram"><strong>Telegram API and TDLib</strong></a> allow you to build your own customized Telegram clients. You are welcome to use both APIs free of charge.</p>
<divid="dev_page_content"><p>We offer two kinds of APIs for developers. The <ahref="#bot-api"><strong>Bot API</strong></a> allows you to easily create programs that use Telegram messages for an interface. The <ahref="#tdlib--build-your-own-telegram"><strong>Telegram API and TDLib</strong></a> allow you to build your own customized Telegram clients. You are welcome to use both APIs free of charge.</p>
<p>You can also add <ahref="/widgets"><strong>Telegram Widgets</strong></a> to your website.</p>
<p>Designers are welcome to create <ahref="/animated_stickers"><strong>Animated Stickers</strong></a> or <ahref="/themes"><strong>Custom Themes</strong></a> for Telegram.</p>
<p>The Bot API is an HTTP-based interface created for developers keen on building bots for Telegram.
To learn how to create and set up a bot, please consult our <ahref="https://core.telegram.org/bots"><strong>Introduction to Bots »</strong></a></p>
<p>The Bot API is an HTTP-based interface created for developers keen on building bots for Telegram.<br>To learn how to create and set up a bot, please consult our <ahref="https://core.telegram.org/bots"><strong>Introduction to Bots »</strong></a></p>
</blockquote>
<p>You will find all changes to our <ahref="/bots/api"><strong>Bot API</strong></a> on this page.</p>
<p>Subscribe to <ahref="https://t.me/botnews">@BotNews</a> to be the first to know about the latest updates and join the discussion in <ahref="https://t.me/bottalk">@BotTalk</a></p>
<li>Added the <ahref="/bots/api#messageentity">MessageEntity</a> type "custom_emoji".</li>
<li>Added the field <em>custom_emoji_id</em> to the class <ahref="/bots/api#messageentity">MessageEntity</a> for "custom_emoji" entities.</li>
<li>Added the <ahref="/bots/api#messageentity">MessageEntity</a> type “custom_emoji”.</li>
<li>Added the field <em>custom_emoji_id</em> to the class <ahref="/bots/api#messageentity">MessageEntity</a> for “custom_emoji” entities.</li>
<li>Added the method <ahref="/bots/api#getcustomemojistickers">getCustomEmojiStickers</a>.</li>
<li>Added the fields <em>type</em> and <em>custom_emoji_id</em> to the class <ahref="/bots/api#sticker">Sticker</a>.</li>
<li>Added the field <em>sticker_type</em> to the class <ahref="/bots/api#stickerset">StickerSet</a>, describing the type of stickers in the set.</li>
@ -78,11 +77,11 @@ To learn how to create and set up a bot, please consult our <a href="https://cor
<ul>
<li>Added the field <em>has_restricted_voice_and_video_messages</em> to the class <ahref="/bots/api#chat">Chat</a> to support the <ahref="https://telegram.org/blog/custom-emoji#privacy-settings-for-voice-messages">new setting</a>.</li>
<li>Added support for photos and videos in the 'What can this bot do?' section (shown on the bot's start screen). Use <ahref="https://t.me/BotFather">BotFather</a> to set up media.</li>
<li>Added support for photos and videos in the 'What can this bot do?' section (shown on the bot's start screen). Use <ahref="https://t.me/BotFather">BotFather</a> to set up media.</li>
</ul>
<p><strong>Web App Improvements</strong></p>
<ul>
@ -95,7 +94,7 @@ To learn how to create and set up a bot, please consult our <a href="https://cor
<p><strong>Join Requests & Payments</strong></p>
<ul>
<li>Added the fields <em>join_to_send_messages</em> and <em>join_by_request</em> to the class <ahref="/bots/api#chat">Chat</a>.</li>
<li>Added the ability to process join requests which were created <ahref="https://telegram.org/blog/700-million-and-premium#join-requests-for-public-groups">without an invite link</a>. Bots will receive a "chat_join_request" update as usual.</li>
<li>Added the ability to process join requests which were created <ahref="https://telegram.org/blog/700-million-and-premium#join-requests-for-public-groups">without an invite link</a>. Bots will receive a “chat_join_request” update as usual.</li>
<li>Added the method <ahref="/bots/api#createinvoicelink">createInvoiceLink</a> to generate an HTTP link for an invoice.</li>
<li>Added support for <strong>Web Apps</strong>, see the <ahref="/bots/webapps">detailed manual here</a>. (<ahref="https://telegram.org/blog/notifications-bots">blog announcement</a>)</li>
<li>Added the class <ahref="/bots/api#webappinfo">WebAppInfo</a> and the fields <em>web_app</em> to the classes <ahref="/bots/api#keyboardbutton">KeyboardButton</a> and <ahref="/bots/api#inlinekeyboardbutton">InlineKeyboardButton</a>.</li>
<li>Added the class <ahref="/bots/api#sentwebappmessage">SentWebAppMessage</a> and the method <ahref="/bots/api#answerwebappquery">answerWebAppQuery</a> for sending an answer to a Web App query, which originated from an inline button of the 'web_app' type.</li>
<li>Added the class <ahref="/bots/api#sentwebappmessage">SentWebAppMessage</a> and the method <ahref="/bots/api#answerwebappquery">answerWebAppQuery</a> for sending an answer to a Web App query, which originated from an inline button of the 'web_app' type.</li>
<li>Added the class <ahref="/bots/api#webappdata">WebAppData</a> and the field <em>web_app_data</em> to the class <ahref="/bots/api#message">Message</a>.</li>
<li>Added the class <ahref="/bots/api#menubutton">MenuButton</a> and the methods <ahref="/bots/api#setchatmenubutton">setChatMenuButton</a> and <ahref="/bots/api#getchatmenubutton">getChatMenuButton</a> for managing the behavior of the bot's menu button in private chats.</li>
<li>Added the class <ahref="/bots/api#chatadministratorrights">ChatAdministratorRights</a> and the methods <ahref="/bots/api#setmydefaultadministratorrights">setMyDefaultAdministratorRights</a> and <ahref="/bots/api#getmydefaultadministratorrights">getMyDefaultAdministratorRights</a> for managing the bot's default administrator rights.</li>
<li>Added the class <ahref="/bots/api#menubutton">MenuButton</a> and the methods <ahref="/bots/api#setchatmenubutton">setChatMenuButton</a> and <ahref="/bots/api#getchatmenubutton">getChatMenuButton</a> for managing the behavior of the bot's menu button in private chats.</li>
<li>Added the class <ahref="/bots/api#chatadministratorrights">ChatAdministratorRights</a> and the methods <ahref="/bots/api#setmydefaultadministratorrights">setMyDefaultAdministratorRights</a> and <ahref="/bots/api#getmydefaultadministratorrights">getMyDefaultAdministratorRights</a> for managing the bot's default administrator rights.</li>
<li>Added support for t.me links that can be used to add the bot to groups and channels as an administrator.</li>
<li>Added the field <em>last_synchronization_error_date</em> to the class <ahref="/bots/api#webhookinfo">WebhookInfo</a>.</li>
<li>Renamed the field <em>can_manage_voice_chats</em> to <em>can_manage_video_chats</em> in the class <ahref="/bots/api#chatmemberadministrator">ChatMemberAdministrator</a>. The old field will remain temporarily available.</li>
@ -132,30 +131,29 @@ To learn how to create and set up a bot, please consult our <a href="https://cor
After the next update, only HTTPS links will be allowed in <em>login_url</em> inline keyboard buttons.</p>
<p><strong><imgclass="emoji"src="//telegram.org/img/emoji/40/E29AA0.png"width="20"height="20"alt="⚠️"/> WARNING! <imgclass="emoji"src="//telegram.org/img/emoji/40/E29AA0.png"width="20"height="20"alt="⚠️"/></strong><br>After the next update, only HTTPS links will be allowed in <em>login_url</em> inline keyboard buttons.</p>
<li>Added support for <ahref="https://telegram.org/blog/video-stickers-better-reactions">Video Stickers</a>.</li>
<li>Added the field <em>is_video</em> to the classes <ahref="/bots/api#sticker">Sticker</a> and <ahref="/bots/api#stickerset">StickerSet</a>.</li>
<li>Added the parameter <em>webm_sticker</em> to the methods <ahref="/bots/api#createnewstickerset">createNewStickerSet</a> and <ahref="/bots/api#addstickertoset">addStickerToSet</a>.</li>
<li>Improved support for <ahref="https://telegram.org/blog/protected-content-delete-by-date-and-more#protected-content-in-groups-and-channels">Protected Content</a>.</li>
<li>Added the parameter <em>protect_content</em> to the methods <ahref="/bots/api#sendmessage">sendMessage</a>, <ahref="/bots/api#sendphoto">sendPhoto</a>, <ahref="/bots/api#sendvideo">sendVideo</a>, <ahref="/bots/api#sendanimation">sendAnimation</a>, <ahref="/bots/api#sendaudio">sendAudio</a>, <ahref="/bots/api#senddocument">sendDocument</a>, <ahref="/bots/api#sendsticker">sendSticker</a>, <ahref="/bots/api#sendvideonote">sendVideoNote</a>, <ahref="/bots/api#sendvoice">sendVoice</a>, <ahref="/bots/api#sendlocation">sendLocation</a>, <ahref="/bots/api#sendvenue">sendVenue</a>, <ahref="/bots/api#sendcontact">sendContact</a>, <ahref="/bots/api#sendpoll">sendPoll</a>, <ahref="/bots/api#senddice">sendDice</a>, <ahref="/bots/api#sendinvoice">sendInvoice</a>, <ahref="/bots/api#sendgame">sendGame</a>, <ahref="/bots/api#sendmediagroup">sendMediaGroup</a>, <ahref="/bots/api#copymessage">copyMessage</a>, <ahref="/bots/api#forwardmessage">forwardMessage</a> to allow sending messages with protected content to any chat.</li>
<li>Added support for <ahref="https://telegram.org/blog/reactions-spoilers-translations#spoilers">spoiler entities</a>, which will work in Telegram versions released after December 30, 2021. Older clients will display <em>unsupported message</em>.</li>
<li>Added new <ahref="/bots/api#messageentity">MessageEntity</a> type "spoiler".</li>
<li>Added new <ahref="/bots/api#messageentity">MessageEntity</a> type “spoiler”.</li>
<li>Added the ability to specify spoiler entities using <ahref="/bots/api#html-style">HTML</a> and <ahref="/bots/api#markdownv2-style">MarkdownV2</a> formatting options.</li>
<li>Bots are now allowed to contact users who sent a join request to a chat where the bot is an administrator with the <em>can_invite_users</em> administrator right –even if the user never interacted with the bot before.</li>
<li>Bots are now allowed to contact users who sent a join request to a chat where the bot is an administrator with the <em>can_invite_users</em> administrator right –even if the user never interacted with the bot before.</li>
<li>Added support for mentioning users by their ID in inline keyboards. This will only work in Telegram versions released after December 7, 2021. Older clients will display <em>unsupported message</em>.</li>
<li>Added the methods <ahref="/bots/api#banchatsenderchat">banChatSenderChat</a> and <ahref="/bots/api#unbanchatsenderchat">unbanChatSenderChat</a> for banning and unbanning channel chats in supergroups and channels.</li>
<li>Added the field <em>has_private_forwards</em> to the class <ahref="/bots/api#chat">Chat</a> for private chats, which can be used to check the possibility of mentioning the user by their ID.</li>
@ -165,7 +163,7 @@ After the next update, only HTTPS links will be allowed in <em>login_url</em> in
<p><strong>Note:</strong> After this update it will become impossible to forward messages from some chats. Use the fields <em>has_protected_content</em> in the classes <ahref="/bots/api#message">Message</a> and <ahref="/bots/api#chat">Chat</a> to check this.</p>
<p><strong>Note:</strong> After this update users are able to send messages on behalf of channels they own. Bots are expected to use the field <em>sender_chat</em> in the class <ahref="/bots/api#message">Message</a> to correctly support such messages.</p>
<p><strong>Note:</strong> As previously announced, user identifiers can now have up to 52 significant bits and require a 64-bit integer or double-precision float type to be stored safely.</p>
<li>Added the the parameter <code>creates_join_request</code> to the methods <ahref="/bots/api#createchatinvitelink">createChatInviteLink</a> and <ahref="/bots/api#editchatinvitelink">editChatInviteLink</a> for managing chat invite links that create join requests (read more about this on our <ahref="https://telegram.org/blog/shared-media-scrolling-calendar-join-requests-and-more#join-requests-for-groups-and-channels">blog</a>).</li>
@ -177,11 +175,10 @@ After the next update, only HTTPS links will be allowed in <em>login_url</em> in
User identifiers will become bigger than <code>2^31 - 1</code> before the end of this year and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.</p>
<p><strong><imgclass="emoji"src="//telegram.org/img/emoji/40/E29AA0.png"width="20"height="20"alt="⚠️"/> WARNING! <imgclass="emoji"src="//telegram.org/img/emoji/40/E29AA0.png"width="20"height="20"alt="⚠️"/></strong><br>User identifiers will become bigger than <code>2^31 - 1</code> before the end of this year and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.</p>
@ -189,8 +186,8 @@ User identifiers will become bigger than <code>2^31 - 1</code> before the end of
<li>Added the class <ahref="/bots/api#botcommandscope">BotCommandScope</a>, describing the scope to which bot commands apply.</li>
<li>Added the parameters <code>scope</code> and <code>language_code</code> to the method <ahref="/bots/api#setmycommands">setMyCommands</a> to allow bots specify different commands for different chats and users.</li>
<li>Added the parameters <code>scope</code> and <code>language_code</code> to the method <ahref="/bots/api#getmycommands">getMyCommands</a>.</li>
<li>Added the method <ahref="/bots/api#deletemycommands">deleteMyCommands</a> to allow deletion of the bot's commands for the given scope and user language.</li>
<li>Improved visibility of bot commands in Telegram apps with the new 'Menu' button in chats with bots, read more on the <ahref="https://telegram.org/blog/animated-backgrounds#bot-menu">blog</a>.</li>
<li>Added the method <ahref="/bots/api#deletemycommands">deleteMyCommands</a> to allow deletion of the bot's commands for the given scope and user language.</li>
<li>Improved visibility of bot commands in Telegram apps with the new 'Menu' button in chats with bots, read more on the <ahref="https://telegram.org/blog/animated-backgrounds#bot-menu">blog</a>.</li>
</ul>
<p><strong>Custom Placeholders</strong></p>
<ul>
@ -205,39 +202,35 @@ User identifiers will become bigger than <code>2^31 - 1</code> before the end of
After one of the upcoming Bot API updates, user identifiers will become bigger than <code>2^31 - 1</code> and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.</p>
<p><strong><imgclass="emoji"src="//telegram.org/img/emoji/40/E29AA0.png"width="20"height="20"alt="⚠️"/> WARNING! <imgclass="emoji"src="//telegram.org/img/emoji/40/E29AA0.png"width="20"height="20"alt="⚠️"/></strong><br>After one of the upcoming Bot API updates, user identifiers will become bigger than <code>2^31 - 1</code> and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.</p>
<li>Support for <ahref="https://telegram.org/blog/payments-2-0-scheduled-voice-chats">Payments 2.0</a>, see <ahref="https://core.telegram.org/bots/payments">this manual</a> for more details about the <strong>Bot Payments API</strong>.</li>
<li>Added the type <ahref="/bots/api#inputinvoicemessagecontent">InputInvoiceMessageContent</a> to support sending invoices as inline query results.</li>
<li>Allowed sending invoices to group, supergroup and channel chats.</li>
<li>Added the fields <em>max_tip_amount</em> and <em>suggested_tip_amounts</em> to the method <ahref="/bots/api#sendinvoice">sendInvoice</a> to allow adding optional tips to the payment.</li>
<li>The parameter <em>start_parameter</em> of the method <ahref="/bots/api#sendinvoice">sendInvoice</a> became optional. If the parameter isn't specified, the invoice can be paid directly from forwarded messages.</li>
<li>The parameter <em>start_parameter</em> of the method <ahref="/bots/api#sendinvoice">sendInvoice</a> became optional. If the parameter isn't specified, the invoice can be paid directly from forwarded messages.</li>
<li>Added the field <em>chat_type</em> to the class <ahref="/bots/api#inlinequery">InlineQuery</a>, containing the type of the chat, from which the inline request was sent.</li>
<li>Added the type <ahref="/bots/api#voicechatscheduled">VoiceChatScheduled</a> and the field <em>voice_chat_scheduled</em> to the class <ahref="/bots/api#message">Message</a>.</li>
<li>Fixed an error in <ahref="/bots/api#sendchataction">sendChatAction</a> documentation to correctly mention "record_voice" and "upload_voice" instead of "record_audio" and "upload_audio" for related to voice note actions. Old action names will still work for backward compatibility.</li>
<li>Fixed an error in <ahref="/bots/api#sendchataction">sendChatAction</a> documentation to correctly mention “record_voice” and “upload_voice” instead of “record_audio” and “upload_audio” for related to voice note actions. Old action names will still work for backward compatibility.</li>
After the next Bot API update (Bot API 5.3) there will be a one-time change of the value of the field <code>file_unique_id</code> in objects of the type <ahref="/bots/api#photosize">PhotoSize</a> and of the fields <code>small_file_unique_id</code> and <code>big_file_unique_id</code> in objects of the type <ahref="/bots/api#chatphoto">ChatPhoto</a>.</p>
<p><strong><imgclass="emoji"src="//telegram.org/img/emoji/40/E29AA0.png"width="20"height="20"alt="⚠️"/> WARNING! <imgclass="emoji"src="//telegram.org/img/emoji/40/E29AA0.png"width="20"height="20"alt="⚠️"/></strong><br>After the next Bot API update (Bot API 5.3) there will be a one-time change of the value of the field <code>file_unique_id</code> in objects of the type <ahref="/bots/api#photosize">PhotoSize</a> and of the fields <code>small_file_unique_id</code> and <code>big_file_unique_id</code> in objects of the type <ahref="/bots/api#chatphoto">ChatPhoto</a>.</p>
Service messages about non-bot users joining the chat will be soon removed from large groups. We recommend using the "chat_member" update as a replacement.</p>
<p><strong><imgclass="emoji"src="//telegram.org/img/emoji/40/E29AA0.png"width="20"height="20"alt="⚠️"/> WARNING! <imgclass="emoji"src="//telegram.org/img/emoji/40/E29AA0.png"width="20"height="20"alt="⚠️"/></strong><br>Service messages about non-bot users joining the chat will be soon removed from large groups. We recommend using the “chat_member” update as a replacement.</p>
After one of the upcoming Bot API updates, user identifiers will become bigger than <code>2^31 - 1</code> and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.</p>
<p><strong><imgclass="emoji"src="//telegram.org/img/emoji/40/E29AA0.png"width="20"height="20"alt="⚠️"/> WARNING! <imgclass="emoji"src="//telegram.org/img/emoji/40/E29AA0.png"width="20"height="20"alt="⚠️"/></strong><br>After one of the upcoming Bot API updates, user identifiers will become bigger than <code>2^31 - 1</code> and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.</p>
After one of the upcoming Bot API updates, some user identifiers will become bigger than <code>2^31 - 1</code> and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.</p>
<p><strong><imgclass="emoji"src="//telegram.org/img/emoji/40/E29AA0.png"width="20"height="20"alt="⚠️"/> WARNING! <imgclass="emoji"src="//telegram.org/img/emoji/40/E29AA0.png"width="20"height="20"alt="⚠️"/></strong><br>After one of the upcoming Bot API updates, some user identifiers will become bigger than <code>2^31 - 1</code> and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.</p>
<p><strong>Run Your Own Bot API Server</strong></p>
<ul>
<li>Bot API source code is now available at <ahref="https://github.com/tdlib/telegram-bot-api">telegram-bot-api</a>. You can now run your <strong>own Bot API server</strong> locally, boosting your bots' performance.</li>
<li>Bot API source code is now available at <ahref="https://github.com/tdlib/telegram-bot-api">telegram-bot-api</a>. You can now run your <strong>own Bot API server</strong> locally, boosting your bots' performance.</li>
<li>Added the method <ahref="/bots/api#logout">logOut</a>, which can be used to log out from the cloud Bot API server before launching your bot locally. You <strong>must</strong> log out the bot before running it locally, otherwise there is no guarantee that the bot will receive all updates.</li>
<li>Added the method <ahref="/bots/api#close">close</a>, which can be used to close the bot instance before moving it from one local server to another.</li>
</ul>
@ -290,7 +282,7 @@ After one of the upcoming Bot API updates, some user identifiers will become big
</ul>
<p><strong>Working with Groups</strong></p>
<ul>
<li>The <ahref="/bots/api#getchat">getChat</a> request now returns the user's bio for private chats if available.</li>
<li>The <ahref="/bots/api#getchat">getChat</a> request now returns the user's bio for private chats if available.</li>
<li>The <ahref="/bots/api#getchat">getChat</a> request now returns the identifier of the linked chat for supergroups and channels, i.e. the discussion group identifier for a channel and vice versa.</li>
<li>The <ahref="/bots/api#getchat">getChat</a> request now returns the location to which the supergroup is connected (see <ahref="https://telegram.org/blog/contacts-local-groups">Local Groups</a>). Added the class <ahref="/bots/api#chatlocation">ChatLocation</a> to represent the location.</li>
<li>Added the parameter <em>only_if_banned</em> to the method <ahref="/bots/api#unbanchatmember">unbanChatMember</a> to allow safe unban.</li>
@ -313,7 +305,7 @@ After one of the upcoming Bot API updates, some user identifiers will become big
<p><strong>Live Locations</strong></p>
<ul>
<li>Added the field <em>live_period</em> to the class <ahref="/bots/api#location">Location</a>, representing a maximum period for which the live location can be updated.</li>
<li>Added support for live location [heading](<ahref="https://en.wikipedia.org/wiki/Heading_(navigation&#41">https://en.wikipedia.org/wiki/Heading_(navigation&#41</a>;): added the field <em>heading</em> to the classes <ahref="/bots/api#location">Location</a>, <ahref="/bots/api#inlinequeryresultlocation">InlineQueryResultLocation</a>, <ahref="/bots/api#inputlocationmessagecontent">InputLocationMessageContent</a> and the parameter <em>heading</em> to the methods <ahref="/bots/api#sendlocation">sendLocation</a> and <ahref="/bots/api#editmessagelivelocation">editMessageLiveLocation</a>.</li>
<li>Added support for live location <ahref="https://en.wikipedia.org/wiki/Heading_(navigation)">heading</a>: added the field <em>heading</em> to the classes <ahref="/bots/api#location">Location</a>, <ahref="/bots/api#inlinequeryresultlocation">InlineQueryResultLocation</a>, <ahref="/bots/api#inputlocationmessagecontent">InputLocationMessageContent</a> and the parameter <em>heading</em> to the methods <ahref="/bots/api#sendlocation">sendLocation</a> and <ahref="/bots/api#editmessagelivelocation">editMessageLiveLocation</a>.</li>
<li>Added support for proximity alerts in live locations: added the field <em>proximity_alert_radius</em> to the classes <ahref="/bots/api#location">Location</a>, <ahref="/bots/api#inlinequeryresultlocation">InlineQueryResultLocation</a>, <ahref="/bots/api#inputlocationmessagecontent">InputLocationMessageContent</a> and the parameter <em>proximity_alert_radius</em> to the methods <ahref="/bots/api#sendlocation">sendLocation</a> and <ahref="/bots/api#editmessagelivelocation">editMessageLiveLocation</a>.</li>
<li>Added the type <ahref="/bots/api#proximityalerttriggered">ProximityAlertTriggered</a> and the field <em>proximity_alert_triggered</em> to the class <ahref="/bots/api#message">Message</a>.</li>
<li>Added possibility to specify the horizontal accuracy of a location. Added the field <em>horizontal_accuracy</em> to the classes <ahref="/bots/api#location">Location</a>, <ahref="/bots/api#inlinequeryresultlocation">InlineQueryResultLocation</a>, <ahref="/bots/api#inputlocationmessagecontent">InputLocationMessageContent</a> and the parameter <em>horizontal_accuracy</em> to the methods <ahref="/bots/api#sendlocation">sendLocation</a> and <ahref="/bots/api#editmessagelivelocation">editMessageLiveLocation</a>.</li>
@ -337,14 +329,14 @@ After one of the upcoming Bot API updates, some user identifiers will become big
<ul>
<li>Supported the new <strong>football</strong> and <strong>slot machine</strong> animations for the random <ahref="/bots/api#dice">dice</a>. Choose between different animations (dice, darts, basketball, football, slot machine) by specifying the <em>emoji</em> parameter in the method <ahref="/bots/api#senddice">sendDice</a>.</li>
<li>Added the new field <em>via_bot</em> to the <ahref="/bots/api#message">Message</a> object. You can now know which bot was used to send a message.</li>
<li>Supported video thumbnails for inline <ahref="/bots/api#inlinequeryresultgif">GIF</a> and <ahref="/bots/api#inlinequeryresultmpeg4gif">MPEG4</a> animations.</li>
<li>Supported the new basketball animation for the random <ahref="/bots/api#dice">dice</a>. Choose between different animations (dice, darts, basketball) by specifying the <em>emoji</em> parameter in the method <ahref="/bots/api#senddice">sendDice</a>.</li>
<li>Supported explanations for <ahref="https://telegram.org/blog/400-million#better-quizzes">Quizzes 2.0</a>. Add explanations by specifying the parameters <em>explanation</em> and <em>explanation_parse_mode</em> in the method <ahref="/bots/api#sendpoll">sendPoll</a>.</li>
@ -354,19 +346,19 @@ After one of the upcoming Bot API updates, some user identifiers will become big
<li>Supported the new <ahref="https://telegram.org/blog/400-million#bullseye">darts</a> animation for the dice mini-game. Choose between the default dice animation and darts animation by specifying the parameter <em>emoji</em> in the method <ahref="/bots/api#senddice">sendDice</a>.</li>
<li>Added the field <em>emoji</em> to the <ahref="/bots/api#dice">Dice</a> object.</li>
<li>Added the method <ahref="/bots/api#senddice">sendDice</a> for sending a dice message, which will have a random value from 1 to 6. (Yes, we're aware of the <em>"proper"</em> singular of <em>die</em>. But it's awkward, and we decided to help it change. One dice at a time!)</li>
<li>Added the method <ahref="/bots/api#senddice">sendDice</a> for sending a dice message, which will have a random value from 1 to 6. (Yes, we're aware of the <em>“proper”</em> singular of <em>die</em>. But it's awkward, and we decided to help it change. One dice at a time!)</li>
<li>Added the field <ahref="/bots/api#dice">dice</a> to the <ahref="/bots/api#message">Message</a> object.</li>
<li>Added the method <ahref="/bots/api#getmycommands">getMyCommands</a> for getting the current list of the bot's commands.</li>
<li>Added the method <ahref="/bots/api#setmycommands">setMyCommands</a> for changing the list of the bot's commands through the Bot API instead of <ahref="https://t.me/botfather">@BotFather</a>.</li>
<li>Added the method <ahref="/bots/api#getmycommands">getMyCommands</a> for getting the current list of the bot's commands.</li>
<li>Added the method <ahref="/bots/api#setmycommands">setMyCommands</a> for changing the list of the bot's commands through the Bot API instead of <ahref="https://t.me/botfather">@BotFather</a>.</li>
<li>Added the ability to create animated sticker sets by specifying the parameter <em>tgs_sticker</em> instead of <em>png_sticker</em> in the method <ahref="/bots/api#createnewstickerset">createNewStickerSet</a>.</li>
<li>Added the ability to add animated stickers to sets created by the bot by specifying the parameter <em>tgs_sticker</em> instead of <em>png_sticker</em> in the method <ahref="/bots/api#addstickertoset">addStickerToSet</a>.</li>
<li>Added the field <em>thumb</em> to the <ahref="/bots/api#stickerset">StickerSet</a> object.</li>
<li>Added the ability to change thumbnails of sticker sets created by the bot using the method <ahref="/bots/api#setstickersetthumb">setStickerSetThumb</a>.</li>
@ -378,19 +370,19 @@ After one of the upcoming Bot API updates, some user identifiers will become big
<li>Added more information about the bot in response to the <ahref="/bots/api#getme">getMe</a> request: added the fields <em>can_join_groups</em>, <em>can_read_all_group_messages</em> and <em>supports_inline_queries</em> to the <ahref="/bots/api#user">User</a> object.</li>
<li>Added the optional field <em>language</em> to the <ahref="/bots/api#messageentity">MessageEntity</a> object.</li>
<li>Added support for two new <ahref="/bots/api#messageentity">MessageEntity</a> types, <em>underline</em> and <em>strikethrough</em>.</li>
<li>Added support for nested <ahref="/bots/api#messageentity">MessageEntity</a> objects. Entities can now contain other entities. If two entities have common characters then one of them is fully contained inside the other.</li>
<li>Added support for nested entities and the new tags <code><u>/<ins></code> (for underlined text) and <code><s>/<strike>/<del></code> (for strikethrough text) in parse mode HTML.</li>
<li>Added a new parse mode, <ahref="/bots/api#markdownv2-style">MarkdownV2</a>, which supports nested entities and two new entities <code>__</code> (for underlined text) and <code>~</code> (for strikethrough text). Parse mode <ahref="/bots/api#markdown-style">Markdown</a> remains unchanged for backward compatibility.</li>
<li>Added the field <em>file_unique_id</em> to the objects <ahref="/bots/api#animation">Animation</a>, <ahref="/bots/api#audio">Audio</a>, <ahref="/bots/api#document">Document</a>, <ahref="/bots/api#passportfile">PassportFile</a>, <ahref="/bots/api#photosize">PhotoSize</a>, <ahref="/bots/api#sticker">Sticker</a>, <ahref="/bots/api#video">Video</a>, <ahref="/bots/api#videonote">VideoNote</a>, <ahref="/bots/api#voice">Voice</a>, <ahref="/bots/api#file">File</a> and the fields <em>small_file_unique_id</em> and <em>big_file_unique_id</em> to the object <ahref="/bots/api#chatphoto">ChatPhoto</a>. The new fields contain a unique file identifier, which is supposed to be the same over time and for different bots, but can't be used to download or reuse the file.</li>
<li>Added the field <em>file_unique_id</em> to the objects <ahref="/bots/api#animation">Animation</a>, <ahref="/bots/api#audio">Audio</a>, <ahref="/bots/api#document">Document</a>, <ahref="/bots/api#passportfile">PassportFile</a>, <ahref="/bots/api#photosize">PhotoSize</a>, <ahref="/bots/api#sticker">Sticker</a>, <ahref="/bots/api#video">Video</a>, <ahref="/bots/api#videonote">VideoNote</a>, <ahref="/bots/api#voice">Voice</a>, <ahref="/bots/api#file">File</a> and the fields <em>small_file_unique_id</em> and <em>big_file_unique_id</em> to the object <ahref="/bots/api#chatphoto">ChatPhoto</a>. The new fields contain a unique file identifier, which is supposed to be the same over time and for different bots, but can't be used to download or reuse the file.</li>
<li>Added the field <em>custom_title</em> to the <ahref="/bots/api#chatmember">ChatMember</a> object.</li>
<li>Added the new method <ahref="/bots/api#setchatadministratorcustomtitle">setChatAdministratorCustomTitle</a> to manage the custom titles of administrators promoted by the bot.</li>
<li>Added the field <em>slow_mode_delay</em> to the <ahref="/bots/api#chat">Chat</a> object.</li>
<li>Added support for <ahref="https://telegram.org/blog/animated-stickers"><strong>animated stickers</strong></a>. New field <em>is_animated</em> in <ahref="/bots/api#sticker">Sticker</a> and <ahref="/bots/api#stickerset">StickerSet</a> objects, animated stickers can now be used in <ahref="/bots/api#sendsticker">sendSticker</a> and <ahref="/bots/api#inlinequeryresultcachedsticker">InlineQueryResultCachedSticker</a>.</li>
@ -398,48 +390,49 @@ After one of the upcoming Bot API updates, some user identifiers will become big
<li>The field <em>all_members_are_administrators</em> has been removed from the documentation for the <ahref="/bots/api#chat">Chat</a> object. The field is still returned in the object for backward compatibility, but new bots should use the <em>permissions</em> field instead.</li>
<li>Added support for more permissions for group and supergroup members: added the new field <em>can_send_polls</em> to <ahref="/bots/api#chatmember">ChatMember</a> object, added <em>can_change_info</em>, <em>can_invite_users</em>, <em>can_pin_messages</em> in <ahref="/bots/api#chatmember">ChatMember</a> object for restricted users (previously available only for administrators).</li>
<li>The method <ahref="/bots/api#restrictchatmember">restrictChatMember</a> now takes the new user permissions in a single argument of the type <ahref="/bots/api#chatpermissions">ChatPermissions</a>. The old way of passing parameters will keep working for a while for backward compatibility.</li>
<li>Added <em>description</em> support for basic groups (previously available in supergroups and channel chats). You can pass a group's chat_id to <ahref="/bots/api#setchatdescription">setChatDescription</a> and receive the group's description in the <ahref="/bots/api#chat">Chat</a> object in the response to <ahref="/bots/api#getchat">getChat</a> method.</li>
<li>Added <em>invite_link</em> support for basic groups (previously available in supergroups and channel chats). You can pass a group's chat_id to <ahref="/bots/api#exportchatinvitelink">exportChatInviteLink</a> and receive the group's invite link in the <ahref="/bots/api#chat">Chat</a> object in the response to <ahref="/bots/api#getchat">getChat</a> method.</li>
<li>Added <em>description</em> support for basic groups (previously available in supergroups and channel chats). You can pass a group's chat_id to <ahref="/bots/api#setchatdescription">setChatDescription</a> and receive the group's description in the <ahref="/bots/api#chat">Chat</a> object in the response to <ahref="/bots/api#getchat">getChat</a> method.</li>
<li>Added <em>invite_link</em> support for basic groups (previously available in supergroups and channel chats). You can pass a group's chat_id to <ahref="/bots/api#exportchatinvitelink">exportChatInviteLink</a> and receive the group's invite link in the <ahref="/bots/api#chat">Chat</a> object in the response to <ahref="/bots/api#getchat">getChat</a> method.</li>
<li>File identifiers from the <ahref="/bots/api#chatphoto">ChatPhoto</a> object are now invalidated and can no longer be used whenever the photo is changed.</li>
<li>All <strong>webhook requests</strong> from the Bot API are now coming from the subnets <code>149.154.160.0/20</code> and <code>91.108.4.0/22</code>. Most users won't need to do anything to continue receiving webhooks. If you control inbound access with a firewall, you may need to update your configuration. You can always find the list of actual IP addresses of servers used to send webhooks there: <ahref="/bots/webhooks">https://core.telegram.org/bots/webhooks</a>.</li>
<li>All <strong>webhook requests</strong> from the Bot API are now coming from the subnets <code>149.154.160.0/20</code> and <code>91.108.4.0/22</code>. Most users won't need to do anything to continue receiving webhooks. If you control inbound access with a firewall, you may need to update your configuration. You can always find the list of actual IP addresses of servers used to send webhooks there: <ahref="/bots/webhooks"><ahref="https://core.telegram.org/bots/webhooks">https://core.telegram.org/bots/webhooks</a></a>.</li>
<li>As of the <strong>next Bot API</strong> update (<strong>version 4.5</strong>), nested <ahref="/bots/api#messageentity">MessageEntity</a> objects will be allowed in message texts and captions. Please make sure that your code can correctly handle such entities.</li>
<li>Added support for <ahref="https://telegram.org/blog/privacy-discussions-web-bots#meet-seamless-web-bots"><strong>Seamless Telegram Login</strong></a> on external websites.</li>
<li>Added the new object <ahref="/bots/api#loginurl">LoginUrl</a> and the new field <em>login_url</em> to the <ahref="/bots/api#inlinekeyboardbutton">InlineKeyboardButton</a> object which allows to <strong>automatically authorize</strong> users before they go to a URL specified by the bot. Users will be asked to confirm authorization in their Telegram app (needs version 5.7 or higher) when they press the button:</li>
<li>Added the field <code>reply_markup</code> to the <ahref="/bots/api#message">Message</a> object, containing the inline keyboard attached to the message.</li>
<li>If a message with an inline keyboard is forwarded, the forwarded message will now have an inline keyboard if the keyboard contained only <em>url</em> and <em>login_url</em> buttons or if the message was sent via a bot and the keyboard contained only <em>url</em>, <em>login_url</em>, <em>switch_inline_query</em> or <em>switch_inline_query_current_chat</em> buttons. In the latter case, <em>switch_inline_query_current_chat</em> buttons are replaced with <em>switch_inline_query</em> buttons.</li>
<li>Bots now receive the <em>edited_message</em><ahref="/bots/api#update">Update</a> even if only <em>Message.reply_markup</em> has changed.</li>
<li>Bots that have the <em>can_edit_messages</em> right in a channel can now use the method <ahref="/bots/api#editmessagereplymarkup">editMessageReplyMarkup</a> for messages written by other administrators forever without the 48 hours limit.</li>
<li>Don't forget that starting in <strong>July 2019</strong>, <strong>webhook requests</strong> from Bot API will be coming from the subnets <code>149.154.160.0/20</code> and <code>91.108.4.0/22</code>. Most users won't need to do anything to continue receiving webhooks. If you control inbound access with a firewall, you may need to update your configuration. You can always find the list of actual IP addresses of servers used to send webhooks there: <ahref="/bots/webhooks">https://core.telegram.org/bots/webhooks</a>.</li>
<li>Don't forget that starting in <strong>July 2019</strong>, <strong>webhook requests</strong> from Bot API will be coming from the subnets <code>149.154.160.0/20</code> and <code>91.108.4.0/22</code>. Most users won't need to do anything to continue receiving webhooks. If you control inbound access with a firewall, you may need to update your configuration. You can always find the list of actual IP addresses of servers used to send webhooks there: <ahref="/bots/webhooks"><ahref="https://core.telegram.org/bots/webhooks">https://core.telegram.org/bots/webhooks</a></a>.</li>
<li>Added support for native polls: added the object <ahref="/bots/api#poll">Poll</a>, the methods <ahref="/bots/api#sendpoll">sendPoll</a> and <ahref="/bots/api#stoppoll">stopPoll</a> and the field <em>poll</em> in the <ahref="/bots/api#message">Message</a> and <ahref="/bots/api#update">Update</a> objects.</li>
<li>The method <ahref="/bots/api#deletemessage">deleteMessage</a> can now be used to delete messages sent by a user to the bot in private chats within 48 hours.</li>
<li>Added support for pinned messages in basic groups in addition to supergroups and channel chats: you can pass group's chat_id to <ahref="/bots/api#pinchatmessage">pinChatMessage</a> and <ahref="/bots/api#unpinchatmessage">unpinChatMessage</a>, and receive the pinned group message in <ahref="/bots/api#chat">Chat</a> object.</li>
<li>Added support for pinned messages in basic groups in addition to supergroups and channel chats: you can pass group's chat_id to <ahref="/bots/api#pinchatmessage">pinChatMessage</a> and <ahref="/bots/api#unpinchatmessage">unpinChatMessage</a>, and receive the pinned group message in <ahref="/bots/api#chat">Chat</a> object.</li>
<li>Added the field <em>is_member</em> to the <ahref="/bots/api#chatmember">ChatMember</a> object, which can be used to find whether a restricted user is a member of the chat.</li>
<li>Added the field <em>forward_sender_name</em> to the <ahref="/bots/api#message">Message</a> object, containing name of the sender who has opted to hide their account.</li>
<li>Starting in July 2019, webhook requests from Bot API will be coming from the subnets <code>149.154.160.0/20</code> and <code>91.108.4.0/22</code>. Most users won't need to do anything to continue receiving webhooks. If you control inbound access with a firewall, you may need to update your configuration. You can always find the list of actual IP addresses of servers used to send webhooks there: <ahref="/bots/webhooks">https://core.telegram.org/bots/webhooks</a>.</li>
<li>Starting in July 2019, webhook requests from Bot API will be coming from the subnets <code>149.154.160.0/20</code> and <code>91.108.4.0/22</code>. Most users won't need to do anything to continue receiving webhooks. If you control inbound access with a firewall, you may need to update your configuration. You can always find the list of actual IP addresses of servers used to send webhooks there: <ahref="/bots/webhooks"><ahref="https://core.telegram.org/bots/webhooks">https://core.telegram.org/bots/webhooks</a></a>.</li>
<li>Document thumbnails now should be inscribed in a 320x320 square instead of 90x90.</li>
<li>Added support for translated versions of documents in <ahref="/passport">Telegram Passport</a>.</li>
<li>New field <em>translation</em> in <ahref="/bots/api#encryptedpassportelement">EncryptedPassportElement</a>.</li>
<li>New errors: <ahref="/bots/api#passportelementerrortranslationfile">PassportElementErrorTranslationFile</a> and <ahref="/bots/api#passportelementerrortranslationfile">PassportElementErrorTranslationFiles</a> and <ahref="/bots/api#passportelementerrorunspecified">PassportElementErrorUnspecified</a>.</li>
<li>Added support for <ahref="https://telegram.org/blog/passport"><strong>Telegram Passport</strong></a>. See the official announcement on the <ahref="https://telegram.org/blog">blog</a> and the <ahref="https://core.telegram.org/passport">manual</a> for details.</li>
@ -451,35 +444,35 @@ After one of the upcoming Bot API updates, some user identifiers will become big
<li>Added the field <ahref="/bots/api#animation">animation</a> to the <ahref="/bots/api#message">Message</a> object. For backward compatibility, when this field is set, the <em>document</em> field will be also set.</li>
<li>Added two new <ahref="/bots/api#messageentity">MessageEntity</a> types: <em>cashtag</em> and <em>phone_number</em>.</li>
<li>Added support for Foursquare venues: added the new field <em>foursquare_type</em> to the objects <ahref="/bots/api#venue">Venue</a>, <ahref="/bots/api#inlinequeryresultvenue">InlineQueryResultVenue</a> and <ahref="/bots/api#inputvenuemessagecontent">InputVenueMessageContent</a>, and the parameter <em>foursquare_type</em> to the <ahref="/bots/api#sendvenue">sendVenue</a> method.</li>
<li>You can now create inline mentions of users, who have pressed your bot's callback buttons.</li>
<li>You can now create inline mentions of users, who have pressed your bot's callback buttons.</li>
<li>You can now use the <code>Retry-After</code> response header to configure the delay after which the Bot API will retry the request after an unsuccessful response from a webhook.</li>
<li>If a webhook returns the HTTP error <code>410 Gone</code> for all requests for more than 23 hours successively, it can be automatically removed.</li>
<li>Added <ahref="https://en.wikipedia.org/wiki/VCard">vCard</a> support when sharing contacts: added the field <em>vcard</em> to the objects <ahref="/bots/api#contact">Contact</a>, <ahref="/bots/api#inlinequeryresultcontact">InlineQueryResultContact</a>, <ahref="/bots/api#inputcontactmessagecontent">InputContactMessageContent</a> and the method <ahref="/bots/api#sendcontact">sendContact</a>.</li>
<li>Supported <ahref="https://core.telegram.org/bots/api#formatting-options">text formatting</a> in media captions. Specify the desired <em>parse_mode</em> (<ahref="https://core.telegram.org/bots/api#markdown-style">Markdown</a> or <ahref="https://core.telegram.org/bots/api#html-style">HTML</a>) when you provide a caption.</li>
<li>In supergroups, if the bot receives a message that is a reply, it will also receive the message to which that message is replying – even if the original message is inaccessible due to the bot's privacy settings. (In other words, replying to any message in a supergroup with a message that mentions the bot or features a command for it acts as forwarding the original message to the bot). </li>
<li>Added the new field <em>connected_website</em> to <ahref="/bots/api#message">Message</a>. The bot will receive a message with this field in a private chat when a user logs in on the bot's connected website using the <ahref="https://core.telegram.org/widgets/login">Login Widget</a> and allows sending messages from your bot.</li>
<li>In supergroups, if the bot receives a message that is a reply, it will also receive the message to which that message is replying – even if the original message is inaccessible due to the bot's privacy settings. (In other words, replying to any message in a supergroup with a message that mentions the bot or features a command for it acts as forwarding the original message to the bot). </li>
<li>Added the new field <em>connected_website</em> to <ahref="/bots/api#message">Message</a>. The bot will receive a message with this field in a private chat when a user logs in on the bot's connected website using the <ahref="https://core.telegram.org/widgets/login">Login Widget</a> and allows sending messages from your bot.</li>
<li>Added the new parameter <em>supports_streaming</em> to the <ahref="/bots/api#sendvideo">sendVideo</a> method and a field with the same name to the <ahref="/bots/api#inputmediavideo">InputMediaVideo</a> object.</li>
<li>Added the new method <ahref="/bots/api#sendmediagroup">sendMediaGroup</a> and two kinds of <ahref="/bots/api#inputmedia">InputMedia</a> objects to support the new <ahref="https://telegram.org/blog/albums-saved-messages">albums feature</a>.</li>
<li>Added support for pinning messages in channels. <ahref="/bots/api#pinchatmessage">pinChatMessage</a> and <ahref="/bots/api#unpinchatmessage">unpinChatMessage</a> accept channels.</li>
<li>Added the new fields <em>provider_data</em>, <em>send_phone_number_to_provider</em>, <em>send_email_to_provider</em> to <ahref="/bots/api#sendinvoice">sendInvoice</a> for sharing information about the invoice with the payment provider.</li>
<li>Bots can now send and receive <ahref="https://telegram.org/blog/live-locations">Live Locations</a>. Added new field <em>live_period</em> to the <ahref="/bots/api#sendlocation">sendLocation</a> method and the <ahref="/bots/api#editmessagelivelocation">editMessageLiveLocation</a> and <ahref="/bots/api#stopmessagelivelocation">stopMessageLiveLocation</a> methods as well as the necessary objects for inline bots.</li>
<li>Bots can use the new <ahref="/bots/api#setchatstickerset">setChatStickerSet</a> and <ahref="/bots/api#deletechatstickerset">deleteChatStickerSet</a> methods to manage <ahref="https://telegram.org/blog#stickers-of-the-group">group sticker sets</a>.</li>
<li>The <ahref="/bots/api#getchat">getChat</a> request now returns the group's sticker set for supergroups if available.</li>
<li>The <ahref="/bots/api#getchat">getChat</a> request now returns the group's sticker set for supergroups if available.</li>
<li>Bots now receive entities from media captions in the new field <em>caption_entities</em> in <ahref="/bots/api#message">Message</a>.</li>
<p><strong>Bot API 3.2</strong>. Teach your bot to handle <ahref="/bots/api#stickers">stickers and sticker sets</a>.</p>
<ul>
<li>Added new methods for working with stickers: <ahref="/bots/api#getstickerset">getStickerSet</a>, <ahref="/bots/api#uploadstickerfile">uploadStickerFile</a>, <ahref="/bots/api#createnewstickerset">createNewStickerSet</a>, <ahref="/bots/api#addstickertoset">addStickerToSet</a>, <ahref="/bots/api#setstickerpositioninset">setStickerPositionInSet</a>, and <ahref="/bots/api#deletestickerfromset">deleteStickerFromSet</a>.</li>
<li>Added the fields <em>set_name</em> and <em>mask_position</em> to the <ahref="/bots/api#sticker">Sticker</a> object, plus two new objects, <ahref="/bots/api#stickerset">StickerSet</a>, and <ahref="/bots/api#maskposition">MaskPosition</a>.</li>
<p><strong>Bot API 3.1</strong>. Build your own robotic police force for supergoups with these new methods for admin bots:</p>
<ul>
<li>Added new methods <ahref="/bots/api#restrictchatmember">restrictChatMember</a> and <ahref="/bots/api#promotechatmember">promoteChatMember</a> to manage users and admins, added new parameter <em>until_date</em> to <ahref="/bots/api#kickchatmember">kickChatMember</a> for temporary bans.</li>
@ -501,10 +494,10 @@ After one of the upcoming Bot API updates, some user identifiers will become big
<li>Added the new fields <em>photo</em>, <em>description</em> and <em>invite_link</em> to the <ahref="/bots/api#chat">Chat</a> object.</li>
<li>Added the new fields <em>until_date</em>, <em>can_be_edited</em>, <em>can_change_info</em>, <em>can_post_messages</em>, <em>can_edit_messages</em>, <em>can_delete_messages</em>, <em>can_invite_users</em>, <em>can_restrict_members</em>, <em>can_pin_messages</em>, <em>can_promote_members</em>, <em>can_send_messages</em>, <em>can_send_media_messages</em>, <em>can_send_other_messages</em> and <em>can_add_web_page_previews</em> to the <ahref="/bots/api#chatmember">ChatMember</a> object.</li>
<p>See <ahref="/bots/payments">Introduction to Bot Payments</a> for a brief overview. If you're not a developer, you may like <ahref="https://telegram.org/blog/payments">this user-friendly blog post</a> better.</p>
<p>See <ahref="/bots/payments">Introduction to Bot Payments</a> for a brief overview. If you're not a developer, you may like <ahref="https://telegram.org/blog/payments">this user-friendly blog post</a> better.</p>
<ul>
<li>Your bot can now accept <ahref="/bots/api#payments">payments</a> for goods and services via Telegram. </li>
<li>Added new kinds of <ahref="/bots/api#update">updates</a>, <em>shipping_query</em> and <em>pre_checkout_query</em>, and new types of <ahref="/bots/api#message">message</a> content, <em>invoice</em> and <em>successful_payment</em>.</li>
@ -518,7 +511,7 @@ After one of the upcoming Bot API updates, some user identifiers will become big
</ul>
<p><strong>NEW Multilingual Bots</strong></p>
<ul>
<li>The <ahref="/bots/api#user">User</a> object now may have a <em>language_code</em> field that contains the <ahref="https://en.wikipedia.org/wiki/IETF_language_tag">IETF language tag</a> of the user's language.</li>
<li>The <ahref="/bots/api#user">User</a> object now may have a <em>language_code</em> field that contains the <ahref="https://en.wikipedia.org/wiki/IETF_language_tag">IETF language tag</a> of the user's language.</li>
<li>Thanks to this, your bot can now offer localized responses to users that speak different languages.</li>
</ul>
<p><strong>More power to admin bots</strong></p>
@ -532,44 +525,29 @@ After one of the upcoming Bot API updates, some user identifiers will become big
<li><ahref="https://core.telegram.org/bots/api#inlinekeyboardbutton">Inline keyboards</a> with <em>switch_inline_query</em> and <em>switch_inline_query_current_chat</em> can no longer be sent to channels because they are useless there.</li>
<li>New fields <em>gif_duration</em> in <ahref="/bots/api#inlinequeryresultgif">InlineQueryResultGif</a> and <em>mpeg4_duration</em> in <ahref="/bots/api#inlinequeryresultmpeg4gif">InlineQueryResultMpeg4Gif</a>.</li>
<p>Introducing <strong>Bot API 2.3.1</strong>, a nifty little update that will give you more control over how your bot gets its updates.</p>
<ul>
<li>Use the new field <em>max_connections</em> in <ahref="/bots/api#setwebhook">setWebhook</a> to optimize your bot's server load</li>
<li>Use the new field <em>max_connections</em> in <ahref="/bots/api#setwebhook">setWebhook</a> to optimize your bot's server load</li>
<li>Use <em>allowed_updates</em> in <ahref="/bots/api#setwebhook">setWebhook</a> and <ahref="/bots/api#getupdates">getUpdates</a> to selectively subscribe to updates of a certain type. Among other things, this allows you to stop getting updates about new posts in channels where your bot is an admin.</li>
<li><ahref="/bots/api#deletewebhook">deleteWebhook</a> moved out of <ahref="/bots/api#setwebhook">setWebhook</a> to get a whole separate method for itself.</li>
<p>Modified <ahref="/bots/faq#what-messages-will-my-bot-get"><strong>bot privacy mode</strong></a> for the sake of consistency. </p>
<li>Modified <ahref="/bots/faq#what-messages-will-my-bot-get"><strong>bot privacy mode</strong></a> for the sake of consistency. </li>
<li><p>Your bot can now get <strong>updates about posts in channels</strong>. Added new fields <em>channel_post</em> and <em>edited_channel_post</em> to <ahref="/bots/#update">Update</a>.</p>
</li>
<li>
<p>Your bot can now get <strong>updates about posts in channels</strong>. Added new fields <em>channel_post</em> and <em>edited_channel_post</em> to <ahref="/bots/#update">Update</a>.</p>
</li>
<li>
<p>You can now update high scores to a lower value by using the new <em>force</em> parameter in <ahref="/bots/#setgamescore">setGameScore</a>. Handy for punishing <strong>cheaters</strong> or fixing errors in your game's High Score table.</p>
</li>
<li>
<p>Starting today, messages with high scores will be updated with new high scores by default. Use <em>disable_edit_message</em> in <ahref="/bots/#setgamescore">setGameScore</a> if you don't want this.</p>
</li>
<li>
<p>The <em>edit_message</em> parameter from <ahref="/bots/#setgamescore">setGameScore</a> is no longer in use. For backward compatibility, it will be taken into account for a while, unless <em>disable_edit_message</em> is passed explicitly.</p>
</li>
<li>
<p>Added the new field <em>forward_from_message_id</em> to <ahref="/bots/#message">Message</a>.</p>
</li>
<li>
<p>Added the new parameter <em>cache_time</em> to <ahref="/bots/#answercallbackquery">answerCallbackQuery</a>. Will eventually work in Telegram apps — somewhere after version 3.14, maybe 3.15.</p>
</li>
<li>
<p>Renamed <em>hide_keyboard</em> to <em>remove_keyboard</em> in <ahref="/bots/#replykeyboardremove">ReplyKeyboardRemove</a> for clarity. <em>hide_keyboard</em> will still work for a while for backward compatibility.</p>
<li><p>You can now update high scores to a lower value by using the new <em>force</em> parameter in <ahref="/bots/#setgamescore">setGameScore</a>. Handy for punishing <strong>cheaters</strong> or fixing errors in your game's High Score table.</p>
</li>
<li>Starting today, messages with high scores will be updated with new high scores by default. Use <em>disable_edit_message</em> in <ahref="/bots/#setgamescore">setGameScore</a> if you don't want this.</li>
<li>The <em>edit_message</em> parameter from <ahref="/bots/#setgamescore">setGameScore</a> is no longer in use. For backward compatibility, it will be taken into account for a while, unless <em>disable_edit_message</em> is passed explicitly.</li>
<li>Added the new field <em>forward_from_message_id</em> to <ahref="/bots/#message">Message</a>.</li>
<li>Added the new parameter <em>cache_time</em> to <ahref="/bots/#answercallbackquery">answerCallbackQuery</a>. Will eventually work in Telegram apps — somewhere after version 3.14, maybe 3.15.</li>
<li>Renamed <em>hide_keyboard</em> to <em>remove_keyboard</em> in <ahref="/bots/#replykeyboardremove">ReplyKeyboardRemove</a> for clarity. <em>hide_keyboard</em> will still work for a while for backward compatibility.</li>
<p><strong>Bot API 2.2.</strong><ahref="/bots/games">Introducing a new Gaming Platform!</a> See <ahref="/bots/games">this introduction</a> for a brief overview.
If you're not a developer, you may like <ahref="https://telegram.org/blog/games"><strong>this user-friendly blog post</strong></a> better.</p>
<p><strong>Bot API 2.2.</strong><ahref="/bots/games">Introducing a new Gaming Platform!</a> See <ahref="/bots/games">this introduction</a> for a brief overview.<br>If you're not a developer, you may like <ahref="https://telegram.org/blog/games"><strong>this user-friendly blog post</strong></a> better.</p>
<ul>
<li>New tools for building <ahref="/bots/api#games"><strong>HTML5 games</strong></a>.</li>
<li>New method <ahref="/bots/api#sendgame">sendGame</a>, new object <ahref="/bots/api#inlinequeryresultgame">InlineQueryResultGame</a>, new field <em>game</em> in <ahref="/bots/api#message">Message</a>.</li>
@ -579,50 +557,40 @@ If you're not a developer, you may like <a href="https://telegram.org/blog/games
</ul>
<p><strong>Other changes</strong></p>
<ul>
<li>
<p>Making life easier for webhook users. Added a detailed <ahref="https://core.telegram.org/bots/webhooks"><strong>Guide to All Things Webhook</strong></a> that describes every pothole you can run into on the webhook road.</p>
<li>Making life easier for webhook users. Added a detailed <ahref="https://core.telegram.org/bots/webhooks"><strong>Guide to All Things Webhook</strong></a> that describes every pothole you can run into on the webhook road.</li>
<li><p>New method <ahref="/bots/api#getwebhookinfo">getWebhookInfo</a> to check current webhook status.</p>
</li>
<li>
<p>New method <ahref="/bots/api#getwebhookinfo">getWebhookInfo</a> to check current webhook status.</p>
</li>
<li>
<p>Added the option to specify an <strong>HTTP URL</strong> for a file in all methods where <ahref="/bots/api#inputfile">InputFile</a> or <em>file_id</em> can be used (except voice messages). Telegram will get the file from the specified URL and send it to the user. Files must be smaller than 5 MB for photos and smaller than 20 MB for all other types of content.</p>
</li>
<li>
<p>Use the new <em>url</em> parameter in <ahref="/bots/api#answercallbackquery">answerCallbackQuery</a> to create buttons that open your bot with user-specific parameters.</p>
</li>
<li>
<p>Added new field <em>switch_inline_query_current_chat</em> in <ahref="/bots/api#inlinekeyboardbutton">InlineKeyboardButton</a>.</p>
</li>
<li>
<p>Added <em>caption</em> fields to <ahref="/bots/api#sendaudio">sendAudio</a>, <ahref="/bots/api#sendvoice">sendVoice</a>, <ahref="/bots/api#inlinequeryresultaudio">InlineQueryResultAudio</a>, <ahref="/bots/api#inlinequeryresultvoice">InlineQueryResultVoice</a>, <ahref="/bots/api#inlinequeryresultcachedaudio">InlineQueryResultCachedAudio</a>, and <ahref="/bots/api#inlinequeryresultcachedvoice">InlineQueryResultCachedVoice</a>.</p>
<li><p>Added the option to specify an <strong>HTTP URL</strong> for a file in all methods where <ahref="/bots/api#inputfile">InputFile</a> or <em>file_id</em> can be used (except voice messages). Telegram will get the file from the specified URL and send it to the user. Files must be smaller than 5 MB for photos and smaller than 20 MB for all other types of content.</p>
</li>
<li>Use the new <em>url</em> parameter in <ahref="/bots/api#answercallbackquery">answerCallbackQuery</a> to create buttons that open your bot with user-specific parameters.</li>
<li>Added new field <em>switch_inline_query_current_chat</em> in <ahref="/bots/api#inlinekeyboardbutton">InlineKeyboardButton</a>.</li>
<li>Added <em>caption</em> fields to <ahref="/bots/api#sendaudio">sendAudio</a>, <ahref="/bots/api#sendvoice">sendVoice</a>, <ahref="/bots/api#inlinequeryresultaudio">InlineQueryResultAudio</a>, <ahref="/bots/api#inlinequeryresultvoice">InlineQueryResultVoice</a>, <ahref="/bots/api#inlinequeryresultcachedaudio">InlineQueryResultCachedAudio</a>, and <ahref="/bots/api#inlinequeryresultcachedvoice">InlineQueryResultCachedVoice</a>.</li>
</ul>
<ul>
<li>New field <em>all_members_are_administrators</em> in the <ahref="/bots/api#chat">Chat</a> object.</li>
<li>Certain server responses may now contain the new <ahref="/bots/api#responseparameters"><em>parameters</em></a> field with expanded info on errors that occurred while processing your requests.</li>
<li><strong>Bot API 2.1.</strong> Added more tools for group administrator bots. Your bot can now get a list of administrators and members count in a group, check a user's current status (administrator, creator, left the group, kicked from the group), and leave a group.</li>
<li><strong>Bot API 2.1.</strong> Added more tools for group administrator bots. Your bot can now get a list of administrators and members count in a group, check a user's current status (administrator, creator, left the group, kicked from the group), and leave a group.</li>
<li>Added new methods: <ahref="/bots/api#getchat">getChat</a>, <ahref="/bots/api#leavechat">leaveChat</a>, <ahref="/bots/api#getchatadministrators">getChatAdministrators</a>, <ahref="/bots/api#getchatmember">getChatMember</a>, <ahref="/bots/api#getchatmemberscount">getChatMembersCount</a>.</li>
<li>Added support for <ahref="https://telegram.org/blog/edit">edited messages</a> and <ahref="https://telegram.org/blog/edit#new-mentions">new mentions</a> from Telegram v.3.9. New fields: <em>edited_message</em> in <ahref="/bots/api#update">Update</a>, <em>edit_date</em> in <ahref="/bots/api#message">Message</a>, <em>user</em> in <ahref="/bots/api#messageentity">MessageEntity</a>. New value <em>text_mention</em> for the <em>type</em> field in <ahref="/bots/api#messageentity">MessageEntity</a>.</li>
<li>Added consistency to what messages bots get in groups and supergroups. <ahref="/bots/faq#what-messages-will-my-bot-get">See updated FAQ for details »</a></li>
<li>Added the field <em>emoji</em> to the <ahref="/bots/api#sticker">Sticker</a> object. Your bot can now know the emoji a sticker corresponds to.</li>
<li>Added the field <em>forward_from_chat</em> to the <ahref="/bots/api#message">Message</a> object for messages forwarded from channels.</li>
<p>Introducing <strong>Bot API 2.0</strong>. Check out <ahref="/bots/2-0-intro">this page</a> for a review of this major update.</p>
<ul>
<li>New <ahref="/bots/2-0-intro#new-inline-keyboards"><strong>inline keyboards</strong></a> with <strong>callback</strong> and <strong>URL buttons</strong>. Added new objects <ahref="/bots/api#inlinekeyboardmarkup">InlineKeyboardMarkup</a>, <ahref="/bots/api#inlinekeyboardbutton">InlineKeyboardButton</a> and <ahref="/bots/api#callbackquery">CallbackQuery</a>, added <em>reply_markup</em> fields to all <ahref="/bots/api#inlinequeryresult">InlineQueryResult</a> objects. Added field <em>callback_query</em> to the <ahref="/bots/api#update">Update</a> object, new method <ahref="/bots/api#answercallbackquery">answerCallbackQuery</a>.</li>
@ -642,70 +610,71 @@ If you're not a developer, you may like <a href="https://telegram.org/blog/games
<li>Added fields <em>venue</em>, <em>pinned_message</em> and <em>entities</em> to the <ahref="/bots/api#message">Message</a> object. Added new objects <ahref="/bots/api#messageentity">MessageEntity</a> and <ahref="/bots/api#venue">Venue</a>, new methods <ahref="/bots/api#sendvenue">sendVenue</a> and <ahref="/bots/api#sendcontact">sendContact</a>.</li>
<li>Renamed the fields <em>new_chat_participant</em> and <em>left_chat_participant</em> of the <ahref="/bots/api#message">Message</a> object to <em>new_chat_member</em> and <em>left_chat_member</em>.</li>
<li>Added the <em>disable_notification</em> parameter to all methods that send messages or any kind.</li>
<li>Removed backward compatibility from the method <ahref="/bots/api#sendaudio">sendAudio</a>. Voice messages now must be sent using the method <ahref="/bots/api#sendvoice">sendVoice</a>. There is no more need to specify a non-empty title or performer while sending the audio by <em>file_id</em>.</li>
<li>By the way, you can use both HTML-style and markdown-style formatting in your bot's messages to send bold, italic or fixed-width text and inline links. All official Telegram clients support this. See <ahref="/bots/api#formatting-options">Formatting options</a> for details.</li>
<li>By the way, you can use both HTML-style and markdown-style formatting in your bot's messages to send bold, italic or fixed-width text and inline links. All official Telegram clients support this. See <ahref="/bots/api#formatting-options">Formatting options</a> for details.</li>
<li>You can now <ahref="/bots/inline#collecting-feedback">collect feedback</a> on which results provided by your inline bot get chosen by the users. Added the <code>setinlinefeedback</code> command for Botfather, new type <ahref="/bots/api#choseninlineresult">ChosenInlineResult</a>, new field <em>chosen_inline_result</em> to the <ahref="/bots/api#update">Update</a> object.</li>
<li>Added support for <ahref="/bots/inline">Inline Mode</a>, a new way for people to contact your bot by typing its username and a query in the text input field in any chat. Enable by sending <code>/setinline</code> to <ahref="https://telegram.me/botfather">@BotFather</a>.</li>
<li>New optional field <em>inline_query</em> added to the <ahref="/bots/api#update">Update</a> object.</li>
<li>Added new method <ahref="/bots/api#answerinlinequery">answerInlineQuery</a> and new objects <ahref="/bots/api#inlinequery">InlineQuery</a>, <ahref="/bots/api#inlinequeryresultarticle">InlineQueryResultArticle</a>, <ahref="/bots/api#inlinequeryresultphoto">InlineQueryResultPhoto</a>, <ahref="/bots/api#inlinequeryresultgif">InlineQueryResultGif</a>, <ahref="/bots/api#inlinequeryresultmpeg4gif">InlineQueryResultMpeg4Gif</a> and <ahref="/bots/api#inlinequeryresultvideo">InlineQueryResultVideo</a>.</li>
<li>Added support for <ahref="https://telegram.org/blog/supergroups">supergroups</a>. The <em>Type</em> field in the <ahref="/bots/api#chat">Chat</a> object can now contain 'supergroup'.</li>
<li>Added support for <ahref="https://telegram.org/blog/supergroups">supergroups</a>. The <em>Type</em> field in the <ahref="/bots/api#chat">Chat</a> object can now contain 'supergroup'.</li>
<li>New optional fields added to the <ahref="/bots/api#message">Message</a> object: <em>supergroup_chat_created</em>, <em>migrate_to_chat_id</em>, <em>migrate_from_chat_id</em> and <em>channel_chat_created</em>.</li>
<li>Added initial channel support for bots (no Telegram clients support this at the moment, please wait for updates):</li>
<li>The <em>Chat</em> field in the <ahref="/bots/api#message">Message</a> is now of the new type <ahref="/bots/api#chat">Chat</a>.</li>
<li>You can now pass a channel username (in the format <code>@channelusername</code>) in the place of <em>chat_id</em> in all methods (and instead of <em>from_chat_id</em> in <ahref="/bots/api#forwardmessage">forwardMessage</a>). For this to work, the bot must be an administrator in the channel (and that's exactly what Telegram clients don't support yet — adding bots as administrators coming soon).</li>
<li>You can now pass a channel username (in the format <code>@channelusername</code>) in the place of <em>chat_id</em> in all methods (and instead of <em>from_chat_id</em> in <ahref="/bots/api#forwardmessage">forwardMessage</a>). For this to work, the bot must be an administrator in the channel (and that's exactly what Telegram clients don't support yet — adding bots as administrators coming soon).</li>
<li>You can now <ahref="/bots/api#making-requests">pass parameters</a> using <em>application/json</em> (please note that this doesn't work for file uploads: use <em>multipart/form-data</em> to upload files).</li>
<li>You can now <ahref="/bots/api#making-requests">pass parameters</a> using <em>application/json</em> (please note that this doesn't work for file uploads: use <em>multipart/form-data</em> to upload files).</li>
<li>Added very basic <ahref="/bots/api#using-markdown">markdown support</a>. New field <em>parse_mode</em> added to <ahref="/bots/api#sendmessage">sendMessage</a>. For the moment messages with markdown will be displayed correctly only in Telegram for <strong>Android</strong>. Other official apps will catch up soon.</li>
<li>Added support for self-signed certificates: upload your certificate using the <em>certificate</em> parameter in the <ahref="/bots/api#setwebhook">setWebhook</a> method.</li>
<li>You can now make <ahref="/bots/api#making-requests-when-getting-updates">new requests</a> when responding to webhook updates.</li>
<li>Added new type <strong><ahref="/bots/api#voice">Voice</a></strong> and new method <ahref="/bots/api#sendvoice"><strong>sendVoice</strong></a> for sending voice messages.</li>
<li>Earlier <strong><ahref="/bots/api#audio">Audio</a></strong> and <strong><ahref="/bots/api#sendaudio">sendAudio</a></strong> should now be used for sending music files. Telegram clients will show such files in the in-app music player. If you were using <ahref="/bots/api#sendaudio"><strong>sendAudio</strong></a> for your bot to send voice messages, please use <ahref="/bots/api#sendaudio"><strong>sendVoice</strong></a> instead.</li>
<li>Added optional fields <em>performer</em>, <em>title</em> to the <ahref="/bots/api#audio"><strong>Audio</strong></a> object and <ahref="/bots/api#sendaudio"><strong>sendAudio</strong></a> method.</li>
<li>Added optional field <em>voice</em> to the <ahref="/bots/api#message"><strong>Message</strong></a> object.</li>
<li>The <strong>thumb</strong> field is now optional for <ahref="/bots/api#video">Video</a>, <ahref="/bots/api#sticker">Sticker</a> and <ahref="/bots/api#document">Document</a> objects</li>
<li>The API now supports both video and photo captions. The <strong>caption</strong> field has been removed from the <ahref="/bots/api#video">Video</a> object and added to the <ahref="/bots/api#message">Message</a> object instead. </li>
<li><strong>caption</strong> and <strong>duration</strong> optional fields have been added to the <ahref="/bots/api#sendvideo">sendVideo</a> method.</li>
<li>Fixed typo: <strong>user_id</strong> in the Contact object is now correctly labeled as Integer, not String</li>
<p>This page lists some libraries and frameworks <strong>developed by the Telegram community</strong>– you should take care to report any bugs you may find to the respective developers, as these projects are not maintained by Telegram.</p>
<p>Ping us on <ahref="https://telegram.me/botsupport">@BotSupport</a> if you would like your library to appear on this page.</p>
<li><p><strong>PHP Telegram Bot</strong>. PHP Telegram Bot based on the official Telegram Bot API.<br><ahref="https://github.com/php-telegram-bot/core">https://github.com/php-telegram-bot/core</a></p>
<li>
<p><strong>PHP Telegram Bot</strong>. PHP Telegram Bot based on the official Telegram Bot API.
<li><p><strong>Telegram Bot Api Base</strong>. Clear and simple Telegram Bot API.<br><ahref="https://github.com/tg-bot-api/bot-api-base">https://github.com/tg-bot-api/bot-api-base</a></p>
<li>
<p><strong>Telegram Bot Api Base</strong>. Clear and simple Telegram Bot API.
<li><p><strong>PHP Telegram API</strong>. A complete async capable Telegram Bot API implementation for PHP7.<br><ahref="https://github.com/unreal4u/telegram-api">https://github.com/unreal4u/telegram-api</a></p>
<li>
<p><strong>PHP Telegram API</strong>. A complete async capable Telegram Bot API implementation for PHP7.
<li><p><strong>Nutgram</strong>. The Telegram bot framework that doesn't drive you nuts.<br><ahref="https://github.com/nutgram/nutgram">https://github.com/nutgram/nutgram</a></p>
<li>
<p><strong>Nutgram</strong>. The Telegram bot framework that doesn't drive you nuts.
<li><p><strong>klev-o/telegram-bot-api</strong>. Simple and convenient object-oriented implementation Telegram Bot API with PHP version ^7.4 support.<br><ahref="https://github.com/klev-o/telegram-bot-api">https://github.com/klev-o/telegram-bot-api</a></p>
<li>
<p><strong>klev-o/telegram-bot-api</strong>. Simple and convenient object-oriented implementation Telegram Bot API with PHP version ^7.4 support.
<li><p><strong>Telegram Bot PHP</strong>. A library that makes using Telegram Bot API much easier.<br><ahref="https://github.com/telegram-bot-php/core">https://github.com/telegram-bot-php/core</a></p>
<li>
<p><strong>Telegram Bot PHP</strong>. A library that makes using Telegram Bot API much easier.
<li><p><strong>NeleBot X Framework</strong>. Framework for Telegram Bot API.<br><ahref="https://github.com/NeleB54Gold/NeleBotX">https://github.com/NeleB54Gold/NeleBotX</a></p>
<li>
<p><strong>NeleBot X Framework</strong>. Framework for Telegram Bot API.
<li><p><strong>Bot API PHP SDK</strong>. Telegram Bot API PHP SDK. Supports Laravel out of the box.<br><ahref="https://github.com/irazasyed/telegram-bot-sdk">https://github.com/irazasyed/telegram-bot-sdk</a></p>
<li>
<p><strong>Bot API PHP SDK</strong>. Telegram Bot API PHP SDK. Supports Laravel out of the box.
<li><p><strong>Telegraph</strong>. A Laravel package for fluently interacting with Telegram Bots.<br><ahref="https://github.com/def-studio/telegraph">https://github.com/def-studio/telegraph</a></p>
<li>
<p><strong>Telegraph</strong>. A Laravel package for fluently interacting with Telegram Bots.
<li><p><strong>TeleBot</strong>. Easy way to create Telegram bots in PHP. Rich Laravel support out of the box.<br><ahref="https://github.com/westacks/telebot">https://github.com/westacks/telebot</a></p>
<li>
<p><strong>TeleBot</strong>. Easy way to create Telegram bots in PHP. Rich Laravel support out of the box.
<li><p><strong>NovaGram</strong>. An Object-Oriented PHP library for Telegram Bots.<br><ahref="https://github.com/skrtdev/NovaGram">https://github.com/skrtdev/NovaGram</a></p>
<li>
<p><strong>NovaGram</strong>. An Object-Oriented PHP library for Telegram Bots.
<li><p><strong>TuriBot</strong>. A simple way to communicate with Telegram APIs in PHP.<br><ahref="https://github.com/davtur19/TuriBot">https://github.com/davtur19/TuriBot</a></p>
<li>
<p><strong>TuriBot</strong>. A simple way to communicate with Telegram APIs in PHP.
<li><p><strong>TelegramBotApiBundle</strong>. A symfony wrapper bundle for Telegram Bot API.<br><ahref="https://github.com/borsaco/TelegramBotApiBundle">https://github.com/borsaco/TelegramBotApiBundle</a></p>
<li>
<p><strong>TelegramBotApiBundle</strong>. A symfony wrapper bundle for Telegram Bot API.
<li><p><strong>go-telegram-bot-api</strong>. Bindings for the Telegram Bot API.<br><ahref="https://github.com/go-telegram-bot-api/telegram-bot-api">https://github.com/go-telegram-bot-api/telegram-bot-api</a></p>
<li>
<p><strong>go-telegram-bot-api</strong>. Bindings for the Telegram Bot API.
<li><p><strong>Golang Telegram Bot library</strong>. An autogenerated wrapper for the Telegram Bot API. Inspired by the python-telegram-bot library.<br><ahref="https://github.com/paulsonoflars/gotgbot">https://github.com/paulsonoflars/gotgbot</a></p>
<li>
<p><strong>Golang Telegram Bot library</strong>. An autogenerated wrapper for the Telegram Bot API. Inspired by the python-telegram-bot library.
<li><p><strong>echotron</strong>. An elegant and concurrent library for the Telegram Bot API.<br><ahref="https://github.com/NicoNex/echotron">https://github.com/NicoNex/echotron</a></p>
<li>
<p><strong>echotron</strong>. An elegant and concurrent library for the Telegram Bot API.
<li><p><strong>Telegram Bot API helper for Golang</strong>. A Telegram Bot API wrapper.<br><ahref="https://github.com/meinside/telegram-bot-go">https://github.com/meinside/telegram-bot-go</a></p>
<li>
<p><strong>Telegram Bot API helper for Golang</strong>. A Telegram Bot API wrapper.
<li><p><strong>Telegrambot</strong>. Telegram Bot API in Go, but with more clean code.<br><ahref="https://github.com/nickname76/telegrambot">https://github.com/nickname76/telegrambot</a></p>
<li>
<p><strong>Telegrambot</strong>. Telegram Bot API in Go, but with more clean code.
<li><p><strong>go-tg</strong>. Library for accessing Telegram Bot API, with batteries for building complex bots included.<br><ahref="https://github.com/mr-linch/go-tg">https://github.com/mr-linch/go-tg</a></p>
<li>
<p><strong>go-tg</strong>. Library for accessing Telegram Bot API, with batteries for building complex bots included.
<li><p><strong>TgWrap</strong>. A library with Telegram Bot API bindings.<br><ahref="https://github.com/rogozhka/tgwrap">https://github.com/rogozhka/tgwrap</a></p>
<li>
<p><strong>TgWrap</strong>. A library with Telegram Bot API bindings.
<li><p><strong>Telegram Bot API: Go implementation</strong>. A Telegram IM bots API implementation.<br><ahref="https://github.com/temoon/telegram-bots-api">https://github.com/temoon/telegram-bots-api</a></p>
<li>
<p><strong>Telegram Bot API: Go implementation</strong>. A Telegram IM bots API implementation.
<li><p><strong>python-telegram-bot</strong>. A wrapper you can't refuse.<br><ahref="https://github.com/python-telegram-bot/python-telegram-bot">https://github.com/python-telegram-bot/python-telegram-bot</a></p>
<li>
<p><strong>python-telegram-bot</strong>. A wrapper you can't refuse.
<li><p><strong>pyTelegramBotAPI</strong>. A simple, but extensible Python implementation for the Telegram Bot API.<br><ahref="https://github.com/eternnoir/pyTelegramBotAPI">https://github.com/eternnoir/pyTelegramBotAPI</a></p>
<li>
<p><strong>pyTelegramBotAPI</strong>. A simple, but extensible Python implementation for the Telegram Bot API.
<li><p><strong>AIOGram</strong>. A pretty simple and fully asynchronous library for Telegram Bot API written with asyncio and aiohttp.<br><ahref="https://github.com/aiogram/aiogram">https://github.com/aiogram/aiogram</a></p>
<li>
<p><strong>AIOGram</strong>. A pretty simple and fully asynchronous library for Telegram Bot API written with asyncio and aiohttp.
<li><p><strong>TGramBot</strong>. A partially auto-generated and asynchronous Minimal Telegram Bot API framework.<br><ahref="https://github.com/KeralaBots/TGramBot">https://github.com/KeralaBots/TGramBot</a></p>
<li>
<p><strong>TGramBot</strong>. A partially auto-generated and asynchronous Minimal Telegram Bot API framework.
<li><p><strong>OrigamiBot</strong>. A pythonic Telegram bot API library.<br><ahref="https://github.com/cmd410/OrigamiBot">https://github.com/cmd410/OrigamiBot</a></p>
<li>
<p><strong>OrigamiBot</strong>. A pythonic Telegram bot API library.
<li><p><strong>telefone</strong>. A modern Telegram Bot API framework built with speed and stability in mind.<br><ahref="https://github.com/telefone-org/framework">https://github.com/telefone-org/framework</a></p>
<li>
<p><strong>pytgbot</strong>. A module to access the Telegram Bot API.
<li><p><strong>pytgbot</strong>. A module to access the Telegram Bot API.<br><ahref="https://github.com/luckydonald/pytgbot">https://github.com/luckydonald/pytgbot</a></p>
</li>
<li><p><strong>teleflask</strong>. A framework based on flask and pytgbot.<br><ahref="https://github.com/luckydonald/teleflask">https://github.com/luckydonald/teleflask</a></p>
<li>
<p><strong>teleflask</strong>. A framework based on flask and pytgbot.
<li><p><strong>Frankenstein</strong>. A Telegram Bot API client.<br><ahref="https://github.com/ayrat555/frankenstein">https://github.com/ayrat555/frankenstein</a></p>
<li>
<p><strong>Frankenstein</strong>. A Telegram Bot API client.
<li><p><strong>Ferrisgram</strong>. An asynchronous autogenerated wrapper for the Telegram Bot API.<br><ahref="https://github.com/ferrisgram/ferrisgram">https://github.com/ferrisgram/ferrisgram</a></p>
<li>
<p><strong>Ferrisgram</strong>. An asynchronous autogenerated wrapper for the Telegram Bot API.
<li><p><strong>tgbotapi</strong>. A library for using the Telegram Bot API.<br><ahref="https://github.com/Syfaro/tgbotapi-rs">https://github.com/Syfaro/tgbotapi-rs</a></p>
<li>
<p><strong>tgbotapi</strong>. A library for using the Telegram Bot API.
<li><p><strong>telegram-bot</strong>. A Library for creating a Telegram Bot.<br><ahref="https://github.com/telegram-rs/telegram-bot">https://github.com/telegram-rs/telegram-bot</a></p>
<li>
<p><strong>telegram-bot</strong>. A Library for creating a Telegram Bot.
<li><p><strong>Telebot</strong>. Write Telegram bots with Tokio and Futures.<br><ahref="https://github.com/bytesnake/telebot">https://github.com/bytesnake/telebot</a></p>
<li>
<p><strong>Telebot</strong>. Write Telegram bots with Tokio and Futures.
<li><p><strong>TelegramBotAPI</strong>. Type-safe library for work with Telegram Bot API.<br><ahref="https://github.com/InsanusMokrassar/TelegramBotAPI">https://github.com/InsanusMokrassar/TelegramBotAPI</a></p>
<li>
<p><strong>TelegramBotAPI</strong>. Type-safe library for work with Telegram Bot API.
<li><p><strong>Kotlin Telegram Bot</strong>. A wrapper for the Telegram Bot API.<br><ahref="https://github.com/kotlin-telegram-bot/kotlin-telegram-bot">https://github.com/kotlin-telegram-bot/kotlin-telegram-bot</a></p>
<li>
<p><strong>Kotlin Telegram Bot</strong>. A wrapper for the Telegram Bot API.
<li><p><strong>Telegram Bot API in Kotlin Multiplatform</strong>. Telegram Bot API in Kotlin.<br><ahref="https://github.com/omarmiatello/telegram">https://github.com/omarmiatello/telegram</a></p>
<li>
<p><strong>Telegram Bot API in Kotlin Multiplatform</strong>. Telegram Bot API in Kotlin.
<li><p><strong>kt-telegram-bot</strong>. Telegram Bot API library for Kotlin language.<br><ahref="https://github.com/elbekD/kt-telegram-bot">https://github.com/elbekD/kt-telegram-bot</a></p>
<li>
<p><strong>kt-telegram-bot</strong>. Telegram Bot API library for Kotlin language.
<li><p><strong>Iris Telegram API</strong>. Yet another Telegram API bot created with Kotlin.<br><ahref="https://github.com/iris2iris/iris-telegram-api">https://github.com/iris2iris/iris-telegram-api</a></p>
<li>
<p><strong>Iris Telegram API</strong>. Yet another Telegram API bot created with Kotlin.
<li><p><strong>Telegraf</strong>. Modern Telegram Bot Framework for Node.js.<br><ahref="https://github.com/telegraf/telegraf">https://github.com/telegraf/telegraf</a></p>
<li>
<p><strong>Telegraf</strong>. Modern Telegram Bot Framework for Node.js.
<li><p><strong>Node-Telegram-bot</strong>. Node.js module to interact with the official Telegram Bot API.<br><ahref="https://github.com/yagop/node-telegram-bot-api">https://github.com/yagop/node-telegram-bot-api</a></p>
<li>
<p><strong>Node-Telegram-bot</strong>. Node.js module to interact with the official Telegram Bot API.
<li><p><strong>Telebot</strong>. The easy way to write Telegram bots.<br><ahref="https://github.com/mullwar/telebot">https://github.com/mullwar/telebot</a></p>
<li>
<p><strong>Telebot</strong>. The easy way to write Telegram bots.
<li><p><strong>Slimbot</strong>. A fuss-free, thin wrapper around Telegram Bot API for Node.js. No frills.<br><ahref="https://github.com/edisonchee/slimbot">https://github.com/edisonchee/slimbot</a></p>
<li>
<p><strong>Slimbot</strong>. A fuss-free, thin wrapper around Telegram Bot API for Node.js. No frills.
<li><p><strong>Telegram.Bots</strong>. A .NET 5 wrapper for the Telegram Bot API.<br><ahref="https://github.com/TelegramBotsAPI/Telegram.Bots">https://github.com/TelegramBotsAPI/Telegram.Bots</a></p>
<li>
<p><strong>Telegram.Bots</strong>. A .NET 5 wrapper for the Telegram Bot API.
<li><p><strong>RxTelegram.Bot</strong>. RxTelegram uses a reactive approach to make Updates available.<br><ahref="https://github.com/RxTelegram/RxTelegram.Bot">https://github.com/RxTelegram/RxTelegram.Bot</a></p>
<li>
<p><strong>RxTelegram.Bot</strong>. RxTelegram uses a reactive approach to make Updates available.
<li><p><strong>Telegram.BotAPI for NET</strong>. One of the most complete libraries available to interact with the Telegram Bot API.<br><ahref="https://github.com/Eptagone/Telegram.BotAPI">https://github.com/Eptagone/Telegram.BotAPI</a></p>
<li>
<p><strong>Telegram.BotAPI for NET</strong>. One of the most complete libraries available to interact with the Telegram Bot API.
<li><p><strong>Telegram Vapor Bot</strong>. The wrapper for the Telegram Bot API written in Swift with Vapor.<br><ahref="https://github.com/nerzh/telegram-vapor-bot">https://github.com/nerzh/telegram-vapor-bot</a></p>
<li>
<p><strong>Telegram Vapor Bot</strong>. The wrapper for the Telegram Bot API written in Swift with Vapor.
<li><p><strong>Telegrammer</strong>. Telegram Bot Framework written in Swift 5.1 with SwiftNIO network framework.<br><ahref="https://github.com/givip/Telegrammer">https://github.com/givip/Telegrammer</a></p>
<li>
<p><strong>Telegrammer</strong>. Telegram Bot Framework written in Swift 5.1 with SwiftNIO network framework.
<li><p><strong>Nestgram</strong>. Framework for working with Telegram Bot API on TypeScript like Nest.js.<br><ahref="https://github.com/Degreet/nestgram">https://github.com/Degreet/nestgram</a></p>
<li>
<p><strong>Nestgram</strong>. Framework for working with Telegram Bot API on TypeScript like Nest.js.
<li><p><strong>puregram</strong>. Powerful and modern telegram bot api sdk for node.js and typescript.<br><ahref="https://github.com/nitreojs/puregram">https://github.com/nitreojs/puregram</a></p>
<li>
<p><strong>puregram</strong>. Powerful and modern telegram bot api sdk for node.js and typescript.
<li><p><strong>TelegramBots</strong>. A simple to use library to create Telegram Bots.<br><ahref="https://github.com/rubenlagus/TelegramBots">https://github.com/rubenlagus/TelegramBots</a></p>
<li>
<p><strong>TelegramBots</strong>. A simple to use library to create Telegram Bots.
<li><p><strong>Java API</strong>. Telegram Bot API for Java.<br><ahref="https://github.com/pengrad/java-telegram-bot-api">https://github.com/pengrad/java-telegram-bot-api</a></p>
<li>
<p><strong>Java API</strong>. Telegram Bot API for Java.
<li><p><strong>ReBot</strong>. A Java EE Telegram Bot API.<br><ahref="https://github.com/rebasing-xyz/rebot">https://github.com/rebasing-xyz/rebot</a></p>
<li>
<p><strong>ReBot</strong>. A Java EE Telegram Bot API.
<li><p><strong>bot4s.telegram</strong>. Simple, extensible, strongly-typed wrapper for the Telegram Bot API.<br><ahref="https://github.com/bot4s/telegram">https://github.com/bot4s/telegram</a></p>
<li>
<p><strong>bot4s.telegram</strong>. Simple, extensible, strongly-typed wrapper for the Telegram Bot API.
<li><p><strong>F[Tg] - Telegramium</strong>. Pure functional Telegram Bot API implementation.<br><ahref="https://github.com/apimorphism/telegramium">https://github.com/apimorphism/telegramium</a></p>
<li>
<p><strong>F[Tg] - Telegramium</strong>. Pure functional Telegram Bot API implementation.
<li><p><strong>Telegram::Bot</strong>. Ruby gem for building Telegram Bot with optional Rails integration.<br><ahref="https://github.com/telegram-bot-rb/telegram-bot">https://github.com/telegram-bot-rb/telegram-bot</a></p>
<li>
<p><strong>Telegram::Bot</strong>. Ruby gem for building Telegram Bot with optional Rails integration.
<li><p>Elixir. <strong>ExGram</strong>. Telegram Bot API low level API and framework.<br><ahref="https://github.com/rockneurotiko/ex_gram">https://github.com/rockneurotiko/ex_gram</a></p>
<li>
<p>Elixir. <strong>ExGram</strong>. Telegram Bot API low level API and framework.
<li><p>C++. <strong>tgbot-cpp</strong>. A library for Telegram Bot API.<br><ahref="https://github.com/reo7sp/tgbot-cpp">https://github.com/reo7sp/tgbot-cpp</a></p>
<li>
<p>C++. <strong>tgbot-cpp</strong>. A library for Telegram Bot API.
<li><p>C++. <strong>tgbot</strong>. A library for Telegram Bot API with generated API types and methods.<br><ahref="https://github.com/egorpugin/tgbot">https://github.com/egorpugin/tgbot</a></p>
<li>
<p>C++. <strong>tgbot</strong>. A library for Telegram Bot API with generated API types and methods.
<li><p>Dart. <strong>TeleDart</strong>. A library interfacing with the latest Telegram Bot API.<br><ahref="https://github.com/DinoLeung/TeleDart">https://github.com/DinoLeung/TeleDart</a></p>
<li>
<p>Dart. <strong>TeleDart</strong>. A library interfacing with the latest Telegram Bot API.
<li><p>Clojure. <strong>telegrambot-lib</strong>. A library for interacting with the Telegram Bot API.<br><ahref="https://github.com/wdhowe/telegrambot-lib">https://github.com/wdhowe/telegrambot-lib</a></p>
<li>
<p>Clojure. <strong>telegrambot-lib</strong>. A library for interacting with the Telegram Bot API.
<li><p>Lua. <strong>telegram-bot-lua</strong>. A feature-filled Telegram Bot API library.<br><ahref="https://github.com/wrxck/telegram-bot-lua">https://github.com/wrxck/telegram-bot-lua</a></p>
<li>
<p>Lua. <strong>telegram-bot-lua</strong>. A feature-filled Telegram Bot API library.
<li><p>OCaml. <strong>TelegraML</strong>. A library for creating bots for Telegram.<br><ahref="https://github.com/nv-vn/TelegraML">https://github.com/nv-vn/TelegraML</a></p>
<li>
<p>OCaml. <strong>TelegraML</strong>. A library for creating bots for Telegram.
<li><p>Haskell. <strong>haskell-telegram-api</strong>. High-level bindings to the Telegram Bot API based on <ahref="https://haskell-servant.github.io/">servant</a> library.<br><ahref="https://github.com/klappvisor/haskell-telegram-api">https://github.com/klappvisor/haskell-telegram-api</a></p>
<li>
<p>Haskell. <strong>haskell-telegram-api</strong>. High-level bindings to the Telegram Bot API based on <ahref="https://haskell-servant.github.io/">servant</a> library.
<li><p>Perl. <strong>Telegram Bot</strong>. A genuine Perl 6 client for the Telegram's Bot API.<br><ahref="https://github.com/GildedHonour/TelegramBot">https://github.com/GildedHonour/TelegramBot</a></p>
<li>
<p>Perl. <strong>Telegram Bot</strong>. A genuine Perl 6 client for the Telegram's Bot API.
<td>The invitation hash from the <a href="/api/links#voice-chatvideo-chatlivestream-links">invite link »</a>, if provided allows speaking in a livestream or muted group chat.</td>
<td>The invitation hash from the <a href="/api/links#video-chatlivestream-links">invite link »</a>, if provided allows speaking in a livestream or muted group chat.</td>