| X | ||
|---|---|---|
| Characters | 280 | 10,000 |
| Media | optional | optional |
| Hashtags | 1-2 hashtags, zero is fine | none — Reddit has no hashtags |
| Links in body | suppress reach | fine |
| Needs platform approval | yes | yes |
X caps at 280 characters, Reddit allows 10,000. Posting the short version verbatim wastes the room Reddit gives you to actually explain the thing.
X: 1-2 hashtags, zero is fine. Reddit: none — Reddit has no hashtags. Carrying the tag block across is the single most obvious sign of an automated cross-post.
X penalises links in the body, so posts written for it park the URL elsewhere. On Reddit links in the body are fine — putting it back is free reach.
Reddit requires a separate title (max 300 characters). X has no such field, so there is nothing to copy across — it has to be written.
X is one hook and nothing else — opinionated, conversational, over in a breath. Reddit is value-first; it must read like a community member, not an ad. 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.
curl -X POST https://postwire.io/api/post \
-H "Authorization: Bearer $POSTWIRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platforms": ["x", "reddit"],
"text": "Your post",
"per_platform": {
"x": { "text": "The X version" },
"reddit": { "text": "The Reddit 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.
Other pairs: Reddit to X · all combinations · which APIs need approval