1
Create the post
pending_review. Nothing is public yet — it shows up in
the studio’s review queue like any other post.channels defaults to that creator’s connected channels, so most calls need only
account_id, asset_ids and caption. The format (photo, carousel or video) is
derived from the media and validated against every target platform before the post is
written — a carousel that a platform cannot take is a 400, not a failed publish an
hour later.2
Send it
3
Watch it land
The review gate
The states a post moves through:- A post enters at
pending_review. The API cannot create one in any other state. scheduledis reachable only frompending_review. Asking to publish an already published post is a400that says so.publishedis written only after the platform confirms. If the hand-off fails, the post staysscheduledwith the reason recorded, and you can retry — it is never falsely marked live.
Want a human in the loop? Create posts and never call publish. They queue up in the
studio’s review screen, where an operator approves them exactly as they would a post
the platform generated. The API gives you the operator’s authority; it does not force
you to use it.
Requirements
The creator needs a connected channel
The creator needs a connected channel
Channels are connected in the studio, per creator. A creator with none gets a
400
telling you so — the API cannot connect accounts on your behalf.Media has to be finished
Media has to be finished
Use asset ids from a
succeeded generation, or from a completed upload. An asset that
is still uploading is rejected.Ten assets maximum
Ten assets maximum
One video, or up to ten stills for a carousel. Platform-specific carousel limits are
checked at creation.
From the CLI
crl posts create alone leaves the post in review. --publish now|schedule|queue chains
the second call. Publishing from a terminal asks for confirmation; pass --yes in
scripts.