Reddit Viral Scraper
Pricing
from $7.20 / 1,000 posts
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 $7.20 / 1,000 posts
Rating
5.0
(2)
Developer
AgentX
Maintained by CommunityActor stats
4
Bookmarked
51
Total users
10
Monthly active users
2 days ago
Last modified
Categories
Share
Reddit Viral Scraper is a Reddit keyword search scraper that turns one keyword into structured post records from across all communities, with engagement metrics, media links, state flags, crosspost spread, and an optional bounded comment sample.
- Five controls: one keyword, five sort modes, six time windows, a post cap, and an optional per-post comment cap.
- 44 documented fields per post, including the
duplicatesarray that shows how far an item spread across communities. - Comments are opt-in and separately capped, so a keyword sweep can stay cheap and a deep-dive can stay bounded.
Run a one-post test · View API
The smallest useful FREE-tier test is one post with comments disabled: one start plus one result totals $0.01500. Set a maximum total charge, because a search can return nothing and live prices can change.
What does Reddit Viral Scraper do?
It starts from a topic rather than a place. Give it a keyword and it queries Reddit's own search surface across communities, then writes each matching post as one dataset row with the post's text, its author and community context, the engagement values Reddit reports, media references, moderation and state flags, and the list of duplicate posts that reveal how widely the item was crossposted.
"Viral" here describes what you are looking for, not a prediction the Actor makes. It returns search-ranked posts and the raw engagement fields; any velocity calculation, virality threshold, or anomaly rule belongs downstream, where you control the definition. Reddit's search listing also stops near 250 results for any query no matter what limit is requested, so treat that as the ceiling for a single keyword and split broad topics into narrower ones.
How do I use Reddit Viral Scraper?
- Enter one
keyword— a phrase works as well as a single word. - Pick
sort_byandtime_filterto frame the question: recency, ranking, or discussion volume within a window. - Set
max_posts, and setmax_commentsto0unless you need threads. - Start the run and read the dataset, or export JSON, CSV, or Excel.
The smallest useful input:
{"keyword": "artificial intelligence","sort_by": "relevance","time_filter": "all","max_posts": 1,"max_comments": 0}
Input
| Input | Type | Required | Effect |
|---|---|---|---|
keyword | string | Yes | The search phrase sent to Reddit's cross-community search. One string per run. |
sort_by | string | Yes | relevance, hot, top, new, or comments. comments orders by discussion volume. |
time_filter | string | Yes | all, hour, day, week, month, or year. Restricts results to posts published in that window. |
max_posts | integer | Yes | 1–250 posts. Reddit's search listing stops near 250 results for any query, so 250 is the practical ceiling. |
max_comments | integer | Yes | 0–2000 comments per post. 0 skips comments entirely. |
Each cap is a maximum request, not a guarantee. Search availability, ranking, the chosen window, and source conditions can all return fewer records.
Output
One row per post, with 40 top-level fields in these groups:
| Group | Fields |
|---|---|
| Post | id, post_url, title, body, created_at, edited_at, flair_text |
| Author | author, author_flair |
| Community context | subreddit, subreddit_type, subreddit_subscribers |
| Engagement | score, upvote_ratio, comment_count, crossposts |
| Media | media_type, media_url, domain, thumbnail, images, video_url, video_duration, is_self, is_video, is_gallery, is_original |
| State flags | distinguished, removed_by, indexable, over_18, spoiler, locked, stickied, pinned, archived |
| Spread and discussion | duplicates, comments |
| Provenance | processor, processed_at |
An abbreviated row for the artificial intelligence example:
{"title": "What changed in AI tooling this year","subreddit": "MachineLearning","subreddit_subscribers": 2900000,"score": 1840,"upvote_ratio": 0.94,"comment_count": 213,"crossposts": 4,"over_18": false,"duplicates": ["https://www.reddit.com/r/artificial/comments/..."],"comments": [],"processed_at": "2026-08-02T10:15:33Z"}
Vote values are source-reported and Reddit may fuzz them, so do not treat score as audited arithmetic. Unavailable values stay null or empty.
Use cases
- Brand and product monitoring — track a product name across every community rather than a single subreddit.
- Trend and topic research — sort by
commentsinside adayorweekwindow to surface what is actually being discussed. - Spread analysis — use
duplicatesandcrosspoststo see which communities re-shared an item. - Content sourcing — collect high-
scoreposts on a theme for newsletters or research digests. - Sentiment pipelines — enable comments on a small post set and feed the threads to downstream classification.
Choose a community-first Actor instead when you already know where to look: searching a keyword to reach one subreddit's feed is slower, less complete, and more expensive than reading that feed directly.
API and integrations
The Actor ID is agentx/reddit-viral-scraper. Start a run and read the dataset with any HTTP client:
curl -X POST "https://api.apify.com/v2/acts/agentx~reddit-viral-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"keyword":"artificial intelligence","sort_by":"relevance","time_filter":"all","max_posts":1,"max_comments":0}'
The same input works from the Apify Console, the JavaScript and Python clients, Scheduler, and webhooks. For agent clients, connect to Apify MCP, fetch the Actor's details to load the current input schema, then call agentx/reddit-viral-scraper with a bounded charge and runtime. For larger sweeps, start the run asynchronously, poll its status, and read the dataset after it succeeds.
Pricing
This release uses event-based pricing. Actor Start is charged according to memory with a minimum of one start event. Result is charged for each dataset post, and Comment is charged for comment items retained inside those posts. Verify the live pricing page before production use.
| Event and billing unit | FREE | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
|---|---|---|---|---|---|---|
| Actor Start, per charged start event | $0.01000 | $0.01000 | $0.01000 | $0.01000 | $0.01000 | $0.01000 |
| Result, per dataset post | $0.00500 | $0.00450 | $0.00400 | $0.00375 | $0.00375 | $0.00375 |
| Comment, per retained comment | $0.00100 | $0.00090 | $0.00080 | $0.00075 | $0.00075 | $0.00075 |
Smallest useful FREE-tier calculation: one minimum start at $0.01000 plus one returned post at $0.00500 equals $0.01500 with comments disabled. A one-post, one-comment result would total $0.01600 at the same tier. Because comments are billed per item, keep max_comments low until you know a query's thread sizes.
Alternatives
Reddit's own search page is free and good for reading; it does not give you 40 normalized fields per post, deduplicated crosspost lists, or a schedulable export. Broad multi-purpose Reddit scrapers cover more surfaces but usually charge one flat per-item price whether you take a post or a comment, which gets expensive on comment-heavy threads — the split events here let a keyword sweep stay cheap. The honest counter-case: if your question starts with a community rather than a topic, Subreddit Posts Scraper reads that feed directly and returns more of it, since search caps out near 250 results.
Limits and troubleshooting
- Fewer posts than
max_posts— the cap is a maximum; search availability, ranking, and the time window can all return fewer. - Nothing returned — broaden
time_filter, try a simpler keyword, or switchsort_byfromrelevancetonew. - Large keyword sets — Reddit's search listing stops near 250 results per query; split a broad topic into narrower phrases.
- Adult content in results — a keyword search can return material marked adult; inspect
over_18and apply a content policy before display. - Comment array smaller than requested — deleted, collapsed, or unavailable comments and tree depth all reduce it.
- Charge limit reached — compare the start, result, and comment event counts against your limit before raising it.
Report a reproducible problem on the issues page with the run ID, the exact five-field input, and the expected versus observed dataset count.
Frequently asked questions
How do I search Reddit posts by keyword?
Enter one keyword, pick a sort mode and time window, and run: the Actor asks Reddit's own search surface to search Reddit posts by keyword and writes each matching post as one dataset row.
How do I find viral Reddit posts?
To find viral Reddit posts, sort by comments or top inside a recent time window such as day or week, then rank the returned rows by score, comment count, and crosspost spread downstream.
Can I search multiple keywords in one run?
No. The schema accepts one keyword string per run, which keeps each query's cost and results independently comparable. Run separate jobs for separate terms.
Does "viral" mean the Actor predicts future popularity?
No. It returns search-ranked posts and engagement fields. Any threshold, velocity calculation, or prediction must be defined and validated downstream.
What does the comments sort do?
It asks Reddit's search surface to order matching posts by discussion volume. The returned comments array is controlled separately by max_comments.
How does this differ from Subreddit Posts Scraper?
Subreddit Posts Scraper starts with a community and reads its listing. This Actor starts with a keyword and searches across all communities.
Do I need a Reddit account or API key?
No. Provide the five inputs and start the run.
Related AgentX Actors
- Subreddit Posts Scraper — read one community's feed directly when you already know where to look.
- SubReddit Info Scraper — profile a community that keeps appearing in your search results.
- Reddit Profile Scraper — deep-dive an author whose posts keep surfacing for your keyword.
Enrich your data with AgentX
- All Jobs Scraper — pair topic monitoring with hiring signals from 39 job platforms.
- All Shopping Scraper — add product and pricing context to a product-keyword sweep.
- All Video Scraper — resolve the video links surfaced by your keyword into metadata and files.
Support
Use public data responsibly: follow Reddit's terms, Apify's policies, and applicable law, minimize retained personal information, and require human review before consequential decisions. Do not use the output for harassment, deanonymization, or unsolicited targeting. Reddit Viral Scraper is an independent tool and is not affiliated with, endorsed by, or sponsored by Reddit, Inc.
- Actor issues page for reproducible technical problems.
- AgentX community & support on Telegram.
- Apify MCP guide for agent client setup.