Reddit Users V1 — Profile, Lookup, Follow, Block, Friend (13) avatar

Reddit Users V1 — Profile, Lookup, Follow, Block, Friend (13)

Pricing

from $1.99 / 1,000 results

Go to Apify Store
Reddit Users V1 — Profile, Lookup, Follow, Block, Friend (13)

Reddit Users V1 — Profile, Lookup, Follow, Block, Friend (13)

Full Reddit user toolkit — 8 anonymous lookups (profile, trophies, posts, comments, overview, browse, bulk-by-IDs, username) + 5 auth ops (my content, user actions, add/remove friend, friends list, show-my-flair). Use Reddit Vault or paste Token V2 + proxy.

Pricing

from $1.99 / 1,000 results

Rating

5.0

(2)

Developer

Red Crawler

Red Crawler

Maintained by Community

Actor stats

1

Bookmarked

4

Total users

1

Monthly active users

a day ago

Last modified

Share

Reddit Users V1

Endpoints Anonymous Auth Proxy Pricing

Full Reddit user toolkit in one actor — 8 anonymous lookups (profile, trophies, posts, comments, overview, browse, bulk-by-IDs, username availability) plus 5 auth-required actions (your own content, follow / unfollow / block / unblock / report, add / remove friend, friends list, show / hide your flair). Pick the endpoint, fill the matching section, hit Start.

Anonymous endpoints need no credentials. Auth-required endpoints reuse a saved account from the Reddit Vault, or accept a Token V2 + matching proxy pasted inline.


What you can do

Each username field accepts a raw username (spez), a u/-prefixed handle (u/spez), or a full profile URL (https://www.reddit.com/user/spez/). Bulk lookup accepts raw IDs (abcd12) and t2_-prefixed (t2_abcd12) — comma list or one per row.

Anonymous endpoints (no credentials needed)

1. About — public profile

Returns a Reddit user's full public profile in one call.

Returns: numeric IDs (id, name), karma breakdown (total_karma, link_karma, comment_karma, awardee_karma, awarder_karma), badges (is_employee, is_mod, is_gold, verified, has_verified_email), created_utc, snoo / icon URLs, plus the embedded profile-subreddit object (u_<name>).

Use it when: profile QA, mod queues, lead enrichment, "is this user real / vetted / verified" checks, building dashboards of influencer / employee / mod activity.

Example

Input

{
"endpoint": "about",
"about_username": "spez"
}

Output (one dataset record)

{
"endpoint": "about",
"id": "1w72",
"name": "spez",
"total_karma": 937988,
"link_karma": 182650,
"comment_karma": 755338,
"awardee_karma": 25000,
"awarder_karma": 75000,
"created_utc": 1118030400.0,
"is_employee": true,
"is_mod": true,
"is_gold": true,
"verified": true,
"has_verified_email": true,
"icon_img": "https://styles.redditmedia.com/t5_3k30p/styles/profileIcon_uj015iwx9s7g1.png",
"snoovatar_img": "https://i.redd.it/snoovatar/avatars/...png",
"subreddit": {
"display_name_prefixed": "u/spez",
"title": "spez",
"public_description": "Reddit CEO",
"subscribers": 0,
"accept_followers": true
},
"accept_followers": true,
"hide_from_robots": false,
"pref_show_snoovatar": true
}

2. Trophies — earned badges

Returns the user's earned Reddit trophies / awards (year-club badges, AMA, gilded, etc.).

Returns: array of {kind: "t6", data: {name, icon_70, icon_40, granted_at, url, description, award_id, id}} records.

Use it when: scoring account age & seniority, filtering "real" users vs. fresh throwaways, building reputation overlays.

Example

Input

{
"endpoint": "trophies",
"trophies_username": "spez"
}

Output (one dataset record per trophy)

{
"endpoint": "trophies",
"kind": "t6",
"data": {
"name": "15-Year Club",
"icon_70": "https://www.redditstatic.com/awards2/15_year_club-70.png",
"icon_40": "https://www.redditstatic.com/awards2/15_year_club-40.png",
"granted_at": 1749182400,
"url": null,
"description": null,
"award_id": null,
"id": null
}
}

3. Overview — posts + comments combined

Returns a user's posts and comments interleaved in one feed (Reddit's default profile view).

Returns: array of items — each is either a post (kind: t3) or a comment (kind: t1) with the full Reddit listing payload. Posts get post-shaped columns front-loaded, comments get comment-shaped columns.

