Reddit User Profile, Posts & Comments Scraper
Pricing
from $6.15 / 1,000 results
Reddit User Profile, Posts & Comments Scraper
Look up any Reddit user by username and extract their full profile plus recent posts and comments. Get post karma, comment karma, total karma, cake day, trophies, mod status and activity. Export to JSON, CSV or Excel.
Pricing
from $6.15 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
20 hours ago
Last modified
Categories
Share
Reddit User Profile, Posts & Comments Scraper
Here is one real result, with every field the actor returns. The trophies list is trimmed to its first 6 of 31 real entries, and recentPosts and recentComments are trimmed to 2 real entries each, for readability:
{"username": "spez","profileUrl": "https://www.reddit.com/user/spez","postKarma": 184425,"commentKarma": 756478,"totalKarma": 940903,"accountCreated": "2005-06-06T04:00:00.000Z","cakeDay": "June 6","isGold": true,"isAdmin": true,"isMod": true,"isVerified": true,"trophies": ["15-Year Club", "Second", "Inciteful Link", "Mod Meetup 2026", "Mod World 2025", "20th Cakeday Participation"],"numPostsFetched": 10,"numCommentsFetched": 25,"recentPosts": [{"thumbnail": null,"title": "Modernizing Reddit's infrastructure with you","url": null,"id": "1vgbkge","subreddit": "u_spez","score": 299,"numComments": 344,"totalAwards": 0,"linkFlairText": null,"permalink": "https://www.reddit.com/user/spez/comments/1vgbkge/modernizing_reddits_infrastructure_with_you/","domain": "self.spez","isSelf": true,"isNsfw": false,"isOriginalContent": false,"createdAt": "2026-08-05T16:03:56.000Z"},{"thumbnail": null,"title": "21 years of Reddit","url": null,"id": "1u7hraf","subreddit": "u_spez","score": 876,"numComments": 292,"totalAwards": 0,"linkFlairText": null,"permalink": "https://www.reddit.com/user/spez/comments/1u7hraf/21_years_of_reddit/","domain": "self.spez","isSelf": true,"isNsfw": false,"isOriginalContent": false,"createdAt": "2026-06-16T16:04:27.000Z"}],"recentComments": [{"id": "p1wosm9","body": "That was the thinking. Otherwise it would be easier to just replicate the UI.","subreddit": "u_spez","score": 7,"totalAwards": 0,"linkTitle": "Modernizing Reddit's infrastructure with you","permalink": "https://www.reddit.com/user/spez/comments/1vgbkge/modernizing_reddits_infrastructure_with_you/p1wosm9/","edited": false,"createdAt": "2026-08-05T18:31:50.000Z"}],"observedAt": "2026-08-10T14:40:02.622Z","error": null}
The most complete Reddit user scraper available. It resolves any username to a full profile, from post, comment and total karma to cake day, gold, admin, mod and verified status and the account's trophy case, and optionally enriches it with the user's recent posts and comments, so you get one clean record per user in a single run.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor looks up each username you pass, reads the public profile, and writes one normalized record per user to the run's dataset. Each record carries karma (post, comment and total), account age (accountCreated and cakeDay), the gold, admin, mod and verified flags, and the full trophies list. When Fetch Recent Posts and Comments is enabled it also pulls the user's most recent posts and comments into the recentPosts and recentComments arrays. Timestamps are normalized to ISO 8601 and missing source values are returned as null.
Quickstart
Open the actor, paste this into the input, and press Run. It returns the full profile of u/spez plus recent activity.
{"usernames": ["spez"],"withDetails": true,"maxPostsPerUser": 10,"maxCommentsPerUser": 25,"sort": "new"}
Add more usernames to usernames to research several accounts in one run. Set withDetails to false for a faster, profile-only run.
Input reference
Every field is optional. With an empty input the actor looks up the default username.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
usernames | string[] | no | ["spez"] | Reddit usernames to research. Enter them with or without the u/ prefix, for example spez, GovSchwarzenegger. |
withDetails | boolean | no | true | When enabled, each profile is enriched with the user's recent posts and comments. Disable for a faster, profile-only run. |
maxPostsPerUser | integer | no | 25 | Maximum recent posts to fetch per user. Used when withDetails is enabled. 0 skips posts. |
maxCommentsPerUser | integer | no | 25 | Maximum recent comments to fetch per user. Used when withDetails is enabled. 0 skips comments. |
sort | enum | no | new | Sort order for the recent posts and comments feeds: new, hot, top, controversial. |
Output reference
One dataset item per user. Types: string, integer, boolean, string[], object[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
username | string | The resolved Reddit username. |
profileUrl | string | Full URL of the user's public profile. |
postKarma | integer | Karma earned from posts. |
commentKarma | integer | Karma earned from comments. |
totalKarma | integer | Combined post and comment karma. |
accountCreated | string | ISO 8601 account creation timestamp. |
cakeDay | string | Human-readable account anniversary, for example June 6. |
isGold | boolean | true when the account has Reddit Premium/Gold. |
isAdmin | boolean | true when the account is a Reddit admin. |
isMod | boolean | true when the account is a moderator. |
isVerified | boolean | true when the account has a verified email. |
trophies | string[] | Names of the trophies in the user's trophy case. |
numPostsFetched | integer | Number of recent posts included in recentPosts. |
numCommentsFetched | integer | Number of recent comments included in recentComments. |
recentPosts | object[] | The user's recent posts (see fields below). Present when withDetails is enabled. |
recentComments | object[] | The user's recent comments (see fields below). Present when withDetails is enabled. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed lookup, a single item with a populated error field and the username is written instead. |
Each object in recentPosts contains: id, title, url, permalink, subreddit, domain, score, numComments, totalAwards, linkFlairText, thumbnail, isSelf, isNsfw, isOriginalContent, createdAt.
Each object in recentComments contains: id, body, subreddit, score, totalAwards, linkTitle (title of the post the comment is on), permalink, edited, createdAt.
Example output record
Real recentComments entry from the same run (input {"usernames": ["spez"]}):
{"id": "p1wosm9","body": "That was the thinking. Otherwise it would be easier to just replicate the UI.","subreddit": "u_spez","score": 7,"totalAwards": 0,"linkTitle": "Modernizing Reddit's infrastructure with you","permalink": "https://www.reddit.com/user/spez/comments/1vgbkge/modernizing_reddits_infrastructure_with_you/p1wosm9/","edited": false,"createdAt": "2026-08-05T18:31:50.000Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~reddit-user-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"usernames":["spez"],"withDetails":true,"maxPostsPerUser":25,"maxCommentsPerUser":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~reddit-user-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"usernames":["spez","GovSchwarzenegger"],"withDetails":false}'
Apify CLI:
apify call scrapers_lat/reddit-user-scraper \--input '{"usernames":["spez"],"sort":"top","maxPostsPerUser":10}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields. Note that nested arrays (recentPosts, recentComments) flatten into indexed columns in CSV and Excel.
Billing and limits
- Pay per result. You are charged per user record returned (
resultevent). WhenwithDetailsis on and recent activity is successfully enriched, an add-ondetailsevent is also charged. See the pricing tab for current prices. - No charge on failure. If a username cannot be resolved, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 usernames per run. Upgrade for more.
- Turn off enrichment to save. Set
withDetailstofalsefor profile-only records with nodetailscharge.
FAQ and troubleshooting
A user returned an error. Why?
The username does not exist, was suspended, or the account is deleted or private. The actor writes a single item with a populated error field and does not charge for it.
How do I research several users at once?
Add each username to usernames. The actor writes one record per user, up to the free-plan cap of 10 per run on free accounts.
How do I get only the profile, without posts and comments?
Set withDetails to false. The recentPosts and recentComments arrays are omitted and no details event is charged.
Can I control how much activity is pulled?
Yes. Set maxPostsPerUser and maxCommentsPerUser (set either to 0 to skip that feed) and choose the sort order.
Why is url null on some recent posts?
Self (text) posts have no outbound link; their content lives on the post page. Link posts populate url.
Is this an official Reddit tool? No. This actor is independent and has no affiliation with Reddit. It reads only data that is publicly available on Reddit. Use it in accordance with Reddit's terms.
Related scrapers
- Reddit Posts & Comments Scraper: full subreddit feeds and comment trees.
- Reddit Keyword Search & Mentions Scraper: Reddit search results and mention tracking.
- Reddit Trending Scraper: trending posts from r/popular and r/all.
- GitHub Contributor Contacts Scraper: contributors and public contact details.
- Hacker News Scraper: Hacker News stories, comments and points.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Reddit. Accesses only publicly available Reddit data. Use in accordance with Reddit's terms.
