LinkedIn White-label Setup
LinkedIn is usually the fastest white-label platform to bring live. This guide is optimized for getting your own LinkedIn app connected in UniPost with minimal back-and-forth.
Fastest route to a first success: create the app in LinkedIn Developer Portal, add the callback URL shown on this page, paste the credentials into UniPost, then connect one real test account before you expand scope or review work.
At a glance
| Question | Answer |
|---|---|
| Create the app in | LinkedIn Developer Portal |
| UniPost credential card | |
| Client fields to copy | Client ID + Client Secret |
| Best for | B2B products that need a low-friction first white-label rollout. |
| App review / approval | The basic OIDC + posting flow is comparatively straightforward. Higher-tier LinkedIn products are where approval gets slower. |
Before you start
- A company-owned LinkedIn developer account and company page context.
- One real LinkedIn member account you can use as the first connection test.
- A final app name you are comfortable showing to customers during consent.
- A note of whether you only need posting now, or also broader LinkedIn products later.
Callback URLs to whitelist
Copy these exactly into the platform developer console. Redirect mismatches are the fastest way to burn time during setup.
https://api.unipost.dev/v1/oauth/callback/linkedinFirst working setup
1
Create the LinkedIn app and keep the first scope set narrow
For a fast first launch, focus on the base LinkedIn sign-in + posting path that UniPost already expects. Avoid adding unrelated products until the first connect succeeds.
2
Whitelist UniPost's LinkedIn callback
Add the UniPost LinkedIn callback URL exactly as shown below. LinkedIn is strict about redirect URI matching, so copy it verbatim instead of retyping.
3
Save the Client ID and Client Secret in UniPost
Paste the LinkedIn app credentials into the LinkedIn card under White-label Credentials. Once saved, new LinkedIn OAuth flows in that workspace will use your app branding.
4
Connect one real LinkedIn account end to end
Your first success criterion is simple: your app name appears on the LinkedIn consent screen and UniPost lands back in the workspace with a connected account row.
5
Capture the exact app config that worked
Before you move on, record the redirect URI, enabled products, and the LinkedIn app owner account so teammates can reproduce the setup without re-discovering it.
What to paste into UniPost
| LinkedIn app field | UniPost field | Notes |
|---|---|---|
| Client ID | Client ID | Paste exactly as issued in the LinkedIn app settings. |
| Client Secret | Client Secret | Treat as production secret material; store it once in UniPost and in your password manager. |
| Authorized redirect URL | Callback URL below | LinkedIn rejects near-matches, so do not improvise the path. |
Save the credentials first, then start a fresh connection attempt. Troubleshooting an OAuth flow against stale credentials usually creates false leads.
Connect a LinkedIn account through your app
After your LinkedIn app credentials are saved, prove the customer-facing flow your own app will use: create an API key, choose the branded profile, create a Connect session, send the returned OAuth URL to your end user, then confirm UniPost recorded the managed LinkedIn account.
1
Step 1: create your first API key in the dashboard
Open UniPost in the same workspace where you saved the LinkedIn credentials, create an API key, and store it immediately. The first key must be created in the dashboard because there is no API key available yet to call POST/v1/api-keys.
2
Step 2: list profiles and copy the `profile_id` you will use for branding
Every workspace gets at least one profile. Start by listing profiles so you can grab the
id for the profile that should own your hosted Connect branding.3
Step 3: patch the profile branding that should show on hosted Connect
With the
profile_id in hand, update the logo, display name, and primary color. This is the fastest way to confirm your hosted Connect surface is reading your own branding instead of UniPost defaults.4
Step 4: create a LinkedIn Connect session for your app user
From your backend, create a Connect session with
platform set to linkedin, the branded profile_id, and your stable external_user_id. UniPost returns a hosted OAuth URL. Redirect your app user to that URL, or open it inside the connection flow in your own product, so they can authorize their LinkedIn account under your white-label app.5
Step 5: confirm the managed LinkedIn account is visible through the API
After the user completes OAuth, UniPost stores the connected LinkedIn account as a managed account tied to your
external_user_id. Verify it through the accounts API; the same user should also appear in the dashboard's Developer App Users view. This should be the same member account you used for the first consent-screen smoke test.6
Step 6: use that managed account and profile in your first real API workflow
At this point you have the four values you need most often:
API_KEY, profile_id, external_user_id, and the connected LinkedIn account_id. From here, run a small end-to-end publish test so you know the white-label LinkedIn connection is usable, not just visible.Common blockers
| Blocker | What to do about it |
|---|---|
| Redirect URI mismatch | LinkedIn is unforgiving here. If the consent screen errors immediately, compare the callback URL character by character. |
| Over-scoping too early | Adding extra LinkedIn products before the first working connect usually creates more review and troubleshooting surface than you need. |
| Wrong app owner context | Use a company-controlled developer account so the app does not disappear behind a single employee login. |
Definition of done
- LinkedIn consent shows your app branding.
- The callback returns to UniPost without a redirect mismatch error.
- A real LinkedIn account is connected in the workspace.
- Your team has documented the exact LinkedIn app that backs production.