REST APIGET

Inbox summary

See unread comments, mentions, messages and reviews across your accounts, which inbox channels each account can use, and ask for a fresh read.

The inbox gathers four channels from the connected accounts: comments on your posts, mentions of your accounts in other people's posts, direct messages, and Google Business Profile reviews. TikTok and X have no inbox.

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

Returns the unread count of each channel and, per connected account, which channels it can use and when it was last read.

API Key (Bearer token)
Permission:inbox.readRoles and permissions

Every role holds inbox.read, so any valid key can read the inbox.

About 10 minutes, not real time

AdaptlyPost reads each connected account every 10 minutes and keeps what it finds. The lists answer from that copy, so a new comment, mention, message or review shows up within about 10 minutes. POST /api/v1/inbox/refresh asks for a read now. Webhook events come from the same reads.

Channels that need a reconnect

Every channel is open to the API. When a connection lacks the platform permission for a channel or action, including permissions the platform is still reviewing for AdaptlyPost, GET /api/v1/inbox/summary shows the channel as RECONNECT_REQUIRED and every write on it answers 403 inbox_reconnect_required. An expired token answers the same. Ask the user to reconnect the account in AdaptlyPost; retrying does not help.

Supported platforms

Which channel each platform has. An account only gets a channel its connection has the permission for; the summary tells you per account.

PlatformCommentsMentionsMessagesReviews
FACEBOOKYesYesYesNo
INSTAGRAMYesRead only, for accounts connected through FacebookYesNo
THREADSYesYesNoNo
YOUTUBEYesNoNoNo
LINKEDINOrganization pages onlyNoNoNo
BLUESKYYesYesYesNo
MASTODONYesYesYesNo
GOOGLE_BUSINESSNoNoNoYes

Summary fields

FieldDescription
unreadUNREAD items per channel: comments, mentions, conversations and reviews
accounts[].accountIdThe account's id from GET /social-accounts, with its platform, accountName and avatarUrl
accounts[].needsReconnectTrue when the account must be reconnected before its comments can be read
accounts[].lastSyncedAtWhen AdaptlyPost last read the account, or null before the first read
accounts[].lastErrorCodeWhy the last read failed, or null
accounts[].commentsAVAILABLE, RECONNECT_REQUIRED or UNSUPPORTED for that channel. See below
accounts[].mentionsAVAILABLE, RECONNECT_REQUIRED or UNSUPPORTED for that channel. See below
accounts[].messagesAVAILABLE, RECONNECT_REQUIRED or UNSUPPORTED for that channel. See below
accounts[].reviewsAVAILABLE, RECONNECT_REQUIRED or UNSUPPORTED for that channel. See below

Channel access

ValueDescription
AVAILABLEThe account can use this channel
RECONNECT_REQUIREDThe platform has the channel, but this connection lacks the permission for it, or its token expired. Writes answer 403 inbox_reconnect_required until the user reconnects the account in AdaptlyPost
UNSUPPORTEDThe platform has no such channel

Read the accounts now

POSThttps://post.adaptlypost.com/post/api/v1/inbox/refresh

Queues a read of every connected account instead of waiting for the next 10-minute run, and answers 202 { "queued": true }. The lists change once the read finishes.

API Key (Bearer token)
Permission:inbox.readRoles and permissions

Refusals

A refused call answers { statusCode, error, code, message }. Branch on code. message explains the refusal in words.

CodeStatusWhen, and what to do
inbox_item_not_found404The id does not exist or belongs to another workspace. Stop
inbox_action_unsupported400The platform, or this item, does not allow this hide, delete or like. capabilities says what applies. Stop
inbox_reconnect_required403The connection lacks the permission for this channel or action, including one still in platform review, or its token expired. Ask the user to reconnect the account in AdaptlyPost. Do not retry
inbox_reply_invalid400The text is empty or over the limit. The message names the limit. Fix the text
inbox_messaging_window_closed400Facebook or Instagram: the 24-hour reply window has passed. Stop
inbox_rate_limited429The platform rate limited AdaptlyPost. Retry after a while
inbox_platform_error503The platform failed. Retry later
permission_denied403The key's role lacks inbox.read or inbox.reply. Do not retry
subscription_required403A write without an active AdaptlyPost plan. Do not retry
Read the inbox summary
curl --request GET \
  --url https://post.adaptlypost.com/post/api/v1/inbox/summary \
  --header 'Authorization: Bearer <api-key>'
Ask for a read now
curl --request POST \
  --url https://post.adaptlypost.com/post/api/v1/inbox/refresh \
  --header 'Authorization: Bearer <api-key>'

202
{ "queued": true }
200
{
  "unread": {
    "comments": 12,
    "mentions": 3,
    "conversations": 2,
    "reviews": 1
  },
  "accounts": [
    {
      "accountId": "conn_ig_001",
      "platform": "INSTAGRAM",
      "accountName": "adaptlypost",
      "avatarUrl": "https://cdn.adaptlypost.com/avatars/ig_001.jpg",
      "needsReconnect": false,
      "lastSyncedAt": "2026-11-08T09:40:12.000Z",
      "lastErrorCode": null,
      "comments": "AVAILABLE",
      "mentions": "AVAILABLE",
      "messages": "RECONNECT_REQUIRED",
      "reviews": "UNSUPPORTED"
    },
    {
      "accountId": "conn_gbp_001",
      "platform": "GOOGLE_BUSINESS",
      "accountName": "AdaptlyPost Kraków",
      "avatarUrl": null,
      "needsReconnect": false,
      "lastSyncedAt": "2026-11-08T09:38:55.000Z",
      "lastErrorCode": null,
      "comments": "UNSUPPORTED",
      "mentions": "UNSUPPORTED",
      "messages": "UNSUPPORTED",
      "reviews": "AVAILABLE"
    }
  ]
}