Posts
Create Post
Schedule or publish text-only, video, or slideshow posts to connected accounts.
POST
Schedule or publish immediately to one or more connected accounts.
YouTube —
Requires a video post to a YouTube account.
TikTok — top-level
Requires BYO TikTok accounts and media (video or slideshow). Hosted TikTok accounts cannot use
TikTok-specific settings.
For video posts, the merged publish text built from
Pinterest — top-level
Requires at least one Pinterest account and image media.
X —
Instagram —
Both keys map to the same stored settings. If both are sent,
Facebook —
LinkedIn —
Both keys map to the same stored settings. If both are sent,
Bluesky —
No provider-specific fields. Send
Before you post
- Use an API key for a workspace with an active Creator, Professional, or Business subscription.
- Call
GET /accountsand pick account UUIDs. - Check each account’s
capabilities.supported_content_kindsandcaption_limit. - Build the payload below. Only include provider settings for platforms you are actually targeting.
Request body
string
required
Shared caption text. Final length is checked per targeted account after lookup
(hosted accounts: 500 chars max).
array
required
One to ten account objects:
[{ "id": "<uuid-from-/accounts>" }].object | null
Optional.
video, slideshow, or null/omit for text-only posts.string
ISO 8601 datetime with timezone offset (for example
2026-05-21T15:00:00Z).
Omit or send a time within 30 seconds of now for immediate publish (status: pending).
For true scheduled posts, the time must be at least 2 minutes in the future.string
Recommended idempotency key (max 128 chars). Same key + same payload replays the original
post (
200, duplicate: true). Same key + different payload returns 409 create_failed.
If omitted, the API dedupes from a SHA-256 fingerprint of the request body instead; a conflicting
replay also returns 409 create_failed.string
TikTok-only. A TikTok post URL used to resolve the track. Rejected when any non-TikTok account
is selected, including Instagram.
Provider settings
Usesettings.<provider> for X, Instagram, Facebook, LinkedIn, Bluesky,
and YouTube.
For TikTok and Pinterest on create, use the top-level tiktok and pinterest
objects — not settings.tiktok or settings.pinterest. Top-level fields run the full
create-time validation (BYO-only TikTok, hosted TikTok rejection, MEDIA_UPLOAD rules, and
field limits).
Only send settings for providers present in your accounts list. Unknown settings keys return
422 invalid_payload.
capabilities.settings_schema from GET /accounts advertises the
public field names accepted for that provider. Use top-level tiktok/pinterest, or
settings.<provider> for the remaining providers. Hosted accounts omit fields their provider
cannot accept. Cross-field and media/account-specific rules are still validated when you create or
update the post.
YouTube — settings.youtube
Requires a video post to a YouTube account.
TikTok — top-level tiktok
Requires BYO TikTok accounts and media (video or slideshow). Hosted TikTok accounts cannot use
TikTok-specific settings.
For video posts, the merged publish text built from caption, tiktok.title, and
tiktok.description must stay ≤ 2,200 characters combined.
Pinterest — top-level pinterest
Requires at least one Pinterest account and image media.
X — settings.x or settings.twitter
Instagram — settings.instagram or settings.instagram-standalone
Both keys map to the same stored settings. If both are sent, instagram-standalone wins.
Facebook — settings.facebook
LinkedIn — settings.linkedin or settings.linkedin-page
Both keys map to the same stored settings. If both are sent, linkedin-page wins.
Bluesky — settings.bluesky
No provider-specific fields. Send {} or omit.
Settings key reference
Limits (quick reference)
- Video: MP4/MOV/M4V/AVI, under 100MB. Hosted accounts: 15–60s when duration is provided.
- Non-premium X video: duration metadata required; max 140 seconds.
- Slideshow: 1–35 images, each under 5MB.
- Caption caps (BYO): X 280 (4,000 for premium accounts); Instagram 2,200; TikTok video 2,200 / photo description 4,000; LinkedIn 3,000; Pinterest 800; YouTube 5,000 bytes; Facebook 63,206.
Response
Fresh creates return201. Idempotent replays return 200.
duplicate: true appears on idempotent replays. warnings are non-blocking (for example missing
video duration metadata).
