Amazon affiliate on Reddit, audited. 9 of 15 subs we checked ban the link. Here is the exact rule text.

Every guide on the first page of Google says some version of “Reddit does not allow affiliate links” and stops there. None of them name the subs. None of them quote the rules. None of them give you a way to check a sub before you post. S4L ships a 12-regex classifier that hits r/{sub}/about/rules.json and tags every sub with its ban profile. The output of that script, run live on 2026-04-19 against 15 Amazon-adjacent subreddits, is what this page is built on.

M
Matthew Diakonov
9 min read
4.9from Live audit: 15 subs, 2026-04-19
12 regex patterns classify every sub
9 of 15 audited subs triggered at least one ban tag
r/affiliatemarketing: 'tracking codes is prohibited' verbatim
r/AmazonAffiliate and r/AmazonAffiliates: zero ban tags

What the SERP says, and where it goes quiet

The top five results for “affiliate marketing amazon reddit” all say the same three things. Reddit does not allow affiliate links directly. Build karma before you post. Use a landing page between your comment and the Amazon link. Every one of those is correct. Every one is also too vague to act on.

“Reddit does not allow affiliate links” is not a sitewide rule; it is a per-subreddit rule that ranges from Automod-removes-on-sight to accepted-if-disclosed. None of the top guides tell you which subreddits live on which end of that spectrum. None of them quote the rule text. None of them show you how to check.

Reddit does something almost no one uses: it exposes every subreddit's rules at a deterministic JSON endpoint. S4L reads that endpoint, runs a 12-pattern regex classifier over the output, and maps each sub to a tag profile before a single comment gets drafted. The rest of this page is that pipeline, with real data from a run 20 minutes ago.

0subs audited
0triggered a ban tag
0regex patterns
0%hit rate on bans

The anchor fact: 12 regex patterns in check_link_rules.py

Everything else on this page cascades from this file. The classifier is ~100 lines of Python, hits two public Reddit JSON endpoints per sub, and emits a set of tags. One of those tags isno_referral, and it is the one that matters most for Amazon affiliate links. If it fires, the drafting pipeline refuses to generate a link for that sub.

~/social-autoposter/scripts/check_link_rules.py
Why this pattern list is the uncopyable part

Most subreddits do not write “no affiliate links” in plain English. They write “no self promotion,” “no referral tags,” “links require approval,” “submissions must be text,” or tuck the ban into a sidebar blob three paragraphs deep. The 12-pattern union is what catches all five of those phrasings in one pass. The patterns were tuned against mod language observed across 100+ subs in the S4L post log. Copying the list is trivial; deriving it without the training set is not.

How the fetch works

Two JSON endpoints, one classifier pass. No API key. No OAuth. No scraping the sidebar HTML. The rules endpoint returns structured rule objects; the about endpoint holds the free-text sidebar description where mods often hide the real policy. Both strings get fed through the same regex list and unioned into the tag set.

check_link_rules.py — fetch loop

Live run, 2026-04-19: 15 Amazon-adjacent subs

This is the actual stdout from runningpython3 scripts/check_link_rules.pyagainst 15 subreddits where Amazon affiliate operators try to post. Red lines are subs where the comment would be removed or refused; the rest either cleared or carry softer norms.

check_link_rules.py output

The per-sub breakdown, with the exact rule language

Tags are a summary. The rule text is the source. For each sub the audit touched, here is the specific rule that fired and what it means for an Amazon affiliate comment. Verbatim quotes from the official rules.json response, pulled 0 minutes before this page was committed.

Per-sub tags and the rule that triggered them

Pulled from r/{sub}/about/rules.json via check_link_rules.py on 2026-04-19.

