[{"data":1,"prerenderedAt":7},["ShallowReactive",2],{"docs-entities\u002Ftasks\u002Fchecklist-actions\u002Fcomplete-all":3,"docs-tabs-entities\u002Ftasks\u002Fchecklist-actions\u002Fcomplete-all":6},{"content":4,"lastmod":5},"## Mark an item complete with its sub-items\n\n`POST \u002Fv1\u002Ftasks\u002F:taskId\u002Fchecklist\u002F:itemId\u002Fcomplete-all`\n\nMarks a task checklist item complete together with all its sub-items in one call. A top-level item is the checklist name, and marking it complete closes the whole checklist.\n\n## Parameters\n\n| Parameter | Type | Required | Description |\n|----------|-----|:-----:|----------|\n| `taskId` (path) | number | yes | Task ID, a positive integer. List: [`GET \u002Fv1\u002Ftasks`](\u002Fdocs\u002Fentities\u002Ftasks\u002Flist) |\n| `itemId` (path) | number | yes | Item ID, a positive integer. List: [`GET \u002Fv1\u002Ftasks\u002F:taskId\u002Fchecklist`](\u002Fdocs\u002Fentities\u002Ftasks\u002Fchecklist\u002Flist) |\n\nNo request body is needed.\n\n## Examples\n\n### curl — personal key\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Ftasks\u002F4218\u002Fchecklist\u002F268\u002Fcomplete-all\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth application\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Ftasks\u002F4218\u002Fchecklist\u002F268\u002Fcomplete-all\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — personal key\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Ftasks\u002F4218\u002Fchecklist\u002F268\u002Fcomplete-all', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log('Items marked:', data?.length)\n```\n\n### JavaScript — OAuth application\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Ftasks\u002F4218\u002Fchecklist\u002F268\u002Fcomplete-all', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data } = await res.json()\n```\n\n## Response fields\n\n| Field | Type | Description |\n|------|-----|----------|\n| `success` | boolean | `true` if the request succeeded |\n| `data` | array | Items marked complete: sub-items first, the `itemId` item itself last. For an item without sub-items, the array contains just that item |\n| `data[].id` | number | Item ID |\n| `data[].taskId` | number | Task ID |\n| `data[].parentId` | number | Parent item ID. `0` means a top-level item, which is also the checklist name |\n| `data[].title` | string | Item text |\n| `data[].sortIndex` | number | Position of the item among items with the same parent. The smaller the value, the higher the item |\n| `data[].displaySortIndex` | string | Display number of the item. An empty string in the response |\n| `data[].isComplete` | boolean | Whether the item is complete. After the call, it is `true` for every item in the array |\n| `data[].isImportant` | boolean | Whether the item is marked important |\n| `data[].completedCount` | number | Returns `0` even when sub-items are complete. A sub-item's own `isComplete` shows whether it is complete |\n| `data[].members` | array | Item members. An empty array if there are none. Member roles — see [key fields](\u002Fdocs\u002Fentities\u002Ftasks\u002Fchecklist-actions#key-fields) |\n| `data[].attachments` | array \\| object | Item attachments. An empty array if there are none. Object format — see [key fields](\u002Fdocs\u002Fentities\u002Ftasks\u002Fchecklist-actions#key-fields) |\n| `data[].createdBy` | number | Item author ID. List: [`GET \u002Fv1\u002Fusers`](\u002Fdocs\u002Fentities\u002Fusers\u002Flist) |\n| `data[].userId` | number | ID of the employee on whose behalf the call is made. List: [`GET \u002Fv1\u002Fusers`](\u002Fdocs\u002Fentities\u002Fusers\u002Flist) |\n| `data[].copiedId` | number \\| null | ID of the source item if the item was created by copying. Otherwise `null` |\n| `data[].nodeId` | string \\| null | Internal node key. `null` in the response |\n\n## Response example\n\nA top-level item with two sub-items is marked complete:\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 276,\n      \"copiedId\": null,\n      \"userId\": 1295,\n      \"createdBy\": 1295,\n      \"parentId\": 268,\n      \"title\": \"Check the build\",\n      \"sortIndex\": 1,\n      \"displaySortIndex\": \"\",\n      \"isComplete\": true,\n      \"isImportant\": true,\n      \"completedCount\": 0,\n      \"members\": [],\n      \"attachments\": [],\n      \"nodeId\": null,\n      \"taskId\": 4218\n    },\n    {\n      \"id\": 274,\n      \"copiedId\": null,\n      \"userId\": 1295,\n      \"createdBy\": 1295,\n      \"parentId\": 268,\n      \"title\": \"Agree on the date\",\n      \"sortIndex\": 2,\n      \"displaySortIndex\": \"\",\n      \"isComplete\": true,\n      \"isImportant\": false,\n      \"completedCount\": 0,\n      \"members\": [],\n      \"attachments\": [],\n      \"nodeId\": null,\n      \"taskId\": 4218\n    },\n    {\n      \"id\": 268,\n      \"copiedId\": null,\n      \"userId\": 1295,\n      \"createdBy\": 1295,\n      \"parentId\": 0,\n      \"title\": \"Launch preparation\",\n      \"sortIndex\": 0,\n      \"displaySortIndex\": \"\",\n      \"isComplete\": true,\n      \"isImportant\": false,\n      \"completedCount\": 0,\n      \"members\": [],\n      \"attachments\": [],\n      \"nodeId\": null,\n      \"taskId\": 4218\n    }\n  ]\n}\n```\n\n## Error response example\n\n404 — the item with this `itemId` is missing or inaccessible:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"Checklist item not found\"\n  }\n}\n```\n\n## Errors\n\n| HTTP | Code | Description |\n|------|-----|----------|\n| 400 | `INVALID_PARAMS` | `taskId` is not a positive integer. Message `taskId must be a positive integer` |\n| 400 | `INVALID_PARAMS` | `itemId` is not a positive integer. Message `itemId must be a positive integer` |\n| 400 | `FST_ERR_CTP_EMPTY_JSON_BODY` | The `Content-Type: application\u002Fjson` header is passed with an empty body. Call the method without this header |\n| 401 | `MISSING_API_KEY` | `X-Api-Key` is not passed |\n| 401 | `TOKEN_MISSING` | The key has no Bitrix24 tokens |\n| 403 | `SCOPE_DENIED` | The key lacks the `task` scope |\n| 403 | `WRITE_BLOCKED_READONLY_KEY` | The key is in read-only mode. `error.details.switchUrl` contains the URL of the section where the mode is changed |\n| 415 | `FST_ERR_CTP_INVALID_MEDIA_TYPE` | A body with a `Content-Type` the API does not parse, such as `application\u002Fxml` |\n| 404 | `TASK_NOT_FOUND` | The task is missing or inaccessible and the core returned the legacy named task-not-found signature |\n| 404 | `NOT_FOUND` | The `itemId` item is missing, belongs to another task or is inaccessible. This also covers an unnamed task access denial in Russian, English, German or Kazakh; this denial does not distinguish a missing task from denied access |\n| 422 | `BITRIX_ERROR` | Another Bitrix24 error, including an unrecognized core denial |\n| 429 | `RATE_LIMITED` | Request rate exceeded. The effective cap is in the `x-ratelimit-limit` header |\n\nFull list of common API errors — [Errors](\u002Fdocs\u002Ferrors).\n\n## Known specifics\n\n**A repeated call returns no error.** If the item and its sub-items are already complete, the method again returns `200` with the same array of items.\n\n## See also\n\n- [Checklist actions and task file](\u002Fdocs\u002Fentities\u002Ftasks\u002Fchecklist-actions)\n- [Save a task checklist](\u002Fdocs\u002Fentities\u002Ftasks\u002Fchecklist-actions\u002Ftree)\n- [Move an item before another](\u002Fdocs\u002Fentities\u002Ftasks\u002Fchecklist-actions\u002Fmove-before)\n- [Move an item after another](\u002Fdocs\u002Fentities\u002Ftasks\u002Fchecklist-actions\u002Fmove-after)\n- [Mark an item complete](\u002Fdocs\u002Fentities\u002Ftasks\u002Fchecklist\u002Fcomplete)\n- [Reopen an item](\u002Fdocs\u002Fentities\u002Ftasks\u002Fchecklist\u002Frenew)\n- [List checklist items](\u002Fdocs\u002Fentities\u002Ftasks\u002Fchecklist\u002Flist)\n- [Task checklist](\u002Fdocs\u002Fentities\u002Ftasks\u002Fchecklist)\n","2026-11-12",{},1794739430729]