Chirio
Get Started
Introduction
Quickstart
How Chirio works
Authentication
Platforms
Overview
Instagram
Threads
X
LinkedIn
Guides
Connect accounts
Publish a post
Media requirements
Carousels
First comments
Idempotency and retries
Account lifecycle
Revocation and deletion
The dashboard
Billing
Plans
Metering
Quotas
Api Reference
Overview
Accounts
Posts
Errors
Changelog
Roadmap
TrademarkTrademark
Ctrl k
Search...
Sign up
Chirio
Get Started
Introduction
Quickstart
How Chirio works
Authentication
Platforms
Overview
Instagram
Threads
X
LinkedIn
Guides
Connect accounts
Publish a post
Media requirements
Carousels
First comments
Idempotency and retries
Account lifecycle
Revocation and deletion
The dashboard
Billing
Plans
Metering
Quotas
Api Reference
Overview
Accounts
Posts
Errors
Changelog
Roadmap
TrademarkTrademark© Dopler. All rights reserved.
Built with Aveiro
Guides

Carousels

Multi-image posts on Instagram and Threads — how they are built and why they fail atomically.
Updated 2d ago
Media requirements
First comments
Send two or more mediaItems to an Instagram or Threads target and they publish as a single carousel, in array order. There is no separate endpoint and no extra flag.

How it is built

For each carousel target Chirio:
  • Creates one child container per media item, in array order.
  • Polls every child until it finishes processing (video children can take minutes).
  • Creates the parent CAROUSEL container referencing the children, carrying the caption.
  • Publishes the parent.
The order of mediaItems is the slide order the reader swipes through.

A carousel is atomic per target

One bad child fails the whole target
If any child container fails to process, that target fails as a whole — there is no partial carousel. Other targets in the same request are unaffected, so a broken image can fail Instagram while Threads publishes normally.
This is the right failure mode: a carousel missing its third slide is worse than no post at all, and republishing over a partial one is not something an API can do for you.

Limits

Platform
Carousel range
Caption
Notes
Instagram2–10 items2,200 charsImages must be JPEG; video children are allowed
Threads2–20 items (10 in practice)500 charsRequest-level cap of 10 media items binds first
A single video on Instagram publishes as a Reel, not a one-slide carousel — that is Meta's behaviour, and media_type=REELS is single-video only, which is why carousel video children use VIDEO instead. X and LinkedIn have no carousel concept. Multiple images there publish as X's up-to-4 image post and LinkedIn's multi-image post respectively — see Media.

Timing

Children process in parallel on Meta's side, but each is polled until terminal, so a carousel takes as long as its slowest item. Video-heavy carousels can take several minutes. Always send an Idempotency-Key on a carousel publish. A timeout on your side is otherwise indistinguishable from a failure, and retrying without a key risks a duplicate carousel.
{
  "content": "Five things we shipped this month",
  "mediaItems": [
    { "type": "image", "url": "https://cdn.yourapp.com/1.jpg" },
    { "type": "image", "url": "https://cdn.yourapp.com/2.jpg" },
    { "type": "video", "url": "https://cdn.yourapp.com/3.mp4" }
  ],
  "platforms": [
    { "platform": "instagram", "accountId": "8f2c..." },
    { "platform": "threads",   "accountId": "d31a..." }
  ]
}