REST APIGET

Comentários da caixa de entrada

Liste os comentários nas suas publicações no Facebook, Instagram, Threads, YouTube, LinkedIn, Bluesky e Mastodon, e responda, oculte, curta, exclua ou marque como concluídos.

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

Retorna os comentários nas publicações das suas contas, os mais novos primeiro. Responde { comments, total, hasMore, nextCursor }.

Chave API (Bearer token)
Permissão:inbox.readPapéis e permissões

Todos os papéis têm inbox.read, então qualquer chave válida pode ler a caixa de entrada.

Parâmetros de consulta

ParâmetroTipoDescrição
accountIdsstring[]Só estas contas, pelo id de GET /social-accounts. Repita a chave ou separe os valores com vírgulas. Até 50
platformsPlatformType[]Só estas plataformas. Repita a chave ou separe os valores com vírgulas
statusesInboxStatus[]Só itens nestes estados: UNREAD, READ ou DONE. Repita a chave ou separe os valores com vírgulas
sincestring (ISO 8601)Só itens criados na plataforma nesta data e hora ou depois
searchstringTexto a procurar
postIdstringSó comentários nesta publicação do AdaptlyPost, pelo id dela em /social-posts
platformPostIdstringSó comentários nesta publicação, pelo id da própria plataforma
limitnumberItens por página, de 1 a 100. Padrão 25
cursorstringO nextCursor da página anterior. nextCursor é null na última página

Cerca de 10 minutos, não em tempo real

O AdaptlyPost lê cada conta conectada a cada 10 minutos e guarda o que encontra. As listas respondem a partir dessa cópia, então um novo comentário, menção, mensagem ou avaliação aparece em cerca de 10 minutos. POST /api/v1/inbox/refresh pede uma leitura agora. Os eventos de webhook vêm das mesmas leituras.

Canais que precisam de reconexão

Todos os canais estão abertos à API. Quando uma conexão não tem a permissão da plataforma para um canal ou ação, incluindo permissões que a plataforma ainda está analisando para o AdaptlyPost, GET /api/v1/inbox/summary mostra o canal como RECONNECT_REQUIRED e toda escrita nele responde 403 inbox_reconnect_required. Um token expirado responde o mesmo. Peça ao usuário que reconecte a conta no AdaptlyPost; tentar de novo não ajuda.

Campos de um comentário

CampoDescrição
idID do comentário. Use com os endpoints abaixo
accountIdA conta a que o item pertence: o id dela em GET /social-accounts
platformA plataforma, como PlatformType
accountNameNome de exibição dessa conta
postIdO id da publicação no AdaptlyPost, ou null quando a publicação não foi feita pelo AdaptlyPost
platformPostIdO id, na plataforma, da publicação em que está o comentário
postTextTexto dessa publicação
postPermalinkLink para essa publicação
platformCommentIdO id do comentário na plataforma
parentPlatformCommentIdO id, na plataforma, do comentário que este responde, ou null para um comentário de primeiro nível
isReplyTrue quando o comentário responde a outro comentário
authorQuem escreveu: id (o id de usuário na plataforma), name, username e avatarUrl. id, username e avatarUrl podem ser null
textO texto do comentário
permalinkLink público na plataforma, ou null quando a plataforma não fornece um
likeCountCurtidas no comentário, ou null quando a plataforma não as informa
createdAtQuando foi criado na plataforma
statusUNREAD, READ ou DONE. Só o AdaptlyPost guarda esse estado; a plataforma não o vê
isHiddenTrue quando o comentário está oculto na plataforma
isOwnTrue quando sua conta o escreveu
repliedTrue quando sua conta tem uma resposta abaixo dele, enviada pelo AdaptlyPost ou pelo próprio app da plataforma
repliedAtQuando sua conta respondeu pela última vez, ou null
likedByAccountTrue quando sua conta o curtiu
capabilitiescanReply, canHide, canDelete e canLike: o que este comentário permite. Confira antes de chamar uma ação

Ler uma conversa

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

Retorna { comment, parent, replies }: o comentário, o comentário que ele responde (null para um comentário de primeiro nível) e as respostas abaixo dele. Um id desconhecido responde 404 inbox_item_not_found.

Chave API (Bearer token)
Permissão:inbox.readPapéis e permissões

Responder a um comentário

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

Publica uma resposta da conta abaixo do comentário e responde 201 com a nova resposta como comentário.

