Skip to content

Publishing to social networks

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.).

Terminal window
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"
}
}
}
]
}
]
}'
Response 201
{
"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}:

Terminal window
curl https://api.cut.pro/api/v1/posts/POST_ID \
-H "X-Api-Key: $CUTPRO_API_KEY"

The post status evolves like this:

StatusMeaning
pendingIn the queue, not started yet
processingPublishing to the accounts
completedAll items published
partialSome published, others failed
failedNo 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.

  • 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}