Bring your own app

PostFuze is bring-your-own-key (BYOK): you register your own OAuth app with each platform, then paste its credentials into PostFuze. We handle all the publishing plumbing — chunked media uploads, async transcode polling, token refresh, retries, the unified data model — while your app stays the developer of record on every network.

One-click managed connect is coming soon

Prefer not to register apps yourself? PostFuze's managed connectuses our own shared OAuth apps, so your customers connect in one click with no developer-app setup. It’s rolling out per platform as each app clears the provider’s review — until then those networks show as one-click coming soon. BYOK (below) is available for every network today and always remains an option for full white-labeling and your own rate limits.

This is what you want for a product:

  • Your brand on the consent screen. When a customer connects an account they authorize your app, not ours.
  • Your rate limits and quotas.Each platform meters against your app, so one noisy tenant can’t exhaust a shared pool.
  • Your relationship with the platform. App review, terms, and data access are between you and each network — no middleman.

1. The redirect URI

Every OAuth app you create must allow-list a single redirect (callback) URI — the URL the platform sends the user back to after they approve. It is the same for every platform:

Redirect / callback URI
https://www.postfuze.com/api/v1/connect/callback

Register this exact URL

Paste it verbatim into each platform’s OAuth app settings. A trailing slash or scheme mismatch is the single most common reason a connect fails with redirect_uri_mismatch. Your OAuth Apps settings page in the dashboard shows this same URL per platform, so you can copy it from there too.

2. Save your credentials in PostFuze

Once you have a client_id and client_secret from the platform, store them per network — either in the dashboard under Settings → OAuth Apps(“Bring your own app”), or via the API:

curl
curl https://api.postfuze.com/api/v1/social-networks \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "x",
    "display_name": "My X App",
    "client_id": "YOUR_X_CLIENT_ID",
    "client_secret": "YOUR_X_CLIENT_SECRET",
    "redirect_uri": "https://www.postfuze.com/api/v1/connect/callback",
    "scopes": ["tweet.read", "tweet.write", "users.read", "media.write", "offline.access"]
  }'

The dashboard flags any missing publish-critical scopes on a saved app, so you can fix the gap before a customer hits it. See Social networks for the full endpoint and Connecting accounts for the OAuth round-trip your customers go through next.

3. Per-platform setup

Each platform has its own developer console. The steps below get you to a client_id and client_secret, and list the scopes PostFuze requests by default — request approval for these in the platform’s App Review so publishing isn’t blocked. Leave the scopes field empty when saving your app to use exactly this set.

X (Twitter)

Console: X Developer Console

  1. Create a Project, then an App inside it.
  2. Open the app → User authentication settings → enable OAuth 2.0 as a Web App (confidential client).
  3. Open Keys and Tokens → copy the Client ID and Client Secret (shown once, save them immediately).

Scopes requested:

  • tweet.read
  • tweet.write
  • users.read
  • media.write
  • offline.access

Register the redirect URI above, then see X (Twitter) for the full per-platform reference.

LinkedIn

Console: LinkedIn Developers

  1. Create an app and link it to a Company Page.
  2. Add the "Sign In with OpenID Connect" + "Share on LinkedIn" products (and "Community Management API" for posting as a Page).
  3. Open the app → Auth tab → copy the Client ID, then reveal and copy the Primary Client Secret.

Scopes requested:

  • openid
  • profile
  • email
  • w_member_social
  • r_member_postAnalytics
  • w_member_social_feed
  • w_organization_social_feed
  • w_organization_social
  • r_organization_social
  • r_1st_connections_size

Register the redirect URI above, then see LinkedIn for the full per-platform reference.

Facebook

Console: Meta for Developers

  1. Create a Business app and add the Facebook Login product.
  2. Open App settings → Basic.
  3. Copy the App ID (client ID) and reveal the App Secret.

Scopes requested:

  • pages_manage_posts
  • pages_manage_engagement
  • pages_read_engagement
  • pages_read_user_content
  • pages_show_list

Register the redirect URI above, then see Facebook for the full per-platform reference.

Instagram

Console: Meta for Developers

  1. Create a Business app, then add the Instagram product + Facebook Login.
  2. Open App settings → Basic.
  3. Copy the App ID (client ID) and reveal the App Secret.

Scopes requested:

  • instagram_basic
  • instagram_content_publish
  • instagram_manage_comments
  • instagram_manage_insights
  • pages_show_list
  • pages_read_engagement
  • business_management

Register the redirect URI above, then see Instagram for the full per-platform reference.

Threads

Console: Meta for Developers

  1. Create an app with the "Access the Threads API" use case.
  2. Open App settings → Basic.
  3. Copy the Threads app ID and Threads app secret.

Scopes requested:

  • threads_basic
  • threads_content_publish
  • threads_manage_replies
  • threads_manage_insights

Register the redirect URI above, then see Threads for the full per-platform reference.

TikTok

Console: TikTok for Developers

  1. Manage apps → Connect an app, then add the Content Posting API.
  2. Open the app → Credentials.
  3. Copy the Client Key (client ID) and Client Secret. (Posting beyond private mode needs app review.)

Scopes requested:

  • user.info.basic
  • user.info.profile
  • user.info.stats
  • video.publish
  • video.upload
  • video.list

Register the redirect URI above, then see TikTok for the full per-platform reference.

YouTube

Console: Google Cloud Console

  1. Enable the YouTube Data API v3 and set up the OAuth consent screen.
  2. Credentials → Create credentials → OAuth client ID → Web application.
  3. Copy the Client ID and Client Secret.

Scopes requested:

  • https://www.googleapis.com/auth/youtube.upload
  • https://www.googleapis.com/auth/youtube.readonly

Register the redirect URI above, then see YouTube for the full per-platform reference.

Pinterest

Console: Pinterest Developers

  1. Create an app (business account) and request Content Publishing access.
  2. Open the app → Configure tab → API keys.
  3. Copy the App ID (client ID) and App secret key. (Keys appear once trial access is approved.)

Scopes requested:

  • pins:read
  • pins:write
  • boards:read
  • boards:write
  • user_accounts:read

Register the redirect URI above, then see Pinterest for the full per-platform reference.

Google Business

Console: Google Cloud Console

  1. Enable the Business Profile APIs and set up the OAuth consent screen.
  2. Credentials → Create credentials → OAuth client ID → Web application.
  3. Copy the Client ID and Client Secret.

Scopes requested:

  • https://www.googleapis.com/auth/business.manage
  • openid
  • email
  • profile

Register the redirect URI above, then see Google Business for the full per-platform reference.

Reddit

Console: Reddit Apps

  1. Scroll to the bottom and click "create another app…", then choose the "web app" type.
  2. Set the redirect URI to your PostFuze callback URL, then create the app.
  3. The Client ID is the string under the app name; the Client Secret is the "secret" field.

Scopes requested:

  • identity
  • submit
  • read
  • flair
  • history

Register the redirect URI above, then see Reddit for the full per-platform reference.

Bluesky is different — no app needed

Bluesky doesn’t use OAuth apps. A customer connects with their handle and an app password(generated in their Bluesky settings), so there’s nothing for you to register. It’s the fastest way to a first successful connect while you set up the heavier OAuth apps — see Bluesky.

Start with one platform

You don’t have to set up all eleven before launching. Wire up the one or two networks your customers ask for most, ship, and add the rest as you go — each app is independent.