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.
At a glance
| Question | Answer |
|---|---|
| Who is it for | Developers and product teams onboarding customer accounts |
| Who pays the platform API cost | You — your OAuth app, your platform tier |
| Setup complexity | Medium — one-time per platform, ~30 min |
| Control level | Basic: 1 branded platform with UniPost attribution. Growth+: full multi-platform control with optional attribution removal. |
| Best use case | SaaS products where customers bring their own social accounts |
| Tier | Basic and up — Quickstart is free |
Quickstart vs White-label
The single question this page exists to answer: which one should you pick?
| Dimension | Quickstart | White-label |
|---|---|---|
| Setup time | Minutes | ~30 min per platform (one-time) |
| OAuth app | UniPost-managed | Your own — uploaded per workspace |
| Platform consent screen | Shows “UniPost” | Shows your app name + logo |
| Connect page branding | UniPost's default | Your logo, name, and brand color (Basic+) |
| Hosted onboarding attribution | Always shown | Shown on Basic, optional on Growth / Team |
| Platform API rate limits | Shared across all UniPost workspaces | Your own — scales with your tier |
| Platform API cost | Included in UniPost plan | Billed to you by each platform |
| Best for | Your own accounts, prototypes, internal tools | Customer-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.
- 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
- 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.
POST /v1/connect/sessions, send the end user to the returned URL, then publish via POST /v1/posts.Supported platforms
| Platform | White-label | Developer portal | App review |
|---|---|---|---|
| Meta (Facebook + Instagram + Threads) | ✓ | developers.facebook.com | Required for public use |
| ✓ | linkedin.com/developers | Products auto-approve | |
| TikTok | ✓ | developers.tiktok.com | Audit required |
| ✓ | developers.pinterest.com | Production API access required for broad use | |
| YouTube | ✓ | console.cloud.google.com | Scope verification recommended |
| X / Twitter | ✓ | developer.x.com | Tier-dependent |
| Bluesky | X | — | Not 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
| Capability | Quickstart | White-label |
|---|---|---|
| Publishing to connected accounts | ✓ | ✓ |
| Scheduling | ✓ | ✓ |
| Analytics + webhooks | ✓ | ✓ |
| Your brand on Connect page | X | Yes (Basic+) |
| Your app on platform consent | X | Yes (Basic+ for 1 platform, Growth+ for all supported platforms) |
| Remove Powered by UniPost | X | Growth / Team only |
| Onboard customers at scale | X | ✓ |
| Own platform rate-limit tier | X | ✓ |
external_user_id mapping | X | ✓ |
Cost model
| Item | Quickstart | White-label |
|---|---|---|
| Platform API fees | Absorbed by UniPost plan quota | Billed directly to you by each platform |
| UniPost plan | Free tier available | Paid plan required |
| Rate-limit headroom | Shared pool across all Quickstart users | Yours alone — scales with your platform tier |
| Upgrade cost trigger | Hit plan quota → upgrade UniPost | Hit 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_secretper 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_idformat owned by your backend - A
return_urlon your product to land users after Connect
What you actually configure
| Layer | What it controls | Default if unset |
|---|---|---|
| OAuth credentials | Which platform app is used when the end user authorizes | UniPost's global app — consent shows “UniPost” |
| Profile branding | Logo, display name, and primary color on the hosted Connect page | UniPost's default look |
| Connect URL | The public URL your backend hands to the end user | Always 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
| Limitation | Reason |
|---|---|
| Requires platform developer apps | Each platform issues OAuth credentials individually — UniPost can't proxy someone else's app |
| Platform API rate limits are yours | The platform enforces them against your client ID, not UniPost |
| Some platforms require app review | Meta and TikTok require review before public use — UniPost can't shortcut this |
| Bluesky is not applicable | Bluesky uses app passwords, not OAuth apps |
| Paid plan required | White-label is a paid feature — free tier users stay on Quickstart |