Reddit Comments Deep Scraper avatar

Reddit Comments Deep Scraper

Pricing

from $0.001 / result

Go to Apify Store
Reddit Comments Deep Scraper

Reddit Comments Deep Scraper

Scrape Reddit comment threads for lead discovery, sentiment analysis, market research, and AI datasets. Extract nested replies, scores, authors, timestamps, and parent IDs.

Pricing

from $0.001 / result

Rating

0.0

(0)

Developer

LIAICHI MUSTAPHA

LIAICHI MUSTAPHA

Maintained by Community

Actor stats

0

Bookmarked

35

Total users

1

Monthly active users

3 days ago

Last modified

Share

Scrape Reddit comment threads for lead discovery, social listening, sentiment analysis, market research, and AI datasets.

You need your own free Reddit API credentials (a client ID and secret, created in two minutes at reddit.com/prefs/apps). The Actor reads Reddit only through Reddit's official API, as Reddit's terms require. See Reddit API credentials below.

This Actor focuses on the part of Reddit where the useful signal usually hides: replies, objections, follow-up questions, product complaints, and nested discussions. It extracts clean comment records with parent_id and depth, so you can rebuild the full conversation tree instead of working with only top-level comments.

Features

  • Extract comments from direct Reddit post URLs
  • Monitor posts from one or more subreddits
  • Search Reddit by keyword, then scrape matching post comments
  • Capture nested replies with configurable depth from 1 to 10
  • Rebuild threads using comment_id, parent_id, and depth
  • Export clean body_plain text for sentiment analysis and LLM pipelines
  • Keep author, score, flair, timestamp, permalink, and parent post metadata
  • Filter deleted comments, low-score comments, and old comments
  • Uses Reddit's official API with your own credentials: no proxies, no blocked runs
  • Fails with a clear message when credentials are missing or wrong, so you are never charged for an empty run

Why this Actor

Many Reddit tools stop at posts or top-level comments. That misses the buying signal.

For market research, the useful quote is often two replies deep:

  • "I tried this competitor and churned because..."
  • "Looking for a tool that can..."
  • "The real problem is not price, it is..."
  • "We use X, but the workflow breaks when..."

This Actor is positioned for people who want structured Reddit conversations, not just a list of threads.

Use Cases

Reddit lead discovery Find people asking for tools, alternatives, agencies, automations, or recommendations in niche communities.

Brand and competitor monitoring Track mentions of your product, a competitor, or a category across subreddits, then sort comments by score and author signals.

Voice-of-customer research Collect complaints, objections, feature requests, pricing concerns, and product language directly from Reddit conversations.

Sentiment analysis Export body_plain, score, subreddit, and timestamp fields into sentiment models, dashboards, or labeling workflows.

AI training datasets Use parent_id and depth to reconstruct multi-turn conversation trees for dialogue datasets, evaluation data, and research pipelines.

Ready-to-Run Examples

Each example also needs redditClientId and redditClientSecret (left out below for brevity).

1. Find SaaS buying intent

{
"subreddits": ["SaaS", "startups", "smallbusiness"],
"searchQuery": "\"looking for\" \"CRM\"",
"subredditSort": "top",
"subredditTimeFilter": "month",
"maxPostsPerSubreddit": 10,
"maxCommentsPerPost": 100,
"maxDepth": 3,
"minScore": 1,
"skipDeleted": true
}

Use this to find users actively asking for software recommendations or alternatives.

2. Monitor competitor mentions

{
"subreddits": ["marketing", "Entrepreneur", "SaaS"],
"searchQuery": "\"HubSpot\" OR \"Salesforce\" OR \"Pipedrive\"",
"subredditSort": "new",
"maxPostsPerSubreddit": 25,
"maxCommentsPerPost": 50,
"maxDepth": 2,
"includePostInfo": true
}

Use this as a scheduled task to catch new competitor conversations.

3. Build an AI discussion dataset

{
"subreddits": ["MachineLearning", "LocalLLaMA", "artificial"],
"subredditSort": "top",
"subredditTimeFilter": "week",
"maxPostsPerSubreddit": 20,
"maxCommentsPerPost": 250,
"maxDepth": 5,
"includeReplies": true,
"skipDeleted": true
}

Use this when you need nested technical discussions for analysis or model evaluation.

4. Analyze a single Reddit thread

{
"startUrls": [
{
"url": "https://www.reddit.com/r/SaaS/comments/example/post_title/"
}
],
"maxCommentsPerPost": 500,
"maxDepth": 10,
"includeReplies": true,
"includePostInfo": true
}

Use this when one discussion is important enough to collect deeply.

Input

FieldTypeDefaultDescription
redditClientIdstringrequiredClient ID of your Reddit app
redditClientSecretstringrequiredSecret of your Reddit app (stored encrypted)
redditUserAgentstringprovidedOptional custom Reddit API User-Agent
startUrlsarrayemptyDirect Reddit post URLs
subredditsarray["SaaS"]Subreddits to scan without the r/ prefix
searchQuerystringemptyKeyword search used to find posts before scraping comments
subredditSortstringhothot, new, top, rising, or controversial
subredditTimeFilterstringweekTime range for top and controversial sorting
maxPostsPerSubredditinteger1Number of posts to process per subreddit
maxCommentsPerPostinteger25Total comments to save per post, including replies
maxDepthinteger2How deep to traverse nested replies
includeRepliesbooleantrueInclude nested replies
minScoreinteger0Skip comments below this score
dateFromstringemptyKeep comments after YYYY-MM-DD
includePostInfobooleantrueAdd parent post metadata to every comment
skipDeletedbooleantrueRemove deleted and removed comments

