Reddit Comments Scraper
Pricing
from $0.32 / 1,000 comments
Reddit Comments Scraper
Scrape Reddit comments: full threads, keyword search inside comments, community feeds and user history. Export to JSON, CSV or Excel.
Reddit Comments Scraper
Pricing
from $0.32 / 1,000 comments
Scrape Reddit comments: full threads, keyword search inside comments, community feeds and user history. Export to JSON, CSV or Excel.
Reddit posts whose comments you want, one per line: a post link (https://www.reddit.com/r/AskReddit/comments/1wrj0s2/), a short redd.it link, a bare post id (t3_1wrj0s2 or 1wrj0s2), or the link of a single comment (that comment and its replies). Each post is read as a full thread, replies included. Max 1 000 links.
[]Paste any Reddit URL, or upload a text file with one link per line to load a long list at once: a post (its comments), a community (https://www.reddit.com/r/programming/), a user profile (https://www.reddit.com/user/spez/) or a search page (its search term is searched in the comments). Max 1 000 URLs.
[]Search INSIDE the comments of all Reddit for this word or phrase, for example web scraping or rust async. Combined with Communities, it searches inside those communities only.
Several search terms in one run, added to the single Search term above. Every term is crossed with every community, up to 500 searches per run.
[]Reddit stops one comment search after about 250 results for each term and order. Tick several orders to get more: their results are added together and each comment is kept once, which gives up to about 750 comments per term with the three orders (578 comments on a very active term: the orders share many).
[ "new", "relevance", "top"]Require the whole search term to appear in the comment as written, instead of letting Reddit match on separate words.
Community names without the r/ prefix, for example programming or MachineLearning. With a search term, each community is searched on its own (max 500 searches per run). Without one, the comments are read the way "Comments of a community" below says.
[]Only used for Communities given without a search term. Latest comments reads the live comment feed of each community (Reddit keeps about the last 1 000). Comments of its posts opens the threads of the posts picked by Sort and Time window and reads them in full.
Only used with "Comments of its posts": which posts of each community have their thread read. A sort carried by a pasted community URL wins over this setting.
Only used with "Comments of its posts" and the Top or Controversial post sort. To keep comments of a given period, use the Posted after / Posted before filters below.
Only used with "Comments of its posts": how many posts of each community have their thread read.
Only used with "Comments of its posts": skip posts with fewer comments than this. 0 keeps every post.
Reddit usernames without the u/ prefix: the comment history of each account, newest first (Reddit keeps about the last 1 000). For example spez — u/spez and a full profile URL are accepted too.
[]Stop the run after this many rows in total, comments and post rows together. 0 means no limit.
Cap applied to each source separately — a post, a search term in each community, a community, a user, a pasted URL — so one busy source cannot eat the whole run. 0 means no per-source cap.
Highest number of comments collected from a single post, replies included. 0, the default, reads the whole thread.
How deep into the reply chains to go. 1 keeps only top-level comments; 10, the default, follows almost every thread to the end.
Also read the comments Reddit folds behind « load more comments », so a big thread comes out complete (one more request per group of about 10 of them, up to 200 per post, within the comments per post above). Turn off for a faster run that skips the folded part.
Order in which a post's comments are read. This decides which comments you get when Maximum comments per post or Maximum results cuts the thread short. Q&A suits AMAs.
Add one row for each post whose thread is read, next to its comments (dataType post). Every comment already carries its post's title, author, score and link, so leave this off unless you want the post rows themselves. Post rows count in Maximum results and are charged on their own (post-scraped, see Pricing).
Keep comments from communities and posts marked NSFW. Off by default.
Keep only comments written after this moment, read from the comment's own creation date. Absolute (2026-09-01 or a full ISO timestamp) or relative (7 days, 24 hours, 2 weeks). A date such as 2026-09-01, or a period before now such as 7 days or 24 hours.
Keep only comments written before this moment, read from the comment's own creation date. Same formats as Posted after; a date alone keeps that whole day (UTC): 2026-09-30 keeps what was written on the 30th. A period before now such as 2 days counts back from the start of the run.
Keep a comment only if its text contains at least one of these words. Case is ignored. For example benchmark.
[]Drop a comment when its text contains any of these words. Case is ignored. For example giveaway or upvote this.
[]Keep only comments whose score reaches this number. 0, the default, turns the filter off: comments scored below 0 are kept too. Set 1 to keep only what scores 1 or more; scores can be negative.
Usernames to skip, without the u/ prefix. Useful to drop bots and moderators. For example AutoModerator.
[]Keep only the comments written by the author of the post they belong to, for example the answers of an AMA host.
Judged on top-level comments, from the replies of the thread: Answered keeps the top-level comments the author of the post replied to, Not answered keeps those that got no reply from them. Useful to find questions that stayed open.
Drop comments whose text is [deleted] or [removed]: they carry no text, so they are not saved and not charged (a free filter, no extra charge). Turn off to keep them with their metadata.
Return only comments this Actor has never returned before under the same state key, whatever the source. Ideal for a scheduled run that should not repeat yesterday's comments. For a feed or a search read newest first, the run stops early once it meets a long run of comments already returned.
Name of the memory used by New comments only. Use a different key for each monitoring job so they do not share their history. For example rust-daily.
Wipe the memory of this state key before starting, so everything counts as new again.
Free key/value pairs copied onto every row, for example {"campaign": "q4-launch"}. Handy to tell several scheduled runs apart in one dataset.
{}Leave as is. The Actor picks the right network itself and falls back automatically when a request is refused. The residential proxy is not available in this Actor: a run that asks for it stops at once.
{ "useApifyProxy": true}How many requests run at the same time. The pace of a run is set by "Min delay between requests" (2500 ms by default, one request every 2.5 seconds whatever this number is): raising this one alone does not make a run finish sooner, lower the delay too. More requests at the same time increase the chance of being throttled.
Overall speed limit. The default is a comfortable pace; lower it if you run several jobs against Reddit at once.
Smallest gap between two requests, in milliseconds. Unlike the per-minute rate, this spreads the requests evenly instead of letting them go out in a burst. 2500 = Reddit's sustained quota of 24 requests a minute; 0 = no gap.
How many times a failed request is tried again before the Actor gives up on it. A request Reddit turns away is first tried again on a new IP without using up these retries, up to 10 times, as long as the run has an IP left (8 in all with the default proxy, 10 with your own).