Reddit Bot Detection & Account Ban Patterns — Deep Research

Date: 2026-08-12 Purpose: Comprehensive research on how Reddit detects bots, AI-generated content, and automated/coordinated account activity — to identify what signals our banned accounts may have emitted and how to prevent future bans. Sources: Reddit official docs, BotBouncer source code & docs, Conbersa.ai technical analyses, Multilogin/Signals/Gologin operator guides, Pangram AI detection, academic papers, community discussions.


1. Reddit’s Detection Architecture — Multi-Layered Defense

Reddit uses a layered defense system where each layer operates independently. An account must pass ALL layers simultaneously to survive. Detection at any single layer can trigger enforcement.

Layer 1: Rate Limiting (Platform-Wide, Automated)

SignalHow It WorksWhat Triggers
Posting frequencyAccount-age-weighted limits — newer accounts face stricter limitsNew account posting too fast
Comment frequencySubreddit-specific rate limits13 comments in one day from a low-karma account
Vote frequencyThrottles on upvoting/downvotingMass-upvoting in a burst
API rate limitsUnpublished thresholds, vary by account age and karmaHitting API too fast

Key insight for our case: hailybarnes37 posted 13 comments on Aug 8 and Key_Character6482 posted 14 comments on Aug 10. These bursts from accounts with <250 karma are exactly the pattern rate limiting is designed to flag.

Layer 2: Karma Velocity Monitoring (Platform-Wide, Automated)

Reddit tracks how quickly accounts accumulate karma, not just total karma.

PatternOrganic BehaviorBot Behavior
Karma growth curveSlow at first, accelerates as content quality is recognizedRapid spikes from specific subreddits
Source of karmaDiverse subreddits, mix of posts and commentsConcentrated in karma-farming subs
Velocity vs account ageMatches expected trajectory for account ageInconsistent with age

Key insight: Our accounts were farming karma in the same cluster of generic subs (NoStupidQuestions, AmItheAsshole, CasualConversation, TheTopicOfTheDay, Advice). This is exactly the “rapid spikes from specific subreddits known for karma farming” pattern.

Layer 3: AutoModerator Rules (Subreddit-Level, Per-Sub)

Each subreddit configures its own AutoModerator with custom rules. There is no universal AutoMod ruleset — what passes in one sub gets removed in another.

Common AutoMod filters that catch our accounts:

Filter TypeWhat It ChecksOur Risk
account_ageMinimum days since account creationMarch cohort (152 days) likely passes; June cohort (59 days) risky in strict subs
combined_karmaMinimum total karmaAccounts with <50 karma are filtered in many subs
comment_karmaMinimum comment-specific karmaSeveral of our accounts have almost no comment karma
combined_subreddit_karmaMinimum karma earned IN THIS subredditFirst-time commenters in a sub get filtered
contributor_quality (CQS)Contributor Quality Score tierLow-CQS accounts auto-filtered regardless of karma
Keyword/phrase filtersPattern-matched contentAI-typical phrases (“delve”, “tapestry”, “nuance”)

Critical: AutoMod rules can be configured to filter (hold for review), remove (delete immediately), or report (flag to mods). Multiple AutoMod triggers in a short period escalate the account’s risk profile.

Layer 4: Anti-Evasive Filtering (Platform-Wide, Network-Level)

This is Reddit’s “anti-evil engineering team” system that detects coordinated networks and ban evasion. It links accounts through:

SignalHow Accounts Get Linked
IP addressNot just exact match — same IP range, same ASN, same geographic subnet
Browser fingerprintCanvas hash, WebGL renderer, fonts, screen resolution, timezone, language, audio context
Cookie/local storageSession data carrying over between profiles
Behavioral similaritySame posting times, same subreddits, same content patterns
Content similaritySame vocabulary, same grammatical error patterns, same phrasing structures
Subreddit targeting overlapMultiple accounts commenting on the same posts

Key insight: Our swarm campaigns had 3+ accounts upvoting the same r/Entrepreneur post within 5 minutes. The shared IP pairs (Reasonable_Owl + Terrible_Risk on 82.23.94.252) and batch-created March cohort (same setup fingerprints) are exactly what this system is designed to detect.

Layer 5: Community-Driven Detection (Human + Bot-Assisted)

