Reddit

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:

  1. A Reddit account
  2. A registered Reddit application of type web app (created at reddit.com/prefs/apps)
  3. 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/callback

Required Scopes

Outstand requests the following OAuth scopes by default:

ScopePurpose
identityRead the connected account's username and profile
submitCreate posts and comments
readRead posts, comments, and public metrics
editDelete your own posts and comments
historyList 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

FieldRequiredDescription
subredditYesThe subreddit to post to, without the r/ prefix. Use u_<username> to post to a user profile
titleYesPost title (max 300 characters)
urlNoWhen set, publishes a link post to this URL and the container content is ignored
flairIdNoFlair template ID. Some subreddits require flair and auto-remove posts without it
flairTextNoCustom flair text (max 64 characters), used with flairId when the template allows editable text
nsfwNoMark the post as NSFW (default false)
spoilerNoMark the post as a spoiler (default false)
sendRepliesNoWhether 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

FeatureSupportedNotes
Text (self) postsYesContainer content becomes the markdown body (max 40,000 characters)
Link postsYesSet reddit.url; Reddit does not allow a body on link posts
Image/video postsNoNot yet supported - media containers are rejected for Reddit
Comments/repliesYesPublish, read (nested one tier), and delete comments
Post analyticsYesScore (upvotes), upvote ratio, and comment count - Reddit exposes public data only
Account metricsYesKarma snapshot (link, comment, and total karma)
Repost/crosspostNoNot yet available via Outstand
Post deletionYesVia DELETE /v1/posts/{id}/remote
Post importsYesImports 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 flairId where 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 scheduledAt like on every other network