# Reddit Users V2 — Profiles, Trophies, Posts & Comments (9) (`red_crawler/reddit-users-v2`) Actor

FREE — Look up any Reddit user: profile, profile info (karma, social links, verification status), profile-as-subreddit details, trophies, posts, comments and pinned posts — plus username validation. 9 endpoints, all anonymous: no Reddit account, token or proxy required.

- **URL**: https://apify.com/red_crawler/reddit-users-v2.md
- **Developed by:** [Red Crawler](https://apify.com/red_crawler) (community)
- **Categories:** Automation, Lead generation, Social media
- **Features:** Limited permissions
- **Stats:** 63 total users, 31 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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 Users V2

![Endpoints](https://img.shields.io/badge/endpoints-9-blue) ![Auth](https://img.shields.io/badge/Reddit_account-not_required-brightgreen) ![Proxy](https://img.shields.io/badge/proxy-not_required-brightgreen) ![Price](https://img.shields.io/badge/price-FREE-brightgreen)

> **This actor is free.** There is no per-result fee. You only pay Apify's normal platform usage (the compute time of your run), and Apify's free plan gives you $5 of usage credit every month.

Nine self-contained user-lookup endpoints — full profile, profile-page info, profile-as-subreddit settings, trophies (two shapes), post history, comment history, pinned posts and username validation.

**Every endpoint is anonymous.** No Reddit account, no token, no proxy, no cookies — nothing to set up or refresh. Paste a username and run.

Pick an endpoint, fill the matching section, hit Start.

***

### What you can fetch

Every "by name" / target-username field accepts a username in any of these formats — paste whichever you have:

- raw username — `spez`
- prefixed — `u/spez`
- profile URL — `https://www.reddit.com/user/spez`
- old-Reddit URL — `https://old.reddit.com/u/spez`

#### 1. Profile by Name — full Redditor identity

The richest user record. Pulls everything Reddit exposes for an account on the profile page header.

**Returns:** Reddit ID, username, prefixed name (`u/...`), account creation date, total karma split into post / comment / award / awardee karma, contribution counts, snoovatar, profile icon, banner, public description, social links, employment / location info, accepted-DMs flag, accepted-chats flag, accepted-followers flag, isFollowed, NSFW flag, isModerator flag, isEmployee flag, premium status (Reddit Gold), trophy-case totals, verification flags.

**Use it when:** you need a complete profile picture in a single call — bios, audience-research dashboards, account-quality scoring, KYC-style background checks.

**Example**

**Input**

```json
{
  "endpoint": "profile",
  "profile_username": "spez"
}
```

**Output** *(one dataset record)*

```json
{
  "endpoint": "profile",
  "__typename": "Redditor",
  "id": "t2_1w72",
  "name": "spez",
  "prefixedName": "u/spez",
  "accountType": "USER",
  "isEmployee": true,
  "isFriend": false,
  "isBlocked": false,
  "isAcceptingChats": false,
  "isAcceptingFollowers": true,
  "isAcceptingPMs": false,
  "profile": {
    "createdAt": "2005-06-06T04:00:00.000000+0000",
    "title": "spez",
    "publicDescriptionText": "Reddit CEO",
    "path": "/user/spez/",
    "isNsfw": false,
    "isContributor": false,
    "isSubscribed": false
  }
}
```

#### 2. Profile Info by Name — karma + profile-page info

A focused subset oriented around the public profile *page* rather than the full identity. Slightly different field set from "Profile by Name".

**Returns:** banner image, public description, NSFW flag, social links, total karma, contribution stats (post + comment count), trophy-case total, account type, plus an `attributes` block carrying **`verificationStatus`** — the cheapest way to tell what kind of account you are looking at:

| `verificationStatus` | Meaning | Examples |
|---|---|---|
| `APP` | Bot / app account | `AutoModerator`, `RemindMeBot` |
| `PROFILE_VERIFIED` | Verified profile | `spez`, `reddit` |
| `NONE` | Regular user | most accounts |

`attributes` also carries `redditorType` and `redditHandleInfo` (display name + prefixed username). Reddit admins are flagged separately by the top-level `isEmployee` field.

**Use it when:** you need the public-facing profile-page payload (banner, bio, link list, totals), or you want to filter bots and app accounts out of a list of usernames.

**Example**

**Input**

```json
{
  "endpoint": "profile_about",
  "profile_about_username": "spez"
}
```

**Output** *(one dataset record)*

```json
{
  "endpoint": "profile_about",
  "__typename": "Redditor",
  "id": "t2_1w72",
  "name": "spez",
  "prefixedName": "u/spez",
  "attributes": {
    "redditHandleInfo": {
      "displayName": "spez",
      "prefixedUsername": "u/spez",
      "username": "spez"
    },
    "redditorType": "USER",
    "verificationStatus": "PROFILE_VERIFIED"
  },
  "accountType": "USER",
  "isEmployee": true,
  "isAcceptingChats": false,
  "isAcceptingFollowers": true,
  "karma": { "total": 940980 },
  "contributionStats": { "postCount": 845, "commentCount": 3209 },
  "trophyCase": { "totalUnlocked": 52 },
  "icon": {
    "url": "https://styles.redditmedia.com/t5_3k30p/styles/profileIcon_uj015iwx9s7g1.png?frame=1&auto=webp&crop=256%3A256%2Csmart&s=…"
  },
  "profileInfo": {
    "__typename": "Profile",
    "id": "t5_3k30p",
    "createdAt": "2005-06-06T04:00:00.000000+0000",
    "title": "spez",
    "publicDescriptionText": "Reddit CEO",
    "isNsfw": false,
    "socialLinks": []
  },
  "isGilded": true
}
```

#### 3. Profile Details by Name — profile-as-subreddit settings

Every Reddit profile is technically also a subreddit (`u_spez`). This endpoint returns those subreddit-style settings.

**Returns:** post permissions (who can post on the user's profile), flair settings, mod permissions, contributor / subscriber status, whitelist status, NSFW flag, the user's authorFlair (their flair on their *own* profile).

**Use it when:** you need to know whether a profile accepts posts from others, how it's flaired, or its contributor / whitelist state — typical for moderation, anti-spam, or community-mapping work.

**Example**

**Input**

```json
{
  "endpoint": "profile_details",
  "profile_details_username": "spez"
}
```

**Output** *(one dataset record)*

```json
{
  "endpoint": "profile_details",
  "__typename": "Profile",
  "id": "t5_3k30p",
  "name": "u_spez",
  "title": "spez",
  "publicDescriptionText": "Reddit CEO",
  "subscribersCount": 0,
  "createdAt": "2005-06-06T04:00:00.000000+0000",
  "path": "/user/spez/",
  "isNsfw": false,
  "isQuarantined": false,
  "whitelistStatus": "NO_ADS",
  "allowedPostTypes": [],
  "isSpoilerAvailable": true,
  "isCrosspostingAllowed": true,
  "redditorInfo": {
    "__typename": "Redditor",
    "prefixedName": "u/spez",
    "attributes": {
      "redditHandleInfo": { "displayName": "spez", "username": "spez" },
      "redditorType": "USER",
      "verificationStatus": "PROFILE_VERIFIED"
    }
  }
}
```

#### 4. User Trophies by Name — categorized trophy case (public)

Returns the user's trophy case **grouped by category** (e.g., "Cake Day", "Gilding", "Verified Email", "Years of Service").

**Returns:** category groupings with each trophy's name, description, icon URL (size configurable, 16–1024 px), granted-at timestamp, trophy ID.

**Note:** Only returns data if the user opted into a **public** trophy case. Many users have it private — the response will be empty for those. If you need trophies regardless of the public flag, use **Profile Trophies** below.

**Use it when:** you want the user's trophy case the way Reddit displays it on the profile sidebar, organized by section.

**Example**

**Input**

```json
{
  "endpoint": "trophies_public",
  "trophies_public_username": "spez",
  "trophies_public_image_max_width": 128
}
```

**Output** *(one dataset record per trophy — sample of the first row)*

```json
{
  "endpoint": "trophies_public",
  "__typename": "AchievementRepeatableImageTrophy",
  "id": "frequent-contributor",
  "name": "Repeat Contributor",
  "category": "AchievementTrophyCategory",
  "image": {
    "url": "https://preview.redd.it/6w4yuzzgfavc1.png?width=128&height=128&auto=webp&s=…"
  },
  "numUnlocked": 1
}
```

#### 5. Profile Trophies by Name — flat trophy list

Same trophy data as above, but flat (no category grouping) and works on most accounts.

**Returns:** array of trophies with description, icon URL, grantedAt, name, trophyId, awardId.

**Use it when:** you want a clean list of trophies for analytics, or you need data even if the user's trophy case isn't public.

**Example**

**Input**

```json
{
  "endpoint": "profile_trophies",
  "profile_trophies_username": "spez"
}
```

**Output** *(one dataset record per trophy — sample of the first row)*

```json
{
  "endpoint": "profile_trophies",
  "trophyId": null,
  "name": "20-Year Club",
  "description": null,
  "grantedAt": "2025-06-06T00:00:00.000000+0000",
  "icon70Url": "https://i.redd.it/cms/871b9df322b7cddd_trophy_image_for_20_year_club.png",
  "url": null,
  "awardId": null
}
```

#### 6. Profile Posts by Name — submitted-post feed

Paginates the user's submitted posts.

**Inputs:**

- **Sort** — `new`, `hot`, `top`, `controversial`
- **Time filter** — `hour`, `day`, `week`, `month`, `year`, `all` (only applies when sort is `top` or `controversial` — ignored otherwise)
- **Limit** — 1 to 500

**Returns:** post records with title, body / selftext, score, comment count, created timestamp, subreddit, post URL, thumbnail, vote state, NSFW / spoiler / locked / stickied / archived flags, flair, media, author info — one dataset row per post.

**Use it when:** building user-content dashboards, scraping a creator's posting history, training models on author-tagged Reddit content, influence / engagement analysis.

**Example**

**Input**

```json
{
  "endpoint": "user_posts",
  "user_posts_username": "spez",
  "user_posts_sort": "new",
  "user_posts_time_filter": "all",
  "user_posts_limit": 3
}
```

**Output** *(one dataset record per post — sample of the first row, flattened)*

```json
{
  "endpoint": "user_posts",
  "__typename": "CellGroup",
  "id": "t3_1t4nr7v",
  "name": "t3_1t4nr7v",
  "title": "Reddit looked old the day it was born. I joined my friend D. Scott Phoenix on the Progress podcast to discuss communities, AI, and what makes the internet feel human.",
  "authorName": "u/spez",
  "score": 47,
  "commentCount": 35,
  "createdAt": "2026-05-05T18:19:02.142000+0000",
  "voteState": "NONE",
  "shareCount": 50,
  "isScoreHidden": false,
  "isModeratable": false,
  "isVisited": false,
  "detailsString": "u/spez",
  "detailsLink": "spez",
  "iconPath": "https://styles.redditmedia.com/t5_3k30p/styles/profileIcon_uj015iwx9s7g1.png?width=64&height=64&…"
}
```

#### 7. Profile Comments by Name — comment history

Paginates the user's comments.

**Inputs:** same controls as Profile Posts — sort, time filter, limit (1–500).

**Returns:** comment records with body, score, created timestamp, parent post info, parent comment ID, subreddit, OP flag, score-hidden flag, author info — one row per comment.

**Use it when:** sentiment analysis, conversation mining, comment-history audit, finding what subreddits a user is active in.

**Example**

**Input**

```json
{
  "endpoint": "user_comments",
  "user_comments_username": "spez",
  "user_comments_sort": "new",
  "user_comments_time_filter": "all",
  "user_comments_limit": 3
}
```

**Output** *(one dataset record per comment — sample of the first row)*

```json
{
  "endpoint": "user_comments",
  "__typename": "Comment",
  "id": "t1_okpklb6",
  "createdAt": "2026-05-08T20:48:30.912000+0000",
  "score": 24,
  "voteState": "NONE",
  "content": {
    "preview": "Ding ding ding"
  },
  "postInfo": {
    "__typename": "SubredditPost",
    "id": "t3_1t7d1gy",
    "title": "Please Fire Vollero for Buyback Mismanagement",
    "subreddit": { "prefixedName": "r/redditstock" }
  }
}
```

#### 8. Profile Pinned Posts — IDs pinned to profile

Returns the post IDs the user has pinned to the top of their profile (the "sticky" section on the profile page).

**Returns:** list of post IDs (Reddit `t3_` fullnames).

**Note:** Most users have **zero** pinned posts. An empty list is the normal result unless the user explicitly pinned something.

**Use it when:** featured-content discovery — pinned posts are usually the user's best work or active campaigns.

**Example**

**Input**

```json
{
  "endpoint": "pinned_posts",
  "pinned_posts_username": "spez"
}
```

**Output** *(one dataset record — `spez` has zero pinned posts, so the actor pushes a "no pinned posts" marker)*

```json
{
  "endpoint": "pinned_posts",
  "username": "spez",
  "pinned_post_count": 0,
  "note": "User has no pinned/sticky posts on their profile."
}
```

When the target user *does* have pinned posts, the actor pushes one row per pin:

```json
{
  "endpoint": "pinned_posts",
  "id": "1abcdef",
  "name": "t3_1abcdef"
}
```

#### 9. Validate Username — availability + rule compliance

Checks whether a username is available to register **and** whether it complies with Reddit's naming rules (length, allowed characters, reserved names).

**Returns:** `valid` (overall pass / fail), `available` (free to register), `reasons` (list of rule violations if any).

**Use it when:** building an "is this name free?" UX, batch-validating proposed usernames before account creation, auditing username pools.

**Example**

**Input**

```json
{
  "endpoint": "validate_username",
  "validate_username_username": "spez"
}
```

**Output** *(one dataset record — `spez` is taken, so the lookup resolves to the existing Redditor)*

```json
{
  "endpoint": "validate_username",
  "validation": {
    "redditorInfoByName": {
      "__typename": "Redditor",
      "id": "t2_1w72",
      "prefixedName": "u/spez",
      "profile": { "isNsfw": false },
      "icon": {
        "url": "https://styles.redditmedia.com/t5_3k30p/styles/profileIcon_uj015iwx9s7g1.png"
      }
    }
  }
}
```

### How to run

1. **Pick an endpoint** in the "What to fetch" dropdown at the top.
2. **Open the matching section** below it and fill its fields (most endpoints just need a username).
3. **Click Start.**

Each endpoint section is independent — fields outside your chosen section are ignored, so you can leave them as-is between runs. Default username is `spez` (Reddit co-founder, public profile) and the default endpoint is `Profile by Name`, so the actor runs out of the box.

***

### Output

Results are pushed to the actor's default dataset. View them as a table or download as JSON / CSV / Excel / XML.

- **Profile by Name / Profile Info by Name / Profile Details by Name / User Trophies by Name / Profile Trophies by Name / Profile Pinned Posts / Validate Username** push **one record** per run.
- **Profile Posts by Name / Profile Comments by Name** push **one record per item** (up to your `limit`).

The most useful columns are placed first (`endpoint`, `id`, `name`, `kind`, `createdAt`, etc.) so the dataset Table view is readable without horizontal scrolling.

***

### Common edge cases

- **Suspended accounts** — Reddit returns minimal data; expect most fields to be null.
- **Deleted accounts** — username `[deleted]` cannot be looked up; the call returns an empty / error record.
- **Brand-new accounts** — trophy and karma fields may be 0; this is normal.
- **Private trophy case** — User Trophies by Name returns empty. Use Profile Trophies by Name instead.
- **NSFW profiles** — fully supported; the `isNsfw` flag in the response tells you if the profile is marked NSFW.
- **Validate Username with reserved names** — Reddit reserves a small set of names (e.g. `admin`, system handles); these return `valid: false` with `reasons` listing the violation.

***

### Why this actor is fast

- **Speed — 1–3 seconds per call, end-to-end.** Pure HTTP to Reddit's API. No browser to boot, no Playwright / Selenium / Puppeteer overhead. Competing browser-based scrapers typically take 15–60 seconds per call.
- **Reliability — zero browser flakiness.** No headless-Chromium crashes. No JS-render timeouts. No captcha pages. No surprise mid-run failures from a browser quirk.
- **Footprint — under 100 MB RAM per run.** Most browser-based scrapers need 1–4 GB. Built for reliability behind the scenes — just paste your inputs and run.

***

### Status & error reference

**Run status** *(Apify-side, shown on the run page)*

| Status | Apify message | Meaning | What to do |
|---|---|---|---|
| <img src="https://redcrawler.com/s/apify_pill_succeeded_v11.png" alt="Succeeded" height="40" style="max-width:none" /> | "Actor succeeded with N results in the dataset" | Run finished. Some or zero records pushed. | Open the dataset to view results. |
| <img src="https://redcrawler.com/s/apify_pill_failed_v11.png" alt="Failed" height="40" style="max-width:none" /> | "The Actor process failed…" | Validation error or upstream Reddit fault. | Check the run log. You are NOT charged for failed runs. |
| <img src="https://redcrawler.com/s/apify_pill_timed_out_v11.png" alt="Timed out" height="40" style="max-width:none" /> | "The Actor timed out. You can resurrect it with a longer timeout to continue where you left off." | Run exceeded its timeout. | Re-run with a smaller `limit` or fewer inputs. |
| <img src="https://redcrawler.com/s/apify_pill_aborted_v11.png" alt="Aborted" height="40" style="max-width:none" /> | "The Actor process was aborted. You can resurrect it to continue where you left off." | You stopped the run manually. | No charge for unpushed results. |

**Common in-run conditions** *(visible in run log)*

| Condition | Cause | Result |
|---|---|---|
| Empty result set | User has no public posts / comments / saved items matching the endpoint. | Run `SUCCEEDED`, 0 records, no charge. |
| Suspended account | Reddit suspended the target account. | Run `SUCCEEDED`, mostly-null record. |
| Deleted account | Account was self-deleted. | Run `SUCCEEDED`, 0 records for that input. |
| Validation error: missing `username` | Required input not provided. | Run `FAILED` immediately, no charge. |

***

### Pricing

**Free. There is no per-result fee** — we don't charge anything for the results you get, however many you pull.

You only pay Apify's normal platform usage, which is the compute time your run takes. Apify's free plan includes **$5 of usage credit every month**, so you can start right away without a paid plan.

***

### Need a different shape of data?

- For **bulk user lookups** (many usernames or IDs in one run, up to 10000), see **Reddit Bulk Scrape V2** (`bulk_profiles` / `bulk_profiles_by_id` endpoints).
- For **subreddit lookups** (rules, type, flairs, emojis, wiki), see **Reddit Subreddits V2**.
- For **post / comment scraping** (single post + thread), see **Reddit Scraper V2**.
- For **search** (finding posts / comments / users / subreddits by keyword), see **Reddit Search V2**.
- For **subreddit, popular, r/all and discovery feeds** (the actual posts in a feed), see **Reddit Feeds V2**.

***

### Support and feedback

Found a bug, want a feature, or hit a Reddit error code we don't translate clearly? Open an issue via the actor's Apify Console feedback link, or reach out at the RedCrawler support channel.

***

*Reddit Users V2 is part of the RedCrawler family of Reddit actors. RedCrawler is independent — not affiliated with, endorsed by, or sponsored by Reddit, Inc. Use it within Reddit's API terms.*

# Actor input Schema

## `endpoint` (type: `string`):

Choose which user lookup to run. All 9 are anonymous — no Reddit account needed.

## `profile_username` (type: `string`):

Reddit username, u/name, or profile URL.

## `profile_about_username` (type: `string`):

Reddit username, u/name, or profile URL.

## `profile_details_username` (type: `string`):

Reddit username, u/name, or profile URL.

## `trophies_public_username` (type: `string`):

Reddit username, u/name, or profile URL.

## `trophies_public_image_max_width` (type: `integer`):

Max width for trophy icon URLs returned by Reddit.

## `profile_trophies_username` (type: `string`):

Reddit username, u/name, or profile URL.

## `user_posts_username` (type: `string`):

Reddit username, u/name, or profile URL.

## `user_posts_sort` (type: `string`):

Sort order. Time filter only applies to 'top' and 'controversial'.

## `user_posts_time_filter` (type: `string`):

Time window — IGNORED unless sort is 'top' or 'controversial'.

## `user_posts_limit` (type: `integer`):

Max posts to return (1–500).

## `user_comments_username` (type: `string`):

Reddit username, u/name, or profile URL.

## `user_comments_sort` (type: `string`):

Sort order. Time filter only applies to 'top' and 'controversial'.

## `user_comments_time_filter` (type: `string`):

Time window — IGNORED unless sort is 'top' or 'controversial'.

## `user_comments_limit` (type: `integer`):

Max comments to return (1–500).

## `pinned_posts_username` (type: `string`):

Reddit username, u/name, or profile URL.

## `validate_username_username` (type: `string`):

Username to validate (availability + rule compliance).

## Actor input object example

```json
{
  "endpoint": "profile",
  "profile_username": "spez",
  "profile_about_username": "spez",
  "profile_details_username": "spez",
  "trophies_public_username": "spez",
  "trophies_public_image_max_width": 128,
  "profile_trophies_username": "spez",
  "user_posts_username": "spez",
  "user_posts_sort": "new",
  "user_posts_time_filter": "all",
  "user_posts_limit": 100,
  "user_comments_username": "spez",
  "user_comments_sort": "new",
  "user_comments_time_filter": "all",
  "user_comments_limit": 100,
  "pinned_posts_username": "spez",
  "validate_username_username": "spez"
}
```

# 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 = {
    "endpoint": "profile",
    "profile_username": "spez",
    "profile_about_username": "spez",
    "profile_details_username": "spez",
    "trophies_public_username": "spez",
    "profile_trophies_username": "spez",
    "user_posts_username": "spez",
    "user_comments_username": "spez",
    "pinned_posts_username": "spez",
    "validate_username_username": "spez"
};

// Run the Actor and wait for it to finish
const run = await client.actor("red_crawler/reddit-users-v2").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 = {
    "endpoint": "profile",
    "profile_username": "spez",
    "profile_about_username": "spez",
    "profile_details_username": "spez",
    "trophies_public_username": "spez",
    "profile_trophies_username": "spez",
    "user_posts_username": "spez",
    "user_comments_username": "spez",
    "pinned_posts_username": "spez",
    "validate_username_username": "spez",
}

# Run the Actor and wait for it to finish
run = client.actor("red_crawler/reddit-users-v2").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 '{
  "endpoint": "profile",
  "profile_username": "spez",
  "profile_about_username": "spez",
  "profile_details_username": "spez",
  "trophies_public_username": "spez",
  "profile_trophies_username": "spez",
  "user_posts_username": "spez",
  "user_comments_username": "spez",
  "pinned_posts_username": "spez",
  "validate_username_username": "spez"
}' |
apify call red_crawler/reddit-users-v2 --silent --output-dataset

```

## MCP server setup

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

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/0YEecnqoLmPXIvgPv/builds/NHnyOMoJquhnVkGgZ/openapi.json
