Reddit Scraper | Posts, Comments and Subreddits avatar

Reddit Scraper | Posts, Comments and Subreddits

Pricing

from $1.20 / 1,000 results

Go to Apify Store
Reddit Scraper | Posts, Comments and Subreddits

Reddit Scraper | Posts, Comments and Subreddits

Scrape any subreddit past the 1,000-post limit, full comment threads with hidden replies, and comments by keyword. Get posts, comments, communities and users with engagement metrics and lead signals on every row: help requests, pain points, product mentions, intent and sentiment. No login.

Pricing

from $1.20 / 1,000 results

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

1

Bookmarked

16

Total users

1

Monthly active users

7 days ago

Last modified

Share

Reddit Scraper (reddit.com) | Posts, Comments, Subreddits and Users (2026)

1 URL. 50 Reddit results. 8 fields per result.

From SilentFlow. Creators of Pinterest Scraper and Leboncoin Scraper, with 420,000+ combined lifetime runs.

Every post, comment and community Reddit still serves, as clean rows you can sort, filter and feed to a model, with the leads already flagged. A whole subreddit, 2,568 posts, in under three minutes.

Why choose this actor?

Stuck with the first 1,000 posts of a subreddit? Copying replies one "load more" at a time? Reading threads for hours to find the three people asking for a tool like yours?

  • The whole subreddit, not the first page. Reddit shows about 1,000 posts per listing. This actor merges every order and time window without duplicates: 2,568 unique posts from r/sydney, where the newest listing alone gives 977.
  • Whole threads, hidden replies included. Set comments per post to 0 and you get every comment Reddit still serves: 2,146 comments from one large AskReddit thread in 44 seconds, nine reply levels deep.
  • Search the comments, not just the posts. The answer is usually in a comment. Search comments by keyword and get each one with its post title, score and community: 35 comments for "vpn for travel" in 20 seconds.
  • 104 fields per post, 70 per comment, 171 distinct fields in all. Media, galleries, flairs, moderation status, edit dates, community size, author flair, plus engagement metrics computed on every row.
  • Leads flagged on every row. Each post and comment says whether it asks for a tool, complains, mentions a price, offers to pay, requests a feature or names a competing product, with an intent and a sentiment. Filter, then read only the rows that matter.
  • No account, no API key, no cookies. Paste a URL or a keyword and run.

Try Reddit Scraper

Try your first subreddit

Paste this input in the Input tab, or call it from the API, and run. You get the community, its latest posts and their comments, 50 rows in all.

{
"startUrls": [{ "url": "https://www.reddit.com/r/technology/" }],
"maxItems": 50,
"includeComments": true
}

The free Apify plan is enough to run it: no credit card, no Reddit account.

How Reddit Scraper works: add a subreddit or a keyword, get structured posts and comments

SilentFlow ยท Reddit suite
ย ย Reddit Scraper
You are here
ย ย Reddit Scraper
Comments, Posts and Users

Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it full context about this scraper:

You have access to the Reddit Scraper on Apify: silentflow/reddit-scraper
Input (all optional, at least one URL or one search term):
- startUrls (array of {url}): subreddits, posts, user profiles or Reddit search pages
- searches (array of string): keywords searched across Reddit
- searchTypes (array, default ["posts"]): any of "posts", "comments", "communities", "users"
- maxItems (integer, default 50): total rows for the run, no fixed limit
- searchCommunityName (string): limit searches to one subreddit
- sort (string, default "new"): relevance, hot, top, new, rising, comments
- time (string, default "all"): all, hour, day, week, month, year
- fullSubreddit (boolean, default false): read a whole subreddit past the ~1,000-post listing limit
- includeComments (boolean, default true): add the comments of every post found
- maxCommentsPerPost (integer, default 100): comments per thread, 0 = the whole thread
- postDateLimit (string, YYYY-MM-DD): only posts and comments created on or after this date
- postedBefore (string, YYYY-MM-DD): only posts and comments created on or before this date
- flair (string): only posts with this flair, "*" = any flair
- includeNSFW (boolean, default true): include 18+ posts and communities
Output: one row per item, dataType = "post" (104 fields), "comment" (70), "community" (44) or "user" (32).
Key post fields: id, url, title, body, selfText, username, communityName, score, upVotes, upVoteRatio,
numberOfComments, flair, mediaType, images, galleryImages, outboundUrl, createdAt, editedAt, locked, stickied.
Key comment fields: id, url, body, username, depth, parentId, parentKind, repliesCount, postTitle, postUrl.
Computed on posts and comments: ageHours, scorePerHour, commentsPerHour, engagementTotal, isHighEngagement,
wordCount, wantsHelp, hasPain, painPoint, mentionsPrice, willingToPay, featureRequest, isVendor, isOwner,
mentionedProducts, intent, sentimentScore, sentimentLabel, lang. Dates are RFC 3339 UTC.
Use apify-client for Python or JavaScript, or the Apify MCP server: https://mcp.apify.com/?tools=silentflow/reddit-scraper