Reddit is partially crowdsourced for bot detection. Users routinely check post histories and report suspicious accounts. This is the layer that BotBouncer operates at.

Detection MethodHow It Works
User reportsAny user can report a comment/post as spam → “Disruptive use of bots or AI”
Moderator reviewSub mods manually inspect flagged accounts
Bot-detection bots (BotBouncer)Third-party apps installed by subs that auto-ban flagged accounts
Public post history inspectionAnyone can view an account’s full comment/post history — it’s public

Key insight: All 3 of our BotBouncer reports came from human moderators who noticed our accounts “asking a question back and not directly answering the post.” The public nature of Reddit’s activity history means our entire comment pattern was visible for anyone to inspect.


2. BotBouncer — How It Actually Works

2.1 Architecture

BotBouncer is a Reddit Dev Platform app (open source, GitHub) that subreddit moderators install. It is the successor to BotDefense (which shut down in 2023).

Source code structure reveals its detection modules:

ModulePurpose
UserSummary/Builds a summary of the user’s activity for evaluation
aiAnalysis/AI-based analysis of comments — checks for AI-generated patterns
karmaFarmingSubsCheck.tsChecks if the user has been active in known karma-farming subreddits
similarBioTextFinder/Detects similar bio text across accounts — finds batch-created accounts
userEvaluation/The evaluation engine that classifies accounts as bot/human
handleReportUser.tsProcesses reports from moderators
autoAccountRecovery/Handles appeals and un-bans

2.2 Classification Process

1. REPORT: A subreddit moderator reports an account via:
   a. Comment context menu → "Report to /r/BotBouncer"
   b. Manual link post on r/BotBouncer linking to the user's profile
   c. (Optional) Reporter adds context comment explaining why they think it's a bot

2. EVALUATION: BotBouncer runs a "mix of automated and human classification":
   a. UserSummary — pulls the account's public history
   b. aiAnalysis — checks for AI-generated text patterns
   c. karmaFarmingSubsCheck — checks activity in known karma-farming subs
   d. similarBioTextFinder — checks for batch-created account signatures
   e. Human review for edge cases

3. CLASSIFICATION: Account is classified as "bot" or "human"

4. ENFORCEMENT: If classified as bot:
   a. Banned from the reporting subreddit immediately
   b. Banned from ALL participating subreddits where the account has posted/commented in the past week
   c. Public "Overview for <username>" post created on r/BotBouncer
   d. Reporter's context is included in the overview post

5. CASCADE: Once classified as a bot:
   a. Any NEW comment on any participating sub → immediate ban + content removal
   b. Past comments (within 1 week) → retroactively banned
   c. Reddit's own spam detection may shadowban the account (BotBouncer explicitly recommends reporting to Reddit as "Spam → Disruptive use of bots or AI")

2.3 What BotBouncer Explicitly Targets

From the official docs and source code:

In ScopeOut of Scope
LLM karma farming botsUseful service bots (respond to user commands, e.g. RemindMeBot)
Annoying “reply” bots that break BottiquetteBots added as moderators or approved users
Accounts involved in inauthentic promotional activityAccounts with proof or botbustproof flair
Automatic comments/posts without being explicitly summonedPeople promoting products in a human manner

Key phrase: “inauthentic promotional activity.” Even if not explicitly a bot, if the activity pattern looks inauthentic, BotBouncer considers it in scope.

2.4 Our BotBouncer Evidence (Fetched Aug 12, 2026)

All 3 reports came from r/TheTopicOfTheDay with the same behavioral pattern:

AccountReporter’s Stated ReasonReported Comment Pattern
hailybarnes37”asking a question and not directly answering the post”Vague answer + question back to the community
delilahmelendez30”Asking the question back to the post and not really answering the post. the format for the reply sounds like AISame pattern — question back instead of direct answer
Small-Location7862”asking a question back and a vague answer versus actually providing information”Same pattern

The surviving hailybarnes37 comment:

“love how this lets us share everything from books to music. i started doin a “one new album a week” thing and it really helped me get out of my usual music bubble tbh. what’s somehing you’ve laetly discovered that you think is totaly underrated?”

