How to cross-post to multiple platforms
Pass several connection slugs in one request and Socifyr fans the post out, one publish job per account. Each account succeeds or fails on its own, so one platform's outage does not block the others.
If you have not posted yet, start with Publish a text post.
How do I post the same caption everywhere?
socifyr post "Hot take: monorepos are great if you have one tooling team." \
--to linkedin-myhandle,x-myhandle,threads-myhandle,bluesky-myhandle-bsky-social --waitawait socifyr.uploads.text({
connections: ['linkedin-myhandle', 'x-myhandle', 'threads-myhandle', 'bluesky-myhandle-bsky-social'],
text: 'Hot take: monorepos are great if you have one tooling team.',
})client.uploads.text(
connections=["linkedin-myhandle", "x-myhandle", "threads-myhandle"],
text="Hot take: monorepos are great if you have one tooling team.",
)curl -X POST https://api.socifyr.com/api/content/text \
-H "Authorization: Bearer $SOCIFYR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"connections":["linkedin-myhandle","x-myhandle"],"text":"Hot take: monorepos are great if you have one tooling team."}'{ "tool": "post_text", "arguments": { "caption": "Hot take: monorepos are great if you have one tooling team.", "connections": ["linkedin-myhandle", "x-myhandle", "threads-myhandle"] } }The shortest caption limit among your selected platforms is the one to write for. See platform constraints.
How do I use a different caption per platform?
platformOptions is keyed by connection slug. The text there overrides the post's text for that account only. The values are validated by each platform's adapter when it publishes.
await socifyr.uploads.photos({
connections: ['instagram-mybrand', 'linkedin-myhandle', 'x-myhandle'],
medias: ['6a04f715d3d7d93575e65d13'],
text: 'Default caption for any account without an override',
platformOptions: {
'instagram-mybrand': { text: 'Longer Instagram caption with hashtags\n\n#design #branding' },
'x-myhandle': { text: 'Short version. Link in bio.' },
},
})The same object works as platformOptions in REST JSON bodies. The CLI, Python SDK and MCP post tools have no per-platform override on create; edit the post with update_post or REST, or send separate posts.
How do I post to every account on one platform?
There is no wildcard. List the connections and filter by platform:
const all = await socifyr.workspaces.listConnections(workspaceId)
const instagram = all.filter((c) => c.platform === 'instagram').map((c) => c.slug)
await socifyr.uploads.text({ connections: instagram, text: 'Announcement for every brand account' })How do I handle a partial failure?
const upload = await socifyr.uploads.text({ connections, text })
const result = await socifyr.uploads.waitForCompletion(upload.id!)
if (result.status === 'partial_failure') {
const failed = result.channels.filter((c) => c.result?.status === 'failed')
console.warn(failed.map((c) => `${c.platform}: ${c.result?.error}`))
await socifyr.uploads.retry(upload.id!) // only failed channels are re-queued
}Full walk-through: Check status and retry failures.
FAQ
Can some accounts get a Reel and others a feed video?
Set contentFormat for the post and override per account in platformOptions. Not every platform supports every format. See Content formats.
Does cross-posting count as one post against my plan?
The upload counter increases once per request, not once per account. X posts are counted per X account. See limits.