Synup
Créer une clé
v1Ressources/Distribution/postPrévisualiser un package de contenu

Prévisualiser un package de contenu

Valide un package pour un client et indique, élément par élément, ce que ferait une importation. Rien n'est écrit.

post/api/v1/distribution/packages/preview
distribution:write
Paramètres de requête
clientIdstringfacultatif
Le client, lorsque le corps est un fichier text/markdown brut.
Corps de la requête
clientIdstringobligatoire
Le client auquel appartient le package.
manifestobjectfacultatif
Un manifeste synup.distribution/v1 : la campagne, ses fichiers (assets) et une variante par publication de destination.
schemastring (synup.distribution/v1)obligatoire
campaignobjectobligatoire
externalIdstringobligatoire
versionintegerobligatoire
titlestringobligatoire
templatestringfacultatif
subjectstringfacultatif
canonicalUrlstringfacultatif
anchorVideoUrlstringfacultatif
customerReviewRequiredbooleanfacultatif
allowRawAssetsbooleanfacultatif
slackobjectfacultatif
teamIdstringfacultatif
channelIdstringfacultatif
threadTsstringfacultatif
assetsarray of objectobligatoire
idstringobligatoire
rolestring (video | image | cover | captions | document | raw)obligatoire
filenamestringobligatoire
mimestringobligatoire
bytesintegerobligatoire
sha256stringobligatoire
widthintegerfacultatif
heightintegerfacultatif
durationSecnumberfacultatif
languagestringfacultatif
sourceobjectfacultatif
urlstringfacultatif
provenanceobjectfacultatif
attributionRequiredbooleanfacultatif
customerReviewRequiredbooleanfacultatif
variantsarray of objectobligatoire
keystringobligatoire
platformstring (facebook | instagram | linkedin | x | pinterest | threads | bluesky | mastodon | reddit | medium | substack | vimeo | dailymotion | youtube | tiktok)obligatoire
connectionIdstringfacultatif
formatstring (feed | video | reel | short | image | carousel | article | link | text)facultatif
textstringfacultatif
titlestringfacultatif
descriptionstringfacultatif
mediaarray of stringfacultatif
coverstringfacultatif
captionsstringfacultatif
firstCommentstringfacultatif
linkobjectfacultatif
urlstringfacultatif
utmobjectfacultatif
articleobjectfacultatif
titlestringfacultatif
subtitlestringfacultatif
htmlstringfacultatif
redditobjectfacultatif
subredditstringfacultatif
flairstringfacultatif
postTypestring (text | link | image | video)facultatif
tagsarray of stringfacultatif
videoobjectfacultatif
privacystringfacultatif
categorystringfacultatif
isForKidsbooleanfacultatif
playlistIdstringfacultatif
tiktokobjectfacultatif
disableCommentbooleanfacultatif
disableDuetbooleanfacultatif
disableStitchbooleanfacultatif
brandContentbooleanfacultatif
suggestedAtstringfacultatif
timezonestringfacultatif
customerReviewRequiredbooleanfacultatif
markdownstringfacultatif
Un fichier Series Markdown, envoyé à la place de manifest.
fileNamestringfacultatif
Le nom du fichier Markdown. Un nom en .md signale que la chaîne est du Markdown.
filesarray of objectfacultatif
Taille et sha256 de chaque fichier nommé par le Markdown, associés par nom de fichier. Obligatoire pour importer une série qui contient des fichiers ; la prévisualisation l'accepte sans eux.
filenamestringobligatoire
bytesintegerobligatoire
sha256stringobligatoire
widthintegerfacultatif
heightintegerfacultatif
durationSecnumberfacultatif
urlstringfacultatif
Un lien https depuis lequel Synup récupère le fichier, au lieu que vous l'envoyiez.
intoSeriesIdstringfacultatif
Importe le fichier comme version suivante de cette série existante.
Réponse
dataobjectfacultatif
campaignobjectfacultatif
versionintegerfacultatif
versionStatestring (new | unchanged | conflict | older)facultatif
itemsarray of objectfacultatif
kindstring (asset | variant)facultatif
refstringfacultatif
outcomestring (created | revised | unchanged | update_available | published_unchanged | skipped)facultatif
postIdstringfacultatif
assetIdstringfacultatif
messagesarray of stringfacultatif
countsobjectfacultatif
markdownobjectfacultatif
Les erreurs et avertissements propres au fichier Markdown, numérotés par ligne, ainsi que les publications et fichiers qu'il nomme. Les erreurs doivent être corrigées ; les avertissements peuvent être importés tels quels.
titlestringfacultatif
timezonestringfacultatif
errorsintegerfacultatif
warningsintegerfacultatif
issuesarray of objectfacultatif
lineintegerobligatoire
La ligne dans le fichier, en comptant à partir de 1.
postIndexintegerfacultatif
La publication concernée (sa section ##), en comptant à partir de 0.
severitystring (error | warning)obligatoire
codestringobligatoire
Un code stable, par exemple unknown_network, file_not_declared ou past_date.
paramsobjectobligatoire
postsarray of objectfacultatif
indexintegerfacultatif
lineintegerfacultatif
headingstringfacultatif
keystringfacultatif
platformstringfacultatif
includedbooleanfacultatif
filesarray of objectfacultatif
filenamestringfacultatif
assetIdstringfacultatif
rolestring (video | image | cover | captions | document)facultatif
mimestringfacultatif
lineintegerfacultatif
attachedbooleanfacultatif
Erreurs
400Il manque un paramètre requis à la requête, ou elle est invalide.
401Clé API manquante, invalide, expirée ou révoquée.
403La clé n'a pas la permission requise, ou n'est pas autorisée pour ce client/établissement.
404La ressource est introuvable, ou n'appartient pas à votre agence.
409La requête entre en conflit avec l'état actuel de la ressource — par exemple, modifier l'e-mail ou le téléphone d'un destinataire à qui un message a déjà été envoyé, ou une invitation d'équipe déjà acceptée (ou pas encore acceptée).
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
post/api/v1/distribution/packages/preview
Votre clé API
clientId
Corps de la requête*
{
  "data": {
    "campaign": {
      "externalId": "topic-local-seo-2026-10",
      "title": "Why local SEO still wins",
      "exists": false,
      "currentVersion": 0,
      "template": "topic",
      "customerReviewRequired": false
    },
    "version": 1,
    "versionState": "new",
    "items": [
      {
        "kind": "asset",
        "ref": "short-1",
        "outcome": "created",
        "messages": []
      },
      {
        "kind": "asset",
        "ref": "short-1-cover",
        "outcome": "created",
        "messages": []
      },
      {
        "kind": "variant",
        "ref": "short-1-linkedin",
        "outcome": "created",
        "messages": []
      },
      {
        "kind": "variant",
        "ref": "short-1-instagram",
        "outcome": "skipped",
        "messages": [
          "account con_999 is not one of this client's instagram accounts"
        ]
      }
    ],
    "counts": {
      "assets": 2,
      "variants": 2,
      "skipped": 0
    }
  }
}

Vous débutez avec l'API Synup ?