Skip to content

The simplest pattern in Socifyr — pass multiple connection slugs in one request and the content fans out automatically.

Same caption everywhere

typescript
await 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.',
})

Same image, different captions per platform

Use platformOptions to override the text per-connection:

typescript
await socifyr.uploads.photos({
  connections: ['instagram-mybrand', 'linkedin-myhandle', 'x-myhandle'],
  medias: [readFileSync('banner.jpg')],
  text: 'Default caption used for any platform without an override',
  platformOptions: {
    'instagram-mybrand': {
      text: '🎨 Long Instagram caption with emojis and hashtags...\n\n#design #branding',
    },
    'x-myhandle': {
      text: 'Short tweet — link in bio',
    },
  },
})

Different content formats per platform

Make Instagram a Reel, LinkedIn a feed video:

typescript
await socifyr.uploads.video({
  connections: ['instagram-mybrand', 'linkedin-myhandle'],
  medias: [readFileSync('demo.mp4')],
  text: 'New product demo',
  platformOptions: {
    'instagram-mybrand': { mediaType: 'REELS' },
  },
})

Posting to all of a platform's accounts

If you've connected three Instagram accounts (instagram-brand-a, instagram-brand-b, instagram-brand-c), list each slug. Socifyr doesn't currently support "post to all Instagram connections" via a wildcard.

typescript
const allInstagram = (await socifyr.workspaces.listConnections(workspaceId))
  .filter(c => c.platform === 'instagram')
  .map(c => c.slug)

await socifyr.uploads.text({
  connections: allInstagram,
  text: 'Announcement to every brand account',
})

Handling partial failure

typescript
const upload = await socifyr.uploads.text({ connections, text })
const result = await socifyr.uploads.waitForCompletion(upload.id)

const failed = result.channels.filter(c => c.result?.status === 'failed')
if (failed.length > 0) {
  console.warn(`Failed on: ${failed.map(c => c.platform).join(', ')}`)
  // Retry just the failures
  await socifyr.uploads.retry(upload.id)
}