Reddit Search Scraper avatar

Reddit Search Scraper

Pricing

from $0.79 / 1,000 reddit post or comments

Go to Apify Store
Reddit Search Scraper

Reddit Search Scraper

Search Reddit posts and comments by keyword, across all of Reddit, chosen subreddits, or auto-discovered communities. Full search syntax, sort and time filters, rich post, comment, author, and subreddit data.

Pricing

from $0.79 / 1,000 reddit post or comments

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Categories

Share

Reddit Search Scraper

Reddit Search Scraper searches Reddit for posts and comments that match your keywords, across all of Reddit, inside the subreddits you pick, or in related communities it finds for you, and returns detailed, structured results.

Use Reddit's full search syntax — "exact phrases", OR, NOT, author:, title:, selftext:, flair:, url: — sort by relevance, new, top, hot, or most comments, filter by hour to year, and get up to 49 fields per post and 30 per comment.

ParseBird Reddit Suite   •  Posts, comments & subreddit data
Reddit Search Scraper
You are here
Reddit Comments Search Scraper
Comments by keyword & subreddit
Reddit Subreddit Posts Scraper
Hot, new & top posts with comments

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

Use the Apify actor "parsebird/reddit-search-scraper" to search Reddit posts and comments. Call it with the apify-client package: client.actor("parsebird/reddit-search-scraper").call(run_input={"query": "notion alternative", "contentType": "posts", "sort": "relevance", "maxResults": 100}), then read results from client.dataset(run["defaultDatasetId"]).iterate_items(). Inputs: query (string, required, Reddit search syntax, max 700 chars), contentType ("posts" | "comments" | "both", default "posts"), maxResults (integer, default 100, 0 = no limit), sort ("relevance" | "new" | "top" | "hot" | "comments", default "relevance"; hot/comments are posts-only), timeFilter ("" | "hour" | "day" | "week" | "month" | "year", default "" = all time), subreddit (string, one community), subreddits (array of strings), autoDiscoverSubreddits (boolean, default true), maxSubreddits (integer 1-50, default 20), includeNsfw (boolean, default false). Every row has _type ("post" or "comment"). Post rows include id, title, author, subreddit, score, commentCount, upvoteRatio, createdAt, permalink, url, body, domain, postHint, flair, media, gallery, poll, crosspostRoot, subredditInfo (subscribers, icon, banner, description) and author details. Comment rows include id, parentId, body, author, score, createdAt, permalink, authorKarma, and parent post fields (postId, postTitle, postScore, postCommentCount, postFlair). Pricing: pay per saved result. API docs: https://apify.com/parsebird/reddit-search-scraper/api — get an API token at https://console.apify.com/settings/integrations

What is Reddit Search Scraper?

Reddit Search Scraper is a Reddit search API alternative that runs Reddit searches for you and saves every matching post and comment as clean data. Enter a query such as notion alternative, pick posts, comments, or both, and get each result with its score, comment count, date, author, text, media, and subreddit details.

The easiest way to try it: open the Input tab, keep the example query, and click Start. A run with the example input finishes in under a minute.

