Reddit Scraper - Posts, Subreddit & Search Data API
Pricing
from $3.00 / 1,000 results
Reddit Scraper - Posts, Subreddit & Search Data API
High-speed scraper for Reddit posts from subreddits. Extracts 1000+ posts/minute with all filters: score, comments, flair, domain, author, NSFW, spoilers. No authentication required.
Pricing
from $3.00 / 1,000 results
Rating
5.0
(3)
Developer
ParseForge
Maintained by CommunityActor stats
24
Bookmarked
1.5K
Total users
113
Monthly active users
8.4 hours
Issues response
2 days ago
Last modified
Categories
Share
Reddit Scraper - Posts, Subreddit & Search Data API
Scrape Reddit posts from any subreddit, search query, or URL, up to a million per run. Every post comes with its score, comments, upvote ratio, full body text, and computed virality and engagement signals. No login or API key. Export to CSV, JSON, Excel, or XML.
Reddit's official API needs an app registration, OAuth, and rate-limits you. This reads the public post feeds directly, filtered by score, comments, flair, domain, or author, and returns each match in one fixed schema.
| Who uses it | What they scrape Reddit for |
|---|---|
| Market researchers | Which topics and products a niche is discussing this week |
| Brand and social teams | Mentions of a brand, product, or competitor across subreddits |
| Data scientists | Labeled post corpora for sentiment, topic, and RAG models |
| Growth marketers | Threads where people ask for recommendations or name a rival |
| Journalists and academics | Primary-source discussion with scores, ratios, and timestamps |
What it does
This Actor collects Reddit posts by subreddit, search query, or direct URL, and returns each one as a flat row. Every post carries:
- ๐งพ Core fields: title, author, subreddit, score, upvote ratio, comment count, and posting time.
- ๐ Full body:
selfTextas plain text andselfTextHtmlas rendered HTML. - ๐ฉ Flags: NSFW, spoiler, stickied, locked, archived, video, gallery, crosspost.
- ๐ Computed signals: virality score, engagement rate, controversy score, estimated views, and post age.
Results export to CSV, JSON, Excel, or XML, or stream from the API.
What you can do with Reddit data
๐ Track topics and trends.
Run a set of subreddits sorted by top over the past week and read which titles, scores, and comment counts are climbing.
๐ Monitor a brand or competitor.
Search your name, your rivals, and your product names on a schedule, filter to a minimum score, and see which subreddits mention you.
๐ง Build sentiment and NLP datasets.
Collect thousands of posts and their body text across subreddits and keywords for a labeled corpus of real discussion.
๐ฏ Find leads and feedback.
Search problem-phrases and product categories, filter by comment count, and surface threads asking for recommendations.
Why choose this scraper
| What you get | |
|---|---|
| Three inputs, one run | Feed it subreddits, search queries, and direct URLs together. Every source returns the same fields. |
| Filters that cut noise | Score, comment, flair, domain, and author filters. Only matching posts are written and billed. |
| Signals already computed | Virality, engagement, controversy, estimated views, and post age on every row, ready to sort. |
| Full post body | Text posts include the complete selfText and selfTextHtml. |
| Cross-platform enrichment | Optional Google, YouTube, Amazon, and News momentum signal per post. |
| Four export formats | CSV, JSON, Excel, and XML, from the dashboard or the API. |
How it compares
The established Reddit scrapers pull posts and comments. This one adds a computed analytics layer on every post: virality, engagement, controversy, and reach estimates. The others go broader on comments and profiles; none return those signals.
| Feature | ParseForge | trudax | harshmaur | fatihtahta |
|---|---|---|---|---|
| Virality & engagement analytics | Yes, every row | No | No | No |
| Controversy score & estimated views | Yes | No | No | No |
| Reddit's raw fields (score, ratio, awards) | Yes | Yes | Yes | Yes |
| Cross-platform momentum enrichment | Optional | No | No | No |
| Comments & user profiles | Posts-focused | Yes | Yes | Yes |
What a Reddit post looks like
Every post returns as one flat JSON row. Here is a real record, unedited apart from a trimmed body:
{"id": "1tlh5aj","parsedId": "1tlh5aj","title": "Announcement: We've Updated The Rules, and April Is Finally Over","author": "ChemicalRascal","authorId": "t2_4ta76","subreddit": "programming","subredditId": "t5_2fwo","score": 940,"upvoteRatio": 0.94,"numComments": 160,"createdUtc": 1779544477,"createdAt": "2026-05-23T13:54:37.000Z","selfText": "After temporarily banning LLM-related content over April, and asking for feedback on that ban, we've decided to end the temporary ban on AI-related posts...","url": "https://old.reddit.com/r/programming/comments/1tlh5aj/announcement_weve_updated_the_rules_and_april_is/","permalink": "https://www.reddit.com/r/programming/comments/1tlh5aj/announcement_weve_updated_the_rules_and_april_is/","domain": "self.programming","isSelf": true,"isVideo": false,"isGallery": false,"isOriginalContent": false,"isCrosspost": false,"linkFlairText": null,"over18": false,"spoiler": false,"stickied": true,"locked": false,"archived": false,"awards": 0,"distinguished": "moderator","viralityScore": 89.8,"engagementRate": 17,"controversyScore": 1,"estimatedViews": 1000,"postAgeHours": 1417.4,"postedDay": "Saturday","postedHour": 13,"contentType": "text","scrapedAt": "2026-07-21T15:21:22.346Z"}
Link posts carry an external url and domain instead of body text. linkFlairText is null when a post has no flair.
Configure the run
Drive the Actor from three source types, alone or together: subreddits, search queries, and direct URLs. Filters (score, comments, flair, domain, author) run as each post is read, so only matches reach your dataset. The Input tab lists every parameter.
Grab the week's top posts from a couple of subreddits:
{ "subreddits": ["programming", "datascience"], "sort": "top", "time": "week", "maxItems": 200 }
Search all of Reddit for a topic and keep only posts with real traction:
{ "searchQueries": ["vector databases"], "sort": "relevance", "minScore": 100, "minComments": 25, "maxItems": 300 }
Scrape a specific subreddit URL and add a cross-platform momentum signal to every post:
{ "startUrls": ["https://www.reddit.com/r/technology/top/?t=month"], "enrichOutput": true, "maxItems": 150 }
Pricing
Pay-per-event: $0.00338 per post, dropping to $0.003 at higher volume, plus a $0.054 run-start fee (down to $0.048). You pay only for posts written to your dataset.
| Posts collected | Approximate cost |
|---|---|
| 100 | $0.39 |
| 1,000 | $3.43 |
| 10,000 | $33.85 |
At higher monthly volume the per-post rate drops to $0.003, so 10,000 posts runs about $30. New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 posts as a preview. Upgrade your Apify plan to collect up to 1,000,000 posts per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Reddit Posts Scraper.
- Enter
subreddits,searchQueries, orstartUrls, pick asortandtime, add any filters, and click Start. - Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Reddit through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/reddit-posts-scraper"
Then prompt it in plain language:
- "Search Reddit for posts about vector databases from the past week and summarize the top 20 by score."
- "Pull the top 50 posts from r/datascience this month and list the most discussed topics."
- "Monitor r/programming for posts mentioning our product and export the matches as a table."
Copy this into ChatGPT, Claude, or Cursor to start:
Use the Apify Actor "parseforge/reddit-posts-scraper" to collect Reddit posts by subreddit, search query, or URL. Input: { "subreddits": ["<name>"], "searchQueries": ["<keyword>"], "sort": "<hot|new|top|rising>", "maxItems": <n> }. It returns title, author, subreddit, score, upvoteRatio, numComments, selfText, url, permalink, and posting date per post. Call it with the ApifyClient and my APIFY_TOKEN.
Troubleshooting
Why am I getting no results?
The subreddit may be misspelled, private, or banned. If you search with sort: top or controversial, widen the time window. A narrow hour or day returns nothing for low-traffic terms.
Why fewer posts than I asked for?
A single feed holds a limited number of posts, and your score, comment, flair, or domain filters remove more. Loosen the filters or add more subreddits and queries.
Why is a field empty?
Link posts have no selfText, text posts have no external domain, and linkFlairText is null when a post has no flair. That is the post's real state.
Why is the run slow?
Each page holds up to 100 posts, so large maxItems or postsPerSource values fetch more pages. Lower them or split one job into scheduled runs.
A field stopped filling.
Reddit changed its public response shape. Email us with your run ID so we can update the parser.
FAQ
| Question | Answer |
|---|---|
| Do I need a Reddit API key or app? | No. It reads Reddit's public feeds, so there is no OAuth app, client secret, or token to manage. |
| How is this different from the official API? | The official API is rate limited and needs OAuth. This returns the same public posts with virality and engagement already computed. |
| Can I search all of Reddit, or only subreddits? | Both. Use subreddits for communities, searchQueries across all of Reddit, and searchInSubreddit to scope a search. |
| Does it return the full post body? | Yes for text posts: selfText and selfTextHtml. Link posts point to an external url and domain. |
| Can I filter by score, comments, or flair? | Yes. Set min and max score and comments, plus flair, domain, and author filters. Only matches are written and billed. |
| Does it scrape comments too? | It focuses on posts and their comment counts. For full threads, use a dedicated comment scraper. |
| How many posts per run? | Free plan: 10. Paid: up to 1,000,000, bounded by what the feeds and filters return. |
| What are the virality and engagement scores? | Signals computed from score, comments, ratio, and age for ranking. They are estimates, not official Reddit metrics. |
| Is this an official Reddit product? | No. It is unofficial and reads only public Reddit data. |
Related actors
- X.com (Twitter) Post Scraper: public X posts by keyword or profile.
- Instagram Posts Scraper: captions, likes, comments, and media from public posts.
- Hacker News Who's Hiring Jobs Scraper: structured jobs from the monthly hiring threads.
- X.com Profiles Scraper: profile-level data for X accounts.
- TrustRadius B2B Software Scraper: B2B software reviews for competitive research.
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Reddit, Inc. It collects only publicly available Reddit data. You are responsible for using the data in compliance with Reddit's terms and applicable laws, including GDPR, CCPA, and PIPL. Do not use it to identify, profile, or target individuals.