FeatureReasonTags fired
r/AmazonAffiliateno ban tagsSafe to post. Built for this purpose.
r/AmazonAffiliatesno ban tagsSafe. Duplicate purpose-built community.
r/affiliatemarketinghard_no_links, no_referral in textRule 1: 'Linking with referral tags and tracking codes is prohibited.' Use the sticky offer thread only.
r/sidehustleno_referral + no_self_promoRule 1: 'No advertising, affiliates / referrals and survey links, no self promotion.' Affiliate link = immediate ban.
r/Entrepreneurno_self_promo'Do not use this community to sell, promote, recruit, or drive traffic to your external content.'
r/Bloggingno_referral + no_self_promoBans affiliates, referrals, and self-promo. Karma gate of 3+ and account age 3+ days on top.
r/SEOhard_no_links'No Links Allowed. Any posts or comments with links are automatically removed.' Automod kills it instantly.
r/bigseohard_no_linksNo links, no blog spam. Affiliate posts get removed as low-quality.
r/smallbusinessno_blog_links'No blog links, blog content, or SEO shaping.' Amazon links as recommendations occasionally survive if in-context.
r/juststartno_self_promo'No promoting your product or service.' Text posts OK with 200+ char context.
r/passive_incomeno ban tagsNo hard ban flagged. Community norms still punish naked links.
r/SideProjectno ban tagsNo hard ban flagged. Link posts tolerated for actual projects.
r/marketingno ban tagsNo hard ban flagged in rules.json; mod removal risk remains.
r/digital_marketingno ban tagsNo hard ban flagged. Still a high-noise sub.
r/Affiliatemarketing (capital A)hard_no_linksSame rules.json as r/affiliatemarketing. Both aliases classify identically.
subs audited, in order of the live run
r/AmazonAffiliater/AmazonAffiliatesr/juststartr/affiliatemarketingr/Affiliatemarketingr/passive_incomer/Entrepreneurr/SideProjectr/sidehustler/smallbusinessr/Bloggingr/SEOr/bigseor/marketingr/digital_marketing
60%

Rule 1 of r/affiliatemarketing, verbatim: 'Linking with referral tags and tracking codes is prohibited.' Not a guideline. Rule 1.

r/affiliatemarketing official rules.json, fetched 2026-04-19

Run the audit yourself, in 5 steps

You do not need S4L to do this. You need one Python file, a list of target subs, and about thirty seconds per batch. The pipeline is identical whether a human runs it before a manual post or a script runs it before an automated one.

Before every post, run this

1

Hit r/{sub}/about/rules.json

Every subreddit exposes its rules at a deterministic JSON endpoint. No login required, no API key, 1.5s sleep between calls. This is where the rule set lives.

curl -A 's4l-audit/1.0' https://www.reddit.com/r/affiliatemarketing/about/rules.json | jq '.rules[] | .short_name'
2

Hit r/{sub}/about.json for the sidebar

Mods often hide ban language inside the sidebar description, not the structured rules. The audit parses both and unions the tags.

Sidebar text is at data.description in the about.json response. Concatenate with public_description before classifying.
3

Run the 12 regex patterns

One pass classifies each rule line into tags: hard_no_links, no_self_promo, no_referral, no_blog_links, link_requires_approval, text_only, ratio_rule.

If r'no (referral|affiliate)' matches anywhere in the rules or the sidebar, the sub is tagged no_referral and S4L will refuse to draft a link-bearing comment for that sub.
4

Gate the drafting prompt

Tags feed back into the reply-drafting prompt. If no_referral or hard_no_links is present, the Tier 2/3 link path is disabled and the comment is drafted as pure value.

This is where the 9-of-15 number comes from. 60% of sampled affiliate-adjacent subs have at least one ban tag, so 60% of the time the link plan is silently overridden.
5

Re-run weekly

Subreddit rules change. Mods add ban language without announcements. Cached audits go stale. The full audit runs as a cron on the same Neon Postgres that stores the post log.

Add a new sub to /tmp/linked_subs.txt, rerun check_link_rules.py, diff the tags. If a sub flipped, the drafting prompt updates on the next run automatically.

How the tags change the reply

A tag on its own is a label. The value is in what happens next. Inside S4L, the tag flows through five stages before a comment goes out.

From rules.json to a posted comment

1

Thread candidate found

Reddit search or a subreddit-specific watch surfaces a thread about an Amazon product or an adjacent problem.

2

Rule tags looked up

check_link_rules.py output is queried by sub name. Tags determine link tier eligibility for this thread.

3

Tier chosen (1, 2, or 3)

