Reddit User Scraper — Posts, Comments & Profile avatar

Reddit User Scraper — Posts, Comments & Profile

Pricing

from $1.00 / 1,000 user profiles

Go to Apify Store
Reddit User Scraper — Posts, Comments & Profile

Reddit User Scraper — Posts, Comments & Profile

Scrape any Reddit user's recent posts and comments plus the websites they've shared — login-free, no proxy. One profile record per user.

Pricing

from $1.00 / 1,000 user profiles

Rating

0.0

(0)

Developer

James Taylor

James Taylor

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

A Reddit user scraper that pulls any Reddit user's recent posts and comments — plus the company website they've shared — in a single run. Give it a list of usernames and get back one clean profile record per user: their recent activity items and an inferred website. It's login-free, needs no API key, and no proxy — it reads Reddit's public feeds directly.

Built for lead research, contact enrichment, community and influencer analysis, and moderation — turning a raw list of Reddit handles into something you can act on.

Why this instead of a generic scraper?

Most Reddit profile scrapers demand an API key and OAuth dance, route you through paid proxies, or dump raw HTML you have to parse yourself. This one is deliberately simple: feed it usernames, get back a tidy JSON profile per user — recent posts and comments, the subreddits they're active in, and a best-effort company website mined from the links they've shared.

Because it reads Reddit's public RSS feeds, it needs no login, no API key, and no proxy, and it's polite by design (modest concurrency, a descriptive User-Agent, retries with backoff). Hand it the handles you already have — from a community export, a Reddit Lead Finder run, or your CRM — and it enriches each one in parallel.

What the Reddit User Scraper does

  • Fetches each user's recent activity (posts and comments) from their public login-free feed.
  • Returns one record per user: the activity items (title, subreddit, body, link, timestamp) plus an inferred company website mined from the external links they've shared, skipping social, news, and code hosts.
  • Runs multiple usernames in parallel (configurable) and de-duplicates handles automatically.
  • Never fabricates data — if a website can't be confidently inferred, the field is null.

Who it's for

  • B2B founders & sales teams enriching a list of Reddit handles with activity and a likely website.
  • Agencies profiling prospects and understanding which subreddits a contact frequents.
  • Community & influencer analysts sizing up what a user posts about and where.
  • Moderators & researchers reviewing a user's recent public footprint quickly.

Input

FieldTypeDefaultDescription
usernamesarray[]Reddit usernames to scrape (with or without u/). Required.
maxItemsPerUserinteger25Cap recent posts/comments captured per user (RSS serves up to ~25).
resolveWebsitebooleantrueInfer the user's likely company site from the links they've shared.
maxConcurrencyinteger4Parallel user fetches.

Example input

{
"usernames": ["spez", "founder_jane"],
"maxItemsPerUser": 25,
"resolveWebsite": true,
"maxConcurrency": 4
}

How to run

  1. Click Try for free (or open the actor in your Apify Console).
  2. Enter the usernames you want to scrape — with or without the u/ prefix, one per line.
  3. Set maxItemsPerUser to cap how many recent posts/comments are captured per user.
  4. (Optional) Toggle resolveWebsite off if you only need the activity items, not the inferred site.
  5. (Optional) Raise maxConcurrency to scrape a long list of usernames faster.
  6. Click Start. When the run finishes, open the Dataset tab and export to JSON/CSV/Excel, or pull it via the API (below).

Run it on a schedule (Apify Schedules) to re-enrich a watchlist of handles, or call it from Make / Zapier / n8n via the Apify integrations.

Output

One item per user:

{
"type": "profile",
"username": "founder_jane",
"profileUrl": "https://www.reddit.com/user/founder_jane",
"website": "https://getacme.io",
"itemCount": 25,
"items": [
{
"type": "comment",
"title": "Re: best CRM for a small team",
"subreddit": "SaaS",
"body": "We switched to Acme last year and…",
"url": "https://www.reddit.com/r/SaaS/comments/abc/_/xyz",
"createdAt": "2026-06-02T18:22:00.000Z"
}
]
}

Field notes:

  • username is the cleaned handle (the u/ prefix is stripped if you included it).
  • profileUrl is the canonical link to the user's Reddit profile.
  • website is best-effort — the most confident non-social domain mined from the links in the user's recent activity, returned as https://<domain>, or null when there's no clear signal (we never fake it). Set resolveWebsite to false to skip it entirely.
  • itemCount is how many activity items were captured (capped by maxItemsPerUser).
  • items[].type is either post or comment.
  • items[] carries the title, subreddit, body, url, and createdAt for each post or comment.

Export & API

# Last run's dataset items as JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=json&token=<APIFY_TOKEN>"

Or use the run-sync-get-dataset-items endpoint to run-and-wait in a single call — handy for embedding the actor in your own backend.

Limitations

  • Recent activity only. The public feed returns up to ~25 recent items per user, so this is a snapshot of recent posts and comments, not a full historical export.
  • No engagement scores. The feed doesn't expose per-item upvote or comment counts, so the actor doesn't return them (we never fake numbers).
  • website is inferred, not declared. It's present only when there's a confident non-social signal in the user's shared links, otherwise null. The profile bio is blocked to scrapers, so we infer from activity instead.
  • No real-time monitoring, DMs, or posting. The actor only reads — it never logs in, posts, votes, messages, or watches a feed continuously.
  • Suspended, shadowbanned, or inactive accounts may return no items; the run logs a hint when many usernames come back empty.

Compliance

This actor reads public Reddit activity feeds only, identifies itself with a descriptive User-Agent, runs at modest concurrency, and never logs in, posts, votes, or messages. You are responsible for using the output in line with Reddit's terms and any privacy, outreach, or marketing rules that apply to you.

FAQ

Do I need a Reddit account, API key, or proxy to scrape a Reddit user? No — the Reddit user scraper reads public RSS activity feeds directly, so there's no login, no API key, no OAuth, and no proxy required.

How do I scrape a Reddit user's posts and comments? Add their username (with or without u/) to the usernames list and run the actor. Each user comes back as one profile record containing their recent posts and comments under items.

Can I scrape multiple Reddit users at once? Yes — pass an array of usernames. They're fetched in parallel (controlled by maxConcurrency, up to 20), and duplicate handles are skipped automatically.

How do I get a Reddit user's company website or shared links? Keep resolveWebsite on (the default). The actor mines the external links a user has shared in recent activity and returns the most confident non-social domain as website, or null when there's no clear signal.

Why is the website field null for some users? Either the user hasn't shared an external company link in their recent activity, the only links are social/news/code hosts (which are skipped), or you turned resolveWebsite off. The bio isn't readable to scrapers, so the website is inferred from activity only.

How many posts and comments does it return per Reddit user? Up to ~25 recent items per user (the limit of the public feed). Use maxItemsPerUser to capture fewer; you can't exceed what the feed serves.

Does this Reddit profile scraper return upvotes or karma? No — Reddit's public feed doesn't expose upvote, comment, or karma counts, so the actor doesn't return them rather than guessing.

How fresh is the data? It reads the live feed on every run, so you always get the user's latest public posts and comments. Re-run on a schedule to keep a watchlist of handles enriched.

How is it priced and how do I control cost? Apify Pay-Per-Event — you're charged per user scraped (items plus inferred website included). The number of usernames you submit is your cost ceiling.


Want these profiles turned into outreach?

This actor enriches the handles you already have. Pair it with our Reddit Lead Finder to source intent-driven users first — then let SignalEngine enrich contacts and run AI-personalised outreach automatically. This actor is a taste of the engine that powers it.