# Reddit User Scraper: Profiles, Posts & Comments (`deepmine/reddit-user-scraper`) Actor

Scrape any Reddit user's profile, posts and comments by username or profile link, no login: karma, account age, verified and moderator flags, avatar and bio, then their latest posts and comments with score, subreddit and date. Many users per run; you pay per result.

- **URL**: https://apify.com/deepmine/reddit-user-scraper.md
- **Developed by:** [DeepMine](https://apify.com/deepmine) (community)
- **Categories:** Social media, Lead generation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.49 / 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 Reddit User Scraper do?

Type Reddit usernames or paste profile links and it returns each user's profile (total, post and comment karma, account age, verified, moderator and employee flags, avatar, bio, profile visibility, previous names) followed by their latest posts and comments with score, subreddit and date. Many users per run, newest first, first rows in seconds. No login, no browser, no cookies.

These are real rows from the prefilled run (4 public accounts, profile plus 12 posts and 12 comments each):

| User | Total karma | Account created | Verified | Posts | Comments | Bio |
|---|---:|---|---|---:|---:|---|
| [u/spez](https://www.reddit.com/user/spez/) | 941,002 | 2005-06-06 | yes | 12 | 12 | Reddit CEO |
| [u/kn0thing](https://www.reddit.com/user/kn0thing/) | 354,067 | 2005-06-06 | yes | 12 | 12 | Created Reddit, now doing my life's work buildi... |
| [u/GovSchwarzenegger](https://www.reddit.com/user/GovSchwarzenegger/) | 1,701,748 | 2012-11-30 | yes | 12 | 12 | My new daily health and fitness newsletter, Arn... |
| [u/thisisbillgates](https://www.reddit.com/user/thisisbillgates/) | 1,130,574 | 2012-09-18 | yes | 12 | 12 | |

<sub>$1.69 per 1,000 results on Starter ($1.79 Free, $1.59 Scale, $1.49 Business). The prefilled run (100 results: 4 profiles, 48 posts, 48 comments) costs about $0.17. No start fee. Collected 2026-10-06.</sub>

### What can you get about a Reddit user?

- **Profile**: `totalKarma`, `postKarma`, `commentKarma`, `createdAt`, `accountAgeDays`, `isVerified`, `hasVerifiedEmail`, `isMod`, `isEmployee`, `isGold`, `isSuspended`, `iconUrl`, `snoovatarImg`, `bannerUrl`, `description` (bio), `profileVisibility`, `previousNames`.
- **Posts** they submitted, newest first: title, text, subreddit, score, upvote ratio, comment count, flair, media.
- **Comments** they wrote, newest first: text, score, subreddit, the post it's under, and whether they are the post's author.
- **Any mix**: profile only (a fast karma and age check), posts only, comments only, or all three (**For each user, get**).
- **Links or names**: spez, u/spez, reddit.com/user/spez; a link to a user's /submitted/ or /comments/ page reads only that.

### Use cases

- **Account vetting**: karma, account age and verification before you trust, hire or partner with a Redditor.
- **Influencer and expert research**: what a person posts, where, and how it lands.
- **Lead qualification**: the subreddits and topics a prospect is active in.
- **Moderation and spam checks**: new accounts with odd karma, suspended accounts, sudden activity.
- **Research datasets**: a user's public post and comment history with dates and scores.

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

You pay per result in your dataset: a profile, a post or a comment, all at the same price.

| Apify plan | Price per 1,000 results |
|---|---:|
| Free | $1.79 |
| Starter | $1.69 |
| Scale | $1.59 |
| Business | $1.49 |

Each row is charged once per run. A profile-only check costs one result per user. There's no start fee, and the run stops at your spending limit.

### Input

The prefill reads 4 well-known public accounts with 12 posts and 12 comments each. To change it:

- **Users**: names or profile links, one per line.
- **For each user, get**: profile, posts, comments, or any mix.
- **Max posts and comments per user**: counted separately for posts and for comments. Reddit lists about 1,000 of each per user.
- Below the first screen: **Filters** (posted after or before a date or "30 days", minimum score, NSFW) and **Advanced** (a total cap for the run, proxy).

```json
{
  "users": ["spez", "https://www.reddit.com/user/kn0thing/comments/"],
  "userContent": ["profile", "comments"],
  "maxItemsPerSource": 200,
  "postedAfter": "90 days"
}
```

### Output

Every row goes to one dataset, where `dataType` says what it is: `user`, `post` or `comment`. Each profile is followed by that user's posts and comments. The Output tab shows a users table, a posts table, a comments table and everything together. Download as JSON, CSV, Excel or HTML, or read it through the Apify API.

A profile row from the prefilled run (shortened):

```json
{
  "dataType": "user",
  "id": "t2_1w72",
  "username": "spez",
  "totalKarma": 941002,
  "postKarma": 184509,
  "commentKarma": 756493,
  "createdAt": "2005-06-06T04:00:00Z",
  "accountAgeDays": 7792.7,
  "isVerified": true,
  "isMod": true,
  "isEmployee": true,
  "description": "Reddit CEO",
  "input": "u/spez"
}
```

**User fields** (37) are listed above. **Post fields** (101): `id`, `url`, `title`, `body`, `communityName`, `upVotes`, `upvoteRatio`, `commentsCount`, `createdAt`, `flair`, `postType`, `imageUrls`, `videoUrl` and more. **Comment fields** (61): `id`, `url`, `body`, `upVotes`, `createdAt`, `postTitle`, `postUrl`, `communityName`, `isSubmitter`, `edited` and more. A comment read from a user's history comes on its own, not inside its thread, so `depth` and `rootCommentId` are empty.

### Is it legal to scrape Reddit profiles?

The Actor reads only public Reddit profiles, posts and comments that anyone can open without an account. It never logs in. Profiles are personal data: if you store or use them, you're responsible for doing so lawfully (for example under GDPR).

### FAQ

**What about suspended or deleted accounts?** A suspended account comes as a profile row with `isSuspended` true. A name that doesn't exist is listed in the run's OUTPUT record as not found, and nothing is charged for it.

**Can I get only new activity?** Set **Posted after** to "1 day" (or a date) and schedule the run: only newer posts and comments are kept, and older ones are free.

**Is it fast?** The prefilled run (4 users, 100 rows) took about 11 seconds on Apify, the first row under a second after the start (256 MB, datacenter proxy, October 6, 2026).

**Does my Apify plan matter?** Only for very large runs. Reddit allows 100 requests per IP every 10 minutes and the run uses your plan's datacenter proxy IPs (5 on Free, more on paid plans). If they are all used up, the run waits for Reddit's window to reset and says so in its status.

### Feedback

Missing a field? Open an issue on the Actor's Issues tab; we read every one. If the data helped, a short review on the Store page helps others find it.

# Actor input Schema

## `users` (type: `array`):

Reddit usernames or profile links, one per line: spez, u/spez or reddit.com/user/spez (a link to /submitted/ or /comments/ reads only that).

## `userContent` (type: `array`):

The profile (karma, account age, verification), the user's posts, the user's comments, or any mix.

## `maxItemsPerSource` (type: `integer`):

Most posts, and most comments, per user (each counted on its own), newest first. Reddit lists about 1,000 of each.

## `postedAfter` (type: `string`):

Only posts and comments from after this date: 2026-09-01, 2026-09-01T12:00:00Z, or a period like '7 days' or '12 hours'.

## `postedBefore` (type: `string`):

Only posts and comments from before this date (same formats).

## `minScore` (type: `integer`):

Skip posts with a lower score (upvotes minus downvotes), e.g. 10. Empty = no minimum.

## `includeNSFW` (type: `boolean`):

Keep posts and communities marked 18+.

## `maxResults` (type: `integer`):

Most rows for the whole run, every profile, post and comment counted together. Empty = no total cap.

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

Leave as is: Reddit answers Apify's datacenter proxy, the cheapest option.

## Actor input object example

```json
{
  "users": [
    "spez",
    "kn0thing",
    "GovSchwarzenegger",
    "thisisbillgates"
  ],
  "userContent": [
    "profile",
    "posts",
    "comments"
  ],
  "maxItemsPerSource": 12,
  "includeNSFW": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `users` (type: `string`):

No description

## `posts` (type: `string`):

No description

## `comments` (type: `string`):

No description

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

No description

## `summary` (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 = {
    "users": [
        "spez",
        "kn0thing",
        "GovSchwarzenegger",
        "thisisbillgates"
    ],
    "maxItemsPerSource": 12
};

// Run the Actor and wait for it to finish
const run = await client.actor("deepmine/reddit-user-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 = {
    "users": [
        "spez",
        "kn0thing",
        "GovSchwarzenegger",
        "thisisbillgates",
    ],
    "maxItemsPerSource": 12,
}

# Run the Actor and wait for it to finish
run = client.actor("deepmine/reddit-user-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 '{
  "users": [
    "spez",
    "kn0thing",
    "GovSchwarzenegger",
    "thisisbillgates"
  ],
  "maxItemsPerSource": 12
}' |
apify call deepmine/reddit-user-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,deepmine/reddit-user-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/SifRLf6c1VmspMjzh/builds/OEDiB3PbZGQzFt5J2/openapi.json
