Reddit Users V2 — Profiles, Trophies, Posts & Comments (9)
Pricing
from $1.99 / 1,000 results
Reddit Users V2 — Profiles, Trophies, Posts & Comments (9)
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.
Pricing
from $1.99 / 1,000 results
Rating
5.0
(1)
Developer
Red Crawler
Maintained by CommunityActor stats
1
Bookmarked
29
Total users
7
Monthly active users
5 days ago
Last modified
Categories
Share
Reddit Users V2
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
{"endpoint": "profile","profile_username": "spez"}
Output (one dataset record)
{"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
{"endpoint": "profile_about","profile_about_username": "spez"}
Output (one dataset record)
{"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
{"endpoint": "profile_details","profile_details_username": "spez"}
Output (one dataset record)
{"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
{"endpoint": "trophies_public","trophies_public_username": "spez","trophies_public_image_max_width": 128}
Output (one dataset record per trophy — sample of the first row)
{"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
{"endpoint": "profile_trophies","profile_trophies_username": "spez"}
Output (one dataset record per trophy — sample of the first row)
{"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 istoporcontroversial— ignored otherwise) - Limit — 1 to 1250
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
{"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)
{"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–1250).
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
{"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)
{"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
{"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)
{"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:
{"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
{"endpoint": "validate_username","validate_username_username": "spez"}
Output (one dataset record — spez is taken, so the lookup resolves to the existing Redditor)
{"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
- Pick an endpoint in the "What to fetch" dropdown at the top.
- Open the matching section below it and fill its fields (most endpoints just need a username).
- 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
isNsfwflag 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 returnvalid: falsewithreasonslisting 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 |
|---|---|---|---|
| "Actor succeeded with N results in the dataset" | Run finished. Some or zero records pushed. | Open the dataset to view results. | |
| "The Actor process failed…" | Validation error or upstream Reddit fault. | Check the run log. You are NOT charged for failed runs. | |
| "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. | |
| "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
Pay-per-result. You're only charged for records actually pushed to the dataset — failed runs and validation errors cost nothing.
| Event | Trigger | Price (per 1,000) |
|---|---|---|
result | Each user / trophy / post / comment row pushed to the dataset | $1.99 |
A Profile by Name lookup = 1 row. A 100-post Profile Posts run = 100 rows. A 50-comment Profile Comments run = 50 rows.
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_idendpoints). - 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.