Blog/Guides
11 min read

Reddit Scraper: How to Get Reddit Data After the API Lockdown

Reddit closed self-service API access in 2025. Here is the honest split between the licensed Data API and a public-page Reddit scraper you run metered per call.

Reddit Scraper: How to Get Reddit Data After the API Lockdown

We watch a lot of subreddits. Product feedback in the niche communities, launch reactions, the slow drift of what a market complains about before it churns, and for a stretch this year the way we pulled it broke. In November 2025 Reddit closed self-service access to its public Data API under a "Responsible Builder Policy," and the free token most builders had wired into a script stopped being something you could just grab. The official Data API is still there, but it now sits behind an approval process and licensing terms, and OAuth was capped at one token per account in mid-2025. That is why "reddit scraper" started trending: a whole layer of casual access disappeared, and everyone who relied on it went looking for what replaced it.

So the real question behind "reddit scraper" is not "which tool," it is "how do I get Reddit posts and comments out now, at the volume I need, without pretending the terms do not exist." There are two honest routes, they land in different places on the compliance-and-effort curve, and you are on the Monid blog, so one of them is ours. We will be straight about when the other one is what you actually want.

Reddit did not delete its Data API in late 2025. It gated it. The honest choice now is between the licensed API you apply for and a scraper that reads only public, logged-out pages, and the right pick depends entirely on scale and intent.

What changed with Reddit's API, and why it matters?

For years the pattern was simple: register an app, get a token, call the JSON API. That casual on-ramp is what closed. Under the Responsible Builder Policy the official Reddit Data API now requires an approval step, and commercial or AI use in particular runs through a licensing conversation rather than a signup form. This is Reddit deciding who gets programmatic access to its data and on what terms, and it is a defensible position for them to take.

The knock-on effect is that the two remaining routes are genuinely different tools, not two brands of the same thing. One is the sanctioned channel with a gate in front of it. The other reads the same public pages your logged-out browser sees, with no gate and no license, which buys speed at the cost of sitting in a Terms-of-Service gray area. Neither is strictly better. They serve different jobs.

Two routes to Reddit data after November 2025: the official Reddit Data API, gated behind an approval process and licensing, which is compliant for scale and AI use; and an unofficial scraper that reads public logged-out pages, fast and bursty but sitting in a Terms-of-Service gray area
Two routes to Reddit data after November 2025: the official Reddit Data API, gated behind an approval process and licensing, which is compliant for scale and AI use; and an unofficial scraper that reads public logged-out pages, fast and bursty but sitting in a Terms-of-Service gray area

Official Reddit Data APIPublic-page scraper (metered on Monid)
AccessApproval process, licensing for commercial/AI useNone, reads logged-out public pages
Time to first pullDays to weeks, gated on reviewMinutes
Data scopeWhat Reddit licenses youOnly public, logged-out-visible content
Compliance postureDefensible, licensedToS gray area, terms and robots still apply
Best forLarge-scale, commercial, AI-training useResearch, monitoring, bursty pulls
Cost shapeNegotiated licensePay per result, zero when idle

The honest read: if you are training a model on Reddit data, building a product on top of it, or pulling at sustained industrial scale, the licensed API is the route that holds up, and the approval friction is the price of a defensible position. If you are a researcher, an analyst, or an agent that needs a burst of public posts for monitoring or a one-time study, the scraper route gets you there today without an application, as long as you treat "public" as a real limit and not a loophole.

What can a public Reddit scraper actually pull?

The scraper Monid resells is the Apify actor trudax/reddit-scraper-lite. It reads Reddit without logging in, which is the whole point and also the whole boundary: it sees exactly what an anonymous visitor sees, and nothing that requires an account. Within that boundary it is broad. One actor covers two different ways in.

