LinkedIn organic carousel via API: no, build a video from stills

LinkedIn's Posts API lists carousels as sponsored-only. For an organic post, use MultiImage or turn stills into one MP4 with a Sume Timeline render.

5 min readSume
All posts

No. LinkedIn's Posts API content-type table marks Carousels as No for organic posts and Yes for sponsored posts, so you cannot publish an organic carousel through the API. Two organic routes remain: a MultiImage post, or a video post whose slides are stills held on screen. Sume can build the second one: a Timeline 1.0 render accepts stills as video[] slots and returns one MP4.

Posts API content types, organic vs sponsored (read 2026-10-13)
Content typeOrganicSponsored
Text onlyYesYes
ImagesYesYes
VideosYesYes
DocumentsYesYes
CarouselsNoYes
MultiImageYesNo

When a video beats MultiImage

MultiImage is the plain answer when you only need several images in one post. A video is the better fit when you want fixed timing, a voice-over or a music bed, because the slides advance without a tap. That is a product choice, not a LinkedIn requirement.

The Posts API note for video says the post needs a Video URN from the Videos API, so the render has to be uploaded first. The Videos API states a length of three seconds to 30 minutes, a file size between 75 KB and 500 MB, and the MP4 format.

Stills as Timeline slots

In Timeline 1.0 a still is a static hold. The job accepts a motion field on a still, ignores it and reports motion_ignored, so do not plan on zoom effects. Each slot must last at least 0.2 s, a render takes 1 to 200 slots, and the audio spine runs 1 to 1800 s. With audio.mode set to silence you declare the length and send no audio file.

Starts must increase from 0, and coverage can stop at most 0.5 s before the end of the spine. The body below holds five stills for 3 s each over a 15 s silent spine. The default output is 1080x1920 MP4; set output.width and output.height (even integers, 256 to 2160) if you want a different shape. Every URL has to be a media.sume.com file in your workspace, so import the images first with POST /v1/media-imports.

{
  "audio": { "mode": "silence", "duration_seconds": 15 },
  "video": [
    { "source_url": "https://media.sume.com/artifacts/artf_demo/s1.png", "start": 0,  "duration": 3 },
    { "source_url": "https://media.sume.com/artifacts/artf_demo/s2.png", "start": 3,  "duration": 3,
      "transition": { "type": "fade", "duration": 0.25 } },
    { "source_url": "https://media.sume.com/artifacts/artf_demo/s3.png", "start": 6,  "duration": 3 },
    { "source_url": "https://media.sume.com/artifacts/artf_demo/s4.png", "start": 9,  "duration": 3 },
    { "source_url": "https://media.sume.com/artifacts/artf_demo/s5.png", "start": 12, "duration": 3 }
  ],
  "output": { "width": 1080, "height": 1080 }
}

What Sume does not do

Sume does not publish to LinkedIn. You send this body to POST /v1/timeline-1.0/render with an Idempotency-Key, poll the job as described in Jobs and results, then upload the finished MP4 to LinkedIn yourself. Cost is a per-minute credit rate rounded up to whole output minutes; the current figure is on the API rate card, and a 15 s render reserves one minute.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume