Reddit Scraper — Posts, Comments, Search & Communities
Under maintenancePricing
from $2.00 / 1,000 result saveds
Reddit Scraper — Posts, Comments, Search & Communities
Under maintenanceCollect public Reddit posts, comments, subreddit details, and optional user profiles. Search by keyword or URL. Export JSON, CSV, or Excel.
Pricing
from $2.00 / 1,000 result saveds
Rating
0.0
(0)
Developer
Cocoa Kit
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share
Reddit data for research, content, and market insights
Turn public Reddit discussions into a dataset you can use. Reddit Scraper collects posts, comments, subreddit details, and optional public user profiles from keywords or Reddit URLs. Export your results as JSON, CSV, or Excel, or connect the Actor to your existing workflow through the Apify API.
Use it to track product mentions, find common questions, compare community activity, and collect source material for research. Set a total result limit to keep each run within your scope.
What can you collect?
- Posts: titles, text, links, dates, scores, comment counts, flair, and available image and video URLs.
- Comments and replies: text, dates, scores, post IDs, and parent IDs when Reddit provides them.
- Communities: descriptions, weekly visitor and contribution counts, and available public details.
- Public profiles: karma, account creation dates, and submitted posts. Enable Include authors to request profile data.
- Keyword results: search posts or communities, with sort and time controls.
Each row has a result type, a Reddit URL, a source URL, and a collection timestamp. Duplicate results are removed within a run.
Start in three steps
- Add one or more Reddit URLs, search keywords, or subreddit names.
- Set Total result limit. Enable comments or community details if you need them.
- Click Start. Open the Results output to view or export your data.
For a first run, try a subreddit with a limit of 20 posts:
{"subreddits": ["Python"],"maxItems": 20,"maxPosts": 20}
You do not need a Reddit login for public targets. Private, removed, restricted, or unavailable content cannot be guaranteed.
Input examples
Search for product discussions
{"searches": ["project management software", "team calendar"],"searchType": "posts","sort": "new","time": "month","maxItems": 100,"maxPosts": 100}
Each keyword starts a separate search. Result limits apply to the whole run, not to each keyword.
Collect posts and comments
{"subreddits": ["learnpython"],"maxPosts": 5,"includeComments": true,"maxCommentsPerPost": 20,"maxComments": 100,"maxItems": 105}
Comments count toward the total result limit. Increase maxItems if you want room for both posts and comments. You can also pass a post permalink in startUrls to collect a specific discussion.
Find communities
{"searches": ["gardening"],"searchType": "communities","maxCommunities": 20,"maxItems": 20}
For details about known communities, use subreddits with includeCommunity: true. Set maxPosts: 0 if you only need community details.
Collect a public profile
{"usernames": ["reddit"],"includeAuthors": true,"includeUserPosts": true,"maxUsers": 1,"maxPosts": 10,"maxItems": 11}
Author names and IDs are omitted by default. The Include authors option enables these fields and public profile collection. Post and comment text can still contain information that its author included in the public text.
Input guide
| Setting | Purpose | Default |
|---|---|---|
startUrls | Reddit post, subreddit, search, or user URLs | None |
searches | Keywords to search | None |
subreddits | Community names or URLs | None |
usernames | Public usernames or profile URLs; requires includeAuthors | None |
searchType | posts or communities | posts |
sort | new, hot, top, relevance, or comments | new |
time | all, hour, day, week, month, or year | all |
commentSort | confidence, new, top, old, or controversial | confidence |
maxItems | Total stored rows across all types | 100 |
maxPosts | Posts across all targets | 100 |
maxComments | Comments across all targets | 500 |
maxCommentsPerPost | Comments and replies per post | 50 |
maxCommunities | Community rows | 20 |
maxUsers | Profile rows | 20 |
includeComments | Collect comments for selected posts | false |
includeCommunity | Add details for subreddit targets | false |
includeUserPosts | Add submitted posts for profile targets | true |
includeAuthors | Include public usernames, author IDs, and requested profiles | false |
includeNSFW | Include results marked as adult content | false |
dateFrom, dateTo | Filter post and comment creation dates | No filter |
minScore | Minimum score for posts and comments | 0 |
dataMode | auto, html, json, or rss | auto |
proxy | Apify or custom proxy configuration | Residential |
maxConcurrency | Requests in progress | 3 |
requestDelayMillis | Minimum delay between request starts | 1000 |
maxRequests | Maximum crawl jobs; post details, retries, and fallbacks can add requests | 1000 |
maxRetries | Retries per failed job | 2 |
requestTimeoutSecs | Timeout for each network request | 30 |
Set a type limit to 0 to disable that result type. maxItems must be at least 1. Date filters accept ISO 8601 timestamps. A date without a time means midnight UTC, including for dateTo.
Relevance and Comments sort apply to search results. Subreddit lists use New for these choices. Time filters apply where Reddit supports them, such as search and Top lists. For a user's comment history, add https://www.reddit.com/user/USERNAME/comments/ to startUrls and enable includeAuthors.
Output
Results appear as separate rows. Use dataType to distinguish post, comment, community, and user.
A post row has this shape. The values below are illustrative:
{"id": "t3_example","parsedId": "example","dataType": "post","title": "Which Python tools do you use?","body": "Share the tools that help with your projects.","communityName": "r/Python","url": "https://www.reddit.com/r/Python/comments/example/","sourceUrl": "https://www.reddit.com/r/Python/new","createdAt": "2026-10-01T12:00:00.000Z","scrapedAt": "2026-10-08T01:00:00.000Z","score": 42,"numberOfComments": 12,"upVoteRatio": 0.95,"over18": false,"dataSource": "html","isPartial": true,"imageUrls": [],"videoUrls": []}
Additional post fields include flair, isVideo, isSelf, isLocked, isPinned, isSpoiler, isArchived, outboundUrl, and domain.
Comment rows include postId, parentId, depth, isSubmitter, isPinned, and isEdited. Community rows include title, description, weeklyVisitors, weeklyContributions, and iconUrl. Legacy JSON results can also include numberOfMembers, activeUsers, and communityType. Profile rows include username, postKarma, commentKarma, totalKarma, description, iconUrl, and isVerified. Author-enabled rows can also contain username and userId.
Unavailable fields are null or omitted. A missing score is never reported as zero. Media fields contain links; the Actor does not download media files.
The Run summary output contains result counts, request counts, warnings, failed targets, and the reason a configured limit stopped the run.
Data sources and available fields
Auto mode reads Reddit's public web pages. It collects available post text, scores, comment counts, media links, and nested replies. If access to a post or listing is restricted, it can use the public RSS feed. Web pages only (html) reports an access failure instead of using RSS.
Web results have dataSource: "html" and isPartial: true. Reddit does not show every field on every page. For example, community member counts and exact creation times can be absent. Weekly visitors and weekly contributions are separate fields, not member counts. The Actor leaves unavailable values as null or omits them.
RSS mode requests feeds directly. RSS rows have dataSource: "rss" and isPartial: true. They do not provide scores, reliable adult-content flags, complete media, or complete comment trees. User comment history uses RSS in Auto mode. RSS pagination can stop before your requested limit. Community and profile details need Auto or Web pages mode.
JSON mode is a legacy option. Reddit can block anonymous JSON access. Use Auto mode for normal collection.
The adult-content filter excludes results that Reddit marks as adult content. It cannot infer a flag that the source does not provide. A minScore above zero excludes results with unknown scores, including RSS rows.
Pricing
$2.00 per 1,000 saved results, plus a start fee of $0.01 per GB of run memory (one-GB minimum). Each stored post, comment, community, or profile counts as one result. Standard platform usage and the default proxy are included in this price.
At the default 512 MB memory setting, a run that saves 100 results costs $0.21. A run that saves 1,000 results costs $2.01. Duplicate rows are not stored or charged again within the same run. Failed requests are not result events; the start fee still applies.
Use the total result limit and Apify's maximum cost per run to control spending. Check the Pricing tab for the current rate. Separate services you choose to connect, including your own proxy provider, can have their own charges.
Automate your workflow
Run the Actor on demand, through the Apify API, or on a schedule. Export the dataset to a spreadsheet or connect it to Make, Zapier, or n8n. Use webhooks to start the next step when a run finishes.
The input is the same JSON object whether you use the Console or the API. The dataset API provides machine-readable results for your application.
Frequently asked questions
Why did I receive fewer results than requested?
Limits are maximums, not guaranteed counts. Reddit can return fewer matches, stop pagination, or restrict a target. Filters can remove results. Individual Reddit listings often expose only a limited history. Use more specific keywords, multiple communities, or scheduled collection for broader coverage.
Does the Actor collect every comment?
It collects the available comment tree and expands additional comments through Reddit's public endpoints, within your limits. Deleted, restricted, or unavailable comments cannot be recovered. RSS returns a limited set of comments with fewer fields.
What if a run fails?
Open Run summary to find failed targets. Results already saved remain available. Check the target in Reddit, reduce concurrency, or retry with a suitable proxy. A failed request causes a failed run status so your workflow can detect incomplete collection.
Can I collect private or deleted content?
No. The Actor works with public content available at the time of the run. Use the data in accordance with Reddit's terms and the permissions that apply to your use.
How can I get support?
Open an issue on this Actor's Issues tab. Include the run URL and a short description of the expected result. Do not include credentials.