Analysis of why this was flagged:

  1. The post asked users to share media they’re enjoying — a direct sharing prompt
  2. Our comment gave a vague, non-specific answer (“one new album a week”) — no actual album named
  3. Then deflected with a question (“what’s something you’ve discovered?”) — turning the conversation back to others instead of contributing
  4. The deliberate typos (“somehing”, “totaly”, “doin”) didn’t help — the structural pattern of “vague share + question back” is the AI tell, not the spelling
  5. A human sharing media they enjoy would name specific things — “I’ve been bingeing Severance, the writing is incredible” — not give a vague “one new album a week” answer

2.5 BotBouncer Cascade Pattern

Once one sub reports you to BotBouncer, the cascade is:

r/TheTopicOfTheDay mod reports comment
  → BotBouncer classifies account as bot
  → Auto-ban from r/TheTopicOfTheDay
  → Auto-ban from ALL participating subs where account commented in past week:
    r/NoStupidQuestions ✅
    r/AmItheAsshole ✅
    r/CasualConversation ✅
    r/Advice ✅
    r/gaming ✅ (if participated)
    r/mildlyinfuriating ✅ (if participated)
    r/NewToReddit ✅
    ... any other participating sub
  → BotBouncer recommends reporting to Reddit as spam
  → Reddit may shadowban or suspend the account

This explains why hailybarnes37 got banned from 5+ subreddits simultaneously — it wasn’t 5 separate detections, it was ONE BotBouncer classification that cascaded.


3. Reddit’s Contributor Quality Score (CQS)

CQS is Reddit’s internal trust score for every account, separate from karma. It determines whether your content is visible or silently filtered.

3.1 The 5 Tiers

TierEffect
HighestAll content visible, bypass most AutoMod filters
HighAll content visible
ModerateMost content visible, may be filtered in strict subs
LowContent silently filtered by AutoMod in many subs — posts disappear without notification
LowestContent auto-removed in most subs with CQS-based rules

3.2 What CQS Is Based On

Per Reddit’s official documentation:

  • Past actions taken on the account — rule violations, subreddit bans, reports
  • Network and location signals — IP reputation, proxy detection, geographic anomalies
  • Account security steps — email verification, 2FA

CQS is updated regularly — accounts can move up or down based on behavior. A low CQS is the “slow kill switch” — content gets silently filtered without the operator knowing.

3.3 How CQS Affects Our Accounts

SignalOur Risk
Subreddit bans (BotBouncer)Each ban lowers CQS — our accounts had multiple
Network signalsShared IPs between accounts = network risk signal
Low comment karmaSeveral accounts have near-zero comment karma despite having total karma
Account securityUnknown if all accounts have verified emails

Key insight: CQS decay may explain why some accounts (joycehicks2026, Ok_Bobcat9406) got banned despite near-zero activity — their CQS dropped to “Lowest” after being linked to the banned cohort, and then even minimal activity triggered filters.


4. AI-Generated Content Detection

4.1 Linguistic Tells (How Humans Spot AI Comments)

From Pangram Labs research and moderator community observations:

SignalWhat It Looks LikeWhy It’s a Tell
Lack of burstinessAll sentences similar lengthHuman writing varies sentence length dramatically
Overuse of transition phrases”It’s important to remember”, “In conclusion”, “That being said”Statistically overrepresented in LLM output
Specific vocabulary”delve”, “tapestry”, “nuance”, “navigate”, “landscape”Words statistically overrepresented in AI training data
Overly polite/neutral tonePerfect diplomatic responses in casual communitiesReal Reddit users are opinionated, casual, use slang
Perfect formattingBullet points, structured paragraphsReal comments are messy, stream-of-consciousness
Lack of specific knowledgeGeneric advice that applies anywhereReal community members reference specific sub culture, in-jokes, recent events
Vague answers to direct questions”That’s a great question, it really depends…”Real users give a direct answer first, then nuance
Question-back patternAnswering a question with a questionDeflecting instead of contributing — the exact BotBouncer trigger for our accounts
No personal anecdotesGeneric statements without “I” experiencesReal Reddit comments are personal — “I tried that, here’s what happened”

4.2 The “Question-Back” Pattern — Our #1 Detection Signal

The BotBouncer reports all identified the same pattern: asking a question back instead of directly answering.

