Reddit Profile Crawler
Pricing
from $1.00 / 1,000 results
Pricing
from $1.00 / 1,000 results
Rating
3.0
(3)
Developer
Crawler Bros
Maintained by CommunityActor stats
2
Bookmarked
103
Total users
3
Monthly active users
2 days ago
Last modified
Categories
Share
Reddit Profile Scraper
Scrape Reddit user profiles — karma breakdown, verified email, premium status, avatar, bio, trophy case — plus a user's full post and comment history. Filter by subreddit, keyword, score, date range, post type, flair and 20+ other criteria. No Reddit API key, no login, no rate limits.
What this actor does
- Full profile data — post/comment/total karma, awardee & awarder karma, Reddit Premium, verified email, moderator & employee flags, avatar, bio, account age, optional trophy case and moderated-subreddit list
- Post and comment history — walk as deep as Reddit allows, sorted by New, Hot, Top or Controversial, with a date window
- Flexible sections — overview (posts + comments), posts only, or comments only, each with its own item cap
- 30+ filters — subreddit, keyword, score range, post type, flair, domain, awards, content length, and exclusion toggles for stickied/removed/crossposted/spoiler/locked/archived posts
- Flexible username input — bare usernames,
u/name, or full profile URLs - Empty fields are omitted from every record
Output: per-profile
One record per username (dataType: "user_profile") when "Include profile info record" is on:
username,user_id,profile_urlpost_karma,comment_karma,total_karma,awardee_karma,awarder_karmais_gold(Reddit Premium),is_mod,is_employee,has_verified_email,verifiedhas_subscribed,is_blocked,is_friend— relative to the logged-out viewing sessionpref_show_snoovatar,icon_img(avatar),snoovatar_img,snoovatar_sizeaccept_followers,hide_from_robotsuser_subreddit— the profile's bio (public_description), banner image, display name, title, subscriber count, NSFW flag, type and URLtrophies—[{name, icon_url}], when "Include trophies" is onmoderated_subreddits—[{subreddit, subreddit_prefixed, subscribers, subreddit_type, mod_permissions, over_18, url, icon_img, created_utc}], when "Include moderated subreddits" is oncreated_utc,created_at— account creation datecrawled_at,source
Output: per-post
One record per post (dataType: "post") returned by the posts or overview sections:
subreddit,subreddit_prefixed,subreddit_id,subreddit_subscribers,subreddit_typepost_id,post_name,titleauthor— bare username of the post authorauthor_meta— lean author-identity object:{username, id, flair, flair_background_color, flair_text_color, flair_css_class, flair_richtext, flair_template_id, flair_type, is_premium, is_blocked, has_patreon_flair}(built from data already on the post, no extra requests — does not include karma or other heavy profile fields; those live only on the separateuser_profilerecord)content,content_html— self-post body (empty for link posts)content_url,url,permalink,url_overridden_by_dest,domainpost_hint,is_self,post_type,media_typescore,ups,downs,upvote_ratio,num_comments,num_crossposts,num_duplicateslink_flair,link_flair_background_color,link_flair_text_color,link_flair_css_class,link_flair_template_id,link_flair_type,link_flair_richtextthumbnail_url,thumbnail_width,thumbnail_heightcreated_utc,created_at,edited,edited_atis_stickied,is_locked,is_archived,is_pinned,is_nsfw,is_spoiler,is_original_content,is_crosspost,crosspost_parent_idis_crosspostable,is_meta,is_reddit_media_domain,is_robot_indexable,is_created_from_ads_uiallow_live_comments,contest_mode,hide_score,content_categories,media_only,quarantine,suggested_sort,no_follow,send_repliesgilded,total_awards_received,awards—[{name, count, coin_price, icon_url}]removed_by_category,distinguishedhas_media,images,gallery_images,gallery_countvideo_url,video_duration_seconds,video_width,video_height,video_has_audio,video_bitrate_kbps— Reddit-hosted videospoll_data— poll options, vote counts and end timeembed_provider,embed_type,embed_title,embed_author_name,embed_thumbnail_url,embed_html,embed_width,embed_height— for link posts embedding YouTube, Imgur, Twitch, etc.search_term— the keyword filter that matched, when the keyword filter is setcrawled_at,source
Output: per-comment
One record per comment (dataType: "comment") returned by the comments or overview sections:
post_id,post_url,post_title,link_idcomment_id,comment_nameauthor— bare username of the comment authorauthor_meta— lean author-identity object:{username, id, flair, flair_background_color, flair_text_color, flair_css_class, flair_richtext, flair_template_id, flair_type, is_premium, is_blocked, has_patreon_flair}(built from data already on the comment, no extra requests)body,body_htmlscore,ups,downs,score_hidden,controversialitysubreddit,subreddit_prefixed,subreddit_idcreated_utc,created_at,edited,edited_atdepth,parent_id,parent_kind,is_op,comment_typeis_stickied,is_locked,distinguished,collapsed,collapsed_reason,collapsed_reason_code,collapsed_because_crowd_controlcan_gild,no_follow,send_replies,unrepliable_reasongilded,total_awards_received,awards—[{name, count, coin_price, icon_url}]removed_by_category,permalinksearch_term— the keyword filter that matched, when the keyword filter is setcrawled_at,source
Input
| Field | Type | Default | Description |
|---|---|---|---|
usernames | array | required | Reddit usernames to scrape — bare (spez), u/-prefixed, or profile URLs |
includeProfileInfo | boolean | true | Emit the profile-info record |
includeTrophies | boolean | false | Also fetch the trophy case (names + icons); one extra page load per user |
includeModeratedSubreddits | boolean | false | Also fetch the communities the user moderates |
sections | array | ["posts"] | History sections to scrape: overview (posts + comments), posts, comments |
maxPosts | integer | 100 | Max post items per user (1–5,000) |
maxComments | integer | 100 | Max comment items per user (1–5,000) |
sort | string | new | History sort order: new, hot, top, controversial |
timeFilter | string | all | Time window for top/controversial sort: hour, day, week, month, year, all |
includeNSFW | boolean | false | Include 18+ posts |
onlyWithFlair | boolean | false | Keep only posts that have a link flair set |
subreddits | array | – | Restrict to posts/comments made in these subreddits |
keyword | string | – | Keep only posts/comments whose title, self-text or body contains this text |
titleContains | string | – | Keep only posts whose title contains this text |
contentContains | string | – | Keep only self posts whose body contains this text |
flairContains | string | – | Keep only posts whose link flair contains this text |
authorFlairContains | string | – | Keep only posts whose author flair contains this text |
domain | string | – | Keep only posts whose link domain contains this text, e.g. youtube.com |
distinguished | string | – | Keep only moderator, admin, special, or none (regular) posts |
postType | string | – | Keep only posts of this type: self, link, image, video, gallery, poll |
minScore / maxScore | integer | – | Keep only posts/comments with a score in this range |
minPostComments / maxPostComments | integer | – | Keep only posts whose own comment count is in this range |
minUpvoteRatio | number | – | Keep only posts with an upvote ratio at or above this value (0–1) |
minAwards | integer | – | Keep only posts with at least this many total awards |
minContentLength / maxContentLength | integer | – | Keep only self posts whose body length (characters) is in this range |
onlyOriginalContent | boolean | false | Keep only posts tagged as original content |
excludeStickied | boolean | false | Drop stickied/pinned posts |
excludeRemoved | boolean | false | Drop removed/deleted posts |
excludeCrossposts | boolean | false | Drop crossposted posts |
excludeSpoilers | boolean | false | Drop spoiler-tagged posts |
excludeLocked | boolean | false | Drop posts with comments locked by a moderator |
excludeArchived | boolean | false | Drop posts Reddit has archived (6+ months old) |
excludeDeletedAuthor | boolean | false | Drop posts whose author account was deleted |
excludeKeywords | array | – | Drop posts whose title/body/flair contains any of these terms |
postedAfter / postedBefore | date | – | Keep only items created within this date range (UTC) |
Example: full profile snapshot
{"usernames": ["spez"],"includeProfileInfo": true,"includeTrophies": true,"includeModeratedSubreddits": true,"sections": []}
Example: recent posts in a subreddit with a keyword filter
{"usernames": ["u/gallowboob"],"sections": ["posts"],"sort": "new","maxPosts": 200,"subreddits": ["pics", "AskReddit"],"keyword": "photo","excludeStickied": true}
Example: top-scoring comments over the past year
{"usernames": ["spez"],"includeProfileInfo": false,"sections": ["comments"],"sort": "top","timeFilter": "year","maxComments": 500,"minScore": 50}
Example: multi-user overview with content-type and date filters
{"usernames": ["spez", "u/example_user", "https://www.reddit.com/user/another_user/"],"sections": ["overview"],"maxPosts": 100,"maxComments": 100,"postType": "self","minContentLength": 200,"postedAfter": "2025-01-01","postedBefore": "2025-12-31","excludeRemoved": true,"excludeDeletedAuthor": true}
Use cases
- User research — analyze an account's posting patterns, engagement and karma trends
- Community and account vetting — verify an account's age, karma, trophies and activity before trusting recommendations or partnerships
- Content discovery — pull a creator's or influencer's top posts by subreddit or keyword
- Moderation research — audit a user's post history for policy violations across specific communities
- Behavioral and social research — bulk-export user history for academic or market research
- Profile monitoring — track a user's activity over time on a schedule
FAQ
Do I need a Reddit API key or account login? No — the actor reads Reddit's public web data. No credentials required.
Why does this actor need a residential proxy? Reddit blocks datacenter IPs with a network-security interstitial, so the actor automatically routes every request through Apify's residential proxy group. This happens transparently — there's no proxy setting to configure.
Does it include private activity like upvotes or saved posts? No — only public posts and comments are accessible. Voting history, saved items and hidden posts are private to the account owner and not exposed by Reddit's public data.
Why is a field missing from some records?
Empty or not-applicable fields are omitted rather than returned as null or empty strings — for example, trophies only appears when the "Include trophies" option is on and the user has at least one trophy.
Are Reddit follower counts included?
Reddit doesn't expose follower counts publicly. The profile record includes accept_followers (whether the user allows followers) instead.
What happens for suspended or nonexistent usernames? The run completes and reports that no data was found for that username; suspended/nonexistent accounts return no public data. Banned accounts that still resolve return a minimal profile record with zeroed karma.
Is history capped?
Reddit itself caps a user's browsable history at roughly the most recent 1,000 items per section, regardless of maxPosts/maxComments.
Is this actor affiliated with Reddit? No — this is an independent, third-party actor that reads Reddit's public web pages and JSON endpoints. It is not built, endorsed or maintained by Reddit, Inc.
Can I filter to a date range?
Yes — use postedAfter / postedBefore (UTC dates) together with sort: "new" for the most reliable results, since newest-first sorting lets the scraper stop as soon as it passes the date window.
Can I export the results? Yes — download as JSON, CSV, Excel, XML or HTML, pull via the REST API, or connect through integrations like n8n, Zapier, Make, or an AI agent via the Apify MCP server.
