How to Promote on Reddit Without Getting Banned
By Deepak Sangle, Founder, Bridgly
· 16 min read
You can promote on Reddit without getting banned by following the rules of each community you post in, helping people before you ever mention your product, saying plainly that you built it, and using the places that invite promotion: promo threads, showcase communities and posts where someone asked for a recommendation. Reddit does not ban promotion as such. Moderators remove accounts that look like they showed up only to promote.
This guide explains why accounts get banned, what to check before you post, and seven ways to promote that work inside the rules. It also includes three short scripts that find communities that allow promotion, find the threads where a mention is welcome, and show you what the viral posts in a community did differently. Doing this by hand takes hours, and the scripts do it in minutes.
Why people get banned for promoting on Reddit
Three different things can remove you, and they work differently:
- Community moderators. Every subreddit has its own rules, written and enforced by volunteers. Some allow product mentions, some allow them on one day a week, and some ban them completely. Moderators can remove a post, remove a comment, or ban you from their community.
- Automatic filters. Many communities use automated rules that hold or remove posts based on account age, karma, links, certain words or domains you have used before. These filters are often not listed in the public rules, so a post can disappear without a message you can learn from.
- Reddit itself. Reddit enforces site-wide rules against spam, which it defines as repeated or unsolicited actions, automated or manual, that harm people or communities. Spam can get an account suspended everywhere, not only banned from one community.
Reddit's own help pages are clear that promotional content is not automatically spam, and that some communities choose to allow none of it. That is why the same post can be fine in one place and bannable in another.
You may have heard of a 90/10 or 1-in-10 rule, which says no more than 10 percent of what you post should promote yourself. Reddit's help center describes it as an approach some communities use, not a site-wide rule. Treat it as a minimum standard of behaviour, because moderators who open your profile will judge the whole history, not a percentage. An account with nine thin comments and one link still looks like a funnel.
Before you post: check the community and your account
Spend ten minutes on each community before you share anything. Check these:
| Check | What to look for |
|---|---|
| Written rules | Any rule on self-promotion, links, advertising, affiliate links or "no spam" |
| Pinned and weekly posts | A promo thread, a "show your project" day or a sticky that explains what is allowed |
| Recent removals | Look at what moderators removed lately and why |
| Top posts of the month | What kind of posts earn upvotes, and whether any are from founders |
| Your own account | Age, karma, and what a moderator sees when they open your profile |
You can read this by hand, but it adds up fast. The Reddit subreddit endpoint returns a community's member count, whether posting is restricted and every rule as text, so you can pull and search the rules of many communities at once. The free Subreddit Stats Viewer shows the same details in the browser for one community, and the Bridgly MCP server lets you ask Claude or Cursor something like "read the rules of these ten subreddits and tell me which allow product mentions".
This only shows the public rules. It cannot show the automatic filters, which are hidden by design. Treat a quiet rules page as "unknown", not as "allowed".
Finding the communities that allow promotion
There are hundreds of thousands of communities on Reddit, and the rules differ in each. Opening them one by one to find out which ones allow a product mention, and when, is slow and boring, and most founders give up after a handful or guess.
Let the API do the first pass. This script searches for communities in your niche, takes the busiest few, and for each one prints whether a rule mentions promotion and whether a promo or showcase thread is currently pinned:
// find-communities.mts — run with: BRIDGLY_API_KEY=bgly_... npx tsx find-communities.mts
import { Bridgly } from '@bridgly/sdk';
const client = new Bridgly({ apiKey: process.env.BRIDGLY_API_KEY ?? '' });
const niches = ['indie hackers', 'saas founders', 'side projects'];
const promoRule = /promo|advertis|self[- ]?promotion|showcase/i;
const promoThread = /promo|showcase|self[- ]?promotion|share your|show off/i;
for (const query of niches) {
const found = await client.reddit.searchCommunities({ query });
if (found.type === 'error') {
console.error(`${query}: ${found.status} ${found.message}`);
continue;
}
const busiest = found.data.communities
.toSorted(
(a, b) => (b.weeklyContributions ?? 0) - (a.weeklyContributions ?? 0),
)
.slice(0, 5);
for (const community of busiest) {
const [info, feed] = await Promise.all([
client.reddit.getSubreddit({ subreddit: community.name }),
client.reddit.listSubredditPosts({
subreddit: community.name,
sort: 'hot',
}),
]);
if (info.type === 'error' || feed.type === 'error') continue;
const rule = info.data.rules.find((r) =>
promoRule.test(`${r.shortName ?? ''} ${r.description ?? ''}`),
);
const thread = feed.data.posts.find(
(post) => post.stickied && promoThread.test(post.title ?? ''),
);
console.log(
`\n${community.namePrefixed} · ${community.weeklyContributions ?? 'unknown'} posts and comments this week`,
);
console.log(` promotion rule: ${rule?.shortName ?? 'none found'}`);
console.log(
` pinned promo thread: ${thread?.postUrl ?? 'none right now'}`,
);
}
}
That is one search plus two requests per community, about 11 credits per niche. You end up with a shortlist of communities that either say something about promotion or already have a place for it, and you read the rules of only those.
To work out when to post, look at the pattern. Many promo threads repeat on a schedule. Search that community's posts for "self promotion" or "showcase" with the subreddit filter set, and look at the dates of the past threads. If they appear every Monday, that is your day.
Seven ways to promote on Reddit that moderators accept
1. Help in existing threads, and say who you are
This is the safest method and the one that lasts longest. Find questions in communities where your buyers hang out, and answer them well, without a link. When someone asks for a tool, a method or an opinion your product can answer, you can mention it in a reply, as long as three things are true:
- The thread asked for it, or the mention clearly answers the question.
- The answer is useful even with the product name removed.
- You say you built it.
A short disclosure is enough: "I'm the founder of X, so I'm biased, but here is how I would handle this…". Pretending to be an unrelated happy customer is the quickest way to lose trust, and moderators and users are good at spotting it.
Finding those questions is the slow part. Scrolling through communities by hand, one at a time, to spot the threads where your expertise fits can eat hours every week. The Bridgly API does that search for you. Search Reddit posts and search Reddit comments for the questions and problems in your niche, or list a community's newest posts every morning, and you get a list of fresh threads with links. Then you spend your time writing good answers instead of looking for places to write them. The "recommendation requests" script in option 5 shows one way to do this.
Build a history first. Many practitioners suggest around a month of real participation in a community before the first mention. That is a rule of thumb, not a requirement, but an account that has only ever posted about its own product will be treated as an advertiser.
2. Use the places that invite promotion
Many communities set aside a regular thread, often weekly, where self-promotion is allowed. Others exist for sharing what you are building, such as communities for side projects and early feedback. Find them with a search for "promo", "self-promotion" or "showcase" in the community's pinned posts, and read the format rules, which are often strict about title format, one post per product and what you must disclose.
Posts in these places usually get fewer views than a front-page post, but they carry almost no risk. If the thread says to post there, do exactly that.
With so many communities, finding which ones have such a thread is the hard part. The community-finding script above lists the ones in your niche that mention promotion in their rules or have a promo thread pinned right now.
3. Ask the moderators first
If you are not sure, ask. A short message to the moderators takes two minutes and removes the risk:
Hi, I'm the founder of [product], which [one-sentence description]. I'd like to share [a short guide / a free tool / a launch post] that I think your members would find useful. Is this allowed here, and if so, what format do you prefer?
Moderators are volunteers who are protecting their community from spam. A founder who asks first, is honest about their interest and offers something useful is rarely the problem. If they say no, you have lost nothing and you now know the rule.
4. Post something worth reading, with the product as a footnote
The posts that do well and survive are the ones that would be worth reading if the product did not exist: a lesson from building it, original data, a teardown, a free template or a clear how-to. Put the product in one line at the end, with disclosure, or leave it for a reply if someone asks.
Use this test before you post. Delete the product name, the link and any call to action. If what is left still teaches something specific, it is a contribution with a disclosed commercial note. If what is left is a teaser, it is an advertisement.
To see what earns upvotes in a community, look at its top posts. Every community has a few outliers: posts that get ten or a hundred times the attention of a typical one. They are the best free lesson you will get, because they show what that audience wants. Combine two endpoints to find them: post search for the topic you want to write about, and the subreddit posts endpoint to measure what a normal post gets. Then use the post endpoint to read the full text and top comments of each outlier.
This script does all three. It finds the best posts on your topic in one community, keeps the ones that scored at least ten times the community's median, and prints a prompt you can paste into an AI assistant:
// find-outliers.mts — run with: BRIDGLY_API_KEY=bgly_... npx tsx find-outliers.mts
import { Bridgly } from '@bridgly/sdk';
const client = new Bridgly({ apiKey: process.env.BRIDGLY_API_KEY ?? '' });
const subreddit = 'SideProject';
const topic = 'customer interviews';
const [search, feed] = await Promise.all([
client.reddit.searchPosts({
query: topic,
subreddit,
sort: 'top',
time: 'year',
}),
client.reddit.listSubredditPosts({ subreddit, sort: 'new' }),
]);
if (search.type === 'error' || feed.type === 'error') {
console.error('Could not load posts.');
process.exit(1);
}
// A normal post's score: the median of the latest page of posts.
const scores = feed.data.posts
.map((post) => post.score ?? 0)
.toSorted((a, b) => a - b);
const median = scores[Math.floor(scores.length / 2)] ?? 0;
const outliers = search.data.posts
.filter((post) => (post.score ?? 0) >= Math.max(10 * median, 10))
.slice(0, 3);
for (const outlier of outliers) {
const detail = await client.reddit.getPost({
url: outlier.postUrl,
sort: 'top',
});
if (detail.type === 'error') continue;
const { post, comments } = detail.data;
const topComments = comments
.slice(0, 5)
.map((comment) => `- (${comment.score}) ${comment.body?.slice(0, 300)}`)
.join('\n');
console.log(
`\n--- ${post.title} (${post.score} points, median is ${median}) ---`,
);
console.log(
`This post did far better than normal in r/${subreddit}. Explain why it worked: the title, the opening, the format, what readers got from it and what the top comments praised or questioned. Then list five patterns I can reuse.\n\nTitle: ${post.title}\n\n${post.selftext}\n\nTop comments:\n${topComments}`,
);
}
Paste each prompt into an assistant and ask it to find the pattern. If you use Claude or Cursor with the Bridgly MCP server, you can skip the script and ask it directly: "find the top posts about customer interviews in r/SideProject from the last year and tell me why the best ones worked".
Then write your own post using the pattern, not the original's words. Use an assistant to sketch a draft if you like, but check the facts, put in your own experience and numbers, rewrite it in your voice, and read the community's rules once more before you post. Copying a viral post, or posting something generic that an assistant wrote, is the quickest way to be removed.
5. Answer recommendation requests when they appear
The one moment a mention is positively welcome is when someone asks for it: "what tool do you use for…", "any alternatives to…", "can anyone recommend…". These threads are short-lived, and the first helpful answers get most of the attention, so speed matters.
This script checks the newest posts in your target communities and prints the ones from the last three days that look like a request:
// find-asks.mts — run with: BRIDGLY_API_KEY=bgly_... npx tsx find-asks.mts
import { Bridgly } from '@bridgly/sdk';
const client = new Bridgly({ apiKey: process.env.BRIDGLY_API_KEY ?? '' });
const subreddits = ['SideProject', 'startups', 'SaaS'];
const ask =
/recommend|alternative|looking for|any tool|best tool|what do you use/i;
const DAY_MS = 86_400_000;
for (const subreddit of subreddits) {
const res = await client.reddit.listSubredditPosts({
subreddit,
sort: 'new',
});
if (res.type === 'error') {
console.error(`${subreddit}: ${res.status} ${res.message}`);
continue;
}
const asks = res.data.posts.filter(
(post) =>
ask.test(post.title ?? '') &&
post.createdAt != null &&
Date.now() - Date.parse(post.createdAt) < 3 * DAY_MS,
);
console.log(`\nr/${subreddit}: ${asks.length} recent requests`);
for (const post of asks) {
console.log(`- ${post.title}`);
console.log(` ${post.postUrl}`);
}
}
You can also search Reddit comments for the same phrases across all communities. Read each thread yourself and reply only where your product honestly fits. If it is a poor fit, write a helpful answer that does not mention it, or skip the thread. The same approach finds customers in general, which is covered in how to find your first 10 customers.
6. Run a founder Q&A with moderator approval
Some communities host question-and-answer sessions with founders and experts. These need the moderators' agreement, so message them first with a clear topic, such as "I built X after Y years in Z, ask me about it". A good session is about the topic, not the product, and it works best in a community related to your field where you already contribute.
Finding which communities host these sessions at all is tedious by hand. Use post search with words like "AMA", "ask me anything" or "Q&A", and look at which communities the results come from and how recent they are. A community with several recent sessions has a format you can follow. One with none probably does not want them, or has never been asked.
7. Pay for it with Reddit Ads
If a community bans promotion completely, or you do not want to build a history first, Reddit sells ads. Promoted posts are labelled, appear in feeds and conversations, and are not subject to a community's self-promotion rules, though Reddit's own ad policies apply. Ads cost money and Reddit users can be sceptical of obvious advertising, so an ad works best when it would also earn upvotes as a normal post: useful, specific and honest.
Paid and organic work together. Use the research from the earlier steps to decide which communities and topics to target, and keep answering people honestly in the threads under your ad.
Audit your own account before a moderator does
Moderators check the profile of anyone who posts a link. They look at how old the account is, what it has said elsewhere and how often it mentions the same product or domain. Run the same check on yourself. Open your own profile and count how many of your last 50 or so posts and comments mention your product or link to your site. You can see the full history in the free Reddit User Viewer, or pull it with the user posts and user comments endpoints if you want to count automatically.
If the share is above roughly 10 percent, stop mentioning your product for a while and add real contributions in your field. If the account is new, with little history, expect strict communities to filter it however carefully you write.
What to do if a post is removed or you are banned
- Read the removal reason or the rule they cite. It usually tells you exactly what to change.
- Do not repost the same thing. Reposting a removed post is how a removal becomes a ban.
- Message the moderators once, politely. Say what you intended, ask what would be acceptable, and accept the answer.
- Never create another account to get around a ban. Reddit treats ban evasion as a violation of its site-wide rules, and it can get your main account suspended too.
- If Reddit itself suspended the account, use the appeal option shown in the notice, not moderator messages.
Mistakes that get accounts banned
- Posting the same link in many communities in a short time.
- Writing a post that reads like a press release or a launch announcement.
- Hiding that you work on the product.
- Asking friends, a team or a service to upvote. Reddit's rules treat artificially inflating exposure as spam, and moderators watch for it.
- Replying to every thread with the same product pitch.
- Using automation or scripts to post or comment. Reddit's spam rules cover automated and manual actions alike. The scripts above only read public information, and every post or comment should be written and sent by you.
- Arguing with moderators in public.
A four-week plan
| Week | What to do |
|---|---|
| 1 | Pick 3 to 5 communities. Run the rules script, read their pinned posts and note which allow promotion and how. |
| 2 | Comment helpfully in those communities every day or two, with no links and no product mentions. |
| 3 | Reply to a recommendation request or two with a disclosed, useful answer. Message moderators about anything you plan to post. |
| 4 | Share one post that stands on its own, in the right place and format. Run the account audit and adjust. |
After that, keep the habit going. The accounts that do well on Reddit are the ones that keep contributing when there is nothing to promote.
Frequently asked questions
Is self-promotion allowed on Reddit?
Reddit does not ban promotion across the site, and its help pages say that promotional content is not inherently spam. Each community sets its own rules, and some ban it entirely. Always read the rules of the specific community before posting.
Is the 10 percent rule real?
It is a long-standing guideline that some communities follow and some moderators remember, but it is not a site-wide rule and it is not a guarantee of safety. Moderators judge your whole history and intent, so use it as a minimum, not a permission.
How much karma do I need before I can promote?
There is no universal number. Some communities require a minimum account age or karma and filter posts from accounts below it, without saying so publicly. If a post disappears, ask the moderators what the requirement is.
Can I put a link to my website in a comment?
Sometimes. Many communities allow a relevant link in a helpful answer, and some filter or ban links from new accounts. Answer the question in full without the link first, and add it only if the community allows it and the person would find it useful.
Can I use a second account for my product?
Using a separate account for a business is fine if you are honest about it. Using another account to get around a ban is ban evasion, and it can get both accounts suspended.
Does this guarantee I won't be banned?
No. Moderators make their own decisions, and their automatic filters are not public. Following the steps above removes the common reasons for a ban, and asking the moderators removes most of the rest.
Sources
- Reddit Help, How do I keep spam out of my community?
- Reddit Help, What constitutes spam? Am I a spammer?
- Reddit Help, My account was banned for spam, inauthentic activity, or ban evasion
- Reddit, Reddit Rules
- Soar, Reddit's 1-in-10 self-promotion rule (how moderators and automatic filters review accounts)
Deepak Sangle is the founder of Bridgly. He has three years of experience building software products, including at Y Combinator-backed startups. He started Bridgly to give developers and AI agents fast social data with the same input and output schema on every platform, so one integration works everywhere and agents can call any endpoint without guesswork.
