# Reddit

```json
{
  "name": "Reddit",
  "slug": "reddit",
  "url": "https://composio.dev/toolkits/reddit",
  "markdown_url": "https://composio.dev/toolkits/reddit.md",
  "logo_url": "https://logos.composio.dev/api/reddit",
  "categories": [
    "marketing & social media"
  ],
  "is_composio_managed": true,
  "updated_at": "2026-05-12T10:23:35.659Z"
}
```

![Reddit logo](https://logos.composio.dev/api/reddit)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Reddit MCP or direct API to post content, reply to comments, moderate subreddits, and fetch trending discussions through natural language.

## Summary

Reddit is a social news platform with thriving user-driven communities (subreddits). It's the go-to place for discussion, content sharing, and viral marketing.

## Categories

- marketing & social media

## Toolkit Details

- Tools: 22
- Managed auth: Managed by Composio

## Images

- Logo: https://logos.composio.dev/api/reddit

## Authentication

- **Oauth2**
  - Type: `oauth2`
  - Description: Oauth2 authentication for Reddit.
  - Setup:
    - Configure Oauth2 credentials for Reddit.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Post a weekly update to r/marketing
- Search for trending posts about AI startups
- Retrieve comments from my latest Reddit post
- Edit the text of my recent comment

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `REDDIT_CREATE_REDDIT_POST` | Create a Reddit post | Creates a new text or link post on a specified, existing Reddit subreddit, optionally applying a flair. Immediately publishes publicly visible content — confirm subreddit, title, and body with the user before executing. Posts may be silently removed post-submission by automoderator or subreddit rules (errors: SUBMIT_VALIDATION_BODY_BLACKLISTED_STRING, POST_GUIDANCE_VALIDATION_FAILED); verify visibility via the returned permalink. Rapid consecutive calls trigger RATELIMIT errors with cooldown hints. |
| `REDDIT_DELETE_REDDIT_COMMENT` | Delete Reddit comment | Deletes a Reddit comment, identified by its fullname ID, if it was authored by the authenticated user. Deletion is permanent and irreversible. |
| `REDDIT_DELETE_REDDIT_POST` | Delete a Reddit post | Permanently and irreversibly deletes a Reddit post by its ID. Confirm with the user before calling. Only works on posts authored by the authenticated account; attempting to delete another user's post will fail. |
| `REDDIT_EDIT_REDDIT_COMMENT_OR_POST` | Edit comment or post | Edits the body text of the authenticated user's own existing comment or self-post on Reddit; cannot edit link posts or titles. |
| `REDDIT_GET` | Get Reddit listing by sort | Tool to retrieve a listing of Reddit posts sorted by the specified criteria (hot, new, top, etc.). Use when you need to get posts from the Reddit front page or all of Reddit with a specific sort order. Supports pagination and time filtering for top/controversial sorts. |
| `REDDIT_GET_CONTROVERSIAL_POSTS` | Get controversial posts from all subreddits | Tool to retrieve controversial posts from all subreddits with time filters. Use when you need to find the most controversial posts across Reddit from a specific time period (hour, day, week, month, year, or all-time). Returns a paginated listing of posts ranked by controversy within the specified time frame. |
| `REDDIT_GET_ME_PREFS` | Get user preferences | Tool to retrieve preference settings of the logged in user. Use when you need to check user preferences or settings. |
| `REDDIT_GET_RANDOM` | Get random Reddit post | Tool to retrieve a random public Reddit post from any subreddit. Use when you want to discover serendipitous content or need a random post for testing or entertainment purposes. |
| `REDDIT_GET_REDDIT_USER_ABOUT` | Get user information | Retrieves information about a specified Reddit user account, including karma scores and gold status. Use when you need to get profile information for any public Reddit user. |
| `REDDIT_GET_R_TOP` | Get top posts from subreddit | Tool to retrieve top-rated posts from a subreddit with time filters. Use when you need to find the most popular posts from a specific time period (hour, day, week, month, year, or all-time). Returns a paginated listing of posts ranked by score within the specified time frame. |
| `REDDIT_GET_SCOPES` | Get OAuth scopes | Tool to retrieve all available OAuth scopes supported by the Reddit API. Use when you need to understand what permissions are available or check scope definitions. |
| `REDDIT_GET_SUBREDDIT_RULES` | Get subreddit rules | Fetch the explicit posting rules for a subreddit to ensure compliance before posting or commenting. Use when you need to verify content meets community guidelines or explain subreddit requirements to users. |
| `REDDIT_GET_SUBREDDITS_SEARCH` | Search subreddits | Tool to search subreddits by title and description. Use when you need to find subreddits matching a specific topic or keyword. Returns a paginated listing of subreddits with their details including subscribers, descriptions, and other metadata. |
| `REDDIT_GET_USER_FLAIR` | Get user flair | Fetches the list of user flair assignments for a given subreddit. Returns paginated results with user flair details. Returned flair_id values are scoped to the specific subreddit and must not be reused across different subreddits. |
| `REDDIT_GET_USERNAME_AVAILABLE` | Check username availability | Tool to check whether a username is available for registration on Reddit. Use when you need to verify if a username can be used to create a new account. |
| `REDDIT_LIST_SUBREDDIT_POST_FLAIRS` | List subreddit post flairs | List available link/post flairs for a subreddit (including flair_template_id) so posts can satisfy flair-required validation. Use when you need to discover valid flair IDs before creating a post in a subreddit that requires flair. Note: Reddit may return empty or deny access if the authenticated user cannot set link flair and is not a moderator. |
| `REDDIT_POST_REDDIT_COMMENT` | Post a comment | Posts a comment on Reddit, replying to an existing submission (post) or another comment. Fails if the target thread is locked, archived, or restricted — verify thread state beforehand. Rapid successive calls trigger Reddit RATELIMIT errors with explicit cooldown hints (e.g., 'take a break for 9 minutes'); honor the specified wait before retrying. A successful API response does not guarantee public visibility — automod or spam filters may silently remove the comment. Publishes immediately and publicly; confirm target and text before executing. |
| `REDDIT_RETRIEVE_POST_COMMENTS` | Retrieve Comments for a Post | Retrieves all comments for a Reddit post given its base-36 article ID. Response is a two-element listings array: post metadata in `listings[0]`; comments in `listings[1].data.children` with text at each `[].data.body` and nested replies under each comment's `replies` field. Replies require recursive traversal to capture full discussion. Large, locked, or archived threads may return truncated trees or `more` placeholders rather than full results. Filter out comments where `body` is `[deleted]` or `[removed]`; use `parent_id` to reconstruct conversation flow. No time-filter parameter — compare `created_utc` against a UTC cutoff to filter by date. |
| `REDDIT_RETRIEVE_REDDIT_POST` | Retrieve posts from subreddit | Retrieves posts from a specified, publicly accessible subreddit. Responses nest post data under `data.children[].data`; inspect the structure before parsing. Pagination uses a `data.after` cursor; deduplicate across pages by post `id`. No built-in date filtering; compare `created_utc` (Unix seconds, UTC) client-side. Rate limit: ~1–2 requests/second; back off on HTTP 429. |
| `REDDIT_RETRIEVE_SPECIFIC_COMMENT` | Retrieve specific comment or post | Retrieves detailed information for a single Reddit comment or post using its fullname. Returns only the specified item, not surrounding thread context; use REDDIT_RETRIEVE_POST_COMMENTS for full discussion retrieval. Deleted, removed, or quarantined items may return empty or partial payloads. |
| `REDDIT_SEARCH_ACROSS_SUBREDDITS` | Search across subreddits | Searches Reddit for posts/comments using a query. Results nested under `data.children[i].data` (kind `t3` for posts); a `posts` array may also appear — inspect actual response path. No native time-range filter; compare `created_utc` (Unix epoch, UTC) client-side for recency filtering. Empty `children` is a valid no-results outcome. Key post fields: `score`, `num_comments`, `created_utc`, `permalink`. Rate limit: ~1–2 requests/sec; HTTP 429 indicates throttling. |
| `REDDIT_TOGGLE_INBOX_REPLIES` | Enable or disable inbox replies | Enable or disable inbox replies for a submission or comment. Use when you want to control whether you receive inbox notifications for replies to your own posts or comments. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Reddit Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Reddit actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'Retrieve the top 5 hot posts from r/technology'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'Retrieve the top 5 hot posts from r/technology'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and Claude Agent SDK
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Create Tool Router Session

Initialize the Composio client and create a Tool Router session
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });

