Skip to main content
POST
Create post
Creates a draft. To schedule or publish, follow up with PUT /posts/{post} using status=scheduled or status=publishing.
Pinterest posts: POST /posts does not accept per-platform meta. After creating, call PUT /posts/{post} and set platforms[].meta.board_id for each Pinterest entry — otherwise the publish job fails with Pinterest board_id is required.

Request

array
required
At least one platform entry. Each entry pins this post to a connected social account and a content_type.
string
The post body shared across all platforms. Up to 10 000 characters at the API level (per-platform hard caps are enforced separately — see GET /content-types for the matrix). Defaults to empty.
array
Media items to attach to the post. Each item should match the shape returned by POST /posts/{post}/media — id, path, url, type, mime_type, original_filename. Most callers use the dedicated upload or attach-from-URL endpoint instead.
string
ISO 8601 datetime in the future (e.g. 2026-05-10T15:30:00Z). Stored on the draft so a follow-up PUT with status=scheduled doesn’t have to repeat it. Defaults to today at 09:00 UTC.
array
Workspace label UUIDs to attach. Must belong to the same workspace as the API key.

Response

Returns 201 with the created post. Response shape is identical to GET /posts/{post} — see that endpoint for full field documentation.