How to scrape Reddit posts and comments

Get the latest posts of a subreddit with their comments

{
"startUrls": [{ "url": "https://www.reddit.com/r/SaaS/" }],
"maxItems": 200,
"includeComments": true,
"maxCommentsPerPost": 20
}

Posts and their threads arrive together: a few posts, then their comments, then the next posts, so a small run still gives you full conversations.

Find the comments that ask for a tool like yours

{
"searches": ["alternative to notion", "looking for a crm"],
"searchTypes": ["comments"],
"sort": "new",
"maxItems": 300
}

Then filter the dataset on wantsHelp or mentionedProducts, or open the Lead signals view.

Download a whole subreddit for a date range

{
"startUrls": [{ "url": "https://www.reddit.com/r/personalfinance/" }],
"fullSubreddit": true,
"includeComments": false,
"postDateLimit": "2026-07-01",
"postedBefore": "2026-09-30",
"maxItems": 10000
}

Input parameters

ParameterTypeDefaultWhat it does
startUrlsarraySubreddits, posts, user profiles, Reddit search pages
searchesarrayKeywords searched across Reddit
searchTypesarray["posts"]posts, comments, communities, users
maxItemsinteger50Total rows for the run, no fixed limit
searchCommunityNamestringLimit searches to one subreddit
sortstringnewrelevance, hot, top, new, rising, comments
timestringallall, hour, day, week, month, year
fullSubredditbooleanfalseEvery order and time window of a subreddit, merged without duplicates
includeCommentsbooleantrueComments of every post found
maxCommentsPerPostinteger100Comments kept per thread, 0 for the whole thread
postDateLimitstringPosted on or after (YYYY-MM-DD)
postedBeforestringPosted on or before (YYYY-MM-DD)
flairstringPosts with this flair (not case sensitive), * for any flair
includeNSFWbooleantrueInclude 18+ posts and communities

Accepted URLs:

  • Subreddit: https://www.reddit.com/r/technology/, or a sorted listing such as https://www.reddit.com/r/technology/top/
  • Post: https://www.reddit.com/r/AskReddit/comments/1wzbc6m/
  • User profile: https://www.reddit.com/user/spez/ (profile and submitted posts) or https://www.reddit.com/user/spez/comments/
  • Search page: https://www.reddit.com/search/?q=vpn
  • Popular: https://www.reddit.com/r/popular/, and the community leaderboard

When a run has several search types, they are filled in this order: posts, comments, communities, users. Raise maxItems or run one type at a time to get each in full.

What data can you extract from Reddit?

Every row has a dataType. The fields are flat, named the way Reddit tools usually name them, with RFC 3339 dates and null when Reddit gives no value.

RowFieldsWhat they cover
post104identity and links, title and text, author and author flair, community and its size, score, upvotes, estimated downvotes, upvote ratio, comments, crossposts, awards, status (locked, pinned, spoiler, archived, edited, removed), media (type, every preview resolution, gallery images, video duration, outbound link and its host)
comment70identity and permalink, text, author, depth, parent and parent type, direct replies (loaded or hidden), whether the author wrote the post, controversiality, status, plus the title, URL, score and comment count of its post
community44name, title, members, active users, type, language, descriptions, sidebar, submission rules (images, videos, galleries, polls), flair and spoiler settings, icons and banner, and the community rules with their descriptions
user32post, comment, awardee, awarder and total karma, account age, gold, moderator and employee flags, verified email, avatar, profile title, bio, banner and followers, previous usernames

Computed on every post and comment: ageHours, scorePerHour, commentsPerHour, engagementTotal (score + comments + crossposts), commentToScoreRatio, isHighEngagement (10 points an hour or 500 interactions), wordCount, titleLength, bodyLength.