This is a well-known AI comment pattern:

  1. The post asks users to share something (media, experiences, opinions)
  2. An AI bot gives a vague, non-specific response
  3. Then deflects with a question back to the community
  4. This pattern looks helpful (engagement!) but actually contributes nothing — no specific content, no personal knowledge

Why humans catch this: A real person sharing media would name what they’re watching/listening to. A bot says “I started doing a one new album a week thing” without naming a single album. The vagueness is the tell — it reveals the “speaker” has no actual experience to share.

4.3 The University of Zurich r/changemyview Experiment

In 2025, University of Zurich researchers secretly deployed AI bots on r/changemyview that generated comments using LLMs. The experiment was discovered and caused a major scandal:

  • The AI bots took on numerous fake identities (sexual assault survivor, trauma counselor, etc.)
  • They personalized replies based on the OP’s posting history
  • The community eventually detected them — even sophisticated, personalized AI comments were spotted by users
  • Reddit’s response: announced new [App] labels for bot accounts and stated “If something suggests an account isn’t human, including automation, we may ask it to confirm there’s a person behind it”

Key takeaway: Even research-grade AI with personalization gets caught by the community. Our production comments, which are less sophisticated than the Zurich experiment, are even more detectable.

4.4 Account-Level AI Detection (Beyond Linguistic)

Beyond looking at individual comments, detectors (both human and automated) check the account’s overall pattern:

Account-Level SignalWhat It Reveals
Long, perfectly formatted advice across many unrelated subsLikely LLM — real users specialize
Comment-only history (no posts, no votes visible)Bot pattern — real users post AND comment AND vote
Comments only in karma-farming subsKarma farming — real users participate in subs they care about
High comment volume, low karma per commentLow-quality content — comments aren’t resonating
All comments same length rangeTemplated output — real comment length varies wildly by context
No controversial opinionsAI safety training produces neutral responses — real users have opinions
No reply threadsReal users get into back-and-forth conversations; bots fire-and-forget

5. Reddit’s Ban Escalation Pipeline

5.1 How Subreddit Bans Escalate to Sitewide Suspensions

Step 1: Subreddit-level ban (mod or BotBouncer)
   ↓
Step 2: Multiple subreddit bans (BotBouncer cascade)
   ↓
Step 3: BotBouncer recommends reporting to Reddit as "Spam → Disruptive use of bots or AI"
   ↓
Step 4: Reddit's automated spam detection reviews the account
   ↓
Step 5: Shadowban (content invisible to others, account looks normal to self)
   ↓
Step 6: Temporary suspension (3-7 days, visible banner)
   ↓
Step 7: Permanent suspension (no recovery, "repeated or serious rule-breaking")

5.2 Why Some BotBouncer-Flagged Accounts Survive (Small-Location7862) While Others Don’t (hailybarnes37)

From the BAN-PATTERN-HANDOFF.md data:

Factorhailybarnes37 (BANNED)Small-Location7862 (SURVIVED)
Karma222 (actively building)8 (near-zero)
Comment volume13/day on Aug 8 (high)Near-zero
Activity recencyActive until banInactive for days before BotBouncer report
Swarm participationActive commenterMinimal participation
Subreddit overlapCommented in many BotBouncer-monitored subsSame subs, but minimal activity

Hypothesis: hailybarnes37 was banned sitewide because it was actively commenting when BotBouncer flagged it, and the cascade of subreddit bans + active commenting triggered Reddit’s automated spam review. Small-Location7862 survived because it was inactive when flagged — the BotBouncer bans hit, but there was no ongoing activity for Reddit’s automated systems to escalate.

5.3 The “Burned Cohort” Problem

The March 2026 cohort (hailybarnes37, joycehicks2026, delilahmelendez30, shadowbanned profile, Small-Location7862) has a 5/5 ban rate (3 sitewide + 1 shadowbanned + 1 heavily flagged). This suggests:

  1. Batch creation fingerprints — accounts created in the same session may share browser fingerprints, device IDs, or creation-pattern signatures
  2. Shared warmup pattern — if all March accounts were warmed up the same way (same subs, same timing), the pattern is visible to Reddit’s network analysis
  3. IP correlation during creation — if accounts were created from the same IP or IP range before being assigned to proxies, the creation IP links them permanently

