Skip to content

Most platforms expose multiple ways to publish the same media. A single image can be a feed post, a story, or a Pinterest pin. A vertical video can be a reel, a story, or a regular feed video.

Socifyr abstracts these into seven content formats:

FormatWhat it isTypical platforms
text_postPlain textX, LinkedIn, Threads, Bluesky, Facebook, Reddit
photo_singleOne image, in-feedInstagram, LinkedIn, X, Facebook, Threads, Bluesky, Pinterest, Reddit
photo_carousel2–10 images, swipeableInstagram, LinkedIn, Facebook, Threads, Bluesky
short_videoVertical short-form (≤90s)TikTok, Instagram Reels, YouTube Shorts
feed_videoRegular video in-feedInstagram, LinkedIn, Facebook, X, YouTube
story24-hour ephemeral storyInstagram, Facebook
document_postPDF / slide attachmentLinkedIn

Auto-detection

If you don't specify a format, Socifyr picks one based on the upload type:

You upload…Default format
Text onlytext_post
1 imagephoto_single
2+ imagesphoto_carousel
Videofeed_video
PDF / slidesdocument_post

Overriding the format

When you want a video to publish as a reel instead of a regular feed video, set contentFormat explicitly:

typescript
await socifyr.uploads.video({
  connections: ['instagram-mybrand', 'tiktok-me'],
  medias: [videoBuffer],
  text: 'New product launch',
  contentFormat: 'short_video',
})
bash
socifyr post "New product launch" \
  --media demo.mp4 \
  --to instagram-mybrand,tiktok-me \
  --format short_video

Platform fallbacks

If a format isn't supported on a platform (e.g. story to LinkedIn), Socifyr falls back to that platform's closest equivalent — usually photo_single or feed_video. The fan-out result tells you exactly what was published where.

Per-platform overrides

For finer control — e.g. make Instagram a Reel but keep LinkedIn a feed video — use platformOptions:

typescript
await socifyr.uploads.video({
  connections: ['instagram-mybrand', 'linkedin-myhandle'],
  medias: [videoBuffer],
  platformOptions: {
    'instagram-mybrand': { mediaType: 'REELS' },
    'linkedin-myhandle': { visibility: 'PUBLIC' },
  },
})

Keys can be slugs (most precise), ObjectIds, or platform names (instagram applies to all Instagram connections).