Reddit Posts, Comments & Subreddit Analytics Scraper
Pricing
from $3.00 / 1,000 result founds
Reddit Posts, Comments & Subreddit Analytics Scraper
Scrape public Reddit posts, comments, search results, and subreddit stats through provider-backed access. Structured JSON for AI, research, and monitoring. $0.003/result plus usage.
Pricing
from $3.00 / 1,000 result founds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
703
Total users
319
Monthly active users
6 hours ago
Last modified
Categories
Share
Extract public Reddit posts, comments, upvotes, author data, and subreddit statistics in one actor. It uses owner-managed provider access with no browser and no user-supplied Reddit account or API key. Results are structured for AI agents, research workflows, monitoring jobs, and spreadsheet exports.
Compatible with: Apify MCP Server (Claude, ChatGPT, Cursor), LangChain, Make.com, Zapier, n8n, and direct REST API.
What does this Reddit scraper do?
This actor reads public Reddit data through owner-managed provider APIs for posts, comments, searches, and subreddit metadata. No headless browser is needed, which keeps runs lightweight and produces a cleaner JSON output contract than HTML parsing.
In one run you can:
- Scrape posts from any subreddit (sorted by hot, new, top, or rising)
- Search all of Reddit by keyword or topic
- Extract full comment threads including nested replies
- Pull subreddit analytics: subscriber count, active users, description, and metadata
- Scrape specific posts by URL with their complete discussion
All three data types (posts, comments, subreddit analytics) are delivered in the same dataset, discriminated by a type field for easy filtering.
Every run also writes OUTPUT and RUN_SUMMARY records to the key-value store. These include the terminal outcome (COMPLETE, PARTIAL, VALID_EMPTY, INVALID_INPUT, or UPSTREAM_FAILED), item counts, warnings, request errors, and billable result totals.
What data can you extract from Reddit?
Reddit Posts
| Field | Type | Example |
|---|---|---|
type | string | "post" |
id | string | "t3_abc123" |
title | string | "Python ML libraries discussion in 2026" |
body | string or null | "I've been using scikit-learn..." |
author | string | "u/john_doe" |
subreddit | string | "r/MachineLearning" |
subreddit_subscribers | integer | 2840000 |
score | integer | 1482 |
upvote_ratio | number | 0.94 |
num_comments | integer | 73 |
url | string | "https://reddit.com/r/..." |
external_url | string or null | "https://arxiv.org/abs/..." |
flair | string or null | "Research Paper" |
awards_count | integer | 5 |
post_type | string | "text" / "link" / "image" / "video" |
is_nsfw | boolean | false |
is_stickied | boolean | false |
created_at | ISO datetime | "2026-03-20T14:22:00.000Z" |
Reddit Comments
| Field | Type | Example |
|---|---|---|
type | string | "comment" |
id | string | "t1_xyz789" |
post_id | string | "t3_abc123" |
parent_id | string | "t3_abc123" |
author | string | "u/jane_smith" |
body | string or null | "I'd also recommend PyTorch..." |
score | integer | 342 |
depth | integer | 0 (top-level), 1, 2 (nested) |
is_submitter | boolean | false |
awards_count | integer | 2 |
created_at | ISO datetime | "2026-03-20T15:10:00.000Z" |
Subreddit Analytics
| Field | Type | Example |
|---|---|---|
type | string | "subreddit_analytics" |
name | string | "MachineLearning" |
title | string | "Machine Learning" |
description | string or null | "A subreddit devoted to..." |
subscribers | integer | 2840000 |
active_users | integer or null | null (Reddit API no longer exposes this reliably) |
subreddit_type | string | "public" |
nsfw | boolean | false |
created_at | ISO datetime | "2010-08-17T12:00:00.000Z" |
icon_url | string or null | "https://styles.redditmedia.com/..." |
How to scrape Reddit posts and comments
Option 1: Apify Console (no code)
- Click "Try for free" to open the actor
- Choose your mode:
- Subreddit URLs: paste one or more subreddit URLs (e.g.,
https://reddit.com/r/MachineLearning) - Search query: type a keyword to search all of Reddit
- Post URLs: paste direct links to specific posts
- Subreddit URLs: paste one or more subreddit URLs (e.g.,
- Set max posts and max comments per post
- Choose sort order (hot, new, top, rising)
- Click Start and download results as JSON, CSV, or Excel
Option 2: Using with AI Agents (Claude, ChatGPT)
Connect via the Apify MCP Server and ask naturally:
"Find 100 top posts from r/MachineLearning this week with all their comments" "Search Reddit for posts about GPT-5 and get the top 50 results" "Get subreddit analytics for r/programming and r/webdev" "Scrape this Reddit thread: reddit.com/r/..."
The AI agent automatically maps your request to the correct input parameters and runs the actor.
Option 3: REST API
# Start a runcurl -X POST "https://api.apify.com/v2/acts/khadinakbar~reddit-posts-comments-scraper/runs" \-H "Authorization: Bearer YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"subredditUrls": ["https://reddit.com/r/MachineLearning"],"maxPosts": 50,"sortBy": "top","timeFilter": "week","includeComments": true,"maxCommentsPerPost": 50}'
Option 4: JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('khadinakbar/reddit-posts-comments-scraper').call({subredditUrls: ['https://reddit.com/r/MachineLearning'],maxPosts: 50,sortBy: 'top',timeFilter: 'week',includeComments: true,maxCommentsPerPost: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();const posts = items.filter(item => item.type === 'post');const comments = items.filter(item => item.type === 'comment');console.log(`Got ${posts.length} posts and ${comments.length} comments`);
Option 5: Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('khadinakbar/reddit-posts-comments-scraper').call(run_input={'searchQuery': 'artificial intelligence regulation','maxPosts': 100,'sortBy': 'relevance','timeFilter': 'month','includeComments': True,'maxCommentsPerPost': 30,})items = list(client.dataset(run['defaultDatasetId']).iterate_items())posts = [i for i in items if i['type'] == 'post']print(f"Found {len(posts)} posts")
How to use Reddit scraper for common tasks
Brand monitoring and social listening
Search Reddit for your brand name, product name, or competitor keywords. Extract high-scoring, highly discussed posts to find what the community is saying.
{"searchQuery": "your product name","maxPosts": 200,"sortBy": "relevance","timeFilter": "month","includeComments": true,"maxCommentsPerPost": 50}
Market research and sentiment analysis
Scrape posts from relevant subreddits to understand user pain points, feature requests, and community opinions. The score and upvote_ratio fields help you surface content with strong community response.
Content research and trend discovery
Sort by top with timeFilter: "week" or "month" across niche subreddits to find content that performs strongly in your industry.
Academic and data science research
Use the dataset for NLP projects, sentiment classification, or social network analysis. The nested comment tree is flattened with depth and parent_id fields for easy graph reconstruction.
Competitive analysis
Pull subreddit analytics for competitor-adjacent communities to benchmark audience size, growth trends, and engagement patterns.
How much does Reddit scraping cost?
Pricing is pay-per-result. You pay for actual data extracted plus Apify platform usage under Pay per event + usage. No monthly fee is required for this actor.
| Data type | Price per result |
|---|---|
| Reddit post | $0.003 |
| Reddit comment | $0.003 |
| Subreddit analytics | $0.003 |
Example event charges: Scraping 100 posts with 50 comments each = 100 + 5,000 = 5,100 results = $15.30 in result events, plus Apify platform usage.
The actor logs the maximum event-charge cap at the start of each run and writes the actual charged result count to RUN_SUMMARY.
Where this actor fits
Provider-backed public Reddit data (not a headless browser)
The actor uses owner-managed public-data providers for Reddit routes, which means:
- No browser rendering - fewer JavaScript and CSS selector failure modes
- No user proxy setup - users do not need to configure residential proxies or Reddit sessions
- Structured fields - posts, comments, media URLs, subreddit stats, and freshness timestamps are returned as JSON
- Machine-readable summaries -
OUTPUTandRUN_SUMMARYmake scheduled monitors and MCP clients easier to debug
Posts, comments, and subreddit data in one run
Use this actor when you need posts, comments, and subreddit analytics in one dataset. Each record includes a type field so downstream tools can filter posts, comments, and subreddit records cleanly.
MCP-ready output
Field names, descriptions, and output schema are designed for AI agent consumption via the Apify MCP Server. Claude, ChatGPT, and other LLMs can call this actor from natural language instructions without any additional configuration.
Integrations
- Apify MCP Server — call from Claude, ChatGPT, Cursor, and any MCP-compatible AI agent
- Make.com / Zapier / n8n — trigger runs and send results to Google Sheets, Slack, CRMs, and 1,000+ apps
- LangChain — use as a tool in LangChain pipelines for RAG and AI workflows
- Direct API — REST API with JSON/CSV/Excel output for any programming language
Limitations and legal boundaries
This actor is for public Reddit data only. It does not access private, banned, quarantined, deleted, geo-restricted, or login-only content. Reddit can rate-limit or block requests, especially for broad searches or high-volume scheduled runs; those cases are reported in RUN_SUMMARY.
Use the data only where your rights, approvals, and downstream purpose allow it. Do not use this actor for unauthorized redistribution, private-content access, or AI training unless your permissions explicitly cover that use.
FAQ
Q: Do I need a Reddit account or API key? A: No user-supplied Reddit account or API key is required. The actor is intended for public Reddit data only and does not access private or login-only content.
Q: How many posts can I scrape? A: Up to 10,000 posts per run. Provider pagination and Reddit availability can limit how many records are returned for a specific query, subreddit, or time window.
Q: Can I scrape private or restricted subreddits? A: Only public subreddits are accessible without authentication. Private and restricted subreddits will return no data.
Q: Is this legal? A: This actor is for public Reddit data and should be used only where you have the rights and approvals needed for your use case. Do not use it for private content, unauthorized redistribution, or AI training unless your permissions cover that use.
Q: How fast is the scraper? A: Small runs usually finish quickly because no browser is launched. Runtime depends on provider response time, requested comments, and your max result settings.
Q: Can I schedule recurring runs? A: Yes — use Apify's built-in Scheduler to run daily, weekly, or on any cron interval. Results can be sent to webhooks, email, or connected apps automatically.
Q: What happens if the provider route fails?
A: The actor tries the configured fallback provider when available, preserves useful partial results, and writes provider errors to RUN_SUMMARY. If every required route fails and no useful data is saved, the run fails honestly as UPSTREAM_FAILED.
Q: How do I filter posts vs. comments in the output?
A: Every record has a type field. Filter on type === 'post', type === 'comment', or type === 'subreddit_analytics' in your downstream processing or using Apify's dataset filtering API.