Update one or multiple tasks: change basic fields, move between projects/tracks, adjust dates, assignee, status, labels and label groups, as well as SpotFix HTML/meta content.
https://api.doboard.com/1/task_update
The number in the URL path (/1/) is the organization identifier β referred to as account_id.
This value must match the account associated with the provided session_id.
This endpoint supports both:
GET β parameters are passed via query stringPOST β parameters are passed in the request body (recommended)POST https://api.doboard.com/42/task_update
Content-Type: application/json
{
"session_id": "abc123xyz",
"task_id": 501,
"name": "Update landing page layout",
"status": "DONE",
"due_date": "2025-12-15 18:00:00",
"user_id": 107
}
In this example:
42 β organization / account IDsession_id=abc123xyz β authenticated user session501 will be:
DONE107POST https://api.doboard.com/42/task_update
Content-Type: application/json
{
"session_id": "abc123xyz",
"task_id": [501, 502, 503],
"status": "ACTIVE",
"add_label_ids": "11,12"
}
All three tasks (501, 502, 503) will be reopened (ACTIVE), and labels 11 and 12 will be added to each of them β only if those labels are not already attached.
If any validation or access error occurs for any one of the tasks, execution stops and the first error is returned.
Changes already applied to earlier tasks are not rolled back.
Authorization is required.
The method is accessible to authenticated users with these roles:
ADMINPROJECT_MANAGERREGULARGUEST (restricted)Authentication is performed exclusively via
session_id.
Public token-based access is not supported.
| Role | Access Level |
|---|---|
| ADMIN | Full access to all tasks |
| PROJECT_MANAGER | Access to tasks in projects they belong to |
| REGULAR | Access to tasks in projects they belong to |
| GUEST | Only tasks inside their public_project_id, and only tasks they created |
A guest user receives Access denied (error_no 4303) if:
public_project_id is empty, orproject_id does not match public_project_id, orBelow are all supported parameters.
Unless explicitly marked as required, parameters are optional β only provided values will be updated.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
session_id |
string |
Yes | β | Authenticated user session ID |
task_id |
int / array / CSV |
Yes | β | One or many task IDs. Accepts integer, array, or comma-separated string "1,2,3" |
name |
string |
No | β | Task name, max 256 chars. Empty string triggers error name is required |
status |
string |
No | β | One of: ACTIVE, DONE, REMOVED |
project_id |
int |
No | β | Move task to another project (access required). If changed β track_id required |
track_id |
int |
Cond. | β | Required when task moves to a different project. Must exist in target project |
user_id |
int |
No | β | New assignee. Must belong to project or be current user |
due_date |
string (Y-m-d H:i:s) |
No | β | Due date. Wrong format β error 4309 |
start_date |
string (Y-m-d H:i:s) |
No | β | Start date. Wrong format β error 4310 |
task_type |
string |
No | β | One of: REGULAR, LINK, LINK_SYMBOLIC, PUBLIC |
regular_task_id |
int |
Cond. | β | Required for LINK / LINK_SYMBOLIC. Must reference an existing task |
task_order_id |
int |
No | β | Order value, clamped to 0..4294967295 |
grant_order_id |
int |
No | β | Secondary ordering field, clamped to 0..4294967295 |
HTML |
string |
No | β | HTML payload for SpotFix. If provided β creates/updates spotfix_elements |
meta |
string |
No | β | Metadata payload for SpotFix |
add_label_ids |
array[int] / CSV |
No | β | Labels to add. Only missing labels are inserted |
delete_label_ids |
array[int] / CSV |
No | β | Labels to remove |
add_label_group_ids |
array[int] / CSV |
No | β | Label groups to connect to this task |
delete_label_group_ids |
array[int] / CSV |
No | β | Label groups to detach |
task_ids are provided) apply the same fields to every selected task.Normalization rules for task_id:
"1, 2, 3" is split automaticallytask_id is required (4301)Most validation errors return HTTP 200 with a structured error (error_no).
Authentication failures use HTTP 401.
| HTTP Code | error_no |
Message | Description |
|---|---|---|---|
| 401 | β | Unauthorized |
Invalid or missing session_id |
| 200 | 4301 | task_id is required |
No valid task_id provided (after normalization) |
| 200 | 4302 | Task Not Found |
No tasks match provided IDs |
| 200 | 4303 | Access denied |
User has no permission to modify this task (includes GUEST restrictions) |
| 200 | 4304 | name is required |
name parameter is provided but empty |
| 200 | 4305 | Project Not Found |
Target project_id does not exist |
| 200 | 4306 | Track Not Found |
Target track_id does not exist in the specified project |
| 200 | 4307 | track_id is required |
Task moved to another project without a valid track_id |
| 200 | 4308 | status must be in ('ACTIVE','DONE','REMOVED') |
Invalid status value |
| 200 | 4309 | due_date wrong format, expected format: Y-m-d H:i:s |
Invalid due_date string |
| 200 | 4310 | start_date wrong format, expected format: Y-m-d H:i:s |
Invalid start_date string |
| 200 | 4311 | task_type must be in ('REGULAR','LINK','LINK_SYMBOLIC','PUBLIC') |
task_type value is invalid |
| 200 | 4312 | Task Not Found |
Provided regular_task_id does not reference an existing task |
| 200 | 4313 | regular_task_id is required |
Required for LINK / LINK_SYMBOLIC but not provided |
| 200 | 4314 | User Not Found |
Provided user_id does not belong to a valid project member or is not accessible |
| 500 | 0 | Internal API Error |
Database failure or unexpected internal error |