REST APIGET

Commentaires de la boîte de réception

Listez les commentaires sur vos publications Facebook, Instagram, Threads, YouTube, LinkedIn, Bluesky et Mastodon, puis répondez, masquez, aimez, supprimez ou marquez-les comme traités.

GEThttps://post.adaptlypost.com/post/api/v1/inbox/comments

Renvoie les commentaires sur les publications de vos comptes, du plus récent au plus ancien. Répond { comments, total, hasMore, nextCursor }.

Clé API (jeton Bearer)
Permission:inbox.readRôles et permissions

Tous les rôles détiennent inbox.read, donc toute clé valide peut lire la boîte de réception.

Paramètres de requête

ParamètreTaperDescription
accountIdsstring[]Uniquement ces comptes, par l'id de GET /social-accounts. Répétez la clé ou séparez les valeurs par des virgules. Jusqu'à 50
platformsPlatformType[]Uniquement ces plateformes. Répétez la clé ou séparez les valeurs par des virgules
statusesInboxStatus[]Uniquement les éléments dans ces états : UNREAD, READ ou DONE. Répétez la clé ou séparez les valeurs par des virgules
sincestring (ISO 8601)Uniquement les éléments créés sur la plateforme à partir de cette date et heure
searchstringTexte à rechercher
postIdstringUniquement les commentaires sur cette publication AdaptlyPost, par son id de /social-posts
platformPostIdstringUniquement les commentaires sur cette publication, par l'id de publication propre à la plateforme
limitnumberÉléments par page, de 1 à 100. 25 par défaut
cursorstringLe nextCursor de la page précédente. nextCursor vaut null sur la dernière page

Environ 10 minutes, pas en temps réel

AdaptlyPost lit chaque compte connecté toutes les 10 minutes et garde ce qu'il trouve. Les listes répondent à partir de cette copie, donc un nouveau commentaire, une mention, un message ou un avis apparaît en environ 10 minutes. POST /api/v1/inbox/refresh demande une lecture immédiate. Les événements de webhook viennent des mêmes lectures.

Canaux qui demandent une reconnexion

Tous les canaux sont ouverts à l'API. Quand une connexion n'a pas la permission de la plateforme pour un canal ou une action, y compris les permissions que la plateforme examine encore pour AdaptlyPost, GET /api/v1/inbox/summary affiche le canal en RECONNECT_REQUIRED et chaque écriture sur ce canal répond 403 inbox_reconnect_required. Un jeton expiré répond de la même façon. Demandez à l'utilisateur de reconnecter le compte dans AdaptlyPost ; réessayer ne sert à rien.

Champs d'un commentaire

ChampDescription
idId du commentaire. Utilisez-le avec les endpoints ci-dessous
accountIdLe compte auquel appartient l'élément : son id de GET /social-accounts
platformLa plateforme, en PlatformType
accountNameNom affiché de ce compte
postIdL'id de la publication AdaptlyPost, ou null quand la publication n'a pas été publiée via AdaptlyPost
platformPostIdL'id, sur la plateforme, de la publication commentée
postTextTexte de cette publication
postPermalinkLien vers cette publication
platformCommentIdL'id du commentaire sur la plateforme
parentPlatformCommentIdL'id, sur la plateforme, du commentaire auquel celui-ci répond, ou null pour un commentaire de premier niveau
isReplytrue quand le commentaire répond à un autre commentaire
authorL'auteur : id (l'id utilisateur de la plateforme), name, username et avatarUrl. id, username et avatarUrl peuvent valoir null
textLe texte du commentaire
permalinkLien public sur la plateforme, ou null quand la plateforme n'en donne pas
likeCountNombre de j'aime du commentaire, ou null quand la plateforme ne le communique pas
createdAtDate de création sur la plateforme
statusUNREAD, READ ou DONE. Seul AdaptlyPost garde cet état ; la plateforme ne le voit pas
isHiddentrue quand le commentaire est masqué sur la plateforme
isOwntrue quand votre compte l'a écrit
repliedtrue quand votre compte a une réponse en dessous, envoyée depuis AdaptlyPost ou depuis l'application de la plateforme
repliedAtDate de la dernière réponse de votre compte, ou null
likedByAccounttrue quand votre compte l'a aimé
capabilitiescanReply, canHide, canDelete et canLike : ce que ce commentaire permet. Vérifiez-les avant d'appeler une action

