Reddit Viral Scraper avatar

Reddit Viral Scraper

Pricing

from $3.75 / 1,000 results

Go to Apify Store
Reddit Viral Scraper

Reddit Viral Scraper

Reddit keyword search scraper that finds viral posts across communities and exports 40 post fields with engagement metrics, media, and crosspost spread. Five sort modes, time windows, optional bounded comments; Reddit search caps near 250 results per query. From $3.75 per 1,000 posts.

Pricing

from $3.75 / 1,000 results

Rating

5.0

(2)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

4

Bookmarked

54

Total users

9

Monthly active users

2 days ago

Last modified

Share

Reddit Viral Scraper is a reddit keyword search scraper that turns one topic into structured post records from communities returned by Reddit search, including engagement, media, polls, crosspost spread, and optional comments. It is designed for research workflows that begin with a subject rather than a known account or community.

Apify Users Apify Runs price capability API + MCP ready

  • Five required controls define the keyword, Reddit sort mode, source time window, post cap, and optional comment depth.
  • 52 top-level Dataset fields retain post identity, community and author IDs, engagement, media, gallery, video, poll, state, crosspost, discussion, and provenance facts.
  • Viral discovery stays explainable because the Actor returns Reddit's source ordering, scores, comment counts, upvote ratio, and duplicate-link spread instead of inventing a proprietary virality label.
  • Large comment threads stay bounded by input while a 2,000-comment built-image probe returned 2,000 unique comments with resolved reply levels.

The smallest useful FREE-tier run uses one post and no comments; one Actor Start plus one Result costs at most $0.01500 under the configured price contract.

Why Choose Reddit Viral Scraper

Topic-first discovery. Search a product, event, organization, phrase, or research theme across the communities Reddit returns instead of choosing a subreddit in advance.

Source ranking without invented scores. Select relevance, hot, top, new, or comments and keep the source-reported values needed to build your own downstream threshold.

Cross-community spread. crossposts, crosspost_id, crosspost_url, and duplicates show when a post or target link appears in other communities.

Rich media and discussion context. Results can carry image arrays, gallery captions, Reddit-hosted video facts, poll options and vote totals, and an optional nested comment sample.

Stable automation shape. Every Dataset row uses the same 52-field contract and ends with processor and an ISO processed_at timestamp.

Quick Start Guide

Configure

Open the Actor input and enter the topic you want to monitor. Choose the ordering and time window that match the question: new/day for recent mentions, comments/week for active discussions, or top/year for strong historical engagement.

Run

The public prefill is deliberately small enough for a recurring liveness test:

{
"keyword": "artificial intelligence",
"sort_by": "relevance",
"time_filter": "all",
"max_posts": 1,
"max_comments": 0
}

Collect

Open the default Dataset after the run succeeds. JSON or JSONL preserves nested comments, galleries, polls, images, and duplicate arrays; CSV or Excel is convenient when only flat post metrics are needed.

Input Parameters

Reddit Viral Scraper exposes five required inputs in schema order and sends no hidden keyword, community, or date filters.

ParameterTypeRequiredDescriptionPrefill
keywordstring, 1–512 charactersYesTopic or phrase sent to Reddit searchartificial intelligence
sort_byenumYesrelevance, hot, top, new, or commentsrelevance
time_filterenumYesall, hour, day, week, month, or yearall
max_postsinteger, minimum 1YesMaximum post rows requested1
max_commentsinteger, minimum 0YesMaximum comments retained per post; 0 skips comment reads0

Neither numeric input has a configured maximum. The cap is a request boundary rather than a source-inventory promise: in a real broad-query probe, Reddit returned 230 posts and then ended even when 300 or 1,000 were requested.

Output Data Schema

One Dataset row represents one Reddit post; the public contract has 52 top-level fields.

