# Reddit User Profile Posts Comments Scraper (`scraperoka/reddit-user-profile-posts-comments-scraper`) Actor

🧾 Reddit User Profile Posts & Comments Scraper extracts usernames, bios, posts, and comment threads for research, lead gen, and sentiment analysis. ⚡ Fast, reliable, and export-ready—ideal for market insights, community studies, and competitive intel. 🚀

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

## Pricing

from $1.99 / 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

### Reddit User Profile Posts & Comments Scraper 🎯 — Bulk Extract Activity from Any Reddit Username

Manually visiting individual Reddit profiles to review posts and comments wastes hours you don’t have. **Reddit User Profile Posts & Comments Scraper** automatically pulls a user’s activity into a structured dataset so you can analyze it or export it for outreach. This Reddit user post scraper and reddit user comment scraper is ideal for marketers, recruiters, and growth teams who need thousands of records in minutes.

---

### What You Get: Sample Output

Here’s a sample record from a single run:

```json
{
  "type": "post",
  "subreddit": "programming",
  "author": "example_user",
  "title": "Show HN: My new tool for scraping public web data",
  "body": "",
  "score": 312,
  "num_comments": 58,
  "url": "https://www.reddit.com/r/programming/comments/abc123/show_hn_my_new_tool/",
  "created_utc": 1719825600
}
````

| Field | Type | What It Tells You |
|---|---|---|
| `type` | string | Whether the item is a Reddit `post` or `comment` so you can segment analysis quickly |
| `subreddit` | string | The community where the activity happened (useful for audience and interest mapping) |
| `author` | string | The Reddit account that created the post or comment |
| `title` | string | The post title (blank when the item is a comment) |
| `body` | string | The post/comment text content you can use for content analysis and tagging |
| `score` | number | Engagement signal you can rank or filter by |
| `num_comments` | number | Discussion size for posts (comments are returned with their own content context) |
| `url` | string | A direct link back to the Reddit item for verification or citation |
| `created_utc` | number | Timestamp (in UTC seconds) for timeline analysis |
| `error_message` | string | Error details when a run encounters an issue (if produced by your run) |

Export your dataset as JSON, CSV, or Excel — straight from the Apify dashboard.

***

### Why Reddit User Profile Posts & Comments Scraper?

There are a lot of ways to pull data from Reddit — here’s what sets Reddit User Profile Posts & Comments Scraper apart.

#### Profile-wide activity collection

Instead of handling one thread at a time, this reddit profile scraper posts comments workflow starts from Reddit user profile URLs and gathers their posts and nested replies into one dataset.

#### Structured output that’s analysis-ready

The actor writes consistent records with fields like `type`, `subreddit`, `author`, `title`, `body`, `score`, `num_comments`, `url`, and `created_utc`, which makes downstream work (clustering, sentiment, topic tagging) straightforward.

#### Resilient, production-friendly runs

Built-in retries and fallbacks help keep your run going even when some requests fail, so you can still collect partial results rather than starting over from scratch.

#### Clear pagination controls

You can cap how many pages (`maxPages`) and how many total items (`maxItems`) to retrieve per run, which is great for testing and for predictable data volumes when you scale.

***

### Configuring Your Run

Drop this into your `input.json` to get started:

```json
{
  "startUrls": [
    { "url": "https://www.reddit.com/user/redditusername123/" }
  ]
}
```

| Parameter | Required | What It Does |
|---|---:|---|
| `startUrls` | ✅ | List of Reddit user profile URLs to scrape posts and comments from |

***

### Core Capabilities

#### Scrape posts and nested replies from user profiles

Reddit User Profile Posts & Comments Scraper focuses on user activity by collecting both posts and comments (including nested replies) into one structured stream, perfect for a reddit profile activity downloader workflow.

#### Input-flexible: give it profile URLs

You provide a list of Reddit user profile URLs, and the actor handles the rest—this makes it easy to run the reddit user activity scraper for single users or bulk username batches.

#### Resilient fetching for consistent datasets

The actor includes retries and resilience so you get more complete output across runs, even when some items can’t be retrieved reliably.

#### Comprehensive fields for analytics and reporting

Every record includes key context for analysis—`subreddit`, `author`, `title`, `body`, engagement signals like `score` and `num_comments`, and timing via `created_utc`.

#### Dataset-first output for fast export

Results are pushed into your Apify dataset as they’re collected, so you can export from the dataset tab without extra ETL work—ideal for reddit user posts comments bulk scraper use cases.

***

### Who Gets the Most Out of This

Here’s how different teams put Reddit User Profile Posts & Comments Scraper to work:

**Growth and community strategists** use the reddit profile posts and comments extractor to map what a target community member actually discusses over time, then turn that activity into a prioritized interest list.

**Recruiters and hiring managers** can use this reddit profile scraper posts comments to understand a candidate’s technical background and communication style by reviewing posts and comment history in one place.

**Data analysts and researchers** rely on the structured fields (`type`, `subreddit`, `body`, `created_utc`, etc.) to run topic modeling or engagement analytics without manually copying data from threads.

**Outreach and marketing teams** can build a consistent dataset for segmentation and personalization—using the reddit username posts comments tool to quickly gather relevant activity for lead research.

**Developers and automation specialists** can integrate the reddit user activity scraper into a larger pipeline, scheduling periodic runs to keep datasets fresh while downstream systems handle the interpretation.

***

### Step-by-Step: How to Use It

No coding needed. Here's how to run Reddit User Profile Posts & Comments Scraper from start to finish:

1. **Open the actor on Apify** — go to [console.apify.com](https://console.apify.com) and find the actor listing.
2. **Enter your inputs** — add your Reddit user profile URLs in `startUrls`.
3. **Configure proxy settings** — use the Apify-provided proxy options for best reliability on larger batches.
4. **Hit Run and watch the live log** — confirm progress and see whether any pages fail and are skipped.
5. **View results in the dataset tab** — inspect the table view with fields like `type`, `subreddit`, `author`, `title`, `body`, `score`, `num_comments`, `url`, and `created_utc`.
6. **Export as JSON, CSV, or Excel** — download your dataset directly from Apify for analysis or import into tools.

The whole process takes under 5 minutes to set up.

***

### Integrations & Export Options

Once your data is collected, Reddit User Profile Posts & Comments Scraper plugs directly into your existing workflow.

Export formats are available directly from the Apify dataset tab: JSON, CSV, or Excel.

You can also connect the actor to automation and data pipelines using Apify’s ecosystem tools and APIs—such as running on a schedule, pushing results to downstream systems via webhooks, and integrating with tools through no-code automation platforms like Zapier or Make. For API details, refer to [apify.com/docs/api](https://apify.com/docs/api).

***

### Pricing & Free Trial

Reddit User Profile Posts & Comments Scraper runs on the Apify platform, which offers a **free tier** — no credit card required to get started. You’ll typically pay via Apify platform compute, and you can start small with test runs using the run caps. For the most accurate credit and pricing info, check the current Apify pricing page before you scale.

Start for free at [apify.com](https://apify.com) and scale when you’re ready.

***

### Reliability & Performance

| What We Handle | How |
|---|---|
| Rate-limit style failures | The run includes resilience so temporary problems don’t fully stop data collection |
| Unreliable requests | Retries and fallbacks help keep collection moving |
| Data freshness per run | Each run pulls the current publicly available activity for the provided profiles |
| Partial failures | If some requests fail, you still keep any data already pushed into the dataset |
| Scaling across usernames | Control total volume using `maxPages` and `maxItems` (via actor input when provided) |

**Limitations:** This actor works on publicly accessible Reddit content and can’t access login-gated or private material. If a profile has little activity or content that isn’t retrievable in your run, you’ll get fewer results accordingly.

For enterprise-scale runs, contact us to discuss custom configurations.

***

### Frequently Asked Questions

#### Is there a free plan or trial?

Yes—Apify offers a free tier with credits for trying actors. You can use smaller test inputs (fewer `startUrls`) to validate the results format before scaling.

#### Do I need to log in to Reddit to use this?

No for the user running the actor—you provide profile URLs via `startUrls`. The actor uses a session-cookie-based approach internally, so you don’t have to manage cookies yourself.

#### How accurate is the data?

The actor returns structured data fields for each collected post/comment, including `url` and `created_utc` for verification. Accuracy depends on what’s publicly available for the targeted Reddit profiles at scrape time.

#### How many results can I get per run?

You can cap volume with actor run limits such as `maxPages` and `maxItems` (when you provide them in the run input). This lets you balance coverage versus speed for reddit user posts comments bulk scraper workflows.

#### How often is the data updated / how fresh is it?

Data freshness matches the moment you run the actor. If you want ongoing updates, schedule repeated runs and append or compare outputs over time.

#### Is this legal? Does it comply with GDPR / CCPA?

This actor collects **publicly available data**, but whether it’s appropriate for your use case is your responsibility. Ensure your workflow complies with GDPR, CCPA, platform Terms of Service, and any applicable local regulations.

#### Can I export results to Google Sheets or Excel?

Yes. You can export your Apify dataset as JSON, CSV, or Excel from the dataset tab, then import into Google Sheets or your preferred spreadsheet tool.

#### Can I run this on a schedule automatically?

Yes. You can schedule actor runs using Apify’s scheduling capabilities so you automatically refresh data on a recurring cadence.

#### Can I access this via API?

Yes. You can trigger runs and retrieve results programmatically using the Apify API—see [apify.com/docs/api](https://apify.com/docs/api).

#### What happens if the actor hits an error?

The actor is designed to keep runs from failing completely when partial data can be collected. If something goes wrong mid-run, you may still have items already pushed to your dataset.

***

### Need Help or Have a Request?

Got a question about Reddit User Profile Posts & Comments Scraper or want a new feature added? Reach out at <dataforleads@gmail.com>. We’re happy to help with setup questions and welcome feature requests like batch CSV upload of usernames and webhook notifications when a run completes. We actively maintain and improve this actor based on user feedback.

***

### Disclaimer & Responsible Use

*Reddit User Profile Posts & Comments Scraper is the fastest, most reliable way to build structured Reddit activity datasets — start your free run today.*

This actor collects **publicly available data** from Reddit and does not access private accounts, login-gated content, or password-protected pages. It’s your responsibility to ensure your use and storage of the collected data complies with GDPR, CCPA, and platform Terms of Service. For data removal requests, contact <dataforleads@gmail.com>. Use responsibly, ethically, and only for lawful purposes.

# Actor input Schema

## `startUrls` (type: `array`):

List of Reddit user profile URLs to scrape posts & comments from. Example: https://www.reddit.com/user/redditusername123/

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.reddit.com/user/redditusername123/"
    }
  ]
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.reddit.com/user/redditusername123/"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperoka/reddit-user-profile-posts-comments-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 = { "startUrls": [{ "url": "https://www.reddit.com/user/redditusername123/" }] }

# Run the Actor and wait for it to finish
run = client.actor("scraperoka/reddit-user-profile-posts-comments-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 '{
  "startUrls": [
    {
      "url": "https://www.reddit.com/user/redditusername123/"
    }
  ]
}' |
apify call scraperoka/reddit-user-profile-posts-comments-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Reddit User Profile Posts Comments Scraper",
        "description": "🧾 Reddit User Profile Posts & Comments Scraper extracts usernames, bios, posts, and comment threads for research, lead gen, and sentiment analysis. ⚡ Fast, reliable, and export-ready—ideal for market insights, community studies, and competitive intel. 🚀",
        "version": "0.1",
        "x-build-id": "1ajYFZWXxiZ65QHQe"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraperoka~reddit-user-profile-posts-comments-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraperoka-reddit-user-profile-posts-comments-scraper",
                "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/scraperoka~reddit-user-profile-posts-comments-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraperoka-reddit-user-profile-posts-comments-scraper",
                "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/scraperoka~reddit-user-profile-posts-comments-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraperoka-reddit-user-profile-posts-comments-scraper",
                "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",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "List of Reddit user profile URLs to scrape posts & comments from. Example: https://www.reddit.com/user/redditusername123/",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
