Для AI-агентов: markdown этой страницы — /docs-content/task-stages.md индекс документации — /llms.txt
Стадии канбана задач
Операции со стадиями канбана задач: чтение колонок доски, создание, изменение и удаление стадии в рабочей группе или в «Моём плане» владельца ключа.
Битрикс24 API: task.stages.*
Скоуп: task
Создать стадию задач
POST /v1/tasks/stages/:entityId
Добавляет стадию в канбан рабочей группы или в «Мой план» владельца ключа. По умолчанию стадия встаёт последней.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
entityId (path) |
number | да | ID рабочей группы или 0 — «Мой план» владельца ключа. Список групп: GET /v1/workgroups |
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
title |
string | да | Название стадии. Пустая строка и строка из пробелов отклоняются |
color |
string | нет | Цвет в формате RRGGBB или #RRGGBB. Сохраняется без # |
afterStageId |
number | нет | ID стадии того же канбана, после которой встанет новая. Список: GET /v1/tasks/stages/:entityId. Не передаётся вместе с position |
position |
string | нет | Единственное значение — first: стадия встаёт первой и становится стадией по умолчанию. Не передаётся вместе с afterStageId |
Другие поля в теле, включая sort, отклоняются с 400 INVALID_PARAMS.
Примеры
curl — личный ключ
curl -X POST "https://vibecode.bitrix24.tech/v1/tasks/stages/155" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "На согласовании", "color": "#FF0000"}'
curl — OAuth-приложение
curl -X POST "https://vibecode.bitrix24.tech/v1/tasks/stages/155" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title": "На согласовании", "color": "#FF0000"}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/tasks/stages/155', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({ title: 'На согласовании', color: '#FF0000' }),
})
const { success, data } = await res.json()
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/tasks/stages/155', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({ title: 'На согласовании', color: '#FF0000' }),
})
const { success, data } = await res.json()
Поля ответа
Ответ приходит с HTTP-статусом 201 Created. Стадия в ответе прочитана заново после создания.
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data |
object | Созданная стадия |
data.id |
number | ID стадии |
data.title |
string | Название |
data.sort |
number | Позиция на доске: чем меньше, тем левее |
data.color |
string | Цвет в формате RRGGBB |
data.systemType |
string | null | NEW у стадии по умолчанию, null у остальных |
data.entityId |
number | Владелец канбана: ID группы или ID пользователя для «Моего плана» |
data.entityType |
string | G — канбан группы, U — «Мой план» |
Пример ответа
{
"success": true,
"data": {
"id": 629,
"title": "На согласовании",
"sort": 400,
"color": "FF0000",
"systemType": null,
"entityId": 155,
"entityType": "G"
}
}
Пример ответа при ошибке
400 — переданы оба поля afterStageId и position:
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Use either position or afterStageId"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | INVALID_PARAMS |
entityId не целое неотрицательное число или в теле есть другие поля: Invalid entityId or body fields |
| 400 | INVALID_PARAMS |
Нет title, он пустой или color и afterStageId в неверном формате: A non-empty title and valid color/afterStageId are required |
| 400 | INVALID_PARAMS |
position не равен first: position must be first |
| 400 | INVALID_PARAMS |
Переданы оба поля afterStageId и position: Use either position or afterStageId |
| 400 | INVALID_PARAMS |
afterStageId равен 0: Use position:first to make the default stage |
| 400 | INVALID_PARAMS |
afterStageId из другого канбана: afterStageId must belong to this entity |
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | TOKEN_MISSING |
У ключа нет действующего токена Битрикс24 |
| 403 | SCOPE_DENIED |
У ключа нет скоупа task или tasks |
| 403 | WRITE_BLOCKED_READONLY_KEY |
Ключ только для чтения |
| 403 | BITRIX_ACCESS_DENIED |
Группы с таким entityId нет или у пользователя ключа нет прав на её канбан |
| 422 | BITRIX_ERROR |
Битрикс24 не вернул ID стадии: Bitrix24 did not return a created stage id; reread stages before retrying |
| 422 | BITRIX_ERROR |
Созданная стадия не нашлась при повторном чтении: Created stage was not found on readback; reread stages before retrying |
| 422 | BITRIX_ERROR |
Битрикс24 отклонил создание, текст в message |
Полный список общих ошибок API — Ошибки.
Известные особенности
- Стадия по умолчанию меняется у всей группы. Признак
systemType: NEWпереходит к новой стадии от прежней первой. В стадию по умолчанию попадают новые задачи группы и задачи без стадии. Порядок и стадия по умолчанию общие для всех участников группы. sortсоседних стадий пересчитывается. После вставки стадии в середину или в начало Битрикс24 заново нумеруетsortвсех стадий доски шагом 100. Сохранённые раньше значенияsortустаревают, перечитайте стадии.