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.
| Connection | Handle and app password |
|---|---|
| Channel | Not needed |
| Post types | post |
| Text length | 300 characters |
| Comment length | 300 characters |
| Media per post | Up to 4 |
Media rules
| Kind | Formats | Max size | Duration | Other |
|---|---|---|---|---|
| Image | jpeg, png, webp, gif | 1 MB | n/a | None |
| Video | mp4, mpeg, webm, mov | 100 MB | Up to 3 min | None |
What Siar can do on Bluesky
| Comments and replies | Yes |
|---|---|
| First comment | Yes |
| Edit a published post | No |
| Delete a published post | Yes |
| Edit a comment | No |
| Delete a comment | Yes |
| Import comments | Yes |
| Post analytics | Yes |
| Account analytics | Yes |
| Post history import | Yes |
| Direct messages | No |
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
-
textstring nullable -
uploadIdsstring[] nullable -
tagsstring[] nullable max 8 items -
labelsstring[] nullableOne of:!no-unauthenticatedpornsexualnuditygraphic-media -
quoteUristring max length 512pattern ^at:\/\/\S+$ -
externalUrlstring nullable uri -
externalTitlestring nullable -
externalDescriptionstring nullable -
thumbnailstring nullable urimax length 2,048 -
videoAltstring nullable max length 10,000
Daily caps
| Per connected account, per UTC day | Free | Pro | Business |
|---|---|---|---|
| Posts | 10 | 50 | 100 |
| Comments | 3 | 50 | 100 |
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:
atprototransition:generic
Bluesky-specific operations
These exist for Bluesky only and live under /misc/bluesky.
| Operation | Endpoint |
|---|---|
| Delete a Bluesky post | DELETE /misc/bluesky/post |
| Delete a Bluesky comment | DELETE /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.