GET/social-inbox/conversations/{id}

Fetches one conversation with its full reply capability.

https://api.postfa.st/Auth: pf-api-keyRate limit: 300 requests per hour

A missing conversation returns null, not a 404

An id that does not exist in the workspace tied to your API key comes back as 200 with a null body. Check for null before reading fields off the response.

Reply capability is server-computed

canReply, maxReplyLength, maxPrivateReplyLengthBytes, and disabledReason are computed per conversation by PostFast. Gate your UI and your validation on those fields rather than on hardcoded platform rules, so your integration keeps working when a platform changes its limits.

For context, public reply caps are currently 150 characters on TikTok, 2,200 on Instagram, 8,000 on Facebook, and 500 on Threads. maxReplyLength is the authoritative value.

Path parameters

idstring (UUID)required

The conversation id, from /social-inbox/conversations.

Response

200 OK The conversation, including its current reply capability and unread count.

idstring (UUID)required

Conversation id. Use it on the read, status, and assign routes.

socialMediaIdstring (UUID)required

The connected account the comments arrived on, as returned by /social-media/my-social-accounts.

platformstringrequired

Network the conversation belongs to.

TIKTOKINSTAGRAMFACEBOOKTHREADS
kindstringrequired

Conversation type. Always COMMENT_THREAD today.

externalConversationIdstringrequired

The platform's id for the post the thread hangs off.

contactIdstring (UUID) | nulloptional

PostFast contact record for the participant, when one exists.

socialPostIdstring (UUID) | nulloptional

Set when the post was published through PostFast, so you can join back to /social-posts. null for posts published elsewhere.

externalPostIdstring | nulloptional

The platform's own post id, when known.

statusstringrequired

Triage state, changed via the status route.

OPENSNOOZEDCLOSED
assignedToUserIdstring (UUID) | nulloptional

Workspace member the conversation is assigned to, or null.

lastItemAtISO 8601 | nulloptional

When the newest item in the thread arrived or was sent.

lastInboundAtISO 8601 | nulloptional

When the newest inbound comment arrived.

lastReadAtISO 8601 | nulloptional

When the conversation was last marked read.

unreadCountnumberrequired

Unread inbound comments in this conversation.

lastItemPreviewstring | nulloptional

Roughly 140-character snippet of the newest item.

participantUsernamestring | nulloptional

Latest commenter's username. May be null briefly after arrival.

participantDisplayNamestring | nulloptional

Latest commenter's display name, when the platform exposes it.

participantAvatarUrlstring | nulloptional

Latest commenter's avatar, when the platform exposes it.

windowStatestringrequired

Reply-window state. Always NOT_APPLICABLE for comment threads.

canReplybooleanrequired

Authoritative: whether a public reply can be sent in this conversation right now. Gate your UI on this, not on platform assumptions.

maxReplyLengthnumberrequired

Authoritative per-conversation character cap for a public reply. Validate against this value, not a hardcoded per-platform number.

maxPrivateReplyLengthBytesnumber | nulloptional

Byte cap for a private reply. 1000 on Instagram conversations, null everywhere else.

disabledReasonstring | nulloptional

Why replying is unavailable when canReply is false, as a stable code such as inbox.replyNotSupportedOnPlatform. null when replying is available.

postPreviewobject | nulloptional

Lightweight preview of the post the thread belongs to.

captionstringoptional

Post caption, when available.

thumbnailUrlstringoptional

Thumbnail image, when available.

permalinkstringoptional

Link to the post on the platform, when available.