Set question read-state
/deals/{dealId}/questions/{questionId}/read-stateSets the per-actor read-state of a question. The actor is the token's user; a user_id in the body is rejected.
{seen: true} marks the replies as read (optional replyIds[] narrows to a subset); {seen: false} resets
them to unread for that actor.
Deprecated: it will be withdrawn on 2027-06-30. POST /deals/{deal_id}/questions/{id}/actions/mark-read
and POST /deals/{deal_id}/questions/{id}/actions/mark-unread replace it, and every answer carries a Link
header with rel="successor-version" naming the first. This alias keeps its own behaviour and body.
Path parameters
The deal's public uuid.
Question id (scoped to the deal).
Request body
application/json, required
Read-state to set; true marks read, false resets to unread.
Optional subset of reply ids to mark read; omit to mark the whole item.
{
"seen": true,
"replyIds": []
}Responses
{
"data": {
"question_id": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
"user_id": "6f1c2e8a-1b2c-4d5e-8f90-1a2b3c4d5e6f",
"seen": true
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
Request validation failed (HTTP 422). The body is either the Laravel
validation envelope (message + field-keyed errors) or the API error
envelope for domain rejections (e.g. form_type_not_supported,
folder_locked, parent_not_found, folder_not_empty).
Examples
curl -X PATCH https://your-org-domain/kong/core/api/v2/deals/{dealId}/questions/{questionId}/read-state\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"\
-d '{
"seen": true,
"replyIds": []
}'