Lire un fil

GEThttps://post.adaptlypost.com/post/api/v1/inbox/comments/:id

Renvoie { comment, parent, replies } : le commentaire, le commentaire auquel il répond (null pour un commentaire de premier niveau) et les réponses en dessous. Un id inconnu répond 404 inbox_item_not_found.

Clé API (jeton Bearer)
Permission:inbox.readRôles et permissions

Répondre à un commentaire

POSThttps://post.adaptlypost.com/post/api/v1/inbox/comments/:id/reply

Publie une réponse du compte sous le commentaire et répond 201 avec la nouvelle réponse sous forme de commentaire.

Clé API (jeton Bearer)
Permission:inbox.replyRôles et permissions

Les écritures exigent inbox.reply (Administrateur et Éditeur) et un abonnement AdaptlyPost actif. Sans abonnement, elles répondent 403 subscription_required.

Paramètres du corps

ParamètreTaperDescription
textREQUISstringLa réponse. Elle suit la limite de commentaire de la plateforme : LinkedIn 1250, Threads 500, Bluesky 300, Mastodon 500, YouTube 10000, Facebook 8000 et Instagram 2200 caractères

Masquer, aimer et supprimer

Chaque action répond 400 inbox_action_unsupported quand la plateforme ou le commentaire ne la permet pas. capabilities sur le commentaire vous l'indique à l'avance.

POSThttps://post.adaptlypost.com/post/api/v1/inbox/comments/:id/hide

Masque le commentaire sur la plateforme et répond 200 avec le commentaire.

Clé API (jeton Bearer)
Permission:inbox.replyRôles et permissions
POSThttps://post.adaptlypost.com/post/api/v1/inbox/comments/:id/unhide

Affiche à nouveau un commentaire masqué et répond 200 avec le commentaire.

Clé API (jeton Bearer)
Permission:inbox.replyRôles et permissions
POSThttps://post.adaptlypost.com/post/api/v1/inbox/comments/:id/like

Aime le commentaire depuis le compte et répond 200 avec le commentaire.

Clé API (jeton Bearer)
Permission:inbox.replyRôles et permissions
DELETEhttps://post.adaptlypost.com/post/api/v1/inbox/comments/:id/like

Retire le j'aime du compte et répond 200 avec le commentaire.

Clé API (jeton Bearer)
Permission:inbox.replyRôles et permissions
DELETEhttps://post.adaptlypost.com/post/api/v1/inbox/comments/:id

Supprime le commentaire sur la plateforme et de la boîte de réception AdaptlyPost, et répond 200 { "deleted": true }.

Clé API (jeton Bearer)
Permission:inbox.replyRôles et permissions

Suppression et j'aime par plateforme

Ce que chaque plateforme permet au compte de supprimer et d'aimer. Sur Threads, la suppression exige la permission threads_delete, donc une connexion Threads ancienne répond 403 inbox_reconnect_required jusqu'à sa reconnexion.

PlateformeSuppressionJ'aime et retrait
FACEBOOKTout commentaire sur les publications de la PageOui
INSTAGRAMTout commentaire sur les publications du compteNon
YOUTUBEUniquement les commentaires de la chaîne elle-mêmeNon
THREADSUniquement les réponses du compte lui-mêmeNon
BLUESKYUniquement les réponses du compte lui-mêmeOui
MASTODONUniquement les réponses du compte lui-mêmeOui, en favori
LINKEDINTout commentaire sur les publications de l'organisationOui

Marquer comme lu ou traité

POSThttps://post.adaptlypost.com/post/api/v1/inbox/comments/status

Définit le statut de 100 commentaires au plus et répond { comments, unreadCount }.

Clé API (jeton Bearer)
Permission:inbox.replyRôles et permissions

Paramètres du corps

ParamètreTaperDescription
idsREQUISstring[]De 1 à 100 ids issus de la liste
statusREQUISInboxStatusUNREAD, READ ou DONE

Refus

Un appel refusé répond { statusCode, error, code, message }. Basez-vous sur code. message explique le refus en clair.

