/api/public/v1/conversations/{conversationId}/readMark a conversation unread
Marks the conversation unread for the token’s employee, so it comes back in their Threads list and the console’s badge returns. Sets `markedUnread`, which stands on its own when nobody else has written yet, and when somebody has, rewinds `lastReadAt` to just before their latest message so `unreadCount` reads one rather than zero. Idempotent, and it deletes nothing — a read marker is all it moves. You must be a member (403 otherwise).
Required scope
The access token must carry this scope. A token missing it gets 403 Forbidden. Grant them to an API client under Dev Tools → API, to an assistant or CLI sign-in when you approve or edit it under Dev Tools, and to a teammate under Employee → Permissions.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
conversationId | string | Required | Conversation ID. |
curl -X DELETE "https://www.pxb.app/api/public/v1/conversations/{conversationId}/read" \
-H "Authorization: Bearer your_access_token"{
"message": "Marked as unread.",
"content": {
"conversationId": "cnv_5150"
}
}{
"message": "You are not a member."
}In the console
The same thing done by hand, for anyone comparing the API against the screen they already use.