GroupFields
Communitysubreddit, subreddit_id, subreddit_type, subreddit_subscribers
Post identity and textid, url, title, body, flair_text, created, edited
Authorauthor, author_id, author_flair
Engagement and spreadscore, score_hidden, upvote_ratio, comment_count, crossposts, crosspost_id, crosspost_url, duplicates
Statearchived, locked, stickied, over_18, spoiler, original, removed_by, gilded, distinguished, categories
Mediamedia_type, domain, thumbnail, images, gallery, media_url, video_url, video_duration, video_width, video_height, video_bitrate, has_audio, is_gif, is_self, is_video, is_gallery
Discussion and pollspoll, comments
Provenanceprocessor, processed_at

An abbreviated post row:

{
"subreddit": "AskReddit",
"id": "1ub2f4v",
"author": "example_user",
"url": "https://www.reddit.com/r/AskReddit/comments/1ub2f4v/example/",
"title": "What scares you most about artificial intelligence?",
"score": 2,
"upvote_ratio": 0.67,
"comment_count": 98,
"crossposts": 0,
"is_self": true,
"media_url": null,
"duplicates": [],
"comments": [],
"processed_at": "2026-08-12T11:31:12+00:00"
}

Unavailable values remain null or empty according to the schema. Reddit can fuzz or hide engagement values, so score is a source snapshot rather than an audited vote count.

Integration Examples

Reddit Viral Scraper can run from Console, the Apify API, official clients, schedules, webhooks, Make, n8n, or the Apify MCP server.

Actor ID

dM1WGhL57QQWIRlJG

Also addressable by name as agentx/reddit-viral-scraper — both forms work in the API, the SDKs, Make.com, and n8n.

HTTP

