← API Catalog
Apify·Async
Reddit Scraper: Lead Finder, Brand Monitor, Mentions & Alerts
Social$0.0014 / Result Saved
What it does
Find leads and track brand mentions on Reddit. Monitor buying-intent phrases like "is there a tool", competitor names and keywords, flag real buyers with an AI label, and get new posts in Slack or Notion on a daily schedule. Social listening with no Reddit API key, from $1.50 per 1,000 results.
Returns: Find leads and track brand mentions on Reddit. Monitor buying-intent phrases like "is there a tool", competitor names and keywords, flag real buyers with an AI label, and get new posts in Slack or Notion on a daily schedule. Social listening with no Reddit API key, from $1.50 per 1,000 results.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
hasPain | boolean | No | Adds aiFlags.hasPain (true/false) to every analyzed post and comment: true when the author describes a problem, a failed tool, or something not working. Billed as one custom_label event per result ($0.10 per 1,000). |
isOwner | boolean | No | Adds aiFlags.isOwner (true/false) to every analyzed post and comment: true when the author founded, owns, or operates a business (not a customer or employee). Billed as one custom_label event per result ($0.10 per 1,000). |
mcpMode | select | No | perPost: send one message/record per scraped post. summary: send a single digest of the whole run. |
mcpTool | text | No | Force a specific tool name on the connector (e.g. send_message, create_page, append_row). Leave empty to auto-detect the connector's write/notify tool. |
isVendor | boolean | No | Adds aiFlags.isVendor (true/false) to every analyzed post and comment: true when the author is selling, promoting, or recruiting testers for their own product or service. Billed as one custom_label event per result ($0.10 per 1,000). |
mcpTarget | text | No | Where to write — the destination ID the tool needs: a Notion database/page ID, a Google Sheet ID, a Slack channel, or owner/repo. Leave blank for connectors that post to a default location. Advanced shapes go in Arguments JSON below. |
painPoint | boolean | No | Adds aiFlags.painPoint (text) to every analyzed post and comment: the problem or unmet need in under 15 words, or none. Billed as one custom_label event per result ($0.10 per 1,000). |
startUrls | array | No | Add one or more Reddit URLs to scrape directly. Supports post URLs, subreddit URLs, user profile URLs, and search page URLs. The Search Keywords options above (sort, time, community filter) do NOT apply to these URLs. |
wantsHelp | boolean | No | Adds aiFlags.wantsHelp (true/false) to every analyzed post and comment: true when the author is looking for a product, service, or person to solve their problem — the classic lead signal. Billed as one custom_label event per result ($0.10 per 1,000). |
aiAnalysis | boolean | No | Adds AI-judged fields to posts and comments: sentimentLabel (positive / negative / neutral / mixed / uncertain), sentimentScore (-1 to 1), intent (question, seeking_recommendation, complaint, praise, purchase_intent, comparison, announcement, self_promotion, discussion), emotion (joy, excitement, anger, frustration, sadness, disappointment, fear, surprise, neutral), entities (brands, products and companies mentioned), and — for keyword-search results — relevanceScore (0 to 1). Posts also receive a contentCategory. The model understands Reddit slang and sarcasm; bot and moderator boilerplate is labelled uncertain free of charge. Each analyzed result is billed once as an analyzed_item event — see the Pricing tab. Requires a paid Apify plan and is ignored on free plans. |
competitor | boolean | No | Adds aiFlags.competitor (text) to every analyzed post and comment: the competing product, brand, or tool mentioned, or none. Billed as one custom_label event per result ($0.10 per 1,000). |
mcpMessage | textarea | No | Template for each message. Use {{field}} placeholders from ANY post field — common ones: {{title}}, {{body}}, {{postUrl}}, {{authorName}}, {{score}}, {{upVotes}}, {{commentsCount}}, {{communityName}}, {{flair}}, {{createdAt}}. Nested/array fields work via dot or [index] paths: {{mediaAssets.0.url}}, {{galleryImages[0]}}, {{media.reddit_video.fallback_url}}. (Full field list in the README.) Missing fields render empty. |
searchSort | select | No | Controls how keyword search results are ranked. Only applies to Search Keywords, not Direct URLs. |
searchTime | select | No | Limit keyword search results to posts from a specific time window. Only applies to Search Keywords. |
includeNSFW | boolean | No | Include posts marked as Not Safe For Work in results. Applies to both Search Keywords and Direct URLs. |
mcpComments | select | No | When 'Scrape comments for each post' is on, choose how comments reach your app. Ignore: send posts only (comments still saved to the dataset). Bundle: attach each post's top comments inside its message. Separate: send each top comment as its own message/record. |
mcpMaxItems | number | No | Safety cap on how many posts are piped to the connector per run (perPost mode). Protects against flooding the destination. |
postedAfter | text | No | Only keep posts created on or after this date (00:00 UTC), or within a relative period counted back from the run start, e.g. '1 day' for a daily schedule or '7 days' for a weekly one. When set, results are fetched newest-first (sort=new) and the search Time range is ignored. Reddit caps each listing at ~1,000 posts, so a window behind a very high-volume query may be only partly reachable. Applies to Search Keywords, subreddit URLs, the Full Subreddit Scrape, and user profiles. |
searchPosts | boolean | No | Include posts in keyword search results. |
searchTerms | array | No | Enter one or more keywords to search Reddit (e.g. "recommend a CRM", "alternative to HubSpot", or your brand name). Keep each phrase short: Reddit search is literal, so a long sentence usually finds nothing. Each keyword runs as a separate search. Free Apify plans search the first 40 keywords per run (paid plans are unlimited) — extra keywords are skipped and noted in the run log. Quoted phrases return fewer posts, especially inside one community. Leave empty if you only want to scrape Direct URLs below. |
customLabels | json | No | Define your own labels as {"label_name": "plain-language instruction"} and the AI evaluates each one on every analyzed post and comment, returning them under customLabels on each result. Example: {"mentions_pricing": "true if the text complains about pricing or cost", "competitor": "name the competing product mentioned, or none"}. Up to 5 labels; names must be short identifiers (letters, digits, underscore). The AI flag checkboxes above do not count against this cap. Each label evaluated on each result is billed as one custom_label event — 3 labels on 1,000 results = 3,000 events. An evaluation that finds nothing (an empty/null answer, when your instruction allows it) is still an evaluation and is charged; nothing is charged for results the AI could not process. Setting custom labels enables the full AI Analysis on the same items — each labeled result is also billed once as an analyzed_item. Paid add-on: requires a paid Apify plan; ignored on free plans. |
mcpArguments | json | No | Extra/override arguments merged into each tool call as JSON — e.g. {"channel": "#reddit"} for Slack. {{field}} placeholders work inside string values too, so you can nest live data into any shape the tool needs — e.g. Notion: {"properties": {"Title": {"title": [{"text": {"content": "{{title}}"}}]}, "Link": {"url": "{{postUrl}}"}}}. Use it to satisfy required fields or fully control the payload. |
mcpConnector | text | No | Pick an authorized MCP connector (Slack, Notion, GitHub, Airtable, Supabase, …) to receive the scraped posts. This is the recommended, secure path — your credentials stay in Apify and are never exposed to this actor (Apify's proxy injects them). Leave empty to scrape only. Create connectors under Settings → API & Integrations → MCP connectors, or inline here. |
mcpServerUrl | text | No | Advanced/testing only. Connect directly to a raw MCP server URL, bypassing the MCP Connector above. For real use prefer a connector — with a connector your credentials stay in Apify and are never seen by this actor. When set, this overrides the connector. |
postedBefore | text | No | Only keep posts created on or before this date (the end of that day, 23:59:59 UTC). A relative value such as '1 day' keeps only posts at least one day old. |
willingToPay | boolean | No | Adds aiFlags.willingToPay (true/false) to every analyzed post and comment: true when the author names a budget, asks for a quote, or says they would pay. Billed as one custom_label event per result ($0.10 per 1,000). |
maxPostsCount | number | No | Maximum posts saved for EACH search keyword and EACH Reddit URL: 5 keywords × 50 = up to 250 posts. Full Subreddit Scrape uses this as one total. Each saved post is a billed result. Reddit search returns up to about 2,000 posts for a busy keyword; use Full Subreddit Scrape for more. Max: 50000. |
mentionsPrice | boolean | No | Adds aiFlags.mentionsPrice (true/false) to every analyzed post and comment: true when the text mentions a price, fee, retainer, subscription cost, or money spent. Billed as one custom_label event per result ($0.10 per 1,000). |
onlyWithFlair | boolean | No | When enabled, drop posts with no flair and keep only those that have a flair assigned. Applies to Search Keywords, subreddit URLs, the Full Subreddit Scrape, and user profiles. |
subredditUrls | array | No | Subreddits to scrape in full. Enter subreddit names or links — e.g. AskReddit, r/AskReddit, or https://www.reddit.com/r/AskReddit/. This collects far more posts per subreddit than a standard scrape. It uses more requests, so runs take longer and cost more. Comments are also collected when 'Scrape comments for each post' is enabled — increase Max posts to allow more results per subreddit. |
commentedAfter | text | No | Only keep comments created on or after this date (UTC), or within a relative period such as '1 day' for a daily schedule. Applies when comments are collected (comment search, or 'Scrape comments for each post'). |
featureRequest | boolean | No | Adds aiFlags.featureRequest (true/false) to every analyzed post and comment: true when the author asks for or describes a feature or product that does not exist yet. Billed as one custom_label event per result ($0.10 per 1,000). |
mcpServerToken | text | No | Bearer token for the dev MCP server URL above. Note: a token entered here IS visible to the actor at runtime — for production use an MCP Connector instead, so credentials never leave Apify. Ignored unless the URL is set. |
searchComments | boolean | No | Include comments in keyword search results. Each comment is a billed result (up to 'Max search comments' per keyword). |
commentedBefore | text | No | Only keep comments created on or before this date (UTC). |
withinCommunity | text | No | Restrict keyword search to a single subreddit. This is a name, not a post limit. Accepts a bare name (developers), r/developers, or a full subreddit URL. Leave empty to search all of Reddit. Only applies to Search Keywords. |
maxCommentsCount | number | No | Maximum comments returned per search keyword (when 'Search for comments' is enabled). Does not affect per-post comment scraping. |
searchCommunities | boolean | No | Include communities (subreddits) in keyword search results. |
maxCommentsPerPost | number | No | Maximum comments to scrape per individual post (when 'Scrape comments for each post' is enabled). Each comment is a billed result: 50 posts × 200 comments can be 10,000 results. |
mcpCommentsPerPost | number | No | How many top comments (by score) to include per post when bundling or sending comments. Requires 'Scrape comments for each post'. |
maxCommunitiesCount | number | No | Maximum communities returned from keyword search (when 'Search for communities' is enabled). |
crawlCommentsPerPost | boolean | No | When enabled, comments will be collected for every post found from both Search Keywords and Direct URLs. This significantly increases run time and data output. Each comment is a billed result: 50 posts × 200 comments can be 10,000 results. |
Endpoints
GET
/v1/agents/resources/inspect/apify.harshmaur.reddit-scraper-proPublicPOST
/v1/agents/resources/estimate/apify.harshmaur.reddit-scraper-proPublicPOST
/v1/agents/resources/run/apify.harshmaur.reddit-scraper-proAgent keyGET
/v1/agents/resources/runs/{run_id}Agent keyQuick start
Run it with one Agent One Key over the OpenAI-compatible resource rail.
curl -X POST https://api.deva.me/v1/agents/resources/run/apify.harshmaur.reddit-scraper-pro \
-H "Authorization: Bearer deva_your_key_here" \
-H "Content-Type: application/json" \
--data '{
"params": {}
}'Related in Social
Instagram Scraper
Extract Instagram posts, reels, profiles, places, hashtags, carousels, and comments. Get data from Instagram using one or more Instagram URLs or search queries: content, context, metrics, metadata. Export scraped data, run the scraper via API, schedule and monitor runs or integrate with other tools.
Tweet Scraper V2 - X Scraper / Twitter Scraper / X.com Scraper
Lightning-fast search, URL, list, and profile scraping, with customizable filters. At $0.40 per 1000 tweets, and 30-80 tweets per second, it is ideal for researchers, entrepreneurs, and businesses! Get comprehensive insights from Twitter (X) now!
TikTok Scraper
Extract data from TikTok videos, hashtags, and users. Use URLs or search queries to scrape TikTok profiles, hashtags, posts, URLs, shares, followers, hearts, names, video, and music-related data. Export scraped data, run the scraper via API, schedule and monitor runs or integrate with other tools.
Instagram Profile Scraper
Scrape all Instagram profile info. Just add Instagram usernames, IDs or URLs and extract name, join date, number of followers, location, bio, website, related profiles, video&post count, latest posts. Export scraped data, schedule scraper via API, and integrate with other tools or AI workflows.
Instagram Post Scraper
Scrape Instagram posts. Just add one or more Instagram usernames and get your data in seconds including caption, metrics, images, mentions, coauthors, recent comments, sponsored status, video duration, views. Export scraped data, schedule scraper via API, integrate with other tools or AI workflows.
Facebook Posts Scraper
Extract posts, videos, and engagement metrics from Facebook pages. Get text captions, reactions, video transcripts, images, external links, collaborators, and more from Facebook pages and profiles. Export ad data, schedule runs via API, and integrate with other tools or AI workflows.