/api/public/v1/threads/unreadList unread threads
The threads the token’s employee has replies in that they have not seen, across all of their conversations, most recent reply first — the Threads Catch-up list, computed by the same function. Each entry is a thread root carrying its `conversationId`, `replyCount`, `lastReplyAt` and `unreadReplyCount` (replies from other people after the caller’s thread marker; with no marker, every one of them). A thread stays here until it is marked read or its conversation is. Muted and archived conversations never appear, and neither does a conversation the caller is not listed in. Read one with the thread endpoint.
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.
curl -X GET "https://www.pxb.app/api/public/v1/threads/unread" \
-H "Authorization: Bearer your_access_token"{
"message": "Unread threads retrieved successfully!",
"content": {
"threads": [
{
"id": "msg_9931",
"conversationId": "cnv_5150",
"authorEmployeeId": "emp_12ab",
"parentMessageId": null,
"content": "Deploying the billing export now — <@emp_44f1> heads up.",
"type": "TEXT",
"replyCount": 2,
"lastReplyAt": "2026-08-29T18:22:00.000Z",
"unreadReplyCount": 1,
"editedAt": null,
"deletedAt": null,
"pinnedAt": null,
"attachments": [],
"reactions": [],
"mentions": [
{
"employeeId": "emp_44f1"
}
],
"createdAt": "2026-08-29T18:10:00.000Z"
}
]
}
}In the console
The same thing done by hand, for anyone comparing the API against the screen they already use.