Reddit User Profile Scraper avatar

Reddit User Profile Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Reddit User Profile Scraper

Reddit User Profile Scraper

Get a Reddit user's public profile — karma, account age, premium status, trophies.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Farhan Febrian Nauval

Farhan Febrian Nauval

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

18 days ago

Last modified

Categories

Share

Extract public profile data from any Reddit user in bulk — post karma, comment karma, account creation date, trophies (verified email, premium, employee), profile picture, and Reddit's internal user ID — in a clean structured JSON output.

Why use this actor

  • No account / no login required — just give it a Reddit username or profile URL.
  • No API key needed — works out of the box; you can optionally plug in a Reddit Client ID for higher throughput.
  • Rich detail — post karma and comment karma broken out separately, account creation timestamp, verified-email flag, premium / employee / mod badges, avatar URL, and the stable id (t2_xxx) you can use to cross-reference with other Reddit records.
  • Bulk input — pass a list of usernames or URLs in one run; one clean dataset row per profile.
  • Automatic retries — transient failures retry with exponential backoff; profiles that genuinely don't exist surface as _error: "not_found" so you can triage failures.
  • Stable JSON output suitable for pipelines, spreadsheets, and databases — every row carries _input, _source, _scrapedAt envelope fields so you can join results back to your input list.

How it works

  1. You provide a list of Reddit usernames (e.g. spez) or full profile URLs (e.g. https://www.reddit.com/user/spez/).
  2. The actor fetches each profile and reads the same about record Reddit's web app shows, then assembles a flat JSON row.
  3. If the primary path is rate-limited, the actor automatically falls back to a public path so the run keeps moving.
  4. Results stream into your dataset, ready to download as JSON, CSV, or Excel.

You do not need to manage scrapers, browsers, or rotating IPs — all handled internally.

Input

{
"usernames": [
"spez",
"GoldenSights"
],
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["DATACENTER"]
}
}
FieldTypeDescription
usernamesarrayList of Reddit usernames or profile URLs to scrape. Both spez and https://www.reddit.com/user/spez/ are accepted.
redditClientIdstring(Optional.) Token that unlocks a higher-throughput path (~60 rpm vs ~10 rpm). Leave blank to use the public path. Get one for free at reddit.com/prefs/apps.
proxyConfigurationobjectApify Proxy settings. Datacenter proxy works for most cases; Residential recommended for runs above 5,000 profiles.

Output

Input: spez

{
"_input": "spez",
"_source": "S3-fallback",
"_scrapedAt": "2026-05-18T11:09:11.628957+00:00",
"id": "1w72",
"name": "spez",
"created_utc": 1118030400.0,
"link_karma": 182650,
"comment_karma": 755338,
"awardee_karma": 0,
"awarder_karma": 0,
"total_karma": 937988,
"is_gold": true,
"is_mod": true,
"is_employee": true,
"is_friend": false,
"is_blocked": false,
"verified": true,
"has_verified_email": true,
"hide_from_robots": false,
"accept_followers": true,
"has_subscribed": true,
"pref_show_snoovatar": false,
"snoovatar_img": "",
"snoovatar_size": null,
"icon_img": "https://styles.redditmedia.com/t5_3k30p/styles/profileIcon_uj015iwx9s7g1.png?width=256&height=256&crop=256:256,smart&s=aa819b0964f6e3019e769d1cc8ede7318c3869a3",
"subreddit": {
"display_name": "u_spez",
"display_name_prefixed": "u/spez",
"title": "spez",
"public_description": "Reddit CEO",
"subscribers": 0,
"subreddit_type": "user",
"url": "/user/spez/",
"over_18": false,
"name": "t5_3k30p"
}
}
FieldTypeDescription
_inputstringThe username or URL exactly as you supplied it. Use this to join results back to your input list.
_sourcestringInternal tag for the path used to fetch the record. S1-primary = fastest authenticated path; S2-fallback / S3-fallback = public fallback paths.
_scrapedAtstringISO-8601 UTC timestamp when the record was scraped.
idstringReddit's internal user ID (without the t2_ prefix). Stable across username changes.
namestringCurrent username.
created_utcnumberAccount creation time as a UNIX timestamp (seconds since epoch).
link_karmaintegerKarma earned from posts (submissions).
comment_karmaintegerKarma earned from comments.
awardee_karmaintegerKarma earned from awards received.
awarder_karmaintegerKarma earned from giving awards.
total_karmaintegerSum of all karma types.
is_goldbooleantrue if the user has Reddit Premium.
is_modbooleantrue if the user moderates at least one subreddit.
is_employeebooleantrue if the user is a Reddit employee (admin).
verifiedbooleantrue if Reddit has verified the account (e.g. AMA-verified, official).
has_verified_emailbooleantrue if the user has confirmed their email address.
is_friendbooleanAlways false for unauthenticated scrapes — kept for parity with Reddit's payload.
is_blockedbooleanAlways false for unauthenticated scrapes — kept for parity.
hide_from_robotsbooleantrue if the user opted out of search-engine indexing.
accept_followersbooleantrue if other users can follow this profile.
icon_imgstringURL of the profile avatar.
snoovatar_imgstringURL of the user's custom Snoovatar, if set.
subredditobjectThe user's own u_<name> profile subreddit — display name, public description ("bio"), banner, subscriber count, and NSFW flag.

Error envelope

Profiles that don't exist or fail to fetch return a structured error instead of crashing the run:

{
"_input": "this-user-does-not-exist-xyz",
"_error": "not_found",
"_errorDetail": "NotFound https://old.reddit.com/user/this-user-does-not-exist-xyz/about.json",
"_source": "S3-fallback",
"_scrapedAt": "2026-05-18T11:09:11.628957+00:00"
}

Filter on _error to triage failed rows. Possible values: not_found (404 — deleted, never existed, or suspended), fetch_failed (transient errors after all retries exhausted).

Pricing

This actor is billed per result: $3.50 per 1,000 profiles (Tier 3). Each successful profile = 1 result. Errors (not-found, fetch-failed) are not billed.

Other Sosmed Actors

PlatformActorBest for
RedditReddit Subreddit Posts ScraperHot/new/top posts from any subreddit
RedditReddit Search ScraperKeyword search across Reddit
RedditReddit Post Detail ScraperFull post + nested comment tree
QuoraQuora User Profile ScraperDisplay name, credential, followers
Twitter / XX Account ScraperProfile + tweet counts for any handle
InstagramInstagram Account ScraperBio, followers, post count
BlueskyBluesky Account Scraperatproto profile + counters

Browse the full catalog at apify.com/xtracto.

Notes

  • Deleted, never-existed, or fully-suspended accounts return {"_error": "not_found", "_input": "..."}.
  • Shadowbanned users still resolve normally — Reddit's about endpoint returns their public record even when their posts are hidden from feeds. Use the karma fields and created_utc to spot suspicious accounts.
  • Counters (link_karma, comment_karma, total_karma) are eventually-consistent and may lag the live count by a few minutes.
  • The internal id (e.g. 1w72, full form t2_1w72) is the most reliable identifier — usernames can change but id does not.
  • For large jobs (>5,000 profiles), switch the proxy group to RESIDENTIAL to avoid per-IP rate limits.