First comments & threads
PostFuze has no dedicated “first comment” field. Instead, first comments and threads are expressed through the same containers[] array you use for the main post. The first container is the root post; every container after it is published as a native reply to the root once it lands. This single mechanism covers both the “link in the first comment” pattern and full multi-post threads.
How containers map to roles
When you create a post, PostFuze assigns each container a role based on its position. You never set the role yourself — it is derived from order.
| Position | Role | What it becomes |
|---|---|---|
0 | main | The root post. |
1 | first_comment | Published as the first reply on the root post, right after it goes live. |
2+ | thread | Chained as further replies, each one replying to the previous container, in order. |
Each container is a { content, media[] } object, so comments and thread posts support media exactly like the root — you can attach images to a reply just as you would to the main post. A post may have up to 10 containers.
A first comment
The classic use case: keep external links out of the main post (where they can dampen reach) and drop them in the first comment instead. Provide two containers — the second one becomes the first comment.
curl https://api.postfuze.com/api/v1/posts \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{
"accounts": ["acct_linkedin_org", "acct_ig_brand"],
"containers": [
{ "content": "We just shipped the unified publishing API. Three years of platform quirks, gone. 🧵" },
{ "content": "Full write-up and docs here → https://postfuze.com/blog/launch" }
]
}'The response echoes both containers with their derived roles. The first_comment container publishes only after the main target lands, using the returned platform_post_id as the reply parent.
{
"id": "post_a91c…",
"status": "queued",
"containers": [
{ "id": "ctr_0", "position": 0, "role": "main", "content": "We just shipped the unified publishing API. Three years of platform quirks, gone. 🧵" },
{ "id": "ctr_1", "position": 1, "role": "first_comment", "content": "Full write-up and docs here → https://postfuze.com/blog/launch" }
],
"targets": [
{ "id": "tgt_li", "social_account_id": "acct_linkedin_org", "platform": "linkedin", "status": "queued" },
{ "id": "tgt_ig", "social_account_id": "acct_ig_brand", "platform": "instagram", "status": "queued" }
]
}A thread
Add a third or more container and those become thread posts, each replying to the previous one. This is how you publish an X thread or a Threads chain from a single request — including media on individual thread posts.
curl https://api.postfuze.com/api/v1/posts \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{
"accounts": ["acct_x_main"],
"containers": [
{ "content": "A thread on how PostFuze publishes a 4-tweet thread from one API call 🧵 (1/4)" },
{ "content": "Container 0 is the root. We publish it, capture the platform_post_id, and reply to it. (2/4)" },
{ "content": "Container 1 replies to the root, container 2 replies to container 1, and so on. (3/4)", "media": [{ "id": "media_diagram" }] },
{ "content": "Every container can carry its own text and media. Up to 10 per post. (4/4)" }
]
}'{
"id": "post_b73f…",
"status": "queued",
"containers": [
{ "id": "ctr_0", "position": 0, "role": "main", "content": "A thread on how PostFuze publishes a 4-tweet thread from one API call 🧵 (1/4)" },
{ "id": "ctr_1", "position": 1, "role": "first_comment", "content": "Container 0 is the root. We publish it, capture the platform_post_id, and reply to it. (2/4)" },
{ "id": "ctr_2", "position": 2, "role": "thread", "content": "Container 1 replies to the root, container 2 replies to container 1, and so on. (3/4)" },
{ "id": "ctr_3", "position": 3, "role": "thread", "content": "Every container can carry its own text and media. Up to 10 per post. (4/4)" }
],
"targets": [
{ "id": "tgt_x", "social_account_id": "acct_x_main", "platform": "x", "status": "queued" }
]
}Note that position 1 is always labelled first_comment even inside a thread — it is the first reply to the root. Positions 2+ are thread. The chaining behaviour is identical either way.
Per-platform support
First comments and threads run per-target, so each account uses its own platform's native reply mechanism. Support depends on whether the platform exposes a comments/replies API.
| Platform | First comment | Thread | Notes |
|---|---|---|---|
| X (Twitter) | Yes | Yes | Replies chain into a native thread. |
| Yes | No | Posted as a comment on the share. | |
| Yes | No | Requires the manage_comments permission on the connected business account. | |
| Yes | No | Comment on the Page post. | |
| Threads | Yes | Yes | Reply-threads are native to the platform. |
| TikTok | No | No | No publish-time comment API. |
| YouTube | No | No | Not supported for uploads. |
| No | No | No comments API. | |
| Bluesky | Yes | Yes | Replies chain as a thread. |
| Google Business | No | No | No comments API. |
| Yes | No | Posts a top-level comment on the submission; threads are not supported. |
When a target is on a platform that does not support extra containers, the root post still publishes normally — the unsupported containers are simply skipped for that account. Because targets are independent, the same post can publish a full thread on X while posting only the root on Pinterest.
Posting a reply after the fact
Containers cover replies you know about at publish time. To reply to an already-published post later, use the replies endpoint — see Replies.