One Reddit actor, two entry modes: search by keyword across posts, comments, communities, and users, or start from subreddit and post URLs; both feed into reddit-scraper-lite running without login and return structured items
One Reddit actor, two entry modes: search by keyword across posts, comments, communities, and users, or start from subreddit and post URLs; both feed into reddit-scraper-lite running without login and return structured items

The first entry mode is search. You hand it an array of searches terms and it queries across Reddit, with searchPosts, searchComments, searchCommunities, and searchUsers as booleans that decide which of those four object types come back (posts are on by default). You steer the result set with sort (relevance, hot, top, new, rising, comments) and, for posts, time (all, hour, day, week, month, year). This is the mode for "what is being said about X right now."

The second entry mode is start-from-URL. Instead of searching, you pass startUrls as an array of {url} objects pointing at reddit.com: a subreddit, a specific post, a user page. The actor crawls from there. This is the mode for "give me the last 25 posts from r/webscraping" when you already know exactly where to look.

Verify the schema first, which is free, then run a search:

monid inspect -p apify -e /trudax/reddit-scraper-lite
monid run -p apify -e /trudax/reddit-scraper-lite -i '{"searches":["ai agents"],"searchPosts":true,"sort":"top","time":"week","maxItems":25,"includeMediaLinks":true}' -w

That call pulls the top AI-agents posts from the past week, capped at 25 items. Swap sort to new for a monitoring feed, or widen time to month for a research sweep. The maxItems cap is your spend governor, and there are finer knobs, maxPostCount and maxComments, when you want to bound posts and comment depth separately. includeNSFW is a boolean that stays off unless you turn it on.

To scrape a subreddit directly and skip the comment threads entirely, start from its URL and set maxComments to zero:

monid run -p apify -e /trudax/reddit-scraper-lite -i '{"startUrls":[{"url":"https://www.reddit.com/r/webscraping/"}],"maxPostCount":25,"maxComments":0,"includeMediaLinks":true}' -w

Setting maxComments to zero is the move that keeps a subreddit sweep cheap when all you want is post-level signal. Turn it up when the discussion under a post is the thing you are actually studying.

What does one scraped Reddit record contain?

The value is in the fields, and this actor extracts more than a title and a link. Each post record carries the body text and its HTML, the author and their flair, the timestamp, the permalink, and the score. Flip includeMediaLinks on and the record fills out with upVotes, upVoteRatio, imageUrls, videoUrls, and numberOfComments, which is the block you want whenever engagement is the signal you are ranking on.

One scraped Reddit post record fans out into title and body or HTML, score and upvote ratio, comment count, media URLs for images and video, author and flair, and timestamp with permalink
One scraped Reddit post record fans out into title and body or HTML, score and upvote ratio, comment count, media URLs for images and video, author and flair, and timestamp with permalink

The upvote ratio is the quietly useful one. Raw score tells you a post got attention; the ratio tells you whether the community agreed with it or fought about it, which is a different and often more interesting question when you are reading sentiment. Comment counts and timestamps let you find the threads that are heating up rather than the ones that already peaked. Body and HTML content go straight to an LLM for topic, claim, or complaint extraction without touching a page. And because comments come through the same actor, you can walk from a post into the discussion under it, author flair and all, when the replies are where the real information lives.

This is the same shape of work we have written up for other platforms: pulling social comments at the record level is the subject of our buy-versus-build teardown on the TikTok comment scraper, and the tradeoffs rhyme. If your Reddit job is specifically deep comment-thread extraction, Monid also carries a dedicated crawlerbros/reddit-comment-scraper actor tuned for that, worth a look when threads, not posts, are the unit you care about.

Run the licensed API, or the public scraper?

This is the honest fork, and it is the real reason this page exists.

If your use is commercial, sits inside a product, or feeds model training, the official Reddit Data API is the route that survives scrutiny. Yes, it means the approval process and a licensing conversation, and yes, that is slower than running a scraper this afternoon. But a license is exactly what you want when the data underpins something you are shipping or selling, because it puts you on the right side of Reddit's terms by design rather than by hoping nobody looks. For that route, Monid carries an official-OAuth Reddit actor, practicaltools/apify-reddit-api, so you can run the licensed channel through the same wallet as everything else.

