# Reddit

> Extract Reddit posts and comments with comprehensive metadata. Supports both authenticated and unauthenticated access.

Source: https://cotera.co/docs/reference/tools/individual-tools/reddit

---

**Authentication Type:** Password\
**Description:** Extract Reddit posts and comments with comprehensive metadata. Provide Reddit Client ID as username and Client Secret as password for authenticated access (600 req/min) or leave empty for unauthenticated access (60 req/min).

***

## Authentication

To authenticate, you'll need to create a Reddit app:

1. Go to [Reddit App Preferences](https://www.reddit.com/prefs/apps)
2. Create a new app (select "script" as the app type)
3. Copy the Client ID and Client Secret from your generated app
4. Use the Client ID as the username and Client Secret as the password

**Note:** Authenticated access provides 600 requests/minute, while unauthenticated access provides 60 requests/minute.

***

## Posts

Extract Reddit post content and metadata.

### Extract Reddit Post

Extract Reddit post data including title, content, metadata, and post statistics. Does not include comments - use the comments extraction for that. Optionally provide a custom User-Agent string to identify your application to Reddit.

**Operation Type:** Mutation (Write)

**Parameters:**

* **url** `string` (required): Reddit post URL (e.g., <https://reddit.com/r/subreddit/comments/>...)
* **useAuth** `boolean` (nullable): Whether to use authenticated API access for higher rate limits (default: true)
* **userAgent** `string` (nullable): Custom User-Agent string for Reddit API requests (default: "Cotera Reddit Tool/1.0")

**Returns:**

* **content** `object`: Reddit post content
  * **title** `string`: Post title
  * **selftext** `string`: Post body text (for text posts)
  * **url** `string`: Post URL (original link or Reddit URL)
  * **isSelfPost** `boolean`: Whether this is a text post vs external link
  * **postHint** `string`: Type hint for post content (e.g., "image", "link")
  * **domain** `string`: Domain of the external URL
  * **mediaType** `string`: Type of media content
  * **crosspostParent** `string` (nullable): ID of parent post if this is a crosspost
* **metadata** `object`: Reddit post metadata
  * **id** `string`: Reddit post ID
  * **name** `string`: Reddit post full name
  * **author** `string`: Post author username
  * **subreddit** `string`: Subreddit name
  * **permalink** `string`: Permanent link to the post
  * **createdUtc** `string`: ISO timestamp when post was created
  * **score** `number`: Post score (upvotes minus downvotes)
  * **upvoteRatio** `number`: Ratio of upvotes to total votes
  * **numComments** `number`: Total number of comments
  * **gilded** `number`: Number of gold awards
  * **totalAwardsReceived** `number`: Total awards received
  * **stickied** `boolean`: Whether post is stickied
  * **locked** `boolean`: Whether comments are locked
  * **archived** `boolean`: Whether post is archived
  * **spoiler** `boolean`: Whether post is marked as spoiler
  * **nsfw** `boolean`: Whether post is marked NSFW
* **extractionInfo** `object`: Extraction metadata
  * **authenticated** `boolean`: Whether API request was authenticated
  * **rateLimit** `string`: Rate limit information
  * **extractedAt** `string`: ISO timestamp when data was extracted

**Example Usage:**

```json
{
  "url": "https://reddit.com/r/programming/comments/abc123/interesting_post/",
  "useAuth": true,
  "userAgent": "MyApp/1.0"
}
```

***

## Comments

Extract Reddit comments with configurable depth and analytics.

### Extract Reddit Comments

Extract Reddit comments with configurable nesting depth, including comment statistics, top comments per level, and author participation analytics. Optionally provide a custom User-Agent string to identify your application to Reddit.

**Operation Type:** Mutation (Write)

**Parameters:**

* **url** `string` (required): Reddit post URL (e.g., <https://reddit.com/r/subreddit/comments/>...)
* **maxCommentDepth** `number` (nullable): Maximum comment nesting depth to extract (default: 3)
* **useAuth** `boolean` (nullable): Whether to use authenticated API access for higher rate limits (default: true)
* **userAgent** `string` (nullable): Custom User-Agent string for Reddit API requests (default: "Cotera Reddit Tool/1.0")

**Returns:**

* **comments** `object`: Comments organized by level (level\_0, level\_1, etc.)
  * Each level contains an array of comment objects:
    * **id** `string`: Comment ID
    * **name** `string`: Comment full name
    * **parentId** `string`: Parent comment/post ID
    * **level** `number`: Nesting level (0 = top level)
    * **author** `string`: Comment author username
    * **body** `string`: Comment text content
    * **bodyHtml** `string`: Comment HTML content
    * **createdUtc** `string`: ISO timestamp when comment was created
    * **score** `number`: Comment score
    * **gilded** `number`: Number of gold awards
    * **stickied** `boolean`: Whether comment is stickied
    * **permalink** `string`: Permanent link to comment
    * **depth** `number`: Comment depth in thread
* **commentStatistics** `object`: Comment statistics and analytics
  * **totalComments** `number`: Total number of comments extracted
  * **commentsByLevel** `object`: Number of comments at each nesting level
  * **averageScoreByLevel** `object`: Average score for comments at each level
  * **topCommentByLevel** `object`: Top comment at each nesting level
  * **authorParticipation** `object`: Comment participation by author
* **extractionInfo** `object`: Extraction metadata
  * **authenticated** `boolean`: Whether API request was authenticated
  * **rateLimit** `string`: Rate limit information
  * **extractedAt** `string`: ISO timestamp when data was extracted
  * **maxCommentDepth** `number`: Maximum comment nesting depth extracted

**Example Usage:**

```json
{
  "url": "https://reddit.com/r/programming/comments/abc123/interesting_post/",
  "maxCommentDepth": 5,
  "useAuth": true,
  "userAgent": "MyApp/1.0"
}
```

***

## Authentication Info

Get information about Reddit API authentication status and capabilities.

### Get Authentication Info

Check Reddit API credential status, available authentication methods, and rate limits. Helps determine if authenticated or unauthenticated access should be used.

**Operation Type:** Query (Read)

**Parameters:**

* None

**Returns:**

* **hasCredentials** `boolean`: Whether Reddit API credentials are configured
* **authMethod** `enum`: Available authentication method ("oauth" or "unauthenticated")
* **rateLimit** `string`: Rate limit for the current authentication method
* **recommendedAuth** `boolean`: Whether authenticated access is recommended

**Example Usage:**

```json
{}
```

***

## Common Use Cases

**Content Analysis:**

* Extract Reddit posts for sentiment analysis and content research
* Analyze post engagement metrics and community response
* Track post performance across different subreddits

**Comment Mining:**

* Extract comment threads for discussion analysis
* Analyze comment sentiment and author participation
* Track conversation patterns and engagement levels

**Research and Monitoring:**

* Monitor specific subreddits for relevant discussions
* Extract data for academic research on social media trends
* Analyze community reactions to events or announcements

