For AI agents: markdown of this page — /docs-content-en/entities/tasks/checklist-actions.md documentation index — /llms.txt

Checklist actions and task file

These routes wrap tasks.task.checklist.* and tasks.task.files.attach. This is a different Bitrix24 method family from the older task.checklistitem.* routes. Every call needs an API key with the task or tasks scope and write access. Each response is { "success": true, "data": <Bitrix24 result> }: the result value is passed through. Bitrix24 errors use the standard /v1 error handling.

Method and path Bitrix24 JSON body
POST /v1/tasks/:taskId/checklist/tree tasks.task.checklist.save { "items": [...], "parameters"?: { ... } }
POST /v1/tasks/:taskId/checklist/:itemId/complete-all tasks.task.checklist.completeAll not required
POST /v1/tasks/:taskId/checklist/:itemId/move-before tasks.task.checklist.moveBefore { "beforeItemId": 123 }
POST /v1/tasks/:taskId/checklist/:itemId/move-after tasks.task.checklist.moveAfter { "afterItemId": 123 }
POST /v1/tasks/:taskId/checklist/:itemId/members tasks.task.checklist.addMembers { "members": { "42": "A" } }
POST /v1/tasks/:taskId/checklist/:itemId/members/remove tasks.task.checklist.removeMembers { "membersIds": [42] }
POST /v1/tasks/:taskId/checklist/:itemId/attachments/content tasks.task.checklist.addAttachmentByContent { "attachmentParameters": { "NAME": "file.txt", "CONTENT": "<base64>" } }
POST /v1/tasks/:taskId/checklist/:itemId/attachments/disk tasks.task.checklist.addAttachmentsFromDisk { "filesIds": [123] }
POST /v1/tasks/:taskId/checklist/:itemId/attachments/remove tasks.task.checklist.removeAttachments { "attachmentsIds": [456] }
POST /v1/tasks/:taskId/files/attach tasks.task.files.attach { "fileId": 123 }

taskId and itemId are positive integers. save forwards the items array unchanged: Bitrix24 builds the tree and checks permissions. The array is flat: each item has a unique NODE_ID, a root sets PARENT_NODE_ID: 0, and a child references its parent's NODE_ID through PARENT_NODE_ID. A new item needs TITLE; the controller does not save a nested CHILDREN field.

save replaces the entire task checklist: existing items omitted from items are deleted. "items": [] deletes every item. To preserve an existing row, include its uppercase ID with the complete current set; without ID, Bitrix24 creates a new row and deletes the old one. A successful call with a non-empty array returns data.checkListItem.traversedItems as an object keyed by NODE_ID, with data.checkListItem.taskId: null. With an empty array, data.checkListItem is [].

JSON
{"items":[{"ID":9,"NODE_ID":"root-1","PARENT_NODE_ID":0,"TITLE":"Prepare release","IS_COMPLETE":false,"IS_IMPORTANT":false},{"NODE_ID":"child-1","PARENT_NODE_ID":"root-1","TITLE":"Review checklist","IS_COMPLETE":false,"IS_IMPORTANT":false}]}

completeAll returns an array of items, item actions return a checkListItem object, and files.attach returns an attachmentId object whose ID identifies the link between the file and task. fileId identifies an existing Drive file. This route does not upload a file.

Content for addAttachmentByContent is base64 inside JSON; the normal /v1 request body limit applies (1 MiB). This route does not add multipart or URL transport.