Reddit User Scraper icon

Social media · Lead generation

Reddit User Scraper — Profile Export

Scrape any Reddit user's full submission and comment history by username — title, body, subreddit, score, timestamp and permalink per row. No auth, no OAuth, no API key.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

This Actor pages through every public Reddit user profile and collects the full submission and comment history for each username you provide. One row per post or comment: kind, ID, subreddit, title, body, URL, permalink, score, comment count, NSFW flag, and ISO-8601 timestamps. Ideal for OSINT timelines, recruiter due-diligence briefs, fraud-pattern detection, and academic user-activity research.

It reads Reddit's user-profile listing endpoints, paginates through all available pages, and writes clean typed rows into your Apify dataset — ready for JSON, CSV, or Excel export straight from the Console.

What we handle for you

  • 🛡️ Browser fingerprint rotationcurl-cffi impersonates real Firefox and Safari TLS handshakes so the target sees a browser, not Python. We rotate profiles per session to stay off the block list.
  • 🌐 Residential proxy rotation via Apify Proxy — every time we hit a rate-limit wall, we rotate the session and exit IP so the scrape keeps moving.
  • 🔁 Retries with exponential backoff — up to 5 attempts per page on 408 / 429 / 5xx, with Retry-After headers honoured to the second.
  • 🧱 Rate-limit-aware pacing — when Reddit pushes back, we back off and resume rather than get banned. Partial progress surfaces as a clear status message; we never silently return an empty dataset.
  • 🧊 Clean, typed dataset rows — Pydantic-validated fields, ISO-8601 timestamps, stable Reddit fullname IDs, and direct JSON / CSV / Excel export.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge beyond the small warm-up fee.

Use cases

  • OSINT investigations — reconstruct a user's complete public Reddit timeline for due-diligence, fraud detection, or digital-methods research.
  • Recruiter screening — pull a developer's Reddit history to understand their expertise, community engagement, and communication style before outreach.
  • Brand monitoring — track what specific accounts say about your product or space across subreddits.
  • Fraud-pattern detection — analyse posting cadence, subreddit distribution, and score trajectories to identify promotional or coordinated accounts.
  • Academic research — build labelled user-activity datasets for computational social science studies.
  • Content discovery — extract a user's highest-scoring posts for a portfolio or competitive-intelligence brief.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
usernames array yes List of Reddit usernames (without u/). URLs to user profiles are also accepted.
what string no Submitted posts, comments, or both.
sortBy string no Reddit listing sort order.
timeFilter string no Applies only when sortBy=top or controversial.
maxResultsPerUser integer no Reddit caps any listing at 1000 items. Set 0 for the cap.
{
  "usernames": [
    "spez"
  ],
  "what": "submitted",
  "sortBy": "new",
  "maxResultsPerUser": 3,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

kindidsubreddittitlebodypermalinkscorenum_commentsover_18created_at

{
  "kind": "submission",
  "id": "t3_abc123",
  "username": "spez",
  "subreddit": "AskReddit",
  "title": "What's your favourite movie?",
  "body": null,
  "url": "https://www.reddit.com/r/AskReddit/comments/abc123/",
  "permalink": "https://www.reddit.com/r/AskReddit/comments/abc123/whats_your_favourite_movie",
  "score": 142,
  "num_comments": 1283,
  "over_18": false,
  "created_utc": 1747339200,
  "posted_at": "2026-05-15T20:00:00+00:00",
  "scraped_at": "2026-05-16T08:31:00+00:00"
}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
Result emitted$0.0010Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

Limitations

  • 1 000-item cap per user per listing — Reddit hides items beyond position ~1 000 in any single listing. If a user has posted thousands of times, you'll receive the most recent 1 000 matching the chosen sortBy and timeFilter. For deeper historical pulls, combine multiple timeFilter passes or use a Pushshift-based Actor (separate product).
  • Deleted and suspended accounts — if a username no longer exists or has been suspended, the Actor logs a 404 or 403 and skips that user; remaining usernames in the batch still run.
  • Private subreddits — posts made in private subreddits are not visible on public user profiles and will not appear in output.
  • NSFW content on restricted proxies — some residential proxy exit IPs are geo-blocked by Reddit's NSFW gates. The Actor captures the NSFW flag but may skip body text if the proxy cannot access adult content.

FAQ

Is this legal?
The Actor reads the same public profile pages any logged-out browser visitor sees. Stick to public-record use cases — due diligence, fraud analytics, academic research, brand monitoring. Don't profile minors; don't use output to harass.
Is this a RedditMetis alternative?
RedditMetis is a great UI tool for exploring a single account interactively. This Actor is the headless, bulk, dataset-export complement: feed it 50 usernames, get back a structured dataset in 90 seconds. They cover different workflows; many researchers use both.
What is the `reddit user activity api` and why not just use it directly?
Reddit's public listing endpoints are rate-limited and block most datacenter IPs without a properly fingerprinted client. We handle the TLS impersonation, proxy rotation, session management, and pagination so you get a clean dataset — not a 429 loop.
How do I scrape both posts and comments?
Set what to "overview". You'll get a combined timeline of submissions and comments in a single run, each row tagged with kind: "submission" or kind: "comment".
Can I get comments _on_ a user's posts (not by the user)?
Out of scope for this Actor — we surface only the items the target user authored. To collect thread replies, use a Reddit thread scraper.
What happens if a user has been deleted or banned?
The Actor logs the failure, skips that username, and continues with the rest of the batch. The final set_status_message reports how many users completed vs. how many were skipped.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run