Chirio
Get Started
Introduction
Quickstart
How Chirio works
Authentication
Platforms
Overview
Instagram
Threads
X
LinkedIn
Supa Hub
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
Supa Hub
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

Overview

What every network allows, what it costs, and where they disagree.
Updated 1mo ago
Instagram
Four networks and one self-hosted hub platform, one API. The differences you have to design around are limits, media rules and whether first comments work — everything else behaves identically.

Side by side

Instagram
Threads
X
LinkedIn
Supa Hub
Text limit2,2005002803,0002,500
Media1–10 (required, JPEG)0–10, optional4 images **or** 1 video10 images **or** 1 video0–10 images, no video
Text-only postnoyesyesyesyes
Carouselyes (2+)yes (2+)nomulti-image postyes (2+ images)
First commentyes, 2,200yes, 500**not supported**yes, 1,250**not supported**
Connection lasts60 days60 daysrefreshed automatically~60 daysuntil key revoked
Units per write115, or 65 with a link11
Platform rate limit100 posts / 24h per account250 posts / 24h per profileaccount-levelaccount-levelhub-defined
A violation rejects the whole request, not one target
Content rules are checked before anything publishes. A 400-character caption sent to both Threads and LinkedIn fails the entire request rather than publishing on LinkedIn and failing Threads — so validate against the strictest target you are sending to.

Writing one post for several networks

The practical consequence of that table is that a single content string has to satisfy every target you send it to. Two ways to handle it:
  • Write to the strictest limit. 280 characters satisfies every network.
  • Send separate requests per network. More calls, but each gets copy that fits — which is usually what you want anyway, since a post that reads well on LinkedIn rarely does on Threads.
firstComment is already per target, so the comment can differ even within one request.

Per-network detail

  • Instagram — professional accounts, JPEG only, Reels and carousels
  • Threads — text-only posts, carousels, replies as comments
  • X — no comments, and the one network where a link changes the price
  • LinkedIn — personal profiles and company pages
  • Supa Hub — self-hosted Supa Social communities, connected with an API key instead of OAuth

Reading engagement

Every published target's current engagement — views, likes, comments, shares, saves — is readable live with GET /api/v1/posts/:id/metrics, with the same per-target result shape as publishing. Support and caveats differ per platform (Instagram and Threads need reconnection for insight permissions on older connections; X needs a read-capable API tier; Supa Hub has no metrics surface) — see the .
Posts reference

Availability

Every network above is available on Chirio. If one is ever unavailable — a platform outage, a suspended integration — calls targeting it answer 501 platform_not_enabled rather than failing silently, and existing connections are untouched.

Capabilities are fixed when a user authorises

A connection carries the permissions it was granted at the moment the user approved it. If a capability is added later, existing connections do not gain it — the user has to reconnect. This is the cause behind a few otherwise confusing failures, all covered in Account lifecycle.