From nothing to a published post. Four calls, a few minutes.
1. Get an API key
Sign in at chirio.dev/auth with a magic link — an account, workspace
and project are created on first sign-in. Then go to Settings → API keys and create one.The full key is shown once. It looks like chirio_sk_...; only a hash of it is stored, so
a lost key has to be revoked and replaced.
Store that accountId — it is what you target when publishing, and it stays the same if the
user ever disconnects and reconnects. Omit redirectUrl and the user lands on Chirio's own
confirmation page instead.
Instagram needs a professional account
Instagram only allows publishing from Business or Creator accounts. Each platform has a requirement or two like this — see the platform pages before your first connect.
A 201 means the request was accepted and every target was attempted. Targets settle independently, so read post.targets[].status — published or failed — rather than treating the HTTP status as the outcome.
Add "publishAt": "2026-08-21T09:00:00Z" to that same body and the post is scheduled instead:
you get a 202, its targets read pending, and Chirio sends it when the time comes. No cron
of your own. See Scheduling a post.
4. Read it back
Useful when a target was still processing — video can take minutes — or when a retried request
came back with replayed: true and you want the settled state. It is also how you check on a
scheduled post after its time has passed.