Skip to content

create_x_thread

posts:write

Draft an X thread for the workspace (get_platform_algorithm_hints with platform x says what X's feed rewards). It lands in the Review queue as pending approval, as one post whose follow-ups are published as replies to it, in order, when it goes out. Give the posts one by one (each at most 280 characters as X counts them: links 23, emoji 2), or give the whole text and it is split for you at paragraph and sentence breaks.

Set numbered to add 1/n to each post. Media attaches to the first post, and quoteTweetUrl (a link to a post on X) makes the first post quote it. communityUrl (a link to an X Community the user belongs to) posts the thread in that community. replySettings (everyone, following, mentionedUsers or verified) is one value on the X post and is sent on every tweet in the thread; omit it or pass everyone so anyone can reply. poll turns the first post into a poll instead (options: 2-4 choices up to 25 characters each; durationMinutes: 5-10080, i.e. 5 minutes to 7 days); a poll can't be combined with media or quoteTweetUrl.

The response's posts[0].platformPayload.thread holds the follow-ups; show the user the whole thread before approving it with approve_post_group, which approves and schedules every post in it. Use it only for X; other platforms take one post, via create_draft_post.

Input

  • titlestringrequired

    Short internal title for the thread.

    min length 1 · max length 140

  • topicstring

    What the thread is about.

    max length 500

  • objectivestring

    What the thread should achieve.

    max length 500

  • postsarray<string>

    The thread's posts in order, each at most 280 characters as X counts them (links count as 23, emoji as 2). Give either posts or text.

    at least 1 items · at most 25 items

  • textstring

    The whole thread as one text. It is split into posts that fit, at paragraph breaks first, then sentences. Give either posts or text.

    min length 1 · max length 10000

  • numberedboolean

    Add "1/n" to the end of each post. Defaults to false.

  • socialAccountIdstring (uuid)

    Connected X account to post from. Defaults to the workspace's connected X account.

  • mediaobject

    1-4 images or a video for the first post, e.g. the postMedia from create_branded_image or the asset from import_media_from_url.

    Option 1
    • kind"image"required
    • assetIdstring (uuid)required
    • urlstring (uri)required
    • contentTypestringrequired
    • sizeBytesintegerrequired
    • widthinteger
    • heightinteger
    • altTextstring

      max length 1000

    Option 2
    • kind"images"required
    • imagesarray<object>required

      at least 2 items · at most 20 items

      Item fields
      • assetIdstring (uuid)required
      • urlstring (uri)required
      • contentTypestringrequired
      • sizeBytesintegerrequired
      • widthinteger
      • heightinteger
      • altTextstring

        max length 1000

    Option 3
    • kind"document"required
    • assetIdstring (uuid)required
    • urlstring (uri)required
    • contentType"application/pdf"required
    • sizeBytesintegerrequired
    • titlestringrequired

      min length 1 · max length 200

    • pageCountinteger
    • previewImageUrlsarray<string (uri)>

      at most 20 items

    Option 4
    • kind"video"required
    • assetIdstring (uuid)required
    • urlstring (uri)required
    • contentTypestringrequired
    • sizeBytesintegerrequired
    • durationSecondsnumberrequired
    • widthintegerrequired
    • heightintegerrequired
  • quoteTweetUrlstring

    A link to a post on X (https://x.com/name/status/123) for the thread's first post to quote.

    min length 1 · max length 300

  • communityUrlstring

    A link to an X Community the user is a member of (https://x.com/i/communities/123) to post the thread in.

    min length 1 · max length 300

  • replySettingsstring

    For platform x only: who can reply to this post. One stored value; on a thread it is sent on every tweet. everyone (X's default; anyone), following (accounts you follow), mentionedUsers, or verified. Leave off other platforms.

    one of everyone, following, mentionedUsers, verified

  • pollobject

    Turns the thread's first post into a poll. Can't be combined with media or quoteTweetUrl.

    Fields
    • optionsarray<string>required

      2-4 choices voters pick between, each up to 25 characters.

      at least 2 items · at most 4 items

    • durationMinutesintegerrequired

      How long the poll stays open to votes, in minutes (5-10080, i.e. 5 minutes to 7 days). 1440 is one day.

      min 5 · max 10080

Permission

Needs the posts:write scope: create drafts. It changes your workspace, so clients may ask you to confirm each call.

Example call

Your assistant sends this for you. It is shown so you can see the shape of a call, with placeholder values for the required fields.

tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_x_thread",
"arguments": {
"title": "string"
}
}
}

Same action over the REST API

The tool runs POST /v1/orgs/{orgId}/marketing/threads as the signed-in user, with the same validation, approval rules and limits. See it in the Threads API reference.