Reddit Posts Search Scraper
Pricing
from $15.00 / 1,000 results
Reddit Posts Search Scraper
Search Reddit posts by keyword. Multiple keywords, sort by relevance/hot/top/new/comments, time and date filters, optional subreddit restriction, auto-pagination. Returns title, text, author, subreddit, score, comments and media.
Pricing
from $15.00 / 1,000 results
Rating
0.0
(0)
Developer
code craker
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
4
Monthly active users
16 days ago
Last modified
Categories
Share
Apify actor that searches Reddit posts by keyword and exports them as structured data.
It scrapes the classic old.reddit.com search pages over plain HTTP — no browser, no
login, no cookies — which keeps runs fast and cheap (256 MB of memory is enough).
(Reddit hard-blocks its public .json listing endpoints for unauthenticated clients,
but the old.reddit HTML search is served normally and its markup has been stable for
a decade.)
Features
- One keyword (
query) or many (queries) — each searched separately, results combined and de-duplicated by post. - Sort by
new(chronological),relevance,hot,toporcomments. - Reddit's own time window (
timeFilter: hour/day/week/month/year/all) plus exacttimeSince/timeUntildate bounds enforced actor-side. - Optional restriction to a single subreddit.
- Cursor-based auto-pagination up to Reddit's ~1000-results-per-listing cap.
- Results are pushed page by page, so an abort or timeout keeps everything collected so far.
- Automatic block recovery: on HTTP 403/429 the actor retries with a fresh proxy IP.
- When a run ends with 0 results, the last page fetched is saved as
DEBUG_HTMLin the run's key-value store.
Input
{"queries": ["econet", "delta corporation"],"sort": "new","numberOfPosts": 100,"timeSince": "2026-01-01","subreddit": "zimbabwe","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
numberOfPosts applies per keyword. Reddit search operators
(subreddit:, author:, self:yes, OR, quoted phrases, ...) typed into a
query are passed through as-is.
Reddit blocks most datacenter IPs on its public JSON API, so keep the RESIDENTIAL proxy default.
Output
One dataset item per post:
{"id": "1abcd2","name": "t3_1abcd2","url": "https://www.reddit.com/r/zimbabwe/comments/1abcd2/econet_results/","title": "Econet posts strong half-year results","text": "Rendered selftext of the post (empty for link posts)...","author": "some_user","authorProfileUrl": "https://www.reddit.com/user/some_user","subreddit": "zimbabwe","subredditUrl": "https://www.reddit.com/r/zimbabwe","score": 42,"numComments": 17,"linkFlairText": "Business","isSelf": true,"over18": false,"externalUrl": null,"domain": "self.zimbabwe","thumbnail": null,"created_at": "2026-07-01T09:30:12.000Z","createdUtc": 1782898212,"searchQuery": "econet","sort": "new","timeFilter": "all"}
score is null while Reddit still hides the vote count of a very fresh post
(typically the first hour or two).
Integration (scraping-tool)
Call it like the other outspoken_strategy/* search actors:
const res = await this.scrapingService.scrape({url: `https://www.reddit.com/search/?q=${encodeURIComponent(keyword)}`,resultsLimit: requestCount,actor: 'outspoken_strategy/reddit-posts-search-scraper',timeout,additionalInput: {query: keyword,numberOfPosts: requestCount,sort: 'new',proxyConfiguration: { useApifyProxy: true, apifyProxyGroups: ['RESIDENTIAL'], apifyProxyCountry: 'US' }},scrapeType: 'reddit-keyword-search'});
Normalization hints: url and id are ready to use; text holds the selftext
only, so index title + text for relevance matching; likesCount → score,
commentsCount → numComments, createdTime → created_at.
Local development
npm installecho '{ "query": "artificial intelligence", "numberOfPosts": 25, "proxyConfiguration": { "useApifyProxy": false } }' > storage/key_value_stores/default/INPUT.jsonnpm start
Deploy with apify push.