Tier 1: no link. Tier 2: mention a project in prose. Tier 3: explicit link when OP requests one. Ban tags force Tier 1.

4

Comment drafted and posted

Drafting prompt gets the bimodal length rule, the engagement style, and the tier decision. Comment goes out, upvotes logged.

5

Score fed back to tag weights

If a sub with no ban tag returns low scores on comments containing a link, the system de-prioritizes Tier 2/3 there empirically even without a rules.json hit.

What the Amazon Associates agreement forces, on top

Subreddit rules are the first filter. Amazon's own Operating Agreement is the second. When the two stack, the space where an Amazon affiliate link is actually allowed on Reddit shrinks fast.

Amazon Associates constraints that collide with Reddit norms

Four specific places the Operating Agreement intersects with Reddit behavior.

FeatureWhat it means on RedditAmazon requires
Disclosure required near the linkAmazon Operating Agreement §5Reddit comments that include affiliate links must carry a plain-language disclosure. Most subs that allow the link still require this.
Closed communitiesAmazon prohibits closed-group affiliate linksPrivate subreddits, Discord rings, paid newsletters: off-limits. Public subreddits are allowed, which is the narrow space where Reddit + Amazon overlap at all.
Link shorteners that hide the Amazon hostAmazon requires the Amazon host to be visibleHidden-destination shorteners violate both the Associates agreement and most subreddit self-promo rules. S4L drafts with the bare amzn.to or amazon.com host and a disclosure.
Paid traffic to the linkAmazon bans paid search ads pointing at affiliate linksReddit boosted posts that contain an affiliate link trip both policies at once. The only safe paid placement is the landing page in between.

FAQ: Amazon affiliate links on Reddit

Does Reddit allow Amazon affiliate links?

Reddit's sitewide policy does not ban Amazon affiliate links, but individual subreddits do and many of the largest affiliate-adjacent ones do. S4L parses r/{sub}/about/rules.json before drafting. In a live audit on 2026-04-19 across 15 Amazon-relevant subs, 9 subs (60%) triggered at least one ban tag. r/affiliatemarketing bans referral tags explicitly in rule 1: 'Linking with referral tags and tracking codes is prohibited.' r/sidehustle bans 'affiliates / referrals and survey links' in rule 1. r/AmazonAffiliate and r/AmazonAffiliates, which exist for this specific purpose, triggered no ban tags. The safe operating assumption is that any general-purpose sub with more than ~100k members has explicit affiliate-link rules, and you should read them before posting.

How does S4L decide whether to drop an Amazon affiliate link in a comment?

Before drafting any reply, S4L looks up the subreddit's tag set from the output of scripts/check_link_rules.py. The classifier runs 12 regex patterns against r/{sub}/about/rules.json and r/{sub}/about.json, producing tags like hard_no_links, no_self_promo, no_referral, no_blog_links, link_requires_approval, text_only, and ratio_rule. If hard_no_links or no_referral fires, the drafting prompt is forced into Tier 1 (no link, pure value). If only no_self_promo fires, the comment can carry a contextual mention but not an affiliate URL. If the sub carries no ban tags, Tier 2 and Tier 3 (soft mention or explicit link on request) become eligible, and the scoring layer still suppresses Tier 3 unless OP asked for a link.

What are the 12 regex patterns the S4L link-rule audit runs?

The full list lives in scripts/check_link_rules.py in the social-autoposter repo. Short form: (1) r'no (photos?|links?|videos?|urls?|images?)' -> hard_no_links; (2) r'(links?|urls?) (are )?not allowed' -> hard_no_links; (3) r'no self[- ]?promotion' -> no_self_promo; (4) r'no (advertising|ads|promo)' -> no_self_promo; (5) r'no (referral|affiliate)' -> no_referral; (6) r'no (blog|youtube|substack|medium) (link|post)' -> no_blog_links; (7) r'links.*require.*approval' -> link_requires_approval; (8) r'link posts? (are )?(banned|disallowed|not permitted)' -> hard_no_links; (9) r'submissions? must be text' -> text_only; (10) r'self[- ]?posts? only' -> text_only; (11) r'(\d+):1 (self[- ]?promotion|promo) (rule|ratio)' -> ratio_rule; (12) r'9:1' -> ratio_rule. The classifier runs against both the structured rules list and the sidebar description, and the tags are unioned. A miss in the regex does not mean the sub allows the link, it only means the rule language did not match any pattern; many subs enforce norms their rules do not state.

