Reddit Scraper (subreddit posts, search, comments, no login) avatar

Reddit Scraper (subreddit posts, search, comments, no login)

Pricing

from $1.60 / 1,000 result items

Go to Apify Store
Reddit Scraper (subreddit posts, search, comments, no login)

Reddit Scraper (subreddit posts, search, comments, no login)

Scrape Reddit subreddit listings (new, hot, top, rising) and search results: one row per post with title, text, score, comments, flair and domain. Optional comment rows per post. No login, no author names or handles collected. Monitor mode alerts only on new posts, never on score churn.

Pricing

from $1.60 / 1,000 result items

Rating

0.0

(0)

Developer

Viktor Dubnytskiy

Viktor Dubnytskiy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Get subreddit listings (new, hot, top, rising) and site-wide search results from Reddit's own public .json API — one row per post, with an optional row per comment. No Reddit account, no login, no cookies.

What you get

Real rows from the example dataset (subreddit webscraping, sort new):

titlescorecommentCountdomainsource
"What browsers should be paired with cdp's like patchright or pydoll?"24self.webscrapingr/webscraping/new
"Low-latency scraping to semi-automated checkout flow"54self.webscrapingr/webscraping/new
"Computer Vision + mouse and keyboard scraper?"613self.webscrapingr/webscraping/new

Full row (post): id, url, type, subreddit, title, text, linkUrl, domain, score, upvoteRatio, commentCount, flair, isNsfw, isVideo, thumbnailUrl, createdAt, source, query, scrapedAt. Comment rows (type: comment) swap the post-only fields for postId, postUrl, depth, parentId.

No usernames, no author flair, no avatars — post and comment authors are dropped entirely. Only public post/comment text and counters are collected; the subreddit itself is the entity, not the people posting in it.

Use cases

  • Track a subreddit for new posts (monitor mode) without polling Reddit yourself or maintaining OAuth credentials.
  • Pull recent discussion and comment threads for a topic across all of Reddit via search.
  • Build a dataset of post titles, scores and flair for a set of subreddits to analyse trends over time.

Try it in 10 seconds

Hit Start/Try it — the input already works: subreddits: ["webscraping"], sort: "new", maxPostsPerSource: 100, maxItems: 200, nothing required.

To watch a subreddit for new posts only: save the task, set Mode to monitor, and put it on a schedule (Apify → Schedules → cron 0 8 * * 1 for weekly). Each run then returns only posts that are new since last time — a score or comment-count change overnight never triggers a false "change" event.

How it works

Each subreddit and search query is read through Reddit's own <subreddit>/<sort>.json and search.json endpoints — the same JSON the Reddit web app itself uses, paginated with the after cursor. Comments (optional) come from the post's own comments/<id>.json endpoint, flattened up to two reply levels. A short page or a page whose posts have all been seen already ends pagination for that source.

Proxy: Reddit answers .json requests from a plain or residential exit with a 403 verification page; this actor always reads through Apify's Web Unblocker, billed per request on top of the flat result price below.

Input

FieldMeaningDefault
subredditsSubreddit names or URLs to list, e.g. webscraping["webscraping"]
sortnew, hot, top or risingnew
timeRangeTime window for sort=topweek
searchesSite-wide search queriesempty
searchSortrelevance, new or toprelevance
maxPostsPerSourcePosts fetched per subreddit/query100
includeCommentsAlso fetch comment rows per postfalse
maxCommentsPerPostComment rows kept per post50
maxItemsStop after this many rows total200
modescrape or monitor (only new posts since last run)scrape
monitorStateId, webhookUrl, telegramBotToken, telegramChatIdMonitor-mode state key and alert targetsempty

Pricing

EventPrice
result$0.002 per row ($2 per 1,000)
monitor-check$0.006 per monitor run
change$0.002 per new post

Charged only for rows actually pushed. Web Unblocker proxy traffic is billed by Apify on top of the result price.

Why this actor

  • No Reddit account, no OAuth app registration, no rate-limit management on your side.
  • Comment threads in the same run as the posts that started them, with maxCommentsPerPost keeping the bill predictable.
  • Monitor mode keys strictly on the post id, so it alerts you when a genuinely new post appears — a post's score or comment count changing overnight never triggers a false "change" event.
  • A run that finds nothing pushes nothing and charges no result events; the run summary explains why (banned/private/nonexistent subreddit vs. an actual wall) instead of leaving you guessing.

Limits

  • A private, banned or quarantined subreddit, or a subreddit that does not exist, is skipped (Reddit answers all three with the same HTTP 404) — it is not treated as a block.
  • text and comment text are truncated at 5,000 characters.
  • No vote data beyond the public score and upvote ratio Reddit itself publishes; no per-user voting history.

FAQ

Does it need a Reddit account or API key? No. Every request goes through the same public .json endpoints a logged-out browser can read.

Are usernames included? No. Author names, flair and avatars are dropped from both post and comment rows; only the subreddit (a community, not a person) and the post/comment content are kept.

What happens when a subreddit is empty or doesn't exist? No rows are pushed for it and no result events are charged for it. The RUN_SUMMARY record in the run's key-value store separates a genuinely missing/banned/private subreddit from an actual verification wall.

Changelog

  • 0.1: initial release — subreddit listings, site search, optional comment rows, monitor mode keyed on post id.

If this actor saved you time, a short review on its Store page genuinely helps other people find it. Found a bug or need a field that is missing? Open a ticket on the Issues tab.