Detected signals on every post and comment: wantsHelp, hasPain with the painPoint sentence, mentionsPrice, willingToPay, featureRequest, isVendor, isOwner, mentionedProducts, intent (question, recommendation_request, complaint, promotion, discussion), sentimentScore from -1 to 1 and sentimentLabel, and lang. They are keyword rules, the same result on every run; sentiment is computed for English text and left null otherwise.

Run context: searchTerm (the keyword that found the row), position (order in the run), source (listing, whole subreddit, post, thread, search, comment search, profile).

Stable and permanent: id (Reddit's own identifier, t3_ for posts, t1_ for comments) and url never change. Image links from Reddit's preview servers can expire after some weeks; download what you need to keep.

Output example

A post (long values shortened):

{
"id": "t3_1x3evzw",
"parsedId": "1x3evzw",
"url": "https://www.reddit.com/r/sydney/comments/1x3evzw/sydney_daily_random_discussion_thread_12102026/",
"username": "AutoModerator",
"userId": "t2_6l4z3",
"title": "Sydney Daily Random Discussion Thread 12/10/2026",
"communityName": "r/sydney",
"parsedCommunityName": "sydney",
"body": "Welcome to r/Sydney. Feel free to use this thread to chat, self-post, or ask questions.\n\nNew to this subreddit? [Our wiki](https://www.reddit.com/r/sydney/wi...",
"html": "<!-- SC_OFF --><div class=\"md\"><p>Welcome to <a href=\"/r/Sydney\">r/Sydney</a>. Feel free to use this thread to chat, self-post, or ask questions.</p>\n\n<p>New...",
"numberOfComments": 29,
"upVotes": 5,
"upVoteRatio": 0.73,
"isVideo": false,
"isAd": false,
"over18": false,
"flair": null,
"link": "https://www.reddit.com/r/sydney/comments/1x3evzw/sydney_daily_random_discussion_thread_12102026/",
"thumbnailUrl": "",
"videoUrl": "",
"imageUrls": [
"https://external-preview.redd.it/GNYlEBpmPtLh-2QITkYTH7lwCV5r3CHnoL9eXrXySCY.png?auto=webp&s=ac8a44725cb706dc335962f32f2426fa7ee9a0d9"
],
"createdAt": "2026-10-11T18:01:14Z",
"scrapedAt": "2026-10-12T01:04:58Z",
"dataType": "post",
"selfText": "Welcome to r/Sydney. Feel free to use this thread to chat, self-post, or ask questions.\n\nNew to this subreddit? [Our wiki](https://www.reddit.com/r/sydney/wi...",
"isSelf": true,
"postType": "self",
"isOriginalContent": false,
"spoiler": false,
"contentCategories": [],
"flairColor": "dark",
"flairBackgroundColor": null,
"flairTemplateId": null,
"authorName": "AutoModerator",
"authorId": "t2_6l4z3",
"authorFlairText": null,
"authorPremium": true,
"isAuthorDeleted": false,
"subredditId": "t5_2qkob",
"subredditName": "sydney",
"subredditSubscribers": 791479,
"subredditType": "public",
"score": 5,
"downVotes": 0,
"scoreHidden": false,
"numCrossposts": 0,
"totalAwardsReceived": 0,
"gilded": 0,
"viewCount": null,
"suggestedSort": "new",
"locked": false,
"stickied": true,
"pinned": false,
"archived": false,
"quarantine": false,
"distinguished": null,
"isEdited": false,
"editedAt": null,
"removedByCategory": null,
"removedBy": null,
"bannedBy": null,
"modReasonTitle": null,
"removalReason": null,
"isRobotIndexable": true,
"whitelistStatus": "all_ads",
"domain": "self.sydney",
"outboundUrl": null,
"outboundUrlHost": null,
"mediaType": "text",
"hasMedia": true,
"images": [
{
"url": "https://external-preview.redd.it/GNYlEBpmPtLh-2QITkYTH7lwCV5r3CHnoL9eXrXySCY.png?auto=webp&s=ac8a44725cb706dc335962f32f2426fa7ee9a0d9",
"width": 1200,
"height": 630
},
{
"url": "https://external-preview.redd.it/GNYlEBpmPtLh-2QITkYTH7lwCV5r3CHnoL9eXrXySCY.png?width=108&crop=smart&auto=webp&s=3427e14e85c56fa6b9a4318557106fdc80394f80",
"width": 108,
"height": 56
}
],
"isGallery": false,
"galleryCount": 0,
"galleryImages": [],
"videoDurationSec": null,
"videoHeight": null,
"embedProvider": null,
"crosspostParentId": null,
"crosspostParentUrl": null,
"ageHours": 7.06,
"scorePerHour": 0.71,
"commentsPerHour": 4.11,
"engagementTotal": 34,
"commentToScoreRatio": 5.8,
"isHighEngagement": false,
"wordCount": 87,
"titleLength": 48,
"bodyLength": 824,
"wantsHelp": false,
"hasPain": false,
"painPoint": null,
"mentionsPrice": false,
"willingToPay": false,
"featureRequest": false,
"isVendor": false,
"isOwner": false,
"mentionedProducts": [],
"intent": "question",
"sentimentScore": 0.84,
"sentimentLabel": "positive",
"lang": "en",
"searchTerm": null,
"position": 2,
"source": "listing"
}

A comment from the same run:

{
"id": "t1_pfcui93",
"parsedId": "pfcui93",
"url": "https://www.reddit.com/r/sydney/comments/1x3evzw/sydney_daily_random_discussion_thread_12102026/pfcui93/",
"parentId": "t1_pfcj745",
"postId": "t3_1x3evzw",
"username": "Darth_Krise",
"userId": "t2_13id21",
"category": "sydney",
"communityName": "r/sydney",
"body": "Youโ€™ll want to aim for the Berwongal or Bradman Stands. Plenty of shade for most of the day, especially for the afternoon sessions ",
"html": "<div class=\"md\"><p>Youโ€™ll want to aim for the Berwongal or Bradman Stands. Plenty of shade for most of the day, especially for the afternoon sessions </p>\n</...",
"createdAt": "2026-10-12T00:48:37Z",
"scrapedAt": "2026-10-12T01:05:00Z",
"upVotes": 0,
"numberOfreplies": 0,
"dataType": "comment",
"depth": 1,
"parentKind": "t1",
"repliesCount": 0,
"isSubmitter": false,
"permalink": "https://www.reddit.com/r/sydney/comments/1x3evzw/sydney_daily_random_discussion_thread_12102026/pfcui93/",
"authorName": "Darth_Krise",
"authorFlairText": null,
"authorPremium": false,
"isAuthorDeleted": false,
"postTitle": "Sydney Daily Random Discussion Thread 12/10/2026",
"postUrl": "https://www.reddit.com/r/sydney/comments/1x3evzw/sydney_daily_random_discussion_thread_12102026/",
"postUpVotes": 5,
"postCommentsCount": 29,
"postCreatedAt": "2026-10-11T18:01:14Z",
"subredditId": "t5_2qkob",
"subredditName": "sydney",
"score": 0,
"scoreHidden": false,
"controversiality": 0,
"totalAwardsReceived": 0,
"gilded": 0,
"distinguished": null,
"stickied": false,
"locked": false,
"archived": false,
"collapsed": false,
"collapsedReason": null,
"isEdited": false,
"editedAt": null,
"ageHours": 0.27,
"scorePerHour": 0,
"commentsPerHour": 0,
"engagementTotal": 0,
"commentToScoreRatio": 0,
"isHighEngagement": false,
"wordCount": 23,
"titleLength": null,
"bodyLength": 131,
"wantsHelp": false,
"hasPain": false,
"painPoint": null,
"mentionsPrice": false,
"willingToPay": false,
"featureRequest": false,
"isVendor": false,
"isOwner": false,
"mentionedProducts": [],
"intent": "discussion",
"sentimentScore": 0,
"sentimentLabel": "neutral",
"lang": "en",
"searchTerm": null,
"position": 6,
"source": "thread"
}

Advanced usage

Build a lead list from people asking for recommendations

{
"searches": ["any recommendations for", "best tool for"],
"searchTypes": ["posts", "comments"],
"searchCommunityName": "smallbusiness",
"time": "month",
"sort": "new",
"maxItems": 500,
"includeComments": false
}

Keep the rows where wantsHelp is true and isVendor is false: these are buyers, not sellers.

Track complaints about a competitor

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("silentflow/reddit-scraper").call(run_input={
"searches": ["mailchimp"],
"searchTypes": ["comments"],
"sort": "new",
"time": "week",
"maxItems": 400,
})
complaints = [r for r in client.dataset(run["defaultDatasetId"]).iterate_items() if r.get("hasPain")]
for r in sorted(complaints, key=lambda r: r["score"], reverse=True)[:20]:
print(r["score"], r["painPoint"], r["url"])

Archive a community every month

{
"startUrls": [{ "url": "https://www.reddit.com/r/LocalLLaMA/" }],
"fullSubreddit": true,
"postDateLimit": "2026-09-01",
"postedBefore": "2026-09-30",
"includeComments": true,
"maxCommentsPerPost": 0,
"maxItems": 50000
}

Schedule it on the first day of each month in Apify Schedules. Duplicates never appear inside a run, and the id field lets you merge months without double counting.

Measure how a subreddit feels about a topic

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_APIFY_TOKEN" });
const run = await client.actor("silentflow/reddit-scraper").call({
searches: ["iphone 17"],
searchTypes: ["comments"],
searchCommunityName: "apple",
time: "month",
maxItems: 1000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
const english = items.filter((r) => r.sentimentLabel);
const share = (label) => english.filter((r) => r.sentimentLabel === label).length / english.length;
console.log({ positive: share("positive"), negative: share("negative"), comments: english.length });

Send the results to Google Sheets, Slack or your CRM

Every run's dataset exports to JSON, CSV, Excel, XML and HTML from the Storage tab, or from the API:

https://api.apify.com/v2/datasets/{DATASET_ID}/items?format=csv&token=YOUR_APIFY_TOKEN

Add the Google Sheets, Slack, Zapier, Make or n8n integration in the Integrations tab of a run or a schedule, or point a webhook at your own endpoint: new rows reach your tool after each run, no code needed.

FAQ

What does this Reddit scraper extract? Posts, comments, communities and user profiles, one row each, with up to 104 fields per post and 70 per comment, plus engagement metrics and detected lead signals.

Do I need a Reddit account or an API key? No. It reads public Reddit pages only, the way a visitor sees them. No login, no API key, no cookies.

How do I get more than 1,000 posts from a subreddit? Turn on Whole subreddit. Every listing order and time window is read and merged without duplicates. On an active community that means several thousand posts (2,568 on r/sydney). Very old posts that no listing shows any more stay out of reach.

Why do I get fewer comments than the count Reddit displays? Reddit's count includes deleted and removed comments that it no longer serves. You get every comment that is still there, hidden replies included when comments per post is 0.

Can I search comments by keyword? Yes. Add a search term and choose Comments in Search for. Each comment comes with the title, URL, score and comment count of its post. Add a community to search only there.

Are the signals made by AI? No. They are keyword rules on the title and text: free, instant and identical from one run to the next. They point you to the rows worth reading; they do not replace reading them.

Can I combine filters? Yes, they stack. A subreddit URL with Whole subreddit, Posted after 2026-07-01, Posted before 2026-09-30 and flair Discussion returns only the discussion posts of that quarter, with their comments if you keep them on.

How fresh is the data? Every run reads Reddit live at that moment. Nothing is cached, so scores and comment counts are those of the run time.

Can I scrape several subreddits or keywords in one run? Yes. Add as many URLs and search terms as you like; maxItems is the total for the run.

Will my existing tasks and integrations keep working? Yes. Every input and every field name from earlier versions is unchanged; new fields are added alongside them.

What is Reddit? Reddit is a network of more than 100,000 active communities (subreddits) where people post links, text and media and discuss them in threaded comments. It is one of the largest sources of first-hand opinions about products, services and markets.

More SilentFlow scrapers

๐Ÿ›’ E-commerce

๐Ÿ’ผ Jobs

๐Ÿ  Real estate

๐Ÿ“ฃ Social media

๐Ÿข Business data

โœˆ๏ธ Travel

๐ŸŽฏ Lead generation

๐Ÿ”Ž SEO

๐Ÿ“ˆ Marketing

๐Ÿงฐ More tools

Support

Need something this scraper doesn't do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

This Actor extracts publicly available data from Reddit. It does not bypass any login, paywall or CAPTCHA, and it never reads private communities. Users are responsible for complying with Reddit's terms of service and applicable data protection laws (GDPR, CCPA and similar). The output contains usernames and the text people posted: treat it as personal data where those laws apply. The data is informational; verify it before using it in regulated decisions.

Reddit Scraper is maintained by SilentFlow and is not affiliated with Reddit, Inc.