Reddit User Profile & Activity Scraper
Pricing
$0.50 / 1,000 results
Reddit User Profile & Activity Scraper
Turn any Reddit username into a full profile dossier: karma breakdown, account age, trophies, plus every post and comment with scores, communities, dates and links. Includes ready-made stats — karma per day, top communities, posting cadence — for vetting, outreach, monitoring and research.
Pricing
$0.50 / 1,000 results
Rating
0.0
(0)
Developer
Hamza
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Give this actor a list of Reddit usernames and it returns everything a public Reddit profile can tell you: account age, post and comment karma, trophies, and the account's actual posting history — every submission and every comment, with scores, subreddits, timestamps and links. On top of the raw activity it computes the things you would otherwise work out by hand: how old the account is in days, how much karma it earns per day, and which communities it is genuinely active in. It is built for anyone who needs to understand people on Reddit rather than threads — recruiters, community managers, brand and influencer teams, moderators vetting applicants, and researchers studying online behaviour.
No Reddit account, login or credentials required — paste the usernames and run it.
What you can do with it
- Vet an account before you engage with it — see when it was created, how its karma accumulated, and whether its activity looks organic or bursty.
- Find where a person is influential — the profile record ranks the subreddits they post in by volume and by the karma those items earned.
- Build creator and advocate lists — run a list of usernames you collected elsewhere and get their full public activity in one dataset.
- Track a competitor's or a partner's presence — schedule the actor and watch karma, posting cadence and community mix change over time.
- Research community behaviour — export thousands of posts and comments per account for text analysis, sentiment work or academic study.
- Screen moderator or contributor applicants — check history, tone and activity spread across communities in one pass.
What you get
Every run produces one profile record per username, plus one record per post
and per comment collected for that account. Abridged examples of what lands in
your dataset:
{"type": "profile","status": "ok","username": "spez","url": "https://www.reddit.com/user/spez/","createdAt": "2005-06-06T19:39:12.000Z","accountAgeDays": 7723,"totalKarma": 878341,"postKarma": 205310,"commentKarma": 673031,"karmaPerDay": 113.73,"isEmployee": true,"isMod": true,"verified": true,"postsScraped": 42,"commentsScraped": 100,"totalCommentScore": 4754,"medianCommentScore": 28.5,"topSubreddits": [{ "subreddit": "RDDT", "posts": 0, "comments": 41, "items": 41, "totalScore": 1123 },{ "subreddit": "redditstock", "posts": 0, "comments": 28, "items": 28, "totalScore": 2264 }],"activeSubredditCount": 8,"firstActivityAt": "2025-06-03T19:44:45.000Z","lastActivityAt": "2026-06-16T16:59:58.000Z","activitySpanDays": 377.89,"commentsPerDay": 0.26,"trophyCount": 41,"scrapedAt": "2026-07-28T00:00:00.000Z"}
{"type": "comment","username": "spez","id": "os0o1vi","body": "And thank you (mod tools suck) u/shiruken!","url": "https://www.reddit.com/user/spez/comments/1u7hraf/21_years_of_reddit/os0o1vi/","subreddit": "u_spez","score": 93,"createdAt": "2026-06-16T16:59:58.000Z","postId": "1u7hraf","postTitle": "21 years of Reddit","isSubmitter": true,"isTopLevel": false}
Input reference
| Field | Type | Default | What it does |
|---|---|---|---|
usernames | list of strings | ["spez"] | The accounts to scrape. spez, u/spez and full profile links all work. Invalid entries are skipped with a warning. |
scrapePosts | boolean | true | Collect each account's submissions. |
scrapeComments | boolean | true | Collect each account's comments. |
maxPostsPerUser | integer | 100 | Posts to collect per account (0–1000). |
maxCommentsPerUser | integer | 100 | Comments to collect per account (0–1000). |
includeTrophies | boolean | false | Add the account's trophy case to its profile record. |
sort | select | new | new, top, hot or controversial ordering of the history. |
time | select | all | Period used by top and controversial: hour, day, week, month, year, all. |
postedAfter | string | empty | Keep only activity newer than a date (2026-01-01) or a relative window (7d, 24h, 4w). |
maxConcurrency | integer | 4 | How many accounts are processed at the same time (1–10). |
proxyCountry | select | us | Country to appear to browse from. |
Output fields
Profile records (type: "profile")
| Field | Type | Description |
|---|---|---|
username, url, userId | text | The account and its profile link. |
status | text | ok, or not_found for suspended, deleted or non-existent accounts. |
reason, message | text | On a not_found record only: suspended when Reddit says so, otherwise not_found, plus a plain-English explanation. |
displayName, description | text | Profile title and public description. |
createdAt, accountAgeDays | date / number | When the account was created and how old it is today. |
totalKarma, postKarma, commentKarma, awardeeKarma, awarderKarma | number | Karma breakdown. |
karmaPerDay | number | Total karma divided by account age in days. |
isEmployee, isMod, isGold, verified, hasVerifiedEmail, acceptsFollowers, over18 | boolean | Account flags. |
avatar, banner, profileSubscribers | text / number | Profile imagery and follower count of the user's own profile community. |
postsScraped, commentsScraped | number | How much activity this run collected. |
totalPostScore, totalCommentScore, medianPostScore, medianCommentScore | number | Score roll-ups over the collected activity. |
topSubreddits | array | Communities ranked by items collected, each with posts, comments, items, totalScore. |
activeSubredditCount | number | Distinct communities seen in the collected activity. |
firstActivityAt, lastActivityAt, activitySpanDays | date / number | Window the collected activity covers. |
postsPerDay, commentsPerDay | number | Cadence measured across that window. |
trophyCount, trophies | number / array | Trophy case, when requested. |
scrapedAt | date | When the record was produced. |
Post records (type: "post") — id, title, url, permalink, subreddit,
author, body, linkUrl, domain, score, upvoteRatio, numComments,
numCrossposts, totalAwards, flair, createdAt, editedAt, isSelfPost,
isVideo, isGallery, isCrosspost, over18, spoiler, locked, stickied,
archived, thumbnail, and media[] (image, gallery, video with dashUrl and
hlsUrl, or embed).
Comment records (type: "comment") — id, body, url, permalink,
subreddit, author, score, controversiality, createdAt, editedAt,
postId, postTitle, postUrl, parentId, isTopLevel, isSubmitter,
depth, distinguished, stickied, collapsed.
Every record — profile, post and comment — carries the username you asked for,
so a multi-account run is trivial to group and filter.
Pricing
Pay per result: $0.0005 per dataset item — $0.50 per 1,000.
You are charged only for the rows you receive, whether a row is a profile, a post or a comment. There is no monthly fee and nothing to pay for accounts that turn out to be suspended or deleted beyond the single placeholder row they produce.
- A standard account pull — profile plus 100 posts and 100 comments, 201 rows — costs about $0.10.
- A 50-account vetting batch at that depth is roughly $5.00.
- A deep history dump on one power user (1,000 posts + 1,000 comments) is about $1.00.
Set a maximum charge on the run and the actor stops cleanly once it is reached, rather than overshooting your budget.
Limits and what this actor cannot do
- About 1,000 items per history feed. Reddit itself stops any single feed at roughly 1,000 records. Posts and comments are separate feeds, so the practical maximum is about 1,000 posts and 1,000 comments per account. Older activity beyond that point is simply not reachable from a public profile — by anyone.
- Public communities only. Activity that lives in a private, banned or otherwise closed community never appears on a public profile, so it cannot be collected. Ordinary and adult (NSFW) communities come back normally; content from quarantined communities has not been verified.
- Accounts Reddit will not serve still appear, flagged. Any such username
comes back as a record with
status: "not_found", so the name never silently disappears from your dataset. Reddit does say outright when an account is suspended (reason: "suspended"), and a suspended account exposes nothing else — no karma, no creation date, no history. A deleted account and a name that never existed are indistinguishable from each other; both arrive asreason: "not_found". - Public data only. No private messages, no saved, hidden or upvoted items, no email addresses, no device or location data, no moderator-only information, and no voting history. If it is not on the public profile, it is not in the output.
- No live presence. There is no "online now" signal and no way to tell whether an account is active at this moment — only what it has already done.
- Deleted and removed content stays deleted. Items the user or a moderator
removed come back with
[deleted]/[removed]where the text used to be. - Trophy dates are mostly missing. Reddit publishes a grant date for only a
handful of trophies — in a real 41-trophy case, three had one. The rest arrive
with
grantedAt: null. timeonly applies to two orders. Thetopandcontroversialorders honour the time range;newandhotignore it, exactly as Reddit does.- Date filtering behaves differently per order. With the
neworder the actor stops as soon as the history passes your cut-off, which makes recent-window runs fast; with the score-based orders it has to collect first and filter after. - Cadence figures describe the sample, not the lifetime.
postsPerDay,commentsPerDayandactivitySpanDaysare measured across the activity this run collected. RaisemaxPostsPerUser/maxCommentsPerUserfor a longer window.karmaPerDay, by contrast, uses lifetime karma and full account age. - Very large jobs take longer. Reddit paces how quickly anyone can read it, so a huge username list is limited by Reddit itself rather than by the actor. The run keeps going, it just needs more time.
FAQ
Do I need a Reddit account? No. You do not need a Reddit account, a login, or any credentials — just enter what you want and run it.
How fast is it? A standard account — profile plus 100 posts and 100 comments — is done in a few seconds. Results come back in large batches, so longer histories scale smoothly, and several accounts are handled at once: a list of hundreds of usernames finishes in minutes.
Can I get a user's complete history? Up to about 1,000 posts and 1,000 comments. Reddit does not serve public profile history beyond that, for anyone.
What happens if a username is wrong or the account was banned?
The run continues. That username gets a record with status: "not_found" — and
reason: "suspended" when Reddit identifies it as a suspension — while
everything else in your list is still scraped.
Can I run it on a schedule? Yes. Scheduling it daily or weekly and appending to the same dataset is a normal way to track karma growth, posting cadence and community shifts over time.
Can I feed it profile URLs from a spreadsheet?
Yes. Full profile links, u/name handles and bare usernames can be mixed freely
in the same list.
Is any of this private data? No. Everything the actor returns is what any visitor can already see on a public Reddit profile — it is simply collected, cleaned and summarised for you.