Use it when: profiling an account's activity, summarising recent contributions, training data for "is this user spammy / on-topic / mod-worthy" classifiers.

Optional fields: overview_sort (new / hot / top / controversial), overview_time_filter (hour / day / week / month / year / all — only for top / controversial), overview_limit (1–100).

Example

Input

{
"endpoint": "overview",
"overview_username": "spez",
"overview_sort": "new",
"overview_limit": 25
}

Output (one dataset record per item — comment shape shown)

{
"endpoint": "overview",
"id": "okpklb6",
"name": "t1_okpklb6",
"parent_id": "t1_okoapl8",
"link_id": "t3_1t7d1gy",
"author": "spez",
"author_fullname": "t2_1w72",
"body": "Ding ding ding",
"score": 24,
"ups": 24,
"downs": 0,
"created_utc": 1778273310.0,
"permalink": "https://reddit.com/r/redditstock/comments/1t7d1gy/please_fire_vollero_for_buyback_mismanagement/okpklb6/",
"is_submitter": false,
"distinguished": "admin",
"subreddit": "redditstock",
"subreddit_name_prefixed": "r/redditstock",
"subreddit_id": "t5_4x7l6b",
"total_awards_received": 0
}

4. Posts — submissions only

Returns only the user's submitted posts (links + self-posts), no comments.

Returns: array of post records with t3_* fullnames, post-shaped columns front-loaded.

Use it when: finding what an account posts about, OP profile checks, monitoring competitor / influencer posting cadence.

Optional fields: posts_sort, posts_time_filter, posts_limit (1–100).

Example

Input

{
"endpoint": "posts",
"posts_username": "spez",
"posts_sort": "top",
"posts_time_filter": "year",
"posts_limit": 10
}

Output (one record per post)

{
"endpoint": "posts",
"id": "1tc6ncq",
"name": "t3_1tc6ncq",
"title": "Which language should I learn next?",
"author": "spez",
"author_fullname": "t2_1w72",
"subreddit": "test",
"subreddit_name_prefixed": "r/test",
"subreddit_id": "t5_2qh23",
"score": 1,
"ups": 1,
"downs": 0,
"upvote_ratio": 1.0,
"num_comments": 0,
"created_utc": 1779421200.0,
"permalink": "/r/test/comments/1tc6ncq/which_language_should_i_learn_next/",
"url": "https://www.reddit.com/r/test/comments/1tc6ncq/which_language_should_i_learn_next/",
"is_self": true,
"over_18": false,
"spoiler": false,
"locked": false,
"selftext": "Currently writing Python full-time...",
"thumbnail": "self"
}

5. Comments — comments only

Returns only the user's authored comments, no posts.

Returns: array of comment records with t1_* fullnames, comment-shaped columns front-loaded.

Use it when: sentiment analysis on a user, finding their take on a topic, "comments on which subs lately" audits.

Optional fields: comments_sort, comments_time_filter, comments_limit (1–100).

Example

Input

{
"endpoint": "comments",
"comments_username": "spez",
"comments_sort": "new",
"comments_limit": 25
}

