# 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/workflows/reddit
- Handle: `@reddit`
- Category: [Social](https://fous.com/workflows/category/social)
- Source website: https://reddit.com
- Last verified: Sep 29, 2026
- Fous is not affiliated with Reddit.

## Methods

### Get community

Operation `get_community`, version 1. 1 credit per call.

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 call.

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 call.

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 | `"1qwk"` |  |
| `username` | string | `"reddit"` |  |
| `post_karma` | integer | `3141592` |  |
| `total_karma` | integer | `6283184` |  |
| `created_date` | string | `"2005-12-09"` |  |
| `profile_link` | string | `"https://www.reddit.com/user/reddit/"` |  |
| `comment_karma` | integer | `3141592` |  |
| `recent_activity` | array |  |  |
| `recent_activity[].link` | string | `"https://www.reddit.com/r/help/comments/1sbpwv9/keeping_your_account_safe_on_reddit/"` |  |
| `recent_activity[].text` | string | `"Keeping your account safe on reddit"` | Post title or the first 500 characters of a comment. |
| `recent_activity[].type` | string | `"post"` |  |
| `recent_activity[].score` | integer | `187` |  |
| `recent_activity[].community` | string | `"help"` |  |
| `recent_activity[].posted_at` | string | `"2026-04-03T21:09:08+00:00"` | ISO 8601 date and time in UTC. |
| `avatar_image_link` | string or null | `"https://styles.redditmedia.com/t5_hv5dz/styles/profileIcon_gkrjvzit4w8f1.png?width=256&height=256&crop=256:256,smart&s=` |  |

**Example input**

```json
{
  "username": "https://www.reddit.com/user/reddit/",
  "max_results": 5
}
```

**Example output**

```json
{
  "user_id": "1qwk",
  "username": "reddit",
  "post_karma": 3141592,
  "total_karma": 6283184,
  "created_date": "2005-12-09",
  "profile_link": "https://www.reddit.com/user/reddit/",
  "comment_karma": 3141592,
  "recent_activity": [
    {
      "link": "https://www.reddit.com/r/help/comments/1sbpwv9/keeping_your_account_safe_on_reddit/",
      "text": "Keeping your account safe on reddit",
      "type": "post",
      "score": 187,
      "community": "help",
      "posted_at": "2026-04-03T21:09:08+00:00"
    },
    {
      "link": "https://www.reddit.com/r/modlimit/comments/1l8ejw1/action_needed_please_read/mx9407o/",
      "text": "Thanks! I've sent you the first message here: https://www.reddit.com/message/messages/2y4wpa2 \n\nIn order for me to send you the rest of the message I'll need you to reply there when you have a chance.…",
      "type": "comment",
      "score": 13,
      "community": "modlimit",
      "posted_at": "2025-06-11T19:19:35+00:00"
    },
    {
      "link": "https://www.reddit.com/r/modlimit/comments/1l8ejw1/action_needed_please_read/",
      "text": "ACTION NEEDED: PLEASE READ",
      "type": "post",
      "score": 333,
      "community": "modlimit",
      "posted_at": "2025-06-11T00:04:51+00:00"
    }
  ],
  "avatar_image_link": "https://styles.redditmedia.com/t5_hv5dz/styles/profileIcon_gkrjvzit4w8f1.png?width=256&height=256&crop=256:256,smart&s=15a0b0884362b12322244ede0dca807a12d675ad"
}
```

### List community posts

Operation `list_community_posts`, version 1. 1 credit per call.

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 call.

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 |  |  |

**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

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_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.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

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=120) 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.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_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);
```

Or describe the data in plain language: send `{"api":"@reddit","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## 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

### Is Fous affiliated with Reddit?

No. Fous is not affiliated with Reddit. This workflow reads the public reddit.com website and returns its data.

### How much does it cost?

Each run costs 1 credit. 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; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check 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/workflows/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/workflows/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/workflows/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/workflows/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/workflows/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.
- [YouTube API](https://fous.com/workflows/youtube.md): YouTube returns public video, caption, comment, channel and upload details, plus the latest weekly Top Songs chart; inferred dates and some counts may be approximate.
- [Bluesky API](https://fous.com/workflows/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/workflows/x.md): X returns public profile details and public posts with author, media, and engagement; deleted, protected, or unavailable posts cannot be retrieved.
- [All Social workflows](https://fous.com/workflows/category/social)
