Inbox
List inbox conversations
get/v1/inbox/conversations
List direct message conversations from connected social channels, newest activity first. Filter by status (open, archived or spam, default open) and channelId; days is clamped to the plan's inbox history window. Requires inbox:view.
Query parameters
statusstringOne of
openarchivedspamDefault "open"
channelIdstringMin length 1
daysintegerDefault 30 · Min 1 · Max 365
limitintegerDefault 25 · Min 1 · Max 100
starting_afterstring
Response 200
One page of conversations
objectstringrequiredOne of
listhas_morebooleanrequirednext_cursorstringrequirednullableunreadTotalintegerrequiredwindowDaysintegerrequired
Errors
- 400
- Invalid request
- 401
- Unauthenticated
- 403
- Missing the inbox permission
curl "https://api.posty.social/v1/inbox/conversations" \
-H "Authorization: Bearer $POSTY_API_KEY"{
"object": "list",
"data": [
{
"id": "string",
"channelId": "string",
"platform": "bluesky",
"externalConversationId": "string",
"participant": {
"id": "string",
"name": "string",
"username": "string",
"avatarUrl": "string"
},
"lastMessageText": "string",
"lastMessageAt": "2026-01-15T09:30:00.000Z",
"lastReadAt": "2026-01-15T09:30:00.000Z",
"participantLastReadAt": "2026-01-15T09:30:00.000Z",
"participantLastDeliveredAt": "2026-01-15T09:30:00.000Z",
"unreadCount": 1,
"status": "open",
"standby": true,
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"channel": {
"name": "string",
"platform": "bluesky",
"avatarUrl": "string"
}
}
],
"has_more": true,
"next_cursor": "string",
"unreadTotal": 1,
"windowDays": 1
}List conversation messages
get/v1/inbox/conversations/{id}/messages
List messages in one inbox conversation, newest first, with the conversation itself. Pass next_cursor as starting_after to page back through older messages. Reading does not mark the conversation read. Requires inbox:view.
Path parameters
idstringrequiredMin length 1
Query parameters
limitintegerDefault 50 · Min 1 · Max 100
starting_afterstring
Response 200
One page of messages
objectstringrequiredOne of
listhas_morebooleanrequirednext_cursorstringrequirednullable
Errors
- 400
- Invalid request
- 401
- Unauthenticated
- 403
- Missing the inbox permission
- 404
- Not found in this workspace
curl "https://api.posty.social/v1/inbox/conversations/$ID/messages" \
-H "Authorization: Bearer $POSTY_API_KEY"{
"object": "list",
"data": [
{
"id": "string",
"conversationId": "string",
"externalMessageId": "string",
"fromParticipant": true,
"senderName": "string",
"messageText": "string",
"attachmentType": "string",
"attachmentUrl": "string",
"content": {
"unsupported": true,
"sender": {
"id": "string",
"name": "string",
"username": "string",
"email": "string"
},
"recipients": [
{
"id": null,
"name": null,
"username": null,
"email": null
}
],
"attachments": [
{
"id": null,
"kind": null,
"name": null,
"url": null,
"previewUrl": null,
"width": null,
"height": null,
"duration": null,
"template": null
}
],
"shares": [
{
"id": null,
"name": null,
"description": null,
"type": null,
"url": null,
"template": null
}
],
"story": {
"id": "string",
"url": "string"
},
"reactionsObservedAt": "2026-01-15T09:30:00.000Z",
"reactions": [
{
"emoji": null,
"users": null
}
],
"tags": [
{
"id": null,
"name": null
}
]
},
"reaction": "string",
"editedAt": "2026-01-15T09:30:00.000Z",
"sentAt": "2026-01-15T09:30:00.000Z"
}
],
"has_more": true,
"next_cursor": "string",
"conversation": {
"id": "string",
"channelId": "string",
"platform": "bluesky",
"externalConversationId": "string",
"participant": {
"id": "string",
"name": "string",
"username": "string",
"avatarUrl": "string"
},
"lastMessageText": "string",
"lastMessageAt": "2026-01-15T09:30:00.000Z",
"lastReadAt": "2026-01-15T09:30:00.000Z",
"participantLastReadAt": "2026-01-15T09:30:00.000Z",
"participantLastDeliveredAt": "2026-01-15T09:30:00.000Z",
"unreadCount": 1,
"status": "open",
"standby": true,
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"channel": {
"name": "string",
"platform": "bluesky",
"avatarUrl": "string"
}
}
}Update conversation status
patch/v1/inbox/conversations/{id}
Move an inbox conversation to open, archived or spam. Archived and spam conversations leave the open list until moved back. Nothing is sent to the social platform. Requires inbox:view.
Path parameters
idstringrequiredMin length 1
Request body
statusstringrequiredOne of
openarchivedspam
Response 200
The conversation's new state
idstringrequiredstatusstringrequiredOne of
openarchivedspamunreadCountintegerrequiredlastReadAtstring (date-time)requirednullableupdatedAtstring (date-time)required
Errors
- 400
- Invalid request
- 401
- Unauthenticated
- 403
- Missing the inbox permission
- 404
- Not found in this workspace
curl -X PATCH "https://api.posty.social/v1/inbox/conversations/$ID" \
-H "Authorization: Bearer $POSTY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "open"
}'{
"id": "string",
"status": "open",
"unreadCount": 1,
"lastReadAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z"
}Mark conversation read
post/v1/inbox/conversations/{id}/read
Mark an inbox conversation read for the workspace team, clearing its unread count. It does not send a seen receipt to the social platform. Requires inbox:view.
Path parameters
idstringrequiredMin length 1
Response 200
The conversation's new state
idstringrequiredstatusstringrequiredOne of
openarchivedspamunreadCountintegerrequiredlastReadAtstring (date-time)requirednullableupdatedAtstring (date-time)required
Errors
- 400
- Invalid request
- 401
- Unauthenticated
- 403
- Missing the inbox permission
- 404
- Not found in this workspace
curl -X POST "https://api.posty.social/v1/inbox/conversations/$ID/read" \
-H "Authorization: Bearer $POSTY_API_KEY"{
"id": "string",
"status": "open",
"unreadCount": 1,
"lastReadAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z"
}List inbox post threads
get/v1/inbox/post-threads
List published posts whose platform comments appear in the inbox, newest first. Filter by channelId; days is clamped to the plan's inbox history window. Use get_post_comment_thread with a thread id to read its comments. Requires inbox:view.
Query parameters
channelIdstringMin length 1
daysintegerDefault 30 · Min 1 · Max 365
limitintegerDefault 30 · Min 1 · Max 100
Errors
- 400
- Invalid request
- 401
- Unauthenticated
- 403
- Missing the inbox permission
curl "https://api.posty.social/v1/inbox/post-threads" \
-H "Authorization: Bearer $POSTY_API_KEY"{
"data": [
{
"id": "string",
"postId": "string",
"channelId": "string",
"platform": "bluesky",
"externalPostId": "string",
"permalink": "string",
"postTitle": "string",
"postBody": "string",
"mediaUrl": "string",
"publishedAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"channel": {
"name": "string",
"platform": "bluesky",
"avatarUrl": "string"
}
}
],
"windowDays": 1
}Get post comment thread
get/v1/inbox/post-threads/{id}
Read one published post's platform comment thread as a flat list, oldest first, with parentCommentId linking replies. Facebook, Instagram and Threads comments are available; YouTube and Bluesky threads report commentStatus not_mirrored. Requires inbox:view.
Path parameters
idstringrequiredMin length 1
Response 200
The post and its stored comments
Errors
- 400
- Invalid request
- 401
- Unauthenticated
- 403
- Missing the inbox permission
- 404
- Not found in this workspace
curl "https://api.posty.social/v1/inbox/post-threads/$ID" \
-H "Authorization: Bearer $POSTY_API_KEY"{
"thread": {
"id": "string",
"postId": "string",
"channelId": "string",
"platform": "bluesky",
"externalPostId": "string",
"permalink": "string",
"postTitle": "string",
"postBody": "string",
"mediaUrl": "string",
"publishedAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-01-15T09:30:00.000Z",
"channel": {
"name": "string",
"platform": "bluesky",
"avatarUrl": "string"
}
},
"comments": [
{
"id": "string",
"parentCommentId": "string",
"authorId": "string",
"authorName": "string",
"authorUsername": "string",
"authorAvatarUrl": "string",
"isFromConnectedAccount": true,
"likeCount": 1,
"messageText": "string",
"createdAt": "2026-01-15T09:30:00.000Z"
}
],
"commentStatus": {
"type": "available",
"message": "string"
}
}Models
Objects referenced by the endpoints above.
InboxCommentStatus
typestringrequiredOne of
availablenot_mirroredmessagestringrequirednullable
InboxConversation
idstringrequiredchannelIdstringrequiredplatformstringrequiredOne of
blueskydiscordfacebookinstagramlinkedinpinterestthreadstiktokwordpressyoutubeexternalConversationIdstringrequiredparticipantobjectrequiredChild attributes
idstringrequirednullablenamestringrequirednullableusernamestringrequirednullableavatarUrlstringrequirednullable
lastMessageTextstringrequirednullablelastMessageAtstring (date-time)requirednullablelastReadAtstring (date-time)requirednullableparticipantLastReadAtstring (date-time)requirednullableparticipantLastDeliveredAtstring (date-time)requirednullableunreadCountintegerrequiredstatusstringrequiredOne of
openarchivedspamstandbybooleanrequiredcreatedAtstring (date-time)requiredupdatedAtstring (date-time)requiredchannelobjectrequiredChild attributes
namestringrequiredplatformstringrequiredOne of
blueskydiscordfacebookinstagramlinkedinpinterestthreadstiktokwordpressyoutubeavatarUrlstringrequirednullable
InboxMessage
idstringrequiredconversationIdstringrequiredexternalMessageIdstringrequirednullablefromParticipantbooleanrequiredsenderNamestringrequirednullablemessageTextstringrequirednullableattachmentTypestringrequirednullableattachmentUrlstringrequirednullablecontentobjectrequiredChild attributes
unsupportedbooleansenderobjectChild attributes
idstringnamestringusernamestringemailstring
recipientsarray of objectChild attributes
idstringnamestringusernamestringemailstring
attachmentsarray of objectChild attributes
idstringkindstringrequirednamestringurlstringpreviewUrlstringwidthnumberheightnumberdurationnumbertemplateobjectChild attributes
titlestringsubtitlestringimageUrlstringbuttonsarray of objectChild attributes
titlestringtypestringurlstringpayloadstring
sharesarray of objectChild attributes
idstringnamestringdescriptionstringtypestringurlstringtemplatestring or objectOption 2
titlestringsubtitlestringimageUrlstringbuttonsarray of objectChild attributes
titlestringtypestringurlstringpayloadstring
storyobjectChild attributes
idstringurlstring
reactionsObservedAtstring (date-time)reactionsarray of objectChild attributes
emojistringrequiredusersarray of objectrequiredChild attributes
idstringnamestringusernamestringemailstring
tagsarray of objectChild attributes
idstringnamestring
reactionstringrequirednullableeditedAtstring (date-time)requirednullablesentAtstring (date-time)required
InboxPostComment
idstringrequiredparentCommentIdstringrequirednullableauthorIdstringrequirednullableauthorNamestringrequirednullableauthorUsernamestringrequirednullableauthorAvatarUrlstringrequirednullableisFromConnectedAccountbooleanrequiredlikeCountintegerrequirednullablemessageTextstringrequirednullablecreatedAtstring (date-time)requirednullable
InboxPostThread
idstringrequiredpostIdstringrequiredchannelIdstringrequiredplatformstringrequiredOne of
blueskydiscordfacebookinstagramlinkedinpinterestthreadstiktokwordpressyoutubeexternalPostIdstringrequiredpermalinkstringrequirednullablepostTitlestringrequiredpostBodystringrequirednullablemediaUrlstringrequirednullablepublishedAtstring (date-time)requirednullableupdatedAtstring (date-time)requiredchannelobjectrequiredChild attributes
namestringrequiredplatformstringrequiredOne of
blueskydiscordfacebookinstagramlinkedinpinterestthreadstiktokwordpressyoutubeavatarUrlstringrequirednullable