Not a direct copy

Cross-posting X to TikTok: what actually breaks

Not directly. TikTok will not accept a text-only post, so a straight copy is impossible — the post has to be rebuilt for TikTok, not forwarded to it.

Side by side

XTikTok
Characters2802,200
Mediaoptionala video (required)
Hashtags1-2 hashtags, zero is finemax 5 hashtags, inside the caption (comments are invisible to the algorithm)
Links in bodysuppress reachfine
Needs platform approvalyesyes

What changes, one by one

TikTok will not accept a text-only post

X posts are frequently text-only. TikTok requires a video on every post, so there is no direct equivalent — you have to attach media before this cross-post is even possible.

You have 1,920 characters you are not using

X caps at 280 characters, TikTok allows 2,200. Posting the short version verbatim wastes the room TikTok gives you to actually explain the thing.

The hashtag rules are not the same

X: 1-2 hashtags, zero is fine. TikTok: max 5 hashtags, inside the caption (comments are invisible to the algorithm). Carrying the tag block across is the single most obvious sign of an automated cross-post.

TikTok lets you put the link back in

X penalises links in the body, so posts written for it park the URL elsewhere. On TikTok links in the body are fine — putting it back is free reach.

TikTok needs a title you never wrote

TikTok requires a separate title (max 150 characters). X has no such field, so there is nothing to copy across — it has to be written.

Why copy-paste cross-posting underperforms

X is one hook and nothing else — opinionated, conversational, over in a breath. TikTok is hook-first, not SEO-first: the first 80-100 characters decide everything. Those are different jobs, so the same words cannot do both well — and every algorithm here demotes text that obviously was not written for it. The fix is not to skip cross-posting; it is to send a native version to each network.

Publish to both in one call

curl -X POST https://postwire.io/api/post \
  -H "Authorization: Bearer $POSTWIRE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "platforms": ["x", "tiktok"],
    "text": "Your post",
    "per_platform": {
      "x": { "text": "The X version" },
      "tiktok": { "text": "The TikTok version" }
    }
  }'

PostWire's /api/generate writes those per-platform versions for you from a single prompt, respecting every limit in the table above. From an AI agent it is one MCP tool call.

Get an API key free →

Questions people actually ask

Can I cross-post from X to TikTok?
Not directly. TikTok will not accept a text-only post, so a straight copy is impossible — the post has to be rebuilt for TikTok, not forwarded to it.
What is the character limit difference between X and TikTok?
X allows 280 characters and TikTok allows 2,200.
How do I post to X and TikTok at the same time?
With PostWire, one API call publishes to both: POST /api/post with platforms set to ["x","tiktok"]. Or one MCP tool call from an AI agent.

Other pairs: TikTok to X · all combinations · which APIs need approval