Reddit Search Scraper — Posts by Keyword & Subreddit
Pricing
from $1.40 / 1,000 results
Reddit Search Scraper — Posts by Keyword & Subreddit
Search Reddit by keyword — across all of Reddit or inside any subreddit — with no API key or login. Export posts to CSV/JSON. A Reddit API alternative for keyword monitoring.
Pricing
from $1.40 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
96
Total users
14
Monthly active users
2 days ago
Last modified
Categories
Share
Reddit Search Scraper — Search Any Subreddit by Keyword (No API Key, No Login)
Search Reddit by keyword — across all of Reddit or inside any subreddit — with sort mode and time window, no login, no OAuth app, no API key. Returns each matching post with title, author, subreddit, body text, permalink and timestamps in clean, deduplicated JSON. Use the simple fields for one search, or pass a whole list of {query, subreddit, sort, time} searches that each run independently. Built on Reddit's logged-out Atom feeds (/r/{sub}/search.rss, the global /search.rss and /r/popular/hot.rss) with a datacenter-first proxy ladder that moves to residential only when Reddit blocks a route.
🏆 Why this Reddit search scraper?
Bulk multi-search (many keyword × subreddit × sort × time combos per run) · clean decoded post text · datacenter-first proxy ladder · export to JSON / CSV / Excel. The no-API-key Reddit search alternative for brand monitoring, niche-community intel and NLP/sentiment pipelines — after Reddit hard-blocked the legacy
search.jsonAPI.
⚠️ Read this before you buy — how it works & what it does NOT return
As of mid-2026 Reddit hard-blocks the legacy search.json API — both www.reddit.com and old.reddit.com return 403, even over residential proxies with a browser fingerprint — and no longer serves r/all to logged-out clients. The logged-out surfaces that still work are the Atom feeds: the subreddit search feed (/r/{sub}/search.rss), the global search feed (/search.rss) and the popular feed (/r/popular/hot.rss). This Actor uses those feeds, which has three consequences you should understand up front:
- A
subredditis optional. With a subreddit the Actor searches inside it; without one, the keyword is searched across all of Reddit through the global search feed. An empty input (orall/r/all) browsesr/popular, because Reddit no longer servesr/allto logged-out clients — the run's status message says whenr/allwas read asr/popular. - ~25 results per search, no pagination. The feed returns at most ~25 of the most relevant items per query and exposes no cursor. To widen coverage, run more searches (vary keyword, subreddit, sort and time window).
- No numeric signals. The RSS feed does not carry
score,upvoteRatio,numCommentsorawards— those lived only on the now-dead.jsonAPI. If you need upvote or comment counts, this is not the right tool; use a dedicated OAuth-based Reddit tool instead.
Those fields still exist in the output object (always null) purely for schema stability — see the field reference below.
✨ What this Actor does / Key features
- 🔎 Keyword search across Reddit or inside any subreddit — supply a
queryand, optionally, one or moresubreddits; get back the most relevant matching posts. - 📚 Bulk multi-search — pass many
{query, subreddit, sort, time, type}objects in one run; each executes independently and its rows are tagged with the search that found them. - 🔀 All feed sort modes —
relevance,hot,top,newandcomments. - ⏳ All time windows —
hour,day,week,month,yearandall. - 🧵 Posts —
typelink(posts, default). Reddit's feeds do not filter comments:type: commentstill returns posts, and the run's status message says so. - 🧼 Clean decoded text — handles Reddit's double-encoded HTML entities and returns readable
titleandtext, deduplicated per run. - 🔗 Full attribution — every row carries the Reddit
id,fullname(e.g.t3_...),permalink,author,subredditand ISOcreatedAt/editedAttimestamps. - 🛡️ Datacenter-first proxy ladder — requests go through datacenter proxies over HTTP/1.1 (which Reddit accepts reliably) and move to the residential pool, then a direct request, only when Reddit blocks a route.
- 🔓 No login, no API key — no Reddit account, OAuth app or developer credentials required. Only an Apify account.
- 📦 Export-ready — clean flat rows straight to CSV, JSON, Excel, XML or JSONL from the Apify Dataset.
🚀 Quick start (3 steps)
- Configure — enter a
queryand, optionally,subreddits(or a list ofsearches);sort,timeandmaxResultsare optional. - Run — click Start. The Actor fetches each search feed through the proxy ladder and streams matching rows into your dataset.
- Get your data — open the Output tab and export to JSON, CSV, Excel, XML or JSONL, or pull it via the Apify API.
📥 Input
Everything is optional. Use the simple fields for one search, or searches for a list of independent searches.
Example — search all of Reddit for a keyword
{"query": "ai agent","sort": "new","time": "month","maxResults": 25}
Example — the same keyword inside several subreddits (brand monitoring)
{"query": "shopify","subreddits": ["ecommerce","Entrepreneur","smallbusiness"],"sort": "new","time": "month","maxResults": 25}
Example — several independent searches
{"searches": [{"query": "ai agent","subreddit": "MachineLearning","sort": "new","time": "month"},{"query": "openai","subreddit": "OpenAI","sort": "top","time": "week"}]}
Example — browse a subreddit instead of searching
{"subreddits": ["programming"],"sort": "hot","maxResults": 25}
| Field | Type | Description |
|---|---|---|
query | string | Keyword to search for. Without a subreddit it searches all of Reddit; with subreddits it searches inside each of them. Leave empty to browse instead of searching. |
subreddits | array | One or more subreddits (without r/), e.g. MachineLearning, Entrepreneur. Leave empty to browse r/popular — or, with a keyword, to search all of Reddit. |
sort | string | For keyword search: relevance, hot, top, new or comments. For browsing: hot, new, top or rising. |
time | string | hour, day, week, month, year or all. Applies to Top sort and to keyword search. |
type | string | link (posts, default). comment is accepted, but Reddit's feeds return posts; the run's status message says so. |
maxResults | integer | Items per subreddit (or per search), up to ~25: Reddit's logged-out feeds do not paginate, so higher values have no extra effect. |
searches | array | Power-user override: a list of explicit {query, subreddit, sort, time, type} objects. Takes precedence over the simple fields; every entry runs independently. |
proxyConfig | object | Requests start on datacenter proxies and move to the residential pool (then a direct request) only when Reddit blocks them, so the default is enough. |
Want more than ~25 per topic? The feed cap applies per subreddit and per search, so add more
subredditsorsearchesentries — vary the keyword,sort(newvstop) andtimewindow to surface different slices of the same community. That is the only way to widen coverage.
📤 Output
One clean, deduplicated row per matching result. Here is a sample post record:
{"resultType": "link","id": "1twtdob","fullname": "t3_1twtdob","subreddit": "MachineLearning","author": "Intellerce","title": "We built a source-available LLM reliability library","text": "TL;DR: Reliability techniques that boost an LLM's correctness...","url": "https://www.reddit.com/r/MachineLearning/comments/1twtdob/...","permalink": "https://www.reddit.com/r/MachineLearning/comments/1twtdob/...","createdAt": "2026-06-04T16:51:29+00:00","editedAt": "2026-06-04T16:51:29+00:00","searchQuery": { "query": "ai agent", "subreddit": "MachineLearning", "sort": "new", "time": "month", "type": "link" },"scrapedAt": "2026-07-06T17:59:00.000Z"}
The Overview table view surfaces title, subreddit, author, text, createdAt and permalink for quick scanning; the full schema is always available in the raw JSON/CSV export.
💡 Use cases
- Brand / keyword monitoring — watch specific communities for mentions of your product, competitor or campaign; run on a schedule with
sort=new. - Competitor & topic intel — search niche subreddits where your audience actually hangs out and pull the most relevant threads.
- Trend research & content discovery — pull
sort=top, time=weekper subreddit to see what's resonating right now. - Sentiment & NLP pipelines — bulk-ingest decoded post and comment
textacross many searches as input for classification or LLM workflows. - Community research — compare how the same keyword is discussed across several subreddits by fanning one query out over multiple
searches. - Lead & audience discovery — find people asking questions your product answers, complete with
authorandpermalinkfor follow-up.
👥 Who uses it
Growth marketers & social-listening teams · community and brand managers · founders & indie hackers doing customer research · market researchers & data journalists · ML/NLP engineers building sentiment and discussion datasets.
💰 Pricing
This Actor runs on a simple pay-per-result model — you only pay for the rows actually returned, with no separate Apify platform fees to calculate. Because each search caps at ~25 items, costs stay small and predictable even across many searches. Try it on the free tier first, then scale up. See the Pricing tab on this page for the current rate.
❓ Frequently Asked Questions
Is it legal to scrape Reddit? The Actor reads only publicly available content from Reddit's public subreddit search feed. You are responsible for using the data in compliance with Reddit's terms and applicable law, such as GDPR.
Does Reddit have a public search API?
Not for logged-out clients anymore. As of mid-2026 Reddit hard-blocks the legacy search.json API (www and old.reddit both return 403) and no longer serves r/all. The logged-out surfaces still served are the Atom feeds — the subreddit search feed (/r/{sub}/search.rss), the global search feed (/search.rss) and the popular feed — which is exactly what this Actor uses.
Do I need an API key or a login? No. There is no Reddit account, OAuth developer app or API key required — only an Apify account. The Actor reads Reddit's public Atom feeds.
Do I need a proxy? No — leave the proxy setting at its default. Requests start on Apify datacenter proxies (HTTP/1.1) and move to the residential pool, then a direct request, only when Reddit blocks a route; failed attempts are retried with short, time-bounded backoff.
How much data can I get?
Each individual search returns at most ~25 of the most relevant items (the feed's cap, with no pagination). To scale up, add more searches entries — vary the keyword, subreddit, sort and time window. Total results scale with the number of searches you run, not with a per-search limit.
Why are score, numComments and upvoteRatio empty?
Those numeric signals lived only on the now-blocked .json API. The RSS feed does not carry them, so they are always null. This Actor is for discovering and reading matching posts/comments, not for upvote/comment analytics.
Is this a Reddit API alternative for searching subreddits?
Yes. Reddit's logged-out search.json API is hard-blocked as of mid-2026, so this Actor acts as a no-API-key way to search all of Reddit or any subreddit by keyword. It returns posts from Reddit's Atom feeds, with a ~25-result cap per search.
Can I scrape Reddit without an API or login?
Yes — no login, OAuth or developer app is required. The Actor reads Reddit's public Atom feeds, so it works without a Reddit account or API credentials.
How do I export Reddit posts and comments to CSV or JSON?
Run your searches and Apify stores the matching rows in a dataset you can download as CSV, JSON, Excel, XML or JSONL (or pull via the API). Each row carries title, author, subreddit, text, permalink and timestamps — ready for a spreadsheet or NLP pipeline.
How do I monitor a subreddit for brand or keyword mentions?
Add a search object with your keyword and the target subreddit, set sort to new, and schedule the run to capture the latest matching posts over time. Fan the same keyword across several subreddits with multiple search objects for wider brand coverage.
Can I search several subreddits for the same keyword at once?
Yes. Pass multiple search objects, each with the same query but a different subreddit; every one runs independently and each returned row is tagged with the searchQuery that found it.
Can I collect comments as well as posts?
Not reliably. Reddit's logged-out feeds do not filter by comments: setting type to comment still returns posts, and the run's status message says so. For comment text, use a dedicated OAuth-based Reddit tool.
🔗 More social & community scrapers by logiover
Building a cross-platform community-discussion dataset? Pair Reddit search with the rest of the social/dev/content suite:
| Source | Actor |
|---|---|
| Reddit Subreddit Scraper · Reddit Historical Archive Scraper | |
| 🟠 Hacker News | Hacker News Search Scraper |
| 💬 Q&A | Stack Exchange Questions Scraper |
| 🐦 Microblogs | Threads Scraper |
| 👩💻 Dev content | Dev.to Articles Scraper · Substack Newsletter Scraper |
| ▶️ YouTube | YouTube Comments Scraper |
👉 Browse all logiover scrapers on Apify Store — 180+ actors across real estate, jobs, crypto, social media & B2B data.
⏰ Scheduling & integration
Schedule this Actor on Apify to monitor your subreddits daily or hourly and build a growing keyword-mention dataset. Export results to JSON, CSV or Excel, sync to Google Sheets, or push to your database, BI tools and webhooks through the Apify API. Connect it to Make, n8n or Zapier to route fresh Reddit mentions straight into Slack, Discord, Notion or any HTTP endpoint the moment they appear.
⭐ Support & feedback
Found a bug or need an extra field? Open an issue on the Issues tab — response is usually fast. If this Actor saves you time, a ★★★★★ review on the Store page genuinely helps and is hugely appreciated. 🙏
⚖️ Legal
This Actor extracts only publicly available data from Reddit's public subreddit search feed and is intended for legitimate research, analytics and monitoring use. You are responsible for complying with Reddit's terms of service, GDPR and any applicable local laws.
This Actor is an independent tool. It is not affiliated with, endorsed by, or sponsored by Reddit Search; Reddit Search and all other trademarks mentioned here are the property of their respective owners.
📝 Changelog
2026-11-01
- Runs with empty input and "all" / "r/all" now browse r/popular, because Reddit stopped serving r/all to logged-out clients; the status message says when r/all was read as r/popular.
- A keyword without a subreddit now searches all of Reddit through Reddit's global search feed.
- Requests now go through datacenter proxies first and move to the residential pool (then a direct request) only when Reddit blocks them, and they use HTTP/1.1, which Reddit accepts far more reliably.
- Retries are shorter and bounded by the run's time limit, so a blocked feed no longer holds the run for over a minute.
- A run where Reddit refuses every request now fails with a clear message instead of finishing as succeeded with no rows; a genuinely empty search still succeeds with an explanatory status message.
- Subreddits that do not exist, are banned or are private are reported by name instead of being retried, and the rest of the list still runs.
- Results are now written once per feed, and the default proxy setting no longer pre-selects the residential group.
- README refreshed: 2 links to renamed Actors updated, 2 links to retired Actors removed; independence disclaimer added.
2026-10-15
- Every request now has a hard time limit, so a proxy connection that stalls can no longer hold up the run or push it past its timeout.
- A run that reaches its maximum cost per run now stops cleanly with its results saved and a status message, instead of ending as aborted.
- A proxy group your account cannot use no longer stops the run at start-up; it falls back to the default Apify Proxy.
- Memory is managed within the run's own limit, which removes a rare out-of-memory crash on large pages.
2026-09-23
- Fleet-wide quality audit. Verified end to end against live data and re-checked the input schema, the output columns and the run configuration.
- Output verified on a live run: 14 columns returned, 98.9% of cells populated.
- Run reliability reviewed: 93.5% of public runs succeeded in the last 30 days.
- Input schema, output schema and pricing configuration reviewed.
2026-09-01
- Fleet-wide health check. Verified against this Actor's real run history: 30-day success rate, output row counts, per-field fill rates, and peak memory against the configured memory limit.
- Reviewed for the failure patterns that have cost this fleet runs — unguarded proxy setup, retry loops that can outlast the run's own time budget, and full-page HTML parsing that can exhaust a small container.
- No change to input, output fields or scraping logic.
2026-08-11
- Maintenance release: refreshed the build and dependencies.
- Re-verified live execution, non-empty structured output and dataset field/type integrity.
- Reviewed reliability (retries, pagination) and output quality as part of a full-fleet QA pass.
2026-08-01
- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.
2026-07-06
- ✨ README overhaul: added a badge row, ready-to-run example scenarios, a collapsible full field reference, an expanded high-intent FAQ (API alternative, no-login export, data volume) and a curated social/community cross-promo grid. Kept the RSS-only reality (subreddit required, ~25/search cap, no score/comments) front and center.
2026-07-01
- Maintenance pass: re-verified end-to-end on live data and confirmed successful runs within the 5-minute quality window on the default input.
- Sharpened Store metadata (SEO title & description) and expanded the FAQ with high-intent, long-tail questions for easier discovery in Google and Apify Store search.
- Added ready-to-run example tasks that cover common real-world use cases.
2026-06-15
- Reliability pass: re-verified end-to-end on live data with real-world inputs. Routine maintenance build.
2026-06-07
- 📚 Docs: added coverage for using the actor as a Reddit API alternative, exporting Reddit posts/comments to CSV/JSON, and scraping Reddit without an API key or login.
2026-06-06
- 📚 Docs & schema accuracy pass: README now reflects the RSS-only reality (subreddit required, ~25/search cap, no score/comments). Removed always-null
score/numCommentscolumns from the dataset table; added the populatedtextcolumn.
2026-06-05
- 🛡️ Reliability fix: results no longer dropped by strict output validation — runs complete cleanly.
2026-06-04
- Verified live & refreshed build — reliability/maintenance pass.
*Maintained: last verified 2026-11-01 — checked end-to-end against live run history (reliability, output fields and types, and time/memory budgets).