Synup
Créer une clé
v1Ressources/Posts/patchMettre à jour un post

Mettre à jour un post

Mise à jour partielle d'une publication modifiable (draft, scheduled, paused, partial, error ou active) : les champs non envoyés ne changent pas et les listes envoyées remplacent la liste existante. Un brouillon reste un brouillon ; pour le publier, envoyez draft: false ou un scheduledFor futur, ou appelez POST /api/v1/posts/{id}/publish. Modifier une publication en ligne la met à jour sur ses plateformes, sauf qu'une publication en ligne sur Facebook ne peut pas changer ses images, son carrousel ou son bouton (422) ; changer la programmation d'une publication en ligne renvoie 409. Renvoie la publication comme GET /api/v1/posts/{id}, avec targets.

patch/api/v1/posts/{id}
posts:write
Paramètres de requête
idstringobligatoire
Le post à mettre à jour.
Corps de la requête
locationIdstringfacultatif
L'établissement pour lequel publier. Fournissez ceci ou clientId.
clientIdstringfacultatif
Le client pour lequel publier au niveau marque. Fournissez ceci ou locationId.
namestringfacultatif
Nom/étiquette interne du post. Obligatoire, non vide.
postTypestring (announcement | event | offer)facultatif
Type de post. event et offer sont réservés à Google.
platformsarray of string (google | facebook | instagram | x | linkedin | pinterest | mastodon | bluesky | threads | tiktok | youtube | reddit | medium | substack | vimeo | dailymotion)facultatif
Plateformes cibles. Envoyez ceci ou connectionIds. Chaque plateforme publie via la connexion de l'établissement correspondante (ou celle du client pour une publication de marque).
connectionIdsarray of stringfacultatif
Cibles exactes : les ids de connexion sur lesquels publier, issus de GET /api/v1/locations/{id}/publish-targets. Utilisez la connexion propre à l'établissement ou la page de marque de son client ; une connexion Google au niveau du compte, une connexion archivée ou celle d'un autre établissement ou client est refusée avec 422. Si elle est envoyée, la publication va exactement là et platforms en est déduit. Lors d'une mise à jour, la liste remplace les cibles de la publication.
linkUrlstringfacultatif
Le lien principal de la publication, utilisé par chaque plateforme qui en affiche un.
linkCtaKeystringfacultatif
Le bouton affiché avec linkUrl, par exemple learn_more, book ou shop.
utmobjectfacultatif
Balises UTM (source, medium, campaign, term) ajoutées à linkUrl.
sourcestringfacultatif
mediumstringfacultatif
campaignstringfacultatif
termstringfacultatif
linkOverrideobjectfacultatif
Réglages de lien par plateforme, avec une clé par plateforme : une autre url, un autre bouton, title, description ou utm pour cette plateforme.
linkAppendobjectfacultatif
Ajouter ou non linkUrl à la fin du texte sur X et Mastodon, qui n'ont pas de champ de lien.
xbooleanfacultatif
mastodonbooleanfacultatif
ctaUrlFacebookstringfacultatif
URL du bouton pour Facebook uniquement, lorsqu'elle doit différer de ctaUrl.
xThreadbooleanfacultatif
Sur X, diviser un texte plus long qu'une publication en un fil.
scheduleLocalTimestringfacultatif
Programmer selon l'heure locale, "YYYY-MM-DDTHH:mm" sans fuseau. À utiliser à la place de scheduledFor pour une programmation tenant compte du fuseau.
scheduleZoneModestring (target_local | fixed_zone)facultatif
Comment scheduleLocalTime est interprété : target_local publie à cette heure dans le fuseau de chaque destination ; fixed_zone utilise scheduleTimeZone pour toutes les destinations.
scheduleTimeZonestringfacultatif
Fuseau horaire IANA pour la programmation fixed_zone, par exemple "America/New_York".
timeZoneModestring (target_local | fixed_zone)facultatif
Identique à scheduleZoneMode.
articleTitlestringfacultatif
Champs d'article pour Medium et Substack : titre, sous-titre et corps HTML.
articleSubtitlestringfacultatif
Champs d'article pour Medium et Substack : titre, sous-titre et corps HTML.
articleBodyHtmlstringfacultatif
Champs d'article pour Medium et Substack : titre, sous-titre et corps HTML.
canonicalUrlstringfacultatif
URL d'origine d'un article publié ailleurs, pour que la plateforme cite la source.
videoCoverUrlstringfacultatif
Options vidéo : l'URL d'une image de couverture, et l'URL d'un fichier de sous-titres avec sa langue.
videoCaptionsUrlstringfacultatif
Options vidéo : l'URL d'une image de couverture, et l'URL d'un fichier de sous-titres avec sa langue.
videoCaptionsLanguagestringfacultatif
Options vidéo : l'URL d'une image de couverture, et l'URL d'un fichier de sous-titres avec sa langue.
facebookCaptionstringfacultatif
Une option propre à Facebook : texte spécifique, type de bouton, premier commentaire, format de publication (default, reel, carousel, suppress_link), cartes de carrousel ou ciblage d'audience.
facebookCtaTypestringfacultatif
Une option propre à Facebook : texte spécifique, type de bouton, premier commentaire, format de publication (default, reel, carousel, suppress_link), cartes de carrousel ou ciblage d'audience.
facebookFirstCommentstringfacultatif
Une option propre à Facebook : texte spécifique, type de bouton, premier commentaire, format de publication (default, reel, carousel, suppress_link), cartes de carrousel ou ciblage d'audience.
facebookPublishAsstring (default | reel | carousel | suppress_link)facultatif
Une option propre à Facebook : texte spécifique, type de bouton, premier commentaire, format de publication (default, reel, carousel, suppress_link), cartes de carrousel ou ciblage d'audience.
facebookCarouselCardsarray of objectfacultatif
Une option propre à Facebook : texte spécifique, type de bouton, premier commentaire, format de publication (default, reel, carousel, suppress_link), cartes de carrousel ou ciblage d'audience.
headlinestringfacultatif
descriptionstringfacultatif
linkstringfacultatif
facebookTargetCountrystringfacultatif
Une option propre à Facebook : texte spécifique, type de bouton, premier commentaire, format de publication (default, reel, carousel, suppress_link), cartes de carrousel ou ciblage d'audience.
facebookTargetGenderstringfacultatif
Une option propre à Facebook : texte spécifique, type de bouton, premier commentaire, format de publication (default, reel, carousel, suppress_link), cartes de carrousel ou ciblage d'audience.
facebookTargetAgeMinstringfacultatif
Une option propre à Facebook : texte spécifique, type de bouton, premier commentaire, format de publication (default, reel, carousel, suppress_link), cartes de carrousel ou ciblage d'audience.
facebookTargetAgeMaxstringfacultatif
Une option propre à Facebook : texte spécifique, type de bouton, premier commentaire, format de publication (default, reel, carousel, suppress_link), cartes de carrousel ou ciblage d'audience.
facebookTargetRelationshipstringfacultatif
Une option propre à Facebook : texte spécifique, type de bouton, premier commentaire, format de publication (default, reel, carousel, suppress_link), cartes de carrousel ou ciblage d'audience.
instagramFirstCommentstringfacultatif
Une option propre à Instagram : premier commentaire ou texte alternatif de l'image.
instagramAltTextstringfacultatif
Une option propre à Instagram : premier commentaire ou texte alternatif de l'image.
xReplySettingsstring (everyone | following | mentioned)facultatif
Une option propre à X : qui peut répondre.
linkedinVisibilitystring (anyone | connections | followers)facultatif
Une option propre à LinkedIn : visibilité ou premier commentaire.
linkedinFirstCommentstringfacultatif
Une option propre à LinkedIn : visibilité ou premier commentaire.
pinterestTitlestringfacultatif
Une option propre à Pinterest : titre de l'épingle, tableau, lien de destination ou texte alternatif.
pinterestBoardIdstringfacultatif
Une option propre à Pinterest : titre de l'épingle, tableau, lien de destination ou texte alternatif.
pinterestBoardNamestringfacultatif
Une option propre à Pinterest : titre de l'épingle, tableau, lien de destination ou texte alternatif.
pinterestLinkstringfacultatif
Une option propre à Pinterest : titre de l'épingle, tableau, lien de destination ou texte alternatif.
pinterestAltTextstringfacultatif
Une option propre à Pinterest : titre de l'épingle, tableau, lien de destination ou texte alternatif.
tiktokPrivacyLevelstring (PUBLIC_TO_EVERYONE | MUTUAL_FOLLOW_FRIENDS | SELF_ONLY)facultatif
Une option propre à TikTok : niveau de confidentialité, autorisation des duos, stitches et commentaires, ou contenu de marque.
tiktokDisableDuetbooleanfacultatif
Une option propre à TikTok : niveau de confidentialité, autorisation des duos, stitches et commentaires, ou contenu de marque.
tiktokDisableStitchbooleanfacultatif
Une option propre à TikTok : niveau de confidentialité, autorisation des duos, stitches et commentaires, ou contenu de marque.
tiktokDisableCommentbooleanfacultatif
Une option propre à TikTok : niveau de confidentialité, autorisation des duos, stitches et commentaires, ou contenu de marque.
tiktokBrandContentbooleanfacultatif
Une option propre à TikTok : niveau de confidentialité, autorisation des duos, stitches et commentaires, ou contenu de marque.
mastodonVisibilitystring (public | unlisted | private | direct)facultatif
Une option propre à Mastodon : visibilité, avertissement de contenu ou contenu sensible.
mastodonSpoilerTextstringfacultatif
Une option propre à Mastodon : visibilité, avertissement de contenu ou contenu sensible.
mastodonSensitivebooleanfacultatif
Une option propre à Mastodon : visibilité, avertissement de contenu ou contenu sensible.
blueskyLanguagestringfacultatif
Une option propre à Bluesky : langue de la publication ou qui peut répondre.
blueskyReplyGatingstring (everyone | mentioned | following | nobody)facultatif
Une option propre à Bluesky : langue de la publication ou qui peut répondre.
threadsReplyControlstring (everyone | accounts_you_follow | mentioned_only)facultatif
Une option propre à Threads : qui peut répondre.
redditSubredditstringfacultatif
Une option propre à Reddit : subreddit, titre, type de publication, lien ou flair.
redditTitlestringfacultatif
Une option propre à Reddit : subreddit, titre, type de publication, lien ou flair.
redditPostTypestring (text | link | image | video)facultatif
Une option propre à Reddit : subreddit, titre, type de publication, lien ou flair.
redditUrlstringfacultatif
Une option propre à Reddit : subreddit, titre, type de publication, lien ou flair.
redditFlairstringfacultatif
Une option propre à Reddit : subreddit, titre, type de publication, lien ou flair.
mediumTagsstringfacultatif
Une option propre à Medium : tags ou statut de publication.
mediumPublishStatusstring (public | unlisted | draft)facultatif
Une option propre à Medium : tags ou statut de publication.
substackSendEmailbooleanfacultatif
Une option propre à Substack : envoyer ou non un e-mail aux abonnés.
vimeoTitlestringfacultatif
Une option propre à Vimeo : titre, description, miniature ou confidentialité.
vimeoDescriptionstringfacultatif
Une option propre à Vimeo : titre, description, miniature ou confidentialité.
vimeoThumbnailUrlstringfacultatif
Une option propre à Vimeo : titre, description, miniature ou confidentialité.
vimeoPrivacystring (anybody | unlisted)facultatif
Une option propre à Vimeo : titre, description, miniature ou confidentialité.
dailymotionTitlestringfacultatif
Une option propre à Dailymotion : titre, description, miniature, catégorie, indicateur « pour enfants » ou confidentialité.
dailymotionDescriptionstringfacultatif
Une option propre à Dailymotion : titre, description, miniature, catégorie, indicateur « pour enfants » ou confidentialité.
dailymotionThumbnailUrlstringfacultatif
Une option propre à Dailymotion : titre, description, miniature, catégorie, indicateur « pour enfants » ou confidentialité.
dailymotionCategorystringfacultatif
Une option propre à Dailymotion : titre, description, miniature, catégorie, indicateur « pour enfants » ou confidentialité.
dailymotionIsForKidsbooleanfacultatif
Une option propre à Dailymotion : titre, description, miniature, catégorie, indicateur « pour enfants » ou confidentialité.
dailymotionPrivacystring (public | private)facultatif
Une option propre à Dailymotion : titre, description, miniature, catégorie, indicateur « pour enfants » ou confidentialité.
messageGooglestringfacultatif
Légende pour Google. Requise quand google est sélectionné, sauf en brouillon.
messageFacebookstringfacultatif
Texte partagé pour les plateformes sociales (Facebook, Instagram, X, LinkedIn et les autres). Obligatoire dès que l'une d'elles est sélectionnée, sauf pour une sélection uniquement TikTok ou uniquement YouTube, sauf si la publication est un brouillon. Google ne l'utilise pas : il prend messageGoogle.
captionOverridesobjectfacultatif
Captions that replace the shared caption on one network only, keyed by network: facebook, instagram, linkedin, x, bluesky, mastodon, threads, pinterest (the pin description), tiktok and youtube (the video description). Each is checked against its own network's limit. On update, only the networks you name change; send null or an empty string for one to go back to the shared caption, or null for the whole field to clear them all. Other networks are refused, because they publish the shared caption.
facebookstringfacultatif
instagramstringfacultatif
linkedinstringfacultatif
xstringfacultatif
blueskystringfacultatif
mastodonstringfacultatif
threadsstringfacultatif
pintereststringfacultatif
tiktokstringfacultatif
youtubestringfacultatif
ctaTypestring (learn_more | sign_up | order_online | book | buy | call_now)facultatif
Type d'appel à l'action.
ctaUrlstringfacultatif
URL de destination de l'appel à l'action.
mediaUrlsarray of objectfacultatif
Médias à joindre, une entrée par pièce jointe de plateforme.
urlstringfacultatif
platformstringfacultatif
typestring (image | video)facultatif
eventTitlestringfacultatif
Titre de l'événement ou de l'offre. Requis pour un événement/une offre Google, sauf en brouillon.
eventStartAtstringfacultatif
Date/heure de début de l'événement ou de l'offre, au format horodatage ISO 8601. Requise pour un événement/une offre Google, sauf en brouillon.
eventEndAtstringfacultatif
Date/heure de fin de l'événement ou de l'offre, au format horodatage ISO 8601. Doit être après le début.
offerTermsstringfacultatif
Conditions de l'offre.
offerCouponCodestringfacultatif
Code promo de l'offre.
offerRedeemUrlstringfacultatif
URL d'utilisation de l'offre.
scheduledForstringfacultatif
Publier à ce futur horodatage ISO 8601 au lieu d'immédiatement.
draftbooleanfacultatif
Enregistrer sans publier. Ignore les vérifications de champs requis ; les vérifications structurelles (limites, règles de médias) s'appliquent toujours.
Réponse
dataobjectfacultatif
Des champs internes supplémentaires peuvent être présents mais ne font pas partie du contrat stable — ne vous fiez qu'aux champs documentés ici.
idstringfacultatif
Identifiant unique du post.
namestringfacultatif
Nom/étiquette interne du post.
typestringfacultatif
Type de post (duplicata de postType, conservé pour la compatibilité ascendante).
statusstring (draft | scheduled | paused | publishing | active | partial | error | deleted | expired)facultatif
Statut de cycle de vie de la publication : draft, scheduled, paused, publishing, active, partial (en ligne sur certaines plateformes, en échec sur d'autres), error, deleted ou expired.
targetsarray of objectfacultatif
Une entrée par destination de la publication, avec son propre statut.
connectionIdstringfacultatif
La connexion par laquelle publie cette destination.
platformstringfacultatif
La plateforme de la destination.
statusstringfacultatif
Statut de cet envoi vers la plateforme : pending, publishing, action_required (la plateforme attend une action de l'utilisateur), active, error, deleted ou expired.
errorobjectfacultatif
Présent lorsque cette destination a échoué : le code et le message d'erreur de Synup.
codestringfacultatif
messagestringfacultatif
postTypestring (announcement | event | offer)facultatif
Type de post : announcement, event ou offer.
clientIdstringfacultatif
ID du client auquel appartient ce post.
locationIdstringfacultatif
ID de l'établissement auquel appartient ce post, ou null pour un post de niveau marque.
locationNamestringfacultatif
Nom d'affichage de l'établissement du post, ou null.
clientNamestringfacultatif
Nom d'affichage du client du post, ou null.
platformsarray of stringfacultatif
Les plateformes ciblées par ce post.
messageGooglestringfacultatif
Légende utilisée pour Google, ou null.
messageFacebookstringfacultatif
Légende sociale partagée utilisée par chaque plateforme non-Google, ou null.
ctaTypestringfacultatif
Type d'appel à l'action, ou null.
ctaUrlstringfacultatif
URL de l'appel à l'action, ou null.
ctaUrlFacebookstringfacultatif
URL de l'appel à l'action spécifique à Facebook, ou null.
xThreadbooleanfacultatif
Si le mode fil X est activé (contourne la limite de 280 caractères).
ctaJsonobjectfacultatif
Réglages bruts d'appel à l'action et de ciblage par plateforme.
mediaUrlsarray of objectfacultatif
Médias associés au post, une entrée par pièce jointe de plateforme.
urlstringfacultatif
platformstringfacultatif
typestring (image | video)facultatif
eventTitlestringfacultatif
Titre de l'événement ou de l'offre, ou null.
eventStartAtstringfacultatif
Date/heure de début de l'événement ou de l'offre, au format horodatage ISO 8601, ou null.
eventEndAtstringfacultatif
Date/heure de fin de l'événement ou de l'offre, au format horodatage ISO 8601, ou null.
offerTermsstringfacultatif
Conditions de l'offre, ou null.
offerCouponCodestringfacultatif
Code promo de l'offre, ou null.
offerRedeemUrlstringfacultatif
URL d'utilisation de l'offre, ou null.
scheduledForstringfacultatif
Date/heure de publication programmée du post, au format horodatage ISO 8601, ou null pour publier immédiatement.
createdAtstringfacultatif
Date de création du post, au format horodatage ISO 8601.
performancearray of objectfacultatif
Performance de soumission par plateforme pour ce post.
submissionIdstringfacultatif
Identifiant unique de la soumission à la plateforme.
connectionIdstringfacultatif
ID de la connexion par laquelle cette soumission a été envoyée.
sitestringfacultatif
La plateforme ciblée par cette soumission.
viewsnumberfacultatif
Nombre total de vues, ou null si pas encore disponible.
clicksnumberfacultatif
Nombre total de clics, ou null si pas encore disponible.
reactionsnumberfacultatif
Nombre total de réactions.
sharesnumberfacultatif
Nombre total de partages.
commentsnumberfacultatif
Nombre total de commentaires.
statusstring (pending | publishing | action_required | active | error | deleted | expired)facultatif
Statut de cet envoi vers la plateforme : pending, publishing, action_required (la plateforme attend une action de l'utilisateur), active, error, deleted ou expired.
platformPostIdstringfacultatif
L'identifiant propre à la plateforme pour le post publié, ou null.
postLinkstringfacultatif
URL publique du post publié sur cette plateforme, ou null.
reviewStatestringfacultatif
État de modération Google (processing, live, rejected), ou null pour les autres plateformes.
errorMessagestringfacultatif
Message d'erreur si cette soumission a échoué, ou null.
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.
422Il manque un paramètre requis à la requête, ou elle est invalide.
429Trop de requêtes. Réessayez après le nombre de secondes indiqué dans l'en-tête Retry-After.
patch/api/v1/posts/{id}
Votre clé API
id *
Corps de la requête
{
  "data": {
    "id": "cm_post_abc123",
    "name": "Fall Special Announcement (updated)",
    "type": "announcement",
    "status": "scheduled",
    "postType": "announcement",
    "clientId": "cm_client_1",
    "locationId": "cm_loc_1",
    "platforms": [
      "google",
      "facebook"
    ],
    "messageGoogle": "Join us this weekend — now 25% off all services!",
    "messageFacebook": "Join us this weekend — now 25% off all services!",
    "ctaType": "learn_more",
    "ctaUrl": "https://acmedental.example.com/fall-special",
    "ctaUrlFacebook": null,
    "xThread": false,
    "ctaJson": {
      "ctaType": "learn_more",
      "ctaUrl": "https://acmedental.example.com/fall-special",
      "ctaUrlFacebook": null,
      "xThread": false
    },
    "mediaUrls": [
      {
        "url": "https://cdn.synup.com/uploads/a1/promo.jpg",
        "platform": "facebook",
        "type": "image"
      }
    ],
    "eventTitle": null,
    "eventStartAt": null,
    "eventEndAt": null,
    "offerTerms": null,
    "offerCouponCode": null,
    "offerRedeemUrl": null,
    "scheduledFor": "2026-02-10T15:00:00.000Z",
    "createdAt": "2026-01-20T09:12:00.000Z",
    "performance": []
  }
}

Guides qui utilisent cet endpoint