Reddit User Scraper: Profile, Posts & Comments, No API Key avatar

Reddit User Scraper: Profile, Posts & Comments, No API Key

Pricing

from $6.15 / 1,000 results

Go to Apify Store
Reddit User Scraper: Profile, Posts & Comments, No API Key

Reddit User Scraper: Profile, Posts & Comments, No API Key

Look up any Reddit username and export their recent posts and comments plus profile tagline as clean JSON, CSV or Excel. Scrape many users at once by username or profile URL, in overview, submitted or comments mode. No API key and no login required.

Pricing

from $6.15 / 1,000 results

Rating

5.0

(1)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

5 days ago

Last modified

Share

Reddit User Scraper

Reddit User Scraper: Profile, Posts and Comments (No API Key)

Scrape any Reddit user by username and export their recent posts and comments plus the public profile tagline as clean JSON, CSV or Excel. Pass one username or hundreds, choose overview, submitted or comments mode, and get one tidy record per user. No API key, no OAuth, no login.

Here is one real result. recentPosts and recentComments are trimmed to one entry each for readability:

{
"username": "spez",
"profileUrl": "https://www.reddit.com/user/spez",
"description": "Reddit CEO",
"iconImg": null,
"id": null,
"postKarma": null,
"commentKarma": null,
"totalKarma": null,
"accountCreated": null,
"cakeDay": null,
"isGold": null,
"isEmployee": null,
"isMod": null,
"isVerified": null,
"trophies": null,
"numPostsFetched": 1,
"numCommentsFetched": 1,
"recentPosts": [
{
"recordType": "post",
"id": "1vgbkge",
"fullname": "t3_1vgbkge",
"title": "Modernizing Reddit's infrastructure with you",
"url": "https://www.reddit.com/r/u_spez/comments/1vgbkge/modernizing_reddits_infrastructure_with_you/",
"permalink": "https://www.reddit.com/r/u_spez/comments/1vgbkge/modernizing_reddits_infrastructure_with_you/",
"subreddit": "u_spez",
"subredditPrefixed": "r/u_spez",
"selftext": "Hi everyone, Last May, I shared how we were rebuilding our infrastructure...",
"contentHtml": "<!-- SC_OFF --><div class=\"md\"><p>Hi everyone,</p> ...</div><!-- SC_ON -->",
"thumbnail": null,
"domain": "self.u_spez",
"isSelf": true,
"isVideo": null,
"mediaUrls": null,
"galleryImageUrls": null,
"score": null,
"upvoteRatio": null,
"numComments": null,
"totalAwards": null,
"linkFlairText": null,
"isNsfw": null,
"isSpoiler": null,
"isOriginalContent": null,
"isPinned": null,
"isLocked": null,
"edited": false,
"editedAt": null,
"createdAt": "2026-08-05T16:03:56+00:00",
"updatedAt": "2026-08-05T16:03:56+00:00"
}
],
"recentComments": [
{
"recordType": "comment",
"id": "p1wosm9",
"fullname": "t1_p1wosm9",
"body": "That was the thinking. Otherwise it would be easier to just replicate the UI.",
"contentHtml": "<!-- SC_OFF --><div class=\"md\"><p>That was the thinking...</p></div><!-- SC_ON -->",
"subreddit": "u_spez",
"subredditPrefixed": "r/u_spez",
"linkTitle": "Modernizing Reddit's infrastructure with you",
"linkPermalink": "https://www.reddit.com/r/u_spez/comments/1vgbkge/modernizing_reddits_infrastructure_with_you/",
"permalink": "https://www.reddit.com/r/u_spez/comments/1vgbkge/modernizing_reddits_infrastructure_with_you/p1wosm9/",
"score": null,
"totalAwards": null,
"isSubmitter": null,
"edited": false,
"editedAt": null,
"createdAt": "2026-08-05T18:31:50+00:00",
"updatedAt": "2026-08-05T18:31:50+00:00"
}
],
"transport": "rss",
"observedAt": "2026-09-05T02:20:00.000Z",
"error": null
}

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

This is a Reddit user history scraper. Give it one or more usernames (or full profile URLs) and it returns, for each account, one normalized record with the public profile tagline plus the user's recent posts and comments. Use it for social media monitoring, brand and influencer research, moderation and abuse review, audience insights, sentiment datasets and academic study, all without a Reddit API key.

For every user you get:

  • The profile: username, profile URL and the public tagline/description.
  • Their recent posts (recentPosts): title, subreddit, permalink, outbound URL, self text (clean text plus original HTML), thumbnail and reddit-hosted media, gallery images, self vs link classification and ISO timestamps.
  • Their recent comments (recentComments): comment body (clean text plus HTML), the subreddit, the title and permalink of the post it was left on, the comment permalink and ISO timestamps.

You control how many posts and comments to pull per user, the sort order, and whether to fetch posts, comments or both.

What you can and cannot get

This actor reads Reddit's public user feeds over HTTP, with no login and no official API. That keeps it fast, key-free and resilient, but it means some profile metrics that Reddit only exposes through its logged-in API are not available and are returned as honest null rather than guessed or faked.

Returned (real data): username, profile URL, profile tagline/description, and full recent post and comment activity with clean text, HTML, media, subreddit, permalinks and timestamps.

Not available over the public feeds, returned as null: post karma, comment karma, total karma, account creation date, cake day, trophies, gold/premium, verified, moderator and employee flags, and per-post or per-comment score, upvote ratio, comment count and awards. These come only from Reddit's gated endpoints, which now block anonymous access. If you need live karma and vote scores, a browser or API based scraper is required (see How this compares).

