Reddit Scraper avatar

Reddit Scraper

Under maintenance

Pricing

Pay per usage

Go to Apify Store
Reddit Scraper

Reddit Scraper

Under maintenance

Scrape Reddit posts, comments, users, and subreddits without login. Native nested comment trees, accurate in-subreddit search, fast direct JSON API. First 100 results free.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Silver

Silver

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Scrape Reddit posts, comments, users, and subreddits in a single dataset. Built directly on Reddit's .json API — no headless browser, no login, no surprises.

Posts, comments, users, subreddits — one clean dataset, type field discriminates rows ✅ Native nested comment treesreplies[] filled in, not flat with parent_idAccurate in-subreddit search — uses restrict_sr=on for scoped, relevant results ✅ Per-source diagnostics — clear summary at end of run explains exactly what each input produced ✅ First 100 results free — no credit card needed


What you can scrape

Drop in any combination of:

  • Subreddit URLs (reddit.com/r/python/, reddit.com/r/python/top/) → posts
  • Post URLs (reddit.com/r/python/comments/abc/...) → post + full comment tree (optionally nested)
  • User URLs (reddit.com/user/spez) → user profile + their submissions
  • Search queries scoped to a subreddit → relevant posts only

Every result lands in your dataset as one flat JSON record with a type field (post, comment, user, subreddit).


Quick start

Scrape a subreddit's hot posts

{
"startUrls": ["https://www.reddit.com/r/python/"],
"maxItems": 100,
"sort": "hot"
}

Scrape a post with its full nested comment tree

{
"startUrls": ["https://www.reddit.com/r/python/comments/1t3x7ba/..."],
"includeComments": true,
"nestedComments": true,
"maxCommentsPerPost": 200
}

Search relevant posts inside a community

{
"searches": ["pytest fixtures"],
"searchSubreddit": "python",
"sort": "relevance",
"maxItems": 50
}

Scrape a user's recent activity

{
"startUrls": ["https://www.reddit.com/user/spez/"],
"maxPostsPerSource": 25
}

Pricing

Per actor run$0.001
Per dataset item$0.00349 ($3.49 / 1,000)
Free trialfirst 100 results

Set maxItems on any run to cap your spend. The actor stops the moment that limit is reached.


Output schema

Every dataset item has a type discriminator: post, comment, user, subreddit.

type: "post"

FieldNotes
id, permalink, url, subreddit, subreddit_idReddit identifiers
author, author_id, author_flairPoster info — author_id is t2_xxx
title, texttext is selftext, may be empty for link posts
created_utcUnix seconds (not ISO string — easier to filter in code)
score, upvote_ratio, num_commentsEngagement
over_18, spoiler, stickied, locked, is_video, is_adFlags
flairPost flair text
media[]Structured `{type: image

type: "comment"

FieldNotes
id, permalink, post_id, parent_id, subredditIDs
author, body
score, created_utc, is_submitter, depth
replies[]Nested children when nestedComments=true, else []

type: "user"

FieldNotes
name, idUsername + Reddit's internal ID
link_karma, comment_karma, total_karma
created_utcUnix seconds, account creation
is_employee, verified, has_verified_email, is_modFlags
icon_imgAvatar URL

FAQ

Do I need a Reddit account? No. All endpoints used are public.

Will my IP / Apify account get banned? No. We don't post anything, don't authenticate, and stay well under Reddit's rate-limits. Apify's residential proxies (default) are rotated per run.

What's the difference between flat and nested comments? With nestedComments: false (default) every comment is a separate dataset row, linked by parent_id. With nestedComments: true each top-level comment includes its replies inline as a replies[] array.

Can I limit by date? Yes — set postsAfter to YYYY-MM-DD (UTC). Posts older than that are skipped.

My run returned 0 items — why? Check the run log. The actor emits an end-of-run summary listing every source URL with one of: OK, not_found (private/banned subreddit), blocked (rare), or error. If you used searches, set searchSubreddit to scope it — Reddit's global search is noisy.

Can I use my own proxy? Yes — pass it under proxy.proxyUrls. Apify's residential proxies (the default) are recommended; datacenter IPs are blocked by Reddit.


Need a more focused tool?

These specialized actors share the same engine but have simpler input forms:

  • Reddit Comments Scraper — post URLs in, full nested trees out (6 input fields)
  • Reddit User Scraper — usernames in, profile + activity out (4 input fields)
  • Reddit Search Scraper — keyword + community in, relevant posts out (8 input fields)

Changelog

0.4.0

  • Cleaner schema: 4 specialized actors share this engine
  • Added author_id, author_flair, is_ad to post output
  • End-of-run summary explains exactly what each source produced
  • Input validation catches non-Reddit URLs before consuming budget

0.1.0 — Initial release

  • Direct .json API (no headless)
  • 4 modes: subreddit, post+comments, user, search
  • Native nested-comments mode
  • Firefox TLS fingerprint with fallback ladder
  • restrict_sr=on for accurate in-subreddit search