Tools

Reddit tools

Posts, comments and communities: search across Reddit, or watch what appears in a subreddit.

Posts, comments and communities on Reddit. Search is ranked and never complete. 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, find communities with reddit_search_subreddits, read their rules with reddit_get_subreddit, then call reddit_get_new_posts with your match terms. Send next_since back as since on the next check, and drop posts you have already seen by id.

ToolWhat it doesCost
reddit_search_postsSearch Reddit postsFrom 1 credit
reddit_search_commentsSearch Reddit commentsFrom 1 credit
reddit_get_new_postsGet new posts in subredditsFrom 1 credit
reddit_get_postGet a Reddit postFrom 1 credit
reddit_get_commentsGet a thread's commentsFrom 1 credit
reddit_search_subredditsFind subreddits for a topicFrom 1 credit
reddit_get_subredditGet a subredditFrom 1 credit

#Search Reddit posts

reddit_search_posts

Reddit posts matching a query, ranked by the search, across all of Reddit or inside one community.

Use when: "what do people on Reddit say about X", "find threads complaining about Y", "who is asking for a tool like ours".

Not for: 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_post and reddit_get_comments. Choosing communities to watch, use reddit_search_subreddits.

Returns: List, one page per call, ranked, not exhaustive. rows[]: id, subreddit, title, author, created_at, score, comments, upvote_ratio, url, link_url, body (cut at 2000 characters), flair, over_18. meta.cursor pages the next set.

Cost: 1 credit per call, one page. Cached 1 hour.

ParameterDefault and notes
queryRequired, 2 to 200 characters
subredditOptional, search one community
sort"relevance" | "new" | "top" | "comment_count", default relevance
time_range"all" | "day" | "week" | "month" | "year", default all

Also takes cursor, provider, max_credits, dry_run: see common parameters.

JSON
{
  "query": "hubspot alternative",
  "sort": "new",
  "time_range": "month"
}

#Search Reddit comments

reddit_search_comments

Reddit comments matching a query, ranked by the search, across all of Reddit or inside one community.

Use when: "what do people reply when someone asks about X", "find recommendations of a competitor inside threads", mining opinions rather than thread titles.

Not for: 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.

Returns: List, one page per call, ranked, not exhaustive. rows[]: id, post_id, subreddit, author, created_at, score, body (cut at 2000 characters), url, depth. meta.cursor pages the next set.

Cost: 1 credit per call, one page. Cached 1 hour.

ParameterDefault and notes
queryRequired, 2 to 200 characters
subredditOptional, search one community
sort"relevance" | "new" | "top" | "comment_count", default relevance
time_range"all" | "day" | "week" | "month" | "year", default all

Also takes cursor, provider, max_credits, dry_run: see common parameters.

JSON
{
  "query": "best crm for a two person team",
  "time_range": "year"
}

#Get new posts in subreddits

reddit_get_new_posts

Every post created in the given subreddits inside a time window, oldest first. The check-in tool: complete for the window it reports, unlike search.

Use when: "anything new in r/startups since yesterday", "watch these subreddits for mentions of our category", any repeated look at the same communities.

Not for: keyword search across all of Reddit, use reddit_search_posts (ranked, not complete). Reading a thread, use reddit_get_post and reddit_get_comments. Choosing which subreddits to watch, use reddit_search_subreddits.

Returns: List, oldest first. rows[]: id, subreddit, title, author, created_at, score, comments, upvote_ratio, url, link_url, body, flair, over_18. 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.

Cost: 1 credit per subreddit per page. Three subreddits at the default is 3 credits. Never cached.

ParameterDefault and notes
subreddits[]Required, up to 10
since"24h"; "30m", "6h", "2d" or an ISO 8601 timestamp, max 7 days
pages1 to 3, default 1, per subreddit
match[]Optional terms; keeps posts whose title or body holds one, case insensitive

Also takes cursor, provider, max_credits, dry_run: see common parameters.

JSON
{
  "subreddits": [
    "startups",
    "SaaS"
  ],
  "since": "24h",
  "match": [
    "crm",
    "pipeline"
  ]
}

#Get a Reddit post

reddit_get_post

One Reddit thread in full: the whole post body, its score, its flair and how big the community is.

Use when: 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.

Not for: the replies, use reddit_get_comments. Finding threads in the first place, use reddit_search_posts or reddit_get_new_posts.

Returns: Record. id, subreddit, title, author, created_at, score, comments, upvote_ratio, url, link_url, body (full), flair, over_18, subreddit_subscribers, locked, archived.

Cost: 1 credit. Cached 1 hour.

ParameterDefault and notes
urlRequired, the thread URL from a row's url

Also takes provider, max_credits, dry_run: see common parameters.

JSON
{
  "url": "https://www.reddit.com/r/startups/comments/1lfbo7u/what_crm_do_you_use/"
}

#Get a thread's comments

reddit_get_comments

The comments on one Reddit thread, flattened in reading order with their reply depth.

Use when: "what did people reply", judging whether a thread is worth answering, pulling the objections out of a discussion.

Not for: comments across many threads, use reddit_search_comments. The post itself, use reddit_get_post.

Returns: List, in reading order: a reply follows the comment it answers. rows[]: id, post_id, subreddit, author, created_at, score, body (cut at 2000 characters), url, depth (0 is top level). meta.cursor loads more of the thread.

Cost: 1 credit per call, one page of the thread. Cached 1 hour.

ParameterDefault and notes
urlRequired, the thread URL from a row's url

Also takes cursor, provider, max_credits, dry_run: see common parameters.

JSON
{
  "url": "https://www.reddit.com/r/startups/comments/1lfbo7u/what_crm_do_you_use/"
}

#Find subreddits for a topic

reddit_search_subreddits

The communities that discuss a topic, counted from one page of search results.

Use when: "which subreddits talk about X", picking the communities to pass to reddit_get_new_posts, sizing where a conversation happens.

Not for: 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.

Returns: List, most posts in the sample first. rows[]: name, url, subscribers, posts_in_sample, example_post_url.

Cost: 1 credit. Cached 1 hour.

ParameterDefault and notes
queryRequired, 2 to 200 characters
time_range"all" | "day" | "week" | "month" | "year", default all

Also takes provider, max_credits, dry_run: see common parameters.

JSON
{
  "query": "cold email deliverability",
  "time_range": "year"
}

#Get a subreddit

reddit_get_subreddit

One community: how big it is, how busy it is, and the rules it posts, as the moderators wrote them.

Use when: before you post or reply anywhere, to read the rules on self promotion; sizing a community found by reddit_search_subreddits.

Not for: the posts in the community, use reddit_get_new_posts or reddit_search_posts. Finding communities, use reddit_search_subreddits.

Returns: Record. name, url, subscribers, weekly_active_users, weekly_contributions, description, rules (the text as written; read it, it is not parsed into flags), submit_text, created_at.

Cost: 1 credit. Cached 7 days.

ParameterDefault and notes
subredditRequired, the name without the r/ prefix, for example "startups"

Also takes provider, max_credits, dry_run: see common parameters.

JSON
{
  "subreddit": "SaaS"
}