White-label Mode

Run UniPost's Connect flow against your own OAuth apps, branded as your product. Your customers connect their accounts without ever seeing UniPost.

Full controlAPI-basedMulti-tenantAdvanced setupPaid plans only

At a glance

QuestionAnswer
Who is it forDevelopers and product teams onboarding customer accounts
Who pays the platform API costYou — your OAuth app, your platform tier
Setup complexityMedium — one-time per platform, ~30 min
Control levelBasic: 1 branded platform with UniPost attribution. Growth+: full multi-platform control with optional attribution removal.
Best use caseSaaS products where customers bring their own social accounts
TierBasic and up — Quickstart is free

Quickstart vs White-label

The single question this page exists to answer: which one should you pick?

DimensionQuickstartWhite-label
Setup timeMinutes~30 min per platform (one-time)
OAuth appUniPost-managedYour own — uploaded per workspace
Platform consent screenShows “UniPost”Shows your app name + logo
Connect page brandingUniPost's defaultYour logo, name, and brand color (Basic+)
Hosted onboarding attributionAlways shownShown on Basic, optional on Growth / Team
Platform API rate limitsShared across all UniPost workspacesYour own — scales with your tier
Platform API costIncluded in UniPost planBilled to you by each platform
Best forYour own accounts, prototypes, internal toolsCustomer-facing SaaS onboarding
Required on free tier✓ Available— Paid plans only

In practical terms: Quickstart uses UniPost's own OAuth apps, so your end users will see UniPost on the platform consent screen. White-label uses your uploaded platform credentials instead, so the same end users see your app name and brand assets on the consent screen once that platform app is configured and approved. Connect sessions default to this white-label behavior; only sessions created with allow_quickstart_creds=true may fall back to UniPost's shared OAuth apps. Basic unlocks that for one platform while still keeping Powered by UniPost on the hosted Connect page; Growth and Team remove the one-platform cap and can hide that attribution.

Pick Quickstart if
  • You publish to social accounts your team owns
  • You're validating a prototype or internal tool
  • You don't need your brand on the Connect surface
Pick White-label if
  • Your customers bring their own accounts
  • Your customers shouldn't know UniPost exists
  • You need your own platform API rate limits

How it works

White-label is not just "paste credentials into UniPost". The real flow starts in each platform's official developer console, then comes back into UniPost after your app credentials and platform review path are in place.

1
Create the official platform app
In the platform's own developer portal, create the OAuth app your customers will authorize against. This is where the eventual consent-screen brand comes from.
2
Generate client ID and client secret
Finish the platform-side setup needed to mint the real OAuth credentials. Depending on the platform, this can involve enabling APIs, creating OAuth clients, and choosing the right app type.
3
Whitelist UniPost's callback URL
Each platform has its own exact callback path. Use the platform-specific white-label guide below and copy the URL verbatim into that platform's developer console.
4
Upload credentials to UniPost
Push your client ID and secret to UniPost. Basic supports one platform; Growth and Team support all supported platforms.
5
Complete platform verification or app review
Some platforms let you test before review, but branded public rollout usually still depends on the platform approving your app, scopes, or brand. Plan for that review loop instead of treating it as an optional afterthought.
6
Set profile branding
Logo, display name, and primary color on the hosted Connect page. Growth and Team can also hide the UniPost attribution footer.
7
Create a session and publish
Call POST /v1/connect/sessions, send the end user to the returned URL, then publish via POST /v1/posts.

Supported platforms

PlatformWhite-labelDeveloper portalApp review
Meta (Facebook + Instagram + Threads)developers.facebook.comRequired for public use
LinkedInlinkedin.com/developersProducts auto-approve
TikTokdevelopers.tiktok.comAudit required
Pinterestdevelopers.pinterest.comProduction API access required for broad use
YouTubeconsole.cloud.google.comScope verification recommended
X / Twitterdeveloper.x.comTier-dependent
BlueskyXNot applicable — no OAuth apps

Platform setup guides

These pages are written from the white-label customer's point of view: where to create the app, which callback URL to allow-list, what to paste into UniPost, and how to know the setup is actually done.

Capabilities unlocked

CapabilityQuickstartWhite-label
Publishing to connected accounts
Scheduling
Analytics + webhooks
Your brand on Connect pageXYes (Basic+)
Your app on platform consentXYes (Basic+ for 1 platform, Growth+ for all supported platforms)
Remove Powered by UniPostXGrowth / Team only
Onboard customers at scaleX
Own platform rate-limit tierX
external_user_id mappingX

Cost model

ItemQuickstartWhite-label
Platform API feesAbsorbed by UniPost plan quotaBilled directly to you by each platform
UniPost planFree tier availablePaid plan required
Rate-limit headroomShared pool across all Quickstart usersYours alone — scales with your platform tier
Upgrade cost triggerHit plan quota → upgrade UniPostHit platform tier → upgrade with platform

Setup checklist

Gather these before you start — it avoids round-trips during setup.

  • Developer accounts on each platform you plan to support
  • OAuth client_id + client_secret per platform
  • UniPost's callback URL allow-listed on each platform app
  • A logo URL (HTTPS, ≤ 2 KB), brand display name, and hex color
  • A stable external_user_id format owned by your backend
  • A return_url on your product to land users after Connect

What you actually configure

LayerWhat it controlsDefault if unset
OAuth credentialsWhich platform app is used when the end user authorizesUniPost's global app — consent shows “UniPost”
Profile brandingLogo, display name, and primary color on the hosted Connect pageUniPost's default look
Connect URLThe public URL your backend hands to the end userAlways required — nothing to fall back to

This is the core mental model: if you never upload your own platform credentials, the flow falls back to UniPost's app and the consent screen shows UniPost. If you do upload your own approved credentials, the consent screen can show your app identity instead.

API examples

Create a Connect session

Start the branded OAuth flow for one end user.

Upload platform credentials

Workspace admins only. Push once per platform.

Set profile branding

Pulled at Connect-page render time — no cache in between.

Limitations & notes

LimitationReason
Requires platform developer appsEach platform issues OAuth credentials individually — UniPost can't proxy someone else's app
Platform API rate limits are yoursThe platform enforces them against your client ID, not UniPost
Some platforms require app reviewMeta and TikTok require review before public use — UniPost can't shortcut this
Bluesky is not applicableBluesky uses app passwords, not OAuth apps
Paid plan requiredWhite-label is a paid feature — free tier users stay on Quickstart

Next steps