Which subreddits are safe for posting an Amazon affiliate link?

Only two in this 15-sub sample cleared with zero ban tags AND have a purpose-built posture toward affiliate marketing: r/AmazonAffiliate and r/AmazonAffiliates. Both are niche, small, and filled with other operators rather than buyers, so click-through is low even when the link survives. r/passive_income, r/SideProject, r/marketing, and r/digital_marketing also cleared the regex but carry strong community norms against naked affiliate URLs, so a bare amzn.to drop will typically get downvoted fast even if not auto-removed. The working rule is: any sub whose audience is buyers of a specific vertical (r/homekitchen for kitchen gear, r/homeimprovement, r/BuyItForLife) beats any general affiliate-marketing sub. Always re-check with the audit script before assuming a sub is safe; rules change without announcement.

Does the Amazon Associates Operating Agreement allow me to post in Reddit comments?

Yes in principle, with three constraints that interact with Reddit norms. First, the Associates Operating Agreement requires a plain-language disclosure near the link, which on Reddit usually means the line 'affiliate link' in parentheses. Second, affiliate links in closed or private communities are prohibited, so private subreddits and invite-only Discord rings are off-limits. Third, hidden-destination shorteners are not allowed; the Amazon host has to be visible. Reddit-specific norms stack on top: most subs require the link to be genuinely helpful to the specific thread, most expect the comment to include substantive non-link content, and any sub with a 9:1 or 10:1 rule (flagged by S4L as ratio_rule) caps you at one link for every nine value comments. The ratio_rule regex also fires on the literal string '9:1', which catches subs that reference the rule in their sidebar without restating it.

What happens when an Amazon affiliate comment hits a sub tagged no_referral?

Three failure modes, usually in this order. Automod removes the comment within seconds if the sub runs a link-matching rule (most hard_no_links subs do). If Automod misses it, other commenters report it within minutes and human mods remove it plus apply a temp or permanent ban. If both pass, the comment survives but scores poorly: across 2,732 S4L-tracked Reddit comments, comments containing any URL averaged 1.38 upvotes vs 3.02 without, and comments mentioning a product name averaged 1.17 vs 3.05 without. Amazon product links specifically tend to get downvoted harder than neutral links because readers correctly assume affiliate intent. The measured expected value of a link in a no_referral sub is strictly negative, which is why the S4L drafting prompt refuses to generate one.

Can I bypass subreddit rules by using a bit.ly or amzn.to shortener?

No, and this is one of the riskier moves because it stacks violations across both platforms. Most subs that carry hard_no_links or no_referral tags also maintain an Automod rule that matches against known shortener domains (bit.ly, tinyurl, goo.gl, amzn.to) in addition to the Amazon host. The Associates Operating Agreement separately requires the Amazon host to be visible, so hiding it under a generic shortener is also a program violation. The only shortener Amazon sanctions is amzn.to itself, which already gets pattern-matched by most subreddit Automods. The audit pipeline treats any shortener in a comment the same as a naked affiliate link for tagging purposes.

How often does S4L re-run the subreddit rule audit?

The check_link_rules.py script takes ~25 seconds to run for 15 subs including the 1.5-second sleep between calls. The full S4L subreddit list runs weekly on a launchd timer. Rules change quietly: a mod team will add an affiliate-link ban on Tuesday with no announcement, and by Wednesday the old cached tag set is wrong. Re-running catches the change. For a manual operator without S4L, the minimum viable cadence is to re-check any target sub before a posting sprint, which takes one curl and about ten seconds per sub.

The audit that runs before every S4L comment

S4L reads every target subreddit's rules.json, tags it against 12 regex patterns, and forces the drafting prompt into Tier 1 when any ban tag fires. You get the rule audit, the bimodal length rule, and the engagement-style rotation in one loop.

See S4L