Reddit Comments Scraper
Pricing
from $4.99 / 1,000 results
Reddit Comments Scraper
🗣️ Reddit Comments Scraper extracts high-quality comments from subreddits—fast, reliable, and export-ready. ✅ Perfect for sentiment analysis, market research, and content insights. 📊 Save time and discover what users really think!
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
ScrapeVanta
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Get the comments on a Reddit post - or on the top posts of a whole subreddit - with the thread structure preserved.
What you get
- The thread survives a flat export. Every comment carries its
depth, itsparentIdand whether itisReply, so a CSV can be rebuilt into the conversation it came from. - The 'load more comments' stub is not returned as a comment. Reddit ends each branch with a placeholder; the previous approach would have handed it to you as a comment with an empty body.
- A subreddit works as well as a post. Give it
r/awwand it takes the top posts and reads each one's comments. - A URL that names no post is reported, never substituted. The Facebook comments Actor in this account defaulted to a hardcoded post id when it could not parse a URL, and quietly returned a stranger's comments; this one says the URL is unrecognised.
- A
commenterrollup ranks who said most, with their total and average score. commentCoverageper post compares how many comments the post has with how many came back.- It had no input schema at all before, so there was nothing to fill in.
Input
| Field | Type | Required | What it does |
|---|---|---|---|
startUrls | array | yes | Links to Reddit posts, or r/name to take the top posts of a subreddit. |
maxCommentsPerPost | integer | no | Stop after this many comments on each post. |
includeReplies | boolean | no | Walk the whole thread. Each comment carries its depth and parent, so the structure survives a flat export. |
commentSort | string | no | How Reddit should order the comments. |
maxPostsPerSubreddit | integer | no | When a subreddit is given rather than a post, how many of its posts to read. |
subredditListing | string | no | Which listing to take those posts from. |
redditClientId | string | yes | From a script app at reddit.com/prefs/apps. Free, takes a minute. Reddit closed public access, so this is now the only route. |
redditClientSecret | string | yes | The secret shown beside the client id. |
redditUsername | string | no | Optional. Included in the User-Agent, which Reddit's API rules ask for and which raises your rate limit. |
You need your own Reddit credentials - here is why, and how
Reddit has closed public access. Measured on 2026-08-21, every unauthenticated route returns a "Welcome to Reddit" login page:
| Route | Result |
|---|---|
www.reddit.com/r/.../.json | HTTP 403 |
old.reddit.com/... | HTTP 200 carrying the login wall |
api.reddit.com/... | HTTP 403 |
www.reddit.com/user/.../about.json | HTTP 403 |
Tried from a direct connection, an Apify residential exit node and a static one, with a browser User-Agent, a bot User-Agent and none at all. Same wall every time.
So this Actor uses Reddit's own API, which is free and documented:
- Sign in to Reddit and go to reddit.com/prefs/apps.
- Create another app at the bottom of the page.
- Choose type script. Any name; the redirect URI can be
http://localhost:8080. - Copy the client id (the string under the app name) and the secret.
- Paste them into
redditClientIdandredditClientSecret.
No user login, no redirect, no OAuth dance at run time - the Actor exchanges those two values for a token itself. Both fields are marked secret, so they are not shown in run logs.
Setting redditUsername is optional but worth it: Reddit's API rules ask for a
descriptive User-Agent naming the account behind the app, and supplying one
raises your rate limit.
If the credentials are missing or wrong, the run says so plainly and stops - it does not silently return nothing.
Failures are not billed
A URL that names no post, a private or quarantined subreddit, a deleted
account: each comes back as an unavailable record explaining what happened,
and is not charged for. Coverage records, rollups and the run summary are not
charged either. Only a comment, post or profile is.
Use it responsibly
Reddit content is public but the people who wrote it are not anonymous to themselves. Usernames and comment history are personal data in many jurisdictions, and Reddit's API terms govern what you may do with what you collect - in particular around redistribution and building profiles of individuals. This Actor stays inside Reddit's own API and its rate limits.