Chave API (Bearer token)
Permissão:inbox.replyPapéis e permissões

As escritas exigem inbox.reply (Administrador e Editor) e um plano ativo do AdaptlyPost. Sem o plano, respondem 403 subscription_required.

Parâmetros do corpo

ParâmetroTipoDescrição
textOBRIGATÓRIOstringA resposta. Segue o limite de comentários da plataforma: LinkedIn 1250, Threads 500, Bluesky 300, Mastodon 500, YouTube 10000, Facebook 8000 e Instagram 2200 caracteres

Ocultar, curtir e excluir

Cada ação responde 400 inbox_action_unsupported quando a plataforma ou o comentário não a permite. capabilities no comentário informa isso de antemão.

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

Oculta o comentário na plataforma e responde 200 com o comentário.

Chave API (Bearer token)
Permissão:inbox.replyPapéis e permissões
POSThttps://post.adaptlypost.com/post/api/v1/inbox/comments/:id/unhide

Volta a mostrar um comentário oculto e responde 200 com o comentário.

Chave API (Bearer token)
Permissão:inbox.replyPapéis e permissões
POSThttps://post.adaptlypost.com/post/api/v1/inbox/comments/:id/like

Curte o comentário pela conta e responde 200 com o comentário.

Chave API (Bearer token)
Permissão:inbox.replyPapéis e permissões
DELETEhttps://post.adaptlypost.com/post/api/v1/inbox/comments/:id/like

Remove a curtida da conta e responde 200 com o comentário.

Chave API (Bearer token)
Permissão:inbox.replyPapéis e permissões
DELETEhttps://post.adaptlypost.com/post/api/v1/inbox/comments/:id

Exclui o comentário na plataforma e da caixa de entrada do AdaptlyPost, e responde 200 { "deleted": true }.

Chave API (Bearer token)
Permissão:inbox.replyPapéis e permissões

Excluir e curtir por plataforma

O que cada plataforma deixa a conta excluir e curtir. No Threads, excluir exige a permissão threads_delete, então uma conexão antiga do Threads responde 403 inbox_reconnect_required até ser reconectada.

PlataformaExcluirCurtir e descurtir
FACEBOOKQualquer comentário nas publicações da PáginaSim
INSTAGRAMQualquer comentário nas publicações da contaNão
YOUTUBESó os comentários do próprio canalNão
THREADSSó as respostas da própria contaNão
BLUESKYSó as respostas da própria contaSim
MASTODONSó as respostas da própria contaSim, como favorito
LINKEDINQualquer comentário nas publicações da organizaçãoSim

Marcar como lido ou concluído

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

Define o status de até 100 comentários e responde { comments, unreadCount }.

Chave API (Bearer token)
Permissão:inbox.replyPapéis e permissões

Parâmetros do corpo

ParâmetroTipoDescrição
idsOBRIGATÓRIOstring[]De 1 a 100 ids da lista
statusOBRIGATÓRIOInboxStatusUNREAD, READ ou DONE

Recusas

Uma chamada recusada responde { statusCode, error, code, message }. Decida pelo code. message explica a recusa em palavras.

CódigoStatusQuando, e o que fazer
inbox_item_not_found404O id não existe ou pertence a outro espaço de trabalho. Pare
inbox_action_unsupported400A plataforma, ou este item, não permite ocultar, excluir ou curtir. capabilities diz o que se aplica. Pare
inbox_reconnect_required403A conexão não tem a permissão para este canal ou ação, incluindo uma ainda em análise pela plataforma, ou o token expirou. Peça ao usuário que reconecte a conta no AdaptlyPost. Não tente de novo
inbox_reply_invalid400O texto está vazio ou passa do limite. A mensagem informa o limite. Corrija o texto
inbox_messaging_window_closed400Facebook ou Instagram: a janela de resposta de 24 horas já passou. Pare
inbox_rate_limited429A plataforma limitou as chamadas do AdaptlyPost. Tente de novo depois de um tempo
inbox_platform_error503A plataforma falhou. Tente de novo mais tarde
permission_denied403O papel da chave não tem inbox.read ou inbox.reply. Não tente de novo
subscription_required403Uma escrita sem plano ativo do AdaptlyPost. Não tente de novo
Listar comentários não lidos
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>'
Ler uma conversa de comentários
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, "...": "..." }
  ]
}
Responder a um comentário
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." }'
Ocultar, curtir ou excluir um comentário
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>'
Marcar comentários como concluídos
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
}