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

Update a checklist item

PATCH /v1/tasks/:taskId/checklist/:itemId

Partial update of a checklist item — pass only the fields you want to change. At least one field is required.

Parameters

Parameter Type Req. Description
taskId (path) integer yes Task ID
itemId (path) integer yes Checklist item ID

Request fields (body)

Field Type Req. Description
title string no Item text
sortIndex integer no Sort index
isComplete boolean / Y,N no Completion status
isImportant boolean / Y,N no Importance flag
parentId integer no Parent item ID
members object no Item members: { "<userId>": { "type": "A" | "U" } }. Replaces the current list entirely — see "Known specifics"

At least one of the fields above is required — an empty body returns 400.

Examples

curl — personal key

Terminal
curl -X PATCH "https://vibecode.bitrix24.com/v1/tasks/3943/checklist/213" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Collect and check documents", "isImportant": true }'

curl — OAuth application

Terminal
curl -X PATCH "https://vibecode.bitrix24.com/v1/tasks/3943/checklist/213" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Collect and check documents", "isImportant": true }'

JavaScript — personal key

javascript
const res = await fetch("https://vibecode.bitrix24.com/v1/tasks/3943/checklist/213", {
  method: "PATCH",
  headers: {
    "X-Api-Key": "YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ title: "Collect and check documents", isImportant: true }),
});
const { data } = await res.json();

JavaScript — OAuth application

javascript
const res = await fetch("https://vibecode.bitrix24.com/v1/tasks/3943/checklist/213", {
  method: "PATCH",
  headers: {
    "X-Api-Key": "YOUR_APP_KEY",
    "Authorization": "Bearer USER_SESSION_TOKEN",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ title: "Collect and check documents", isImportant: true }),
});
const { data } = await res.json();

Response fields

Field Type Description
success boolean Always true on success
data.id number ID of the updated item

Response example

JSON
{ "success": true, "data": { "id": 213 } }

Error response example

400 — an empty request body:

JSON
{
  "success": false,
  "error": { "code": "INVALID_PARAMS", "message": "No updatable fields provided" }
}

Errors

HTTP Code Description
400 INVALID_PARAMS Empty body, taskId/itemId is not a positive integer, an unknown members shape, or a field type violation
422 BITRIX_ERROR The item with the given itemId does not exist or is not accessible to the key — Bitrix24 threw an exception
403 SCOPE_DENIED The API key lacks the task scope
403 WRITE_BLOCKED_READONLY_KEY The key is in "read-only" mode — switch it to read+write in /keys
401 TOKEN_MISSING The API key has no configured tokens

Full list of common API errors — Errors.

Known specifics

  • A nonexistent taskId returns 200. When no task with that identifier exists, the response is successful and echoes the given itemId, but nothing is updated. A 422 is returned only for a missing item inside an existing task. To check the task, call "Get a task".
  • members is replaced entirely. When the members field is updated, Bitrix24 completely overwrites the item's member list. To keep the current members, pass them together with the new ones in the same request.

See also