v1Recursos/Distribución/postImportar un paquete de contenido
Importar un paquete de contenido
Importa un paquete como borradores de publicación. No se programa ni se publica nada: una persona en Synup revisa, aprueba y programa cada publicación. Reenviar el mismo externalId y la misma versión de la campaña, o el mismo Idempotency-Key, devuelve el primer resultado. La misma versión con contenido distinto devuelve 409 version_conflict, así que envíala como version + 1.
post
distribution:write/api/v1/distribution/packagesParámetros de consulta
Idempotency-Keystringopcional
Cualquier cadena única por importación lógica. Un reintento con la misma clave devuelve el primer resultado.
clientIdstringopcional
El cliente, cuando el cuerpo es un archivo text/markdown sin procesar.
Cuerpo de la solicitud
clientIdstringobligatorio
El cliente al que pertenece el paquete.
manifestobjectopcional
Un manifiesto synup.distribution/v1: la campaña, sus archivos (assets) y una variante por cada publicación de destino.
schemastring (synup.distribution/v1)obligatorio
campaignobjectobligatorio
externalIdstringobligatorio
versionintegerobligatorio
titlestringobligatorio
templatestringopcional
subjectstringopcional
canonicalUrlstringopcional
anchorVideoUrlstringopcional
customerReviewRequiredbooleanopcional
allowRawAssetsbooleanopcional
slackobjectopcional
teamIdstringopcional
channelIdstringopcional
threadTsstringopcional
assetsarray of objectobligatorio
idstringobligatorio
rolestring (video | image | cover | captions | document | raw)obligatorio
filenamestringobligatorio
mimestringobligatorio
bytesintegerobligatorio
sha256stringobligatorio
widthintegeropcional
heightintegeropcional
durationSecnumberopcional
languagestringopcional
sourceobjectopcional
urlstringopcional
provenanceobjectopcional
attributionRequiredbooleanopcional
customerReviewRequiredbooleanopcional
variantsarray of objectobligatorio
keystringobligatorio
platformstring (facebook | instagram | linkedin | x | pinterest | threads | bluesky | mastodon | reddit | medium | substack | vimeo | dailymotion | youtube | tiktok)obligatorio
connectionIdstringopcional
formatstring (feed | video | reel | short | image | carousel | article | link | text)opcional
textstringopcional
titlestringopcional
descriptionstringopcional
mediaarray of stringopcional
coverstringopcional
captionsstringopcional
firstCommentstringopcional
linkobjectopcional
urlstringopcional
utmobjectopcional
articleobjectopcional
titlestringopcional
subtitlestringopcional
htmlstringopcional
redditobjectopcional
subredditstringopcional
flairstringopcional
postTypestring (text | link | image | video)opcional
tagsarray of stringopcional
videoobjectopcional
privacystringopcional
categorystringopcional
isForKidsbooleanopcional
playlistIdstringopcional
tiktokobjectopcional
disableCommentbooleanopcional
disableDuetbooleanopcional
disableStitchbooleanopcional
brandContentbooleanopcional
suggestedAtstringopcional
timezonestringopcional
customerReviewRequiredbooleanopcional
markdownstringopcional
Un archivo Series Markdown, enviado en lugar de manifest.
fileNamestringopcional
El nombre del archivo Markdown. Un nombre .md marca la cadena como Markdown.
filesarray of objectopcional
Tamaño y sha256 de cada archivo que nombra el Markdown, emparejados por nombre de archivo. Obligatorio para importar una serie con archivos; la previsualización lo acepta sin ellos.
filenamestringobligatorio
bytesintegerobligatorio
sha256stringobligatorio
widthintegeropcional
heightintegeropcional
durationSecnumberopcional
urlstringopcional
Un enlace https desde el que Synup obtiene el archivo, en lugar de que lo subas tú.
intoSeriesIdstringopcional
Importa el archivo como la siguiente versión de esta serie existente.
Respuesta
dataobjectopcional
campaignIdstringopcional
versionintegeropcional
statusstring (imported | unchanged)opcional
itemsarray of objectopcional
kindstring (asset | variant)opcional
refstringopcional
outcomestring (created | revised | unchanged | update_available | published_unchanged | skipped)opcional
postIdstringopcional
assetIdstringopcional
messagesarray of stringopcional
pendingUploadsarray of objectopcional
assetIdstringopcional
refstringopcional
filenamestringopcional
bytesintegeropcional
mimestringopcional
pendingFetchesarray of stringopcional
Errores
400A la solicitud le falta un parámetro obligatorio o es inválida de otra forma.
401La clave de API falta, es inválida, expiró o fue revocada.
403A la clave le falta el permiso requerido, o no está autorizada para este cliente/ubicación.
404El recurso no se encontró, o no pertenece a su agencia.
409La solicitud entra en conflicto con el estado actual del recurso — por ejemplo, cambiar el correo electrónico o el teléfono de un destinatario al que ya se le ha enviado un mensaje, o una invitación de equipo que ya fue aceptada (o que aún no ha sido aceptada).
422El archivo Markdown tiene errores, así que no se importó nada. issues los enumera por línea.
429Demasiadas solicitudes. Reintente tras el número de segundos indicado en el encabezado Retry-After.
post/api/v1/distribution/packages
Su clave de API
Idempotency-Key
clientId
Cuerpo de la solicitud*
{
"data": {
"campaignId": "dcm_123",
"version": 1,
"status": "imported",
"items": [
{
"kind": "asset",
"ref": "short-1",
"outcome": "created",
"assetId": "das_123",
"messages": []
},
{
"kind": "asset",
"ref": "short-1-cover",
"outcome": "created",
"assetId": "das_124",
"messages": []
},
{
"kind": "variant",
"ref": "short-1-linkedin",
"outcome": "created",
"postId": "post_123",
"messages": []
}
],
"pendingUploads": [
{
"assetId": "das_124",
"ref": "short-1-cover",
"filename": "short-1.jpg",
"bytes": 34683,
"mime": "image/jpeg"
}
],
"pendingFetches": [
"das_123"
]
}
}