NetworksBluesky

Bluesky APIthrough Siar.

Posts on Bluesky with images, video, link cards, quotes, tags and self-labels.

At a glance

Account needed: A Bluesky account.

ConnectionHandle and app password
ChannelNot needed
Post typespost
Text length300 characters
Comment length300 characters
Media per postUp to 4

Media rules

KindFormatsMax sizeDurationOther
Imagejpeg, png, webp, gif1 MBn/aNone
Videomp4, mpeg, webm, mov100 MBUp to 3 minNone

What Siar can do on Bluesky

Comments and repliesYes
First commentYes
Edit a published postNo
Delete a published postYes
Edit a commentNo
Delete a commentYes
Import commentsYes
Post analyticsYes
Account analyticsYes
Post history importYes
Direct messagesNo

Siar can create comments and replies up to 300 characters, and import the comments people leave on your posts.

Publish a post

Put Bluesky's payload under data.BLUESKY and list BLUESKY in socialAccountTypes. Add other networks to the same request to post to all of them at once.

curl -X POST "https://api.siaran.my/api/v1/post" \
  -H "x-api-key: $SIAR_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "teamId": "TEAM_ID",
    "title": "Bluesky post",
    "postDate": "2026-11-02T09:00:00.000Z",
    "status": "SCHEDULED",
    "socialAccountTypes": [
      "BLUESKY"
    ],
    "data": {
      "BLUESKY": {
        "text": "Hello from Siar",
        "uploadIds": [
          "UPLOAD_ID"
        ],
        "tags": [
          "string"
        ]
      }
    }
  }'

Bluesky fields

  • text string nullable
  • uploadIds string[] nullable
  • tags string[] nullable max 8 items
  • labels string[] nullable
    One of: !no-unauthenticated porn sexual nudity graphic-media
  • quoteUri string max length 512pattern ^at:\/\/\S+$
  • externalUrl string nullable uri
  • externalTitle string nullable
  • externalDescription string nullable
  • thumbnail string nullable urimax length 2,048
  • videoAlt string nullable max length 10,000

Daily caps

Per connected account, per UTC dayFreeProBusiness
Posts1050100
Comments350100

See pricing for monthly quotas. Enterprise uses the Business caps unless agreed otherwise.

Connecting a Bluesky account

The user enters their handle and an app password; Siar stores it encrypted. Nothing about their main password is ever requested. Use POST /social-account/connect from your own UI, or send your customer a hosted link from POST /social-account/create-portal-link; see connecting accounts.

Permissions requested

Siar requests only these scopes at connect time:

  • atproto
  • transition:generic

Bluesky-specific operations

These exist for Bluesky only and live under /misc/bluesky.

OperationEndpoint
Delete a Bluesky postDELETE /misc/bluesky/post
Delete a Bluesky commentDELETE /misc/bluesky/comment

When Bluesky says no

Siar relays Bluesky's error code and message verbatim on the post, next to a status you can act on. The Bluesky error reference covers 10 common cases with what each one means and the fix. Open the Bluesky error reference.

Bluesky API questions

What can I post to Bluesky through the API?

post. Posts on Bluesky with images, video, link cards, quotes, tags and self-labels.

How many Bluesky posts can I publish per day?

Per connected account and UTC day: 10 on Free, 50 on Pro, 100 on Business. The caps keep the account within what Bluesky tolerates.

Can I schedule Bluesky posts?

Yes. Set postDate in the future and a status of SCHEDULED. Siar publishes at that time and sends a post.published webhook when the post reaches a final state.

How do I connect a Bluesky account?

A Bluesky account. The user enters their handle and an app password; Siar stores it encrypted. Nothing about their main password is ever requested.

What do I do when Bluesky rejects a post?

The post carries Bluesky's own code and message. The Bluesky error reference explains 10 common rejections and how to fix them.

Your first post isone request away.

The Free plan includes 20 posts and 200 uploads a month across 3 teams. No card needed.