Platform Guide

Bluesky

Bluesky is one of the cleanest fits for UniPost: short-form text, image and video support, and multi-post threading all map cleanly into the standard publish model.

Overview

Use Bluesky when you want fast text publishing, direct account setup, and thread-based conversational posting. UniPost supports both direct Bluesky credential connection and normal multi-account publishing semantics here.

Supported capabilities

CapabilitySupportedNotes
Text postsUp to 300 graphemes
Image postsUp to 4 images
Video postsExactly 1 video
ThreadsUse `thread_position`
First commentXUse threads instead
Text-only postsMedia is optional

Requirements

FieldRequiredLimitsNotes
captionOptional300 graphemesValidate catches overages before publish
media_urlsOptional1-4 images OR 1 videoDo not mix image and video
thread_positionOptional1-indexedPreferred way to create multi-post flows
first_commentRejectedn/aUse thread_position instead

Example requests

The examples below are intentionally small and copyable. They show the request body only, assuming a standard POST /v1/social-posts call with Bearer auth.

Text post

json
{
  "caption": "Shipping on Bluesky today.",
  "account_ids": ["sa_bluesky_1"]
}

Image post

json
{
  "caption": "Photos from the trip ✈️",
  "account_ids": ["sa_bluesky_1"],
  "media_urls": [
    "https://cdn.example.com/photo1.jpg",
    "https://cdn.example.com/photo2.jpg"
  ]
}

Thread

json
{
  "platform_posts": [
    { "account_id": "sa_bluesky_1", "caption": "1/ Why we changed the docs", "thread_position": 1 },
    { "account_id": "sa_bluesky_1", "caption": "2/ The new structure is easier to scan", "thread_position": 2 }
  ]
}

Common validation errors

CodeWhat it means
caption_too_longCaption exceeds 300 graphemes
first_comment_unsupportedBluesky uses threads instead of first-comment publishing
too_many_mediaMore than 4 images or more than 1 video supplied

Once you know the correct request shape for this platform, move to the API reference for the full endpoint contract, response schema, and validation payload shape.