create_thread
Publish 2 to 25 posts as a threaded conversation, with each post automatically linked as a reply to the prior one. Use for multi-post content instead of individual posts.
Instructions
Create a thread of 2–25 posts in a single operation, automatically chaining each post as a reply to the previous one so readers see them as a continuous conversation. Use this instead of repeated create_post calls when content spans multiple posts; use create_post for a single standalone post or reply_to_post to append to an existing thread. Optional replyControls gate who can reply (a threadgate record on the ROOT post, written after the whole thread is published). Requires authentication (app password). If publishing fails mid-thread, already-published posts are returned with a failedAtPosition indicator so you can delete or resume them. Subject to per-tool rate limiting.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| posts | Yes | Ordered array of posts to publish as a thread (2–25 items). Each post is automatically chained as a reply to the previous one. | |
| langs | No | Default language tags (BCP-47) applied to every post in the thread. Individual posts can override this with their own langs field. | |
| replyControls | No | Who can reply to the thread. Applies to the ROOT post only: a single app.bsky.feed.threadgate record is written with the root post’s rkey, AFTER every post in the thread is published (the in-thread replies are your own posts, created before the gate exists, so they are unaffected). Enabled options combine, up to 5 rules; provide the object with NO rules enabled to let nobody reply; omit it to leave replies open. If the gate write fails after the posts succeeded, the call still succeeds with gateApplied:false and a warning instead of failing. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| success | Yes | True when all posts were published; false when only some posts were created before a failure. | |
| message | Yes | Human-readable summary of the outcome, including partial-failure details when applicable. | |
| thread | Yes | Ordered list of every post that was successfully published. | |
| rootPost | Yes | URI and CID of the root (first) post, which anchors the entire thread. | |
| totalPosts | Yes | Number of posts actually published (may be less than requested if an error occurred mid-thread). | |
| failedAtPosition | No | 1-based position of the post that failed; present only when success is false. | |
| gateApplied | No | Present only when replyControls were provided. True when the threadgate record was written on the root post (it is written after the whole thread is published, and is still attempted on the live root if the thread partially fails). False when the posts were published but the gate write failed — replies are then OPEN; see `warning`. | |
| warning | No | Present only when gateApplied is false: explains that the threadgate write failed and how to retry. The published posts themselves are unaffected. |