Cut.ProDocs

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"
  }'
201 Created
{ "id": "7412930011223344", "item_count": 2, "scheduled_at": "2026-10-30T12:00:00.000Z", "status": "pending" }
  • edit_id vem do clipe, do render ou de um vídeo gerado. Vários videos num post só publicam vários clipes de uma vez.
  • scheduled_at agenda, 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á.

RedeObrigatóriosOutros campos
youtubetitle, categoryId, privacyStatusdescription, tags, madeForKids, notifySubscribers, license, embeddable
tiktoktitle, privacyLeveldisableDuet, disableComment, disableStitch, brandContentToggle, brandOrganicToggle, isAigc
instagramcaption, shareToFeed, collaborators, userTags, audioName, thumbOffset, trialReel, firstComment
facebookdescription, postType (reel ou feed), videoTitle, link, firstComment
threadstext, replyControl, firstComment
twittertext, replySettings
linkedintextvisibility
pinterestboardId, title, descriptionlink, coverImageUrl
blueskytext, 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 postSignifica
pendingAgendado ou esperando começar.
processingItens renderizando ou publicando.
completedTodos os itens publicados.
partialUma parte publicou, outra falhou. Trate como aviso, não como sucesso.
failedNenhum item publicou.
cancelledCancelado.

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

RotaO 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}/publishPublica 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

CodeQuando
INVALID_METADATAUm campo da rede está errado ou falta. extra.field e extra.platform dizem qual.
INVALID_CONNECTIONSConexão inexistente ou desconectada. extra.invalid_connections lista quais. Peça para reconectar com GET /connections/link.
EDITS_NOT_FOUNDEdição que não é deste workspace, em extra.invalid_edits.
DAILY_LIMIT_EXCEEDEDA conta passou do limite diário de posts da rede. extra traz daily_limit, used_today e a conexão.
DUPLICATE_POSTO mesmo pedido (mesmas edições, contas e horário) chegou de novo logo depois do primeiro. O primeiro vale: não repita.
MEDIA_REFUNDEDA edição é de um vídeo gerado com IA que foi reembolsado.
RECORDING_EXPIREDA edição é de um clipe de live cuja gravação expirou.
INVALID_SCHEDULED_ATHorário no passado ou fora do formato ISO 8601.

Nesta página