POST /posts. A single post can carry multiple clips to multiple accounts at once.
Before you start
You need two things:A rendered clip
The
editId is the edit_setting_id that the render returns when complete. It is what identifies the video to publish.Connected accounts
The
connectionId comes from GET /connections. Connect new accounts via OAuth inside cut.pro. The API does not connect accounts.How the body is built
Each item invideos points a clip (editId) to one or more targets (targets). Each target combines a connection (connectionId) with the metadata specific to that platform (title, privacy, etc.).
metadata changes per platform (TikTok, YouTube, Instagram, Threads, Bluesky, LinkedIn, Pinterest, Facebook). The required fields and options for each are detailed on the endpoint page POST /posts, with the interactive playground.
Track the publishing
The response includespost_id, item_count, and status (pending or processing). Poll GET /posts/{id}:
status evolves like this:
| Status | Meaning |
|---|---|
pending | In the queue, not started yet |
processing | Publishing to the accounts |
completed | All items published |
partial | Some published, others failed |
failed | No item published |
items array shows the result per account, useful when the status is partial.
When something fails
Items fail independently: a target with an error does not bring down the ones that already published.- Retry a failed item:
POST /posts/{id}/items/{itemId}/retry - Remove an item without touching the others:
DELETE /posts/{id}/items/{itemId} - Delete the whole post:
DELETE /posts/{id} - Edit before publishing (e.g. adjust scheduling):
PATCH /posts/{id}