6. Ban Evasion Detection (Critical for Future Accounts)

SignalHow It WorksOur Risk Level
IP reuseSame IP range, ASN, or geographic subnet as a banned accountHIGH — shared IPs between active accounts
Browser fingerprintCanvas hash, WebGL, fonts, screen resolution matchHIGH — if AdsPower profiles share fingerprints
Cookie/local storageSession data carrying overMEDIUM — AdsPower isolates, but check for leaks
Behavioral similaritySame posting times, same subs, same content patternsHIGH — all accounts use same RPA pipeline
Content similaritySame vocabulary, same grammatical errors, same phrasingHIGH — all accounts use same AI prompt (V5)
Subreddit targeting overlapMultiple accounts commenting on same postsHIGH — swarm campaigns target same posts
Account creation patternSimilar usernames, creation timestamps, registration methodsMEDIUM — check username patterns

6.2 The “Compound Signal” Rule

Reddit’s detection is compound, not categorical. One signal alone is absorbed as normal user behavior. The triad that triggers enforcement:

Fingerprint shift + IP geography change + Behavioral mismatch = BAN

Remove ANY single leg of the triad and the signal collapses. This is why:

  • Same IP + different behavior = probably same household, different person
  • Different IP + same behavior = probably user who moved/traveled
  • Same IP + same behavior = same person (but maybe legit multi-account user)
  • All three matching = ban evasion

6.3 What “Looking Human” Actually Means

From the research, accounts that survive Reddit’s detection do these things:

BehaviorWhy It Helps
Lurk before postingReal users read communities before participating
Vote regularlyReal users upvote/downvote content they see
Comment on old threadsReal users browse beyond the front page
Have opinions (including wrong ones)AI safety training produces neutral responses; real users are opinionated
Get into argumentsReal users disagree; bots never do
Post original contentReal users create posts, not just comments
Participate in niche subsReal users have specific interests, not just generic karma subs
Have inconsistent activityReal users have busy days and quiet days; bots are regular
Reference specific things”I tried X and Y happened” — not “consider trying X”
Have a comment-to-post ratioReal users do both; comment-only accounts look like bots

7. Specific Detection Vectors Our Accounts Are Emitting

Based on this research, here are the signals our banned accounts likely emitted, ranked by severity:

Critical (Likely Direct Trigger)

#SignalEvidenceSource
1Question-back pattern in commentsBotBouncer reports explicitly cite this for all 3 flagged accountsBotBouncer evidence
2Vague answers to direct prompts”one new album a week” without naming an albumBotBouncer evidence
3Karma farming in known bot-monitored subsBotBouncer has a karmaFarmingSubsCheck.ts module; our accounts all farmed in the same generic subsBotBouncer source code
4High comment velocity13-14 comments/day from accounts with <250 karmaOur karma history data

High (Likely Contributing Factor)

#SignalEvidenceSource
5Swarm coordination (multiple accounts on same post)3 accounts upvoted same post within 5 minutesBAN-PATTERN-HANDOFF
6Shared IPs between accountsReasonable_Owl + Terrible_Risk on 82.23.94.252BAN-PATTERN-HANDOFF
7Batch-created March cohort5/5 March accounts banned or flaggedBAN-PATTERN-HANDOFF
8Comment-only history (no posts, no visible voting)All banned accounts have 0-1 posts despite active commentingProfile registry data
9AI-typical linguistic patternsDeliberate typos don’t mask structural patterns; “format sounds like AI” per reporterBotBouncer evidence
10Same AI prompt across all accountsV5 unified prompt produces structurally similar comments across all accountsOur RPA pipeline

Medium (Possible Contributing Factor)

#SignalEvidenceSource
11Low CQS from subreddit bansEach BotBouncer ban lowers CQS; cascading bans = rapid CQS decayCQS documentation
12No niche subreddit participationAccounts only active in generic karma-farming subs, never in topic-specific communitiesProfile data
13Uniform comment timingRPA pipeline comments at regular intervals (7s delay, scheduled windows)Our pipeline design
14No genuine conversationsComments are fire-and-forget; no back-and-forth reply threadsOur commenting pattern
15Low karma per commentMost comments score 1-2; real users in these subs get 5-50+Our metrics data