The public scraper earns its place at the other end of the curve: speed and access for work that is bursty, exploratory, or non-commercial. A researcher pulling a week of posts for a study, an analyst monitoring how a subreddit reacts to a launch, an agent that needs a fast public sample: none of that justifies a licensing cycle, and all of it is served by reading public pages you could open in a browser anyway. The line we will not cross in describing it: this is not a license to ignore Reddit's terms. It reads only public, logged-out data, Reddit's terms and robots directives still apply, you must respect rate and avoid misusing anyone's personal data, and for large-scale or commercial or AI-training use the licensed API is the defensible answer. The scraper's value is the burst, not a blank check.

Where the scraper is the right tool, Monid is what makes it painless. Monid is a pay-per-call data API marketplace: one key and one wallet reach hundreds of external data endpoints, the Apify Reddit actors among them, with the price shown before anything runs and zero cost when idle. You do not hold an Apify account, a plan, or a proxy pool. Discovering an endpoint and reading its schema are free, so you can inspect the actor, confirm the exact fields, and only pay when a run fires. The full Apify catalog lives on the Apify tools page, and the reasoning for picking one provider over another for a given platform is the whole subject of our Apify-versus-TikHub comparison.

Point an agent at it and it self-onboards from set up https://monid.ai/SKILL.md, learning the discover, inspect, run loop on its own. For a human, setup is two lines:

npm install -g @monid-ai/cli
monid keys add --label main --key <your-api-key>

What does a Reddit scraper cost?

We do not print rates, because the number that matters is cost per usable record and live magnitudes sit at monid.ai/tools. The shape that survives any price change: trudax/reddit-scraper-lite bills per result, a fraction of a cent per item, plus a tiny flat fee per run. Pull a few thousand posts for a research sweep and you are in low single-digit dollars for that job, dropping to zero the moment it finishes. There is no monthly floor to idle against between pulls, which is the entire advantage for work that comes in bursts. When your usage is spiky enough that a standing plan would sit unused most of the month, metered wins, and the same logic we walked through when we pulled 10k social profiles with no scraper subscription applies here unchanged.

Common questions about scraping Reddit

Is it legal to scrape Reddit? The public-page scraper reads only what a logged-out visitor can see, which is a narrower and more defensible thing than automating a logged-in account, but it is not a blanket permission. Reddit's Terms of Service and robots directives still apply, you must respect rate and avoid misusing personal data, and for commercial or AI-training use the licensed Reddit Data API is the route that holds up. Treat the scraper as a fast lane for research and monitoring, not as a way around the terms.

Can I still use the official Reddit Data API? Yes, but access changed. Since November 2025 the official Data API runs under a Responsible Builder Policy with an approval process, and commercial or AI use goes through licensing. OAuth was also limited to one token per account in mid-2025. It is the right route for anything commercial or at scale. Monid carries an official-OAuth Reddit actor for it.

Do I need a Reddit account or login to scrape public posts? Not for the public-page actor. trudax/reddit-scraper-lite reads logged-out Reddit, so it needs no account, no OAuth token, and no proxy setup on your end. It returns only content visible without login, which is the boundary that keeps it clean.

How is the scraper billed? Per result, a fraction of a cent per item, plus a small flat fee per run, and always shown before anything executes. Discovering and inspecting the endpoint on Monid are free; only the run bills your wallet. Current magnitudes are at monid.ai/tools.

The best Reddit scraper is the one that matches your intent: the licensed Data API when the data feeds a product or a model, and the public-page actor metered per call when you need a fast, honest burst of public posts for research or monitoring and nothing standing between pulls.

Last updated August 2026.

reddit scraperreddit data apiweb-scrapingsocial