Reddit shadowban and comment velocity: the gap between comments is the number that matters

Commenting faster than a person plausibly could is one of the cleanest spam signals Reddit has, and it lands hardest on new accounts. But Reddit never publishes a safe comments-per-hour number, so the only reliable defense is a fixed gap you enforce in software. S4L hard-codes a three-minute floor between every comment.

M
Matthew Diakonov
6 min read
Direct answer — verified 2026-05-17

Does commenting too fast get you shadowbanned? Yes, sustained machine-speed commenting is a real trigger for Reddit's spam filters, and it hits new or low-karma accounts hardest. But there is no published threshold. The only rate limits Reddit documents are for its Data API: the X-Ratelimit-Used, X-Ratelimit-Remaining, and X-Ratelimit-Reset response headers (official API rules: github.com/reddit-archive/reddit/wiki/API). The comment throttle on the website itself is undocumented and adaptive. Because Reddit will not give you a line, the safe move is to draw your own and enforce it: S4L uses a flat 180-second gap between every comment and caps a run at 3 comments.

Velocity is the signal, not volume

Most of the advice you find when you look this up frames it as a volume problem: keep comments under some count per day, keep self-promotion under ten percent. Volume matters, but it is not what trips the fast filters. The thing Reddit's automated systems can measure instantly, with no context, is rate: how many seconds passed between your last action and this one.

A human reads a thread, thinks, and types. That takes minutes. An account that comments every fifteen seconds across six subreddits is not plausibly doing any of that. The pattern is the giveaway, and it is the cheapest possible thing for a spam classifier to catch. Velocity is also weighted hardest exactly where you are most exposed. A new account, or one with low karma, gets a tighter throttle than an aged account with history. So the moment you most want to be active is the moment a burst is most likely to get you filtered.

What Reddit actually tells you

Reddit publishes rate limits for one thing: its Data API. The official API rules ask clients to watch three response headers, X-Ratelimit-Used, X-Ratelimit-Remaining, and X-Ratelimit-Reset, and stay inside the quota. Those are real, documented numbers.

The throttle that governs commenting through the website is a different system, and Reddit documents none of it. You meet it as the "you're doing that too much, try again in N minutes" error, and the N grows the more you push. There is no page that tells you the safe gap. That absence is the whole problem: you cannot tune to a number that was never published, and it moves per account anyway. The only number you fully control is the one you decide to enforce on yourself.

The 180-second floor, in the code

S4L is a tool I built to run my own Reddit and X engagement without it eating the day. Because it posts on a schedule with no human watching each comment, it cannot rely on "space them out" as advice. The limit has to be a line in the code. It is. Three things bound how fast S4L can comment:

scripts/post_reddit.py

The time.sleep(180) on line 2174 is not jitter and not an average. It is a flat three-minute block that runs after every comment except the last one in a run. Whether the previous post succeeded, failed, or hit a locked browser, the gap still fires before the next attempt. The run itself is capped: the --limit argument defaults to 3, so a single session posts at most three comments, three minutes apart, and then stops. Roughly six minutes of wall-clock time for three comments. Nothing about that shape looks like a script.

There is a third layer before any of that. Before a run drafts a single comment, S4L makes one cheap request to old.reddit.com/r/popular.json and reads X-Ratelimit-Remaining off the response. If the quota is down to 2 or lower, the run waits for the reset window or skips entirely. That probe costs about 300 milliseconds, and it means S4L never starts a burst into a quota that is already spent.

What one posting session looks like

Inside one S4L run

01 / 05
[post_reddit] POSTED: comment 1 of 3

00:00 — Comment 1 posts

The first comment lands. S4L records the permalink and the loop moves on.

Pacing by willpower does not survive a long day

You could pace by hand. Open a thread, comment, glance at the clock, wait. It works for ten minutes. It does not survive a deadline, or the fourth thread that is genuinely worth a reply, or the version of you that is tired at the end of the day. Discipline is the wrong layer to put a safety limit on. A fixed floor in code has one property willpower does not: it is identical on comment one and comment three hundred. It does not get bored, it does not make a "just this once" exception, and it does not shrink when you are busy.

