POST/social-inbox/conversations/{id}/read
Marks a conversation read (zeroes its unread count). Internal to PostFast, so nothing changes on the platform.
pf-api-keyRate limit: 600 requests per hourInternal to PostFast
This only clears PostFast's own unread state. Nothing is sent to the platform and nobody outside your workspace can tell that you read the thread.
The workspace-wide total returned by /social-inbox/unread-count drops by this conversation's unreadCount.
The request takes no body. Send it with an empty body or no body at all.
Path parameters
idstring (UUID)requiredThe conversation id, from /social-inbox/conversations.
Response
201 Created The updated conversation, with unreadCount back to 0 and lastReadAt set.
idstring (UUID)requiredConversation id. Use it on the read, status, and assign routes.
socialMediaIdstring (UUID)requiredThe connected account the comments arrived on, as returned by /social-media/my-social-accounts.
platformstringrequiredNetwork the conversation belongs to.
TIKTOKINSTAGRAMFACEBOOKTHREADSkindstringrequiredConversation type. Always COMMENT_THREAD today.
externalConversationIdstringrequiredThe platform's id for the post the thread hangs off.
contactIdstring (UUID) | nulloptionalPostFast contact record for the participant, when one exists.
socialPostIdstring (UUID) | nulloptionalSet when the post was published through PostFast, so you can join back to /social-posts. null for posts published elsewhere.
externalPostIdstring | nulloptionalThe platform's own post id, when known.
statusstringrequiredTriage state, changed via the status route.
OPENSNOOZEDCLOSEDassignedToUserIdstring (UUID) | nulloptionalWorkspace member the conversation is assigned to, or null.
lastItemAtISO 8601 | nulloptionalWhen the newest item in the thread arrived or was sent.
lastInboundAtISO 8601 | nulloptionalWhen the newest inbound comment arrived.
lastReadAtISO 8601 | nulloptionalWhen the conversation was last marked read.
unreadCountnumberrequiredUnread inbound comments in this conversation.
lastItemPreviewstring | nulloptionalRoughly 140-character snippet of the newest item.
participantUsernamestring | nulloptionalLatest commenter's username. May be null briefly after arrival.
participantDisplayNamestring | nulloptionalLatest commenter's display name, when the platform exposes it.
participantAvatarUrlstring | nulloptionalLatest commenter's avatar, when the platform exposes it.
windowStatestringrequiredReply-window state. Always NOT_APPLICABLE for comment threads.
canReplybooleanrequiredAuthoritative: whether a public reply can be sent in this conversation right now. Gate your UI on this, not on platform assumptions.
maxReplyLengthnumberrequiredAuthoritative per-conversation character cap for a public reply. Validate against this value, not a hardcoded per-platform number.
maxPrivateReplyLengthBytesnumber | nulloptionalByte cap for a private reply. 1000 on Instagram conversations, null everywhere else.
disabledReasonstring | nulloptionalWhy replying is unavailable when canReply is false, as a stable code such as inbox.replyNotSupportedOnPlatform. null when replying is available.
postPreviewobject | nulloptionalLightweight preview of the post the thread belongs to.
captionstringoptionalPost caption, when available.
thumbnailUrlstringoptionalThumbnail image, when available.
permalinkstringoptionalLink to the post on the platform, when available.