Reddit Comments Deep Scraper
Pricing
from $0.001 / result
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
Maintained by CommunityActor stats
0
Bookmarked
35
Total users
1
Monthly active users
3 days ago
Last modified
Categories
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, anddepth - Export clean
body_plaintext 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
| Field | Type | Default | Description |
|---|---|---|---|
redditClientId | string | required | Client ID of your Reddit app |
redditClientSecret | string | required | Secret of your Reddit app (stored encrypted) |
redditUserAgent | string | provided | Optional custom Reddit API User-Agent |
startUrls | array | empty | Direct Reddit post URLs |
subreddits | array | ["SaaS"] | Subreddits to scan without the r/ prefix |
searchQuery | string | empty | Keyword search used to find posts before scraping comments |
subredditSort | string | hot | hot, new, top, rising, or controversial |
subredditTimeFilter | string | week | Time range for top and controversial sorting |
maxPostsPerSubreddit | integer | 1 | Number of posts to process per subreddit |
maxCommentsPerPost | integer | 25 | Total comments to save per post, including replies |
maxDepth | integer | 2 | How deep to traverse nested replies |
includeReplies | boolean | true | Include nested replies |
minScore | integer | 0 | Skip comments below this score |
dateFrom | string | empty | Keep comments after YYYY-MM-DD |
includePostInfo | boolean | true | Add parent post metadata to every comment |
skipDeleted | boolean | true | Remove 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:
- Log in to Reddit and open reddit.com/prefs/apps.
- Click create another app, choose type script, give it any name, and set the redirect URI to
http://localhost:8080. - Copy the short code under the app name: that is the client ID. Copy the secret.
- 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_idas the node IDparent_idas the parent node IDdepthto sort and visualize nesting
IDs starting with t3_ are Reddit posts. IDs starting with t1_ are comments.
How to Use
- Open the Actor on Apify.
- Paste your Reddit client ID and secret (see above).
- Choose one targeting mode: post URLs, subreddits, or search query.
- Keep
maxPostsPerSubreddit,maxCommentsPerPost, andmaxDepthsmall for your first run. - Click Start.
- Export the dataset as JSON, CSV, Excel, or connect it to your workflow.
API Example
from apify_client import ApifyClientclient = 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.
| Plan | Per 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
maxCommentsPerPostbetween25and100 - Increase
maxDepthonly when nested replies matter - Use
minScoreto 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.
Related scrapers
Doing audience or social listening research across platforms? These Actors from the same developer pair well with this one:
| Actor | What it collects |
|---|---|
| YouTube Comments Extractor | Comments and replies from YouTube videos |
| Threads Search & Replies Scraper | Threads posts by keyword, with their replies |
| Substack Scraper | Newsletter posts, authors and comments from any Substack |
| Beehiiv Newsletter Scraper | Posts, authors and publication details from any Beehiiv newsletter |
Built by LIAICHI MUSTAPHA.