Reddit stopped serving logged-out .json. We tested eleven requests on October 18, 2026 to show which return 403, which redirect, which still work, and what to use instead.
If your script, bot or automation flow suddenly gets a 403 from Reddit’s .json URLs, it is probably not your code and probably not an outage. Reddit announced in late May 2026 that it was shutting down logged-out .json access. On October 18, 2026 every logged-out JSON URL we tried returned a 403 HTML block page or a redirect to a login page, with a real Chrome User-Agent.
Below: the response of each endpoint so you can match yours to a cause, a classifier for your code, the fixes that fail, and Reddit’s dated shutdown schedule.
Reddit has closed its routes in steps. These are the dates Reddit admins have stated.
| Date | What happens | Source |
|---|---|---|
| November 2025 | Self-service Data API access closes. New access needs approval. | r/redditdev admin post |
| Late May 2026 (reported) | Shutdown of unauthenticated .json announced. Logged-in access not affected. | r/modnews admin post |
| September 30, 2026 | All API apps must be registered. The same post says porting third-party apps to its Developer Platform “honestly won’t happen this year”. This date has passed. | r/redditdev admin post, “Our Plans for the Future of Reddit’s Public Data API and the Developer Platform” |
| October 31, 2026 | New requests for public API access are no longer accepted. | r/modnews admin post |
| November 13, 2026 | RSS feeds stop being supported. No replacement for feeds outside a community you moderate. | r/modnews admin post, “Continuing our infrastructure updates” |
| January 12, 2027 | Access removal begins for unregistered apps. | r/modnews admin post |
| March 2027 | Remaining public API access ends. | r/modnews admin post |
Every date removes a way in. After November 13 only two routes remain for most people, a registered app or a logged-in browser, and the app route is scheduled to end in March 2027.
Reddit announced the change in r/modnews in a post titled “Protecting communities from scrapers and platform abuse”. Developer forums date it around May 28, 2026. The post did not show a date when we fetched it, so we say late May 2026. The paragraph:
“We’ll also be shutting down unauthenticated .json endpoints. These endpoints can be used to scrape Reddit without accountability. Logged-in and authenticated access won’t be impacted.” – Reddit, r/modnews
Two words matter for your 403. “Unauthenticated” means the block keys on whether the request carries a login. A Reddit reply in that thread spelled it out: requests without OAuth or user credentials will be blocked. And “logged-in” is why the URL that fails in your script loads in your browser tab. A developer described the symptom in r/redditdev:
“Trying to fetch public Reddit data using the .json endpoints for a small personal Python project, but I keep getting 403 responses.” – r/redditdev
One reply: “They stopped serving the json endpoints.” – r/redditdev. In the announcement thread a commenter wrote that removing the endpoints “is honestly really frustrating and will break a lot of legitimate automation” – r/modnews. A hobby script and a spam network look the same to the block.
This follows an earlier step. In November 2025 Reddit closed self-service access to its public data API, with the line “Starting today, self-service access to Reddit’s public data API will be closed” – r/redditdev. New access now needs approval; Reddit said current access would not be affected. So both doors a builder used to have, anonymous .json and a self-made API key, are closed to newcomers. The API side is covered in our Reddit API alternative for AI research guide.
Forum threads disagree on what is blocked, so we tested it. On October 18, 2026 at about 18:59 UTC we sent ten plain HTTPS GET requests from one residential IP, with a current Chrome User-Agent, no cookies, two seconds apart, using r/smallbusiness and a one-word search. At 19:07 UTC we added an eleventh, a comment thread, under the same setup.
| Request | Status | Body | What it means |
|---|---|---|---|
www /r/[sub]/top.json | 403 | text/html, 189,908 bytes | Block page, not JSON |
www /search.json?q= | 403 | text/html, 189,908 bytes | Same block page |
www /r/[sub]/about.json | 403 | text/html, 189,908 bytes | Same block page |
www /r/[sub]/comments/[id]/.json | 403 | text/html, 189,908 bytes | Comment threads are blocked too |
api subdomain /r/[sub]/top | 403 | text/html, 189,908 bytes | The subdomain is not a way around it |
oauth subdomain, no token | 403 | text/html, 189,908 bytes | Blocked before any token check, and a 403 rather than a 401 |
old subdomain /r/[sub]/top.json | 302 | none | Redirect to a login page |
old subdomain /r/[sub]/ (HTML) | 302 | none | Login wall for the page too |
www /r/[sub]/ (HTML) | 200 | text/html, 8,413 bytes | A shell with 0 post links, not content |
www /r/[sub]/top/.rss | 200 | Atom, 7,689 bytes | 2 entries, each with the full post body |
www /search.rss?q= | 429 | none | Rate limited on the first call |
Four results are worth remembering. Every 403 body was exactly 189,908 bytes, so the six most likely came from one block page, which is why the response size is a quick fingerprint. The oauth host answered 403 with no token where many guides predict a 401, so a 403 alone cannot tell you whether the shutdown or a bad token is the cause. The old interface sends logged-out visitors to a login page, so it is not a loophole. And the plain HTML page returned a 200 with 0 post links, the trap for scrapers that only check the status.
The logged-in side: the same day, through our own logged-in Chrome session and the Reddit Connector, listing, search and comment data came back as 200 JSON.
| Data | Logged out | Logged in, own browser |
|---|---|---|
| Subreddit top listing | 403 block page | 200 JSON |
| Search results | 403 block page | 200 JSON listing |
| Thread and comments | 403 block page | 200 JSON (an r/redditdev thread and its comments) |
| Subreddit about page | 403 block page | Not re-tested |
The same thread that returned a 403 block page logged out returned its comments to the logged-in session. The block is about who is asking, not about whether the data is public.
Log three things for the failing request before changing anything: status code, content type and redirect target. They separate six problems that all get described as “Reddit is blocking me”.
| You see | Likely cause | What to do |
|---|---|---|
| 403 with a large HTML body, no token sent | The logged-out .json shutdown | Pick a route in the next section. Retrying will not help. |
| 403 with a short JSON body such as a “Forbidden” message, token sent | Token sent to the wrong host, or the app lacks approval or scope | Send authenticated requests to the oauth host, and check the app’s approval |
| 401 | Token missing, expired or malformed | Refresh the token and resend |
| 429 | Rate limited | Slow down and back off. We saw it on the first search RSS call. |
| 302 to a login URL | Login wall on the old interface | You need a logged-in session or a different route |
| 200 with an HTML body and no posts | A page shell, not data | Do not parse it. Treat it as a failure. |
The token row comes from a 2024 r/redditdev thread. A developer sent a bearer token to the www host and got a short JSON body, {"message":"Forbidden","error":403}. The fix was to send the request to the oauth host. Same status as the shutdown, different cause, so check the body first.
To rule out an outage, open the same URL in a logged-in browser tab. If it loads, Reddit is up. Then check the body: our six 403 responses were all HTML and all 189,908 bytes.
This function applies the table using only built-in fetch.
function classifyRedditResponse(status, contentType, location) {
const type = contentType || "";
const isHtml = type.includes("text/html");
if (status === 200 && type.includes("json")) return "ok: JSON";
if (status === 200 && type.includes("xml")) return "ok: feed";
if (status === 200 && isHtml) return "HTML shell, not data";
if (status === 403 && isHtml) return "logged-out block page";
if (status === 403) return "forbidden: check token, host, approval";
if (status === 401) return "token missing or expired";
if (status === 429) return "rate limited: slow down";
if (status >= 300 && status < 400 && (location || "").includes("login")) {
return "login wall";
}
return "other";
}
// In a server runtime, ask fetch not to follow redirects so you see the 302.
const url = "https://www.reddit.com/r/smallbusiness/top.json?limit=2";
const res = await fetch(url, { redirect: "manual" });
const label = classifyRedditResponse(
res.status,
res.headers.get("content-type"),
res.headers.get("location")
);
if (label !== "ok: JSON" && label !== "ok: feed") {
throw new Error("Reddit fetch failed: " + label);
}The throw is the point. A job that gets a block page, parses zero posts and reports success drops Reddit from your results without any error.
Most 403 advice predates the shutdown. Each of these was either tested by us or reported failing by developers.
The most common suggestion in the threads is a single question: “Are you setting a user agent?” – r/redditdev. It was standard advice under the old rate limits. Our test sent a current Chrome User-Agent and still got 403 on every logged-out JSON URL. Reddit’s announcement says the block is on unauthenticated requests, and a header is not a login.
Spoofing a browser is also against the grain of Reddit’s Responsible Builder Policy: “You must not misrepresent or mask how or why you are accessing Reddit data.”
In our test the HTML page and its .json URL both returned a 302 to a login page. A client that follows redirects ends up on a login form with a 200 and an HTML body, so check where you landed, not just the status.
Both returned the identical 189,908 byte 403 page with no token. The oauth host is where a valid token goes, but it does not serve anonymous requests either.
A developer on r/webscraping described a script at roughly 30 to 60 requests an hour that suddenly got 403s, and wrote “I switched to a mobile hotspot to rule out an IP issue, but got the same error” – r/webscraping. One report, but it fits our single-IP result: the rule appears to apply to the request type, not the address.
Backoff answers a 429, which we saw on the first search RSS call. A 403 block page is not a request to wait.
A reply in that thread said “Grab session cookies and it will work” – r/webscraping. It may. It also puts your account credentials in a script, a risk if it runs on a server or lands in a repository, and sends automated traffic through your personal account. We do not recommend it.
A 403 with an HTML body on a request with no login or token is the block. No header, library setting or retry policy changes a server-side rule on unauthenticated requests, so stop debugging your code.
To watch a subreddit for new posts in the next few weeks, RSS works until November 13, 2026. If you need search, comment trees or anything that must run after that date, use the other routes.
Only if you can get in before October 31, 2026, and only for a product with a clear purpose. See Route 2 for the dates.
For reading and analyzing threads with an AI assistant at a human pace, see Route 3.
Keep the classifier above in the request path on every route. When Reddit changes again, you get an error instead of an empty result.
In our test a subreddit top feed returned 200 as a 7,689 byte Atom document with two entries, each carrying the full post body in its content element. No login needed today.
It is ending. In an r/modnews admin post Reddit wrote: “Because RSS is now a common surface for large-scale scraping and automated abuse, we’ll stop supporting RSS feeds on November 13, 2026.” – r/modnews. The same post adds: “If you use RSS for feeds outside of a community you moderate, there is no replacement.” – r/modnews.
The search feed returned 429 on its first call, so even now it covers listings better than search. Do not start anything new on it. Per-pattern results and the rate limit are in our Reddit RSS ending guide.
Under the Responsible Builder Policy you must get approval before using the Data API. The policy says you must not sell, license or commercialize Reddit data, or use it to train machine learning or AI models, without express written approval, and that apps including bots and AI agents must register.
On timing, a Reddit admin replied in the launch thread: “We’re aiming for a 7 day turnaround on most tickets.” – r/redditdev. We could not measure real approval times or rates, so treat that as Reddit’s aim.
If you do have a token, send authenticated requests to the oauth host, not www.
The deadlines close this route. Reddit’s admins set September 30, 2026 for registering all API apps, October 31, 2026 as the last day new public API requests are accepted, January 12, 2027 for access removal to begin for unregistered apps, and March 2027 for the end of remaining public API access. If you do not already hold approved access, plan as if this route is closed.
Reddit said logged-in access would not be impacted, and your own browser is logged in. The BigIdeasDB Clipper Reddit Connector lets that browser make the request at browsing pace and hand the result to your AI client. Reddit has not promised this stays unchanged, so treat it as current behavior, not a guarantee.
From the Reddit Connector docs: when Claude, ChatGPT, Cursor or any client connected to the BigIdeasDB MCP calls a Reddit tool, BigIdeasDB sends a wake-up message to your Clipper extension. Clipper fetches the requested reddit.com page in your Chrome with your Reddit login and returns the result to your AI client. The four tools are search_reddit, fetch_subreddit, fetch_post_comments and fetch_reddit_json. We measured the round trip, push to browser fetch to result, at about 1.2 seconds on October 18, 2026.
Setup, in full in the docs:
The connector is off by default, fetches only reddit.com pages your AI asked for at about one request per second, and results are deleted from BigIdeasDB servers once delivered. No Reddit API keys, developer account or approval queue. Examples in searching Reddit from Claude and Cursor and the Reddit research MCP server.
This is not legal advice. Reddit’s Responsible Builder Policy and terms govern what you may do with the data, including commercial use and AI training, so read them for your case. See pricing for Pro.
In the 30 days to October 18, 2026, Reddit tools were more than half of all tool calls on the BigIdeasDB MCP, per our internal usage log. Scripts built on the old API wrapper: see the PRAW alternative guide.
For research with an AI assistant, the BigIdeasDB Reddit Connector, because it needs no approval or API keys. For other jobs:
| Your job | Route | Why | Limitation |
|---|---|---|---|
| Research Reddit with Claude, ChatGPT or Cursor | BigIdeasDB Reddit Connector | Your own logged-in Chrome, no API keys, about 1.2 s per request | Needs Pro and a running Chrome. Paced at about 1 request per second. Not for bulk. |
| Watch a subreddit for new posts | RSS (until November 13, 2026) | Served 200 with full post text in our test | Reddit says it stops supporting RSS on November 13, 2026, with no replacement outside a community you moderate. Search RSS returned 429. |
| Ship a product that reads Reddit | Approved OAuth app | The route Reddit built for builders, if you already have access | Approval required, new requests stop October 31, 2026 and public API access ends March 2027 per Reddit. Commercial use needs written approval. |
| Build a very large Reddit dataset | Written approval from Reddit | Reddit’s policy requires it for commercial use and AI training | We did not test or price this route. Reddit decides who qualifies. |
The anonymous door is closed on purpose, so pick the route by job. Ideas from Reddit threads: how to find business ideas on Reddit. Scraping at scale: how to scrape Reddit in 2026.
Get Reddit working in your AI assistant again. BigIdeasDB reads Reddit through your own browser and pairs it with 1M+ documented complaints, so a thread becomes a validated idea in one conversation.
This is what we tested, how, and what it cannot tell you. Read the limits before you quote a result.
| Source | What we did | Limitation |
|---|---|---|
| Logged-out endpoint test | 10 plain HTTPS GET requests, browser User-Agent, no cookies, 2 seconds apart, about 18:59 UTC on October 18, 2026, plus a comment-thread request at 19:07 UTC under the same setup | One run, one residential IP, one date. Results can differ by IP, region and time, and Reddit can change them without notice. |
| Logged-in comparison | Listing, search and thread comments fetched in our own Chrome session through the Reddit Connector | The about page and the api, oauth and old hosts were not re-tested logged in. One account, one session. |
| Reddit’s announcements | Read the r/modnews shutdown post, the r/redditdev approval post and the Responsible Builder Policy page | We did not read a date on the shutdown post, so we say late May 2026. The RSS end date, the September 30 registration deadline and the October 31, January 12 and March 2027 API dates come from the Reddit admin posts named in the timeline table. |
| Developer quotes | Quotes from r/redditdev, r/webscraping and r/modnews threads that rank for the head query, attributed by subreddit only | Anecdotes, not measurements. They show what developers report, not how often. |
| Connector timing and usage | Round trip of about 1.2 seconds measured on October 18, 2026. Reddit tools were more than half of MCP tool calls in the 30 days to October 18, 2026, from our internal usage log. | One measurement for the timing. Usage is our own log, not a market share. |
The test cannot show whether the block varies by region, whether Reddit will move its dates, or how long approvals take. If your request differs from our table, believe your request.
Next: run the classifier on your failing URL, match it to the table, pick a route. Setup is in the Reddit Connector docs, and the MCP troubleshooting guide covers connection failures. Background: the BigIdeasDB MCP.
Because Reddit is shutting down unauthenticated .json access. Reddit said in r/modnews (reported as late May 2026) that it would shut down unauthenticated .json endpoints and that logged-in and authenticated access would not be impacted. In our October 18, 2026 test, none of 7 logged-out JSON style URLs returned data: 6 returned a 403 HTML block page and 1 redirected to a login page.
You cannot fix a logged-out .json 403 in your code, because the block is on Reddit's side. Check first that your 403 is not a token sent to the wrong host. Then your options are an already approved Reddit Data API app (Reddit says new requests stop October 31, 2026), RSS until November 13, 2026, or requests made through your own logged-in browser. The BigIdeasDB Reddit Connector is the browser route for AI clients, with Pro and a running Chrome.
For research with an AI assistant, the BigIdeasDB Reddit Connector. The request comes from your own logged-in Chrome, so it needs no Reddit API keys or developer approval, and Reddit said logged-in access would not be impacted. We measured about 1.2 seconds per request once, on October 18, 2026, and it is paced at roughly one request per second. If you already hold approved API access, OAuth works until Reddit ends public API access (March 2027, per Reddit). Do not build on RSS, which Reddit ends on November 13, 2026.
If Reddit loads in your browser but your script gets a 403 with an HTML body, it is probably not an outage. In our test all six 403 responses were the same size, exactly 189,908 bytes, which points to a fixed block page rather than a failing server. A real outage usually shows 5xx errors and affects the browser too.
No. We sent a current Chrome User-Agent with no cookies from a residential IP and still got 403 on every logged-out www, api and oauth JSON URL on October 18, 2026. A developer on r/webscraping reported the same error after switching to a mobile hotspot, which points away from an IP ban. Reddit's stated rule is about logged-out requests, not headers.
Not in our test. old.reddit.com answered with a 302 redirect to its login page for both the HTML page and the .json URL, and api.reddit.com returned the same 403 block page as www.reddit.com. This is one run on one IP on one date, so re-test from your own network.
Not past November 13, 2026. Reddit says it will stop supporting RSS feeds that day and that for feeds outside a community you moderate there is no replacement. A subreddit top feed returned 200 with full post text in our October 18, 2026 test, while a search feed returned 429 on the first call.
We cannot give legal advice. The Reddit Connector only fetches pages your AI asks for, at about one request per second, and is built for research at a normal pace, not bulk dataset collection. Excessive use breaks the BigIdeasDB Terms. Reddit's Responsible Builder Policy separately says commercial use and training AI models on Reddit data need written approval, so read it before building a product on top.
BigIdeasDB Research. (2026). Reddit JSON 403 Forbidden: Why Your Script Broke and What Works in 2026. BigIdeasDB. Retrieved from https://bigideasdb.com/reddit-json-403-forbidden