# 👽 Reddit Scraper - Posts, Comments & Subreddits (`renzomacar/reddit-scraper`) Actor

Scrape Reddit posts, comments & full threads with built-in sentiment scoring — no login, no API key, no rate limits. Pull titles, authors, scores, nested comment trees and sort by hot, new, top or rising. Built for market research and brand monitoring. Pay only for what you scrape.

- **URL**: https://apify.com/renzomacar/reddit-scraper.md
- **Developed by:** [Renzo Madueno](https://apify.com/renzomacar) (community)
- **Categories:** Social media, AI, Developer tools
- **Stats:** 326 total users, 7 monthly users, 74.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Reddit Sentiment Scraper - Posts, Comments & Sentiment Data

### Reddit sentiment scraper: extract posts, comments and community insights from any subreddit

Turn Reddit into a structured dataset. This scraper collects posts and comments from subreddits, search results, and individual threads -- delivering titles, authors, upvote scores, comment text, timestamps, and flair data in a clean, export-ready format.

Reddit is one of the richest sources of authentic consumer opinion on the internet. Whether you are running market research, building a sentiment analysis pipeline, scouting content ideas, or monitoring brand mentions, this actor gives you programmatic access to the conversations that matter -- without rate limits or API key management.

### What data can you extract?

#### Post data

| Field | Type | Description |
|-------|------|-------------|
| `dataType` | string | Record type identifier (`post`) |
| `postTitle` | string | Title of the Reddit post |
| `author` | string | Username of the post author |
| `subreddit` | string | Subreddit where the post was published |
| `score` | integer | Net upvote score (upvotes minus downvotes) |
| `commentCount` | integer | Total number of comments on the post |
| `body` | string | Self-text content of the post |
| `url` | string | Link URL (external link posts) or post permalink |
| `postUrl` | string | Direct Reddit permalink to the post |
| `createdUtc` | string | UTC timestamp of when the post was created |
| `flair` | string | Post flair or tag assigned by the author or moderators |
| `isStickied` | boolean | Whether the post is pinned by moderators |
| `scrapedAt` | string | ISO 8601 timestamp of when the data was collected |

#### Comment data

| Field | Type | Description |
|-------|------|-------------|
| `dataType` | string | Record type identifier (`comment`) |
| `author` | string | Username of the comment author |
| `body` | string | Full text of the comment |
| `score` | integer | Net upvote score for the comment |
| `depth` | integer | Nesting level (0 = top-level reply, 1 = reply to a reply, etc.) |
| `createdUtc` | string | UTC timestamp of when the comment was posted |
| `postTitle` | string | Title of the parent post |
| `postUrl` | string | Permalink to the parent post |
| `scrapedAt` | string | ISO 8601 timestamp of when the data was collected |

### Use cases

- **Market research** -- Understand what real users say about your product, your competitors, or your industry by mining relevant subreddits and search queries.
- **Sentiment analysis** -- Feed Reddit post and comment data into NLP pipelines to measure community sentiment around brands, product launches, or events.
- **Content ideation** -- Discover what questions people ask, what problems they face, and what topics generate the most engagement in your niche.
- **Competitive intelligence** -- Monitor competitor mentions across Reddit to track public perception and identify strengths or weaknesses in their offering.
- **Academic research** -- Collect structured datasets of online discussions for social science, linguistics, or communication studies.

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `subreddits` | array | No | `[]` | Subreddit names to scrape (without `r/`), e.g., "technology", "programming" |
| `searchQueries` | array | No | `[]` | Keywords to search across all of Reddit |
| `postUrls` | array | No | `[]` | Direct Reddit post URLs to scrape comments from |
| `maxPostsPerSubreddit` | integer | No | `100` | Maximum posts to extract per subreddit or search query (1--500) |
| `includeComments` | boolean | No | `false` | Whether to extract comments from each post |
| `maxCommentsPerPost` | integer | No | `100` | Maximum comments to extract per post (1--500) |
| `sortBy` | string | No | `"hot"` | How to sort posts: `hot`, `new`, `top`, or `rising` |
| `timeFilter` | string | No | `"week"` | Time period when sorting by top: `hour`, `day`, `week`, `month`, `year`, `all` |
| `maxConcurrency` | integer | No | `3` | Number of browser pages to run in parallel (1--10) |

At least one subreddit, search query, or post URL must be provided.

### Example output

```json
{
    "dataType": "post",
    "postTitle": "What's the best programming language to learn in 2026?",
    "author": "dev_user123",
    "subreddit": "programming",
    "score": 1547,
    "commentCount": 342,
    "body": "I've been thinking about switching careers into software development. I have some experience with Python from college, but I'm wondering what the job market actually wants right now. Any advice?",
    "url": "https://old.reddit.com/r/programming/comments/abc123/whats_the_best_programming_language/",
    "postUrl": "https://old.reddit.com/r/programming/comments/abc123/whats_the_best_programming_language/",
    "createdUtc": "2026-02-28T15:30:00Z",
    "flair": "Discussion",
    "isStickied": false,
    "scrapedAt": "2026-03-01T12:00:00.000Z"
}
```

```json
{
    "dataType": "comment",
    "author": "senior_eng_42",
    "body": "Honestly, it depends on what you want to do. For web development, JavaScript/TypeScript is still king. For data science and ML, Python is non-negotiable. For enterprise backend work, Java and Go are in very high demand.",
    "score": 892,
    "depth": 0,
    "createdUtc": "2026-02-28T16:15:00Z",
    "postTitle": "What's the best programming language to learn in 2026?",
    "postUrl": "https://old.reddit.com/r/programming/comments/abc123/whats_the_best_programming_language/",
    "scrapedAt": "2026-03-01T12:00:00.000Z"
}
```

### How much does it cost?

This actor uses a pay-per-result pricing model. You are charged for each data record (post or comment) that is successfully extracted.

- **$0.002 per result** -- that is $2.00 per 1,000 records.
- Scraping 100 posts from a subreddit (without comments) costs approximately **$0.20**.
- Scraping 1,000 posts (without comments) costs approximately **$2.00**.
- Scraping 100 posts with 20 comments each (2,100 results) costs approximately **$4.20**.

There are no monthly subscriptions or minimum commitments. You only pay for the data you extract.

### Tips and tricks

- **Use search queries for broad research.** Subreddit scraping is best for focused communities. If you want to find every mention of a brand or topic across all of Reddit, use the `searchQueries` input instead.
- **Enable comments selectively.** Comments multiply the number of results quickly. If you only need post-level data (titles, scores, dates), leave `includeComments` set to `false` to keep costs low and runs fast.
- **Sort by "top" for high-signal data.** When researching popular opinions or frequently recommended products, sort by `top` with a time filter of `month` or `year` to surface the most upvoted content.
- **NSFW subreddits are supported.** The scraper handles Reddit's age verification prompts automatically, so you can scrape any publicly accessible subreddit.

### FAQ

**How do I scrape Reddit posts and comments from a subreddit?**
Enter one or more subreddit names (without `r/`), choose a sort order (`hot`, `new`, `top`, or `rising`), set how many posts you want, and optionally enable comments. The scraper returns titles, authors, upvote scores, body text, timestamps, and flair as a clean dataset you can export to JSON, CSV, or Excel.

**Do I need an API key or Reddit account to use this Reddit scraper?**
No. There is no Reddit API key, OAuth app, or login to manage. You just provide subreddits, search queries, or post URLs and the actor returns the public data directly.

**Why use this instead of the official Reddit API?**
The official Reddit API now has strict rate limits, paid access tiers, and approval requirements that make large-scale or commercial scraping painful. This actor needs no API credentials, has no per-app rate-limit ceiling to manage, and lets you scrape posts plus full comment trees across many subreddits in one run.

**What is a good Reddit API alternative for sentiment analysis?**
This actor is a practical Reddit API alternative for sentiment and market research: it pulls posts and comment text (with upvote scores and depth) ready to feed straight into NLP or LLM pipelines, without the cost and quota headaches of the official API.

**Can I use this for sentiment analysis and brand monitoring?**
Yes. Use `searchQueries` to find every mention of a brand, product, or topic across all of Reddit, enable comments, and feed the post and comment text into your sentiment model. Sort by `top` with a `month` or `year` time filter to surface the highest-signal opinions.

**Is scraping public Reddit data legal?**
This tool collects only publicly accessible posts and comments. You are responsible for complying with Reddit's terms, applicable laws such as GDPR and CCPA, and using the data ethically. Avoid collecting personal data without a lawful basis.

### Automate it

Add this Reddit scraper to an Apify **Schedule** to monitor a subreddit, search query, or brand mention automatically every day or week — ideal for ongoing sentiment tracking and competitive intelligence. Connect the output to **Make, n8n, Zapier, Google Sheets, Slack, or a webhook** through Apify integrations so new posts and comments flow straight into your dashboards, alerts, or NLP pipeline. Recurring runs keep your sentiment dataset continuously fresh.

### Related actors

- [YouTube Channel & Video Scraper](https://apify.com/renzomacar/youtube-scraper) -- Extract YouTube channel statistics and video metadata to combine with Reddit community insights for a complete content research workflow.
- [TikTok Profile & Post Scraper](https://apify.com/renzomacar/tiktok-scraper) -- Collect TikTok creator profiles and video data to complement Reddit sentiment analysis with social media performance metrics.
- [Instagram Scraper](https://apify.com/renzomacar/instagram-scraper) -- Add Instagram profile and post data to your social listening so brand sentiment spans Reddit and Instagram.
- [Telegram Channel Scraper](https://apify.com/renzomacar/telegram-channel-scraper) -- Capture public Telegram channel messages and views to widen your sentiment and OSINT coverage beyond Reddit.
- [Trustpilot Reviews Scraper](https://apify.com/renzomacar/trustpilot-reviews) -- Combine Reddit opinions with structured Trustpilot reviews for a fuller picture of customer sentiment.

### Posting AI-generated content to Reddit?

If you scrape Reddit to inform your own posts and write them with Claude/ChatGPT, **Reddit mods are catching on**. Em-dashes, "delve", parallel bullets, and 9 other patterns get accounts publicly called out for "all comments AI generated" (my own account got 2 callouts in 24h before I built this).

[**aitells.vercel.app**](https://aitells.vercel.app) is a free detector + paid rewriter. Paste your AI text, see every fingerprint highlighted, get it rewritten in your voice. Free first rewrite. $19 lifetime.

### Found this useful?

If this scraper saved you time, please consider leaving a quick review on the **Reviews** tab above. Reviews help small developers like me get visibility on the Apify Store, and your feedback is genuinely valuable for improving the actor. Thanks!

# Actor input Schema

## `subreddits` (type: `array`):

Subreddit names to scrape (without r/). E.g., 'technology', 'programming'.

## `searchQueries` (type: `array`):

Search Reddit for specific keywords.

## `postUrls` (type: `array`):

Direct Reddit post URLs to scrape comments from.

## `maxPostsPerSubreddit` (type: `integer`):

Maximum number of posts to extract per subreddit.

## `includeComments` (type: `boolean`):

Whether to extract comments from each post.

## `maxCommentsPerPost` (type: `integer`):

Maximum number of comments to extract per post.

## `sortBy` (type: `string`):

How to sort posts in the subreddit listing.

## `timeFilter` (type: `string`):

Time period filter when sorting by top.

## `maxConcurrency` (type: `integer`):

Number of concurrent HTTP requests to run in parallel.

## Actor input object example

```json
{
  "subreddits": [
    "technology",
    "programming"
  ],
  "maxPostsPerSubreddit": 100,
  "includeComments": false,
  "maxCommentsPerPost": 100,
  "sortBy": "hot",
  "timeFilter": "week",
  "maxConcurrency": 3
}
```

# Actor output Schema

## `results` (type: `string`):

One row per post or comment.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "subreddits": [
        "technology",
        "programming"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("renzomacar/reddit-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "subreddits": [
        "technology",
        "programming",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("renzomacar/reddit-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "subreddits": [
    "technology",
    "programming"
  ]
}' |
apify call renzomacar/reddit-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=renzomacar/reddit-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/kKRosdFGtbPk3p0uj/builds/dVmWWjVJprP0gCqCg/openapi.json