Low (Possible but Uncertain)

#SignalEvidenceSource
16Browser fingerprint similarityAdsPower profiles may share fingerprint components if not properly randomizedConbersa/Multilogin research
17Timezone/IP mismatchProxy timezone vs account activity timezone may not alignProxy-cache data
18Account creation IP correlationIf March cohort was created from same IP before proxy assignmentBAN-PATTERN-HANDOFF hypothesis

8. What We Still Don’t Know (Data Gaps for Account-Level Analysis)

This research identifies the detection vectors. The account-level data collection (to be done on the Windows EC2 Hermes) needs to check which of these vectors our accounts actually emitted. Key data gaps:

GapWhat We Need to CollectWhy
Full comment history per banned accountAll comments with body, subreddit, score, timestampTo check for question-back pattern, vague answers, timing patterns
Deleted commentsComments that appear in our DB but not on RedditTo identify double-comments that were deleted
Comment-to-post contextFor each comment, the parent post title and typeTo check if our comments matched the post’s intent
Subreddit diversity per accountUnique subreddits per account vs karma-farming concentrationTo check karma-farming exposure
Timing distributionComments per hour, per day, gaps between commentsTo check for automation patterns
Swarm action logsWhich accounts interacted with which posts and whenTo check coordination patterns
CQS scoresCurrent CQS for each account (via r/WhatIsMyCQS)To check if accounts were silently filtered before ban
IP/proxy assignment historyWhich IP each account used at each sessionTo check for IP correlation
Browser fingerprint dataAdsPower profile fingerprint parametersTo check for fingerprint sharing
Account creation detailsCreation IP, browser, email usedTo check for batch creation signatures
Vote historyWhat the account upvoted/downvoted and whenTo check for vote manipulation patterns

9. Source References

SourceURLKey Contribution
BotBouncer official docshttps://developers.reddit.com/apps/bot-bouncerArchitecture, ban process, scope
BotBouncer source codehttps://github.com/fsvreddit/bot-bouncerDetection modules (aiAnalysis, karmaFarmingSubsCheck, similarBioTextFinder)
Conbersa — Reddit Bot Detection Technicalhttps://www.conbersa.ai/learn/reddit-bot-detection-technicalMulti-layered defense architecture
Conbersa — Multi-Account Detection 2026https://www.conbersa.ai/learn/reddit-bot-detection-2026IP analysis, fingerprinting, behavioral pattern recognition
Reddit CQS officialhttps://support.reddithelp.com/hc/en-us/articles/19023371170196Contributor Quality Score tiers and AutoMod integration
Reddit — Inauthentic activity banshttps://support.reddithelp.com/hc/en-us/articles/360045734911Official ban reasons and appeal process
Reddit — Disrupting Communitieshttps://support.reddithelp.com/hc/en-us/articles/360043066412Vote manipulation, ban evasion policies
Pangram — Detect AI on Reddithttps://www.pangram.com/blog/how-to-detect-ai-on-redditLinguistic tells for AI-generated comments
Signals — Buying Reddit Accounts 2026https://signals.sh/blog/will-buying-reddit-accounts-get-you-banned-2026Compound detection signal, CQS decay, fingerprint continuity
Multilogin — Reddit Account Suspendedhttps://multilogin.com/academy/reddit-account-suspendedAccount linking signals, repeat ban escalation
Send.win — Account Suspended 2026https://blog.send.win/reddit-account-suspended-in-2026-steps-to-recover-what-to-doBan evasion as leading cause, account linking through fingerprint/IP
ReddiReach — Shadowbanned 2026https://www.reddireach.com/blog/shadowbanned-on-reddit-2026-fixes-and-safe-posting-systemAccount trust signals, warmup timeline, pattern spam triggers
Engadget — Zurich AI experimenthttps://www.engadget.com/ai/researchers-secretly-experimented-on-reddit-users-with-ai-generated-comments-194328026.htmlEven sophisticated AI gets caught by community
RedditMaster — Karma Guidehttps://www.redditmaster.com/karma/how-to-get-comment-karma-fastNear-duplicate comment detection, AutoMod trigger accumulation
BAN-PATTERN-HANDOFF.md(internal)Our account inventory, ban data, BotBouncer post links