# Reddit User Post Scraper (`igview-owner/reddit-user-data-scraper`) Actor

Extract Reddit user posts and comments with complete data! Get titles, content, scores, upvotes, media URLs, engagement metrics, subreddit info, timestamps, and more. Perfect for social media analysis, user research, content strategy.

- **URL**: https://apify.com/igview-owner/reddit-user-data-scraper.md
- **Developed by:** [Sachin Kumar Yadav](https://apify.com/igview-owner) (community)
- **Categories:** Social media, Automation, Developer tools
- **Features:** Limited permissions
- **Stats:** 62 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $5.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.
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

## Reddit User Post Scraper

Extract **comprehensive Reddit user data** including posts and comments with full engagement metrics, media URLs, subreddit information, and timestamps. Get clean, structured data ready for social media analysis, content research, and user behavior insights.

This actor is built for:

- 📊 Social media analytics & monitoring
- 🔍 User behavior research & analysis
- 📈 Content performance tracking
- 💬 Community engagement analysis
- 🎯 Influencer & creator research
- 📝 Market research & trend analysis

***

### 📌 Table of Contents

- [✨ Features](#-features)
- [🎯 Use Cases](#-use-cases)
- [⚡ Quick Start](#-quick-start)
- [🧾 Input Parameters](#-input-parameters)
- [📤 Output Data](#-output-data)
- [🧩 Dataset Views (Table View)](#-dataset-views-table-view)
- [💡 Tips & Best Practices](#-tips--best-practices)
- [❓ FAQ](#-faq)
- [🔎 SEO Keywords](#-seo-keywords)

***

### ✨ Features

- **Complete user activity extraction**
  - Fetch all posts and comments from any Reddit user
- **📊 Rich engagement metrics**
  - Scores, upvotes, downvotes, comments count, awards, gilded status
- **🎥 Media content support**
  - Video URLs, thumbnails, audio detection, duration, image links
- **🏷️ Subreddit insights**
  - Subreddit names, subscriber counts, flair text, community info
- **🔄 Multiple sorting options**
  - Hot, New, Top, Relevance, Comments - choose how to sort results
- **Pagination support**
  - Automatically fetches multiple pages for complete user history
- **🧼 Clean structured dataset**
  - Ready for analytics dashboards, spreadsheets, or automation workflows
- **⚡ Fast & reliable**
  - Optimized API calls with retry logic and error handling

***

### 🎯 Use Cases

| Use Case | What you can do | Why it helps |
|---|---|---|
| Social media analytics | Track user posting patterns & engagement | Understand content performance trends |
| 🔍 User research | Analyze user behavior & interests | Build user personas & audience insights |
| 📈 Content strategy | Study successful posts & topics | Create data-driven content plans |
| 💬 Community analysis | Monitor subreddit participation | Identify active communities & topics |
| 🎯 Influencer research | Evaluate Reddit influencers & creators | Find collaboration opportunities |
| 📝 Market research | Track discussions & sentiment | Discover market trends & customer pain points |
| 🏆 Competitor analysis | Monitor competitor Reddit activity | Stay ahead of industry conversations |
| 📚 Academic research | Collect Reddit data for studies | Analyze social media behavior patterns |

***

### ⚡ Quick Start

#### Basic run

Use this input to scrape a Reddit user:

```json
{
  "username": "IndianByBrain",
  "sortType": "hot",
  "maxResults": 50
}
```

#### Advanced example

```json
{
  "username": "Massive_Net1022",
  "sortType": "top",
  "maxResults": 200
}
```

#### Tips for better results

- **Username**: Enter without the `u/` prefix (e.g., `IndianByBrain` not `u/IndianByBrain`)
- **Sort Type**: Use `hot` for trending content, `new` for recent, `top` for highest rated
- **Max Results**: Start with 25-50 to test, then increase up to 1000 for comprehensive data
- **Pagination**: The actor automatically handles pagination to fetch all requested results

***

### 🧾 Input Parameters

| Parameter | Type | Required | Default | Description |
|---|---:|:---:|---:|---|
| `username` | String | ✅ | `IndianByBrain` | Reddit username (without u/ prefix) |
| `sortType` | String | ❌ | `hot` | Sort method: `hot`, `new`, `top`, `relevance`, `comments` |
| `maxResults` | Number | ❌ | `25` | Maximum posts/comments to extract (25-1000) |

#### Sort Type Options

| Sort Type | Description | Best For |
|---|---|---|
| 🔥 `hot` | Trending content | Current popular posts |
| 🆕 `new` | Most recent first | Latest user activity |
| ⭐ `top` | Highest rated | Best performing content |
| 🎯 `relevance` | Most relevant | Balanced results |
| 💬 `comments` | Comment-focused | User discussions |

***

### 📤 Output Data

Each dataset item represents **one post or comment** from the Reddit user.

#### 🧾 Output fields overview

| Category | Fields |
|---|---|
| 👤 **Basic Info** | `type`, `id`, `author`, `title`, `body`, `selftext` |
| 🏷️ **Subreddit** | `subreddit`, `subredditNamePrefixed`, `subredditSubscribers`, `linkFlairText` |
| ⭐ **Engagement** | `score`, `ups`, `downs`, `upvoteRatio`, `numComments`, `numCrossposts` |
| 🏆 **Awards** | `gilded`, `totalAwardsReceived` |
| 🎥 **Media** | `isVideo`, `mediaUrl`, `mediaHasAudio`, `mediaDuration`, `thumbnail`, `url` |
| 🕐 **Timestamps** | `created`, `createdUtc` |
| 🔗 **Links** | `permalink`, `url`, `domain` |
| 🏷️ **Metadata** | `postHint`, `over18`, `spoiler`, `locked`, `stickied`, `archived`, `edited` |

#### Sample output (Post)

```json
{
  "type": "post",
  "id": "1ppj15u",
  "title": "Zyada Kuch Nai, That feeling when they choose your lap!",
  "author": "IndianByBrain",
  "subreddit": "ZyadaKuchNai",
  "subredditNamePrefixed": "r/ZyadaKuchNai",
  "subredditSubscribers": 127302,
  "score": 2305,
  "ups": 2305,
  "upvoteRatio": 0.98,
  "numComments": 20,
  "isVideo": true,
  "mediaUrl": "https://v.redd.it/3m3k08ahgw7g1/CMAF_720.mp4",
  "createdUtc": 1766036252,
  "permalink": "/r/ZyadaKuchNai/comments/1ppj15u/...",
  "linkFlairText": "💖 Heartwarming"
}
```

#### Sample output (Comment)

```json
{
  "type": "comment",
  "id": "nundcei",
  "body": "🥺❤️",
  "author": "IndianByBrain",
  "subreddit": "ZyadaKuchNai",
  "score": 5,
  "ups": 5,
  "linkTitle": "Zyada Kuch Nai, That feeling when they choose your lap!",
  "createdUtc": 1766040775,
  "permalink": "/r/ZyadaKuchNai/comments/1ppj15u/.../nundcei/"
}
```

***

### 🧩 Dataset Views (Table View)

This actor includes **5 clean, organized dataset table views** for easy data analysis:

#### 📊 Posts & Comments Overview

- Complete overview with type, title/content, author, subreddit, score, comments, timestamps
- **Best for**: Quick overview of all user activity

#### 📰 Posts Only

- Filtered view showing only posts with title, subreddit, score, upvotes, upvote ratio, URL, video status
- **Best for**: Analyzing post performance

#### 📈 Engagement Metrics

- Focused on engagement data: scores, upvotes, downvotes, comments, gilded, awards
- **Best for**: Understanding content performance & popularity

#### 🎥 Media & Content

- Media-specific data: video status, media URLs, audio, duration, thumbnails, domains
- **Best for**: Analyzing multimedia content

#### 🏷️ Subreddit Breakdown

- Organized by subreddit with subscriber counts, content, scores, flair information
- **Best for**: Community participation analysis

***

### 💡 Tips & Best Practices

#### ✅ Do's

- ✅ **Start small**: Test with 25-50 results first to verify data quality
- ✅ **Use appropriate sorting**: Choose `hot` for trending, `top` for best content, `new` for recent
- ✅ **Check username**: Ensure the username is correct (case-sensitive)
- ✅ **Export data**: Download results in JSON, CSV, or Excel for analysis

#### ❌ Don'ts

- ❌ **Don't include u/ prefix**: Use `IndianByBrain` not `u/IndianByBrain`
- ❌ **Don't set maxResults too high initially**: Start with smaller values
- ❌ **Don't scrape deleted users**: Deleted or suspended accounts won't return data
- ❌ **Don't ignore rate limits**: Excessive requests may be throttled

***

### ❓ FAQ

#### **Q1: Why am I getting 0 results?**

Possible reasons:

- The username is incorrect or doesn't exist
- The user has no posts/comments
- The user account is deleted or suspended
- Check that you're not including the `u/` prefix

**Solution**: Verify the username on Reddit first, ensure it's spelled correctly.

#### **Q2: What's the difference between posts and comments?**

- **Posts**: Original submissions to subreddits (have `title`, `url`, `selftext`)
- **Comments**: Replies to posts or other comments (have `body`, `linkTitle`)

The `type` field indicates whether it's a `post` or `comment`.

#### **Q3: Can I scrape multiple users at once?**

No, each run scrapes one user. For multiple users:

- Run the actor multiple times (once per user)
- Use Apify's scheduling or API to automate multiple runs

#### **Q4: How does pagination work?**

The actor automatically handles pagination using cursor-based navigation. It will fetch multiple pages until:

- The `maxResults` limit is reached
- No more posts/comments are available

#### **Q5: What sorting option should I use?**

| Goal | Recommended Sort |
|---|---|
| Latest activity | `new` |
| Best performing content | `top` |
| Currently trending | `hot` |
| Balanced results | `relevance` |
| User discussions | `comments` |

#### **Q6: Are video URLs direct download links?**

Yes, the `mediaUrl` field contains direct video URLs (usually `.mp4` format) that can be downloaded or embedded.

#### **Q7: What does `upvoteRatio` mean?**

It's the percentage of upvotes vs total votes (upvotes + downvotes). For example:

- `0.98` = 98% upvoted (very positive)
- `0.50` = 50% upvoted (controversial)

#### **Q8: Can I filter by subreddit?**

The actor fetches all user activity. To filter by subreddit:

- Use the dataset views (especially "Subreddit Breakdown")
- Export data and filter in Excel/spreadsheet
- Use Apify's dataset API with filters

#### **Q9: How often can I run this actor?**

You can run it as often as needed, but be mindful of:

- Apify platform limits (based on your plan)
- API rate limits (the actor handles retries automatically)

#### **Q10: What if a user has thousands of posts?**

Set `maxResults` to your desired limit (up to 1000). The actor will:

- Fetch posts in batches
- Stop when the limit is reached
- Save all data to the dataset

***

### 🔎 SEO Keywords

Reddit scraper, Reddit user scraper, Reddit post scraper, Reddit comment scraper, Reddit data extraction, Reddit API scraper, social media scraper, Reddit analytics, Reddit user data, Reddit post data, user activity scraper, Reddit engagement metrics, Reddit content scraper, subreddit scraper, Reddit video downloader, Reddit media scraper, Reddit research tool, social media analytics, Reddit monitoring, Reddit data mining, Reddit user analysis, Reddit sentiment analysis, Reddit trend analysis, Apify Reddit actor, Reddit automation, Reddit data collection, Reddit web scraping, Reddit user posts, Reddit comments extraction, Reddit API tool, social listening tool, Reddit insights, community analysis tool, Reddit marketing tool, influencer research Reddit, Reddit competitor analysis.

***

### 🚀 **Get Started Now**

**Ready to download Reddit User Data?**

1. Click ["Try for free"](https://apify.com?fpr=ykgg9c) to open the actor
2. Enter the **Usernames** in the input field
3. Run the actor and download all profile data from the dataset
4. Use the built-in table views to browse profile data

**⭐ If this actor helps your workflow, please give it a star!**

***

### 🔗 Related Scrapers

- **[Reddit Search Scraper](https://apify.com/igview-owner/reddit-search-scraper)**
- **[Reddit Comments Scraper](https://apify.com/igview-owner/reddit-comments-scraper)**
- **[Reddit Search Post](https://apify.com/igview-owner/reddit-post-viewer)**

*Built with ❤️ by Sachin Kumar Yadav using Apify Platform*

# Actor input Schema

## `username` (type: `string`):

Enter the Reddit username (without u/ prefix). Examples: 'IndianByBrain', 'Massive_Net1022', 'spez'. The scraper will fetch all posts and comments from this user.

## `sortType` (type: `string`):

Choose how to sort the user's posts and comments. Options: 'hot' (trending content), 'new' (most recent), 'top' (highest rated), 'relevance' (most relevant). Default: 'hot'.

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

Maximum number of posts and comments to extract. The scraper will fetch up to this many items from the user's profile. Set a reasonable limit based on your needs.

## Actor input object example

```json
{
  "username": "IndianByBrain",
  "sortType": "hot",
  "maxResults": 25
}
```

# Actor output Schema

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

Open the dataset view with an overview of all posts and comments including type, content, author, subreddit, score, and timestamps.

## `postsOnly` (type: `string`):

Open the dataset view filtered to show only posts with title, subreddit, score, upvotes, upvote ratio, comments count, and URLs.

## `engagementMetrics` (type: `string`):

Open the dataset view focused on engagement data including scores, upvotes, downvotes, comments, gilded count, and awards received.

## `mediaContent` (type: `string`):

Open the dataset view showing media-related data including video status, media URLs, audio presence, duration, thumbnails, and domains.

## `subredditAnalysis` (type: `string`):

Open the dataset view organized by subreddit with subscriber counts, content, scores, comments, and flair information.

# 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 = {
    "username": "IndianByBrain",
    "sortType": "hot",
    "maxResults": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("igview-owner/reddit-user-data-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 = {
    "username": "IndianByBrain",
    "sortType": "hot",
    "maxResults": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("igview-owner/reddit-user-data-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 '{
  "username": "IndianByBrain",
  "sortType": "hot",
  "maxResults": 25
}' |
apify call igview-owner/reddit-user-data-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,igview-owner/reddit-user-data-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/6HxGTifZKr5eIvtXL/builds/Pk8hhc8RSRCSG9ggS/openapi.json
