Reddit Scraper
Pricing
Pay per event
Reddit Scraper
Extract Reddit posts, comments, and user profiles from any subreddit. No login, no API key, no code needed. Filter by keywords, sort by new/hot/top. AI-ready JSON output for LLM pipelines. Export to CSV, Excel, or connect via API.
Pricing
Pay per event
Rating
4.3
(2)
Developer
Stas Persiianenko
Actor stats
4
Bookmarked
300
Total users
113
Monthly active users
a day ago
Last modified
Categories
Share
Reddit Scraper — Extract Posts, Comments & User Data from Any Subreddit
What does Reddit Scraper do?
Reddit Scraper extracts structured data from Reddit at $1 per 1,000 posts — 4x cheaper than the leading alternative. Reddit has 1.7 billion monthly visits and 100,000+ active communities, making it the largest public discussion platform on the web. This actor scrapes posts, comments, search results, and user profiles from any public subreddit. Just paste any Reddit URL or enter a search query and get clean JSON, CSV, or Excel output. No Reddit account or API key needed.
It supports subreddit listings (hot, new, top, rising), individual posts with nested comments, user submission history, and full-text search across all of Reddit or within a specific subreddit.
Built on pure HTTP requests (no browser), it runs fast and keeps costs low — scrape thousands of posts for just a few dollars.
Who is Reddit Scraper for?
Reddit Scraper is built for anyone who needs Reddit data at scale without dealing with Reddit's restrictive official API:
🔬 Researchers — collect public opinion data, survey sentiment on topics, build datasets for academic studies 📊 Market analysts — track brand mentions, product feedback, and competitor discussions across subreddits 📈 SEO & content marketers — discover trending topics, find content ideas, and monitor keyword discussions 🤖 AI/ML engineers — gather training data, build sentiment analysis datasets, or feed LLM pipelines with real conversations 📰 Journalists — monitor communities for breaking stories, track public reactions to events 🏢 Product managers — collect user feedback from product subreddits, track feature requests and bug reports 💼 Lead generation teams — find potential customers asking for solutions your product solves 📉 Social listening agencies — monitor Reddit alongside other platforms for brand and reputation tracking
Why use Reddit Scraper?
🏷️ 4x cheaper than the leading Reddit scraper on Apify ($1/1K posts vs $4/1K) 📦 Posts + comments in one actor — no need to run separate scrapers 🔗 All input types — subreddits, posts, users, search queries, or just paste any Reddit URL ⚡ Pure HTTP — no browser, low memory, fast execution ✅ Clean, AI-ready output — structured fields with consistent naming, ready for LLM training, RAG pipelines, and AI agent workflows 📄 Pagination built in — scrape hundreds or thousands of posts automatically 💰 Pay only for results — pay-per-event pricing, no monthly subscription 🔑 No API key required — works without Reddit developer credentials 🔍 Keyword filtering — filter results to only keep posts matching specific terms
What data can you extract from Reddit?
Post fields:
| Field | Description |
|---|---|
| title | Post title |
| author | Reddit username |
| subreddit | Subreddit name |
| score | Net upvotes |
| upvoteRatio | Upvote percentage (0-1) |
| numComments | Comment count |
| createdAt | ISO 8601 timestamp |
| url | Full Reddit URL |
| selfText | Post body text |
| link | External link (for link posts) |
| domain | Link domain |
| isVideo, isSelf, isNSFW, isSpoiler | Content flags |
| linkFlairText | Post flair |
| totalAwards | Award count |
| subredditSubscribers | Subreddit size |
| imageUrls | Extracted image URLs |
| thumbnail | Thumbnail URL |
Comment fields:
| Field | Description |
|---|---|
| author | Commenter username |
| body | Comment text |
| score | Net upvotes |
| createdAt | ISO 8601 timestamp |
| depth | Nesting level (0 = top-level) |
| isSubmitter | Whether commenter is the post author |
| parentId | Parent comment/post ID |
| replies | Number of direct replies |
| postId | Parent post ID |
| postTitle | Parent post title |
How much does it cost to scrape Reddit?
This Actor uses pay-per-event pricing — you pay only for what you scrape. No monthly subscription. All platform costs (compute, proxy, storage) are included.
| Event | Cost |
|---|---|
| Actor start | $0.003 per run |
| Per post | $0.001 |
| Per comment | $0.0005 |
That's $1.00 per 1,000 posts or $0.50 per 1,000 comments.
Real-world cost examples:
| Input | Results | Duration | Cost |
|---|---|---|---|
| 1 subreddit, 100 posts | 100 posts | ~15s | ~$0.10 |
| 5 subreddits, 50 posts each | 250 posts | ~30s | ~$0.25 |
| 1 post + 200 comments | 201 items | ~5s | ~$0.10 |
| Search "AI", 100 results | 100 posts | ~15s | ~$0.10 |
| 1 subreddit, 5 posts + 3 comments each | 20 items | ~12s | ~$0.02 |
How do I search Reddit posts and comments?
- Go to the Reddit Scraper input page
- Add Reddit URLs to the Reddit URLs field — any of these formats work:
https://www.reddit.com/r/technology/https://www.reddit.com/r/AskReddit/comments/abc123/post-title/https://www.reddit.com/user/spez/r/technologyor justtechnology
- Or enter a Search Query to search across Reddit
- Set Max Posts per Source to control how many posts to scrape
- Enable Include Comments if you also want comment data
- Click Start and wait for results
- Download your data as JSON, CSV, or Excel from the Dataset tab
Example input:
{"urls": ["https://www.reddit.com/r/technology/"],"maxPostsPerSource": 100,"sort": "hot","includeComments": false}
Scraping a specific post with comments:
{"urls": ["https://www.reddit.com/r/technology/comments/abc123/some-post-title/"],"includeComments": true,"maxCommentsPerPost": 50,"commentDepth": 3}
Searching Reddit with keyword filtering:
{"searchQuery": "best project management tools","searchSubreddit": "productivity","sort": "relevance","timeFilter": "month","maxPostsPerSource": 50,"filterKeywords": ["Notion", "Asana", "Monday"]}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| urls | string[] | — | Reddit URLs to scrape (subreddits, posts, users, search URLs) |
| searchQuery | string | — | Search Reddit for this query |
| searchSubreddit | string | — | Limit search to a specific subreddit |
| sort | enum | hot | Sort order: hot, new, top, rising, relevance |
| timeFilter | enum | week | Time filter for top/relevance: hour, day, week, month, year, all |
| maxPostsPerSource | integer | 100 | Max posts per subreddit/search/user. 0 = unlimited |
| includeComments | boolean | false | Also scrape comments for each post |
| maxCommentsPerPost | integer | 100 | Max comments per post |
| commentDepth | integer | 3 | Max reply nesting depth (1-10) |
| filterKeywords | string[] | [] | Only keep posts containing at least one keyword (case-insensitive). Leave empty to keep all |
| maxRequestRetries | integer | 5 | Retry attempts for failed requests (1-10) |
Output example
Post:
{"type": "post","id": "1qw5kwf","title": "3 Teen Sisters Jump to Their Deaths from 9th Floor Apartment After Parents Remove Access to Phone","author": "Sandstorm400","subreddit": "technology","score": 18009,"upvoteRatio": 0.92,"numComments": 1363,"createdAt": "2026-02-05T00:04:58.000Z","url": "https://www.reddit.com/r/technology/comments/1qw5kwf/3_teen_sisters_jump_to_their_deaths_from_9th/","permalink": "/r/technology/comments/1qw5kwf/3_teen_sisters_jump_to_their_deaths_from_9th/","selfText": "","link": "https://people.com/3-sisters-jumping-deaths-online-gaming-addiction-11899069","domain": "people.com","isVideo": false,"isSelf": false,"isNSFW": false,"isSpoiler": false,"isStickied": false,"thumbnail": "https://external-preview.redd.it/...","linkFlairText": "Society","totalAwards": 0,"subredditSubscribers": 17101887,"imageUrls": [],"scrapedAt": "2026-02-05T12:33:50.000Z"}
Comment:
{"type": "comment","id": "m3abc12","postId": "1qw5kwf","postTitle": "3 Teen Sisters Jump to Their Deaths...","author": "commenter123","body": "This is heartbreaking. Phone addiction in teens is a serious issue.","score": 542,"createdAt": "2026-02-05T01:15:00.000Z","permalink": "/r/technology/comments/1qw5kwf/.../m3abc12","depth": 0,"isSubmitter": false,"parentId": "t3_1qw5kwf","replies": 12,"scrapedAt": "2026-02-05T12:33:52.000Z"}
How do I get the best results from Reddit Scraper?
🎯 Start small — test with 5-10 posts before running large scrapes
📊 Use sort + time filter — sort: "top" with timeFilter: "month" gets the most popular content
💬 Comments cost extra — only enable includeComments when you need them
📋 Multiple subreddits — add multiple URLs to scrape several subreddits in one run
🔍 Search within subreddit — use searchSubreddit to limit search to a specific community
🔗 Direct post URLs — paste a specific post URL to get that post + its comments
⏱️ Rate limits — Reddit allows ~1,000 requests/hour; large scrapes may take a few minutes
🏷️ Keyword filtering — use filterKeywords to keep only relevant posts when Reddit search returns loose matches
📅 Time-slice large scrapes — for more than 1,000 posts, run multiple searches with different timeFilter values (month, year, all)
🔄 Scheduled runs — set up recurring runs to monitor subreddits daily or weekly
How do I scrape Reddit without getting blocked?
Reddit Scraper is built to handle Reddit's rate limits and anti-bot protections automatically — no extra configuration needed for most use cases:
🛡️ Built-in rate limit detection — the scraper reads Reddit's X-Ratelimit-* response headers and automatically waits before retrying when limits are hit. You will not get IP-banned from rate limit violations.
🔁 Automatic retries — failed requests are retried up to 5 times (configurable via maxRequestRetries). Transient errors and network blips are handled silently.
🌐 Datacenter proxies included — the actor uses Apify's proxy pool by default. Requests are spread across multiple IPs, reducing the chance of any single IP being flagged.
🕐 Respect pagination limits — Reddit's listing API caps at ~1,000 posts per sort/subreddit combination. Instead of hammering the same endpoint, use multiple timeFilter values (e.g., month, year, all) to access older content without hitting limits.
⚙️ Pure HTTP, no browser fingerprinting — because the actor uses direct API requests rather than a headless browser, it avoids browser-based bot detection entirely.
For extremely high-volume scraping (tens of thousands of posts per hour), consider splitting your workload across multiple smaller runs rather than one large run.
Reddit data export: how to download Reddit posts to CSV, Excel, or JSON
Reddit Scraper outputs data to Apify's cloud dataset, which you can download in multiple formats immediately after each run:
📄 JSON — full structured output, best for developers and data pipelines. Each post and comment is a separate JSON object with all available fields.
📊 CSV — flat table format, opens directly in Excel, Google Sheets, or any data tool. Nested fields (like imageUrls) are serialized as strings in CSV mode.
📗 Excel (.xlsx) — download a ready-to-open spreadsheet. Same structure as CSV but formatted for Microsoft Excel.
🔗 Direct dataset URL — after a run, your dataset gets a permanent URL. You can download data programmatically at any time:
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=csv" \-H "Authorization: Bearer YOUR_API_TOKEN" > reddit_posts.csv
📅 Scheduled exports — combine with Apify's scheduler to run the scraper daily and auto-export new posts to Google Sheets or a webhook endpoint.
🗄️ Data warehouse integration — pipe exports directly to BigQuery, Snowflake, or PostgreSQL using Apify integrations for long-term storage and trend analysis.
How to monitor Reddit for brand mentions
Reddit is one of the most valuable sources for unsolicited brand feedback — people discuss products candidly in topic-specific communities. Here is how to set up ongoing brand monitoring with Reddit Scraper:
1. Search for brand name mentions:
{"searchQuery": "YourBrandName","sort": "new","timeFilter": "day","maxPostsPerSource": 100,"includeComments": false}
2. Monitor specific product subreddits:
{"urls": ["https://www.reddit.com/r/YourProductSubreddit/new/","https://www.reddit.com/r/CompetitorSubreddit/new/"],"maxPostsPerSource": 50,"includeComments": true,"maxCommentsPerPost": 20}
3. Schedule it to run daily — use Apify's built-in scheduler to run the actor every 24 hours. New posts and mentions land in a fresh dataset each time.
4. Connect to Slack or email — use Apify's Slack integration or a webhook to get notified immediately when new brand mentions are found.
5. Filter for sentiment signals — use filterKeywords to focus only on posts containing words like your product name, competitor names, or problem keywords:
{"searchQuery": "project management software","filterKeywords": ["Notion", "Asana", "ClickUp", "Monday"]}
This workflow gives you a near-real-time stream of Reddit brand mentions without maintaining a developer account or paying for the Reddit API.
Integrations
Connect Reddit Scraper to other apps and services using Apify integrations:
📗 Google Sheets — automatically export Reddit posts and comments to a spreadsheet for tracking trends or building content calendars 💬 Slack / Discord — get notifications when scraping finishes, or set up alerts for posts matching specific keywords ⚡ Zapier / Make — trigger workflows based on new Reddit data, e.g., save high-engagement posts to a CRM or send weekly reports 🔔 Webhooks — send results to your own API endpoint for custom processing pipelines 🗓️ Scheduled runs — run the scraper daily or weekly to monitor subreddits for new discussions 🗄️ Data warehouses — pipe data to BigQuery, Snowflake, or PostgreSQL for large-scale analysis 🤖 AI/LLM pipelines — feed Reddit discussions into sentiment analysis, topic modeling, or lead qualification workflows
How do I use Reddit Scraper with the API?
Use the Apify API to run Reddit Scraper programmatically from your own code. Available in Python, Node.js, and any language that supports HTTP requests.
Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/reddit-scraper').call({urls: ['https://www.reddit.com/r/technology/'],maxPostsPerSource: 100,sort: 'hot',includeComments: false,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python:
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('automation-lab/reddit-scraper').call(run_input={'urls': ['https://www.reddit.com/r/technology/'],'maxPostsPerSource': 100,'sort': 'hot','includeComments': False,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL:
curl "https://api.apify.com/v2/acts/automation-lab~reddit-scraper/runs" \-X POST \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"urls": ["https://www.reddit.com/r/technology/"],"maxPostsPerSource": 100,"sort": "hot"}'
To retrieve results after the run completes:
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=json" \-H "Authorization: Bearer YOUR_API_TOKEN"
Use with AI agents via MCP
Reddit Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP). This lets you use natural language to scrape data — just ask your AI assistant and it will configure and run the scraper for you.
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/reddit-scraper"
Setup for Claude Desktop, Cursor, or VS Code
Add this to your MCP config file:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/reddit-scraper"}}}
Your AI assistant will use OAuth to authenticate with your Apify account on first use.
Example prompts
Once connected, try asking your AI assistant:
- "Get the top 100 posts from r/technology this month"
- "Scrape comments from this Reddit thread"
- "Search Reddit for discussions about 'AI coding'"
- "Find posts mentioning our product in r/SaaS"
Learn more in the Apify MCP documentation.
Is it legal to scrape Reddit?
Scraping publicly available data from Reddit is generally considered legal. Here are the key points:
⚖️ Public data — Reddit Scraper only accesses publicly available posts and comments. It does not log in, bypass authentication, or access private content.
📜 Legal precedent — The US Ninth Circuit ruling in hiQ Labs v. LinkedIn (2022) established that scraping publicly available data does not violate the Computer Fraud and Abuse Act (CFAA).
🔒 No personal data extraction — The scraper collects usernames (which are public pseudonyms on Reddit) but does not attempt to deanonymize users or collect private information.
📋 Terms of Service — Reddit's ToS restricts automated access, but ToS violations are a contractual matter, not a criminal one. Many courts have ruled that ToS alone cannot make scraping illegal.
🇪🇺 GDPR considerations — If you scrape data that includes EU users, ensure your use case complies with GDPR. Aggregated, anonymized analysis is generally safe. Storing individual user data for profiling may require additional compliance steps.
This information is for educational purposes and does not constitute legal advice. Consult a qualified attorney for guidance specific to your use case and jurisdiction.
FAQ
Can I scrape any subreddit? Yes, as long as the subreddit is public. Private subreddits will return a 403 error and be skipped.
Does it scrape NSFW content?
Yes, NSFW posts are included by default. You can filter them out using the isNSFW field in the output.
How many posts can I scrape?
There is no hard limit. Set maxPostsPerSource: 0 for unlimited. Reddit's pagination allows up to ~1,000 posts per listing. For more, use search with different time filters.
Can I scrape comments from multiple posts at once?
Yes. Enable includeComments and the scraper will fetch comments for every post it finds. Use maxCommentsPerPost to control how many comments per post.
What happens if Reddit rate-limits me? The scraper automatically detects rate limits via response headers and waits before retrying. You don't need to configure anything.
Can I export to CSV or Excel? Yes. Apify datasets support JSON, CSV, Excel, XML, and HTML export formats. Use the dataset export buttons or API.
The scraper returns fewer posts than I expected — what's going on?
Reddit's pagination API has a limit of approximately 1,000 posts per listing. If you need more, use search with different time filters (e.g., timeFilter: "month" then timeFilter: "year") to access older content. Also note that some subreddits simply have fewer posts than your limit.
I'm getting 403 errors for a subreddit — how do I fix this? This means the subreddit is private, quarantined, or banned. The scraper can only access public subreddits. Check if you can view the subreddit in an incognito browser window — if not, the scraper won't be able to access it either.
Can I use filterKeywords to narrow down search results?
Yes. Set filterKeywords to an array of terms and only posts whose title or body contains at least one keyword will be kept. This is useful when Reddit's built-in search returns loosely related results.
How do I scrape a user's post history?
Paste the user's profile URL (e.g., https://www.reddit.com/user/spez/) into the URLs field. The scraper will extract their public submissions.
Does it handle deleted or removed posts?
Deleted posts may appear with [deleted] as the author and empty body text. Removed posts (mod-removed) may still show the title but have [removed] as the body.
Related scrapers
- Instagram Scraper — Scrape Instagram posts, profiles, comments, and hashtags
- Threads Scraper — Extract posts and profiles from Meta's Threads
- Twitter/X Scraper — Extract tweets, user profiles, and search results from X
- TikTok Scraper — Scrape TikTok videos, profiles, and trending hashtag feeds
- Bluesky Scraper — Scrape Bluesky posts, profiles, and search results
- Social Media Profile Finder — Find social media profiles across platforms from a list of websites