Reddit Posts Scraper — Comments, Replies & Subreddits
Pricing
from $2.00 / 1,000 post scrapeds
Reddit Posts Scraper — Comments, Replies & Subreddits
Extract Reddit posts, comments & subreddit data with no login required. Returns title, score, author, flair, body text, and dates MCP-ready. $2.00/1K.
Pricing
from $2.00 / 1,000 post scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Reddit Scraper – Posts, Comments & Subreddits
Reddit Scraper - Posts, Comments & Subreddits is an Apify Actor for extracting Reddit posts, comments, and subreddit data from a subreddit name, search query, or direct Reddit URL. It accepts one or more input sources, and each saved record represents a single post or comment in the dataset. The output includes fields such as title, author, subreddit, score, comment count, flair, body text, URLs, timestamps, and metadata flags, so you can use the result for analysis, automation, or AI workflows through Apify or Apify MCP.
Best fit and connected workflows
This Actor fits workflows that start with Reddit communities, Reddit search results, or a specific Reddit page URL and end with structured records for downstream processing. It works well when you want to:
- collect posts from one or more subreddits with sort and time controls,
- search Reddit across communities by keyword or phrase,
- pull data from a Reddit post page, subreddit page, search page, or user profile page,
- include top comments for each scraped post,
- filter records by score, comments, flair, author, date, or NSFW status,
- connect Reddit content to analysis pipelines, dashboards, or AI agent tools.
Practical scenario
A community researcher starts with the subreddit learnpython, wants recent high-engagement posts, and needs the author, flair, score, comment count, and created date for each result. They set sort to top, time to week, and minScore to focus on posts with stronger engagement. After the run, they review the dataset fields and use the url and permalink values to open the original Reddit discussion for follow-up reading and note-taking.
Input fields
| Field | Type | Purpose |
|---|---|---|
subreddits | array | Subreddit names, with or without r/, used as the input source for subreddit-based scraping. |
searchQueries | array | Search terms for Reddit-wide search across communities. |
startUrls | array | Direct Reddit URLs, including subreddit, post, search, or user profile pages. |
redditClientId | string | Reddit app client_id for cloud runs. |
sort | string | Sorting mode: hot, new, top, rising, controversial, or relevance. |
time | string | Time filter for top, controversial, and search results. |
maxResults | integer | Total maximum number of posts saved across all sources. |
includeComments | boolean | Saves top comments for each scraped post as separate dataset records. |
maxCommentsPerPost | integer | Maximum comments to scrape per post when comments are enabled. |
includeNSFW | boolean | Includes records marked as NSFW. |
minScore | integer | Keeps only posts with at least this score. |
maxScore | integer | Keeps only posts with at most this score. |
minComments | integer | Keeps only posts with at least this many comments. |
flairFilter | string | Keeps only posts with an exact flair text. |
authorFilter | string | Keeps only posts from one Reddit username. |
postDateLimit | string | Keeps only posts created after the given date. |
proxyConfiguration | object | Proxy settings for Reddit scraping. |
Focused JSON input example
{"subreddits": ["programming", "learnpython"],"sort": "top","time": "week","maxResults": 50,"includeComments": true,"maxCommentsPerPost": 20,"minScore": 100,"includeNSFW": false}
Output fields
| Field | Type | Meaning |
|---|---|---|
post_id | string | Reddit post identifier. |
title | string | Post title. |
author | string | Reddit username associated with the record. |
subreddit | string | Subreddit name. |
url | string | Canonical post URL. |
permalink | string | Reddit permalink path. |
body_text | string | Post body text. |
score | integer | Net score. |
upvote_ratio | number | Upvote ratio. |
num_comments | integer | Comment count. |
flair | string | Flair text. |
domain | string | Domain associated with the post. |
external_url | string | Outbound URL for link posts. |
thumbnail_url | string | Thumbnail URL. |
is_nsfw | boolean | NSFW flag. |
is_video | boolean | Video flag. |
is_self | boolean | Self-post flag. |
created_at | string | Original creation timestamp. |
scraped_at | string | Time the record was saved. |
source_url | string | Input URL that led to the record. |
data_type | string | Record type, such as post or comment. |
Illustrative dataset record
{"post_id": "t3_1abc23","title": "What's the practical way to learn Python in 2025?","author": "curious_dev","subreddit": "learnprogramming","url": "https://www.reddit.com/r/learnprogramming/comments/abc123/","permalink": "/r/learnprogramming/comments/abc123/whats_the_best_way/","body_text": "I've been coding JavaScript for 2 years and want to branch out...","score": 482,"upvote_ratio": 0.97,"num_comments": 84,"flair": "Question","domain": "self.learnprogramming","external_url": null,"thumbnail_url": null,"is_nsfw": false,"is_video": false,"is_self": true,"created_at": "2025-11-15T14:32:00.000Z","scraped_at": "2026-04-09T10:00:00.000Z","source_url": "https://www.reddit.com/r/learnprogramming/comments/abc123/","data_type": "post"}
How it works
This Actor accepts subreddit names, search queries, or direct Reddit URLs as input. It supports sorting and time filtering for posts, and it can save top comments as separate dataset records when comment scraping is enabled. The input schema also includes score, comment count, flair, author, date, NSFW, and proxy controls. The dataset schema exposes a table view with title, author, subreddit, score, comments, flair, created date, URL, and record type.
Pricing
This Actor uses pay per event pricing on Apify. The pricing model includes an Actor start event and a primary event for each successfully scraped post saved to the dataset. Apify platform usage is billed separately according to your account and execution settings, so the full cost depends on both event volume and platform usage. For current details, see the live Pricing tab in the Apify Console.
For an example, a run that saves one hundred posts charges one hundred Post scraped events, plus the Actor start event and the Apify platform usage for the run.
Use with AI agents (MCP)
This Actor is an Apify Actor that can be used through Apify MCP. It is suited for agent workflows that need structured Reddit posts and comments from a subreddit, query, or URL.
The exact Actor identity is khadinakbar/reddit-posts-scraper.
Scrape recent posts from
learnpython, include comments, and return the title, author, score, flair, comment count, created date, and source URL for each record.
When you review the output, use data_type to separate posts from comments, source_url to trace each record back to the input, and scraped_at to understand when the dataset was collected. Comment records are saved as separate dataset items when includeComments is enabled. Pagination can expand the dataset across multiple pages, and maxResults controls the total number of saved posts across all sources. Event-based pricing means each successfully scraped post contributes to the billable event count, while filtered-out posts are excluded from Post scraped charges.
Apify API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('khadinakbar/reddit-posts-scraper').call({subreddits: ['programming', 'learnpython'],sort: 'top',time: 'week',maxResults: 20,includeComments: true,maxCommentsPerPost: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Best results and outcome guidance
Use a single source type per run when possible: subreddit names for community monitoring, search queries for topic discovery, and direct URLs for targeted page extraction. Pair sort: top with time: week or month when you want high-engagement posts, and use sort: new with postDateLimit for recency-based collection. If you need comment context, enable includeComments and set maxCommentsPerPost to a focused number that matches the depth you need. For cloud runs, provide redditClientId when Reddit access through Apify cloud IPs is part of your setup, and use the proxy configuration that fits your workload.
Focused standalone workflow
Reddit Scraper – Posts, Comments & Subreddits is designed as a focused standalone workflow for the public input and structured output contract described above.
Design note
I found that the dataset schema includes a clear data_type field, which makes it straightforward to distinguish posts from comments in downstream processing.
FAQ
Which input should I use if I already have a subreddit name?
Use subreddits. That source is designed for subreddit-based scraping and uses the selected sort and time settings.
Which input should I use if I have a Reddit search phrase?
Use searchQueries. Each query runs a Reddit-wide search and can be combined with sorting and time filtering.
Which input should I use if I have a full Reddit link?
Use startUrls. It accepts subreddit pages, post pages, search pages, and user profile pages.
How do I get comments alongside posts?
Set includeComments to true, then set maxCommentsPerPost to the number of comments you want per post.
How can I focus on higher-engagement posts?
Use minScore, minComments, or both. You can also combine sort: top with a time filter.
How can I route this Actor into an MCP workflow?
Use the Actor through Apify MCP and refer to khadinakbar/reddit-posts-scraper as the tool identity when configuring your agent.
Responsible use
This Actor is intended for publicly available Reddit content and structured analysis workflows. Keep usage aligned with Reddit's terms, applicable privacy rules, and the policies of the environment where you process the data. Review the fields you collect, especially when combining usernames, timestamps, comments, and external URLs in downstream systems.