Reddit Post Comment Thread & Filter Extractor avatar

Reddit Post Comment Thread & Filter Extractor

Pricing

from $0.49 / 1,000 results

Go to Apify Store
Reddit Post Comment Thread & Filter Extractor

Reddit Post Comment Thread & Filter Extractor

Pulls every comment on one or more Reddit posts, with the full thread depth, parent links and awards, and lets you keep only the comments that match a score, author, keyword or length rule.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

Nimbryxo-studio

Nimbryxo-studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Features

Limited permissions

Share

Paste in one or more Reddit post links and get every comment on that thread as a flat dataset row, in the order the thread tree expands collapsed replies. A companion record with the post's own stats is added for each URL, and a set of optional filters lets you narrow a huge thread down to only the comments worth reading before you export anything.

What this actor does

  • Loads each Reddit post you give it and opens collapsed "load more" and "continue this thread" sections so deep replies are not left out.
  • Returns every comment with its author, text, score, nesting depth, and the ID of the comment it replies to, so you can rebuild the thread tree.
  • Captures awards, gilding, controversiality, distinguished (mod/admin) status and user flair for each comment, when Reddit shows them.
  • Applies any score, depth, author, keyword or word-count rule you set, dropping non-matching comments before they reach the dataset.
  • Omits any field Reddit did not provide for a given comment or post, instead of writing a blank or null value.

Output per record

Each run produces one post-metadata record per URL and one record per comment that passed your filters.

Post metadata record

FieldDescription
recordTypeAlways post for this record type
post_idReddit's post ID
post_nameFullname in Reddit's t3_<id> format
titlePost title
authorUsername of the poster
author_fullnamePoster's Reddit fullname ID
subredditSubreddit name without the r/ prefix
subreddit_prefixedSubreddit name with r/ prefix
domainLink domain for link posts (e.g. self.programming)
scorePost score (upvotes minus downvotes)
num_commentsTotal comment count reported by Reddit
permalinkFull URL of the post
urlSame as permalink
selftextPost body text, for text posts
selftext_htmlPost body as HTML, for text posts
link_flairPost flair text, if the subreddit uses flairs
is_selfTrue for text posts
is_stickiedTrue if the post is pinned
is_nsfwTrue if marked over-18
is_spoilerTrue if marked as a spoiler
is_original_contentTrue if flagged as OC
is_lockedTrue if comments are locked
is_archivedTrue if the post is archived
more_comments_countCount of "load more" links Reddit still showed after expansion
comment_sortComment sort order active on the page (e.g. best, top)
created_utcPost creation time as a Unix timestamp
created_atPost creation time as an ISO 8601 datetime

Comment record

FieldDescription
recordTypeAlways comment for this record type
comment_idReddit's comment ID
comment_nameFullname in Reddit's t1_<id> format
authorUsername of the commenter, or [deleted]
author_fullnameCommenter's Reddit fullname ID
textComment body text
body_htmlComment body as HTML
scoreComment score (upvotes minus downvotes)
permalinkDirect link to the comment
post_urlURL of the post the comment belongs to
depthNesting level in the thread (0 = top-level reply to the post)
parent_comment_idID of the comment this one replies to, when it is not top-level
replies_countNumber of direct replies visible under this comment
subredditSubreddit the post belongs to
subreddit_prefixedSubreddit with the r/ prefix
is_opTrue if the commenter is the post's original author
is_editedTrue if the comment was edited after posting
edited_atEdit timestamp, when Reddit discloses one
is_stickiedTrue if the comment is pinned by a moderator
is_collapsedTrue if the comment was shown collapsed on the page
is_deletedTrue if the comment body or author shows as deleted/removed
is_automodTrue if posted by AutoModerator
is_likely_botTrue if the author name matches a common bot-naming pattern
comment_age_secondsSeconds between posting and the time the comment was scraped
distinguishedModerator/admin distinguish tag, when present
controversialityReddit's controversiality flag for the comment
user_flairCommenter's subreddit flair text
word_countWhitespace-separated word count of the comment body
body_quote_countNumber of quote blocks in the comment body
body_code_countNumber of code blocks in the comment body
body_link_countNumber of links in the comment body
awardsList of award objects (name, icon) the comment received
awards_countTotal number of awards received
gilded_countNumber of times the comment was gilded
created_utcComment creation time as a Unix timestamp
created_atComment creation time as an ISO 8601 datetime

Input

FieldTypeDefaultDescription
postUrlsarray–Reddit post URLs to scrape comments from (required)
maxCommentsinteger100Maximum number of comments to collect per post, 1-10000
expandThreadsbooleantrueClick "load more" and "continue this thread" to reveal collapsed replies
minScoreinteger–Drop comments scoring below this number
maxDepthinteger–Drop comments nested deeper than this (0 keeps only top-level replies)
excludeDeletedbooleanfalseDrop comments where the author is [deleted] or the body is [removed]
authorFilterstring–Keep only comments by an author whose name contains this text (case-insensitive)
keywordFilterstring–Keep only comments whose body contains this text; prefix with ! to drop matches instead
minWordCountinteger–Drop comments shorter than this many words
maxWordCountinteger–Drop comments longer than this many words

Example: default scrape of one thread

{
"postUrls": ["https://www.reddit.com/r/programming/comments/1s9jkzi/announcement_temporary_llm_content_ban/"],
"maxComments": 200
}

Example: only substantial, positively-scored replies

{
"postUrls": ["https://www.reddit.com/r/AskScience/comments/1abc123/why_is_the_sky_blue/"],
"minScore": 5,
"minWordCount": 15,
"excludeDeleted": true
}

Example: top-level comments from one author across two posts

{
"postUrls": [
"https://www.reddit.com/r/technology/comments/1xyz789/post_one/",
"https://old.reddit.com/r/technology/comments/1xyz790/post_two/"
],
"maxDepth": 0,
"authorFilter": "throwaway",
"maxComments": 500
}

Use cases

  • Sentiment and discourse research: pull every reply to a thread to study how a community reacted to an announcement or news post.
  • Moderation audits: use excludeDeleted and authorFilter to review what a specific user posted before their comments were removed.
  • Dataset building: filter by minWordCount to collect substantive comments for training or evaluating language models.
  • Brand and product monitoring: track replies mentioning a product name with keywordFilter across multiple relevant threads.
  • Thread archiving: capture a full comment tree, including depth and parent IDs, before a thread is locked or archived.

FAQ

Does this need a Reddit account or login? No. It reads the public comment pages the same way a logged-out visitor would, so only posts and comments visible without logging in can be collected.

Why are some comments missing from my results? Deleted or removed comments, comments beyond maxComments, and comments beneath unexpanded "load more" links (when expandThreads is off) will not appear. Your score, depth, author, keyword or word-count filters can also remove comments that were successfully scraped.

What does maxDepth: 0 give me? Only comments posted directly on the post itself, with no replies-to-replies.

How is keywordFilter different from a normal search? It is a plain, case-insensitive substring match against the comment body. Prefixing the value with ! inverts it, so !spam keeps everything except comments mentioning "spam".

Why is a field missing on some comment or post records? Fields Reddit does not expose for that record (for example edited_at on a comment that was never edited) are left out of the record instead of being written as null or empty.

Can I scrape a subreddit's whole post list, not just comments? No, this actor only works from direct post URLs you supply; it does not crawl subreddit listings.

Does old.reddit.com vs www.reddit.com in my input matter? No, either form works — post_url in the output is normalized to the www.reddit.com form regardless of which you paste in.

Is this affiliated with Reddit? No. This is an independent tool that reads Reddit's public comment pages and is not operated by or affiliated with Reddit, Inc.