# Cheapest Reddit Scraper: $0.50 per 1,000 Posts & Comments (`codetr/cheapest-reddit-scraper`) Actor

Scrape Reddit posts and comments for just $0.50 per 1,000 results. No login, no API key, no proxy, no blocks. Full history back to 2008, with keyword and date filters.

- **URL**: https://apify.com/codetr/cheapest-reddit-scraper.md
- **Developed by:** [Yusuf Barış](https://apify.com/codetr) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.40 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does Cheapest Reddit Scraper do?

**Cheapest Reddit Scraper** collects **posts and comments from [Reddit](https://www.reddit.com)** quickly, for just **$0.50 per 1,000 results**. It is a **Reddit API alternative** that needs **no Reddit account, no API key, no OAuth and no proxy**, and it is never hit by Reddit's 403, 429 or Cloudflare blocks.

It does not drive a browser or fight anti-bot protection, so it is **fast, stable and cheap**. It covers Reddit all the way back to **2008**, and new posts and comments typically become available within about a day.

Give it subreddits, users or post URLs, optionally a keyword and a date range, and get clean, flat JSON back.

### Why use Cheapest Reddit Scraper?

- 💸 **Cheap**: $0.50 per 1,000 results, with no proxy, browser or per-run fees on top.
- ⚡ **Fast**: about 50-85 results per second in our tests, 5,000 comments in about one minute.
- 🕰️ **Full history**: more than 15 years of posts and comments, ordered newest or oldest first.
- 🚫 **No blocks**: no proxies to rotate and no CAPTCHAs to solve, so runs do not get banned.
- 🧩 **Posts and comments in one run**: collect posts, then each post's comment thread, with ids that join them together.
- 🔎 **Keyword and date filters**: find every mention of a brand or topic in a subreddit or by a user.
- 🔌 **Apify platform features**: schedule runs, call the Actor through the API, connect it to Make, Zapier, n8n, Google Sheets or webhooks, and monitor runs.

Typical use cases:

- Market research and brand or competitor monitoring
- Voice-of-customer analysis: pain points, feature requests, reviews
- Sentiment and trend analysis over long periods
- Datasets for AI and LLM training, evaluation and RAG
- Academic and social research

### What data can Cheapest Reddit Scraper extract?

Every result has a `type` field (`post` or `comment`).

| Field | Type | Description |
| --- | --- | --- |
| `type` | string | `post` or `comment` |
| `id` | string | Reddit id of the item |
| `subreddit` | string | Subreddit name |
| `title` | string | Post title (posts only) |
| `text` | string | Post body or comment text |
| `author` | string | Username (`[deleted]` if removed) |
| `score` | number | Upvote score |
| `numComments` | number | Number of comments (posts only) |
| `createdAt` | string | ISO 8601 timestamp |
| `url` | string | Link to the item on reddit.com |
| `externalUrl`, `domain` | string | Linked page and its domain (link posts only) |
| `flair` | string | Post flair |
| `postId`, `parentId`, `isTopLevel` | string, boolean | Join keys for comments |
| `metricsMayBeStale` | boolean | `true` if the item is under 48 hours old and score or comment count may not be final |

### How to scrape Reddit posts and comments

1. Open the Actor and go to the **Input** tab.
2. Add one or more **Subreddits** (`technology`, `r/technology` or a full URL), **Users**, or **Post URLs**.
3. Choose whether to collect **posts** or **comments**, and optionally add a **keyword** and a **date range** such as `30 days` or `2025-01-01`.
4. Turn on **Also collect comments of each post** if you want full discussions.
5. Set **Max results** to cap the run and the cost.
6. Click **Start** and download the data from the **Output** tab.

### How much does it cost to scrape Reddit?

The Actor uses **pay per result** pricing: **$0.50 per 1,000 results**. A result is one post or one comment saved to the dataset. There are no extra proxy, browser or per-run charges, and the **Max results** input is also your spending cap.

Examples:

| Job | Results | Approximate cost |
| --- | --- | --- |
| Last week of a subreddit, posts only | 1,000 | $0.50 |
| 5,000 comments from a subreddit | 5,000 | $2.50 |
| 500 posts with up to 100 comments each | up to 50,500 | up to $25 |

Free-plan users can try the Actor with their monthly Apify platform credits.

### Input

See the **Input** tab for all options. A few notes:

- A **keyword filter** needs at least one subreddit or user. It is fastest with a date range.
- **Dates** can be absolute (`2025-01-31`) or relative (`7 days`, `3 months`).
- **Post URLs** always return the post together with its comments, up to **Max comments per post**.

Example input:

```json
{
    "subreddits": ["technology", "MachineLearning"],
    "searchType": "posts",
    "startDate": "30 days",
    "includeComments": true,
    "maxCommentsPerPost": 100,
    "maxItems": 5000
}
```

### Output

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

A post:

```json
{
    "type": "post",
    "id": "18vkv0k",
    "subreddit": "technology",
    "title": "Example post title",
    "text": "",
    "author": "some_user",
    "score": 42,
    "numComments": 7,
    "createdAt": "2024-01-01T00:21:33.000Z",
    "url": "https://www.reddit.com/r/technology/comments/18vkv0k/",
    "externalUrl": "https://example.com/article",
    "domain": "example.com",
    "flair": "Software",
    "isSelf": false,
    "isNsfw": false,
    "metricsMayBeStale": false
}
```

A comment:

```json
{
    "type": "comment",
    "id": "kfwkpjg",
    "postId": "18vz65a",
    "parentId": "kfus41f",
    "isTopLevel": false,
    "subreddit": "technology",
    "author": "another_user",
    "text": "Example comment text",
    "score": 2,
    "createdAt": "2024-01-02T00:19:49.000Z",
    "url": "https://www.reddit.com/r/technology/comments/18vz65a/_/kfwkpjg/",
    "metricsMayBeStale": false
}
```

### Tips and advanced options

- **Keep costs predictable**: always set **Max results**. For comment threads, also lower **Max comments per post**.
- **Get fresh and final numbers**: `score` and `numComments` of a brand-new post are provisional and are finalized roughly 24-48 hours after it appears. For trend analysis, leave the last two days out with `endDate` set to `2 days`.
- **Build a dataset over time**: schedule the Actor daily with `startDate` set to `3 days` and deduplicate on `id` downstream.
- **Join posts and comments**: a comment's `postId` equals the `id` of its post.

### FAQ, disclaimers and support

#### Do I need a Reddit account or API key?

No. There is no login, OAuth or API key to set up. Just enter your subreddits and run.

#### How far back does the data go?

Posts and comments from 2008 onward. The newest content (last day or so) can appear with a short delay.

#### Why is the score 1 and the comment count 0 on new posts?

Reddit data for brand-new posts is provisional: the score and comment count are filled in later. Items younger than 48 hours are flagged with `metricsMayBeStale: true`.

#### Does it include deleted or removed content?

Removed content appears as `[removed]` or `[deleted]`. Private and quarantined subreddits are not available.

#### Is it legal to scrape Reddit?

Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. This Actor is not affiliated with or endorsed by Reddit.

#### Something is wrong or a field is missing

Open a ticket in the **Issues** tab and describe your input. You can also use the **API** tab to run the Actor programmatically from your own code.

# Actor input Schema

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

Subreddit names or URLs, e.g. `technology`, `r/technology` or `https://www.reddit.com/r/technology/`.

## `authors` (type: `array`):

Reddit usernames or profile URLs whose posts / comments you want, e.g. `spez` or `u/spez`.

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

Specific posts to fetch. Each one is returned together with its comments (up to *Max comments per post*).

## `searchType` (type: `string`):

Collect posts or comments.

## `query` (type: `string`):

Only return posts (title / text) or comments (text) containing this keyword. Requires a subreddit or user above. Searching very long date ranges can be slow, so combine it with a date range.

## `startDate` (type: `string`):

Oldest item to include. Absolute (`2025-01-31`) or relative (`7 days`, `3 months`). Leave empty for no limit.

## `endDate` (type: `string`):

Newest item to include. Absolute (`2025-02-28`) or relative (`1 day`). Leave empty for now.

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

Newest first or oldest first.

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

Adds comments after every post. Each comment counts as a result.

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

Upper limit of comments collected per post.

## `maxItems` (type: `integer`):

Total results (posts + comments) to return. Controls your maximum cost.

## Actor input object example

```json
{
  "subreddits": [
    "technology"
  ],
  "searchType": "posts",
  "startDate": "7 days",
  "sort": "new",
  "includeComments": false,
  "maxCommentsPerPost": 50,
  "maxItems": 100
}
```

# Actor output Schema

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

No description

# 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"
    ],
    "startDate": "7 days"
};

// Run the Actor and wait for it to finish
const run = await client.actor("codetr/cheapest-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"],
    "startDate": "7 days",
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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"
  ],
  "startDate": "7 days"
}' |
apify call codetr/cheapest-reddit-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,codetr/cheapest-reddit-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/lsR8lErLoyEmi0WDg/builds/ecjjPHdkPdYaU5Oho/openapi.json
