NetworksX (Twitter)

X (Twitter) APIthrough Siar.

Posts, threads, polls, quotes and replies on X. Because X bills API usage per call, Siar passes those charges through at cost from a prepaid credit balance.

At a glance

Account needed: Any X account. X charges for API usage, so X actions draw from a prepaid credit balance.

ConnectionOAuth 2.0 in the browser
ChannelNot needed
Post typespost, thread
Text length280 characters
Comment length280 characters
Media per postUp to 4

Media rules

KindFormatsMax sizeDurationOther
Imagejpeg, png, webp, gif15 MBn/aNone
Videomp4, mov8 GB0.5 s to 20 minNone

What Siar can do on X (Twitter)

Comments and repliesYes
First commentYes
Edit a published postNo
Delete a published postYes
Edit a commentNo
Delete a commentYes
Import commentsYes
Post analyticsYes
Account analyticsYes
Post history importYes
Direct messagesNo

Siar can create comments and replies up to 280 characters, and import the comments people leave on your posts.

Publish a post

Put X (Twitter)'s payload under data.TWITTER and list TWITTER in socialAccountTypes. Add other networks to the same request to post to all of them at once.

curl -X POST "https://api.siaran.my/api/v1/post" \
  -H "x-api-key: $SIAR_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "teamId": "TEAM_ID",
    "title": "X (Twitter) post",
    "postDate": "2026-11-02T09:00:00.000Z",
    "status": "SCHEDULED",
    "socialAccountTypes": [
      "TWITTER"
    ],
    "data": {
      "TWITTER": {
        "text": "Hello from Siar",
        "uploadIds": [
          "UPLOAD_ID"
        ],
        "mediaItems": [
          {
            "uploadId": "UPLOAD_ID"
          }
        ]
      }
    }
  }'

X (Twitter) fields

  • text string nullable
  • uploadIds string[] nullable
  • mediaItems object[] nullable
    2 fields
    • uploadId string required
    • altText string nullable max length 1,000
  • replySettings string nullable
    One of: EVERYONE FOLLOWING MENTIONED_USERS SUBSCRIBERS VERIFIED
  • poll object nullable
    2 fields
    • options string[] required min 2 itemsmax 4 itemseach: min length 1each: max length 25
    • durationMinutes integer required ≥ 5≤ 10080
  • quoteTweetId string nullable
  • replyToTweetId string nullable
  • subscribersOnly boolean nullable
  • thread object[] nullable max 25 items
    2 fields
    • text string nullable max length 25,000
    • uploadIds string[] nullable
  • tweetStorm boolean nullable
  • tweetStormNumbering boolean nullable
  • isAiGenerated boolean nullable default false

Daily caps

Per connected account, per UTC dayFreeProBusiness
Posts51515
Comments31515

See pricing for monthly quotas. Enterprise uses the Business caps unless agreed otherwise.

Connecting a X (Twitter) account

Siar sends the user to the network's consent page and stores the tokens it gets back, refreshing them before they expire. Use POST /social-account/connect from your own UI, or send your customer a hosted link from POST /social-account/create-portal-link; see connecting accounts.

Permissions requested

Siar requests only these scopes at connect time:

  • tweet.read
  • tweet.write
  • users.read
  • offline.access
  • media.write
  • like.read
  • like.write
  • tweet.moderate.write

X pricing

X bills each API call, so these actions are paid from a prepaid credit balance at X's price with no markup. Everything not listed is free.

ActionBilledUSD
Publish a post or replyper request$0.015
Publish a post that contains a linkper request$0.200
Read a post (analytics, comment import)per post returned$0.005
Look up another accountper account returned$0.010
Edit or manage existing contentper request$0.005
Delete a post or replyper request$0.010
Repost, like or followper request$0.015

X (Twitter)-specific operations

These exist for X (Twitter) only and live under /misc/twitter.

OperationEndpoint
Delete a Twitter/X tweetDELETE /misc/twitter/tweet
Delete a Twitter/X commentDELETE /misc/twitter/comment
Repost a Twitter/X postPOST /misc/twitter/retweet
Undo a Twitter/X repostDELETE /misc/twitter/retweet

When X (Twitter) says no

Siar relays X (Twitter)'s error code and message verbatim on the post, next to a status you can act on. The X (Twitter) error reference covers 13 common cases with what each one means and the fix. Open the X (Twitter) error reference.

X (Twitter) API questions

What can I post to X (Twitter) through the API?

post, thread. Posts, threads, polls, quotes and replies on X. Because X bills API usage per call, Siar passes those charges through at cost from a prepaid credit balance.

How many X (Twitter) posts can I publish per day?

Per connected account and UTC day: 5 on Free, 15 on Pro, 15 on Business. The caps keep the account within what X (Twitter) tolerates.

Can I schedule X (Twitter) posts?

Yes. Set postDate in the future and a status of SCHEDULED. Siar publishes at that time and sends a post.published webhook when the post reaches a final state.

How do I connect a X (Twitter) account?

Any X account. X charges for API usage, so X actions draw from a prepaid credit balance. Siar sends the user to the network's consent page and stores the tokens it gets back, refreshing them before they expire.

What do I do when X (Twitter) rejects a post?

The post carries X (Twitter)'s own code and message. The X (Twitter) error reference explains 13 common rejections and how to fix them.

Your first post isone request away.

The Free plan includes 20 posts and 200 uploads a month across 3 teams. No card needed.