CodeStatutQuand, et que faire
inbox_item_not_found404L'id n'existe pas ou appartient à un autre espace de travail. Arrêtez
inbox_action_unsupported400La plateforme, ou cet élément, ne permet pas ce masquage, cette suppression ou ce j'aime. capabilities indique ce qui s'applique. Arrêtez
inbox_reconnect_required403La connexion n'a pas la permission pour ce canal ou cette action, y compris une permission encore en examen par la plateforme, ou son jeton a expiré. Demandez à l'utilisateur de reconnecter le compte dans AdaptlyPost. Ne réessayez pas
inbox_reply_invalid400Le texte est vide ou dépasse la limite. Le message indique la limite. Corrigez le texte
inbox_messaging_window_closed400Facebook ou Instagram : la fenêtre de réponse de 24 heures est passée. Arrêtez
inbox_rate_limited429La plateforme a limité le débit d'AdaptlyPost. Réessayez plus tard
inbox_platform_error503La plateforme a échoué. Réessayez plus tard
permission_denied403Le rôle de la clé n'a pas inbox.read ou inbox.reply. Ne réessayez pas
subscription_required403Une écriture sans abonnement AdaptlyPost actif. Ne réessayez pas
Lister les commentaires non lus
curl --request GET \
  --url 'https://post.adaptlypost.com/post/api/v1/inbox/comments?statuses=UNREAD&platforms=INSTAGRAM,FACEBOOK&limit=25' \
  --header 'Authorization: Bearer <api-key>'
Lire un fil de commentaires
curl --request GET \
  --url https://post.adaptlypost.com/post/api/v1/inbox/comments/cmt_8f2a1c40 \
  --header 'Authorization: Bearer <api-key>'

200
{
  "comment": { "id": "cmt_8f2a1c40", "isReply": false, "...": "..." },
  "parent": null,
  "replies": [
    { "id": "cmt_9b31d7e2", "isReply": true, "isOwn": true, "...": "..." }
  ]
}
Répondre à un commentaire
curl --request POST \
  --url https://post.adaptlypost.com/post/api/v1/inbox/comments/cmt_8f2a1c40/reply \
  --header 'Authorization: Bearer <api-key>' \
  --header 'Content-Type: application/json' \
  --data '{ "text": "Thanks Ana, the new plan starts on Monday." }'
Masquer, aimer ou supprimer un commentaire
curl --request POST \
  --url https://post.adaptlypost.com/post/api/v1/inbox/comments/cmt_8f2a1c40/hide \
  --header 'Authorization: Bearer <api-key>'

curl --request POST \
  --url https://post.adaptlypost.com/post/api/v1/inbox/comments/cmt_8f2a1c40/like \
  --header 'Authorization: Bearer <api-key>'

curl --request DELETE \
  --url https://post.adaptlypost.com/post/api/v1/inbox/comments/cmt_8f2a1c40 \
  --header 'Authorization: Bearer <api-key>'
Marquer des commentaires comme traités
curl --request POST \
  --url https://post.adaptlypost.com/post/api/v1/inbox/comments/status \
  --header 'Authorization: Bearer <api-key>' \
  --header 'Content-Type: application/json' \
  --data '{ "ids": ["cmt_8f2a1c40", "cmt_7c02e9a1"], "status": "DONE" }'
200
{
  "comments": [
    {
      "id": "cmt_8f2a1c40",
      "accountId": "conn_ig_001",
      "platform": "INSTAGRAM",
      "accountName": "adaptlypost",
      "postId": "cmm0z0k3q0000i0r5mxn0hfhs",
      "platformPostId": "18034417852490123",
      "postText": "Plan a week of posts in one sitting",
      "postPermalink": "https://www.instagram.com/p/C9x2Lm0tQ1a/",
      "platformCommentId": "17890455123456789",
      "parentPlatformCommentId": null,
      "isReply": false,
      "author": {
        "id": "17841400000000001",
        "name": "Ana Souza",
        "username": "ana.souza",
        "avatarUrl": null
      },
      "text": "Does this work with Reels too?",
      "permalink": null,
      "likeCount": 2,
      "createdAt": "2026-11-08T09:12:44.000Z",
      "status": "UNREAD",
      "isHidden": false,
      "isOwn": false,
      "replied": false,
      "repliedAt": null,
      "likedByAccount": false,
      "capabilities": {
        "canReply": true,
        "canHide": true,
        "canDelete": true,
        "canLike": false
      }
    }
  ],
  "total": 12,
  "hasMore": false,
  "nextCursor": null
}