# Reddit API

> Reddit returns public posts, comments, community details, and user activity as a workflow and API.

Search posts finds public posts using required search words and optional community, time period, and sort order. List community posts needs a community name or link; Get post needs a post link or title words and can return comments. Get community needs a community name or link, while Get user needs a username or profile link; both return public information.

- Page: https://fous.com/tools/reddit
- Handle: `@reddit`
- Category: [Social](https://fous.com/tools/category/social)
- Source website: https://reddit.com
- Last verified: Sep 29, 2026

## Methods

### Get community

Operation `get_community`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get a public Reddit community’s details, rules, and related communities listed in its sidebar. Private and banned communities are unavailable.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `community` | string | yes | `"r/learnpython"` | Subreddit name, with or without r/, or its Reddit link (for example, AskHR or https://www.reddit.com/r/AskHR/). |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "community"
  ],
  "properties": {
    "community": {
      "type": "string",
      "description": "Subreddit name, with or without r/, or its Reddit link (for example, AskHR or https://www.reddit.com/r/AskHR/).",
      "examples": [
        "r/learnpython",
        "AskHR"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "community": "r/learnpython"
    },
    {
      "community": "AskHR"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `rules` | array |  | Community rules in display order. |
| `rules[].rule_title` | string | `"Be polite."` |  |
| `rules[].explanation` | string or null | `"Don't insult others; everyone comes to Python with a different level of knowledge and experience, and what is obvious t` |  |
| `title` | string or null | `"Python Education"` | Community title. |
| `members` | integer or null | `1057315` | Number of community members. |
| `is_adult` | boolean | `false` | Whether the community is marked adult (NSFW). |
| `description` | string or null | `"Subreddit for posting questions and asking for general advice about all topics related to learning python."` | Community description. |
| `created_date` | string | `"2009-10-02"` | Date the community was created. |
| `subreddit_id` | string | `"2r8ot"` | Reddit internal subreddit ID. |
| `community_link` | string | `"https://www.reddit.com/r/learnpython/"` | Community page link. |
| `community_name` | string | `"learnpython"` | Subreddit name without r/. |
| `icon_image_link` | string or null | `"https://styles.redditmedia.com/t5_2r8ot/styles/communityIcon_jwr5s7l5ici61.png?width=256&s=45deb6f123031525835c1ab234a5` | Community icon image link. |
| `related_communities` | array |  | Names of related subreddits listed in the community sidebar. |

**Example input**

```json
{
  "community": "r/learnpython"
}
```

**Example output**

```json
{
  "rules": [
    {
      "rule_title": "Be polite.",
      "explanation": "Don't insult others; everyone comes to Python with a different level of knowledge and experience, and what is obvious to you may not be obvious to them."
    },
    {
      "rule_title": "Posts to this subreddit must be requests for help learning python.",
      "explanation": "Please check [the FAQ](https://www.reddit.com/r/learnpython/wiki/faq), [the index](https://www.reddit.com/r/learnpython/wiki/index), and [the books page](https://www.reddit.com/r/learnpython/wiki/book…"
    },
    {
      "rule_title": "Replies on this subreddit must be pertinent to the question OP asked.",
      "explanation": "This is not the place to advertise your blog/video/guide/tutorial. Nor is it the place to try and hire someone. If you want to learn, just post a question so we can answer it."
    }
  ],
  "title": "Python Education",
  "members": 1057315,
  "is_adult": false,
  "description": "Subreddit for posting questions and asking for general advice about all topics related to learning python.",
  "created_date": "2009-10-02",
  "subreddit_id": "2r8ot",
  "community_link": "https://www.reddit.com/r/learnpython/",
  "community_name": "learnpython",
  "icon_image_link": "https://styles.redditmedia.com/t5_2r8ot/styles/communityIcon_jwr5s7l5ici61.png?width=256&s=45deb6f123031525835c1ab234a53be00bdbc207",
  "related_communities": []
}
```

### Get post

Operation `get_post`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Read a public Reddit post and up to 200 comments through reply depth 2. Unavailable posts and comments may not be readable.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `post` | string | yes | `"what is your best budgeting tip"` | A Reddit post link or words from its title, for example what is your best budgeting tip. |
| `community` | string | no | `"personalfinance"` | Limit a title search to a community, for example personalfinance or r/personalfinance. |
| `comment_sort` | string | no | `"new"` | Order comments, for example new. Default: top. |
| `max_comments` | integer | no | `8` | Maximum comments to return, including replies, for example 20. Default: 20; maximum: 200. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "post"
  ],
  "properties": {
    "post": {
      "type": "string",
      "minLength": 1,
      "description": "A Reddit post link or words from its title, for example what is your best budgeting tip.",
      "examples": [
        "what is your best budgeting tip",
        "https://www.reddit.com/r/smallbusiness/comments/1w60dph/i_write_one_sentence_in_my_phone_after_every/",
        "https://www.reddit.com/r/BestofRedditorUpdates/comments/1wfsw6p/new_updates_16_years_of_marriage_5_kids_found_out/"
      ]
    },
    "community": {
      "type": "string",
      "description": "Limit a title search to a community, for example personalfinance or r/personalfinance.",
      "examples": [
        "personalfinance"
      ]
    },
    "comment_sort": {
      "enum": [
        "top",
        "best",
        "new"
      ],
      "type": "string",
      "default": "top",
      "description": "Order comments, for example new. Default: top.",
      "examples": [
        "new",
        "best",
        "top"
      ]
    },
    "max_comments": {
      "type": "integer",
      "default": 20,
      "maximum": 200,
      "minimum": 1,
      "description": "Maximum comments to return, including replies, for example 20. Default: 20; maximum: 200.",
      "x-fous-developer": true,
      "examples": [
        8,
        200,
        20
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "post": "what is your best budgeting tip",
      "community": "personalfinance"
    },
    {
      "post": "https://www.reddit.com/r/smallbusiness/comments/1w60dph/i_write_one_sentence_in_my_phone_after_every/",
      "comment_sort": "new",
      "max_comments": 8
    },
    {
      "post": "https://www.reddit.com/r/BestofRedditorUpdates/comments/1wfsw6p/new_updates_16_years_of_marriage_5_kids_found_out/",
      "comment_sort": "best",
      "max_comments": 200
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `score` | integer | `2` |  |
| `title` | string | `"Whats everyone's top budgeting tip (practical)?"` |  |
| `author` | string or null | `"riksace"` |  |
| `post_id` | string | `"4cn1yq"` |  |
| `comments` | array |  |  |
| `comments[].text` | string | `"Start using mint, you can't effectively budget without seeing EVERYTHING! "` |  |
| `comments[].depth` | integer | `0` |  |
| `comments[].score` | integer | `6` |  |
| `comments[].author` | string or null | `"TheHarb81"` |  |
| `comments[].posted_at` | string | `"2016-03-30T22:10:27+00:00"` | ISO 8601 date and time in UTC. |
| `comments[].comment_id` | string | `"d1jo0lx"` |  |
| `comments[].reply_count` | integer | `0` |  |
| `comments[].comment_link` | string | `"https://www.reddit.com/r/personalfinance/comments/4cn1yq/whats_everyones_top_budgeting_tip_practical/d1jo0lx/"` |  |
| `community` | string | `"personalfinance"` |  |
| `post_link` | string | `"https://www.reddit.com/r/personalfinance/comments/4cn1yq/whats_everyones_top_budgeting_tip_practical/"` |  |
| `post_text` | string or null | `"I've seen so many budgeting tips online but am curious to see what others find to be the most efficient whilst being pr` |  |
| `posted_at` | string | `"2016-03-30T22:01:21+00:00"` | ISO 8601 date and time in UTC. |
| `comment_count` | integer | `6` |  |
| `linked_website` | string or null |  |  |
| `upvote_percentage` | number | `75` | Percentage of votes that were upvotes, from 0 to 100. |

**Example input**

```json
{
  "post": "what is your best budgeting tip",
  "community": "personalfinance"
}
```

**Example output**

```json
{
  "score": 2,
  "title": "Whats everyone's top budgeting tip (practical)?",
  "author": "riksace",
  "post_id": "4cn1yq",
  "comments": [
    {
      "text": "Start using mint, you can't effectively budget without seeing EVERYTHING! ",
      "depth": 0,
      "score": 6,
      "author": "TheHarb81",
      "posted_at": "2016-03-30T22:10:27+00:00",
      "comment_id": "d1jo0lx",
      "reply_count": 0,
      "comment_link": "https://www.reddit.com/r/personalfinance/comments/4cn1yq/whats_everyones_top_budgeting_tip_practical/d1jo0lx/"
    },
    {
      "text": "Use cash. Cant overspend and not know it. When the money is gone you stop buying stuff.",
      "depth": 0,
      "score": 3,
      "author": null,
      "posted_at": "2016-03-30T22:02:30+00:00",
      "comment_id": "d1jnoon",
      "reply_count": 0,
      "comment_link": "https://www.reddit.com/r/personalfinance/comments/4cn1yq/whats_everyones_top_budgeting_tip_practical/d1jnoon/"
    },
    {
      "text": "YNAB.com- not only a great tool but also a great methodology/ training....good sub on here for it too.",
      "depth": 0,
      "score": 2,
      "author": "mckeddie70",
      "posted_at": "2016-03-30T23:15:59+00:00",
      "comment_id": "d1jqnr8",
      "reply_count": 0,
      "comment_link": "https://www.reddit.com/r/personalfinance/comments/4cn1yq/whats_everyones_top_budgeting_tip_practical/d1jqnr8/"
    }
  ],
  "community": "personalfinance",
  "post_link": "https://www.reddit.com/r/personalfinance/comments/4cn1yq/whats_everyones_top_budgeting_tip_practical/",
  "post_text": "I've seen so many budgeting tips online but am curious to see what others find to be the most efficient whilst being practical.",
  "posted_at": "2016-03-30T22:01:21+00:00",
  "comment_count": 6,
  "linked_website": null,
  "upvote_percentage": 75
}
```

### Get user

Operation `get_user`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get a public Reddit user’s profile and recent posts and comments, newest first. Suspended or nonexistent users are unavailable.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `username` | string | yes | `"spez"` | Reddit username, u/name, or profile link, for example spez or https://www.reddit.com/user/spez/. |
| `max_results` | integer | no | `5` | Maximum recent posts and comments to return, for example 25. Default 25, maximum 100. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "username"
  ],
  "properties": {
    "username": {
      "type": "string",
      "minLength": 1,
      "description": "Reddit username, u/name, or profile link, for example spez or https://www.reddit.com/user/spez/.",
      "examples": [
        "spez",
        "https://www.reddit.com/user/reddit/",
        "u/spez"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum recent posts and comments to return, for example 25. Default 25, maximum 100.",
      "x-fous-developer": true,
      "examples": [
        5,
        100
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "username": "spez"
    },
    {
      "username": "https://www.reddit.com/user/reddit/",
      "max_results": 5
    },
    {
      "username": "u/spez",
      "max_results": 100
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `user_id` | string | `"1w72"` |  |
| `username` | string | `"spez"` |  |
| `post_karma` | integer | `184487` |  |
| `total_karma` | integer | `940980` |  |
| `created_date` | string | `"2005-06-06"` |  |
| `profile_link` | string | `"https://www.reddit.com/user/spez/"` |  |
| `comment_karma` | integer | `756493` |  |
| `recent_activity` | array |  |  |
| `recent_activity[].link` | string | `"https://www.reddit.com/r/u_spez/comments/1vgbkge/modernizing_reddits_infrastructure_with_you/p1wosm9/"` |  |
| `recent_activity[].text` | string | `"That was the thinking. Otherwise it would be easier to just replicate the UI. "` | Post title or the first 500 characters of a comment. |
| `recent_activity[].type` | string | `"comment"` |  |
| `recent_activity[].score` | integer | `14` |  |
| `recent_activity[].community` | string | `"u_spez"` |  |
| `recent_activity[].posted_at` | string | `"2026-08-05T18:31:50+00:00"` | ISO 8601 date and time in UTC. |
| `avatar_image_link` | string or null | `"https://styles.redditmedia.com/t5_3k30p/styles/profileIcon_uj015iwx9s7g1.png?width=256&height=256&crop=256:256,smart&s=` |  |

**Example input**

```json
{
  "username": "spez"
}
```

**Example output**

```json
{
  "user_id": "1w72",
  "username": "spez",
  "post_karma": 184487,
  "total_karma": 940980,
  "created_date": "2005-06-06",
  "profile_link": "https://www.reddit.com/user/spez/",
  "comment_karma": 756493,
  "recent_activity": [
    {
      "link": "https://www.reddit.com/r/u_spez/comments/1vgbkge/modernizing_reddits_infrastructure_with_you/p1wosm9/",
      "text": "That was the thinking. Otherwise it would be easier to just replicate the UI. ",
      "type": "comment",
      "score": 14,
      "community": "u_spez",
      "posted_at": "2026-08-05T18:31:50+00:00"
    },
    {
      "link": "https://www.reddit.com/r/u_spez/comments/1vgbkge/modernizing_reddits_infrastructure_with_you/p1w9sot/",
      "text": "If we replace every line of code but the output is the same, is it still old Reddit?",
      "type": "comment",
      "score": 22,
      "community": "u_spez",
      "posted_at": "2026-08-05T17:30:18+00:00"
    },
    {
      "link": "https://www.reddit.com/r/u_spez/comments/1vgbkge/modernizing_reddits_infrastructure_with_you/p1w9j2v/",
      "text": "Karma and Age gates are really blunt tools that, while we understand why they are used today, end up with a blast radius making the it hard for (good) new users finding a way to participate. That make…",
      "type": "comment",
      "score": 24,
      "community": "u_spez",
      "posted_at": "2026-08-05T17:29:13+00:00"
    }
  ],
  "avatar_image_link": "https://styles.redditmedia.com/t5_3k30p/styles/profileIcon_uj015iwx9s7g1.png?width=256&height=256&crop=256:256,smart&s=aa819b0964f6e3019e769d1cc8ede7318c3869a3"
}
```

### List community posts

Operation `list_community_posts`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

List public posts from a Reddit community in Hot, Top, New, or Rising order. Top defaults to the past week; private, banned, and nonexistent communities cannot be listed.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `sort` | string | no | `"top"` | Community tab to list, for example top. |
| `community` | string | yes | `"r/Python"` | Subreddit name, r/name, or Reddit community link, for example personalfinance. |
| `max_results` | integer | no | `6` | Maximum posts to return, for example 25 (up to 100). |
| `time_window` | string | no | `"past_month"` | Time period for Top posts only, for example past_week. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "community"
  ],
  "properties": {
    "sort": {
      "enum": [
        "hot",
        "top",
        "new",
        "rising"
      ],
      "type": "string",
      "default": "hot",
      "description": "Community tab to list, for example top.",
      "examples": [
        "top",
        "new",
        "rising"
      ]
    },
    "community": {
      "type": "string",
      "minLength": 1,
      "description": "Subreddit name, r/name, or Reddit community link, for example personalfinance.",
      "examples": [
        "r/Python",
        "https://www.reddit.com/r/AskReddit/",
        "personalfinance"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum posts to return, for example 25 (up to 100).",
      "x-fous-developer": true,
      "examples": [
        6,
        5,
        4
      ]
    },
    "time_window": {
      "enum": [
        "past_day",
        "past_week",
        "past_month",
        "past_year",
        "all_time"
      ],
      "type": "string",
      "default": "past_week",
      "description": "Time period for Top posts only, for example past_week.",
      "examples": [
        "past_month"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "sort": "top",
      "community": "r/Python",
      "max_results": 6,
      "time_window": "past_month"
    },
    {
      "sort": "new",
      "community": "https://www.reddit.com/r/AskReddit/",
      "max_results": 5
    },
    {
      "community": "personalfinance"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `posts` | array |  | Posts in the chosen Reddit tab order. |
| `posts[].flair` | string or null | `"Discussion"` | Post flair, if present. |
| `posts[].score` | integer | `605` | Post score. |
| `posts[].title` | string | `"State of the art in Python 2026?"` | Post title. |
| `posts[].author` | string or null | `"Several-Marsupial-27"` | Username, if available. |
| `posts[].post_id` | string | `"1wkziub"` | Reddit post ID. |
| `posts[].is_pinned` | boolean | `false` | Whether the post is pinned. |
| `posts[].post_link` | string | `"https://www.reddit.com/r/Python/comments/1wkziub/state_of_the_art_in_python_2026/"` | Reddit link to the post. |
| `posts[].posted_at` | string | `"2026-09-19T22:26:17+00:00"` | UTC posting date and time. |
| `posts[].text_preview` | string | `"What would you guys consider the state of the art in python in 2026, or what do you expect from modern python codebases` | First 300 characters of the post text. |
| `posts[].comment_count` | integer | `231` | Number of comments. |

**Example input**

```json
{
  "sort": "top",
  "community": "r/Python",
  "max_results": 6,
  "time_window": "past_month"
}
```

**Example output**

```json
{
  "posts": [
    {
      "flair": "Discussion",
      "score": 605,
      "title": "State of the art in Python 2026?",
      "author": "Several-Marsupial-27",
      "post_id": "1wkziub",
      "is_pinned": false,
      "post_link": "https://www.reddit.com/r/Python/comments/1wkziub/state_of_the_art_in_python_2026/",
      "posted_at": "2026-09-19T22:26:17+00:00",
      "text_preview": "What would you guys consider the state of the art in python in 2026, or what do you expect from modern python codebases?\n\nHeres my list, would be happy to hear some inputs or domain expert advice:\n\n* …",
      "comment_count": 231
    },
    {
      "flair": "News",
      "score": 352,
      "title": "Anthropic model uploaded a malicious package to the real PyPI during a simulated CTF [09/09/26]",
      "author": "me_myself_ai",
      "post_id": "1wbwx4y",
      "is_pinned": false,
      "post_link": "https://www.reddit.com/r/Python/comments/1wbwx4y/anthropic_model_uploaded_a_malicious_package_to/",
      "posted_at": "2026-09-09T20:14:33+00:00",
      "text_preview": "https://www.anthropic.com/research/alignment-assessment-cybersecurity-incidents\n\nNGL, my main takeaway is that PyPI is already doing quite well in the new AI security age, even though the packaging co…",
      "comment_count": 61
    }
  ]
}
```

### Search posts

Operation `search_posts`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Find public Reddit posts by topic, community, time and sort order. Returns up to 100 posts in Reddit search order; unavailable posts may prevent completion.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `sort` | string | no | `"top"` | Order posts, for example newest. Default: relevance. |
| `query` | string | yes | `"CRM"` | Words to search for on Reddit, for example best CRM for a small business. |
| `community` | string | no | `"r/smallbusiness"` | Search only one subreddit, for example smallbusiness or r/smallbusiness. |
| `max_results` | integer | no | `5` | Maximum posts to return, for example 25. Default: 25; maximum: 100. |
| `time_window` | string | no | `"past_year"` | How far back to search, for example past_week. Default: all_time. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "sort": {
      "enum": [
        "relevance",
        "top",
        "newest",
        "most_comments"
      ],
      "type": "string",
      "default": "relevance",
      "description": "Order posts, for example newest. Default: relevance.",
      "examples": [
        "top",
        "most_comments"
      ]
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Words to search for on Reddit, for example best CRM for a small business.",
      "examples": [
        "CRM",
        "best CRM for a small business",
        "zzxxyyqqredditnoresults2026"
      ]
    },
    "community": {
      "type": "string",
      "description": "Search only one subreddit, for example smallbusiness or r/smallbusiness.",
      "examples": [
        "r/smallbusiness"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum posts to return, for example 25. Default: 25; maximum: 100.",
      "x-fous-developer": true,
      "examples": [
        5,
        2,
        100
      ]
    },
    "time_window": {
      "enum": [
        "past_hour",
        "past_day",
        "past_week",
        "past_month",
        "past_year",
        "all_time"
      ],
      "type": "string",
      "default": "all_time",
      "description": "How far back to search, for example past_week. Default: all_time.",
      "examples": [
        "past_year",
        "past_week"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "sort": "top",
      "query": "CRM",
      "community": "r/smallbusiness",
      "max_results": 5,
      "time_window": "past_year"
    },
    {
      "query": "best CRM for a small business"
    },
    {
      "query": "zzxxyyqqredditnoresults2026",
      "max_results": 2
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `posts` | array |  |  |
| `posts[].score` | integer | `205` |  |
| `posts[].title` | string | `"I write one sentence in my phone after every client call. Nothing else I do pays back this well. What is your one-sente` |  |
| `posts[].author` | string or null | `"miklosjobbagy"` |  |
| `posts[].post_id` | string | `"1w60dph"` |  |
| `posts[].community` | string | `"smallbusiness"` |  |
| `posts[].post_link` | string | `"https://www.reddit.com/r/smallbusiness/comments/1w60dph/i_write_one_sentence_in_my_phone_after_every/"` |  |
| `posts[].post_text` | string or null | `"This is what I do. One sentence in the contact's notes field, before I put the phone down. \"Wants the garden, hates th` |  |
| `posts[].posted_at` | string | `"2026-09-03T07:25:04+00:00"` | ISO 8601 date and time in UTC. |
| `posts[].comment_count` | integer | `44` |  |
| `posts[].linked_website` | string or null | `"https://i.redd.it/q4bz5ylbc4rh1.jpeg"` |  |

**Example input**

```json
{
  "sort": "top",
  "query": "CRM",
  "community": "r/smallbusiness",
  "max_results": 5,
  "time_window": "past_year"
}
```

**Example output**

```json
{
  "posts": [
    {
      "score": 205,
      "title": "I write one sentence in my phone after every client call. Nothing else I do pays back this well. What is your one-sentence habit?",
      "author": "miklosjobbagy",
      "post_id": "1w60dph",
      "community": "smallbusiness",
      "post_link": "https://www.reddit.com/r/smallbusiness/comments/1w60dph/i_write_one_sentence_in_my_phone_after_every/",
      "post_text": "This is what I do. One sentence in the contact's notes field, before I put the phone down. \"Wants the garden, hates the commute, decides with his wife on Sundays.\" That's the whole thing. Ten seconds.…",
      "posted_at": "2026-09-03T07:25:04+00:00",
      "comment_count": 44,
      "linked_website": null
    },
    {
      "score": 59,
      "title": "Spent a few months studying outbound, share some insights",
      "author": "Creepy_Effective_598",
      "post_id": "1s823cv",
      "community": "smallbusiness",
      "post_link": "https://www.reddit.com/r/smallbusiness/comments/1s823cv/spent_a_few_months_studying_outbound_share_some/",
      "post_text": "Been testing outbound lately and researched a few things that really helped me at the very beginning of this not so easy task First I found out that i should narrow the ICP to exclude more people. (ye…",
      "posted_at": "2026-03-30T20:20:08+00:00",
      "comment_count": 12,
      "linked_website": null
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@reddit",
  "visibility": "public",
  "operation": "get_community",
  "version": 1,
  "input": {
    "community": "r/learnpython"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@reddit\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_community\",\n  \"version\": 1,\n  \"input\": {\n    \"community\": \"r/learnpython\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@reddit",
  "visibility": "public",
  "operation": "get_community",
  "version": 1,
  "input": {
    "community": "r/learnpython"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/reddit`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_community`: Get community. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_post`: Get post. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_user`: Get user. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `list_community_posts`: List community posts. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `search_posts`: Search posts. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-reddit https://api.fous.com/mcp/tools/reddit --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Track discussions about a product across Reddit communities
- Review recent posts and comments about a topic
- Compare post activity across selected communities
- Summarize community rules and related communities
- Monitor public user posts and comments

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Reddit tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Reddit account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from reddit.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What are people saying about a topic?

Search posts finds public posts matching your search words, with optional community and time filters.

### What are the top posts in a community?

List community posts returns posts in the community’s selected tab order, including Top.

### What did people comment on a post?

Get post returns a public post and its available comments.

## Related

- [Threads API](https://fous.com/tools/threads.md): Threads provides public profiles and posts, including recent posts, engagement and replies; private or login-only content is excluded, and replies may be limited to 10.
- [Hacker News API](https://fous.com/tools/hacker-news.md): Hacker News provides current ranked story lists, searchable stories and comments, discussion threads with up to 500 visible comments excluding deleted or flagged ones, and monthly hiring posts with details when stated.
- [Substack API](https://fous.com/tools/substack.md): Substack returns public newsletters and recent public post details or text; paid posts expose previews or metadata, and some custom-domain newsletters may be unavailable.
- [Medium API](https://fous.com/tools/medium.md): Medium returns public writer, publication, and topic articles, including newest posts and weekly popular picks, plus readable article text; member-only stories remain limited to visible previews.
- [Instagram API](https://fous.com/tools/instagram.md): Instagram provides public photos, videos, profiles, exact headline counts, bio links, and profile pictures, plus recent public posts and reels; some profiles or posts require login, and view counts may be unavailable.
- [Bluesky API](https://fous.com/tools/bluesky.md): Bluesky provides public profile details and latest posts, plus searches of up to 100 matching public posts; search results may lag behind new posts.
- [X API](https://fous.com/tools/x.md): X returns public profile details and public posts with author, media, and engagement; deleted, protected, or unavailable posts cannot be retrieved.
- [YouTube API](https://fous.com/tools/youtube.md): YouTube returns public video, caption, comment and channel details, company channels, and the latest weekly Top Songs chart; inferred dates and some counts may be approximate.
- [All Social tools](https://fous.com/tools/category/social)
