telegram-crawler/data/web/core.telegram.org/api/boost.html
2024-02-14 11:37:12 +00:00

182 lines
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html class="">
<head>
<meta charset="utf-8">
<title>Channel boosts</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Telegram Premium users can grant their favorite channels additional features like the ability to post stories by giving them boosts.">
<meta property="og:title" content="Channel boosts">
<meta property="og:image" content="">
<meta property="og:description" content="Telegram Premium users can grant their favorite channels additional features like the ability to post stories by giving them boosts.">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
<link rel="alternate icon" href="/img/favicon.ico" type="image/x-icon" />
<link href="/css/bootstrap.min.css?3" rel="stylesheet">
<link href="/css/telegram.css?236" rel="stylesheet" media="screen">
<style>
</style>
</head>
<body class="preload">
<div class="dev_page_wrap">
<div class="dev_page_head navbar navbar-static-top navbar-tg">
<div class="navbar-inner">
<div class="container clearfix">
<ul class="nav navbar-nav navbar-right hidden-xs"><li class="navbar-twitter"><a href="https://twitter.com/telegram" target="_blank" data-track="Follow/Twitter" onclick="trackDlClick(this, event)"><i class="icon icon-twitter"></i><span> Twitter</span></a></li></ul>
<ul class="nav navbar-nav">
<li><a href="//telegram.org/">Home</a></li>
<li class="hidden-xs"><a href="//telegram.org/faq">FAQ</a></li>
<li class="hidden-xs"><a href="//telegram.org/apps">Apps</a></li>
<li class="active"><a href="/api">API</a></li>
<li class=""><a href="/mtproto">Protocol</a></li>
<li class=""><a href="/schema">Schema</a></li>
</ul>
</div>
</div>
</div>
<div class="container clearfix">
<div class="dev_page">
<div id="dev_page_content_wrap" class=" ">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/api/boost" >Channel boosts</a></li></ul></div>
<h1 id="dev_page_title">Channel boosts</h1>
<div id="dev_page_content"><!-- scroll_nav -->
<p><a href="/api/premium">Telegram Premium</a> users can grant their favorite channels additional features like the ability to post <a href="/api/stories">stories</a> by giving them <strong>boosts</strong>. </p>
<p>Channels level up as they gain more boosts and for each level, they gain additional features. </p>
<p>Additionally, channel admins may gain even more boosts by starting <a href="/api/giveaways">giveaways »</a>. </p>
<p>The maximum possible boost level for a channel is specified in the <a href="/api/config#boosts-channel-level-max">boosts_channel_level_max</a> config key.</p>
<p>Schema:</p>
<pre><code><a href='/constructor/myBoost'>myBoost</a>#c448415c flags:<a href='/type/%23'>#</a> slot:<a href='/type/int'>int</a> peer:flags.0?<a href='/type/Peer'>Peer</a> date:<a href='/type/int'>int</a> expires:<a href='/type/int'>int</a> cooldown_until_date:flags.1?<a href='/type/int'>int</a> = <a href='/type/MyBoost'>MyBoost</a>;
<a href='/constructor/premium.myBoosts'>premium.myBoosts</a>#9ae228e2 my_boosts:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MyBoost'>MyBoost</a>&gt; chats:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Chat'>Chat</a>&gt; users:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/User'>User</a>&gt; = <a href='/type/premium.MyBoosts'>premium.MyBoosts</a>;
<a href='/constructor/prepaidGiveaway'>prepaidGiveaway</a>#b2539d54 id:<a href='/type/long'>long</a> months:<a href='/type/int'>int</a> quantity:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> = <a href='/type/PrepaidGiveaway'>PrepaidGiveaway</a>;
<a href='/constructor/premium.boostsStatus'>premium.boostsStatus</a>#4959427a flags:<a href='/type/%23'>#</a> my_boost:flags.2?<a href='/constructor/true'>true</a> level:<a href='/type/int'>int</a> current_level_boosts:<a href='/type/int'>int</a> boosts:<a href='/type/int'>int</a> gift_boosts:flags.4?<a href='/type/int'>int</a> next_level_boosts:flags.0?<a href='/type/int'>int</a> premium_audience:flags.1?<a href='/type/StatsPercentValue'>StatsPercentValue</a> boost_url:<a href='/type/string'>string</a> prepaid_giveaways:flags.3?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/PrepaidGiveaway'>PrepaidGiveaway</a>&gt; my_boost_slots:flags.2?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/int'>int</a>&gt; = <a href='/type/premium.BoostsStatus'>premium.BoostsStatus</a>;
<a href='/constructor/boost'>boost</a>#2a1c8c71 flags:<a href='/type/%23'>#</a> gift:flags.1?<a href='/constructor/true'>true</a> giveaway:flags.2?<a href='/constructor/true'>true</a> unclaimed:flags.3?<a href='/constructor/true'>true</a> id:<a href='/type/string'>string</a> user_id:flags.0?<a href='/type/long'>long</a> giveaway_msg_id:flags.2?<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> expires:<a href='/type/int'>int</a> used_gift_slug:flags.4?<a href='/type/string'>string</a> multiplier:flags.5?<a href='/type/int'>int</a> = <a href='/type/Boost'>Boost</a>;
<a href='/constructor/premium.boostsList'>premium.boostsList</a>#86f8613c flags:<a href='/type/%23'>#</a> count:<a href='/type/int'>int</a> boosts:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Boost'>Boost</a>&gt; next_offset:flags.0?<a href='/type/string'>string</a> users:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/User'>User</a>&gt; = <a href='/type/premium.BoostsList'>premium.BoostsList</a>;
---functions---
<a href='/method/premium.getMyBoosts'>premium.getMyBoosts</a>#0be77b4a = <a href='/type/premium.MyBoosts'>premium.MyBoosts</a>;
<a href='/method/premium.applyBoost'>premium.applyBoost</a>#6b7da746 flags:<a href='/type/%23'>#</a> slots:flags.0?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/int'>int</a>&gt; peer:<a href='/type/InputPeer'>InputPeer</a> = <a href='/type/premium.MyBoosts'>premium.MyBoosts</a>;
<a href='/method/premium.getBoostsStatus'>premium.getBoostsStatus</a>#042f1f61 peer:<a href='/type/InputPeer'>InputPeer</a> = <a href='/type/premium.BoostsStatus'>premium.BoostsStatus</a>;
<a href='/method/premium.getUserBoosts'>premium.getUserBoosts</a>#39854d1f peer:<a href='/type/InputPeer'>InputPeer</a> user_id:<a href='/type/InputUser'>InputUser</a> = <a href='/type/premium.BoostsList'>premium.BoostsList</a>;
<a href='/method/premium.getBoostsList'>premium.getBoostsList</a>#60f67660 flags:<a href='/type/%23'>#</a> gifts:flags.0?<a href='/constructor/true'>true</a> peer:<a href='/type/InputPeer'>InputPeer</a> offset:<a href='/type/string'>string</a> limit:<a href='/type/int'>int</a> = <a href='/type/premium.BoostsList'>premium.BoostsList</a>;</code></pre>
<p>Each user has a certain number of boost slots that can be assigned to channels: the precise number depends on whether they bought or were gifted a <a href="/api/premium">Premium</a> subscription, and can be fetched using <a href="/method/premium.getMyBoosts">premium.getMyBoosts</a>, along with info about the channels currently occupying each slot, if any. </p>
<p><a href="/api/premium#gifting-telegram-premium">Gifting a Telegram Premium</a> subscription to another user will create <a href="/api/config#boosts-per-sent-gift">boosts_per_sent_gift</a> new boost slots for us, and one boost slot for the destination user. </p>
<p>Use <a href="/method/premium.applyBoost">premium.applyBoost</a> to assign some of your boost slots to a channel. </p>
<p>A <code>PREMIUM_ACCOUNT_REQUIRED</code> error will be returned if the current account does not have a <a href="/api/premium">Telegram Premium</a> subscription.<br>
A <code>BOOST_NOT_MODIFIED</code> RPC error will be returned when calling any of the two methods if the user is already boosting the specified channel with the same slots. </p>
<p>After assigning a slot a channel, the user may not change the boosted channel for that slot for a certain cooldown period, specified in the <a href="/constructor/myBoost">myBoost</a>.<code>cooldown_until_date</code> field: if the cooldown period isn't over yet, the method will return a 420 <code>FLOOD_WAIT_X</code> error, indicating the number of seconds left before a different channel can be boosted. </p>
<p>Users may also invoke <a href="/method/premium.getBoostsStatus">premium.getBoostsStatus</a>, to get the current boost status of a channel as a <a href="/constructor/premium.boostsStatus">premium.boostsStatus</a> constructor, check out the <a href="/constructor/premium.boostsStatus">constructor page</a> for more info.</p>
<p>Channel administrators may invoke <a href="/method/premium.getBoostsList">premium.getBoostsList</a> to fetch the list of users currently boosting the channel, and <a href="/method/premium.getUserBoosts">premium.getUserBoosts</a> to get info about the boosts sent to a channel by a specific user.</p>
<h3><a class="anchor" href="#features" id="features" name="features"><i class="anchor-icon"></i></a>Features</h3>
<h4><a class="anchor" href="#posting-stories-as-a-channel" id="posting-stories-as-a-channel" name="posting-stories-as-a-channel"><i class="anchor-icon"></i></a>Posting stories as a channel</h4>
<p>With each boost, channels can post 1 additional story per day to their subscribers' story feeds.</p>
<pre><code><a href='/constructor/inputPeerChannel'>inputPeerChannel</a>#27bcbbfc channel_id:<a href='/type/long'>long</a> access_hash:<a href='/type/long'>long</a> = <a href='/type/InputPeer'>InputPeer</a>;
<a href='/constructor/messages.chats'>messages.chats</a>#64ff9fd5 chats:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Chat'>Chat</a>&gt; = <a href='/type/messages.Chats'>messages.Chats</a>;
---functions---
<a href='/method/stories.getChatsToSend'>stories.getChatsToSend</a>#a56a8b60 = <a href='/type/messages.Chats'>messages.Chats</a>;</code></pre>
<p>Everything works exactly the same as when <a href="/api/stories#posting-stories">posting stories as a user</a>, with the only difference that clients should pass the appropriate <a href="/constructor/inputPeerChannel">inputPeerChannel</a> instead of <a href="/constructor/inputPeerSelf">inputPeerSelf</a> to <a href="/method/stories.canSendStory">stories.canSendStory</a>, <a href="/method/stories.sendStory">stories.sendStory</a> and all the other story methods, see the <a href="/api/stories#posting-stories">main documentation »</a> for more info. </p>
<p>Use <a href="/method/stories.getChatsToSend">stories.getChatsToSend</a> to obtain a list of channels where the user can post stories; <a href="/method/stories.canSendStory">stories.canSendStory</a> must still be used before uploading a story to make sure no other limit was reached, as described in the <a href="/api/stories#posting-stories">main documentation »</a>.</p>
<h4><a class="anchor" href="#changing-message-accent-color" id="changing-message-accent-color" name="changing-message-accent-color"><i class="anchor-icon"></i></a>Changing message accent color</h4>
<p>After reaching at least the boost level specified in the <code>channel_min_level</code> field of the <a href="/constructor/help.peerColorOption">help.peerColorOption</a> constructor for the chosen palette, channels gain the ability to change their <a href="/api/colors">message accent palette »</a>. </p>
<h4><a class="anchor" href="#changing-message-accent-emoji" id="changing-message-accent-emoji" name="changing-message-accent-emoji"><i class="anchor-icon"></i></a>Changing message accent emoji</h4>
<p>After reaching at least the boost level specified in the <a href="/api/config#channel-bg-icon-level-min"><code>channel_bg_icon_level_min</code> config parameter</a>, channels gain the ability to change the emoji used in the <a href="/api/colors">message accent palette »</a>. </p>
<h4><a class="anchor" href="#changing-profile-accent-color-emoji" id="changing-profile-accent-color-emoji" name="changing-profile-accent-color-emoji"><i class="anchor-icon"></i></a>Changing profile accent color/emoji</h4>
<p>After reaching at least the boost level specified in the <a href="/api/config#channel-bg-icon-level-min"><code>channel_profile_bg_icon_level_min</code> config parameter</a> and the boost level specified in the <code>channel_min_level</code> field of the <a href="/constructor/help.peerColorOption">help.peerColorOption</a> constructor for the chosen palette, channels gain the ability to change the emoji and color used in the <a href="/api/colors">profile accent palette »</a>. </p>
<h4><a class="anchor" href="#setting-wallpapers" id="setting-wallpapers" name="setting-wallpapers"><i class="anchor-icon"></i></a>Setting wallpapers</h4>
<p>After reaching at least the boost level specified in the <a href="/api/config#channel-wallpaper-level-min"><code>channel_wallpaper_level_min</code> config parameter</a>, channels gain the ability to set a <a href="/api/wallpapers#channel-wallpapers">fill channel wallpaper, see here » for more info</a>.<br>
After reaching at least the boost level specified in the <a href="/api/config#channel-custom-wallpaper-level-min"><code>channel_custom_wallpaper_level_min</code> config parameter</a>, channels gain the ability to set any custom <a href="/api/wallpapers">wallpaper</a>, not just <a href="/api/wallpapers">fill channel wallpapers, see here » for more info</a>. </p>
<h4><a class="anchor" href="#setting-a-custom-emoji-status" id="setting-a-custom-emoji-status" name="setting-a-custom-emoji-status"><i class="anchor-icon"></i></a>Setting a custom emoji status</h4>
<p>After reaching at least the boost level specified in the <a href="/api/config#channel-emoji-status-level-min"><code>channel_emoji_status_level_min</code> config parameter</a>, channels gain the ability to change their <a href="/api/emoji-status">status emoji »</a>.</p></div>
</div>
</div>
</div>
<div class="footer_wrap">
<div class="footer_columns_wrap footer_desktop">
<div class="footer_column footer_column_telegram">
<h5>Telegram</h5>
<div class="footer_telegram_description"></div>
Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.
</div>
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
<ul>
<li><a href="//telegram.org/faq">FAQ</a></li>
<li><a href="//telegram.org/privacy">Privacy</a></li>
<li><a href="//telegram.org/press">Press</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#mobile-apps">Mobile Apps</a></h5>
<ul>
<li><a href="//telegram.org/dl/ios">iPhone/iPad</a></li>
<li><a href="//telegram.org/android">Android</a></li>
<li><a href="//telegram.org/dl/web">Mobile Web</a></li>
</ul>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps#desktop-apps">Desktop Apps</a></h5>
<ul>
<li><a href="//desktop.telegram.org/">PC/Mac/Linux</a></li>
<li><a href="//macos.telegram.org/">macOS</a></li>
<li><a href="//telegram.org/dl/web">Web-browser</a></li>
</ul>
</div>
<div class="footer_column footer_column_platform">
<h5><a href="/">Platform</a></h5>
<ul>
<li><a href="/api">API</a></li>
<li><a href="//translations.telegram.org/">Translations</a></li>
<li><a href="//instantview.telegram.org/">Instant View</a></li>
</ul>
</div>
</div>
<div class="footer_columns_wrap footer_mobile">
<div class="footer_column">
<h5><a href="//telegram.org/faq">About</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/blog">Blog</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/apps">Apps</a></h5>
</div>
<div class="footer_column">
<h5><a href="/">Platform</a></h5>
</div>
<div class="footer_column">
<h5><a href="//telegram.org/press">Press</a></h5>
</div>
</div>
</div>
</div>
<script src="/js/main.js?47"></script>
<script src="/js/jquery.min.js?1"></script>
<script src="/js/bootstrap.min.js?1"></script>
<script>window.initDevPageNav&&initDevPageNav();
backToTopInit("Go up");
removePreloadInit();
</script>
</body>
</html>