Subreddit Posts Scraper
Pricing
from $7.20 / 1,000 posts
Subreddit Posts Scraper
Subreddit posts scraper for one community with new, top, hot, rising, or controversial sorting: 43 top-level fields per post covering engagement signals, flags, media, duplicate links, and optional nested comments. Inputs accept 1-1,000 posts and 0-2,000 comments per post. From $3 per 1,000 posts.
Pricing
from $7.20 / 1,000 posts
Rating
5.0
(1)
Developer
AgentX
Maintained by CommunityActor stats
3
Bookmarked
20
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
Subreddit Posts Scraper is a subreddit posts scraper that exports one community's feed in new, top, hot, rising, or controversial order, writing each post as a row with 43 documented fields for text, links, engagement signals, flags, media, duplicates, and optional nested comments.
- Four inputs: the community, the listing order, a post limit from 1 to 1,000, and an optional per-post comment limit from 0 to 2,000.
- 43 documented fields per post, including
duplicatesandcontent_score. - Comments are opt-in and billed separately, so a listing sweep stays cheap until you ask for threads.
Run the one-post example · View API
One start plus one returned post with comments disabled is $0.01400 on the FREE tier. Begin at the minimum and set a maximum total charge, because large post or comment limits can be slow or exceed the run window.
What does Subreddit Posts Scraper do?
It reads one community's listing and normalizes it. Choose a subreddit and a sort order, and each post comes back as a single row containing the title and body, the author and their flair, the community's own context, the engagement values Reddit reports, media references, the state and moderation flags, the duplicate links that show where the post was crossposted, and — when you ask for them — the nested comment thread.
The listing order is the question you are asking: new for monitoring, top for best-performing material, hot and rising for attention, controversial for contested threads. Reddit stops a subreddit listing near a thousand entries regardless of a community's true post count, so 1,000 is a ceiling rather than a promise. It does not search across communities — that is Reddit Viral Scraper — nor profile the community or its members.
How do I use Subreddit Posts Scraper?
- Enter one
community— a plain name, anr/namepath, or a full community URL. - Choose
sort_byfor the listing order you actually want to analyze. - Set
max_posts, and leavemax_commentsat0until you need threads. - Start the run and read the dataset, or export JSON, CSV, or Excel.
The smallest useful input:
{"community": "programming","sort_by": "new","max_posts": 1,"max_comments": 0}
Input
| Input | Type | Required | Effect |
|---|---|---|---|
community | string | Yes | The subreddit to read. Accepts a plain name, an r/name path, or a reddit.com/r/name URL. |
sort_by | string | Yes | new, top, hot, rising, or controversial. Reddit determines the available order and its coverage. |
max_posts | integer | Yes | 1–1,000 posts. Reddit stops a subreddit listing near a thousand entries, so 1,000 is the ceiling. |
max_comments | integer | Yes | 0–2,000 comments per post. 0 disables comment collection entirely. |
There is no time-window input: the Actor requests Reddit's selected listing mode without an additional time-range control. Both caps are maximum requests — listing coverage, community state, deleted content, and source errors can all return fewer records.
Output
One row per post, with 43 top-level fields in these groups:
| Group | Fields |
|---|---|
| Post | id, title, body, link, created, edited, flair_text |
| Author | author, author_flair |
| Community context | subreddit, subreddit_type, subreddit_subscribers |
| Engagement | score, upvote_ratio, comment_count, crossposts, content_score |
| Media | media_type, media_url, domain, thumbnail, images, video_url, video_duration, is_self, is_video, is_gallery |
| State flags | archived, locked, stickied, pinned, over_18, spoiler, original, distinguished, advertising, indexable, crosspostable, no_follow |
| Spread and discussion | duplicates, comments |
| Provenance | processor, processed_at |
An abbreviated row for the programming example:
{"subreddit": "programming","title": "A practical guide to structured logging","author": "example_user","created": "2026-08-01T18:04:12Z","score": 412,"upvote_ratio": 0.96,"comment_count": 87,"over_18": false,"stickied": false,"duplicates": [],"comments": [],"processed_at": "2026-08-02T10:15:33Z"}
Vote values are source-reported and Reddit may fuzz them, so do not treat score as exact upvote-minus-downvote arithmetic. Unavailable values stay null or empty rather than being replaced by defaults.
Use cases
- Community monitoring — schedule a
newrun to capture everything a community posts, in a stable schema. - Best-performing content research — pull
topand rank byscore,upvote_ratio, andcomment_count. - Discussion mining — enable comments on a small
controversialset to study disagreement in a niche. - Media and link inventories — collect
domain,images, andvideo_urlto see what a community actually shares. - Crosspost tracing — read
duplicatesandcrosspoststo find where a community's material travels.
Choose another tool if you are starting from a topic rather than a community, or if you want the community's settings or the people in it — those are separate Actors below.
API and integrations
The stable Actor ID is ipw4MHKL6ZBj9pYeF, and its Store handle is agentx/subreddit-post-scraper. Start a run and read the dataset with any HTTP client:
curl -X POST "https://api.apify.com/v2/acts/ipw4MHKL6ZBj9pYeF/run-sync-get-dataset-items" \-H "Authorization: Bearer YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"community":"programming","sort_by":"new","max_posts":1,"max_comments":0}'
The same input works from the Apify Console, the JavaScript and Python clients, Scheduler, and webhooks. For larger requests, start the run asynchronously, poll its status, and read the dataset after it succeeds — a client timeout does not mean the cloud run stopped. For agent clients, connect to Apify MCP, fetch the Actor's details to load the current input schema, then call agentx/subreddit-posts-scraper with a bounded charge and runtime.
Pricing
The Actor uses pay-per-event pricing. The configured start event is $0.01000. Result prices, one event per returned post, are FREE $0.00400, BRONZE $0.00360, SILVER $0.00320, and GOLD, PLATINUM, or DIAMOND $0.00300. Comment prices are FREE $0.00100, BRONZE $0.00090, SILVER $0.00080, and GOLD, PLATINUM, or DIAMOND $0.00075.
| FREE-tier example | Calculation | Configured total |
|---|---|---|
| One returned post, comments disabled | $0.01000 + 1 × $0.00400 | $0.01400 |
| One returned post with 10 comments | $0.01000 + 1 × $0.00400 + 10 × $0.00100 | $0.02400 |
Charges depend on emitted posts and charged nested comments, subject to live platform behavior and account settings. Prices can change after publication; confirm the Actor Store page before budgeting. Input limits control requested source volume but are not a spending limit — use maxTotalChargeUsd for that.
Alternatives
Reading the community in a browser is free and works for a handful of posts; it does not give you 43 normalized fields, a stable schema across runs, or a scheduled export. Flat-rate Reddit scrapers charge one price per item whether it is a post or a comment, which becomes expensive on threads with hundreds of replies — the separate Result and Comment events here let a listing sweep stay cheap and a thread deep-dive stay deliberate. The counter-case is genuine: if your question begins with a topic rather than a community, Reddit Viral Scraper searches across all of Reddit and this Actor cannot; and if you only need one post's full thread, a single-post tool will cost less than a listing run.
Limits and troubleshooting
- Fewer posts than
max_posts— the value is a maximum. Listing coverage, access, community state, source errors, and runtime can all reduce the result. - Listing capped near 1,000 — Reddit stops a subreddit listing there regardless of the community's true post count.
- No time-window control — none is exposed; use
sort_byand filter bycreateddownstream. - Comment array smaller than requested — deleted or unavailable comments, tree expansion, and runtime all limit it; very large values are impractical.
- Vote fields look approximate — they are source-reported and may be fuzzed by Reddit.
- Charge limit reached — compare start, result, and comment event counts against your limit before raising it.
Report a reproducible problem through AgentX support with the run ID, the exact four-field input, and the expected versus observed dataset count.
Frequently asked questions
How can I scrape subreddit posts?
You can scrape subreddit posts by entering a community name, one sort mode, and a post limit — no Reddit API key or app registration is required, and each post arrives as one 43-field dataset row.
Can I get a subreddit hot new top posts export in one run?
A subreddit hot new top posts export takes one run per listing: pick hot, new, or top as sort_by and export the dataset as JSON, CSV, or Excel; run the listings you need separately so each snapshot stays comparable.
Is max_comments required?
It is part of the input contract, but 0 disables comment collection — use that for posts-only runs.
Does max_posts guarantee that many records?
No. It is a maximum request. Reddit listing coverage, access, community state, source errors, charge limits, and runtime can reduce the result.
Are vote fields exact?
They are source-reported values. Reddit may fuzz vote information, so do not use them as audited evidence.
Does top include a configurable time window?
No time-window input is exposed. The Actor requests Reddit's selected listing mode without an additional time-range control.
Do I need a Reddit account or API key?
No. Provide the four inputs and start the run.
Related AgentX Actors
- Reddit Viral Scraper — start from a keyword and search across all communities instead of one feed.
- SubReddit Info Scraper — the community's own profile: subscribers, rules, and settings.
- Subreddit Member Scraper — the people visibly active in the community, as full profiles.
Enrich your data with AgentX
- All Jobs Scraper — add hiring signals from 39 job platforms to community research.
- All Shopping Scraper — bring product and pricing context to a community's shared links.
- All Video Scraper — resolve the video links a community posts into metadata and files.
Support
Use public Reddit data proportionately: follow Reddit's terms, Apify's policies, applicable law, and your organization's privacy obligations, and require human review before consequential decisions. Do not use the output for harassment, spam, sensitive profiling, or automated decisions that require verified identity. Subreddit Posts Scraper is an independent tool and is not affiliated with, endorsed by, or sponsored by Reddit, Inc.
- Actor Store page for the current public details.
- AgentX community & support on Telegram.
- Apify MCP guide for agent client setup.