Posts

Publish to Bluesky

Publish a Bluesky post or thread, with up to four images or one video.

POSThttps://app.tryadeli.com/api/v1/posts
AuthorizationBearer <API key>How keys work

A Bluesky post is text with up to four images or one video. Send thread to publish several posts, each a reply to the one before. Bluesky publishes synchronously, so the response is the finished post. Bluesky's API is free: nothing is billed per post.

Links, @mentions, and #hashtags in text become links on Bluesky. A mention of a handle that doesn't exist stays plain text.

Body

platform"bluesky"Required
accountIduuidRequired
A connected Bluesky account in your organization.
profileIduuid
Optional, because accountId names its profile. If you pass both, they must agree.
textstringRequired
Up to 300 characters, counted as a reader sees them (an emoji is one), and 3,000 bytes. Links count at full length. Send "" for an images-only post.
imagesobject[]
Up to 4, each { content_type, base64, altText } with image/jpeg, image/png, or image/webp. Images over 2 MB are resized to fit, and the response lists them in resizedImages. altText is optional but recommended.
videoobject
One MP4, never with images: { content_type: "video/mp4", base64, altText } or { url, altText } for a public HTTPS URL, up to 100 MB. Bluesky processes it before the post is created, which can take a minute. Bluesky limits videos per account per day and needs a verified email first; past that, this returns 422 upload_limit_exceeded with Bluesky's reason.
langsstring[]
Up to 3 language tags, such as en or pt-BR, which Bluesky uses for feeds and translation.
threadobject[]
Up to 24 further posts, each { text, images, video } with the same rules, published in order as replies.

201 when every post is live. providerId is the post's AT URI.

A thread that fails part-way returns 207 with status: "partial", exactly as for X.