Channels
X
How an agent posts to X through uplika: how X counts characters, polls, who can reply, the same text on two accounts, and what X's API does not offer.
Quick reference
| Name | Type | Description |
|---|---|---|
characters | text | 280 |
images | media | up to 4 per post; more than that and the first 4 go out with a warning |
carousel | media | no carousel; images sit in the post one after another |
video | media | 1 per post |
text alone | media | allowed |
posts / 24h | limit | 50 |
deletes / 24h | limit | X deletes posts this account wrote, with no documented daily cap |
status | state | soon |
These numbers come from the same file the server validates against. X counts characters with weights: Korean, Chinese and Japanese characters and emoji count 2, and every link counts 23 however long it is. uplika counts the same way before anything goes out. Photos and a video cannot go in the same post.
How do I add a poll or choose who can reply?
options.x.poll adds a poll and options.x.replySettings limits who can reply; the table below lists their values. X does not allow a poll on a post with photos or a video, so leave media out when you add one.
How does a chain go out on X?
X takes threadItems. Each piece goes out as its own X post, a reply to the piece before it, in the order you gave.
Why was the same text refused on my second X account?
X's automation rules do not allow one person to post the same text to several accounts. uplika refuses a post whose text matches one sent to another of your X accounts in the last 24 hours, with x_duplicate_across_accounts, before anything reaches X. Texts that differ only in the number of spaces or line breaks, or in letter case, count as the same. Write a different text for each account.
How do I post my first X post?
Call list_platforms and check that X is live, then publish with the text and the X account's id. Pass wait: true and report the link only when the post is out.
curl -X POST https://api.uplika.com/v1/posts \
-H "Authorization: Bearer $UPLIKA_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Which one do you open first?",
"accountIds": ["conn_..."],
"options": { "x": { "poll": { "options": ["Mail", "Calendar"], "durationMinutes": 1440 } } }
}'What options.x takes
| Name | Type | Description |
|---|---|---|
poll | object | A poll on the post: 2 to 4 choices of up to 25 characters each, open for 5 to 10,080 minutes (7 days). X does not allow a poll and photos or a video on the same post, so leave out media when you add a poll. |
replySettings | following | mentionedUsers | subscribers | verified | Who can reply. following: accounts this account follows. mentionedUsers: only accounts mentioned in the text. subscribers: this account's subscribers. verified: verified accounts. Leave it out and anyone can reply. |
content | string | Text for this channel only. When set it replaces the shared content for this channel, and the length and media checks use it. Leave it out to use the shared content. |
Generated from the same schema the server validates with. Like every channel it also takes content, a different text for this channel alone.
What is not available?
Editing a post after it goes out: X lets only Premium subscribers edit, so delete the post and publish again. Quote posts and likes. Reading posts back from X: a post's link comes back when it is published, and get_insights returns its numbers. Reading or hiding replies. A reply goes through only when the post's author mentioned or quoted the connected account; X refuses other replies from apps.
Frequently asked
Why does a link count as 23 characters?
X shortens every link to a t.co address and counts each one as 23 characters, however long the original is. uplika counts the same way, so a post that fits here fits on X.
Can I quote a post or like one through uplika?
No. uplika does not offer quote posts or likes on X and refuses both.
Does disconnecting remove uplika from X?
Disconnecting deletes the tokens uplika held and asks X to revoke them, unless the same X account is still connected elsewhere in uplika. Removing uplika under Connected apps in your X settings disconnects it on X's side too.