Reddit Keyword Search avatar

Reddit Keyword Search

Pricing

from $3.00 / 1,000 reddit-posts

Go to Apify Store
Reddit Keyword Search

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

Olek Coder

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

4 days ago

Last modified

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 adidas and nike)
  • 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)

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 matchedKeyword and searchQuery in output
  • Sort and time range (new, day, week, etc.)
  • Optional subreddit filter
  • filterByKeywords — save only posts where a keyword appears in title, body, or URL
  • postDateLimit — skip posts older than a given date
  • Pay per saved post (reddit-post or reddit-post-filtered events)
  • Fail-fast crawling (no retries) — tune reliability via delays and proxy

Input

FieldDefaultDescription
keywords["adidas", "nike"]Keywords or phrases — one Reddit search each (required)
sortnewrelevance, hot, top, new, comments
timedayhour, day, week, month, year, all
maxPosts10Maximum posts saved to the dataset (never exceeded)
includeNSFWtrueWhen true, Reddit search includes 18+ (NSFW) posts (include_over_18=on). Set false to exclude adult-marked content from search results.
subredditLimit search to one subreddit (name without r/, e.g. soccer)
filterByKeywordsfalseWhen true, only posts containing at least one keyword in title, body, or URL are saved and charged. Recommended for cleaner results.
postDateLimitSkip posts older than this date. ISO 8601, e.g. 2026-05-20 or 2026-05-20T00:00:00.000Z (UTC). Leave empty to disable.
proxyRESIDENTIALApify proxy — residential recommended
requestDelayMs1000Delay before each page load (ms, ±25% jitter). Increase to 1500–3000 if you see rate limits.
maxConcurrency4Parallel browser tabs (1–10)
debugModefalseVerbose logging
{
"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:

FieldDescription
dataTypeAlways post
usernamePublic Reddit username of the author
authorFlairAuthor flair text, or null
titlePost title
bodyPost text ("" for link/image posts with no selftext)
upVotesUpvote count
numberOfCommentsComment count
communityNameSubreddit (e.g. r/soccer)
urlCanonical public post URL
searchQueryReddit query that found this post
matchedKeywordInput 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; increase requestDelayMs or lower maxConcurrency to 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; matchedKeyword reflects the first search that enqueued it

Local development

npm install
npm run build
npx 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

IssueWhat to try
Few or zero resultsWiden time, change sort, add keywords, or remove subreddit
Slow or failing runsEnable residential proxy; set requestDelayMs to 2000–3000; reduce maxConcurrency
Noisy resultsSet filterByKeywords: true
Adult content in resultsSet includeNSFW: false
Empty body fieldsExpected for link/media posts — check title and url

Pricing

When pay-per-event is enabled on Apify Store:

ModeEventDescription
filterByKeywords: falsereddit-postEach saved post from search (may include off-topic results)
filterByKeywords: truereddit-post-filteredEach 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_TOKEN
Content-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