Configurations par plateforme
Options de configuration spécifiques par plateforme pour publier finement sur YouTube, TikTok, Pinterest, Instagram, Facebook, LinkedIn et la fiche d'établissement Google.
Chaque plateforme possède des fonctionnalités et des paramètres uniques. Utilisez les objets de configuration ci-dessous lors de la création de publications pour personnaliser le comportement par plateforme.
TikTok
| Paramètre | Taper | Description |
|---|---|---|
connectionIdREQUIS | string | L'id du compte de /social-accounts auquel cette configuration s'applique |
title | string | Titre de la vidéo (90 caractères max.) |
caption | string | Texte de description de la vidéo (2200 caractères max.) |
privacyLevelREQUIS | string | PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY |
allowComments | boolean | Autoriser les commentaires sur la vidéo |
allowDuet | boolean | Autoriser les duos |
allowStitch | boolean | Autoriser les assemblages |
sendAsDraft | boolean | Envoyer comme brouillon vers l'application TikTok |
aiGenerated | boolean | Marquer comme contenu généré par IA |
autoAddMusic | boolean | Ajouter automatiquement de la musique à la vidéo |
brandedContent | boolean | Marquer comme contenu de marque |
brandedContentOwnBrand | boolean | Marquer comme promotion de votre propre marque |
{
"tiktokConfigs": [{
"connectionId": "conn_tiktok_001",
"title": "Product Demo",
"privacyLevel": "PUBLIC_TO_EVERYONE",
"allowComments": true,
"allowDuet": false,
"aiGenerated": false
}]
}YouTube
| Paramètre | Taper | Description |
|---|---|---|
connectionIdREQUIS | string | L'id du compte de /social-accounts auquel cette configuration s'applique |
postType | string | VIDEO ou SHORTS |
videoTitle | string | Titre de la vidéo (100 caractères max.) |
tags | string[] | Tags de la vidéo pour la découverte (20 max.) |
privacyStatus | string | public, unlisted ou private |
categoryId | string | Identifiant de catégorie YouTube |
playlistId | string | Ajouter à une playlist après l'envoi |
notifySubscribers | boolean | Notifier les abonnés (par défaut true) |
allowEmbedding | boolean | Autoriser l'intégration sur d'autres sites |
madeForKids | boolean | Marquer comme destiné aux enfants |
aiGenerated | boolean | Déclare un contenu modifié ou synthétique, comme une voix IA, un avatar IA ou des images réalistes générées ou retouchées. YouTube affiche le libellé "Contenu modifié ou synthétique" sur la vidéo. Définit status.containsSyntheticMedia. Fonctionne sur les vidéos et les Shorts. Omettez-le ou envoyez false pour ne pas afficher de libellé. |
license | string | youtube ou creativeCommon |
{
"youtubeConfigs": [{
"connectionId": "conn_yt_001",
"postType": "VIDEO",
"videoTitle": "Weekly Product Update",
"tags": ["product", "update", "tech"],
"privacyStatus": "PUBLIC",
"notifySubscribers": true,
"allowEmbedding": true,
"madeForKids": false
}]
}Choisissez le tableau avec boardId ou boardName. GET /api/v1/social-accounts/:id/pinterest-boards (voir Comptes sociaux) liste l'id et le nom de chaque tableau. Un tableau appartient à un seul compte Pinterest, listez donc les tableaux de chaque compte sur lequel vous publiez. Un boardName est recherché parmi les tableaux du compte de cette configuration au traitement de la requête, et la publication enregistre l'id du tableau trouvé ; le nom lui-même n'est ni enregistré ni renvoyé. Un nom qui ne correspond à aucun tableau, ou à plusieurs, renvoie une 400, et l'épingle ne part jamais sur un autre tableau à la place. Dans une requête groupée, seul cet élément échoue. Sans boardId ni boardName, l'épingle va sur un tableau public nommé AdaptlyPost, qu'AdaptlyPost crée sur le compte Pinterest la première fois qu'il en a besoin.
| Paramètre | Taper | Description |
|---|---|---|
connectionIdREQUIS | string | L'id du compte de /social-accounts auquel cette configuration s'applique |
boardId | string | Identifiant du tableau Pinterest où épingler. Passez boardId ou boardName, pas les deux. Sans aucun des deux, l'épingle va sur un tableau public nommé AdaptlyPost |
boardName | string | Nom du tableau où épingler, à la place de boardId. 180 caractères au maximum. Une correspondance exacte l'emporte ; à défaut, une correspondance unique sans tenir compte de la casse est utilisée. Un nom qui ne correspond à aucun tableau ou à plusieurs renvoie une 400 |
title | string | Titre de l'épingle (100 caractères max.) |
link | string | URL de destination lors du clic sur l'épingle |
{
"pinterestConfigs": [{
"connectionId": "conn_pin_001",
"boardId": "board_123",
"title": "Summer Collection 2026",
"link": "https://example.com/summer-collection"
}]
}| Paramètre | Taper | Description |
|---|---|---|
connectionIdREQUIS | string | L'id du compte de /social-accounts auquel cette configuration s'applique |
postType | string | FEED, REEL ou STORY. FEED accepte tous les types de contenu, REEL exige VIDEO, STORY exige IMAGE, VIDEO ou CAROUSEL ; une story CAROUSEL publie chaque élément comme sa propre story, dans l’ordre. Toute autre combinaison renvoie 400. Les vidéos du fil et les Reels peuvent durer jusqu’à 15 minutes |
shareToStory | boolean | Publie aussi les mêmes médias en story à côté de la publication FEED ou REEL. La story est une entrée à part dans platforms avec postType STORY : elle réussit, échoue et se relance seule. Elle ne reprend ni la légende, ni le premier commentaire, ni la couverture, ni les collaborateurs, ni l’essai, ni l’audio, exige IMAGE, VIDEO ou CAROUSEL, et une vidéo dure au plus 60 secondes. Ignoré quand postType vaut STORY |
trialGraduation | string | Publie le reel en reel d'essai, montré d'abord aux non-abonnés. MANUAL : vous le partagez avec vos abonnés dans l'app Instagram. SS_PERFORMANCE : Instagram le partage s'il fonctionne bien. Reels vidéo uniquement ; omettez-le pour un reel normal |
collaborators | string[] | Jusqu'à 3 noms d'utilisateur Instagram invités comme collaborateurs (Instagram Collab). Le @ initial est retiré. Fonctionne sur les images du fil, les carrousels et les reels, pas sur les stories ni les reels d'essai. Chaque collaborateur accepte l'invitation dans Instagram avant que la publication apparaisse sur son profil. |
userTags | object[] | Jusqu'à 20 comptes Instagram publics identifiés dans le média, chacun { username, x, y }. Fonctionne sur une seule image, une seule vidéo (Reel) ou une seule story, pas sur les carrousels. x et y vont de 0 à 1 sur l'image, depuis le coin supérieur gauche, et chaque identification sur une image du fil a besoin des deux. Une story peut les omettre, et une vidéo les ignore, car la personne est identifiée sur toute la vidéo. Le @ initial est retiré. Si Instagram refuse une identification parce que le compte est privé ou n'existe pas, la publication part sans identifications et instagramUntaggedUsernames liste les noms refusés. |
aiGenerated | boolean | Indique que la publication a été créée ou modifiée avec l'IA. Instagram affiche le libellé "Infos IA" sur la publication. Fonctionne sur les images, les carrousels, les reels et les stories, et la story créée avec shareToStory porte aussi le libellé. |
audio | InstagramAudio | Une musique ou un son original ajouté au Reel. Exige contentType VIDEO, un postType autre que STORY et un compte avec supportsInstagramAudio: true. Consultez Audio Instagram ci-dessous |
{
"contentType": "VIDEO",
"instagramConfigs": [{
"connectionId": "conn_ig_001",
"postType": "REEL",
"shareToStory": true,
"collaborators": ["@partnerbrand"],
"audio": {
"audioId": "1234567890123456",
"title": "Summer Nights",
"artist": "The Example Band",
"audioVolume": 60,
"videoVolume": 100
}
}]
}Audio Instagram
Trouvez un audioId avec GET /api/v1/social-accounts/:id/instagram-audio (voir Comptes sociaux), puis passez-le dans instagramConfigs[].audio.
| Paramètre | Taper | Description |
|---|---|---|
audioIdREQUIS | string | L’audioId issu de la recherche d’audio |
title | string | Titre du morceau, enregistré pour l’affichage uniquement (255 caractères max.) |
artist | string | Artiste ou créateur, enregistré pour l’affichage uniquement (255 caractères max.) |
audioVolume | number | Volume de l’audio ajouté, de 1 à 100 (100 par défaut) |
videoVolume | number | Volume du son d’origine de la vidéo, de 1 à 100 (100 par défaut) |
| Paramètre | Taper | Description |
|---|---|---|
pageIdREQUIS | string | La page Facebook à laquelle cette configuration s'applique, telle qu'envoyée dans pageIds |
postType | string | FEED, REEL ou STORY. FEED accepte tous les types de contenu, REEL exige VIDEO, STORY exige IMAGE, VIDEO ou CAROUSEL ; une story CAROUSEL publie chaque élément comme sa propre story, dans l’ordre. Toute autre combinaison renvoie 400 |
shareToStory | boolean | Publie aussi les mêmes médias en story à côté de la publication FEED ou REEL. La story est une entrée à part dans platforms avec postType STORY : elle réussit, échoue et se relance seule. Elle ne reprend ni la légende, ni le titre de la vidéo, ni le fond de texte, exige IMAGE, VIDEO ou CAROUSEL, et une vidéo dure au plus 60 secondes. Ignoré quand postType vaut STORY |
videoTitle | string | Titre pour les publications vidéo (255 caractères max.) |
textFormatPresetId | string | Arrière-plan Facebook d'une publication texte, sous forme d'identifiant numérique Facebook (106018623298955 est un violet uni). Publications TEXT uniquement, sans média, 130 caractères maximum ; tout le reste renvoie 400. Les liens s'affichent sans aperçu, et si Facebook refuse l'arrière-plan, la publication part en texte simple |
imageLayout | string | GRID (par défaut) affiche plusieurs images en grille de photos. CAROUSEL les affiche en cartes à faire défiler, chacune avec son propre lien. Un carrousel nécessite 2 à 5 images, aucune vidéo, postType FEED et une entrée carouselCards par image ; tout autre cas renvoie 400 |
carouselCards | array | Une carte par image, dans le même ordre que les médias, utilisée quand imageLayout vaut CAROUSEL. Chaque carte a link (obligatoire, http ou https), title (jusqu'à 100 caractères) et description (jusqu'à 200). Facebook n'affiche votre image et votre titre que pour les liens vers un site qui appartient à la Page ; pour tout autre lien, la publication échoue et indique pourquoi |
| Paramètre | Taper | Description |
|---|---|---|
connectionIdREQUIS | string | L'id du compte de /social-accounts auquel cette configuration s'applique |
documentTitle | string | Titre affiché sur une publication DOCUMENT (100 caractères max.). Par défaut, le nom du fichier ; ignoré pour les autres types de contenu |
reshareOf | string | Une publication LinkedIn à partager, avec le texte de la publication comme commentaire : un URN urn:li:share: ou urn:li:ugcPost:, ou une URL de publication LinkedIn qui en contient un, comme /feed/update/urn:li:share:7123/ ou le lien d'intégration de la publication (500 caractères max.). Aucun média n'est joint sur ce compte ; les autres plateformes de la publication le reçoivent toujours. Un URN d'activité ou une URL /posts/...-activity-... renvoie 400 |
{
"contentType": "DOCUMENT",
"mediaUrls": ["https://cdn.adaptlypost.com/.../q3-results.pdf"],
"linkedinConnectionIds": ["conn_li_001"],
"linkedinConfigs": [{
"connectionId": "conn_li_001",
"documentTitle": "Q3 results"
}]
}Fiche d'établissement Google
La fiche d’établissement Google accepte les publications TEXT ou IMAGE avec une image JPEG ou PNG de 5 Mo maximum et un texte de 1500 caractères maximum. Elle n’a pas de texte alternatif. Un établissement sans configuration publie une actualité STANDARD.
| Paramètre | Taper | Description |
|---|---|---|
connectionIdREQUIS | string | L'id du compte de /social-accounts auquel cette configuration s'applique |
topicTypeREQUIS | string | STANDARD, EVENT ou OFFER. EVENT et OFFER exigent eventTitle, eventStart et eventEnd |
callToActionType | string | BOOK, ORDER, SHOP, LEARN_MORE, SIGN_UP ou CALL. CALL utilise le numéro de téléphone de la fiche d'établissement |
callToActionUrl | string | Destination du bouton. Obligatoire pour tous les boutons sauf CALL |
eventTitle | string | Titre de l'événement ou de l'offre |
eventStart | string | Début dans l'heure locale de l'établissement, au format YYYY-MM-DD ou YYYY-MM-DDTHH:mm, sans fuseau horaire |
eventEnd | string | Fin dans l'heure locale de l'établissement, au format YYYY-MM-DD ou YYYY-MM-DDTHH:mm, sans fuseau horaire |
offerCouponCode | string | Code promo affiché sur l'offre |
offerRedeemUrl | string | Lien où les clients profitent de l'offre |
offerTerms | string | Conditions de l'offre |
{
"googleBusinessConfigs": [{
"connectionId": "conn_gbp_001",
"topicType": "EVENT",
"eventTitle": "Live music night",
"eventStart": "2026-10-16T19:00",
"eventEnd": "2026-10-16T23:00",
"callToActionType": "LEARN_MORE",
"callToActionUrl": "https://example.com/events/live-music"
}]
}Tumblr
| Paramètre | Taper | Description |
|---|---|---|
connectionIdREQUIS | string | L'id du compte de /social-accounts auquel cette configuration s'applique |
tags | string[] | Jusqu'à 30 tags de 140 caractères maximum chacun, sans virgule. Le # initial est retiré |
title | string | Titre affiché au-dessus du post, jusqu'à 4 096 caractères |
sourceUrl | string | Lien http ou https crédité comme source, jusqu'à 2 048 caractères |
{
"tumblrConfigs": [{
"connectionId": "conn_tumblr_001",
"title": "Studio notes, week 12",
"tags": ["art process", "sketchbook"],
"sourceUrl": "https://example.com/blog/studio-notes"
}]
}