DELETE
/api/public/v1/conversations/{conversationId}/read

Mark 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.

threads:write

Path Parameters

NameTypeRequiredDescription
conversationIdstringRequiredConversation ID.
DELETEExample request
curl
curl -X DELETE "https://www.pxb.app/api/public/v1/conversations/{conversationId}/read" \
  -H "Authorization: Bearer your_access_token"
200Example response
json
{
  "message": "Marked as unread.",
  "content": {
    "conversationId": "cnv_5150"
  }
}
403Example response
json
{
  "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.

Threads
/threads
  1. Open the conversation’s menu and choose Mark as unread.