Reddit Keyword Search
Pricing
from $3.00 / 1,000 reddit-posts
Reddit Keyword Search
Search Reddit posts by keywords (one search per keyword). Returns post title, body, votes, subreddit, and URL. Optional keyword relevance filter.
Pricing
from $3.00 / 1,000 reddit-posts
Rating
5.0
(1)
Developer
Olek Coder
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Actor ID: morph_coder~reddit-search
Search public Reddit posts by keywords. Each keyword runs as a separate Reddit search; matching posts are opened for full metadata (title, body, author, votes, subreddit, URL).
Disclaimer: This is an unofficial tool. It is not affiliated with, endorsed by, or sponsored by Reddit, Inc. Users are responsible for complying with Reddit's User Agreement, applicable laws, and data-protection regulations in their jurisdiction.
What it does
Use this Actor to monitor brand mentions, track topics, or collect publicly visible Reddit posts that match your keywords — for market research, social listening, or content discovery.
- Runs one Reddit search per keyword (e.g. separate searches for
adidasandnike) - Visits each post page and saves structured data to a dataset
- Deduplicates posts found by multiple keywords
- Optional keyword relevance filter for cleaner results
- Residential proxy support (recommended for stable runs)
Legal notice & data privacy
This Actor collects only publicly available information that any visitor can see on Reddit without logging in — for example post titles, public post text, subreddit names, public usernames, vote counts, and public URLs.
It does not:
- Access private messages, private subreddits, or content behind login walls
- Bypass authentication or technical access controls
- Collect special categories of personal data by design
User responsibilities: You must use this Actor lawfully and only for purposes permitted by Reddit's terms and applicable regulations (including GDPR and similar privacy laws where they apply). Do not use collected data to identify, profile, or contact individuals without a valid legal basis. You are responsible for retention, lawful processing, and honoring data-subject rights for any personal data you obtain. The Actor developer does not control how you use the output.
Features
- Separate search per keyword with
matchedKeywordandsearchQueryin output - Sort and time range (
new,day,week, etc.) - Optional subreddit filter
filterByKeywords— save only posts where a keyword appears in title, body, or URLpostDateLimit— skip posts older than a given date- Pay per saved post (
reddit-postorreddit-post-filteredevents) - Fail-fast crawling (no retries) — tune reliability via delays and proxy
Input
| Field | Default | Description |
|---|---|---|
keywords | ["adidas", "nike"] | Keywords or phrases — one Reddit search each (required) |
sort | new | relevance, hot, top, new, comments |
time | day | hour, day, week, month, year, all |
maxPosts | 10 | Maximum posts saved to the dataset (never exceeded) |
includeNSFW | true | When true, Reddit search includes 18+ (NSFW) posts (include_over_18=on). Set false to exclude adult-marked content from search results. |
subreddit | — | Limit search to one subreddit (name without r/, e.g. soccer) |
filterByKeywords | false | When true, only posts containing at least one keyword in title, body, or URL are saved and charged. Recommended for cleaner results. |
postDateLimit | — | Skip posts older than this date. ISO 8601, e.g. 2026-05-20 or 2026-05-20T00:00:00.000Z (UTC). Leave empty to disable. |
proxy | RESIDENTIAL | Apify proxy — residential recommended |
requestDelayMs | 1000 | Delay before each page load (ms, ±25% jitter). Increase to 1500–3000 if you see rate limits. |
maxConcurrency | 4 | Parallel browser tabs (1–10) |
debugMode | false | Verbose logging |
Recommended input for Store / production
{"keywords": ["your brand", "your product"],"sort": "new","time": "day","maxPosts": 50,"filterByKeywords": true,"includeNSFW": false,"proxy": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Output
One dataset row per saved post:
| Field | Description |
|---|---|
dataType | Always post |
username | Public Reddit username of the author |
authorFlair | Author flair text, or null |
title | Post title |
body | Post text ("" for link/image posts with no selftext) |
upVotes | Upvote count |
numberOfComments | Comment count |
communityName | Subreddit (e.g. r/soccer) |
url | Canonical public post URL |
searchQuery | Reddit query that found this post |
matchedKeyword | Input keyword from that search |
Example
{"dataType": "post","username": "example_user","authorFlair": null,"title": "Adidas vs Nike running shoes","body": "Looking for recommendations...","upVotes": 42,"numberOfComments": 15,"communityName": "r/running","url": "https://www.reddit.com/r/running/comments/abc123/example/","searchQuery": "adidas","matchedKeyword": "adidas"}
Keyword filter
When filterByKeywords is true, a post is saved and charged only if at least one input keyword appears in the title, body, or URL (case-insensitive). This removes obvious noise from Reddit search (e.g. posts that matched indirectly). You may receive fewer than maxPosts rows if many candidates are filtered out or fail to load.
Limitations
- Public content only — no private or login-only data
- Fail-fast — failed requests are not retried (
maxRequestRetries: 0); expect some loss; increaserequestDelayMsor lowermaxConcurrencyto improve stability - Fewer than
maxPosts— possible when search returns few results, many requests fail, or the keyword filter rejects posts - Empty
body— normal for link posts, videos, and polls - Rate limits — Reddit may block or throttle; use residential proxy and reasonable delays
- No comments scraping — only post-level fields, not individual comments
- Duplicate keywords across searches — same post appears once;
matchedKeywordreflects the first search that enqueued it
Local development
npm installnpm run buildnpx apify run
Use scripts/test-input.example.json or set input in Apify Console. For cloud runs, connect the Git repository and deploy from your dev branch.
Troubleshooting
| Issue | What to try |
|---|---|
| Few or zero results | Widen time, change sort, add keywords, or remove subreddit |
| Slow or failing runs | Enable residential proxy; set requestDelayMs to 2000–3000; reduce maxConcurrency |
| Noisy results | Set filterByKeywords: true |
| Adult content in results | Set includeNSFW: false |
Empty body fields | Expected for link/media posts — check title and url |
Pricing
When pay-per-event is enabled on Apify Store:
| Mode | Event | Description |
|---|---|---|
filterByKeywords: false | reddit-post | Each saved post from search (may include off-topic results) |
filterByKeywords: true | reddit-post-filtered | Each post verified to contain a keyword in title, body, or URL |
Set apify-default-dataset-item price to $0 to avoid double billing with dataset rows. Configure both custom events in Apify Console → Monetization (price the filtered event higher than raw). Platform usage (compute, proxy) is billed separately.
Run via API
POST https://api.apify.com/v2/acts/olek_automate~reddit-search/runs?token=YOUR_TOKENContent-Type: application/json{"keywords": ["adidas", "nike"],"maxPosts": 10,"filterByKeywords": true,"includeNSFW": false,"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Fetch results:
GET https://api.apify.com/v2/datasets/{defaultDatasetId}/items?token=YOUR_TOKEN