Reddit Scraper — Posts, Comments, Search & Communities avatar

Reddit Scraper — Posts, Comments, Search & Communities

Under maintenance

Pricing

from $2.00 / 1,000 result saveds

Go to Apify Store
Reddit Scraper — Posts, Comments, Search & Communities

Reddit Scraper — Posts, Comments, Search & Communities

Under maintenance

Collect 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

Cocoa Kit

Maintained by Community

Actor 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

  1. Add one or more Reddit URLs, search keywords, or subreddit names.
  2. Set Total result limit. Enable comments or community details if you need them.
  3. 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

SettingPurposeDefault
startUrlsReddit post, subreddit, search, or user URLsNone
searchesKeywords to searchNone
subredditsCommunity names or URLsNone
usernamesPublic usernames or profile URLs; requires includeAuthorsNone
searchTypeposts or communitiesposts
sortnew, hot, top, relevance, or commentsnew
timeall, hour, day, week, month, or yearall
commentSortconfidence, new, top, old, or controversialconfidence
maxItemsTotal stored rows across all types100
maxPostsPosts across all targets100
maxCommentsComments across all targets500
maxCommentsPerPostComments and replies per post50
maxCommunitiesCommunity rows20
maxUsersProfile rows20
includeCommentsCollect comments for selected postsfalse
includeCommunityAdd details for subreddit targetsfalse
includeUserPostsAdd submitted posts for profile targetstrue
includeAuthorsInclude public usernames, author IDs, and requested profilesfalse
includeNSFWInclude results marked as adult contentfalse
dateFrom, dateToFilter post and comment creation datesNo filter
minScoreMinimum score for posts and comments0
dataModeauto, html, json, or rssauto
proxyApify or custom proxy configurationResidential
maxConcurrencyRequests in progress3
requestDelayMillisMinimum delay between request starts1000
maxRequestsMaximum crawl jobs; post details, retries, and fallbacks can add requests1000
maxRetriesRetries per failed job2
requestTimeoutSecsTimeout for each network request30

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.