Cut.ProDocs

Publica en las redes

Publica uno o varios clips editados en varias cuentas a la vez, ahora o programado, y sigue cada publicación.

Un post publica ediciones en cuentas conectadas. Cada par edición y cuenta se convierte en un elemento, con estado propio: en un post para TikTok y YouTube, un elemento puede salir y el otro fallar.

No necesitas renderizar antes. El post renderiza lo que falta y publica.

Elige las cuentas

curl https://api.cut.pro/api/v1/connections \
  -H "X-Api-Key: $CUTPRO_API_KEY"

Cada conexión trae id, platform, username y números de la audiencia. El id es el connection_id del post. Si la cuenta que la persona quiere no está en la lista, pide el enlace de conexión y entrégaselo:

curl "https://api.cut.pro/api/v1/connections/link?platform=tiktok" \
  -H "X-Api-Key: $CUTPRO_API_KEY"

La conexión la hace el dueño de la cuenta, en el navegador. Cuando vuelva, lista de nuevo.

Crea el 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": "El estribillo que todo el mundo conoce #musica", "privacyLevel": "PUBLIC_TO_EVERYONE" } }
          },
          {
            "connection_id": "7390012299881200",
            "metadata": { "youtube": { "title": "El estribillo que todo el mundo conoce", "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 viene del clip, del render o de un video generado. Varios videos en un solo post publican varios clips a la vez.
  • scheduled_at programa, en ISO 8601 en el futuro. Sin él, publica ahora.

Metadata por red

metadata lleva una clave con el nombre de la red y, dentro, los campos propios de la red, con sus nombres (privacyLevel, categoryId). Es la única parte de la API fuera de snake_case: el contenido sigue a la red tal como está.

RedObligatoriosOtros 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 o feed), videoTitle, link, firstComment
threadstext, replyControl, firstComment
twittertext, replySettings
linkedintextvisibility
pinterestboardId, title, descriptionlink, coverImageUrl
blueskytext, languages

Todas aceptan coverImageId para la portada. Los límites de cada campo, y las demás redes, están en POST /posts. Una red que aún está llegando rechaza la solicitud entera con 400 PLATFORM_UNAVAILABLE, antes de crear nada.

Sigue el post

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

Cada elemento pasa por pending → rendering → publishing → completed o failed. En completed, published_url es el enlace del video en la red. En failed, error_code dice el motivo.

El post resume los elementos:

status del postSignifica
pendingProgramado o esperando empezar.
processingElementos renderizando o publicando.
completedTodos los elementos publicados.
partialUna parte se publicó, otra falló. Trátalo como aviso, no como éxito.
failedNingún elemento se publicó.
cancelledCancelado.

Consulta cada 10 a 30 segundos. Un elemento que falló vuelve a la cola con:

curl -X POST https://api.cut.pro/api/v1/posts/7412930011223344/items/7412930011223401/retry \
  -H "X-Api-Key: $CUTPRO_API_KEY"

Cambia, adelanta o cancela

RutaQué hace
PATCH /posts/{id}Cambia scheduled_at (mínimo 1 minuto adelante, o null para publicar ya) mientras todo elemento esté pending. Con items, reemplaza el conjunto de elementos pendientes: con item_id actualiza, sin él inserta, ausente elimina. Los elementos publicados no cambian.
POST /posts/{id}/publishPublica ahora un post programado, o destraba uno que quedó detenido.
DELETE /posts/{id}Cancela todos los elementos que aún no salieron. Lo que ya está al aire sigue al aire.
DELETE /posts/{id}/items/{itemId}Cancela un elemento pending, rendering o failed. En un elemento completed, elimina el video de la red, en las redes que lo permiten. Un elemento en publishing ya no se puede detener.

Eliminar un elemento publicado quita el video de la cuenta de la persona en la red. Si la red lo rechaza, la respuesta es 400 con el motivo (DELETE_NOT_SUPPORTED, PERMISSION_MISSING, DELETE_LIMIT_REACHED) y nada cambia.

Errores

CodeCuándo
INVALID_METADATAUn campo de la red está mal o falta. extra.field y extra.platform dicen cuál.
INVALID_CONNECTIONSConexión inexistente o desconectada. extra.invalid_connections lista cuáles. Pide reconectar con GET /connections/link.
EDITS_NOT_FOUNDEdición que no es de este workspace, en extra.invalid_edits.
DAILY_LIMIT_EXCEEDEDLa cuenta superó el límite diario de posts de la red. extra trae daily_limit, used_today y la conexión.
DUPLICATE_POSTLa misma solicitud (mismas ediciones, cuentas y horario) llegó de nuevo justo después de la primera. Vale la primera: no repitas.
MEDIA_REFUNDEDLa edición es de un video generado con IA que fue reembolsado.
RECORDING_EXPIREDLa edición es de un clip de transmisión en vivo cuya grabación expiró.
INVALID_SCHEDULED_ATHorario en el pasado o fuera del formato ISO 8601.

En esta página