Reddit User Scraper - Profiles, Karma, Posts & Comments avatar

Reddit User Scraper - Profiles, Karma, Posts & Comments

Under maintenance

Pricing

from $0.99 / 1,000 row saveds

Go to Apify Store
Reddit User Scraper - Profiles, Karma, Posts & Comments

Reddit User Scraper - Profiles, Karma, Posts & Comments

Under maintenance

Reddit profiles for 1 to 1,000 usernames per run: post and comment karma, account age, followers, verified badge, premium and bio, plus each account's newest posts and comments if you want them. Suspended, deleted and missing accounts are listed and never charged.

Pricing

from $0.99 / 1,000 row saveds

Rating

0.0

(0)

Developer

Kamil Ertekin

Kamil Ertekin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Reddit User Scraper - Profiles, Posts & Comments

Paste as many as 1,000 Reddit usernames or profile links and get one row per account: karma split into post and comment karma, account age, followers, verified badge, premium status, bio and avatar. Add each account's newest posts and comments as extra rows if you need them. Built for audience research, creator and partner vetting, and community moderation. No Reddit account or login needed.

What it is for

  • Audience research. You have the usernames from a thread or a community and want to know who they are as a group: how old the accounts are, how much they post, how many are new.
  • Creator and partner vetting. Before you sponsor, hire or partner with a Reddit creator, check account age, karma, verified badge and what they have posted lately.
  • Moderation. Check the accounts in your mod queue or your mod applicants: account age, karma split, whether the profile is marked 18+, and which subreddits they already moderate.

It reads only what any visitor sees on a public profile. It is built for looking at accounts in bulk for these purposes, not for building a file on one private person.

Measured

Measured on 2026-10-20 on this Actor, with comment authors taken from recent Reddit threads:

RunAccounts inRows savedTimeRows per minute
Profile only1,00094438.8 min24
Profile only100954.0 min24
Profile + posts + comments, 25 of each20576 (20 profiles, 228 posts, 328 comments)4.1 min140
Three profile-only runs started together3 x 30873.4 to 3.8 min each23 combined

Of the 1,000 usernames, 55 were suspended and 1 did not exist. Those 56 were listed for free, so the run was charged for 944 rows. Runs in the same account share one pace: three at once finished in about the time one 90-account run takes, so splitting a list into parallel runs does not make it faster.

What you get

One row per account (recordType: profile):

FieldExampleNotes
username, id, profileUrlGallowBoob, t2_iqsg6Original capitalisation
karmaTotal, karmaFromPosts, karmaFromComments36838255, 35727417, 1110838Filled on all 944 measured rows
createdAt, accountAgeDays2014-10-07T09:38:40.859Z, 4396Account creation, UTC, ISO 8601
postCount, commentCount12730, 14642What the profile reports in total, not what this run saved
followers33919Most accounts have none: 38 of 944 (4%) had more than zero
verifiedfalseThe verified badge. 2 of 944 measured accounts had it
premium, isEmployeetrue, false
displayName, title, bioRob, The internet was a mistakeA bio is set on 18% of accounts
avatarUrl, bannerUrl, socialLinks
isNsfwfalseThe profile itself is marked 18+. 209 of 944 measured accounts (22%)
historyCuratedByUserfalseThe account hides part of its history from its public profile. 310 of 944 (33%)
hasProfilePagetrue1 of 944 measured accounts had karma but no profile page; such rows have no bio, followers or banner
trophyCount44Filled on 942 of 944 measured rows
trophies[{"name": "Verified Email", "grantedAt": "2023-01-01T00:00:00.000Z"}]Only when "Trophy list" is on
isMod, moderatedSubredditstrue, [{"name": "StoppedWorking", "subscribers": 626052}]Only when "Moderated subreddits" is on

trophies, isMod and moderatedSubreddits are empty, not false or [], when you did not ask for them. An empty value that means "not requested" must never read as "moderates nothing".

Posts (recordType: post) have the same columns as our Reddit Search Scraper: title, text, link, subreddit, score, upvote ratio, comment count, flair and flat media columns. profileUsername says which account they came from. Posts on the account's own profile show the subreddit as u_<name>.

Comments (recordType: comment) have the same columns as our Reddit Comments Scraper: text, score, date, link, post ID, post title and subreddit. Comments longer than 300 characters are saved in full, with their parent ID, edit date and flair. Shorter comments come with their complete text, but parent ID, edit date and flair are empty. In the 20-account run, 26 of 328 comments (8%) were long enough to need the full fetch. subreddit was empty on 43 of 328 comments (13%): 23 of those were on posts deleted since.

