<metaproperty="description"content="Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.">
<metaproperty="og:description"content="Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.">
<p>Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app. It is a part of Telegram’s <strong>sustainable monetization</strong>– driven by our users, rather than advertisers or shareholders. This way, Telegram can remain independent and prioritize its users first. </p>
<blockquote>
<p>This page describes how should client apps handle Premium features: for a user-friendly overview of Telegram Premium features, see the <ahref="https://telegram.org/faq_premium">Telegram Premium FAQ</a>.</p>
<p>Premium users will have the <code>premium</code> flag of the <ahref="/constructor/user">user</a> set. </p>
<p>Use <ahref="/method/users.getUsers">users.getUsers</a> with <ahref="/constructor/inputUserSelf">inputUserSelf</a> to fetch info about the current subscription status of the current user.<br>
You can also directly use <ahref="/method/help.getPremiumPromo">help.getPremiumPromo</a>, as it will return info about the current user in the <code>users</code> field. </p>
<p>Telegram Premium offers a set of additional features and raised limits: clients should be aware of the current subscription status to accordingly modify client behavior. </p>
<p>Clients should show a Telegram Premium button in the settings.<br>
Clicking on this button in the settings, clicking on the <ahref="#badge">badge</a> of a Premium user or hitting one of the Premium limits listed below should open a Telegram Premium modal. </p>
<p>Call <ahref="/method/help.getPremiumPromo">help.getPremiumPromo</a> and <ahref="/method/help.getAppConfig">help.getAppConfig</a> to fetch info on how to build the premium modal. </p>
<p><ahref="/method/help.getAppConfig">help.getAppConfig</a> will return a list of Premium feature identifiers in the <ahref="/api/config#premium-promo-order"><code>premium_promo_order</code> appConfig field</a>: the modal should contain a row for each returned feature, ordered as specified in the returned array. </p>
<p><code>stories</code> - Premium users have various <ahref="/api/stories">Story</a>-related improvements:</p>
<ul>
<li>Stories posted by Premium users are shown first to users when fetching the list of active stories with <ahref="/method/stories.getAllStories">stories.getAllStories »</a>. </li>
<li>Premium users can activate <ahref="/api/stories#stealth-mode">stealth mode »</a></li>
<li>Premium users can <ahref="/api/stories#fetching-the-interaction-list">fetch the full viewer list of stories, even after they expire »</a></li>
<li>Premium users can set <ahref="/api/stories">custom expiration options when posting stories »</a></li>
<li>Premium users can post stories with longer captions, as specified by the <ahref="/api/config#story-caption-length-limit-default"><code>story_caption_length_limit_*</code> »</a> config keys.</li>
<li>Premium users can add more <ahref="/api/stories#media-areas">story reaction media areas »</a> to a story, as specified by the <ahref="/api/config#stories-suggested-reactions-limit-default"><code>stories_suggested_reactions_limit_*</code> »</a> config keys.</li>
<li>Premium users can <ahref="/api/entities">styled text entities</a> and links in story captions, as specified by the <ahref="/api/config#stories-entities">stories_entities »</a> config key.</li>
<li>Premium users can download non-protected stories.</li>
</ul>
<p>See the <ahref="/api/stories">stories documentation »</a> for more information on stories.</p>
</li>
<li>
<p><code>double_limits</code> - Clicking on this entry should open a secondary popup with a list of the <ahref="#premium-limits">improved Premium limits »</a>.</p>
</li>
<li>
<p><code>more_upload</code> - Premium users can upload bigger files, as specified by the <ahref="/api/config#upload-max-fileparts-default">upload_max_fileparts_default</a> vs <ahref="/api/config#upload-max-fileparts-premium">upload_max_fileparts_premium</a> config keys.</p>
</li>
<li>
<p><code>faster_download</code> - Premium users have no download speed limits.</p>
</li>
<li>
<p><code>wallpapers</code> - Premium users <ahref="/api/wallpapers#installing-wallpapers-in-a-specific-chat-or-channel">can set custom chat wallpapers both for them and the other user in the chat</a>.</p>
</li>
<li>
<p><code>peer_colors</code> - Premium users can <ahref="/api/colors">choose a custom color and background emoji for their profile background and messages</a>. </p>
</li>
<li>
<p><code>voice_to_text</code> - Premium users can <ahref="/api/transcribe">transcribe voice messages without limits</a>.</p>
</li>
<li>
<p><code>translations</code> - Premium users can enable <ahref="/api/translation">real-time chat translation</a>.</p>
</li>
<li>
<p><code>no_ads</code> - Premium users see no <ahref="/api/sponsored-messages">sponsored messages</a>.</p>
</li>
<li>
<p><code>unique_reactions</code> - Premium users have access to more <ahref="/api/reactions">message reactions</a>.</p>
</li>
<li>
<p><code>premium_stickers</code> - Premium users have access to premium <ahref="/api/stickers">stickersets</a>.</p>
</li>
<li>
<p><code>animated_emoji</code> - Premium users can send custom <ahref="/api/custom-emoji">animated emojis</a>.</p>
</li>
<li>
<p><code>advanced_chat_management</code> - Premium users can <ahref="/api/folders">reorder the default folder</a>, auto-archive and hide new chats from non-contacts.</p>
</li>
<li>
<p><code>profile_badge</code> - Premium users have a <ahref="#badge">badge</a> next to their name, showing that they are helping support Telegram.</p>
</li>
<li>
<p><code>animated_userpics</code> - <ahref="/api/files#animated-profile-pictures">Animated profile pictures</a> of Premium users will play in-chat and when browsing the dialog list.</p>
</li>
<li>
<p><code>app_icons</code> - Premium users can change the default icon of the Telegram app.</p>
</li>
<li>
<p><code>infinite_reactions</code> - Premium users can use <ahref="/api/custom-emoji">custom emojis</a> when <ahref="/api/reactions">reacting to messages</a>.</p>
</li>
<li>
<p><code>emoji_status</code> - Premium users can set a <ahref="/api/emoji-status">status emoji</a>.</p>
<p>The <ahref="/constructor/help.premiumPromo">help.premiumPromo</a> constructor returned by <ahref="/method/help.getPremiumPromo">help.getPremiumPromo</a> contains various info about the subscription, as described in the <ahref="/constructor/help.premiumPromo">constructor page</a>.</p>
<p>What follows is a list of <ahref="/api/config#client-configuration">appConfig integer config parameters</a>. </p>
<p>Note that whenever config keys end with a <code>*</code> in the following list, the <code>*</code> should be replaced with <code>premium</code> or <code>default</code>, to fetch the appropriate limit value for Premium and non-Premium users.</p>
<ul>
<li><code>reactions_user_max_*</code> - The maximum number of <ahref="/api/reactions">reactions</a> that can be added to a single message by the user.</li>
<li><code>channels_limit_*</code> - The maximum number of <ahref="/api/channel">channels and supergroups</a> a user may join.</li>
<li><code>saved_gifs_limit_*</code> - The maximum number of GIFs a user may save.</li>
<li><code>stickers_faved_limit_*</code> - The maximum number of stickers a user may <ahref="/api/stickers#favorite-stickersets">add to favorites</a>.</li>
<li><code>dialog_filters_limit_*</code> - The maximum number of <ahref="/api/folders">folders</a> a user may create.</li>
<li><code>dialog_filters_chats_*</code> - The maximum number of chats a user may add to a <ahref="/api/folders">folder</a>.</li>
<li><code>dialogs_pinned_limit_*</code> - The maximum number of chats a user may pin.</li>
<li><code>dialogs_folder_pinned_limit_*</code> - The maximum number of chats a user may pin in a folder.</li>
<li><code>channels_public_limit_*</code> - The maximum number of public <ahref="/api/channel">channels or supergroups</a> a user may create.</li>
<li><code>caption_length_limit_*</code> - The maximum UTF-8 length of media captions.</li>
<li><code>about_length_limit_*</code> - The maximum UTF-8 length of user bios.</li>
<li><code>chatlist_invites_limit_*</code> - Maximum number of per-folder <ahref="/api/links#chat-folder-links">chat folder deep links »</a> that can be created.</li>
<li><code>chatlists_joined_limit_*</code> - Maximum number of <ahref="/api/links#chat-folder-links">shareable folders</a> a user may have. </li>
<li><code>recommended_channels_limit_*</code> - The maximum number of similar channels that can be recommended by <ahref="/method/channels.getChannelRecommendations">channels.getChannelRecommendations»</a> to users.</li>
<li><code>saved_dialogs_pinned_limit_*</code> - Maximum number of pinned dialogs in <ahref="/api/saved-messages">saved messages</a>.</li>
<p>Users with a Telegram Premium subscription (<ahref="/constructor/user">user</a>.<code>premium</code> is set) should have a Telegram Premium badge next to their name. </p>
<p>The <ahref="/api/files#animated-profile-pictures">animated profile pictures</a> of Premium users should play inside of chats and dialog lists, and not just when opening the profile page.</p>
<p>The suggested sticker selection logic is slightly different for Premium users, see <ahref="/api/stickers#sticker-suggestions">here for more info »</a>.</p>
<h3><aclass="anchor"href="#subscribing-to-telegram-premium"id="subscribing-to-telegram-premium"name="subscribing-to-telegram-premium"><iclass="anchor-icon"></i></a>Subscribing to Telegram Premium</h3>
<p>Here's how to activate a Telegram Premium subscription, when the user clicks on the subscribe button:</p>
<ul>
<li>If the <code>premium_bot_username</code> field is set, call <ahref="/method/messages.startBot">messages.startBot</a>, specifying the following parameters:<ul>
<li><code>peer</code> and <code>bot</code>: The bot mentioned in <code>premium_bot_username</code></li>
<li><code>start_param</code>: One of the following values:<ul>
<li>If the user clicks on the subscribe button when viewing the promo page for a specific Premium feature, provide the feature identifier.</li>
<li>If the user clicks on the subscribe button after hitting a limit that Telegram Premium raises, provide <code>double_limits</code></li>
<li>If the user clicks on the subscribe button from the Telegram Premium button in the settings, provide <code>settings</code></li>
<li>If the user clicks on the subscribe button from the Telegram Premium star in a profile page, provide <code>profile</code>
Then, when the user clicks on the subscribe button in the sent invoice, follow the <ahref="/api/payments">usual payment flow for message invoices</a>. </li>
</ul>
</li>
</ul>
</li>
<li>Otherwise, if the <code>premium_invoice_slug</code> field is set, handle the payment as you would handle a <code>t.me/$premium_invoice_slug</code><ahref="/api/links#invoice-links">invoice deep link</a>.</li>
</ul>
<p>There is also a store-based subscription flow based on <ahref="/method/payments.assignAppStoreTransaction">payments.assignAppStoreTransaction</a>/<ahref="/method/payments.assignPlayMarketTransaction">payments.assignPlayMarketTransaction</a>, but it's currently not available to third-party apps (unlike the flow described above, which can be used by all clients).</p>
<p>Note: to gift a Premium subscriptions to multiple friends, the alternative payment flow <ahref="/api/giveaways">described here »</a> (<ahref="/constructor/inputStorePaymentPremiumGiftCode">inputStorePaymentPremiumGiftCode</a> without setting <code>boost_peer</code>) should be used, instead. </p>
<p>If after calling <ahref="/method/users.getFullUser">users.getFullUser</a> the resulting <ahref="/constructor/userFull">userFull</a> constructor has one or more <ahref="/constructor/premiumGiftOption">premiumGiftOptions</a> in the <code>premium_gifts</code> field, we can gift a non-recurring Telegram Premium subscription to this user. </p>
<p>The <ahref="/constructor/premiumGiftOption">premiumGiftOption</a> constructors contain an ordered list of Premium gift offers with discounts over the base price, according to the subscription duration: to process the gift payment open the <ahref="/api/links">deep link</a> contained in the <code>bot_url</code> field. </p>
<p>Once the payment is successfully processed, the user to which the gift was sent will automatically receive a <ahref="/constructor/messageService">messageService</a> from the user that sent the gift, containing a <ahref="/constructor/messageActionGiftPremium">messageActionGiftPremium</a> constructor with further info about the price and duration of the gifted Telegram Premium subscription.<br>
Clients should display this message, along with a sticker from the <ahref="/constructor/inputStickerSetPremiumGifts">inputStickerSetPremiumGifts</a><ahref="/api/stickers">stickerset</a>: here's an <ahref="https://telegram.org/blog/custom-emoji#gifting-telegram-premium">example</a>. </p>
<p>Note that if the <code>premium_gift_attach_menu_icon</code><ahref="/api/config#client-configuration">app configuration parameter</a> is <code>true</code>, a gift icon should be shown in the attachment menu in private chats with users, offering the current user to gift a <ahref="/api/premium">Telegram Premium</a> subscription to the other user in the chat. </p>
<p>If the <code>premium_gift_text_field_icon</code> parameter is also set, a gift icon should be shown in the text bar in private chats with users (ie like the <code>/</code> icon in chats with bots), offering the current user to gift a <ahref="/api/premium">Telegram Premium</a> subscription to the other user in the chat. Can only be true if <code>premium_gift_attach_menu_icon</code> is also true.</p>
<p>Note that even if the <code>premium_gifts</code> field is not set, we can still gift one (or more!) Premium subscriptions using the alternative payment flow <ahref="/api/giveaways">described here »</a> (<ahref="/constructor/inputStorePaymentPremiumGiftCode">inputStorePaymentPremiumGiftCode</a> without setting <code>boost_peer</code>). </p>
<p>Gifting a <ahref="/api/premium">Telegram Premium</a> subscription to another user will create <ahref="/api/config#boosts-per-sent-gift">boosts_per_sent_gift</a><ahref="/api/boost">boost slots »</a> for us, and one boost slot for the destination user. </p>
<p>If the <code>premium_purchase_blocked</code><ahref="/api/config#client-configuration">app configuration parameter</a> is set, the user can't purchase a Premium account, and all Telegram Premium features must be hidden (like the <ahref="#badge">badges</a> of Premium users, Telegram Premium purchase buttons, and so on).</p></div>