reddit_search
Search Reddit posts by keyword across all communities or one subreddit, then filter by score, comments, and media to surface relevant discussions.
Instructions
Search Reddit posts across all of Reddit or within one subreddit. Returns matching posts with author, score, comments, permalink, and an after cursor. Use for topic/keyword research, brand monitoring, or finding discussions. Scope to a community with subreddit. Optional advanced filters narrow the results by minimum/maximum score, comment count, media type, and post flags, with an optional re-sort of the page. Because filters are applied to the returned page, the response then carries a meta object with page-completeness counts, so a filtered result is never mistaken for the whole set; paginate with after to filter more. Example: q='rust vs go' sort='top' t='year'.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query text. Supports Reddit search syntax (e.g. `subreddit:webdev`, `author:spez`, `"exact phrase"`, `title:...`). | |
| t | No | Time window that bounds which posts the search returns, e.g. 'week' = only posts from the past week. Unlike a subreddit listing, search applies this to the 'relevance' and 'top' sorts too. When omitted, Reddit defaults to 'all', so a broad 'relevance' query surfaces old high-upvote posts that only loosely match. Pass 'week' or 'month' to keep results recent and on-topic. | |
| nsfw | No | Set 'true' to include over-18 / NSFW results. Omit or 'false' to exclude them (default). | |
| sort | No | Sort order for search. 'relevance' = best match (default), 'top' = highest score in the `t` window, 'new' = most recent, 'hot' = trending, 'comments' = most-discussed. | |
| after | No | Opaque pagination cursor. Pass back the previous response's `after` value EXACTLY as it was returned; the format is not stable and a hand-written Reddit fullname loses the paging depth the cursor carries. Omit on the first call. When `after` comes back null there is no next page to request, and that does NOT reliably mean you have every item: Reddit often stops serving a busy listing long before it runs out. Read `listing_status` on that final response instead. It is `complete`, `truncated` or `unknown`, and ONLY `complete` means nothing is missing. Never report `truncated` or `unknown` to a user as the end of the data; say the answer is partial and widen across sorts, timeframes or search terms. | |
| limit | No | Max items to return (1 to 100). The API clamps out-of-range values; endpoint default applies if omitted. | |
| locked | No | Filter by the locked flag. | |
| is_self | No | true = only self/text posts, false = only link posts. | |
| over_18 | No | Filter the page by NSFW flag (distinct from nsfw, which controls inclusion in the search). | |
| spoiler | No | Filter by the spoiler flag. | |
| is_video | No | true = only video posts, false = only non-video. | |
| stickied | No | Filter by the stickied flag. | |
| max_score | No | Keep only posts with score <= this. | |
| min_score | No | Keep only posts with score >= this (applied to the returned page). | |
| sort_type | No | Re-sort the filtered page (descending) by this field. | |
| subreddit | No | Optional subreddit name (without r/) to restrict the search to one community. Omit to search all of Reddit. | |
| contest_mode | No | Filter by the contest_mode flag. | |
| max_comments | No | Keep only posts with comment count <= this. | |
| min_comments | No | Keep only posts with comment count >= this. |