A rendered clip
The editId is the edit_setting_id that the render returns when complete. It is what identifies the video to publish.
After rendering a clip, you can publish it to one or more connected accounts with POST /posts. A single post can carry multiple clips to multiple accounts at once.
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.
Each item in videos 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.).
curl -X POST https://api.cut.pro/api/v1/posts \ -H "X-Api-Key: $CUTPRO_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "videos": [ { "editId": "EDIT_SETTING_ID", "targets": [ { "connectionId": "CONEXAO_TIKTOK", "metadata": { "tiktok": { "title": "Meu corte viral", "privacyLevel": "PUBLIC_TO_EVERYONE" } } }, { "connectionId": "CONEXAO_YOUTUBE", "metadata": { "youtube": { "title": "Meu corte viral", "description": "Cortes do episódio de hoje", "categoryId": "22", "privacyStatus": "public" } } } ] } ] }'{ "post_id": "7412909001223344", "item_count": 2, "scheduled_at": null, "status": "pending"}The 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.
The post is queued and publishes asynchronously. Poll GET /posts/{id}:
curl https://api.cut.pro/api/v1/posts/POST_ID \ -H "X-Api-Key: $CUTPRO_API_KEY"The post 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 |
The items array shows the result per account, useful when the status is partial.
Items fail independently: a target with an error does not bring down the ones that already published.
POST /posts/{id}/items/{itemId}/retryDELETE /posts/{id}/items/{itemId}DELETE /posts/{id}PATCH /posts/{id}