Use case
Cross-post to multiple social platforms in a single request
Cross-posting with Socifyr means listing several connection slugs in one request. The post fans out to each platform as its own job with its own result, so a rejection from one network does not stop the others. You can override captions and options per platform when a network needs something different, such as an Instagram Reel or a TikTok privacy level.
cURLTypeScript SDKCLIMCP prompt
How it works
- 1
List every destination in connections
Mix platforms freely: ["instagram-mybrand", "tiktok-mybrand", "youtube-mychannel"]. Several accounts on the same platform work too. - 2
Set platform-specific options only where needed
platformOptions keyed by slug lets you pick Reels for Instagram and a privacy level for TikTok without splitting the call. - 3
Socifyr checks limits before anything is sent
Caption length, image count, video size and daily post limits come from one shared spec. A violation is returned with a plain-language reason rather than a raw platform error. - 4
Read results per channel
The status response lists each channel with its own outcome. Retry only the failed ones.
Working code
curl -X POST https://api.socifyr.com/api/content/text \
-H "Authorization: Bearer sk_your_key" \
-H "X-Workspace-Id: your_workspace_id" \
-H "Content-Type: application/json" \
-d '{
"connections": ["x-mybrand", "bluesky-mybrand", "mastodon-mybrand", "threads-mybrand"],
"text": "New post is live: why we flattened our pricing."
}'import { Socifyr } from '@socifyr/sdk'
const socifyr = new Socifyr({
apiKey: process.env.SOCIFYR_API_KEY!,
workspaceId: process.env.SOCIFYR_WORKSPACE_ID!,
})
import fs from 'node:fs'
// One video to Instagram Reels and TikTok, with per-account options
const upload = await socifyr.uploads.video({
connections: ['instagram-mybrand', 'tiktok-mybrand'],
medias: [fs.readFileSync('./clip.mp4')],
title: 'Behind the scenes',
platformOptions: {
'instagram-mybrand': { mediaType: 'REELS' },
'tiktok-mybrand': { privacyLevel: 'PUBLIC_TO_EVERYONE' },
},
})socifyr post "New post is live" \
--to x-mybrand,bluesky-mybrand,mastodon-mybrand,threads-mybrand --waitPost "New post is live: why we flattened our pricing." to every
connection I have for X, Bluesky, Mastodon and Threads, then show me the
result for each one.Replace sk_your_key and the workspace ID with your own from the dashboard, and use your own connection slugs.
Who this is for
Solo creators and small brands
Write once, publish everywhere, and stop reformatting the same update five times.Developer-relations and content teams
Fan a launch post out to X, LinkedIn, Bluesky, Mastodon and Dev.to from one job.Apps that offer "share to social"
Use one integration instead of a client per network.
Frequently asked questions
How many platforms can I post to in one call?
Socifyr supports 18 platforms. You can include any mix of your connected accounts in one request, up to the connected-account cap on your plan (10 on Pro, 40 on Business).
What if one platform rejects the post?
Each platform runs as a separate job. The others still publish, the post is marked partially failed, and you retry only the failed channel with its structured error message.
Do I have to use the same caption everywhere?
No. Use per-connection overrides for text and options, or let the built-in AI draft platform-tailored captions with your own provider key or the managed option.
Are platform limits enforced for me?
Yes. Caption length, media count, file size and daily post limits come from a shared spec, so a bad request is caught before it reaches the platform.
Does cross-posting count as one post toward my plan?
Plans count uploads, not channels. Pro and Business have unlimited uploads, and Free includes 30 a month.