Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
Reddit Posts Search Scraper icon

Reddit Posts Search Scraper

Search Reddit by keyword: title, post text, author, subreddit, permalink and dates. Add a free Reddit app for scores. $0.891 per 1,000 posts.

5 from 1 review on Apify 475 runs on Apify $0.000891 per post ($0.891 / 1,000)
Run this in the cloudRun on Apify →

Social Media Scrapers

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust query, subreddit, time (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.000891 per post = $0.891 per 1,000

You are charged forWhenPrice
Post returnedCharged per Reddit post returned in the dataset (empty searches are not charged).$0.000891

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-19, and they are what you are actually charged.

Inputs

FieldWhat it doesType
queryKeywords to search Reddit for. Supports Reddit search operators (e.g. "title:layoffs", "author:spez", quotes for phrases).string
subredditSearch only within this subreddit (e.g. "MechanicalKeyboards" or "r/MechanicalKeyboards"). Leave empty to search all of Reddit.string
timeApplies to Relevance / Top / Most-comments sorts.string
redditClientIdOptional. Create a free 'script' app at reddit.com/prefs/apps to fill in the vote data the public feed does not carry (score, upvoteRatio, numComments, flair), to get scores on comments, and to page past 100 posts. Without it the actor uses the keyless feed, which still returns posts and comments.string
redditClientSecretThe secret for the Reddit app above.string
sortHow to order the search results.string
maxItemsThe keyless feed returns up to 100 matching posts per search, ask for more and 100 is what arrives. It carries no vote data, so score, numComments, upvoteRatio and flair come back null; title, author, url, permalink, subreddit, selftext, createdAt, isSelf, domain and thumbnail are populated. Add Reddit app credentials below to fill in the vote data and page past 100.integer
commentLimitHow many comments to keep per post, top-sorted. Worth keeping low when you are pulling a lot of posts, this multiplies with Max posts.integer
includeCommentsRead each post's comments. Works without Reddit app credentials. Reddit serves a given address about one comment feed per minute, so this is paced and slower than a plain search: measured, 5 posts come back complete in about 5 seconds, while 100 posts take about 3 minutes and around 86 of them get comments. Posts that missed out carry a commentsError on the row rather than an empty list. Comments have author, body, permalink and createdAt; Reddit's comment feed carries no scores, so comment score is null unless you add app credentials.boolean
notionConnectorOptional. Write each post as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connectors, then pick it here. Leave empty to skip (default), results are always saved to the dataset regardless.string
notionParentIdOptional. The Notion data source ID of the database to write into (only used if a Notion connector is set). Leave empty to create the pages privately in your workspace instead.string

What you get

A structured dataset — each result includes fields like:

authorcreatedAtcreatedUtcdetailsdomainflairidisSelfnumCommentsover18permalinkqueryscoreselftextsubreddittitleurl

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

22 ready-to-run use cases

Reddit Monitoring Tool: New Posts Naming Your Brand

A reddit monitoring tool run: every post from the past week naming your company, with the full text, a link, and the comments under it.

Reddit Lead Generation: r/SaaS 'What Tool' Threads

Reddit lead generation from r/SaaS. Posts where somebody asks which tool to use, with the whole ask, the author and a link. Buyer intent in their own words.

Reddit Startup Ideas from r/Entrepreneur Pain Points

Reddit startup ideas mined from r/Entrepreneur posts that begin 'I wish there was'. Full post text and links, top of the year. Validate before you build.

WallStreetBets Posts by Ticker, Scraped Daily

Today's wallstreetbets posts naming a ticker, with full text, author and link. Raw posts for you to score. There is no sentiment column in the output.

Reddit SEO: Find Threads Ranking for Your Keyword

Reddit SEO research. Pull the year's top threads for a commercial keyword and check which ones Google shows. Post text and links, no upvote numbers.

Reddit Market Research on a Named Company

A reddit market research sweep: a month of top posts naming a company, with the full write-ups, links and the replies under each one.

BuyItForLife Products: r/BuyItForLife Top Posts

Which buyitforlife products people actually stand behind, from the month's top r/BuyItForLife posts. Full text and links. Repeat mentions are the signal.

Reddit Dataset of Top Questions from a Subreddit

Build a reddit dataset from top 'how do I' posts in r/learnprogramming: questions with full body text and the answers from their comment threads.

Reddit Sentiment Analysis Input: A Week of Posts

Raw material for reddit sentiment analysis: a week of new posts from one subreddit, full text included. It collects the posts. The scoring is yours to run.

Reddit 'Alternative To' Threads for Any Product

Every reddit alternative to thread naming a product you pick, across the past year. Full posts and links, so you read the objection in the writer's words.

Subreddit Search: Top Threads from One Community

A subreddit search over the past year's top posts, so you see what a community actually argues about. Full text and links. Vote counts are not returned.

Reddit Product Reviews for One Specific Model

Reddit product reviews for a named model, pulled by relevance: full post text, author, link, and the comment threads under each one.

Reddit AI Agents Discussion from r/LocalLLaMA

A month of reddit ai agents posts from r/LocalLLaMA, top first. Full write-ups and links, so you read the frontier chatter before it reaches the press.

cscareerquestions Salary and Offer Threads

Top cscareerquestions salary, offer and negotiation posts from the past year, full text included. Real numbers from people who took the offer.

Reddit Content Ideas from Top 'How To' Questions

Reddit content ideas straight from the month's top 'how to' posts in a niche subreddit. Real questions, full text, links. An editorial calendar with sources.

Reddit Data Breach Posts from the Last 24 Hours

Every reddit data breach post from the past day, newest first, with full text, links and the comments on each post.

Best Mechanical Keyboard Reddit Threads, Scraped

Best mechanical keyboard reddit threads pulled by relevance, with full post text and links. The picks argued in the replies are not part of the output.

Notion Reddit Threads from r/productivity, Past Year

Notion reddit discussion in r/productivity over the past year: full post text, author, date, link, and the replies underneath each thread.

r/MachineLearning LLM Posts, Pulled by Hot Sort

LLM threads from r/MachineLearning using Reddit's hot sort: title, post body, author, date, link. Upvote numbers are not in the feed this reads.

Reddit User Post History for Any Username

Pull a reddit user post history with the author: operator. Every post from one account, newest first, with body text, subreddit, link and comments.

Reddit Mentions of a Brand Inside One Subreddit

Track reddit mentions of a brand or product in one subreddit, newest first: post body, author, date, link and the comments where Reddit serves them.

Reddit Scraper: Search Any Keyword, Get Posts as JSON

Reddit scraper for any keyword. Post title, body, author, subreddit, date and link as JSON, no API key. Comments on most posts. No vote counts.

Ready-made automation using this tool

A finished workflow you can import into n8n and run — this tool does the data-gathering inside it. Free, and yours to change.

Collect what customers complain about into one board

Your customers already say what is wrong with your product — on Reddit, on review sites, in app stores. This reads one of those places, pulls out the actual complaint in their own words, groups the wording into consistent themes, and files it. Swap the source without rebuilding anything.

All automations →

Related tools in Social Media Scrapers

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

Reddit Video Scraper & Downloader iconSocial Media Scrapers

Reddit Video Scraper & Downloader

Download v.redd.it videos from any subreddit or Reddit user, with the audio joined back in. Get post details and dedupe. $0.03 per video record.

17 use cases

Telegram Channel Scraper iconSocial Media Scrapers

Telegram Channel Scraper

Scrape public Telegram channels with no bot token and no API key. Get post text, date, views, author, media links and subscriber count. $1.50 per 1,000.

21 use cases

Pinterest Search Scraper iconSocial Media Scrapers

Pinterest Search Scraper

Search Pinterest by keyword: pin title, description, image URL, destination link, pinner and board. No login. $1.60 per 1,000 pins.

20 use cases

Bluesky Scraper iconSocial Media Scrapers

Bluesky Scraper

Scrape Bluesky posts and profiles by handle, no login. Archive keyword search needs your own app password. $2.00 per 1,000 posts.

5 use cases

Mastodon Scraper iconSocial Media Scrapers

Mastodon Scraper

Scrape public Mastodon posts by hashtag, account or timeline: text, author, followers, engagement, media and tags. $1.50 per 1,000.

2 use cases

Lemmy Scraper iconSocial Media Scrapers

Lemmy Scraper

Scrape public Lemmy posts from any instance: title, body, author, score, votes, comments and permalink. Pick the host. $1.50 per 1,000 posts.

2 use cases

See all Social Media Scrapers →

Reddit Search Scraper: keyword search across Reddit, or inside one subreddit

Type a query and it returns the posts that match, as rows. Title, author, subreddit, the full post text, the permalink and the posting time, with the comments too if you ask for them.

The honest part first. The keyless run gives you up to 100 posts per search, and the public feed it reads carries no vote data, so score, numComments, upvoteRatio and flair arrive as null. Everything else on the row is filled. Add your own free Reddit app credentials and those fields fill in and the search can page past 100.

InputA search query, optionally scoped to one subreddit
OutputOne row per matching post
Ceiling100 posts per search, or up to 1,000 with your own Reddit app
Account neededNone by default
Price$0.891 per 1,000 posts

🔎 What Reddit Search Scraper does

It runs your query the way Reddit's own search box would, and writes each hit as a row. Reddit's search operators work: title:layoffs, author:spez, quotes around a phrase. Leave subreddit empty to search the whole site, or fill it in to stay inside one community.

Turn includeComments on and each post gets its comments attached, up to commentLimit. That path is paced rather than parallel, so it is noticeably slower: measured, five posts finish in about five seconds, while 100 posts take around three minutes and roughly 86 of them come back with comments. The ones that miss out carry a commentsError instead of a silently empty list.

There is no cross-run dedupe here. Run the same query twice and you get the same posts twice.

📥 What you give it

{
  "query": "best mechanical keyboard",
  "subreddit": "MechanicalKeyboards",
  "sort": "top",
  "time": "year",
  "maxItems": 50
}
FieldDefaultWhat it is
querynone, requiredYour keywords. Reddit's search operators and quoted phrases both work.
subredditnoneSearch inside one community. MechanicalKeyboards or r/MechanicalKeyboards. Empty searches all of Reddit.
sortrelevancerelevance, hot, top, new or comments.
timeallThe window. Applies to relevance, top and most-comments sorts.
maxItems50Posts to return. 1 to 1,000, but see the ceiling above. This is your spend cap.
includeCommentsfalseAttach each post's comments. Slower, see above.
commentLimit10Comments kept per post, top first. 1 to 100.
redditClientId, redditClientSecretnoneYour own free script app from reddit.com/prefs/apps. Fills the vote fields and pages past 100.
notionConnector, notionParentIdnoneOptional. Write each post into your Notion as well as the dataset.
proxyConfigurationoffLeave it alone. Only worth switching on for very large runs.

query is required. Send an empty one and the run writes a BAD_INPUT row rather than searching for nothing.

📤 What you get back

A real row from a real run, keyless:

{
  "ok": true,
  "id": "1w4c63y",
  "title": "What's The Best Mechanical Keyboard In 2026? (Price, Switches)",
  "author": "freecoinsbabyhe",
  "subreddit": "keyboards",
  "url": "https://www.reddit.com/r/keyboards/comments/1w4c63y/whats_the_best_mechanical...",
  "permalink": "https://www.reddit.com/r/keyboards/comments/1w4c63y/whats_the_best_mechanical...",
  "selftext": "I tried my buddy's board recently with brown tactile switches he told me last week and I actually loved that little bump not too loud but you still feel it...",
  "score": null,
  "upvoteRatio": null,
  "numComments": null,
  "createdUtc": 1788269666,
  "createdAt": "2026-09-01T13:34:26.000Z",
  "flair": null,
  "over18": null,
  "isSelf": true,
  "thumbnail": null,
  "domain": "self.keyboards",
  "source": "rss"
}

The selftext above is cut short here for reading. In a real row it holds the whole post.

FieldWhat it is
urlThe outbound link on a link post. On a text post it is the thread itself.
permalinkAlways the Reddit thread, whatever kind of post it is.
isSelf, domaintrue and self.<subreddit> on a text post. On a link post, the host it points at.
createdUtc, createdAtThe same moment as epoch seconds and as an ISO string.
sourceWhich path produced the row: the keyless feed, or your app credentials.
commentsOnly when includeComments is on. Author, body, permalink and time on each.

🧾 Reading the output

Two kinds of row land in the dataset, and only the first kind is billed.

RowHow to spot itCharged
A postok: true and an idyes
A diagnosticok: false and an errorCodeno

Filter on ok == true and you have your results.

CodeWhat it means
BAD_INPUTThe query was empty or unusable. Nothing was searched.
NO_RESULTSThe search ran and Reddit matched nothing. Try a wider time window or fewer operators.

A fetch that fails writes its own coded diagnostic row with the query on it, so you can tell a failed search from a search that genuinely found nothing.

commentsError is different. It sits on a real post row that was delivered and billed, and says the comments for that one post could not be read. unavailable_429 means Reddit paced us out on that post, http_404 means the thread was gone by the time we asked.

Which fields carry a value depends on the path:

FieldKeylessWith your app credentials
title, author, selftext, permalink, createdAtfilledfilled
score, upvoteRatio, numComments, flair, over18nullfilled
comment scorenullfilled
posts per searchup to 100pages past 100

▶️ How to run it

1. Open Reddit Search Scraper and click Try for free. 2. Type your keywords into Search query. 3. Optional: put a community into Restrict to subreddit, and pick a Sort and Time window. 4. Set Max posts. Start at 25 while you check the wording of your query. 5. Click Start, then download the dataset as JSON, CSV or Excel, or read it from the API.

💰 How much does it cost?

$0.891 per 1,000 posts. Flat on every Apify plan, no volume tiers.

You pay per post delivered. Diagnostic rows are not billed, and a search that matches nothing produces no post rows to bill for. Comments ride on the post row, so turning includeComments on adds time but not price.

💡 What people use it for

  • Watching what people say about a product or a company, in their own words rather than in a summary.
  • Pulling every thread in one subreddit that mentions a term, for a support or research backlog.
  • Finding the threads behind a spike, by sorting on most comments inside a tight time window.
  • Collecting question posts in a niche to see what keeps getting asked.

🚧 What it does not do

  • No vote data on a keyless run. score, numComments, upvoteRatio and flair are null,

and they are left empty rather than written as zero so you can tell missing from none.

  • 100 posts per search while keyless. Ask for 500 and 100 is what arrives. Your own app

credentials lift that.

  • No dedupe between runs. The same query on Tuesday returns Monday's posts again, and bills for

them.

  • Comments are paced. On a big run some posts come back with a commentsError rather than a

comment list. Deleted comments are skipped.

  • No user or subreddit browsing. This searches. To walk a subreddit or a profile in order, use

the scraper linked below.

  • No private or removed content. Public posts only, as Reddit's own search sees them.

🧭 Which Reddit actor do you need?

If you wantUse
Posts matching a keywordThis one
Everything posted in a subreddit or by one userReddit Scraper
Reddit videos as one MP4 with the soundReddit Video Scraper
Post text cleaned up for narrationReddit Text Cleaner

❓ Questions people ask

Do I need a Reddit account? No. The credential fields are optional. They buy you the vote fields, comment scores, and paging past 100 posts.

Why are all my scores null? The keyless feed does not publish them. They are left empty on purpose, so an empty field never reads as a post with zero upvotes.

Do search operators work? Yes. title:, author:, quoted phrases, the usual Reddit set. They go in the same Search query box.

Why is my run with comments so slow? Comment feeds are paced by Reddit, not by the actor. Roughly three minutes for 100 posts. Keep commentLimit low when you are pulling a lot of posts.

Is scraping Reddit legal? This reads public posts only, never private messages or accounts. Rows can still hold personal data, which GDPR and similar laws cover, so have a reason for keeping it. Apify's write-up on the legality of web scraping is a sensible starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the exact query you used and the run ID, and the log fills in the rest.