Reddit RSS ends November 13: how to keep monitoring subreddits
Reddit RSS feeds stop on November 13, 2026. What breaks (feed readers, IFTTT, Zapier, n8n, Discord bots), what mods get instead, and a script to replace it.
Piyushh · October 14, 2026 · 8 min read
Reddit RSS feeds stop working on November 13, 2026. Reddit announced the date in r/modnews on September 30, 2026, and was blunt about who gets a replacement. Moderators get Devvit apps like Discord Relay. Everyone else gets nothing. In Reddit's words, "If you use RSS for feeds outside of a community you moderate, there is no replacement" (r/modnews, checked 2026-10-14).
Anything that reads a Reddit .rss URL has about a month left, whether it's a feed reader, an IFTTT applet, a Zapier zap, an n8n workflow or a Discord bot. This post covers what Reddit announced, what breaks and which alternatives still exist. Then it walks through a short Python script that polls subreddits for new posts, dedupes them and pushes them to Slack, Discord or a local RSS file, and finishes with what that costs to run.
What Reddit announced about RSS, and when
The September 30 post gives one reason: "Because RSS is now a common surface for large-scale scraping and automated abuse, we'll stop supporting RSS feeds on November 13, 2026." For mod teams, Reddit recommends Discord Relay, a Devvit app, and links a migration guide to follow before the cutoff. The same post limits Old Reddit to logged-in users who have used it in the last six months. Mods are exempt.
Reddit has been closing unauthenticated routes one at a time for a while:
| Date | What happened | Source |
|---|---|---|
| May 28, 2026 | Unauthenticated .json endpoints shut down; Reddit asks mods how they use RSS | r/modnews |
| August 2026 | Unauthenticated RSS readers report HTTP 429 errors on most feeds | r/redditdev |
| September 30, 2026 | RSS retirement date announced | r/modnews |
| October 31, 2026 | New public API access requests no longer accepted | r/redditdev |
| November 13, 2026 | RSS feeds stop | r/modnews |
| March 2027 | Public API access closes for all remaining apps | r/redditdev |
For context, read the May post. When Reddit shut the JSON endpoints, it said "another common surface for scraping is RSS" and asked mods to explain how they used feeds. In August, a developer running "a small, read-only monitor" of 12 search feeds wrote in r/redditdev that "Usually, one feed updates properly, but most other feeds return HTTP 429." For many people, the Reddit RSS feed was already half broken before the date was set. Our timeline of Reddit's public API shutdown covers the wider set of dates.
What breaks when Reddit RSS feeds go dark
It affects anything that fetches a URL ending in .rss from reddit.com: subreddit feeds (/r/name/new/.rss), user feeds, search feeds and multireddit feeds. The reaction under the announcement shows how many workflows that covers.
Feed readers and the subreddit RSS habit
For a lot of people, RSS was the only way they read Reddit. One user with ten years on the site replied: "RSS is how I keep up with dozens of subreddits. There is simply no way for me to do this manually." Another wrote that they follow about 25 subreddits through RSS and are "not going to visit each of those subs everyday to skim the new titles."
On November 13, Inoreader, Feedly, NetNewsWire and every other reader will see the same thing: the feed URL stops returning items. Readers can't fix that on their side because the data source is gone.
IFTTT, Zapier and n8n flows built on a Reddit RSS feed
Automation tools often treat Reddit as "an RSS trigger with a URL in it", and those flows break along with the feeds. Someone asked in r/redditdev whether IFTTT's Reddit integrations were affected, and a moderator answered: "It will probably bork all of them." That's one person's read, not a confirmed vendor statement. A flow built on a vendor's own Reddit connector depends on that vendor's API access, which runs into Reddit's January and March 2027 dates. Ask the vendor before you assume it survives.
Discord and Slack bots, and mod alerts
Many mod teams pipe new posts or the mod queue into a Discord or Slack channel through RSS. Reddit's answer for them is Discord Relay, which works if your team already lives in Discord. One moderator asked: "So uh... what if a mod team doesn't use Discord? RSS is the only way I find out about posts in subs like this one." Slack-based teams have no supported path, and neither does anyone watching a subreddit they don't moderate.
Reddit RSS alternatives, compared
After November 13 you have four realistic ways to keep watching subreddits.
| Option | Who it works for | What you give up |
|---|---|---|
| Discord Relay (Devvit) | Moderators, for their own communities | Discord only; no feed; no other subreddits |
| Official Reddit API | Apps that already hold approved keys | New requests close October 31, 2026; public access ends March 2027 |
| Self-hosted scraper or RSS bridge | Tinkerers willing to maintain it | Breaks on every change; blocked traffic; terms risk |
| Polling a hosted Reddit data API | Developers who want a stable feed | Per-call cost; you depend on a third party |
If you already have an approved key, the official API still works, and polling /r/name/new with OAuth is the closest swap for RSS. You can't get a new key on your own, though. Reddit stops taking requests on October 31, and the remaining access closes in March 2027. Our guide on how to get a Reddit API key covers what's left of that process.
Many RSS users are self-hosting. One developer posted on X: "Time for me to upgrade my Reddit RSS proxy to use Playwright." Another spent the summer working around the closed API for a Reddit tool and described ending up with "a cloudflare relay and rss feeds read by an agent, it runs but it's duct tape." A headless browser can read pages, but Reddit blocks unauthenticated traffic, and Old Reddit, the easiest version to parse, now requires a login. Expect to maintain it yourself.
A hosted API hands the maintenance to someone else. You call one endpoint with one key and get JSON back. In exchange you pay per call, and the provider is subject to Reddit's restrictions too. The rest of this post uses ChatterAPI for the hosted option, because it's the one we can show working end to end.
The case for Reddit's decision
Reddit's reasoning holds up better than the reaction suggests. RSS is unauthenticated, so there's no client ID, no user agent policy and no account to ban. After the JSON endpoints closed in May, RSS was the last open structured surface. One user under the announcement made that point while criticising Reddit: "RSS is only a major vector now because Reddit shut off json like 3 months ago." On X, a developer who set out to defend Reddit put it as "rss is a scraping surface now its a 1999 protocol".
The counterargument is about who still gets the data. Reclaim The Net summed it up: "Reddit says it is ending RSS because scrapers abuse it. Reddit also licenses that same data for money." Some users asked for a middle ground, such as feeds with headlines only. One wrote: "Would it have been difficult to at least turn the RSS feeds into headlines-only?" Reddit hasn't offered one.
Build a subreddit RSS replacement with a polling script
RSS readers poll. They fetch a feed every so often and show what's new. You can do the same: call a "newest posts" endpoint on a schedule, remember the post ids you've already seen, and send only the new ones somewhere.
The request
GET /v1/reddit/subreddits/{name}/posts returns a subreddit's posts. With sort=new you get the same list RSS gave you. Each call costs 2 credits and returns up to 25 posts.
curl -s "https://api.chatterapi.com/v1/reddit/subreddits/SaaS/posts?sort=new&limit=25" \
-H "Authorization: Bearer $CHATTERAPI_KEY"
Below is a real response, trimmed to two posts and the useful fields. It's a sample. We ran it with a test key, which returns one recorded real response per endpoint for free, so charged is 0. A live key charges 2 credits.
{
"data": [
{
"id": "1wvjgm2",
"fullname": "t3_1wvjgm2",
"title": "I made $7,802 today",
"author": "OkPositive9373",
"subreddit": "SaaS",
"url": "https://www.reddit.com/r/SaaS/comments/1wvjgm2/i_made_7802_today/",
"score": 614,
"numComments": 276,
"createdAt": "2026-10-02T03:29:02.000Z",
"nsfw": false
},
{
"id": "1wy79m1",
"fullname": "t3_1wy79m1",
"title": "Me and my saas ideas",
"author": "ImTomSnow",
"subreddit": "SaaS",
"url": "https://www.reddit.com/r/SaaS/comments/1wy79m1/me_and_my_saas_ideas/",
"score": 547,
"numComments": 44,
"createdAt": "2026-10-05T12:28:18.000Z",
"nsfw": false
}
],
"page": { "nextCursor": "AdxXcaGWSY8c…", "hasMore": true },
"credits": { "charged": 0, "remaining": 765 },
"requestId": "req_01M4WYZYGT733HCBAT11",
"cached": true
}
You dedupe on the id field. If you want to look before you code, the free subreddit posts tool runs the same endpoint in the browser.
The script
The script below polls a list of subreddits and keeps the ids it has seen in state.json. It posts new items to a Slack or Discord webhook and writes a standard RSS 2.0 file your reader can subscribe to.
import json, os, pathlib, requests
from datetime import datetime
from email.utils import format_datetime
from xml.sax.saxutils import escape
API = "https://api.chatterapi.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['CHATTERAPI_KEY']}"}
SUBREDDITS = ["selfhosted", "homelab", "SaaS"]
WEBHOOK = os.environ.get("WEBHOOK_URL") # Slack or Discord incoming webhook
STATE = pathlib.Path("state.json") # ids we've seen + recent posts for the feed
FEED = pathlib.Path("reddit.xml")
state = json.loads(STATE.read_text()) if STATE.exists() else {"seen": [], "recent": []}
seen = set(state["seen"])
first_run = not seen
new_posts = []
for name in SUBREDDITS:
r = requests.get(f"{API}/reddit/subreddits/{name}/posts",
params={"sort": "new", "limit": 25}, headers=HEADERS, timeout=30)
if r.status_code != 200:
print(f"r/{name}: HTTP {r.status_code} {r.text[:200]}") # failed calls cost 0 credits
continue
for post in r.json()["data"]:
if post["id"] not in seen:
seen.add(post["id"])
new_posts.append(post)
if not first_run: # the first run only records what's there, so the channel isn't flooded
for post in sorted(new_posts, key=lambda p: p["createdAt"]):
text = f"r/{post['subreddit']}: {post['title']}\n{post['url']}"
if WEBHOOK:
# Slack reads "text", Discord reads "content".
requests.post(WEBHOOK, json={"text": text, "content": text}, timeout=10)
else:
print(text)
recent = list({p["id"]: p for p in new_posts + state["recent"]}.values())[:100]
STATE.write_text(json.dumps({"seen": list(seen)[-5000:], "recent": recent}))
items = "".join( # a plain RSS 2.0 file, so a feed reader can keep reading it
f"<item><title>{escape(p['title'])}</title><link>{escape(p['url'])}</link>"
f"<guid isPermaLink=\"false\">t3_{p['id']}</guid>"
f"<pubDate>{format_datetime(datetime.fromisoformat(p['createdAt'].replace('Z', '+00:00')))}</pubDate></item>"
for p in sorted(recent, key=lambda p: p["createdAt"], reverse=True))
FEED.write_text('<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel>'
"<title>New posts in my subreddits</title><link>https://www.reddit.com/</link>"
f"<description>Polled with ChatterAPI</description>{items}</channel></rss>")
print(f"{len(new_posts)} new, {len(recent)} in feed")
We ran this script against the API before publishing. The first run records the current posts and sends nothing. After that, each run sends only posts with ids it hasn't seen. To serve reddit.xml to a feed reader on another device, put it anywhere static: a folder behind a web server, an S3 bucket or a GitHub Pages branch.
Run it every 15 minutes
A crontab line is enough:
*/15 * * * * cd /opt/reddit-watch && CHATTERAPI_KEY=... WEBHOOK_URL=... python3 watch_subreddits.py >> watch.log 2>&1
A scheduled GitHub Actions workflow also works, as long as you commit state.json back or store it somewhere persistent. Polling more often than every 10 minutes doesn't help much. Newest-first results can be served from a short cache, and a cached response costs the same as a fresh one. A busy subreddit can get more than 25 posts between polls, so if every post on a page is new, follow page.nextCursor until you reach one you've seen.
Keyword alerts across all of Reddit
Some people used Reddit search feeds (search.rss?q=...&sort=new) instead of subreddit feeds to catch every mention of a product or topic. For that, use GET /v1/reddit/search with sort=new. It also takes a subreddit parameter if you want to narrow it to one community, and it costs 2 credits per page of up to 25 posts. Swap the URL and params in the script and the dedupe logic doesn't change. If you'd rather not write code for this, the Reddit monitoring page has the same polling recipe.
What it costs to poll 10 subreddits every 15 minutes
The math is short. Each call to the subreddit posts endpoint costs 2 credits.
- Polls per subreddit per day: 24 hours × 4 = 96
- Calls per day for 10 subreddits: 960
- Credits per day: 960 × 2 = 1,920
- Credits per 30-day month: 57,600
That fits the Growth plan ($49/month, 70,000 credits). Starter ($19/month, 25,000 credits) is too small for that schedule. Polling the same 10 subreddits every 30 minutes needs 28,800 credits, which is still just over Starter. Hourly polling needs 14,400 credits a month and fits. Quiet subreddits rarely need a check every 15 minutes, so poll the busy ones often and the slow ones hourly, and the bill drops fast. Failed calls cost 0 credits, so a subreddit going private or a network error costs you nothing. Full plan details are on the pricing page, and our Reddit API pricing breakdown compares this with what Reddit charges.
Keep your subreddit feeds running after November 13
Reddit RSS has about a month left. The replacement needs one key and the script above. Sign up with Google to get 100 free credits with no card. That covers 50 polling calls, enough to run the script on a few subreddits and see new posts land in Slack or Discord before the feeds go dark. ChatterAPI is independent of Reddit, Inc., and its Reddit endpoints are read-only.