Output (one record per comment — same shape as Overview's comment example)

{
"endpoint": "comments",
"id": "okpklb6",
"name": "t1_okpklb6",
"parent_id": "t1_okoapl8",
"link_id": "t3_1t7d1gy",
"author": "spez",
"body": "Ding ding ding",
"score": 24,
"created_utc": 1778273310.0,
"permalink": "https://reddit.com/r/redditstock/comments/1t7d1gy/please_fire_vollero_for_buyback_mismanagement/okpklb6/",
"subreddit": "redditstock"
}

Returns Reddit's directory listing of users — either the popular profile-subreddits feed or the new feed.

Returns: array of profile-subreddit records (t5_* names with u_<handle> display names) — same shape as About's subreddit field.

Use it when: discovering trending / newly active accounts, sampling for outreach, building "rising users" lists.

Optional fields: browse_directory (popular / new), browse_limit (1–100).

Example

Input

{
"endpoint": "browse_users",
"browse_directory": "popular",
"browse_limit": 10
}

Output (one record per user)

{
"endpoint": "browse_users",
"name": "t5_3oy63",
"display_name": "u_thisisinsider",
"display_name_prefixed": "u/thisisinsider",
"title": "Business Insider",
"public_description": "What you want to know about business...",
"subscribers": 0,
"created": 1507123989.0,
"icon_img": "https://styles.redditmedia.com/t5_3oy63/styles/profileIcon_jah6n47yjv041.png",
"primary_color": "",
"key_color": "",
"accept_followers": true,
"quarantine": false,
"over_18": false
}

7. Users by IDs — bulk lookup by t2_ IDs

Bulk-resolve many Reddit user IDs to compact profile records in one call. Up to 500 IDs per call — paste them as a list or comma-separated string.

Returns: array — one record per resolved user with {endpoint, name, id, created_utc, link_karma, comment_karma, profile_img, profile_color, profile_over_18}.

Use it when: hydrating IDs harvested from comments / mod logs / submissions, batch enrichment of large user lists, bulk audience research.

Example

Input

{
"endpoint": "lookup",
"lookup_ids": ["t2_1w72", "t2_29onm7dc32"]
}

Output (one record per user)

{
"endpoint": "lookup",
"name": "spez",
"id": "1w72",
"created_utc": 1118030400.0,
"link_karma": 182650,
"comment_karma": 755338,
"profile_img": "https://styles.redditmedia.com/t5_3k30p/styles/profileIcon_uj015iwx9s7g1.png",
"profile_color": "",
"profile_over_18": false
}

8. Username Available — check if a name is free

Tells you whether a username is still claimable on Reddit.

Returns: {endpoint, username, available}available: true means free, false means taken or reserved.

Use it when: picking new account names in bulk, brand-protection sweeps, finding free handles.

Example

Input

{
"endpoint": "username_available",
"available_username": "my_new_reddit_handle"
}

Output (one dataset record)

{
"endpoint": "username_available",
"username": "my_new_reddit_handle",
"available": false
}

Auth-required endpoints (Reddit account needed)

These five endpoints sign in as your account and act on its behalf. Save credentials once in Reddit Vault and reuse them by name, or paste Token V2 + matching proxy inline.

9. My Content — your own listings

Returns one of your private listings (overview / submitted / comments / upvoted / downvoted / hidden / saved / gilded).

Returns: array of post / comment items with the same shape as the public overview / posts / comments endpoints — but pulled from your own account's view so it includes hidden / saved / upvoted items only you can see.

Use it when: archiving your account's history, building a personal dashboard, exporting saved / upvoted items for a research corpus.

Optional fields: my_content_sort, my_content_time_filter, my_content_limit (1–100).

Example

Input

{
"endpoint": "my_content",
"my_content_type": "overview",
"my_content_sort": "new",
"my_content_limit": 25,
"credentialSource": "vault",
"accountName": "motor_tip8865"
}

Output (one record per item — post shape shown)

{
"endpoint": "my_content",
"id": "1tc6ncq",
"name": "t3_1tc6ncq",
"title": "Which language should I learn next?",
"author": "motor_tip8865",
"author_fullname": "t2_29onm7dc32",
"subreddit": "test",
"subreddit_name_prefixed": "r/test",
"score": 1,
"ups": 1,
"upvote_ratio": 1.0,
"num_comments": 0,
"created_utc": 1779421200.0,
"permalink": "/r/test/comments/1tc6ncq/which_language_should_i_learn_next/",
"url": "https://www.reddit.com/r/test/comments/1tc6ncq/which_language_should_i_learn_next/",
"is_self": true,
"selftext": "Currently writing Python full-time..."
}

10. User Action — follow / unfollow / block / unblock / report

One endpoint, five actions. Picks the action from a dropdown.

Returns: {endpoint, action, target, success, data}data is the backend response (Reddit's raw acknowledgement, or {} on a clean success).

Use it when: silently following a competitor / influencer, blocking known spammers in bulk, reporting harassment, programmatic relationship management.

Report also accepts an optional user_action_site_rule (e.g. harassment, spam). Unblock auto-resolves your own t2_ ID from your bearer; only fill user_action_my_account_id if auto-resolve fails.

Example

Input

{
"endpoint": "user_action",
"user_action": "follow",
"user_action_target": "spez",
"credentialSource": "vault",
"accountName": "motor_tip8865"
}

Output (one dataset record)

{
"endpoint": "user_action",
"action": "follow",
"target": "spez",
"success": true,
"data": {}
}

11. Add / Remove Friend — manage your friends list

Adds or removes a user from your Reddit friends list.

Returns: {endpoint, action, username, success, data}data echoes Reddit's response (the friend record on add, an empty body on remove).

Use it when: building a curated follow list of users you want to monitor (Reddit pushes their new posts/comments into your friends feed).

Example

Input

{
"endpoint": "friend_action",
"friend_action": "add",
"friend_username": "spez",
"credentialSource": "vault",
"accountName": "motor_tip8865"
}

Output (one dataset record)

{
"endpoint": "friend_action",
"action": "add",
"username": "spez",
"success": true,
"data": {
"date": 1779421200.0,
"name": "spez",
"id": "t2_1w72",
"rel_id": "r9_2lkj8"
}
}

12. Friends List — list your friends

Lists every account you've friended. No filter fields needed.

Returns: array of {endpoint, name, id, date, rel_id} per friend (front-loaded order). Empty list → one row: {endpoint, friends: [], count: 0}.

Use it when: auditing who's on your friends list, exporting your friend roster, syncing with an external CRM.

Optional fields: friends_list_max — cap how many friends to return (0 = all).

Example

Input

{
"endpoint": "friends_list",
"friends_list_max": 0,
"credentialSource": "vault",
"accountName": "motor_tip8865"
}

Output (one record per friend — example shows non-empty case)

{
"endpoint": "friends_list",
"name": "spez",
"id": "t2_1w72",
"date": 1779421200.0,
"rel_id": "r9_2lkj8"
}

13. Show My Flair — toggle your flair visibility on a subreddit

Toggles whether your flair on a given subreddit is visible to other users.

Returns: {endpoint, subreddit, flair_enabled, success, data}data is the backend acknowledgement.

Use it when: revealing / hiding your flair in a community as part of profile cleanup, branding swaps, or compliance with subreddit norms.

Example

Input

{
"endpoint": "show_my_flair",
"show_my_flair_subreddit": "AskReddit",
"show_my_flair_enabled": true,
"credentialSource": "vault",
"accountName": "motor_tip8865"
}

Output (one dataset record)

{
"endpoint": "show_my_flair",
"subreddit": "AskReddit",
"flair_enabled": true,
"success": true,
"data": {}
}

Credentials

The 8 anonymous endpoints (About, Trophies, Overview, Posts, Comments, Browse Users, Users by IDs, Username Available) need no credentials at all — leave the Reddit credentials section blank.

The 5 auth-required endpoints (My Content, User Action, Add / Remove Friend, Friends List, Show My Flair) need a signed-in Reddit account. Save it once in Reddit Vault and reuse the name forever, or paste a Token V2 + matching proxy inline for one-off runs.

Credential lifetimes

CredentialLifetimeWhen to refresh
Token V2 (token_v2 cookie)~24 hoursDaily — or save a Reddit Session in the vault and let it auto-refresh
Reddit Session (reddit_session cookie)~180 daysRoughly twice a year, or when a run reports unauthorized

How to extract these from your browser: open Reddit in Chrome / Brave / Edge / Firefox, then DevTools → Application → Cookies → https://www.reddit.com. Filter by token_v2 or reddit_session and copy the Value column.

Token V2 cookie in DevTools

Reddit Session cookie in DevTools

  1. Run the Reddit Vault actor once with mode STORE, an account name (e.g. motor_tip8865), your Token V2 (or Reddit Session for auto-refresh), and the matching proxy.
  2. In this actor, set Credential source = Use saved account (vault) and Saved account name = motor_tip8865.
  3. Token V2 + proxy are pulled from the vault on every run. If you saved a Reddit Session, the Token V2 auto-refreshes whenever it expires.

Option B — Paste Token V2 + proxy inline

  1. Set Credential source = Paste Token V2 + proxy.
  2. Paste the eyJ… Token V2 cookie value (encrypted by Apify at rest).
  3. Paste the Proxy as ip:port:user:pass — must be the same IP that minted the Token V2 (Reddit IP-binds these cookies).

How to run

  1. What to fetch → pick one of the 13 endpoints from the dropdown.
  2. Scroll to the section that matches your endpoint and fill in its fields. Only that section's fields are used — other sections are ignored.
  3. If your endpoint is auth-required (My Content, User Action, Add / Remove Friend, Friends List, Show My Flair), scroll to Reddit credentials and pick a source — vault (name only) or manual (Token V2 + proxy).
  4. Hit Start. Each run produces one or more dataset rows — exactly one per item returned (e.g. 25 posts → 25 rows; 1 follow → 1 row).

Output

Records are pushed to the run's default dataset. The shape depends on the endpoint:

EndpointPushed shapeFront-loaded columns
aboutone user recordendpoint, id, name, total_karma, link_karma, comment_karma, …
trophiesarray of {kind:"t6", data:{…}}endpoint, kind, data
overview / posts / comments / my_contentarray of post (t3) + comment (t1) itemspost-shaped or comment-shaped based on kind
browse_usersarray of user-subredditsendpoint, id, name, total_karma, …
lookuparray of compact user recordsendpoint, id, name, total_karma, …
username_available{endpoint, username, available}as listed
friends_listarray of friend recordsendpoint, name, id, date, rel_id
user_action / friend_action / show_my_flairone acknowledgement recordendpoint, action, target / username / subreddit, success, data

Empty results push one summary row instead of zero rows (e.g. an empty friends list = {endpoint: "friends_list", friends: [], count: 0}), so a successful run with no items still produces a visible record.


Common edge cases

Edge caseCauseHow it surfaces
Suspended userAccount banned by Reddit adminsabout returns sparse profile, posts / comments empty. Some fields may be missing.
Shadowbanned userAccount silently suppressedAll anonymous lookups return "User not found" (Reddit hides shadowbanned accounts from outsiders).
Private profileUser toggled "Show my profile to logged-out users = off"Anonymous lookups fail with forbidden. Use an auth-required endpoint on YOUR account with their consent, or skip.
Mixed valid + invalid IDs in lookupOne or more t2_ IDs are wrong / deletedResolved users come back; missing IDs are absent. No error — just fewer rows than IDs supplied.
Bearer expiredSaved Token V2 past ~24 h, no vault session for auto-refreshRun still completes but auth-required endpoints fail. Re-save the account in Reddit Vault with a Reddit Session for auto-refresh.
Bearer minted on a different IPToken V2 minted on a different proxy than the one paired with itAuth-required endpoints fail with unauthorized. Re-mint the Token V2 on the proxy you'll use, save them as a pair.
Username with ? / trailing slash / URLUser pasted a full URL or messy handleActor strips it cleanly — https://reddit.com/user/spez/, u/spez, spez all work.
unblock auto-resolve failedBearer doesn't expose your own t2_IDFill user_action_my_account_id manually (you can fetch your own ID via about on your own username).
Empty friends listYou haven't friended anyoneOne row pushed: {endpoint: "friends_list", friends: [], count: 0}.
Friend already addedRe-running friend_action: add on someone already friendedReddit returns the existing relationship — success: true, no duplicate created.

Why this actor is fast

  • Speed — under 1 second per anonymous lookup, 2–4 seconds per auth-required call. Pure HTTP to Reddit's mobile API. No browser to boot, no Playwright / Selenium / Puppeteer overhead. Competing browser-based actors typically take 15–60 seconds per call.
  • Reliability — zero browser flakiness. No headless-Chromium crashes. No JS-render timeouts. No captcha pages.
  • Footprint — under 100 MB RAM per run. Most browser-based actors need 1–4 GB.
  • Proxy management handled for you on anonymous endpoints. No proxy to configure for the 8 read-only endpoints — the backend rotates infrastructure behind the scenes.

Status & error reference

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

StatusApify messageMeaningWhat to do
Succeeded"Actor succeeded with N results in the dataset"Run finished, records pushed.Open the dataset to view the result.
Failed"The Actor process failed…"Validation error or missing required input.Check the run log. You are NOT charged for failed runs.
Timed out"The Actor timed out. You can resurrect it with a longer timeout to continue where you left off."Run exceeded timeout (rare — lookups are fast).Re-run; check Reddit / proxy is reachable.
Aborted"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 and output record)

ConditionCauseResult
User not foundUsername doesn't exist, is suspended, or is shadowbannedRun SUCCEEDED, single row with error: "User not found".
Private profileUser has logged-out viewing disabledRun SUCCEEDED, row with error_kind: FORBIDDEN.
Bearer expired / invalidToken V2 past ~24 h, no vault session for auto-refreshRun SUCCEEDED, row with error_kind: UNAUTHORIZED.
Validation error: missing endpoint / username / IDsRequired input not providedRun FAILED immediately, no charge.
Reddit rate-limitPer-IP throttle hit (very rare on shared infra)Run SUCCEEDED, row with error_kind: RATELIMIT.

Pricing

Pay-per-result. You're only charged for records actually pushed to the dataset — failed runs, validation errors, and credential errors that never reach Reddit cost nothing.

EventTriggerPrice (per 1,000)
resultEach row pushed to the dataset (success or failure)$0.99

A 25-post overview is 25 rows. A single follow / unfollow / block is 1 row. A lookup of 100 IDs is up to 100 rows.


Need a different shape of data?

All of them accept the same accountName field, so saving credentials in Reddit Vault unlocks them all.


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 V1 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.