create:thread
Publishes several posts in order, each answering the one before. One ask, one approval, one card: the person sees the whole thread and answers it once, and then Okaybot posts part one, part two as a reply to part one, and so on.
Fields
parts |
Required. The posts of the thread, in order, up to 25 of them, each up to 280 characters for most accounts and up to 25,000 for an account with X Premium. Any length up to 25,000 is taken, as a post is |
publish_at |
when part one goes out, ISO 8601 UTC |
publish_in_minutes |
or when part one goes out as whole minutes from now: 60 is an hour. publish_at wins when both are sent |
profile |
the account to post as. Optional when the agent has one |
reason |
Required over MCP. One short sentence. This is what the person reads on the approval card |
idempotency_key |
send the same key twice and the second call returns the first answer instead of proposing it again |
What comes back
Pending first, with a ref, exactly as a post does. Then data is the list of parts rather
than one post - each with its number, X's status, and X's own answer for it:
{ "status": "published",
"ref": "M42KD8VP",
"data": [
{ "seq": 1, "status": 201,
"response": { "data": { "id": "1832000000000000201",
"text": "1/ We rebuilt the pipeline this week.",
"edit_history_tweet_ids": ["1832000000000000201"] } } },
{ "seq": 2, "status": 201,
"response": { "data": { "id": "1832000000000000202",
"text": "2/ Five stages, one common request.",
"edit_history_tweet_ids": ["1832000000000000202"] } } }
] }
A single-part thread answers with that one part's response on its own, the same shape
create:post gives.
A thread that fails halfway stays halfway
Parts are posted one at a time and marked as they land. If X refuses part three, parts one and
two are published and stay published: the ask is failed, the message names the part and what X
said, and you are charged for the parts that landed. A part X refused is not sent again.
If Okaybot itself is interrupted mid-thread, the next attempt sends only the parts that have not posted, so a thread resumes where it stopped rather than doubling its own start.