For AI agents: markdown of this page — /docs-content-en/entities/tasks/checklist/list.md documentation index — /llms.txt
List checklist items
GET /v1/tasks/:taskId/checklist
Returns all items of a task's checklist, including nested (child) items.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ParametertaskId (path) |
Typeinteger | Requiredyes | DescriptionTask ID. List: GET /v1/tasks |
Parametersort (query) |
Typestring | Requiredno | DescriptionSorting in the field:direction format, for example sortIndex:asc. Fields: id, parentId, createdBy, title, sortIndex, isComplete, isImportant, toggledBy, toggledDate. Direction: asc or desc (default asc). Without the parameter, items are ordered by sortIndex ascending, as with sortIndex:asc |
Parameterstart (query) |
Typeinteger | Requiredno | DescriptionAccepted but does not shift the result: any value returns every checklist item. Must be a non-negative integer, otherwise 400 INVALID_PARAMS |
Pagination. There is no paging: all checklist items come in one response, and meta.total equals the number of elements in data.
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/tasks/3943/checklist?sort=sortIndex:asc" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/tasks/3943/checklist?sort=sortIndex:asc" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — personal key
const res = await fetch(
"https://vibecode.bitrix24.com/v1/tasks/3943/checklist?sort=sortIndex:asc",
{ headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const { data } = await res.json();
JavaScript — OAuth application
const res = await fetch(
"https://vibecode.bitrix24.com/v1/tasks/3943/checklist?sort=sortIndex:asc",
{
headers: {
"X-Api-Key": "YOUR_APP_KEY",
"Authorization": "Bearer USER_SESSION_TOKEN",
},
}
);
const { data } = await res.json();
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata |
Typearray | DescriptionArray of checklist items |
Fielddata[].id |
Typestring | DescriptionItem ID |
Fielddata[].taskId |
Typestring | DescriptionParent task ID |
Fielddata[].parentId |
Typeinteger / string | DescriptionID of the parent item from the same list. 0 — a top-level item (itself a checklist) |
Fielddata[].title |
Typestring | DescriptionItem text |
Fielddata[].sortIndex |
Typestring | DescriptionSort index |
Fielddata[].isComplete |
Typestring | DescriptionCompletion status — "Y" / "N" |
Fielddata[].isImportant |
Typestring | DescriptionImportance flag — "Y" / "N" |
Fielddata[].createdBy |
Typestring | DescriptionID of the item author. Employee list: GET /v1/users |
Fielddata[].toggledBy |
Typestring | null | DescriptionID of the employee who last changed the completion status. Employee list: GET /v1/users |
Fielddata[].toggledDate |
Typestring | DescriptionWhen the status was last changed. An empty string if never changed |
Fielddata[].members |
Typearray | DescriptionItem members — objects { id, type, name, personalPhoto, personalGender, image, isCollaber }. id — the employee ID from GET /v1/users |
Fielddata[].attachments |
Typearray | object | DescriptionItem attachments. Without attachments — an empty array. With attachments — an object keyed by attachment ID, each value an object with the fields attachmentId, name, size, fileId (the Drive file ID), downloadUrl, viewUrl |
Fieldmeta.total |
Typenumber | DescriptionTotal number of items in the result set |
Response example
{
"success": true,
"data": [
{
"id": "211",
"taskId": "3943",
"parentId": 0,
"createdBy": "1317",
"title": "Documents",
"sortIndex": "1",
"isComplete": "N",
"isImportant": "N",
"toggledBy": null,
"toggledDate": "",
"members": [],
"attachments": []
},
{
"id": "213",
"taskId": "3943",
"parentId": "211",
"createdBy": "1317",
"title": "Collect and check documents",
"sortIndex": "100",
"isComplete": "N",
"isImportant": "Y",
"toggledBy": null,
"toggledDate": "",
"members": [
{
"id": "1317",
"type": "A",
"name": "Jane Doe",
"personalPhoto": "35959",
"personalGender": "",
"image": "https://example.bitrix24.com/...",
"isCollaber": false
}
],
"attachments": []
}
],
"meta": { "total": 2 }
}
Error response example
404 — Bitrix24 reported that the task does not exist or is not accessible:
{
"success": false,
"error": {
"code": "TASK_NOT_FOUND",
"message": "Task not found or not accessible."
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeINVALID_PARAMS |
DescriptiontaskId is not a positive integer, the sort field is unknown, or start is not a non-negative integer |
| HTTP404 | CodeTASK_NOT_FOUND |
DescriptionBitrix24 reported TASK_NOT_FOUND_OR_NOT_ACCESSIBLE: the task is missing or not accessible to the key |
| HTTP422 | CodeBITRIX_ERROR |
DescriptionAny other Bitrix24 error without a more specific error code |
| HTTP429 | CodeRATE_LIMITED |
DescriptionBitrix24 throttled the request. Respect the Retry-After header |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe API key lacks the task scope |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionThe API key has no configured tokens |
| HTTP400 | CodeUNSUPPORTED_FILTER |
DescriptionA filter parameter was passed, and this endpoint has none. The error text names what to use instead |
Full list of common API errors — Errors.
Known specifics
An existing task without items returns
200with an empty array.parentId: 0— a top-level item that is itself a checklist. Child items reference itsidvia their ownparentId.Numeric values and flags are strings.
id,taskId,sortIndexarrive as strings.isComplete/isImportantare the strings"Y"/"N", not booleans.