Suspended, deleted and nonexistent accounts are not rows. They are listed for free in the Skipped accounts record and in the run message, so you can see exactly which names did not resolve and why.

How to use it

  1. Paste usernames, one per line. spez, u/spez and https://www.reddit.com/user/spez/ all work. The same account listed twice is collected once.
  2. Pick what to collect: profile only, or profile plus posts, comments or both.
  3. Click Start and download CSV, Excel or JSON from the Output tab. Switch between the Profiles, Posts and Comments views.
{
"usernames": ["spez", "u/GallowBoob"],
"mode": "all",
"maxPostsPerUser": 25,
"maxCommentsPerUser": 25
}

Input

FieldWhat it does
Usernames or profile links1,000 per run at most. Lines that are not usernames are skipped and listed in the run summary.
What to collectProfile only (profile), profile_posts, profile_comments or all.
Max posts / comments per accountNewest first, 0 to 1,000 each.
Full text of long commentsOn by default. Off saves one step per long comment, but those comments stop at 300 characters (bodyTruncated: true).
Trophy listAdds the list of trophies. Slower: one extra step per account.
Moderated subredditsAdds isMod and the list. Slower: one extra step per account.
Include 18+ postsOff by default. Accounts are never skipped for being 18+; only 18+ posts are left out.

Calling it from code or an AI agent? users, profiles, profileUrls, urls and startUrls work for the usernames. maxPosts and maxComments work for the limits, and includePosts and includeComments (true or false) work instead of mode. Fields the scraper doesn't know are ignored and listed in the run message.

Output example

{
"recordType": "profile",
"username": "GallowBoob",
"profileUrl": "https://www.reddit.com/user/GallowBoob/",
"displayName": "Rob",
"createdAt": "2014-10-07T09:38:40.859Z",
"accountAgeDays": 4396,
"karmaTotal": 36838255,
"karmaFromPosts": 35727417,
"karmaFromComments": 1110838,
"postCount": 12730,
"commentCount": 14642,
"followers": 33919,
"verified": false,
"premium": true,
"isNsfw": false,
"trophyCount": 44,
"isMod": null
}

Pricing

You pay per saved row, whether it is a profile, a post or a comment. There is no start fee.

Apify planDiscount tierPer 1,000 rowsPer row
FreeNo discount$1.29$0.00129
StarterBronze$1.19$0.00119
ScaleSilver$1.09$0.00109
BusinessGold$0.99$0.00099
  • 1,000 profiles cost $1.29 on the Free plan. 20 accounts with 25 posts and 25 comments each are at most 1,020 rows, so about $1.32.
  • Suspended, deleted and nonexistent accounts are free. The same account or post twice in one run is charged once.
  • Set "Maximum cost per run" in Run options for a hard cap. If that cap is too low to save even one row, the run says so and collects nothing.

FAQ

Why did I get fewer posts than postCount? postCount is the total the profile reports, and your per-account limit usually stops first. When it does not, the account may hide part of its history (historyCuratedByUser: true), or the posts were removed. The run summary shows, per account, whether collection ended at your limit or because nothing more was visible.

Why are some accounts missing from the dataset? They are suspended, deleted or do not exist. Each is listed in the Skipped accounts record with its reason, and none is charged.

How long does a run take? Profile only runs at about 24 accounts a minute, so 1,000 accounts took 38.8 minutes. With 25 posts and 25 comments per account, 20 accounts took 4.1 minutes. Set the run timeout in Run options above that. A run that hits its timeout keeps what it saved. To finish the list in the same dataset, open the run and choose Actions > Resurrect with a longer timeout: rows already saved are not charged again.

Can I run it on a schedule? Yes. Save the input as a task and add a schedule. Results can go to Google Sheets, Slack, Make, Zapier or n8n through Apify integrations.

Limits

  • At most 1,000 accounts per run, and at most 1,000 posts and 1,000 comments per account, newest first.
  • Public data only: no email, location, private messages or voting history.
  • Comments carry no 18+ marker, so "Include 18+ posts" cannot filter them.
  • Scores, karma and follower counts are a snapshot from the moment of collection.

Changelog

0.1 (2026-10-20). First release. The first 100-account test skipped 23 accounts because their profiles are marked 18+. That rule dropped almost a quarter of the list, so accounts are never skipped for it now: isNsfw reports it and "Include 18+ posts" filters posts only.

Questions or a missing field? Open an issue in the Issues tab with your run ID.