Reddit API credentials (required)

Reddit allows automated access only through its official API, so this Actor needs your own Reddit app credentials. Creating them is free:

  1. Log in to Reddit and open reddit.com/prefs/apps.
  2. Click create another app, choose type script, give it any name, and set the redirect URI to http://localhost:8080.
  3. Copy the short code under the app name: that is the client ID. Copy the secret.
  4. Paste both into Reddit Client ID and Reddit Client Secret in this Actor's input.

The secret is stored encrypted by Apify. If the credentials are missing or wrong, the run stops at once with a clear message. Reddit's API has its own rate limits and Data API terms; use the data accordingly.

Output

Each dataset item is one Reddit comment.

{
"comment_id": "t1_o8z9p9x",
"post_id": "1rihows",
"post_title": "Parent post title",
"post_url": "https://www.reddit.com/r/SaaS/comments/1rihows/post_title/",
"subreddit": "SaaS",
"author": "some_user",
"author_karma": 4821,
"author_flair": "Founder",
"body": "This is the original **markdown** text",
"body_plain": "This is the original markdown text",
"score": 142,
"upvote_ratio": null,
"depth": 2,
"parent_id": "t1_o8z1abc",
"created_utc": "2026-09-01T10:22:00Z",
"created_timestamp": 1788258120,
"is_edited": false,
"is_deleted": false,
"is_removed": false,
"distinguished": null,
"num_replies": 3,
"permalink": "https://www.reddit.com/r/SaaS/comments/..."
}

Reconstructing threads

Use:

  • comment_id as the node ID
  • parent_id as the parent node ID
  • depth to sort and visualize nesting

IDs starting with t3_ are Reddit posts. IDs starting with t1_ are comments.

How to Use

  1. Open the Actor on Apify.
  2. Paste your Reddit client ID and secret (see above).
  3. Choose one targeting mode: post URLs, subreddits, or search query.
  4. Keep maxPostsPerSubreddit, maxCommentsPerPost, and maxDepth small for your first run.
  5. Click Start.
  6. Export the dataset as JSON, CSV, Excel, or connect it to your workflow.

API Example

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("scraper_guru/reddit-comments-deep-scraper").call(run_input={
"subreddits": ["SaaS", "startups"],
"searchQuery": "\"looking for\" \"automation\"",
"maxPostsPerSubreddit": 10,
"maxCommentsPerPost": 100,
"maxDepth": 3,
"redditClientId": "YOUR_REDDIT_CLIENT_ID",
"redditClientSecret": "YOUR_REDDIT_CLIENT_SECRET"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["subreddit"], item["score"], item["body_plain"])
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('scraper_guru/reddit-comments-deep-scraper').call({
subreddits: ['SaaS', 'startups'],
searchQuery: '"looking for" "automation"',
maxPostsPerSubreddit: 10,
maxCommentsPerPost: 100,
maxDepth: 3,
redditClientId: 'YOUR_REDDIT_CLIENT_ID',
redditClientSecret: 'YOUR_REDDIT_CLIENT_SECRET',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 5));

Pricing

This Actor uses pay-per-event pricing, so platform usage is included. You pay for each comment saved to the dataset, plus a tiny start charge of $0.00005 per run.

PlanPer 1,000 comments (from November 9, 2026)Per 1,000 comments (until November 8, 2026)
Free$3.00$2.00
Bronze$2.80$1.80
Silver$2.60$1.50
Gold, Platinum, Diamond$2.40$1.00

Example: 10 posts with up to 100 comments each (1,000 comments) costs about $3.00 on the Free plan. Apify shows the exact plan-adjusted price before each run.

For best cost control:

  • Start with maxPostsPerSubreddit: 1
  • Keep maxCommentsPerPost between 25 and 100
  • Increase maxDepth only when nested replies matter
  • Use minScore to remove low-signal comments

FAQ

Does this scrape nested Reddit replies? Yes. Set includeReplies to true and increase maxDepth to collect deeper reply chains.

Do I need Reddit API credentials? Yes. The Actor uses only Reddit's official API, which requires a free Reddit app (client ID and secret). Setup takes about two minutes; see the steps above.

Can I use this for lead generation? Yes. Use search queries such as "looking for", "recommend", "alternative to", or competitor names inside relevant subreddits.

Can I schedule this Actor? Yes. Save a configured Apify Task and run it daily or weekly for brand monitoring, competitor tracking, or community research.

Why did my run return few or no comments? Common causes are a narrow search query, low maxCommentsPerPost, high minScore, a recent dateFrom, or comments hidden behind deleted/removed nodes. A run that collects nothing ends as failed with the reason in its status message.

Is this compliant? Use this Actor only for publicly available Reddit content and follow Reddit's terms, API rules, and privacy expectations. Do not scrape private or restricted communities.

Doing audience or social listening research across platforms? These Actors from the same developer pair well with this one:

ActorWhat it collects
YouTube Comments ExtractorComments and replies from YouTube videos
Threads Search & Replies ScraperThreads posts by keyword, with their replies
Substack ScraperNewsletter posts, authors and comments from any Substack
Beehiiv Newsletter ScraperPosts, authors and publication details from any Beehiiv newsletter

Built by LIAICHI MUSTAPHA.