Reddit Scraper - Posts, Comments, Search & Subreddits
Pricing
from $0.07 / 1,000 post extracteds
Reddit Scraper - Posts, Comments, Search & Subreddits
Export public Reddit posts and comments from subreddit, user, search, post, comment, and short-link URLs for social listening, lead research, AI datasets, and alerts.
Pricing
from $0.07 / 1,000 post extracteds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
4
Monthly active users
2 days ago
Last modified
Categories
Share
Reddit Scraper
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.
Ready-to-run examples
Use these saved Store examples as starting points. Open any example to prefill the Actor input, then adjust URLs, keywords, limits, or filters for your own run.
- Review a public Reddit thread with comments
- Scrape all-time top Reddit posts
- Scrape Reddit posts from the past year
- Monitor Reddit posts from the past hour
- Export up to 1000 Reddit posts per source
- Build a Reddit comments dataset
- View all ready-to-run examples (50 examples)
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 |
Pricing
This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.
| Event | What is charged | Price |
|---|---|---|
start | One-time fee per run | $0.005 |
| Event | What is charged | Free / no discount | Starter / Bronze | Scale / Silver | Business / Gold | Custom / Platinum | Custom / Diamond |
|---|---|---|---|---|---|---|---|
item | Charged per Reddit post record extracted. | $0.1329 / 1,000 | $0.11557 / 1,000 | $0.09014 / 1,000 | $0.06934 / 1,000 | $0.04623 / 1,000 | $0.03236 / 1,000 |
comment | Charged per Reddit comment record extracted. | $0.000575 / 1 comment | $0.0005 / 1 comment | $0.00039 / 1 comment | $0.0003 / 1 comment | $0.0002 / 1 comment | $0.00014 / 1 comment |
Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.
Input configuration
| Setting | JSON key | Use it for | Example |
|---|---|---|---|
| Reddit URLs | urls | Subreddit, user, search, or post URLs. | ["https://www.reddit.com/r/apify/"] |
| Search query | searchQuery | Keyword search across Reddit or inside one subreddit. | web scraping |
| Search subreddit | searchSubreddit | Restrict search to one subreddit. | SaaS |
| Sort order | sort | Reddit sort mode for listings or search. | new |
| Time filter | timeFilter | Time window for search/listing where supported. | week |
| Maximum posts per source | maxPostsPerSource | Cap saved post rows per input source. | 25 |
| Include comments | includeComments | Collect bounded public comments for matching posts. When Reddit's public JSON route is reachable, comments include parent/depth metadata; RSS fallback comments may not prove full tree depth. | false |
| Maximum comments per post | maxCommentsPerPost | Cap saved comment rows per post. This is a scope and cost cap, not a guarantee that every comment in a large thread is reachable. | 50 |
| Comment URL mode | commentContextMode | Control comment context collection for post URLs. | auto |
| Comment context depth | commentContextDepth | Limit nested comment depth when supported. | 2 |
| Retry attempts per Reddit request | retryCount | Retry failed Reddit requests. | 3 |
| Initial retry delay | initialRetryDelayMillis | Set the base backoff delay after temporary Reddit errors. | 750 |
| Request pacing delay | requestPacingMillis | Add delay between requests for stability. | 250 |
| Safe run deadline | runTimeSecs | Stop starting new Reddit requests before timeout so partial data can be saved. | 260 |
| MCP connectors | mcpConnectors | Optional Apify MCP connectors for post-run delivery. | [] |
| MCP delivery mode | mcpMode | Choose off, summary, or records delivery. | off |
| MCP instruction | mcpInstruction | Short delivery instruction for selected connectors. | Send a concise digest. |
| Maximum MCP records | maxMcpRecords | Cap sample records sent through MCP. | 20 |
| Proxy configuration | proxyConfiguration | Optional Apify Proxy settings. | {"useApifyProxy":true} |
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 ApifyClientclient = 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.
FAQ
Does this Actor need Reddit API credentials?
No. It targets public Reddit pages and public discussion data.
Can it scrape private communities?
No. Private, restricted, quarantined, or login-gated content is outside this Actor's public-data scope.
Can it collect every comment in a large thread?
Not always. Reddit can limit or block the public routes available to a run. The Actor returns bounded public comments when reachable, includes parent/depth fields when Reddit exposes them, and uses maxCommentsPerPost to control scope, cost, and reliability.
Can I export to CSV or Excel?
Yes. Apify datasets can be downloaded as CSV, JSON, Excel, XML, RSS, HTML, or accessed through the API.
Related scrapers
- Reddit Post Monitor Lite — discover new matching posts on a schedule, deduplicate across runs, and pass selected URLs here for comment collection.
- Hacker News Search Scraper
- Substack Posts Scraper
- Telegram Channel Posts Scraper
- Product Hunt Scraper
- YouTube Comments Scraper
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.