Skip to content

Provider Overview

OAuth and provider app setup are the most common source of deployment friction. Use this section when you are enabling networks one by one.

ProviderAuth methodServer setupNotes
XOAuth 1.0aClient ID + secretRequires an X developer app with OAuth 1.0a user auth enabled.
MastodonOAuth 2.0 per instanceMASTODON_SERVERS JSONOne app per instance.
BlueskyApp passwordNoneUsers connect with handle + app password.
LinkedInOAuth 2.0Client ID + secretReplies may need extra approval.
ThreadsMeta OAuthClient ID + secret + redirect URIPublic media URL required.

Start with one provider, confirm the callback works, then expand.

Support matrix

This matrix reflects current OpenPost support, not the full theoretical capability of each provider API.

ProviderText postsImage postsThreads / repliesScheduled postsVideo postsPlatform-specific variantsAnalytics
XYesYesYesYesPartial, needs real-account verificationYesNo
MastodonYesYesYesYesPartial, needs real-account verificationYesNo
BlueskyYesYesYesYesPartial, one MP4 path implemented and needs real-account verificationYesNo
LinkedInYesYesPartial, implemented as commentsYesPartial, implementation exists and needs re-verificationYesNo
ThreadsYesYesYesYesPartial, public-media deployment dependentYesNo

Provider-specific caveats

  • X: Requires an X developer app with OAuth 1.0a user auth enabled and matching callback URLs.
  • Mastodon: Setup is per instance. Each Mastodon server needs its own app credentials in MASTODON_SERVERS.
  • Bluesky: Uses handle plus app password. No server-side OAuth app is required.
  • LinkedIn: Permissions and app review can block some publishing or reply workflows even when the integration code is present.
  • Threads: Media must be reachable at a public OPENPOST_MEDIA_URL, and Meta fetches those files server-side.

Provider API policies, scopes, rate limits, and review requirements can change. Re-check provider docs if a previously working flow starts failing.

Released under the MIT License.