Reddit Scraper: Posts, Comments, Search & Users
Pricing
from $0.79 / 1,000 results
Reddit Scraper: Posts, Comments, Search & Users
Reddit scraper and Reddit data scraper API: scrape Reddit posts, comments, users and subreddits from any URL, search, subreddit or username. Scores, upvote ratio, full text, flair, media and comment threads with depth and reply counts. No login, no start fee, pay per result.
Pricing
from $0.79 / 1,000 results
Rating
0.0
(0)
Developer
DeepMine
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
3
Monthly active users
9 hours ago
Last modified
Categories
Share
What does Reddit Scraper do?
Reddit Scraper finds Reddit discussions about a product or problem and exports the posts and their replies. Paste a Reddit URL or enter search words, and get full text, scores, authors and thread links without logging in: posts, comments, users and subreddits, as a Reddit data scraper for CSV, Excel and JSON, or as a Reddit API from your own code. No login, no browser, no cookies.
These are real rows from the prefilled run (search "crm recommendation", past year, 20 posts with 4 comments each):
| Post | Community | Score | Comments | Posted |
|---|---|---|---|---|
| Which CRM do you recommend | r/CRM | 18 | 126 | 2026-10-14 |
| HELP! What CRM do you recommend? | r/CRM | 11 | 100 | 2026-06-02 |
| Looking for a new CRM platform. Any recommendations? | r/CRMSoftware | 19 | 77 | 2026-07-07 |
| Which CRM would you recommend for our small business? | r/CRM | 17 | 95 | 2026-05-07 |
| Looking for a Free CRM tool for a Small Business Recommendations? | r/CRMSoftware | 32 | 97 | 2026-03-25 |
$0.99 per 1,000 results on Starter ($1.09 Free, $0.89 Scale, $0.79 Business), whether the result is a post, a comment, a user or a community. The prefilled run (100 results) costs $0.099 on Starter. No start fee, and you pay only for results you get.
Start in three steps
- Run the prefilled CRM search, or replace its URL with your own Reddit search, post or subreddit link. Or type search words in Search terms.
- Choose whether to include comments and how many posts and comments to collect.
- Start, then open the results on the Output tab and download CSV, Excel or JSON. Or schedule the run.
Copy/paste input for the API (Actor id deepmine/reddit-scraper), the prefilled run:
{"startUrls": [{ "url": "https://www.reddit.com/search/?q=crm+recommendation&sort=relevance&t=year" }],"includeComments": true,"maxCommentsPerPost": 4,"maxItemsPerSource": 20}
From Python with the official Apify client (set your API token in APIFY_TOKEN):
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("deepmine/reddit-scraper").call(run_input={"startUrls": [{"url": "https://www.reddit.com/search/?q=crm+recommendation&sort=relevance&t=year"}],"includeComments": True,"maxCommentsPerPost": 4,"maxItemsPerSource": 20,})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["dataType"], row.get("title") or (row.get("body") or "")[:60], row.get("upVotes"))
What can you scrape from Reddit?
- Subreddits: hot, new, top, rising or controversial posts, any period.
- Search: posts for any words (all of Reddit or one subreddit), comments that use your words anywhere on Reddit, plus communities (with their rules) and users.
- Media search: Reddit's own Media tab for any words: image, gallery and video posts, each a full post row. Set Search for to Media, or paste a Reddit search link with
type=media. - Community leaderboards: Reddit's Explore lists in Reddit's order, with
leaderboardRank: the 250 most visited communities, or a topic or subtopic (Crypto, Games, Sports...). Pastereddit.com/explore/links, or trudax-style/subreddits/leaderboard/<category>/links: Reddit retired those pages, so they're read from Explore (the run log says which list). - Posts by URL: the post, plus its comments when Include comments is on, up to Max comments per post (replies included, with
depth,parentIdandrootCommentIdon every comment, andnumberOfReplieswhen the comment's replies were read). - Users: profile (karma, account age, verification, moderator), their posts and their comments (
/user/<name>/comments/links work too). - Any Reddit link: paste subreddit, post, user, search or front-page URLs into one list.
Filters: posted after or before a date (or "7 days"), minimum score, NSFW on or off, and for searches Match (every word, or the exact phrase, in the post's title and text or the comment). Filtered-out posts aren't charged.
Use cases
- Lead generation: find people asking for a tool like yours ("crm recommendation", "alternative to X") and read what they need in the comments.
- Market and product research: collect what a community says about a product, a competitor or a problem, with scores to see what resonates.
- Brand and topic monitoring: run a search or a subreddit on a schedule with Posted after set to "1 day" to get only what's new (recipe below).
- Datasets for AI and analysis: whole comment threads with
depth,parentIdandrootCommentId, ready to rebuild conversations. - Community and creator research: subreddit size, age and rules; user karma, account age and post history.
Recipe: a daily monitor
Search the topic, newest first, and keep only what was posted in the last day. In the Console form, clear the prefilled Reddit URL and fill Search terms; through the API, leave startUrls out:
{"searches": ["best crm for startups"],"searchSort": "new","postedAfter": "1 day","includeComments": true,"maxCommentsPerPost": 20,"maxItemsPerSource": 100}
Schedule it daily on Apify. postedAfter filters by when the post was written, so each run returns what is new in that window. It is not a memory across runs: a result a later run finds again is charged again, once per run.
How much does it cost to scrape Reddit?
You pay per result in your dataset: a post, a comment, a user or a community, all at the same price.
| Apify plan | Price per 1,000 results |
|---|---|
| Free | $1.09 |
| Starter | $0.99 |
| Scale | $0.89 |
| Business | $0.79 |
Each post, comment, user or community is charged once per run, even when several of your inputs find it. There's no start fee, and the run stops at your spending limit.
Input
The prefill searches Reddit for "crm recommendation" (past year) and reads 20 posts with 4 comments each. To change it:
- Reddit URLs: any subreddit, post, user or search link.
- Search terms: one per line; choose posts, comments, communities, users or media in Search for.
- Include comments and Max comments per post: up to 100,000 comments per post. Reddit's first answer comes in its own order (Best, Top, New, Controversial, Old or Q&A); on big threads the rest follow as they're read: 1,000 comments of a 3,141-comment thread took an 18 s run on 2026-10-22 (very large asks take longer).
- Max posts per source: per URL, search term, subreddit or user. Reddit lists about 1,000 posts per subreddit sort and about 250 per search sort; Maximize coverage reads a search in more sorts and periods and merges them without duplicates.
- Max results (total): a cap for the whole run, every source, post, comment, user and community counted together. Leave it empty for no total cap.
- Below the first screen: Subreddits and users (names instead of URLs, sort and period, what to get per user), Search options (sort, period, one subreddit only, Match, Maximize coverage), Filters (dates, minimum score, NSFW) and Advanced (comment depth and sort, proxy).
{"startUrls": [{ "url": "https://www.reddit.com/r/smallbusiness/top/?t=week" }],"searches": ["best crm for startups"],"includeComments": true,"maxCommentsPerPost": 50,"maxItemsPerSource": 100,"postedAfter": "30 days"}
Coming from trudax/reddit-scraper-lite?
Paste your input as it is. Its keys are read as this Actor's, and the run log lists each one it translated. If you also give one of our own keys, ours is used. As of 2026-10-26, from its input schema and README:
| trudax/reddit-scraper-lite | Read here as |
|---|---|
maxItems (total saved) | maxResults |
maxPostCount (posts per page) | maxItemsPerSource |
maxComments, skipComments | maxCommentsPerPost, includeComments (maxComments: 0 or skipComments: true: no comments) |
sort, time (search order and period) | searchSort, searchTime. Our own sort and time still order a subreddit's posts; relevance and comments are search orders in any input |
searchPosts, searchComments, searchCommunities, searchUsers, searchMedia | one search per switch that is on |
searchCommunityName | withinSubreddit |
postDateLimit | postedAfter, with searches newest first, as trudax does |
commentDateLimit | only comments posted after that date |
maxCommunitiesCount, maxUserCount | communities and users per source |
skipUserPosts, skipCommunity | users without their posts; skipCommunity: false adds each subreddit's community row |
ignoreStartUrls, proxy | as there |
includeMediaLinks, scrollTimeout, navigationTimeout, debugMode | not needed: scores, comment counts and media are always on the rows, and there's no browser |
Rows carry trudax's field names too, with the same values, next to ours: numberOfComments (our commentsCount), upVoteRatio, userId, authorFlair, html, link, videoUrls, thumbnailUrl, contentType and category (the subreddit) on posts and comments, numberOfMembers, name and displayName on communities, userIcon on users. createdAt has the same format (2026-06-02T14:42:48.000Z), and imageUrls is [] when a post has none. One difference: id is Reddit's full id with its type prefix on every row; trudax's community and user rows put the short id there, which is parsedId here.
Output
Every row goes to one dataset, where dataType says what it is: post, comment, user or community. The Output tab opens All results (every row type together, one dataset) and, for each type, a page with Excel, CSV, JSON and HTML-table links to a free table that holds only that type's rows: Posts only, Comments only, Users only, Communities only. The dataset's own type views (Storage tab) pick that type's columns but still list the other types' rows, blank in them, so use the "only" pages (or filter on dataType) to take one type. Each row is charged once. Download as JSON, CSV, Excel or HTML, or read it through the Apify API.
A comment row (prefilled run, shortened):
{"dataType": "comment","id": "t1_opbsaek","upVotes": 4,"createdAt": "2026-06-02T14:42:48.000Z","depth": 0,"parentId": "t3_1tupsg7","postId": "t3_1tupsg7","postTitle": "HELP! What CRM do you recommend?","communityName": "r/CRM"}
Post fields (111): id, url, title, body, communityName, username, upVotes, upvoteRatio, commentsCount, createdAt, flair, postType, contentUrl, domain, imageUrls, videoUrl, thumbnail, over18, ageHours, scorePerHour, commentsPerHour, engagementTotal, wordCount, bodyHtml, subredditSubscribers, authorId, authorFlairText, editedAt, isSelf, isVideo, isGallery, isDeletedOrRemoved, spoiler, locked, stickied, isAd, numCrossposts, numDuplicates (filled when Include comments is on: it's only on the post's own page), crosspostParentUrl, galleryImages, galleryCaptions, mediaAssets, embed, media, preview, permalink, oldRedditUrl, shortUrl and more.
Comment fields (65): id, url, body, username, upVotes, createdAt, depth, parentId, parentKind, rootCommentId, postId, postTitle, postUrl, postUpVotes, postCommentsCount, postCreatedAt, postAuthor, communityName, numberOfReplies, isSubmitter, edited, stickied, bodyHtml and more. numberOfReplies is filled when the comment's replies were read: it was empty on 16 of the 80 comments in the run above, which does not mean they have no replies.
User fields (38): username, totalKarma, postKarma, commentKarma, createdAt, accountAgeDays, iconUrl, snoovatarImg, previousNames, profileVisibility, isVerified, isMod, isEmployee, description and more. totalKarma is post plus comment karma, the total Reddit's profile page shows. awardeeKarma and awarderKarma stay empty: since Oct 26, 2026 Reddit shows them on no logged-out page. Community fields (58): communityName, title, subscribers, weeklyActiveUsers and weeklyContributions (the weekly visitors and contributions Reddit shows on the community's page), onlineUsersCount (filled when Reddit sends it; its logged-out data has no online count today, so it is usually empty), whitelistStatus (Reddit's ad status: all_ads, some_ads, house_only or promo_adult_nsfw), description, descriptionHtml, headerTitle, rules (name, description, kind and report reason of each rule), createdAt, over18, language, iconUrl, headerImage, restrictCommenting, spoilersEnabled, linkFlairEnabled, suggestedCommentSort, leaderboardRank and leaderboardTopic (from a leaderboard) and more.
Every row also has input (which of your inputs found it) and scrapedAt (when its page was read). Run totals, per-input counts and anything not found are in the run's OUTPUT record.
Measured examples
Dated runs on Apify (256 MB, datacenter proxy), each one run, not a guarantee:
| Run | Results | Time |
|---|---|---|
| The prefill: search "crm recommendation", 20 posts with 4 comments each (Oct 25, 2026) | 100 | 6.9 s (first row at 2.1 s on the Actor's own timer) |
| The same prefill (Oct 22, 2026) | 100 | 12 and 17 s in two runs (first row at 3.1 and 10.3 s) |
| r/Python, newest, 1,000 posts asked (Reddit lists 951; Oct 20, 2026) | 951 | 46 s (first row at 1.6 s) |
Most of a big subreddit run is Reddit's own answer time: it serves one 100-post page at a time, about 3 seconds each in that run (30 of its 46 seconds), and each page needs the one before it.
Run outcomes, as Apify counts them in the public 30-day figure on 2026-10-25 (aborted and timed-out runs included, not a completeness or speed comparison): this Actor 25 of 25 runs succeeded, our own checks among them. The most-used Reddit scraper on the Store, trudax/reddit-scraper-lite, 300,019 of 345,534 (86.8%): 3,701 failed, 32,353 timed out, 9,461 aborted.
Is it legal to scrape Reddit?
This Actor reads only public Reddit content that anyone can see without logging in. It doesn't log in and doesn't touch private or quarantined communities. If your results include personal data, you're responsible for handling it lawfully (for example under GDPR).
FAQ
What if Reddit fails in the middle of a thread? Each thread page is tried up to 4 times, each time from a new IP. If one still fails, the comments read so far stay in your dataset, and the run's status and OUTPUT (commentsIncomplete) list the posts whose threads stopped early.
Can it search comments? Yes: set Search for to Comments, or paste a Reddit search link with type=comments. It reads Reddit's own comment search (relevance, new or top) and fills each comment in with its full record: author, score, time, parent, post and community. Search only in this subreddit uses Reddit's own subreddit search (and each row is checked again). Reddit's comment search has no period of its own, so Search period and Posted after/before are applied to what it returns: other comments are skipped and free, you pay only for the rows you get. A narrow period over a broad word reads more pages to find matches (it gives up after 15 pages in a row with none), so use sort New with a short period. Same price as any other row, no residential proxy needed.
Why fewer posts than I asked for? Reddit itself stops a subreddit sort at about 1,000 posts and a search sort at about 250. Use other sorts and periods, or Maximize coverage for searches.
Is it fast? Results arrive page by page as Reddit answers, and the next page is already being read while one is saved. See the measured examples above; memory peaked at 99 MB in the Oct 20 and Oct 22 runs.
Does my Apify plan matter? Only for very large runs. Reddit allows 100 requests per IP every 10 minutes, and the run uses your plan's datacenter proxy IPs: 5 on the Free plan (about 500 requests, or 50,000 posts, per 10 minutes), 30 or more on paid plans. When every IP has used its 100, the run pauses until Reddit's window resets and says so in its status, then carries on. If the pause would run past your run's timeout, it stops just before it and keeps every row it collected.
More Reddit Actors
- Find where to look. Reddit Subreddit Finder ranks the communities for a niche; Subreddit Trend Finder shows what is rising in them right now.
- Find the posts, and the people asking. Reddit Posts Scraper, Subreddit Scraper, Reddit Search Scraper read subreddits, searches and links; Reddit Lead Generation Scraper keeps the posts and comments that ask for a recommendation or a switch, and Reddit Mentions Scraper, Reddit Brand Monitor, Reddit Sentiment Tracker follow a brand over time.
- Read the whole conversation. Paste a post link into Reddit Comments Scraper for every comment and reply. A Reddit search-result link works too: this Actor reads the matching threads whole with Include comments on.
- Reddit API: the same data with ready-made code examples.
- Reddit Comments Scraper, Reddit Search Scraper, Reddit User Scraper, Subreddit Scraper and Reddit Posts Scraper: one focused job each.
- Reddit Mentions Scraper, Reddit Brand Monitor and Reddit Sentiment Tracker: follow a brand or a keyword on a schedule, then open any mention here for its thread.
- Researching a brand beyond Reddit? TikTok Search API and Instagram Reels Search find the same topic in short videos.
Feedback
Found a bug or need a field? Open an issue on the Actor's Issues tab; we read every one. If the data helps you, a short review on this page helps other people find it.