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.
https://post.adaptlypost.com/post/api/v1/inbox/commentsRetorna os comentários nas publicações das suas contas, os mais novos primeiro. Responde { comments, total, hasMore, nextCursor }.
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âmetro | Tipo | Descrição |
|---|---|---|
accountIds | string[] | Só estas contas, pelo id de GET /social-accounts. Repita a chave ou separe os valores com vírgulas. Até 50 |
platforms | PlatformType[] | Só estas plataformas. Repita a chave ou separe os valores com vírgulas |
statuses | InboxStatus[] | Só itens nestes estados: UNREAD, READ ou DONE. Repita a chave ou separe os valores com vírgulas |
since | string (ISO 8601) | Só itens criados na plataforma nesta data e hora ou depois |
search | string | Texto a procurar |
postId | string | Só comentários nesta publicação do AdaptlyPost, pelo id dela em /social-posts |
platformPostId | string | Só comentários nesta publicação, pelo id da própria plataforma |
limit | number | Itens por página, de 1 a 100. Padrão 25 |
cursor | string | O 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
| Campo | Descrição |
|---|---|
id | ID do comentário. Use com os endpoints abaixo |
accountId | A conta a que o item pertence: o id dela em GET /social-accounts |
platform | A plataforma, como PlatformType |
accountName | Nome de exibição dessa conta |
postId | O id da publicação no AdaptlyPost, ou null quando a publicação não foi feita pelo AdaptlyPost |
platformPostId | O id, na plataforma, da publicação em que está o comentário |
postText | Texto dessa publicação |
postPermalink | Link para essa publicação |
platformCommentId | O id do comentário na plataforma |
parentPlatformCommentId | O id, na plataforma, do comentário que este responde, ou null para um comentário de primeiro nível |
isReply | True quando o comentário responde a outro comentário |
author | Quem escreveu: id (o id de usuário na plataforma), name, username e avatarUrl. id, username e avatarUrl podem ser null |
text | O texto do comentário |
permalink | Link público na plataforma, ou null quando a plataforma não fornece um |
likeCount | Curtidas no comentário, ou null quando a plataforma não as informa |
createdAt | Quando foi criado na plataforma |
status | UNREAD, READ ou DONE. Só o AdaptlyPost guarda esse estado; a plataforma não o vê |
isHidden | True quando o comentário está oculto na plataforma |
isOwn | True quando sua conta o escreveu |
replied | True quando sua conta tem uma resposta abaixo dele, enviada pelo AdaptlyPost ou pelo próprio app da plataforma |
repliedAt | Quando sua conta respondeu pela última vez, ou null |
likedByAccount | True quando sua conta o curtiu |
capabilities | canReply, canHide, canDelete e canLike: o que este comentário permite. Confira antes de chamar uma ação |
Ler uma conversa
https://post.adaptlypost.com/post/api/v1/inbox/comments/:idRetorna { 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.
Responder a um comentário
https://post.adaptlypost.com/post/api/v1/inbox/comments/:id/replyPublica uma resposta da conta abaixo do comentário e responde 201 com a nova resposta como comentário.
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âmetro | Tipo | Descrição |
|---|---|---|
textOBRIGATÓRIO | string | A 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.
https://post.adaptlypost.com/post/api/v1/inbox/comments/:id/hideOculta o comentário na plataforma e responde 200 com o comentário.
https://post.adaptlypost.com/post/api/v1/inbox/comments/:id/unhideVolta a mostrar um comentário oculto e responde 200 com o comentário.
https://post.adaptlypost.com/post/api/v1/inbox/comments/:id/likeCurte o comentário pela conta e responde 200 com o comentário.
https://post.adaptlypost.com/post/api/v1/inbox/comments/:id/likeRemove a curtida da conta e responde 200 com o comentário.
https://post.adaptlypost.com/post/api/v1/inbox/comments/:idExclui o comentário na plataforma e da caixa de entrada do AdaptlyPost, e responde 200 { "deleted": true }.
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.
| Plataforma | Excluir | Curtir e descurtir |
|---|---|---|
FACEBOOK | Qualquer comentário nas publicações da Página | Sim |
INSTAGRAM | Qualquer comentário nas publicações da conta | Não |
YOUTUBE | Só os comentários do próprio canal | Não |
THREADS | Só as respostas da própria conta | Não |
BLUESKY | Só as respostas da própria conta | Sim |
MASTODON | Só as respostas da própria conta | Sim, como favorito |
LINKEDIN | Qualquer comentário nas publicações da organização | Sim |
Marcar como lido ou concluído
https://post.adaptlypost.com/post/api/v1/inbox/comments/statusDefine o status de até 100 comentários e responde { comments, unreadCount }.
Parâmetros do corpo
| Parâmetro | Tipo | Descrição |
|---|---|---|
idsOBRIGATÓRIO | string[] | De 1 a 100 ids da lista |
statusOBRIGATÓRIO | InboxStatus | UNREAD, READ ou DONE |
Recusas
Uma chamada recusada responde { statusCode, error, code, message }. Decida pelo code. message explica a recusa em palavras.
| Código | Status | Quando, e o que fazer |
|---|---|---|
inbox_item_not_found | 404 | O id não existe ou pertence a outro espaço de trabalho. Pare |
inbox_action_unsupported | 400 | A plataforma, ou este item, não permite ocultar, excluir ou curtir. capabilities diz o que se aplica. Pare |
inbox_reconnect_required | 403 | A 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_invalid | 400 | O texto está vazio ou passa do limite. A mensagem informa o limite. Corrija o texto |
inbox_messaging_window_closed | 400 | Facebook ou Instagram: a janela de resposta de 24 horas já passou. Pare |
inbox_rate_limited | 429 | A plataforma limitou as chamadas do AdaptlyPost. Tente de novo depois de um tempo |
inbox_platform_error | 503 | A plataforma falhou. Tente de novo mais tarde |
permission_denied | 403 | O papel da chave não tem inbox.read ou inbox.reply. Não tente de novo |
subscription_required | 403 | Uma escrita sem plano ativo do AdaptlyPost. Não tente de novo |
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>'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, "...": "..." }
]
}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." }'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>'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" }'{
"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
}