console.log("Creating Tool Router session...");
const { mcp } = await composio.create('your-user-id');
console.log(`Tool Router session created: ${mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Reddit tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('Retrieve the current hot posts from r/technology')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText, stepCountIs } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: mcp.url,
    headers: { 'x-api-key': 'your-composio-api-key' }
  }
});

const tools = await client.tools();

const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{ role: 'user', content: 'Retrieve the current hot posts from r/technology' }],
  stopWhen: stepCountIs( 5 )
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Reddit Integration

- Supports both Reddit MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, posting, and moderating Reddit content

### 2. Managed Auth

- Built-in OAuth2 handling with automatic token refresh and rotation
- Central place to manage, scope, and revoke Reddit access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Reddit
- Scoped, least privilege access to Reddit resources
- Full audit trail of agent actions to support review and compliance

## Use Reddit with any AI Agent Framework

Choose a framework you want to connect Reddit with:

- [ChatGPT](https://composio.dev/toolkits/reddit/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/reddit/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/reddit/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/reddit/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/reddit/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/reddit/framework/codex)
- [Cursor](https://composio.dev/toolkits/reddit/framework/cursor)
- [VS Code](https://composio.dev/toolkits/reddit/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/reddit/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/reddit/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/reddit/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/reddit/framework/cli)
- [Google ADK](https://composio.dev/toolkits/reddit/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/reddit/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/reddit/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/reddit/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/reddit/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/reddit/framework/crew-ai)
- [Pydantic AI](https://composio.dev/toolkits/reddit/framework/pydantic-ai)
- [AutoGen](https://composio.dev/toolkits/reddit/framework/autogen)

## Related Toolkits

- [Facebook](https://composio.dev/toolkits/facebook) - Facebook is a social media and advertising platform for businesses and creators. It helps you connect, share, and manage content across your public Facebook Pages.
- [Linkedin](https://composio.dev/toolkits/linkedin) - LinkedIn is a professional networking platform for connecting, sharing content, and engaging with business opportunities. It's the go-to place for building your professional brand and unlocking new career connections.
- [Active campaign](https://composio.dev/toolkits/active_campaign) - ActiveCampaign is a marketing automation and CRM platform for managing email campaigns, sales pipelines, and customer segmentation. It helps businesses engage customers and drive growth through smart automation and targeted outreach.
- [ActiveTrail](https://composio.dev/toolkits/active_trail) - ActiveTrail is a user-friendly email marketing and automation platform. It helps you reach subscribers and automate campaigns with ease.
- [Ahrefs](https://composio.dev/toolkits/ahrefs) - Ahrefs is an SEO and marketing platform for site audits, keyword research, and competitor insights. It helps you improve search rankings and drive organic traffic.
- [Amcards](https://composio.dev/toolkits/amcards) - AMCards lets you create and mail personalized greeting cards online. Build stronger customer relationships with easy, automated card campaigns.
- [Beamer](https://composio.dev/toolkits/beamer) - Beamer is a news and changelog platform for in-app announcements and feature updates. It helps companies boost user engagement by sharing news where users are most active.
- [Benchmark email](https://composio.dev/toolkits/benchmark_email) - Benchmark Email is a platform for creating, sending, and tracking email campaigns. It's built to help you engage audiences and analyze results—all in one place.
- [Bigmailer](https://composio.dev/toolkits/bigmailer) - BigMailer is an email marketing platform for managing multiple brands with white-labeling and automation. It helps teams streamline campaigns and simplify integration with Amazon SES.
- [Brandfetch](https://composio.dev/toolkits/brandfetch) - Brandfetch is an API that delivers company logos, colors, and visual branding assets. It helps marketers and developers keep brand visuals consistent everywhere.
- [Brevo](https://composio.dev/toolkits/brevo) - Brevo is an all-in-one email and SMS marketing platform for transactional messaging, automation, and CRM. It helps businesses engage customers and streamline communications through powerful campaign tools.
- [Campayn](https://composio.dev/toolkits/campayn) - Campayn is an email marketing platform for creating, sending, and managing campaigns. It helps businesses engage contacts and grow audiences with easy-to-use tools.
- [Cardly](https://composio.dev/toolkits/cardly) - Cardly is a platform for creating and sending personalized direct mail to customers. It helps businesses break through the digital clutter by getting real engagement via physical mailboxes.
- [ClickSend](https://composio.dev/toolkits/clicksend) - ClickSend is a cloud-based SMS and email marketing platform for businesses. It streamlines communication by enabling quick message delivery and contact management.
- [Crustdata](https://composio.dev/toolkits/crustdata) - CrustData is an AI-powered data intelligence platform for real-time company and people data. It helps B2B sales teams, AI SDRs, and investors react to live business signals.
- [Curated](https://composio.dev/toolkits/curated) - Curated is a platform for collecting, curating, and publishing newsletters. It streamlines content aggregation and distribution for creators and teams.
- [Customerio](https://composio.dev/toolkits/customerio) - Customer.io is a customer engagement platform for targeted messaging across email, SMS, and push. Easily automate, segment, and track communications with your audience.
- [Cutt ly](https://composio.dev/toolkits/cutt_ly) - Cutt.ly is a URL shortening service for managing and analyzing links. Streamline your workflows with quick, trackable, and branded short URLs.
- [Demio](https://composio.dev/toolkits/demio) - Demio is webinar software built for marketers, offering both live and automated sessions with interactive features. It helps teams engage audiences and optimize lead generation through detailed analytics.
- [Doppler marketing automation](https://composio.dev/toolkits/doppler_marketing_automation) - Doppler marketing automation is a platform for creating, sending, and tracking email campaigns. It helps you automate marketing workflows and manage subscriber lists for better engagement.

## Frequently Asked Questions

### Do I need my own developer credentials to use Reddit with Composio?

No, you can get started immediately using Composio's built-in Reddit app. For production, we recommend configuring your own OAuth credentials.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
