Provider settings

Platform-specific metadata and platform_options for Social0 publish requests.

Overview

Most platforms accept content, platforms (connected account UUIDs), and optional media. When a network needs extra fields — TikTok privacy, Pinterest board, YouTube title, X disclosure flags — pass them in metadata and/or platform_options.

Both objects are merged into the post's stored metadata before publish. Prefer metadata when you control the full shape; use platform_options for a flatter, per-platform API that Social0 compiles into metadata (see Posts reference).

Base URL: https://api.social0.app/v1
Auth: Authorization: Bearer sk_live_…


Connected account UUIDs

The platforms field is always an array of connected account UUIDs, not platform name strings.

curl https://api.social0.app/v1/accounts \
  -H "Authorization: Bearer sk_live_YOUR_KEY"

Use data[].id from the response. Each ID maps to one connected profile or page (e.g. two LinkedIn entries = personal + company page).

MistakeFix
"platforms": ["linkedin"]Use UUID: "platforms": ["550e8400-e29b-41d4-a716-446655440000"]
Stale ID after reconnectRe-list accounts; IDs can change on reconnect
Wrong user's accountKeys are user-scoped — only your accounts appear

metadata vs platform_options

FieldShapeWhen to use
metadataNested object stored on the postFull control; matches dashboard composer output
platform_optionsPer-platform config compiled into metadataSimpler API; supports per-account overrides via accounts.<uuid>

Example — same TikTok privacy via either field:

{
  "metadata": {
    "contentType": "video",
    "tiktok": {
      "ACCOUNT_UUID": { "privacy_level": "PUBLIC_TO_EVERYONE" }
    }
  }
}
{
  "platform_options": {
    "tiktok": {
      "privacy_level": "PUBLIC_TO_EVERYONE"
    }
  }
}

Per-account overrides in platform_options:

{
  "platform_options": {
    "pinterest": {
      "accounts": {
        "ACCOUNT_UUID": { "boardId": "1234567890" }
      }
    }
  }
}

Per-platform guides

PlatformEnumGuide
X / Twittertwitter_xX / Twitter settings
LinkedInlinkedinLinkedIn settings
FacebookfacebookFacebook settings
InstagraminstagramInstagram settings
ThreadsthreadsThreads settings
BlueskyblueskyBluesky settings
YouTubeyoutubeYouTube settings
TikToktiktokTikTok settings
PinterestpinterestPinterest settings

Publish flow

Create + publish returns 202 with a tracking_id. Poll until terminal:

curl -X POST https://api.social0.app/v1/posts/publish \
  -H "Authorization: Bearer sk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{ "content": "Hello", "platforms": ["ACCOUNT_UUID"] }'
curl https://api.social0.app/v1/jobs/TRACKING_ID \
  -H "Authorization: Bearer sk_live_YOUR_KEY"

See Jobs reference and Publish guide.


Common pitfalls

IssueCauseFix
validation_error on platformsPlatform name instead of UUIDGET /v1/accounts → use data[].id
TikTok publish failsMissing metadata.tiktok per accountSee TikTok settings
Pinterest "No board"No board in metadata or account defaultsSet metadata.pinterest.<uuid>.boardId or connect default board
YouTube rejectedImages-only postYouTube requires video media
Thread only posts onceMissing metadata.twitterThread.partsUse structured thread parts or legacy --- split (X only)
Partial publishOne platform failed, others succeededPoll job; check per-platform errors in response
Missing mediaSkipped presign/confirm flowUpload media guide

Character limits (approximate)

PlatformLimit
twitter_x280 (higher with X Premium on connected account)
linkedin3,000
facebook63,206
bluesky3,000
youtube5,000 (description); title ~100 via metadata
pinterest500
instagram2,200
tiktok2,200
threads500 per part

Social0 truncates where the platform requires it; stay under limits to avoid cut-off captions.