FeatureManual pacingS4L
Gap between comments"Space them out" — no actual number to followA hard 180-second floor, enforced in code after every comment
Comments per runA daily range you are supposed to track in your headCapped at 3 by the --limit default; the run stops on its own
Before a burst startsNo check; you find out you were throttled afterwardPreflight probe reads X-Ratelimit-Remaining and skips the run if it is 2 or lower
After a failed postTempting to retry immediately, which tightens the throttleThe three-minute gap still fires before the next attempt
Drift across a long dayDiscipline fades, gaps quietly shrink, bursts creep inThe floor never moves; comment one and comment three hundred run the same path

Pick a gap and never move it

If you take one thing from this: the exact safe number does not exist, so stop hunting for it. Pick a gap that is obviously slower than a burst, put it somewhere a tired version of you cannot override, and let it run. Three minutes is the floor S4L uses. Two would probably be fine. The point is not the precise value. The point is that it is fixed, enforced, and boring. A velocity-driven shadowban is the one failure mode you can rule out completely just by refusing to move fast, and the cleanest way to refuse is to take the decision away from yourself and hand it to a constant.

Want your Reddit cadence enforced, not remembered?

Book a short call and I'll walk you through how S4L paces comments so a velocity shadowban stays off the table.

Comment velocity and shadowbans: FAQ

Does commenting too fast actually cause a Reddit shadowban?

Yes. Posting comments faster than a person plausibly could is one of the cleanest spam signals Reddit has, because rate is something an automated classifier can measure instantly with no context. A human reads a thread, thinks, and types, which takes minutes. An account commenting every fifteen seconds across several subreddits is not plausibly doing that. Velocity is weighted hardest on new and low-karma accounts, which is exactly the situation where you most want to be active, so a burst there is the most likely to get filtered.

How many comments per hour is safe on Reddit?

There is no official number. Reddit does not publish a safe comments-per-hour figure for the website, and the throttle is adaptive, so it would not be a fixed number even if they did. The practical answer is to enforce your own conservative gap. S4L uses one comment per three minutes with a cap of three comments per run, which works out to roughly six minutes for three comments. The exact value matters less than the fact that it is fixed and obviously slower than a script burst.

What is the difference between Reddit's API rate limit and the comment throttle?

They are two separate systems. The API rate limit is documented: the official API rules ask clients to watch the X-Ratelimit-Used, X-Ratelimit-Remaining, and X-Ratelimit-Reset response headers and stay inside the quota. The comment throttle that governs commenting through the website is undocumented. You meet it as the "you're doing that too much, try again in N minutes" error, and N grows the more you push. You can tune to the API headers because they are published. You cannot tune to the comment throttle because it was never written down.

Why 180 seconds specifically?

It is a deliberate, conservative floor, not a tuned value. Three minutes is long enough that the cadence cannot look like a scripted burst and short enough that a run still posts something meaningful. It lives as a literal constant in scripts/post_reddit.py at line 2174: time.sleep(180). It is not an average and it is not re-rolled per comment. Every comment except the last one in a run waits exactly that long before the next one is drafted.

Does S4L randomize the gap to look more human?

No, and that is on purpose. The gap is a flat 180 seconds, not jitter, not a random spread. The defense is being genuinely slow, not pretending to be human while still moving at machine speed. Trying to disguise velocity is a worse bet than simply not having velocity. Avoiding the other failure mode, comments that read as machine-written, is a separate problem covered in the guide on Reddit marketing without AI flagging.

What does the preflight quota probe do?

Before a run drafts a single comment, S4L makes one cheap request to old.reddit.com/r/popular.json and reads X-Ratelimit-Remaining off the response headers. If the quota is down to 2 or lower, the run either waits for the reset window or skips entirely. The check costs about 300 milliseconds and it means S4L never starts a burst into a quota that is already spent.

Will slowing down un-shadowban an account that is already flagged?

No. Velocity control is prevention, not recovery. If an account is already shadowbanned, the standard check is to open its profile in a logged-out window and see whether the posts render. Pacing keeps a healthy account healthy. A different failure mode, where a comment is hidden inside one subreddit rather than account-wide, is covered in the guide on AI Reddit comments without shadowban.

s4l.aibooked calls from social
© 2026 s4l.ai. All rights reserved.

How did this page land for you?

React to reveal totals

Comments ()

Leave a comment to see what others are saying.

Public and anonymous. No signup.