curl -X POST "https://api.apify.com/v2/acts/dM1WGhL57QQWIRlJG/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keyword":"artificial intelligence","sort_by":"relevance","time_filter":"all","max_posts":1,"max_comments":0}'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("dM1WGhL57QQWIRlJG").call(run_input={
"keyword": "artificial intelligence",
"sort_by": "relevance",
"time_filter": "all",
"max_posts": 1,
"max_comments": 0,
})
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('dM1WGhL57QQWIRlJG').call({
keyword: 'artificial intelligence',
sort_by: 'relevance',
time_filter: 'all',
max_posts: 1,
max_comments: 0,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Make.com and n8n

Use the Apify integration to run Actor ID dM1WGhL57QQWIRlJG, wait for completion, and pass default Dataset items to the next module or node. Preserve JSON when nested arrays matter.

MCP

Connect the official Apify MCP server, expose this Actor, and give the agent the same five-field input object. Keep post and comment limits small until the workflow is verified.

Pricing

Reddit Viral Scraper uses pay-per-event pricing with one start event and separate post Result and retained Comment events.

EventFREEBRONZESILVERGOLDPLATINUMDIAMOND
Actor Start$0.01000$0.01000$0.01000$0.01000$0.01000$0.01000
Result$0.00500$0.00450$0.00400$0.00375$0.00375$0.00375
Comment$0.00100$0.00090$0.00080$0.00075$0.00075$0.00075

The start event is one-time, subject to the configured memory rule. A comment is charged only when it is retained in a post result. Use max_comments: 0 for post-only discovery and set a maximum total charge before scaling.

Use Cases

Reddit Viral Scraper supports topic monitoring and research where public Reddit search results are an appropriate source.

  • Brand and product monitoring — find posts that mention a name across returned communities.
  • Trend research — compare new, top, and comments within fixed time windows.
  • Community spread analysis — inspect crosspost identifiers and duplicate target links.
  • Content research — collect titles, text, media, galleries, videos, and polls around a theme.
  • Discussion sampling — retain a bounded comment set for downstream classification or review.
  • Scheduled snapshots — rerun a stable query and compare processed_at, ranking, and engagement fields.

Alternatives

Choose the access method that matches the workflow and authorization model.

AlternativeBest whenTrade-off
Reddit Data APIYou have OAuth credentials and the permissions required for your useOfficial integration surface; commercial use may require Reddit approval or a contract
An API-styled Reddit search productYour developer workflow is organized around API-style structured searchSame source capability under a different product shape and price
Subreddit Posts ScraperYou already know the community to crawlCommunity-first rather than keyword-first discovery
Manual Reddit searchYou need a few results onceNo repeatable Dataset, scheduling, API, or provenance

This Actor is not Reddit's official API and is not affiliated with Reddit.

Limits and Troubleshooting

Reddit source availability, ranking, and public visibility determine what a run can return.

  • Fewer posts than requested: Reddit ended the search, the keyword/window has fewer visible matches, or duplicate IDs were removed. A measured broad query stopped at 230.
  • No result: try a broader keyword, time_filter: all, or a different sort after a few minutes; a temporary browser/proxy wall is reported separately from a valid empty search.
  • Slow comment runs: reduce max_comments or the number of posts. A 2,000-comment probe completed in about 24 seconds, but source and network conditions vary.
  • Empty comments with a nonzero source count: local or platform event limits can retain fewer comments than collected; the terminal status distinguishes shipped from collected counts.
  • Null media or author fields: the post may be text-only, deleted, removed, or missing that source value. Null is not replaced with an invented value.
  • Large requests: the Actor has no configured numeric maximum, but a larger cap does not extend Reddit's own result inventory.

Trust and Reliability

The Actor preserves source facts, bounded failure states, and explicit provenance instead of silently converting unread paths into empty content.

The 2026-08-12 built-image design run sampled 1,199 posts across all sort modes and time windows, including galleries, videos, polls, crossposts, comment trees, withheld comment IDs, and duplicate paths. The 52-field Dataset contract, input validation, pricing cutover, browser gate, memory floor, and real lifecycle were validated before this README update.

Use Reddit Viral Scraper only for lawful workflows that respect Reddit's terms, privacy expectations, intellectual-property rights, and applicable data-protection rules.

Reddit's official Data API wiki explains OAuth access, while its data access guidance describes approval requirements for commercial uses. This Actor uses its own public signed-out browser path and does not grant official API rights or permission to republish personal data. Minimize stored data, protect exports, and honor valid deletion or access requests that apply to your workflow.

Frequently Asked Questions

How do I search reddit posts by keyword?

Set keyword, choose sort_by and time_filter, keep max_posts small for the first run, and set max_comments to 0 unless thread content is required.

How do I find viral reddit posts?

Use source signals rather than a hidden label: try top or comments inside a fixed time window, then rank the returned score, comment_count, upvote_ratio, crossposts, and duplicates according to your own definition.

Does the Actor predict which post will become viral?

No. It returns Reddit search ordering and source-reported engagement facts; forecasting and thresholds belong in downstream analysis.

Can I search one subreddit only?

No subreddit input is exposed. Use Subreddit Posts Scraper when the community is already known.

Do I need a Reddit account or API key?

No Reddit credential is requested from the user. You need an Apify account and token for API-based Actor runs.

Why did a request for 1,000 posts return about 230?

max_posts controls the Actor's stop point, not Reddit's source inventory. In the measured broad query, Reddit ended after 230 unique posts.

Are comments complete discussion archives?

Only up to max_comments are retained for each post, and source availability still applies. Use the limit as a bounded sample unless your run evidence proves otherwise.

Are Reddit scores exact vote totals?

No. Reddit can fuzz or hide engagement values; treat each value as a time-stamped source observation.

AgentX publishes 77 Actors — the three closest Reddit workflows first, then the full catalog by category.

Closest to this Actor:

Business and Market Intelligence

Jobs and Hiring

Social Media

Video, Transcripts and Downloads

E-Commerce and Retail

Classifieds and Automotive

Real Estate

Support and Community

Ask about Reddit keyword searches, result limits, billing, and exports in the AgentX community on Telegram; for a reproducible bug, open an Issue with the run ID and exact input.

AgentX is an Arcyton brand — arcyton.com.

Last Updated: August 15, 2026