Scrape public Reddit posts, subreddit feeds, keyword search results, user feeds, URLs, and optional comments.
Use this Actor to export public Reddit discussion data for social listening, market research, community monitoring, AI summaries, lead research, content analysis, and alerts. Results can be downloaded as CSV, JSON, Excel, XML, RSS, or used through the Apify Dataset API.
At a glance
- Reddit source coverage: Scrape subreddit listings, user pages, search results, direct post URLs, and comment threads where publicly available.
- Posts and comments: Save post rows and optionally collect public comments for each post.
- Search workflows: Search all Reddit or search inside one subreddit with sort and time filters.
- Monitoring ready: Schedule recurring subreddit, keyword, or URL checks for social listening and alerts.
- API export: Send Reddit rows to spreadsheets, BI tools, databases, summaries, or AI agents.
What can it do?
Reddit Scraper extracts public Reddit listing, search, post, and comment data and saves structured dataset rows.
- Scrape subreddits and URLs: Add subreddit pages, user pages, search pages, or direct post URLs.
- Run keyword searches: Use
searchQuery,searchSubreddit,sort, andtimeFilter. - Collect comments: Enable comments and cap them with
maxCommentsPerPost. - Control reliability: Use retry, pacing, and proxy settings for larger runs.
- Export repeatable datasets: Use Apify downloads, API calls, schedules, webhooks, and integrations.
Common workflows
- Social listening: Track mentions of brands, products, competitors, issues, and topics.
- Market research: Export public discussions for pain-point analysis, category research, and trend reports.
- Community monitoring: Watch subreddits and search terms on a recurring schedule.
- AI training and RAG datasets: Collect public posts and comments with available score, upvote ratio, timestamps, and thread structure for downstream filtering, labeling, embedding, fine-tuning, or retrieval workflows.
- AI summaries: Feed posts and comments into summarization, classification, or sentiment workflows.
- Content research: Find questions, objections, stories, and language for content planning.
- Support and alerting: Trigger downstream workflows when new posts match a query.
Build a Reddit dataset for AI training or RAG
Use Reddit Scraper as the collection layer for a public-discussion dataset. It extracts post and comment text plus available engagement and thread fields; your downstream pipeline controls quality thresholds, labels, embeddings, storage, and model use.
- Choose focused subreddits, keyword searches, or post URLs.
- Set
sortandtimeFilter; enableincludeCommentswhen replies matter. - Keep
score,upvoteRatio,numComments,parentId, anddepthalongside the text so downstream jobs can rank or reconstruct context. - Export JSON or use the Dataset API to filter, deduplicate, classify, embed, and load records into your vector store or training pipeline.
- For continuously refreshed post candidates, use Reddit Post Monitor Lite with scheduled runs and cross-run deduplication, then send selected post URLs back to Reddit Scraper when comments are needed.
Important: this Actor does not score training quality, label reactions, generate embeddings, fine-tune models, or write to a vector database by itself. Reddit scores can change, and popularity is not a substitute for relevance, consent, safety, or bias review. Process public content only where your use is lawful and consistent with applicable terms.
Example: collect high-signal posts and comments
{
"urls": ["https://www.reddit.com/r/MachineLearning/top/?t=year"],
"sort": "top",
"timeFilter": "year",
"maxPostsPerSource": 100,
"includeComments": true,
"maxCommentsPerPost": 50,
"commentContextDepth": 2
}
This preserves available Reddit engagement metadata for downstream ranking; it does not guarantee that every item has a score or that the resulting data is suitable for training.
What data can you collect?
The Actor returns public Reddit post rows and, when enabled, comment rows.
| Field | Description |
|---|---|
type |
Row type, such as post or comment |
id |
Reddit item identifier |
subreddit |
Subreddit name |
author |
Public Reddit username when available |
title |
Post title |
text |
Post or comment text |
url |
External URL or Reddit URL |
permalink |
Reddit permalink |
createdAt |
Public creation timestamp |
score |
Public score when available |
numComments |
Public comment count for posts |
upvoteRatio |
Upvote ratio when available |
flair |
Post flair when available |
parentId |
Parent post or comment ID for comments |
depth |
Comment depth when available |
sourceUrl |
Input or resolved Reddit source URL |
scrapedAt |
Timestamp when the row was saved |
Example input
{
"urls": ["https://www.reddit.com/r/apify/"],
"searchQuery": "web scraping",
"sort": "new",
"timeFilter": "week",
"maxPostsPerSource": 25,
"includeComments": false
}
Example output
{
"type": "post",
"id": "abc123",
"subreddit": "apify",
"author": "example_user",
"title": "Example Reddit post",
"text": "Public Reddit post text...",
"url": "https://www.reddit.com/r/apify/comments/abc123/example/",
"permalink": "https://www.reddit.com/r/apify/comments/abc123/example/",
"createdAt": "2026-07-03T10:00:00.000Z",
"score": 42,
"numComments": 8,
"sourceUrl": "https://www.reddit.com/r/apify/",
"scrapedAt": "2026-07-03T12:00:00.000Z"
}
How to run it
- Open the Actor on Apify.
- Add Reddit URLs, a search query, or both.
- Choose sort, time filter, and limits.
- Decide whether to include comments.
- Start the run and export the dataset.
Search tips
- Start with posts only: Add comments after you verify the post search is relevant.
- Use focused subreddits: Subreddit-specific searches usually produce cleaner monitoring datasets.
- Limit comments carefully: Comment extraction can create many rows and higher costs.
- Use pacing for stability: Larger runs benefit from moderate request pacing and retries.
- Schedule narrow queries: Monitoring works best with specific keywords, subreddits, and time filters.
Limits and caveats
- The Actor extracts publicly visible Reddit data only.
- It does not access private communities, removed content, mod-only data, logged-in feeds, or quarantined content that requires login.
- Scores and counts can be null or change after scraping.
- Reddit may return fewer items than requested for narrow queries, private sources, or unavailable content.
API usage
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~reddit-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"searchQuery":"web scraping","sort":"new","timeFilter":"week","maxPostsPerSource":25}'
Node.js example:
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/reddit-scraper').call({
searchQuery: 'web scraping',
sort: 'new',
maxPostsPerSource: 25,
});
console.log(run.defaultDatasetId);
from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('fetch_cat/reddit-scraper').call(run_input={
'searchQuery': 'web scraping',
'sort': 'new',
'maxPostsPerSource': 25,
})
print(run['defaultDatasetId'])
MCP and AI agents
This Actor can be used through the official Apify MCP server at https://mcp.apify.com.
For Claude CLI, add the focused single-Actor tool:
claude mcp add apify-reddit-scraper -- npx -y mcp-remote https://mcp.apify.com?tools=fetch_cat/reddit-scraper
For JSON-based MCP clients, use:
{
"mcpServers": {
"apify-reddit-scraper": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.apify.com?tools=fetch_cat/reddit-scraper"]
}
}
}
Example prompts:
- "Run Reddit Scraper for r/apify newest posts and summarize the top discussions."
- "Collect 10 Reddit posts about web scraping with comments enabled and return a CSV link."
- "Monitor this Reddit thread URL and list the first public comments you can retrieve."
Use the same JSON keys shown in the input configuration table, such as urls, searchQuery, searchSubreddit, maxPostsPerSource, includeComments, and maxCommentsPerPost.
Support
If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.
Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.
Privacy and data handling
This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses content lookup inputs and public posts, profiles, videos, comments, or channel metadata needed for the requested output to produce the output dataset and sends requests to public Reddit pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.