Reddit Profile Scraper
Under maintenancePricing
from $3.99 / 1,000 results
Reddit Profile Scraper
Under maintenanceScrape Reddit user profiles by username or profile URL — including karma, bio, avatar, account age, and optional recent posts and comments.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
Coding Frontned
Maintained by CommunityActor stats
0
Bookmarked
15
Total users
2
Monthly active users
11 days ago
Last modified
Categories
Share
Current verification — offline only, 2026-10-03
Offline repair and verification passed: 22 pure or explicitly mocked Node tests, five official Apify schema checks, nine preserved published defaults, and a tiny input validated without calling it. Parser checks execute the browser callback against minimal fictional DOM objects; they do not demonstrate real HTML parsing, Chrome execution, or source access.
This actor has no verified actual profile dataset. Its historical local browser execution was unavailable. No live Reddit request, browser or actor startup, dependency installation, Apify build/call/status operation, cloud change, or Git operation ran in this pass. A 403 observed for a sibling Reddit actor is separate evidence and is not a result for this actor. See LOCAL_VERIFICATION.md and CLOUD_VERIFICATION.md for precise limits.
What does Reddit Profile Scraper do?
Reddit Profile Scraper collects public Reddit profile pages for 1–100 usernames or credential-free profile URLs. It uses the legacy public Reddit HTML surface through Puppeteer/Chrome and normalizes profile identity, karma, account metadata, trophies, and optional recent public posts or comments into one dataset row per deduplicated username.
The Actor has a deterministic HTML fixture mode for local parser verification. A fixture run uses the same entrypoint, sanitizer, record validator, dataset, and OUTPUT summary contract as a live run and never falls back to Reddit.
Why use Reddit Profile Scraper?
Use it when you need repeatable, structured public profile records rather than page HTML. Profile names are deduplicated case-insensitively, recent activity is capped per profile, operational failures stay in OUTPUT, and the dataset contains successful public profiles only. The Actor does not log in, replay sessions, alter fingerprints, solve CAPTCHAs, or bypass access controls.
The source is Reddit. This Actor is not affiliated with Reddit.
What data can Reddit Profile Scraper extract?
Dataset rows use recordType: profile and may contain:
- Identity: profileId, username, profileUrl, sourceProfileUrl, and requestedUsername.
- Account data: commentKarma, linkKarma, awardeeKarma, awarderKarma, totalKarma, createdAt, accountAgeDays, account flags, subscribers, bio, avatar, and bannerImg.
- Activity: trophies, plus recentPosts and recentComments when requested and publicly available.
- Provenance: enrichment flags, maxRecentItems, extractionMethod, proxyConfigured, fingerprintApplied, retained rawProfile, and scrapedAt.
Rows are not emitted for a profile that cannot be verified as a complete public profile. Failed and blocked requests are summarized in the key-value store under OUTPUT, not mixed into the profile dataset.
How to scrape Reddit profiles
- Open the Actor’s Input tab or API tab and provide usernames.
- Run a small scope first. Use includeRecentPosts or includeRecentComments only when the additional public activity is needed.
- Review the dataset and the OUTPUT run summary. Use the Schedules feature for recurring collection and the Monitoring/Logs view to watch run status, failures, and resource use.
- For support, use the Issues or API support path and include the run ID plus a sanitized OUTPUT record. Never share credentials or private proxy URLs.
Live profile requests use the configured request timeout, handler timeout, retries, and delay. If Reddit returns a login wall, CAPTCHA, rate limit, WAF response, or another barrier, the Actor records a diagnostic and fails closed.
How much does it cost to scrape Reddit profiles?
The current Actor metadata charges $0.003 per profile added to the dataset. Platform compute, browser runtime, and any proxy traffic can also contribute according to your Apify plan. Check the Actor’s current Pricing tab before a large run; the pricing tab is authoritative if metadata changes.
Keep usernames and maxRecentItems bounded to control browser work and public requests.
Input
All inputs are strict JSON. usernames is required and accepts 1–100 usernames or public URLs. Usernames must contain 3–20 letters, numbers, underscores, or hyphens; profile URLs must be HTTPS Reddit URLs of the form https://www.reddit.com/user/USERNAME/. Duplicate names are removed case-insensitively.
| Section | Field | Default | Allowed values |
|---|---|---|---|
| Profile sources | usernames | required | 1–100 strings |
| Profile enrichment | includeRecentPosts | false | boolean |
| Profile enrichment | includeRecentComments | false | boolean |
| Profile enrichment | maxRecentItems | 25 | integer 1–100 per activity type and profile |
| Developer options | headless | true | boolean |
| Advanced request controls | requestTimeoutSecs | 60 | integer 10–180 |
| Advanced request controls | requestHandlerTimeoutSecs | 60 | integer 30–240 |
| Advanced request controls | maxRequestRetries | 0 | integer 0–3 |
| Advanced request controls | requestDelayMs | 0 | integer 0–10,000 milliseconds |
| Local verification | fixtureFile | none | safe relative .html, .htm, or .xhtml path |
| Developer options | proxyConfiguration | standard Apify proxy | object; set useApifyProxy: false for direct access |
The default proxy configuration is the standard Apify proxy configuration. Fixture mode disables network access and reports proxyConfigured: false, regardless of proxy input. A proxy may improve an authorized network route but does not bypass Reddit controls.
Basic input
{"usernames": ["spez", "example_user"]}
Enrichment and request controls
{"usernames": ["example_user"],"includeRecentPosts": true,"includeRecentComments": true,"maxRecentItems": 10,"requestTimeoutSecs": 90,"requestHandlerTimeoutSecs": 120,"maxRequestRetries": 1,"requestDelayMs": 500,"headless": true}
Local fixture and developer options
{"usernames": ["fixture_user"],"fixtureFile": "tests/fixtures/profile-fixture.html","includeRecentPosts": true,"includeRecentComments": true,"maxRecentItems": 5,"headless": true,"requestTimeoutSecs": 30,"requestHandlerTimeoutSecs": 60,"maxRequestRetries": 0,"requestDelayMs": 0,"proxyConfiguration": {"useApifyProxy": false}}
Output
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Example successful row:
{"recordType": "profile","profileId": "abc123","username": "example_user","profileUrl": "https://www.reddit.com/user/example_user/","commentKarma": 1234,"linkKarma": 5678,"totalKarma": 6912,"createdAt": "2020-01-02T03:04:05.000Z","accountAgeDays": 1460,"isGold": false,"isMod": false,"isEmployee": false,"hasVerifiedEmail": true,"isSuspended": false,"acceptFollowers": true,"subscribers": 250,"bio": "Example public profile description.","trophies": [],"recentPosts": [],"recentComments": [],"sourceProfileUrl": "https://www.reddit.com/user/example_user/","requestedUsername": "example_user","includeRecentPosts": false,"includeRecentComments": false,"maxRecentItems": 25,"extractionMethod": "old-reddit-profile-html","proxyConfigured": true,"fingerprintApplied": false,"rawProfile": {"username": "example_user"},"scrapedAt": "2026-09-10T00:00:00.000Z"}
The OUTPUT key-value record is a run summary or diagnostic with requested profiles, saved/failed/blocked counts, activity settings, browser and proxy state, fixture mode, and sanitized failure details. rawProfile is retained for compatibility; optional public values may be absent.
Tips and advanced options
- Start with one profile and small request controls, then increase scope gradually.
- Use maxRecentItems as a per-profile cap. Enabling both recent activity options can require multiple public pages per profile.
- Set headless: true for scheduled runs. It changes browser visibility only; it does not change access policy.
- Use a permitted Apify proxy when direct access is unavailable. useApifyProxy: false selects direct access; no proxy setting solves a CAPTCHA or WAF challenge.
- fixtureFile is local verification only, is limited to a safe path inside the Actor directory and a 2 MB HTML file, and never makes a live request.
- Check OUTPUT when the dataset is empty. A run with no usable profile rows fails instead of creating a false success.
FAQ, support, and responsible use
Does this Actor access private Reddit data?
No. It is limited to public profile surfaces and does not use credentials, private endpoints, or protected sessions.
Why is a profile missing?
The public profile may be unavailable, suspended, changed, rate-limited, or blocked by a login/CAPTCHA/WAF surface. Inspect the sanitized OUTPUT diagnostic; the Actor does not invent a partial success row.
Does it bypass Reddit controls?
No. It does not bypass authentication, CAPTCHAs, rate limits, geofences, WAF checks, robots or terms restrictions, or other access controls.
Public profiles can contain personal data. Collect and retain only what you have a lawful, legitimate purpose to use, respect Reddit’s terms and applicable privacy law, honor rate limits, and obtain any permissions your project requires. For help, use the Actor’s Issues/API support path with sanitized run details.
