Bluesky API and MCP
Build a Bluesky publish request using the selected account, text, and supported media.
Use bluesky as the platform value. No extra target identifier is required after selecting accountId.
Fields
additionalPosts
Optional thread posts, each with text and mediaUrls. For REST, place this in post.content.
For MCP, pass platform-specific fields alongside accountId, platform, text, and mediaUrls. For REST, platform-specific target fields belong inside post.target. Thread content belongs inside post.content.additionalPosts.
Media and formats
Publish text, up to 4 images, or one video. Blotato waits for Bluesky video processing during publication. Follow the video URL format requirements in the media reference.
Read Bluesky media requirements and upload and conversion rules. Public media URLs go directly in mediaUrls. No upload step required.
MCP example
Call blotato_create_post with the following shape. Replace lookup IDs and example media URLs with returned IDs and your media. Adjust the example's settings to the user's request.
{
"accountId": "ACCOUNT_ID_FROM_LOOKUP",
"platform": "bluesky",
"text": "A post for Bluesky.",
"mediaUrls": []
}REST example
Send this JSON to POST https://backend.blotato.com/v2/posts with your blotato-api-key header.
Verify the result
Save the returned
postSubmissionId.If processing continues, use
blotato_get_post_statusorGET /v2/posts/:postSubmissionId.Report the returned status and public URL when supplied.
For scheduling, add scheduledTime or useNextFreeSlot as an MCP argument or a REST top-level sibling of post. See Scheduling and completion rules.
Limits and troubleshooting
A video submission is not finished until publishing completes. Keep the submission ID and use the status lookup if the MCP create call returns processing status.
See Bluesky account guide, platform help, and the Publish Post reference for options and examples.
Last updated