# Reddit Scraper Pro (`seeb/reddit-scraper-pro`) Actor

Fast Reddit posts scraper for market research and trend tracking. Extract titles, authors, upvotes, comment counts, timestamps, preview text, and clean post URLs from subreddit listings—optimized for speed and reliable marketplace-scale runs.

- **URL**: https://apify.com/seeb/reddit-scraper-pro.md
- **Developed by:** [Techionik](https://apify.com/seeb) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 3 total users, 1 monthly users, 93.3% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

### What does Reddit Scraper Pro do?

**Reddit Scraper Pro** extracts structured post data from public [Reddit](https://www.reddit.com/) subreddit listings for market research, trend tracking, content research, and community monitoring. It collects post titles, authors, subreddit names, timestamps, text previews, clean post URLs, flair, and engagement metrics when Reddit exposes them.

The actor is built for fast Apify runs. It uses lightweight HTTP extraction instead of opening a browser for every page, tries Reddit JSON listings for richer data, and falls back to Reddit RSS when JSON is blocked. You can run it manually, schedule it, call it from the API, or export results as JSON, CSV, Excel, HTML, and more.

### Why use Reddit Scraper Pro?

Reddit is one of the best places to discover market pain points, product ideas, customer language, industry trends, and content topics. This actor turns public subreddit listings into clean datasets that are easy to analyze in spreadsheets, BI tools, AI workflows, and monitoring pipelines.

Common uses include:

- Tracking trending posts in niche communities
- Monitoring public conversations around products, brands, or industries
- Finding content ideas from active subreddit discussions
- Building research datasets for AI and NLP workflows
- Comparing engagement across multiple communities
- Watching new posts in target markets or startup niches

### How to use Reddit Scraper Pro

1. Open the actor on Apify.
2. Add subreddit names or URLs, such as `SaaS`, `Entrepreneur`, or `https://www.reddit.com/r/startups`.
4. Choose the number of posts to scrape.
5. Select the listing sort: `hot`, `new`, `top`, or `rising`.
6. Run the actor and open the Dataset tab.
7. Download the data in JSON, CSV, Excel, HTML, or another supported format.

### Input

You can configure the actor from the Input tab.

```json
{
  "subreddits": ["SaaS", "Entrepreneur"],
  "maxPosts": 100,
  "sort": "hot",
  "timeFilter": "day",
  "maxCommentsPerPost": 3,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

Input fields:

| Field | Description |
| --- | --- |
| `subreddits` | Subreddit names or URLs, for example `SaaS`, `r/startups`, or `https://www.reddit.com/r/Entrepreneur`. |
| `maxPosts` | Maximum number of posts to save across all subreddits. |
| `sort` | Listing sort: `hot`, `new`, `top`, or `rising`. |
| `timeFilter` | Time range for `top`: `hour`, `day`, `week`, `month`, `year`, or `all`. |
| `maxCommentsPerPost` | Maximum number of top comments to try to extract for each post. Use `0` to skip comments. |
| `proxyConfiguration` | Optional Apify Proxy settings. Keep proxy off for faster, lower-cost RSS runs. Enable Residential proxy when you need richer JSON fields and are comfortable with higher usage cost. |

### Output

Each dataset row is one Reddit post.

```json
{
  "subreddit": "r/SaaS",
  "postTitle": "What are you building this week?",
  "author": "maker_user",
  "upvotes": 120,
  "commentCount": 34,
  "createdAt": "2026-06-12T16:42:12.000Z",
  "url": "https://www.reddit.com/r/SaaS/comments/xyz789/what_are_you_building_this_week",
  "permalink": "https://www.reddit.com/r/SaaS/comments/xyz789/what_are_you_building_this_week",
  "flair": "Discussion",
  "isNsfw": false,
  "domain": "self.SaaS",
  "text": "A short preview or self-post text when available.",
  "comments": [
    {
      "author": "commenter_1",
      "text": "Useful reply text from the discussion.",
      "upvotes": 12,
      "createdAt": "2026-06-12T17:10:00.000Z",
      "permalink": "https://www.reddit.com/r/SaaS/comments/xyz789/comment/abc123"
    }
  ],
  "commentsText": "Useful reply text from the discussion."
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Data Table

| Field | Description |
| --- | --- |
| `subreddit` | Subreddit where the post appeared. |
| `postTitle` | Reddit post title. |
| `author` | Public Reddit username. |
| `upvotes` | Visible score when available from JSON listings. RSS fallback may return `null`. |
| `commentCount` | Visible comment count when available. |
| `createdAt` | ISO timestamp for the post or feed entry. |
| `url` | Clean public Reddit post URL. |
| `permalink` | Clean public Reddit permalink. |
| `flair` | Post flair when available. |
| `isNsfw` | Whether the post is marked NSFW when available. |
| `domain` | Link domain or `reddit.com` for RSS fallback rows. |
| `text` | Self-post text or feed preview when available. |
| `comments` | Array of top comments when Reddit allows comment extraction. |
| `commentsText` | Top comments as plain text for CSV and spreadsheet exports. |

### Pricing and Cost Estimation

This actor uses pay-per-event pricing with platform usage paid by the user when enabled in Apify monetization. The recommended marketplace price is **$4 per 1,000 saved Reddit posts** plus Apify platform usage. This keeps the actor easy to try for buyers while still making larger monitoring and research runs profitable.

The actor is designed to keep compute cost low by avoiding browser automation and using lightweight HTTP requests. Proxy is optional: leaving it off is usually faster and cheaper, while Residential proxy can improve access to richer JSON fields such as upvotes and comments on some runs.

For small research jobs, start with `maxPosts` between 50 and 200. For larger monitoring or analysis jobs, use 500 to 5,000 posts and schedule runs as needed.

### Tips and Advanced Options

- Use `sort: "new"` to monitor fresh community activity.
- Use `sort: "top"` with `timeFilter: "week"` or `month` to find high-performing posts.
- Keep proxy disabled for fast, low-cost RSS runs.
- Enable Residential proxy if you need richer JSON fields such as upvotes, comments, flair, and domains.
- Add multiple subreddits to compare communities in one run.

### Limitations, FAQ, and Support

This actor scrapes public subreddit listing data. It does not log in, bypass private communities, scrape deleted content, or extract full nested comment threads.

Reddit may rate-limit or block some request types. When that happens, the actor can fall back to RSS, which is more reliable but may return fewer metrics. RSS fallback rows can have `null` values for `upvotes`, `commentCount`, and `flair`, and comment extraction may be skipped when Reddit blocks comment endpoints.

Make sure your use of Reddit data follows Reddit's terms, applicable laws, and privacy rules. For questions, bugs, or custom Reddit data needs, open an issue on the actor's Issues tab.

# Actor input Schema

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

Enter subreddit names or subreddit URLs, one per line. Examples: SaaS, r/Entrepreneur, https://www.reddit.com/r/startups

## `maxPosts` (type: `integer`):

Maximum number of posts to save across all subreddits.

## `sort` (type: `string`):

Reddit listing sort.

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

Used when Sort is Top.

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

Maximum number of top comments to try to extract for each post. Use 0 to skip comments.

## `proxyConfiguration` (type: `object`):

Apify Proxy settings. Residential proxy is recommended for better access to richer Reddit JSON data.

## Actor input object example

```json
{
  "subreddits": [
    "SaaS"
  ],
  "maxPosts": 25,
  "sort": "hot",
  "timeFilter": "day",
  "maxCommentsPerPost": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Open the dataset with scraped Reddit posts.

# 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": [
        "SaaS"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("seeb/reddit-scraper-pro").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": ["SaaS"] }

# Run the Actor and wait for it to finish
run = client.actor("seeb/reddit-scraper-pro").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": [
    "SaaS"
  ]
}' |
apify call seeb/reddit-scraper-pro --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Reddit Scraper Pro",
        "description": "Fast Reddit posts scraper for market research and trend tracking. Extract titles, authors, upvotes, comment counts, timestamps, preview text, and clean post URLs from subreddit listings—optimized for speed and reliable marketplace-scale runs.",
        "version": "0.0",
        "x-build-id": "bsXcMY5Oz4hK4xBAp"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/seeb~reddit-scraper-pro/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-seeb-reddit-scraper-pro",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/seeb~reddit-scraper-pro/runs": {
            "post": {
                "operationId": "runs-sync-seeb-reddit-scraper-pro",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/seeb~reddit-scraper-pro/run-sync": {
            "post": {
                "operationId": "run-sync-seeb-reddit-scraper-pro",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "subreddits": {
                        "title": "Subreddits",
                        "type": "array",
                        "description": "Enter subreddit names or subreddit URLs, one per line. Examples: SaaS, r/Entrepreneur, https://www.reddit.com/r/startups",
                        "items": {
                            "type": "string"
                        },
                        "default": [
                            "SaaS"
                        ]
                    },
                    "maxPosts": {
                        "title": "Maximum Posts",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of posts to save across all subreddits.",
                        "default": 25
                    },
                    "sort": {
                        "title": "Sort",
                        "enum": [
                            "hot",
                            "new",
                            "top",
                            "rising"
                        ],
                        "type": "string",
                        "description": "Reddit listing sort.",
                        "default": "hot"
                    },
                    "timeFilter": {
                        "title": "Time Range",
                        "enum": [
                            "hour",
                            "day",
                            "week",
                            "month",
                            "year",
                            "all"
                        ],
                        "type": "string",
                        "description": "Used when Sort is Top.",
                        "default": "day"
                    },
                    "maxCommentsPerPost": {
                        "title": "Comments Per Post",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum number of top comments to try to extract for each post. Use 0 to skip comments.",
                        "default": 0
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Apify Proxy settings. Residential proxy is recommended for better access to richer Reddit JSON data.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
