Configure Reddit in Outstand with your own API credentials (BYOK) to connect accounts and publish posts to subreddits.
Reddit requires your own API credentials (BYOK). Once configured, you can connect Reddit accounts and publish text and link posts to subreddits through Outstand's unified social media API.
Managed Keys do not cover Reddit. Outstand does not ship a managed Reddit OAuth app, so registering your own Reddit application and adding its credentials is required - not an optional white-labelling step. Reddit accounts cannot be connected until you have done so.
Prerequisites
Before configuring Reddit integration, you need:
- A Reddit account
- A registered Reddit application of type web app (created at reddit.com/prefs/apps)
- Your application's client ID and client secret
Note: Reddit gates commercial API access behind its Developer Terms and an approval process. Free-tier access is rate-limited (roughly 100 queries per minute per OAuth client). Make sure your app's usage complies with Reddit's Data API Terms.
When registering the app, set the redirect URI to:
https://app.outstand.so/api/socials/reddit/callbackRequired Scopes
Outstand requests the following OAuth scopes by default:
| Scope | Purpose |
|---|---|
identity | Read the connected account's username and profile |
submit | Create posts and comments |
read | Read posts, comments, and public metrics |
edit | Delete your own posts and comments |
history | List the account's submitted posts (for imports) |
Setup
Step 1: Register Your Reddit API Credentials
curl -X POST https://api.outstand.so/v1/social-networks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"network": "reddit",
"client_key": "YOUR_REDDIT_CLIENT_ID",
"client_secret": "YOUR_REDDIT_CLIENT_SECRET"
}'Step 2: Connect a Reddit Account
Direct your users to the OAuth initiation endpoint:
GET https://app.outstand.so/api/socials/reddit/{orgId}Optional query parameters:
redirect_uri- Custom redirect URI after OAuth completes (for white-label flows)tenant_id- Tenant identifier for multi-tenant applications
The authorization request uses duration=permanent so Outstand receives a refresh token - required because Reddit access tokens expire after one hour.
Creating Reddit Posts
Reddit requires a subreddit and a title for every post. Pass them in the reddit configuration when creating a post:
curl -X POST https://api.outstand.so/v1/posts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "We built a unified social media API and here is what we learned along the way...",
"accounts": ["reddit"],
"reddit": {
"subreddit": "programming",
"title": "We built a unified social media API - lessons learned"
}
}'To publish a link post instead of a text post, add a url:
curl -X POST https://api.outstand.so/v1/posts \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "",
"accounts": ["reddit"],
"reddit": {
"subreddit": "webdev",
"title": "Outstand - one API for 12 social platforms",
"url": "https://www.outstand.so"
}
}'Reddit Configuration Fields
| Field | Required | Description |
|---|---|---|
subreddit | Yes | The subreddit to post to, without the r/ prefix. Use u_<username> to post to a user profile |
title | Yes | Post title (max 300 characters) |
url | No | When set, publishes a link post to this URL and the container content is ignored |
flairId | No | Flair template ID. Some subreddits require flair and auto-remove posts without it |
flairText | No | Custom flair text (max 64 characters), used with flairId when the template allows editable text |
nsfw | No | Mark the post as NSFW (default false) |
spoiler | No | Mark the post as a spoiler (default false) |
sendReplies | No | Whether the author receives inbox notifications for replies (default true) |
Threads (comment chains)
Multi-container posts map to Reddit as a post plus a comment chain: the first container becomes the post body, and each following container is published as a successive comment by the author.
Supported Features
| Feature | Supported | Notes |
|---|---|---|
| Text (self) posts | Yes | Container content becomes the markdown body (max 40,000 characters) |
| Link posts | Yes | Set reddit.url; Reddit does not allow a body on link posts |
| Image/video posts | No | Not yet supported - media containers are rejected for Reddit |
| Comments/replies | Yes | Publish, read (nested one tier), and delete comments |
| Post analytics | Yes | Score (upvotes), upvote ratio, and comment count - Reddit exposes public data only |
| Account metrics | Yes | Karma snapshot (link, comment, and total karma) |
| Repost/crosspost | No | Not yet available via Outstand |
| Post deletion | Yes | Via DELETE /v1/posts/{id}/remote |
| Post imports | Yes | Imports the account's submitted posts |
Subreddit Rules
Every subreddit enforces its own posting rules on top of the API:
- Some subreddits require flair and auto-remove posts without it - pass
flairIdwhere needed. - Karma minimums, account-age requirements, and posting frequency limits are enforced by subreddits and cannot be bypassed via the API.
- Posting to a subreddit you are banned from, or that does not exist, returns a descriptive error.
Rate Limits
Reddit's free tier allows roughly 100 queries per minute per OAuth client. Exceeding it returns HTTP 429; current usage is reported in X-Ratelimit-* response headers.
Token Management
Reddit access tokens expire after 1 hour. Outstand refreshes tokens automatically on demand using the permanent refresh token obtained at connect time - you never have to handle a Reddit 401 yourself.
Limitations
- Every post must target a subreddit (or user profile) and carry a title
- Text and image content cannot be combined in a single post (Reddit API constraint)
- Reddit has no insights API: analytics are public counts (score, upvote ratio, comments), with no impressions or reach
- No native scheduling on Reddit - Outstand's scheduler handles
scheduledAtlike on every other network