Reddit tools
Posts, comments and communities: search across Reddit, or watch what appears in a subreddit.
Read what people say on Reddit: posts, comments and the communities they are in. Search on Reddit is ranked and never complete, so it is good for finding examples, not for counting. reddit_get_new_posts is different: it returns everything posted in a window, says how much of the window it covered, and is never cached.
To listen to a topic over time, find communities with reddit_search_subreddits and read their rules with reddit_get_subreddit, then make a monitor: it reads every new post in them, or searches your keywords, on a schedule, and reports only new posts. To run the check yourself instead, call reddit_get_new_posts with your match terms, send next_since back as since on the next call, and drop posts you have already seen by their id.
For a step-by-step look at Reddit research methods, see how to search Reddit and find subreddits with Claude or ChatGPT. For what a Reddit monitor watches and costs, see Reddit monitoring, and for the methods, how to monitor Reddit for brand mentions. To connect the tools in Claude, ChatGPT or Cursor, and to compare hosted and self-hosted Reddit MCP servers, see the Reddit MCP setup guide.
To connect these tools to your agent, see the Reddit MCP page.
| Tool | What it does | Cost |
|---|---|---|
reddit_search_posts | Search Reddit posts | From 1 credit |
reddit_search_comments | Search Reddit comments | From 1 credit |
reddit_get_new_posts | Get new posts in subreddits | From 1 credit |
reddit_get_post | Get a Reddit post | From 1 credit |
reddit_get_comments | Get a thread's comments | From 1 credit |
reddit_search_subreddits | Find subreddits for a topic | From 1 credit |
reddit_get_subreddit | Get a subreddit | From 1 credit |
Search Reddit posts
reddit_search_postsReddit posts matching a query, ranked by the search, across all of Reddit or inside one community.
"what do people on Reddit say about X", "find threads complaining about Y", "who is asking for a tool like ours".
- Everything new in a community since you last looked, use
reddit_get_new_posts(ranked search is never complete). - Reading one thread, use
reddit_get_postandreddit_get_comments. - Choosing communities to watch, use
reddit_search_subreddits.
A list, ranked, not exhaustive. Each row has id, subreddit, title, author, created_at, score, comments, upvote_ratio, url, link_url, body (cut at 2000 characters), flair, over_18, is_video.
1 credit per call, up to about 25 posts; nothing on NoData. Cached 1 hour.
Parameters
| Parameter | Default and notes |
|---|---|
query | Required. |
subreddit | Search one community instead of all of Reddit. |
sort | One of relevance, new, top, comment_count. Ranking of the results. Default relevance. |
time_range | One of all, day, week, month, year. How far back to search. Default all. |
It also takes the common parameters cursor, max_credits and dry_run.
{
"query": "hubspot alternative",
"sort": "new",
"time_range": "month"
}Search Reddit comments
reddit_search_commentsReddit comments matching a query, ranked by the search, across all of Reddit or inside one community.
"what do people reply when someone asks about X", "find recommendations of a competitor inside threads", mining opinions rather than thread titles.
- Thread titles and bodies, use
reddit_search_posts. - Every comment on one thread, use
reddit_get_comments. - New activity in a community, use
reddit_get_new_posts.
A list, ranked, not exhaustive. Each row has id, post_id, post_title, parent_id (the comment it answers, null at top level), subreddit, author, created_at, score, body (cut at 2000 characters), url, depth (0 at top level, null for a reply, whose depth search does not say).
1 credit per call, one page. Cached 1 hour.
Parameters
| Parameter | Default and notes |
|---|---|
query | Required. |
subreddit | Search one community instead of all of Reddit. |
sort | One of relevance, new, top, comment_count. Ranking of the results. Default relevance. |
time_range | One of all, day, week, month, year. How far back to search. Default all. The vendor ignores it for comments, so the page is filtered by created_at, and a narrow window can come back short or NoData. |
It also takes the common parameters cursor, max_credits and dry_run.
{
"query": "best crm for a two person team",
"time_range": "year"
}Get new posts in subreddits
reddit_get_new_postsEvery post created in the given subreddits inside a time window, oldest first. The check-in tool: complete for the window it reports, unlike search.
"anything new in r/startups since yesterday", "watch these subreddits for mentions of our category", any repeated look at the same communities.
- Keyword search across all of Reddit, use
reddit_search_posts(ranked, not complete). - Reading a thread, use
reddit_get_postandreddit_get_comments. - Choosing which subreddits to watch, use
reddit_search_subreddits.
A list, oldest first. Each row has id, subreddit, title, author, created_at, score, comments, upvote_ratio, url, link_url, body, flair, over_18, is_video. coverage[] per subreddit: covered_from, complete, pages_fetched. covered_from later than since, or complete false, means the window was cut: raise pages, shorten since, or pass meta.cursor. next_since is the value to send as since next time; it overlaps by two minutes, so dedupe rows on id. A subreddit that fails (a typo, a private community) is listed in errors[] and the others still answer.
1 credit per subreddit per page. Three subreddits at the default is 3 credits. Never cached.
Parameters
| Parameter | Default and notes |
|---|---|
subreddits[] | Required. Communities to check, up to 10. One credit each, per page. |
since | Default 24h. How far back to look: "30m", "6h", "2d" or an ISO 8601 timestamp. Max 7 days. |
pages | Default 1. Pages per subreddit. Raise it when the window comes back cut. At most 3. |
match[] | Keep only posts whose title or body holds one of these terms, ignoring case. At most 10. |
It also takes the common parameters cursor, max_credits and dry_run.
{
"subreddits": [
"startups",
"SaaS"
],
"since": "24h",
"match": [
"crm",
"pipeline"
]
}Get a Reddit post
reddit_get_postOne Reddit thread in full: the whole post body, its score, its flair and how big the community is.
A row from a search or a check-in is worth reading properly, or you need the full text a row cut at 2000 characters.
- The replies, use
reddit_get_comments. - Finding threads in the first place, use
reddit_search_postsorreddit_get_new_posts.
One record with id, subreddit, title, author, created_at, score, comments, upvote_ratio, url, link_url, body (full), flair, over_18, is_video, locked, archived.
1 credit. Cached 1 hour.
Parameters
| Parameter | Default and notes |
|---|---|
url | Required. The thread URL, from a row's url. |
It also takes the common parameters max_credits and dry_run.
{
"url": "https://www.reddit.com/r/startups/comments/1lfbo7u/what_crm_do_you_use/"
}Get a thread's comments
reddit_get_commentsThe comments on one Reddit thread, flattened in reading order with their reply depth.
"what did people reply", judging whether a thread is worth answering, pulling the objections out of a discussion.
- Comments across many threads, use
reddit_search_comments. - The post itself, use
reddit_get_post.
A list, in reading order: a reply follows the comment it answers. Each row has id, post_id, post_title, parent_id (the comment it answers, null at top level), subreddit, author, created_at, score, body (cut at 2000 characters), url, depth (0 is top level). meta.cursor loads more of the thread.
1 credit per call, one page of the thread. Cached 1 hour.
Parameters
| Parameter | Default and notes |
|---|---|
url | Required. The thread URL, from a row's url. |
It also takes the common parameters cursor, max_credits and dry_run.
{
"url": "https://www.reddit.com/r/startups/comments/1lfbo7u/what_crm_do_you_use/"
}Find subreddits for a topic
reddit_search_subredditsThe communities that discuss a topic, counted from one page of search results.
"which subreddits talk about X", picking the communities to pass to reddit_get_new_posts, sizing where a conversation happens.
- A full directory of subreddits about a topic (this counts a sample of posts, so a quiet community can be missing).
- One community's rules and size, use
reddit_get_subreddit. - The posts themselves, use
reddit_search_posts.
A list, most posts in the sample first. Each row has name, url, posts_in_sample, example_post_url. Search carries no community size; reddit_get_subreddit gives weekly visitors.
1 credit. Cached 1 hour.
Parameters
| Parameter | Default and notes |
|---|---|
query | Required. |
time_range | One of all, day, week, month, year. How far back to search. Default all. |
It also takes the common parameters max_credits and dry_run.
{
"query": "cold email deliverability",
"time_range": "year"
}Get a subreddit
reddit_get_subredditOne community: how big it is, how busy it is, and the rules it posts, as the moderators wrote them.
Before you post or reply anywhere, to read the rules on self promotion; sizing a community found by reddit_search_subreddits.
- The posts in the community, use
reddit_get_new_postsorreddit_search_posts. - Finding communities, use
reddit_search_subreddits.
One record with name, url, weekly_active_users (visitors in a week, Reddit's measure of size; it publishes no member count), weekly_contributions (posts and comments in a week), description, rules (the text as written; read it, it is not parsed into flags), submit_text, created_at.
1 credit. Cached 7 days.
Parameters
| Parameter | Default and notes |
|---|---|
subreddit | Required. The community name, such as "startups"; an r/ prefix is dropped. |
It also takes the common parameters max_credits and dry_run.
{
"subreddit": "SaaS"
}