Quickstart

Open the actor, paste this into the input, and press Run. It returns u/spez's recent posts and comments.

{
"usernames": ["spez"],
"withDetails": true,
"mode": "overview",
"maxPostsPerUser": 25,
"maxCommentsPerUser": 25,
"sort": "new"
}

Add more usernames to usernames to research many accounts in one run. Set withDetails to false for a fast, profile-only run, or set mode to submitted or comments to pull only one activity type.

Input reference

Every field is optional. With an empty input the actor looks up the default username.

FieldTypeRequiredDefaultDescription
usernamesstring[]no["spez"]Reddit usernames to scrape. Enter with or without the u/ prefix, or paste full profile URLs.
withDetailsbooleannotrueWhen enabled, each user record is enriched with their recent posts and comments. Disable for a faster, profile-only run.
modeenumnooverviewWhich activity to pull: overview (posts and comments), submitted (posts only), comments (comments only).
maxPostsPerUserintegerno25Maximum recent posts per user. 0 skips posts.
maxCommentsPerUserintegerno25Maximum recent comments per user. 0 skips comments.
sortenumnonewSort order for the activity feeds: new, hot, top, controversial.

Output reference

One dataset item per user. Types: string, boolean, string[], object[], or null when the value is absent or not exposed by the public feeds.

FieldTypeDescription
usernamestringThe resolved Reddit username.
profileUrlstringFull URL of the user's public profile.
descriptionstring | nullThe account's public tagline/description.
iconImgstring | nullAvatar URL when the account uses a custom one.
postKarma, commentKarma, totalKarmanullKarma. Not exposed by the public feeds (Reddit gated API only).
accountCreated, cakeDaynullAccount age. Not exposed by the public feeds.
isGold, isEmployee, isMod, isVerifiednullAccount flags. Not exposed by the public feeds.
trophiesnullTrophy case. Not exposed by the public feeds.
numPostsFetchedintegerNumber of posts included in recentPosts.
numCommentsFetchedintegerNumber of comments included in recentComments.
recentPostsobject[] | nullThe user's recent posts (fields below). Present when the mode includes posts.
recentCommentsobject[] | nullThe user's recent comments (fields below). Present when the mode includes comments.
transportstringData source marker (rss).
observedAtstringISO 8601 timestamp of collection.
errorstringnull on success. On a failed lookup a single item with a populated error and the username is written instead, and it is not billed.

Each object in recentPosts contains: id, fullname, title, url, permalink, subreddit, subredditPrefixed, selftext, contentHtml, thumbnail, domain, isSelf, isVideo, mediaUrls, galleryImageUrls, edited, editedAt, createdAt, updatedAt, plus score, upvoteRatio, numComments, totalAwards, linkFlairText, isNsfw, isSpoiler, isOriginalContent, isPinned, isLocked (these last ten are null, not exposed by the public feeds).

Each object in recentComments contains: id, fullname, body, contentHtml, subreddit, subredditPrefixed, linkTitle (the title of the post the comment is on), linkPermalink, permalink, edited, editedAt, createdAt, updatedAt, plus score, totalAwards, isSubmitter (these three are null, not exposed by the public feeds).

How this compares

Honest comparison. Browser or official-API based scrapers can read Reddit's logged-in fields and so return live karma and vote scores that the public HTTP feeds do not expose. This actor trades those metrics for speed, no API key, no login, and clean multi-user output.

CapabilityThis actorTypical Reddit user scrapers
Scrape by usernameYesSome (many require a full profile URL)
Multiple users per runYes, unlimited on paid plansOften one user per run
Accepts full profile URLsYesYes
Overview / submitted / comments modesYesSome
Recent posts with self text and HTMLYesYes
Recent comments with parent post title and linkYesYes
Reddit-hosted media and gallery imagesYesSome
One combined record per userYesOften a flat post/comment stream
Profile tagline / descriptionYesSome
No API key or login requiredYesVaries
Karma (post / comment / total)No (null)Yes (browser/API)
Cake day, trophies, account flagsNo (null)Yes (browser/API)
Per-post score, upvote ratio, comment count, awardsNo (null)Yes (browser/API)
JSON, CSV and Excel exportYesYes

If your workflow depends on live karma and vote scores, choose a browser or API based tool. If you need fast, key-free access to what users are actually posting and commenting, at scale, this actor is a strong fit.

Run via API and CLI

Start a run and 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,"mode":"overview","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"],"mode":"submitted","sort":"top","maxPostsPerUser":10}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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. 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. A profile-only record (withDetails off) is charged as a result event; a record enriched with recent posts and comments is charged as a details event. 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 error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable records.
  • Free Apify plans are capped at 10 users per run. Upgrade for more.
  • Turn off enrichment to save. Set withDetails to false for profile-only records charged at the lower result rate.

FAQ and troubleshooting

Do I need a Reddit API key or login? No. The actor reads Reddit's public user feeds over HTTP. There is nothing to authenticate.

Why are karma, cake day and post scores null? Those metrics are only served by Reddit's logged-in API, which now blocks anonymous access. Rather than fake them, the actor returns null. See What you can and cannot get. For live karma and scores, use a browser or API based scraper.

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 (or profile URL) 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 posts, or only comments? Set mode to submitted for posts only or comments for comments only. Use overview for both.

Why is url different from permalink on some posts? For link posts, url is the outbound link and permalink is the Reddit discussion page. For self (text) posts, both point at the Reddit post.

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.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for public platforms: social media, 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.