What can Reddit Search Scraper do?

  • 🔎 Search posts, comments, or both — every row is labeled with _type so you can split them later.
  • 🧠 Full Reddit search syntax — exact phrases, OR, AND, NOT, -exclude, parentheses, and field operators such as author:, title:, selftext:, flair:, url:, self:yes, and subreddit:.
  • 🧭 Search anywhere — all of Reddit, one subreddit, or a list of subreddits in any format (python, r/python, https://old.reddit.com/r/python).
  • ✨ Auto-discover subreddits — when all-of-Reddit search runs out before your limit, the scraper finds up to 50 related communities and searches inside them too.
  • ↕️ Five sort orders and six time windows — relevance, new, top, hot, most comments; past hour, day, week, month, year, or all time.
  • 🖼️ Rich post data — image previews, video stream URLs, gallery items, poll options, crossposts, events, flair, and subreddit subscribers, icons, and description.
  • 🧵 Thread context for comments — parentId for rebuilding reply chains, plus the parent post's title, score, flair, and comment count.
  • 🧹 No duplicates — results from several subreddits are merged and deduplicated.

Because it runs on the Apify platform, you also get:

  • Scheduling — run a search every hour or every day with Apify Schedules to build a live mention feed.
  • API access — start runs and fetch results with the Apify API or the Python and JavaScript clients.
  • Integrations — send results to Google Sheets, Slack, Zapier, Make, n8n, or webhooks with Apify integrations.
  • Export formats — download results as JSON, CSV, Excel, XML, or HTML.

Posts (_type: "post"):

FieldDescription
id, title, author, subredditPost ID (t3_…), title, author, and community
score, upvoteRatio, commentCount, crosspostCountEngagement numbers
createdAt, editedAtPost and edit times (ISO 8601, UTC)
permalink, url, outboundUrl, domainReddit link and the linked content
bodyText of self posts
postHint, isSelfPost, isVideo, isGallery, isPollIncludedWhat kind of post it is
isNsfw, isSpoiler, isLocked, isStickied, isArchived, isOriginalContent, …Post flags
flair, thumbnail, distinguishedAs, removedByCategoryFlair, thumbnail, and moderation info
authorId, authorFlair, authorIconUrl, authorIsNsfw, authorIsCakeDayNowAuthor details
media, gallery, poll, postEventInfo, crosspostRootImage and video URLs, gallery items, poll options, event times, original crosspost
subredditInfoSubreddit ID, title, type, subscribers, NSFW and quarantine flags, colors, icon, banner, description

Comments (_type: "comment"):

FieldDescription
id, body, author, subredditComment ID (t1_…), text, author, and community
score, isScoreHidden, createdAt, editedAt, permalinkScore, dates, and link
parentIdParent comment ID, or null for a top-level comment
isOPWhether the commenter is the post's author
authorId, authorKarma, authorIconUrl, authorIsCakeDayNowAuthor details (authorKarma = post karma + comment karma)
postId, postTitle, postUrl, postAuthor, postScore, postCommentCount, postFlair, postDomain, postIsSelfPost, postIsNsfw, postCreatedAtThe parent post
subredditSubscribersSubscriber count of the community

Fields are null when Reddit doesn't provide the value, for example media on a text post or editedAt on an unedited comment. The scraper never fills in missing values.

How to scrape Reddit search results

  1. Open Reddit Search Scraper and go to the Input tab.
  2. Type your Search query, for example notion alternative or title:"acquired by".
  3. Choose Search in: posts, comments, or both.
  4. Optionally pick a Sort by order and a Time filter.
  5. Optionally add a Subreddit or Subreddits. Leave them empty to search all of Reddit.
  6. Set Max results, click Start, and download your Reddit data from the Output tab as JSON, CSV, or Excel.

Input parameters

ParameterTypeRequiredDefaultDescription
querystringYes—Keywords with Reddit search syntax (max 700 characters)
contentTypestringNopostsposts, comments, or both
maxResultsintegerNo100Most results to save, posts and comments combined. 0 = no limit
sortstringNorelevancerelevance, new, top, hot, comments (the last two are posts-only)
timeFilterstringNoall timehour, day, week, month, year, or empty for all time
subredditstringNo—One community to search
subredditsarrayNo[]Several communities; results are merged and deduplicated
autoDiscoverSubredditsbooleanNotrueSearch related communities when no subreddits are given and more results are needed
maxSubredditsintegerNo20Most related communities to search (1–50)
includeNsfwbooleanNofalseInclude posts and communities Reddit marks as NSFW
proxyConfigurationobjectNoResidential Apify ProxyNetwork settings. Keep the default

Sort orders: relevance is Reddit's default mix of match quality and engagement; new is newest first; top is highest score; hot is currently trending posts; comments is posts with the most comments. For comments, hot and comments fall back to new when a time filter is set, otherwise to relevance.

Time windows: hour = past 60 minutes, day = past 24 hours, week = past 7 days, month = past 30 days, year = past 365 days. The window is applied exactly to every result.

Reddit search query recipes

Brand and competitor monitoring — newest mentions of several products:

{
"query": "(\"1Password\" OR \"Bitwarden\" OR \"Dashlane\") \"switched\"",
"contentType": "both",
"sort": "new",
"maxResults": 100
}

Buying-intent leads — people asking for recommendations, minus the noise:

{
"query": "(\"recommend a VPN\" OR \"best VPN for\" OR \"VPN suggestions\") -free",
"contentType": "posts",
"sort": "new",
"maxResults": 100
}

Title-only topic tracking:

{ "query": "title:(\"acquired by\" OR \"merger\")", "sort": "new", "maxResults": 100 }

Account monitoring:

{ "query": "author:AutoModerator", "sort": "new", "maxResults": 50 }

Body-text phrase search:

{ "query": "selftext:\"finally quit my job\"", "maxResults": 100 }

Discussion threads in one community:

{ "query": "flair:\"Discussion\"", "subreddits": ["MachineLearning"], "sort": "top", "maxResults": 100 }

Several communities, newest first:

{
"query": "best budget laptop 2026",
"subreddits": ["SuggestALaptop", "r/laptops", "https://www.reddit.com/r/thinkpad"],
"sort": "new",
"maxResults": 300
}

Output example

[
{
"_type": "post",
"_status": "found",
"id": "t3_1u5l7f1",
"title": "Sunrise inside Sagrada Familia, Barcelona.",
"author": "MysteriousSlice007",
"subreddit": "pics",
"score": 67857,
"commentCount": 283,
"upvoteRatio": 0.98,
"createdAt": "2026-06-14T13:29:03.000Z",
"editedAt": null,
"permalink": "/r/pics/comments/1u5l7f1/sunrise_inside_sagrada_familia_barcelona/",
"url": "https://i.redd.it/54iksnru297h1.jpeg",
"body": "",
"domain": "i.redd.it",
"outboundUrl": "https://i.redd.it/54iksnru297h1.jpeg",
"postHint": "IMAGE",
"isSelfPost": false,
"isNsfw": false,
"isSpoiler": false,
"isLocked": false,
"isStickied": false,
"isArchived": false,
"isContestMode": false,
"isCrosspostable": false,
"isGildable": false,
"isScoreHidden": false,
"isPollIncluded": false,
"isOriginalContent": false,
"isVideo": false,
"isGallery": false,
"distinguishedAs": null,
"removedByCategory": null,
"suggestedCommentSort": null,
"flair": null,
"thumbnail": "https://preview.redd.it/54iksnru297h1.jpeg?width=140&height=140&crop=1:1,smart&auto=webp&s=3033afed809dcb3d7223d7184d293f07377276eb",
"crosspostCount": 14,
"authorId": "t2_19nu489oi4",
"authorType": "USER",
"authorFlair": null,
"authorIsNsfw": false,
"authorIsCakeDayNow": false,
"authorIconUrl": "https://www.redditstatic.com/avatars/defaults/v2/avatar_default_4.png",
"media": {
"still": {
"source": {
"url": "https://preview.redd.it/54iksnru297h1.jpeg?auto=webp&s=01658c24091d990a4dbc5c69c2260cb22f8130d5",
"dimensions": { "width": 1649, "height": 2048 }
}
},
"typeHint": "IMAGE"
},
"gallery": null,
"poll": null,
"postEventInfo": null,
"crosspostRoot": null,
"subredditInfo": {
"id": "t5_2qh0u",
"name": "pics",
"prefixedName": "r/pics",
"title": "Reddit Pics",
"type": "PUBLIC",
"subscribersCount": 33548445,
"isNsfw": false,
"isQuarantined": false,
"isThumbnailsEnabled": true,
"whitelistStatus": null,
"primaryColor": "#553200",
"iconUrl": "https://b.thumbs.redditmedia.com/VZX_KQLnI1DPhlEZ07bIcLzwR1Win808RIt7zm49VIQ.png",
"bannerUrl": "https://styles.redditmedia.com/t5_2qh0u/styles/bannerBackgroundImage_if1cbgj4mc7b1.jpg?width=4000&s=f6831859646d3127e64749644e05d129279aa2aa",
"communityDescription": "A place for photographs, pictures, and other images."
}
},
{
"_type": "comment",
"_status": "found",
"id": "t1_orlsyr6",
"parentId": null,
"author": "drstoneybaloneyphd",
"subreddit": "pics",
"score": 743,
"createdAt": "2026-06-14T14:29:26.000Z",
"editedAt": null,
"permalink": "/r/pics/comments/1u5l7f1/sunrise_inside_sagrada_familia_barcelona/orlsyr6/",
"body": "This is not sunrise. Definitely late day sun/sunset. They don't open before sunrise and the angle of this photo in the church is likely facing southeast, with the sun shining in from the southwest. ",
"isScoreHidden": false,
"isOP": false,
"authorId": "t2_6860539l",
"authorKarma": 43247,
"authorType": "USER",
"authorIsCakeDayNow": false,
"authorIconUrl": "https://www.redditstatic.com/avatars/defaults/v2/avatar_default_1.png",
"postId": "t3_1u5l7f1",
"postTitle": "Sunrise inside Sagrada Familia, Barcelona.",
"postUrl": "https://i.redd.it/54iksnru297h1.jpeg",
"postAuthor": "MysteriousSlice007",
"postScore": 67858,
"postCommentCount": 283,
"postFlair": null,
"postDomain": "i.redd.it",
"postIsSelfPost": false,
"postIsNsfw": false,
"postCreatedAt": "2026-06-14T13:29:03.000Z",
"subredditSubscribers": 33548445
}
]

On video posts, media.streaming holds the HLS, DASH, fallback MP4 and scrubber URLs with dimensions and duration. On gallery posts, gallery.items lists every image with caption, size, and URL. On poll posts, poll.options lists each option (vote counts appear once Reddit shows them).

Use Reddit Search Scraper via API

Python (apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("parsebird/reddit-search-scraper").call(run_input={
"query": "notion alternative",
"contentType": "both",
"sort": "new",
"timeFilter": "week",
"maxResults": 200,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
text = row["title"] if row["_type"] == "post" else row["body"]
print(row["_type"], row["subreddit"], row["score"], text[:80])

JavaScript (apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('parsebird/reddit-search-scraper').call({
query: 'notion alternative',
contentType: 'both',
sort: 'new',
timeFilter: 'week',
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const row of items) {
const text = row._type === 'post' ? row.title : row.body;
console.log(row._type, row.subreddit, row.score, text.slice(0, 80));
}

Use cases for Reddit search data

  • Brand and competitor monitoring — a scheduled search on new gives you every fresh mention of your product and its alternatives.
  • Lead generation — find people asking "can anyone recommend…" in your niche.
  • Market and product research — read what real users say about features, prices, and pain points.
  • Community discovery — auto-discovery shows which subreddits talk about your topic, with subscriber counts.
  • Content and trend research — track top and hot posts on a topic over a week or a month.
  • NLP and AI datasets — collect labeled posts and comments for sentiment analysis or LLM evaluation.

How it works

  1. The scraper runs your query on Reddit's search for posts, comments, or both — once for all of Reddit, or once per subreddit.
  2. It pages through the results, deduplicates them, and applies the exact time window and the NSFW setting.
  3. If you gave no subreddits and more results are needed, it finds related communities with Reddit's subreddit search and searches inside each one.
  4. It looks up comment details, parent posts, subreddit details, and author details in batches, and saves each result to the dataset until maxResults is reached.

How much does it cost to scrape Reddit?

Reddit Search Scraper uses pay-per-event pricing: you pay for each post or comment saved to your dataset. Filtered-out results and empty searches are free.

EventApify planPrice per eventPrice per 1,000 results
result-scrapedFree$0.00099$0.99
result-scrapedBronze$0.00089$0.89
result-scrapedSilver$0.00079$0.79
result-scrapedGold$0.00079$0.79

One event is one unique post or comment. For example, 1,000 Reddit posts cost $0.99 on the Free plan. The Apify Free plan includes monthly platform credits you can use to try it, and you can set a maximum spend per run so the scraper stops at your budget.

FAQ

How many results can one search return? Reddit returns up to about 250 posts per search query. The scraper gets past that limit by searching each subreddit separately: add subreddits yourself or keep Auto-discover subreddits on. In our tests, notion alternative returned 237 posts from all-of-Reddit search alone and 1,000 posts with auto-discovery on. Comment search usually returns fewer results than post search, especially for long phrases.

How does the time filter work for comments? Reddit's comment search has no time filter, so the scraper checks each comment's date and skips the ones outside your window. With sort: new it stops as soon as it passes the window, which is the most efficient way to monitor recent comments.

Which search operators work? Quoted phrases, OR, AND, NOT, -word, parentheses, and author:, title:, selftext:, self:yes/no, flair:, url:, subreddit:. The query goes to Reddit as written, so Reddit decides the matching.

What does parentId mean on comments? It is the ID of the comment being replied to. Top-level comments (direct replies to the post) have parentId: null, and the post is in postId.

Does it include NSFW content? Not by default. Turn on Include NSFW results to include posts and communities Reddit marks as 18+. Comment search on Reddit hides most mature content either way.

Can I schedule it or connect it to other tools? Yes. Save your input as a task, add a schedule, and send results to Slack, Google Sheets, or a webhook with integrations. AI agents can call it through the Apify MCP server or the API tab.

Something doesn't work or you need a feature? Open an issue in the Issues tab. We read and answer every report.

This scraper only collects publicly available Reddit posts and comments that anyone can see without logging in. It does not access private communities, private messages, or account data. Results can include personal data such as usernames, which regulations like the GDPR protect. Only collect personal data when you have a legitimate reason, and check Reddit's terms and your local laws if you are unsure. Read more in Apify's post Is web scraping legal?.

Other scrapers by ParseBird