Update an existing comment, change its status, label or metadata, manage viewers and mentions, pin/unpin it, or control editing lock for the first task comment.
The method supports three operation modes:
pin.editing_set.comment, status, label_id or meta.The number in the URL path (/1/) is the organization identifier, referred to as account_id.
It must match the account associated with the provided session_id or token.
The endpoint supports:
GET — parameters are passed in the query string.POST — parameters are passed in the request body.POST https://api.doboard.com/42/comment_update
{
"comment_id": 501,
"comment": "Updated comment text.",
"label_id": 5,
"viewers_ids": "5,8,12",
"personal_ids": "8",
"session_id": "abc123xyz"
}
{
"comment_id": 501,
"status": "REMOVED",
"session_id": "abc123xyz"
}
{
"comment_id": 501,
"pin": 1,
"session_id": "abc123xyz"
}
{
"comment_id": 501,
"editing_set": 1,
"session_id": "abc123xyz"
}
Authorization is required using:
session_id — authenticated user session.token — guest or public access token, when supported by the project or task.General update access rules:
projects_users.Pinning and editing locks have separate access rules described below.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
session_id |
string | Yes* | – | Authenticated user session ID. |
token |
string | Yes* | – | Guest/public access token. |
comment_id |
int | Yes | – | ID of the comment to update. |
comment |
string | No | – | New comment content. HTML is formatted before saving. An empty value clears the comment. |
status |
string | No | – | New status: ACTIVE or REMOVED. |
label_id |
int | No | – | New label ID. If the label does not exist, label_id is saved as null. |
meta |
string | No | – | Additional comment metadata. |
viewers_ids |
int / array | No | auto | Viewer IDs as an array or comma-separated string. Only users belonging to the project are applied. |
personal_ids |
int / array | No | – | Mentioned user IDs as an array or comma-separated string. Only users belonging to the project are applied. |
pin |
int / boolean | No | – | 1 pins the comment; 0 unpins it. Runs as a separate operation. |
editing_set |
int / boolean | No | – | 1 sets an editing lock; 0 releases it. Available only for the first active task comment. |
* Either session_id or token is required.
For a standard update, at least one of these parameters must be provided:
commentstatuslabel_idmetaviewers_ids and personal_ids only affect notifications and viewers accompanying an update. They cannot be used as the only update parameters.
When pin is provided with 0 or 1, the method only changes the comment’s pin state and immediately returns a response.
Access rules:
The operation:
comments.pin.updated timestamp.When valid
pinis provided, other update parameters are not processed.
The editing_set parameter manages collaborative editing of the first active task comment:
editing_set=1 — sets editing_user_id and editing_time.editing_set=0 — clears editing_user_id and editing_time.Rules:
editing_time.projects_users record, but still cannot override an active lock belonging to another user.The operation updates the comment, writes an activity log and publishes a realtime event.
When valid
editing_setis provided, other update parameters are not processed.
When comment is provided:
comment_text.comment_text.comment_history.edited_user_id is set to the current user.doboard.com/{account_id}/task/{task_id} are extracted.Each history entry contains:
{
"user_id": 15,
"edited": "2026-07-24 12:30:00",
"comment": "Previous comment content"
}
viewers_idsThe parameter accepts either:
{
"viewers_ids": [5, 8, 12]
}
or:
{
"viewers_ids": "5,8,12"
}
Only users belonging to the comment’s project are accepted.
If viewers_ids is omitted, viewers are loaded from comments_viewers for the corresponding task or board.
The following users are added automatically when applicable:
personal_ids.personal_idsDefines users who receive personal mention notifications.
For each valid mentioned user, the method can:
USER_MENTION push notification.Push notification context includes the task or board ID and name.
{
"data": {
"operation_status": "SUCCESS",
"comment_id": 501
}
}
The same response format is used for standard updates, pin operations and editing-lock operations.
{
"data": {
"operation_status": "FAILED",
"operation_message": "Comment Not Found"
},
"error_message": "Comment Not Found",
"error_no": 2202
}
A standard update always changes:
| Field | Description |
|---|---|
updated |
Set to the current date and time. |
edited |
Set to the current date and time. |
editing_time |
Cleared after a successful update. |
editing_user_id |
Cleared after a successful update. |
Depending on the request, the method also changes:
| Field | Description |
|---|---|
comment |
Formatted comment content. |
comment_text |
Plain-text comment content without blockquotes. |
comment_history |
JSON history containing previous comment versions. |
edited_user_id |
ID of the user who edited the comment. |
status |
ACTIVE or REMOVED. |
label_id |
Valid label ID or null. |
meta |
Additional metadata. |
pin |
Pin state for a dedicated pin operation. |
After a successful standard update, the method can:
personal_ids.COMMENTED.account:{account_id}.When the status changes to REMOVED, the method also:
Viewer and notification updates are not performed for guest users.
| HTTP Code | error_no |
Message | Description |
|---|---|---|---|
401 |
– | Unauthorized |
Missing or invalid session/token. |
200 |
2201 |
comment_id is required |
The request does not contain comment_id. |
200 |
2202 |
Comment Not Found |
The comment does not exist or has no associated author. |
200 |
2203 |
Access denied |
The user cannot update the comment, access the project or acquire the editing lock. |
200 |
2204 |
status must be in ('ACTIVE','REMOVED') |
Invalid comment status. |
200 |
2205 |
Empty input |
No supported standard-update fields were provided. |
200 |
0 |
Internal API error | The database update failed. |
pin has priority over all other operations.editing_set is processed after pin and before a standard update.pin and editing_set executes only the pin operation.pin or editing_set values are ignored. If no standard update fields remain, the method returns error 2205.status=ACTIVE.viewers_ids and personal_ids can be arrays or comma-separated strings.comment_get.