Reddit Post Comments Scraper - Full Threads to CSV & Markdown
Pricing
from $0.50 / 1,000 comments
Reddit Post Comments Scraper - Full Threads to CSV & Markdown
Scrape every comment and nested reply from any Reddit post - one row per comment with depth, parent and score - plus a Markdown copy of the thread for LLMs.
Pricing
from $0.50 / 1,000 comments
Rating
0.0
(0)
Developer
Andrew
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Paste any Reddit post URL and get back every comment and nested reply as its own row - author, score, timestamp, depth and parent - in the exact order the thread reads on Reddit. Optionally save the whole discussion as a clean Markdown document, ready to feed into ChatGPT, Claude, a RAG index or a summariser. No Reddit login, no API key, no rate limits to manage.
Long threads are handled properly: the scraper keeps turning comment pages until it has the number of comments you asked for, and can follow Reddit's collapsed "load more replies" branches so deep conversations are not cut off.
What you get
One dataset row per comment (type: "comment"):
- commentId, parentId, depth - the thread structure, flattened.
depthis 0 for top-level comments;parentIdis the post ID for top-level comments and the parent comment ID for replies - author, body, score, createdAt, permalink
- isOp - true when the comment was written by the post author
- collapsed - whether Reddit collapsed it by default (heavily downvoted, etc.)
- replyCount - number of direct replies present in the fetched tree
- postId, postUrl, postTitle, subreddit repeated on every row so a multi-post export still filters and pivots cleanly
One optional row per post (type: "post") with postTitle, selftext, author, score, upvoteRatio, numComments, createdAt, flair, linkUrl and commentsFetched.
Plus, when Save thread as Markdown is on, one THREAD_<postId>.md file per post in the run's Key-value store: the title, post body and the complete comment tree rendered as indented blockquotes with author, score and timestamp headers.
Rows are written in depth-first thread order, so reading the dataset top to bottom is the same as reading the thread.
Use cases
- Reddit thread to Markdown for LLM / RAG - drop an entire discussion into a prompt, a vector store or a summarisation pipeline without writing a parser
- Sentiment and opinion mining - collect what thousands of people said about a product, launch or event, with scores to weight each voice
- Market and product research - harvest recommendations, complaints and comparisons from "what do you use for X" threads
- Community and brand monitoring - archive the full reaction to an announcement or AMA before comments are deleted
- Dataset building - build labelled conversation trees (parent/child pairs, depth, score) for NLP and social-science research
- Content ideation - find the questions, objections and follow-ups a topic attracts so your next article answers them
How to use
- Paste one or more Reddit post URLs, one per line. Full thread links, comment permalinks,
redd.it/<id>short links and bare post IDs all work. - Pick the Comment order - Best (Reddit's default), Top, New or Controversial. This decides which comments come first when a thread is bigger than your limit.
- Set Max comments per post (default 500;
0= everything the request budget allows). - Max requests per post (default 20) is the cost ceiling per thread. Each request returns roughly 25-100 comments.
- Turn on Expand collapsed reply branches when you need every reply in long, deep conversations. Each branch costs one extra request.
- Optionally set a Minimum comment score to drop low-value comments (their replies are dropped too, so the tree stays consistent).
- Leave Include post row on to get the original post as the first row of each thread.
- Turn on Save thread as Markdown to also get
THREAD_<postId>.mdfiles. - Run the actor. Comments appear in the Dataset tab; Markdown files in the Key-value store tab.
Output format
Post row followed by its comments:
{"type": "post","postId": "1wgo85o","postUrl": "https://www.reddit.com/r/typescript/comments/1wgo85o/need_recommendation_on_guide_on_typescript_that/","postTitle": "need recommendation on guide on typescript that deals with server and linting","subreddit": "typescript","author": "techlover1010","selftext": "anyone can recommend me some great resource on server and linting with type script? ...","score": 0,"upvoteRatio": 0.27,"numComments": 8,"createdAt": "2026-09-15T02:55:28.000Z","flair": null,"linkUrl": null,"commentsFetched": 7}
{"type": "comment","postId": "1wg736i","postUrl": "https://www.reddit.com/r/AskReddit/comments/1wg736i/what_hobby_has_become_too_expensive_for_the/","postTitle": "What hobby has become too expensive for the average person?","subreddit": "AskReddit","commentId": "p9rvsy5","parentId": "p9rvgfw","depth": 1,"author": "DifficultYellow9759","body": "Took my son and his friend bowling and it cost me $125 for 3 games, shoes, and some apps.\n\n I could have taken them to a water park for that money and it would have been an all day activity versus 2 hours","score": 430,"createdAt": "2026-09-14T15:51:09.000Z","permalink": "https://www.reddit.com/r/AskReddit/comments/1wg736i/comment/p9rvsy5/","isOp": false,"collapsed": false,"replyCount": 0}
The Markdown file for a thread looks like this:
# need advice on this issue**r/typescript** · posted by u/techlover1010 · 0 points (43% upvoted) · 13 comments · 2026-09-12T03:25:19ZSource: https://www.reddit.com/r/typescript/comments/1we1ckz/need_advice_on_this_issue/I have a problem. im using node and typescript ...---## Comments (9 of 13)**u/Beginning-Seat5221** · 6 points · 2026-09-12T03:34:48ZDon't pass file.ts, just npm tsc> **u/techlover1010** · 1 point · 2026-09-12T05:07:47Z · **OP**>> do you think you can check my second question ...> > **u/Beginning-Seat5221** · 1 point · 2026-09-12T12:13:39Z> >> > I did at 2. Which version of TS are you using?
Pricing
Three small events: one comments-page event per page of comments fetched (roughly 100 comments per page on large threads), one comment-result event per comment row and one post-result event per post row. A 300-comment thread is about 5 page events plus 300 comment events plus one post event; the Markdown file is free.
Tips
- Top order with a modest Max comments per post gives you the highest-signal part of a huge thread cheaply; Best (the default) mirrors what a visitor sees on Reddit.
- Reddit reports
numCommentsincluding deleted, removed and collapsed comments, so the number of rows is usually a little lower than the post's comment count even when you fetch everything. - For threads with thousands of comments, raise Max requests per post together with Max comments per post - each request returns up to about 100 comments after the first page.
- Turn on Expand collapsed reply branches only when you need the long tails of deep conversations; branch requests often return only a handful of replies each.
FAQ
Do I need Reddit API credentials? No. Everything runs without a login or API key.
Can I get the whole thread, not just the first page?
Yes. Set Max comments per post to 0 and raise Max requests per post; the scraper keeps paginating until Reddit runs out of comments or the budget is spent.
Why is the comment count lower than Reddit's number? Reddit's counter includes deleted and removed comments and replies hidden behind "load more" links. Enable branch expansion to pull in the hidden ones; deleted comments cannot be recovered.
What is the difference between depth and parentId?
depth tells you how far the comment is nested (0 = top level). parentId tells you exactly which comment (or post) it replies to, so you can rebuild the tree or extract parent-child pairs.