Publique nas redes
Poste um ou vários clipes editados em várias contas de uma vez, agora ou agendado, e acompanhe cada publicação.
Um post publica edições em contas conectadas. Cada par edição e conta vira um item, com estado próprio: num post para TikTok e YouTube, um item pode sair e o outro falhar.
Você não precisa renderizar antes. O post renderiza o que falta e publica.
Escolha as contas
curl https://api.cut.pro/api/v1/connections \
-H "X-Api-Key: $CUTPRO_API_KEY"Cada conexão traz id, platform, username e números da audiência. O id é o connection_id do post. Se a conta que a pessoa quer não está na lista, peça o link de conexão e entregue para ela:
curl "https://api.cut.pro/api/v1/connections/link?platform=tiktok" \
-H "X-Api-Key: $CUTPRO_API_KEY"A conexão é feita por quem é dono da conta, no navegador. Quando ela voltar, liste de novo.
Crie o post
curl -X POST https://api.cut.pro/api/v1/posts \
-H "X-Api-Key: $CUTPRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"videos": [
{
"edit_id": "7412910087700001",
"targets": [
{
"connection_id": "7390012299881100",
"metadata": { "tiktok": { "title": "O refrão que todo mundo sabe #musica", "privacyLevel": "PUBLIC_TO_EVERYONE" } }
},
{
"connection_id": "7390012299881200",
"metadata": { "youtube": { "title": "O refrão que todo mundo sabe", "categoryId": "10", "privacyStatus": "public" } }
}
]
}
],
"scheduled_at": "2026-10-30T12:00:00.000Z"
}'{ "id": "7412930011223344", "item_count": 2, "scheduled_at": "2026-10-30T12:00:00.000Z", "status": "pending" }edit_idvem do clipe, do render ou de um vídeo gerado. Váriosvideosnum post só publicam vários clipes de uma vez.scheduled_atagenda, em ISO 8601 no futuro. Sem ele, publica agora.
Metadata por rede
metadata leva uma chave com o nome da rede e, dentro, os campos da própria rede, com os nomes dela (privacyLevel, categoryId). É a única parte da API fora de snake_case: o conteúdo segue para a rede como está.
| Rede | Obrigatórios | Outros campos |
|---|---|---|
youtube | title, categoryId, privacyStatus | description, tags, madeForKids, notifySubscribers, license, embeddable |
tiktok | title, privacyLevel | disableDuet, disableComment, disableStitch, brandContentToggle, brandOrganicToggle, isAigc |
instagram | caption, shareToFeed, collaborators, userTags, audioName, thumbOffset, trialReel, firstComment | |
facebook | description, postType (reel ou feed), videoTitle, link, firstComment | |
threads | text, replyControl, firstComment | |
twitter | text, replySettings | |
linkedin | text | visibility |
pinterest | boardId, title, description | link, coverImageUrl |
bluesky | text, languages |
Todas aceitam coverImageId para a capa. Os limites de cada campo, e as demais redes, estão em POST /posts. Uma rede que ainda está chegando recusa o pedido inteiro com 400 PLATFORM_UNAVAILABLE, antes de criar qualquer coisa.
Acompanhe
curl https://api.cut.pro/api/v1/posts/7412930011223344 \
-H "X-Api-Key: $CUTPRO_API_KEY"Cada item passa por pending → rendering → publishing → completed ou failed. No completed, published_url é o link do vídeo na rede. No failed, error_code diz o motivo.
O post resume os itens:
status do post | Significa |
|---|---|
pending | Agendado ou esperando começar. |
processing | Itens renderizando ou publicando. |
completed | Todos os itens publicados. |
partial | Uma parte publicou, outra falhou. Trate como aviso, não como sucesso. |
failed | Nenhum item publicou. |
cancelled | Cancelado. |
Consulte a cada 10 a 30 segundos. Um item que falhou volta para a fila com:
curl -X POST https://api.cut.pro/api/v1/posts/7412930011223344/items/7412930011223401/retry \
-H "X-Api-Key: $CUTPRO_API_KEY"Mude, adiante ou cancele
| Rota | O que faz |
|---|---|
PATCH /posts/{id} | Muda scheduled_at (no mínimo 1 minuto à frente, ou null para publicar já) enquanto todo item está pending. Com items, troca o conjunto de itens pendentes: com item_id atualiza, sem insere, ausente apaga. Itens publicados não mudam. |
POST /posts/{id}/publish | Publica agora um post agendado, ou destrava um que ficou parado. |
DELETE /posts/{id} | Cancela todos os itens que ainda não saíram. O que já está no ar continua no ar. |
DELETE /posts/{id}/items/{itemId} | Cancela um item pending, rendering ou failed. Num item completed, apaga o vídeo da rede, nas redes que permitem. Item em publishing não dá mais para parar. |
Apagar um item publicado tira o vídeo da conta da pessoa na rede. Se a rede recusa, a resposta é 400 com o motivo (DELETE_NOT_SUPPORTED, PERMISSION_MISSING, DELETE_LIMIT_REACHED) e nada muda.
Erros
| Code | Quando |
|---|---|
INVALID_METADATA | Um campo da rede está errado ou falta. extra.field e extra.platform dizem qual. |
INVALID_CONNECTIONS | Conexão inexistente ou desconectada. extra.invalid_connections lista quais. Peça para reconectar com GET /connections/link. |
EDITS_NOT_FOUND | Edição que não é deste workspace, em extra.invalid_edits. |
DAILY_LIMIT_EXCEEDED | A conta passou do limite diário de posts da rede. extra traz daily_limit, used_today e a conexão. |
DUPLICATE_POST | O mesmo pedido (mesmas edições, contas e horário) chegou de novo logo depois do primeiro. O primeiro vale: não repita. |
MEDIA_REFUNDED | A edição é de um vídeo gerado com IA que foi reembolsado. |
RECORDING_EXPIRED | A edição é de um clipe de live cuja gravação expirou. |
INVALID_SCHEDULED_AT | Horário no passado ou fora do formato ISO 8601. |