Reddit API

Reddit API for posting and scheduling without the subreddit-rule juggling

A Reddit API that surfaces subreddit rules and required flair before submission, so posts get rejected in your app instead of by a moderator.

Built for community, developer, and audience-building products. Add Reddit publishing with one API for scheduling, media, status, and reporting workflows.

Last updated: July 2026

One API key. No per-account fees. 15 platforms.

API key authScheduled publishing15 platforms
Quick start
API request
1await fetch("https://api.bundle.social/api/v1/post", {2  method: "POST",3  headers: {4    "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY,5    "Content-Type": "application/json"6  },7  body: JSON.stringify({8    teamId: "team_123",9    title: "Reddit self post",10    postDate: "2026-05-14T10:00:00.000Z",11    status: "SCHEDULED",12    socialAccountTypes: ["REDDIT"],13    data: {14      REDDIT: {15        sr: "r/webdev",16        text: "How we built our social media API layer",17        description: "We spent the last six months building a unified posting API..."18      }19    }20  })21});
Official APIs500k+ connected accountsDirect engineer support

Building directly on Reddit API

Reddit automation has to respect subreddit rules, account trust, rate limits, and community norms.
Subreddit targeting and post types work very differently from brand-page channels.
Teams need guardrails so scheduled posts still feel relevant to the community.

What bundle.social handles

Schedule Reddit posts while keeping subreddit and content requirements visible.
Plan Reddit next to developer, community, and brand channels in one campaign workflow.
Use comment, analytics, and post history workflows when Reddit access allows them.

Reddit posting with subreddit context built in

Reddit posts succeed or fail on community fit. bundle.social keeps subreddit targeting, post type, timing, and review context visible before a scheduled post goes live.

Workflow

How it works

Connect accounts once, then create and schedule posts with channel-specific fields from one API.

01

Create an API key

Generate an organization API key in the dashboard and use it with the x-api-key header.

02

Connect accounts

Connect each social account once. bundle.social keeps the account mapping ready for future posts.

03

We submit per subreddit and surface the rule

Reddit accepts or rejects a submission based on the target subreddit's own rules and required flair, and the same payload can pass in one community and fail in another. You send one request; bundle.social reports which subreddit rejected it and why.

Product architecture

Build social media workflows without rebuilding every platform

Reddit API for community-led publishing workflows

Community products, developer-marketing tools, and audience-building platforms are the main consumers of a Reddit API: self posts, link posts, subreddit targeting, flair, images, videos, post history, and comments. Reddit is also the platform where a technically valid request is routinely rejected, because subreddit rules and account trust decide the outcome rather than the payload.

bundle.social gives Reddit a scheduling workflow that leaves those rules in view. Your product can target specific subreddits, set required flair, choose the post type, and track each submission separately, so a rejection in one community never looks like a platform outage.

Reddit rejects posts for reasons the API cannot tell you in advance

Every other platform in this list fails predictably: the payload is wrong, the token is stale, the media is unsupported. Reddit adds a category no schema can validate: community rules. A submission that is accepted in one subreddit is rejected in the next because that community requires flair, bans link posts, enforces a karma or account-age threshold, restricts posting frequency, or runs an automod rule the API never exposes.

The practical consequence is that Reddit needs different error handling from the rest of your integration. A rejection is usually not a bug in your request and usually not retryable as-is. The correct next step is almost always to change something about the submission (the target subreddit, the flair, the post type), which means the failure has to reach the user with enough context for them to make that choice.

Auth failures and community rejections are different problems

Reddit tokens expire, and an expired token looks nothing like a community rejection: it fails every submission to every subreddit, and reconnecting fixes it. A community rejection fails one subreddit and leaves the rest working, and reconnecting fixes nothing. Products that collapse both into a generic "posting failed" teach users to reconnect their account as a reflex, which is the wrong action most of the time.

bundle.social separates them. Token and scope problems are reported as reconnect-worthy; subreddit rejections are reported with the community that refused the post, so your UI can point the user at the actual decision they need to make.

What Reddit is good for, and what it punishes

Reddit rewards products that post to a small number of relevant communities with content shaped for each one, and punishes anything that resembles syndication. Broadcasting identical text across many subreddits is the fastest route to a shadowban, and it fails quietly: submissions appear to succeed while being invisible to everyone else. If your product schedules Reddit content, per-community variation is not a nice-to-have feature but the difference between working and being filtered.

Capabilities

Reddit API workflows for community-aware posting

Subreddit targets, self and link post fields, media references, team review, and delivery status for community campaigns.

Subreddit-specific post payloads

Create Reddit posts with subreddit targets, self or link post fields, titles, text, links, and media references where allowed.

API key authentication

Use one bundle.social API key for server-to-server requests while users connect Reddit accounts through the hosted OAuth flow.

Community-aware scheduling

Schedule posts with subreddit context visible so teams can review timing, tone, and rules before content goes live.

Delivery status tracking

Track scheduled, processing, posted, retrying, and error states without building a separate Reddit publishing queue.

Platform specifics

Reddit API constraints worth knowing before you build

Reddit is the one platform where a technically perfect request is routinely rejected for reasons that live outside the API.

Eight scopes, because posting is not enough

bundle.social requests identity, read, submit, edit, mysubreddits, history, modposts, and flair. submit publishes, but flair is required wherever a subreddit mandates it, and mysubreddits is what lets the user pick a target community without typing its name from memory.

Title 300 characters, body 30,000

A Reddit submission title is capped at 300 characters and the self-text body at 30,000. Link posts use a URL up to 2,048 characters. Titles are the common failure: they are short, mandatory, and not editable after posting.

Up to 10 media items

Image and video submissions accept up to 10 uploads. Not every subreddit permits every media type, and the permitted set is a per-community setting rather than an API capability.

Required flair is a per-subreddit contract

Many subreddits reject submissions without a flair, and the valid flair list differs per community. bundle.social reads the available flairs for the target subreddit so your users pick from real values instead of guessing.

Developer example

Schedule a Reddit post

Examples use bundle.social's public API shape: API key authentication, a post date, selected social account types, and platform-specific data.

TypeScript
API request
1await fetch("https://api.bundle.social/api/v1/post", {2  method: "POST",3  headers: {4    "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY,5    "Content-Type": "application/json"6  },7  body: JSON.stringify({8    teamId: "team_123",9    title: "Reddit self post",10    postDate: "2026-05-14T10:00:00.000Z",11    status: "SCHEDULED",12    socialAccountTypes: ["REDDIT"],13    data: {14      REDDIT: {15        sr: "r/webdev",16        text: "How we built our social media API layer",17        description: "We spent the last six months building a unified posting API..."18      }19    }20  })21});

Supported content

Text postsLink postsSubreddit targetingImagesVideosPost historyComments

Honest limitations

  • Subreddit rules, moderator actions, account trust, and Reddit policy always take precedence.
  • Reddit is not a generic broadcast channel; content should be community-specific.

Guarantees

Developer-first infrastructure

Visible post status

Track scheduled, processing, posted, retrying, and error states per post.

Verbose errors

When native APIs fail, we return human-readable error messages and actionable recovery steps.

Flat pricing

No per-post counting. Predictable pricing for teams managing many users, workspaces, and connected accounts.

Same-day support

Direct access to the engineers building the API. We respond to technical issues the same day, sometimes the same hour.

Resources

Technical guides & documentation

FAQ

Questions developers ask before building

Which Reddit scopes does publishing need?

bundle.social requests identity, read, submit, edit, mysubreddits, history, modposts, and flair. submit publishes, flair is mandatory wherever a subreddit requires it, and mysubreddits is what lets a user pick a target community without typing its name from memory.

What are the field limits on a Reddit submission?

A title is capped at 300 characters and self-text at 30,000, with link posts using a URL up to 2,048 characters and media submissions accepting up to 10 uploads. Titles are the common failure: short, mandatory, and not editable after posting.

Can the API tell us a subreddit's rules in advance?

Not fully. Available flairs are readable, but karma thresholds, account-age gates, banned post types, and automod behavior are not exposed. That is why a rejection has to reach the user with enough context to change the submission rather than being retried as-is.

Does this replace Reddit API?

No. bundle.social calls Reddit API for you and absorbs the work around it: token storage and refresh, media handling, scheduling, status transitions, and turning platform errors into a cause and a next action.

Are Reddit analytics available through the API?

Yes, for the metrics the connected account and Reddit API actually expose. Availability depends on account type and granted permissions, so treat analytics as best-effort and delivery status as guaranteed.