Для AI-агентов: markdown этой страницы — /docs-content/scrum.md индекс документации — /llms.txt

Scrum: эпики, спринты, размещение задач и этапы канбана

Управление скрамом в проектах Битрикс24: чтение списка и текущего спринта, создание и переименование эпиков, привязка задач к эпикам, размещение в бэклоге, story points, колонки доски спринта. Работает поверх обычных Задач — сначала задача создаётся через POST /v1/tasks, затем размещается в скраме.

Скоуп: task | Базовый URL: https://vibecode.bitrix24.tech/v1 | Авторизация: X-Api-Key

Разделы документации

Быстрый старт

1. Создать эпик

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/scrum/epics" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Папки в чатах", "groupId": 7 }'

2. Привязать задачу к эпику

Задача уже создана через POST /v1/tasks и находится в скрам-проекте groupId. Привязка автоматически помещает её в бэклог проекта:

Terminal
curl -X PATCH "https://vibecode.bitrix24.tech/v1/scrum/tasks/59" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "epicId": 87 }'

Полный пример: зеркалирование внешнего трекера

Создать эпик, завести задачу в скрам-проекте, привязать её к эпику и проверить размещение. Бэклог определяется автоматически.

javascript
const VIBE_KEY = process.env.VIBE_KEY
const BASE = 'https://vibecode.bitrix24.tech/v1'
const GROUP_ID = 7 // скрам-проект, список: GET /v1/workgroups

// ── 1. Создать эпик ─────────────────────────────────────────────
const epicRes = await fetch(`${BASE}/scrum/epics`, {
  method: 'POST',
  headers: { 'X-Api-Key': VIBE_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({ name: 'Папки в чатах', groupId: GROUP_ID })
})
const { data: epic } = await epicRes.json()
console.log(`Эпик создан, ID: ${epic.id}`)

// ── 2. Создать задачу в том же скрам-проекте ────────────────────
const taskRes = await fetch(`${BASE}/tasks`, {
  method: 'POST',
  headers: { 'X-Api-Key': VIBE_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({ title: 'Сверстать список папок', groupId: GROUP_ID, responsibleId: 1 })
})
const { data: task } = await taskRes.json()
console.log(`Задача создана, ID: ${task.id}`)

// ── 3. Привязать задачу к эпику ─────────────────────────────────
//     entityId опущен → задача автоматически попадает в бэклог проекта
await fetch(`${BASE}/scrum/tasks/${task.id}`, {
  method: 'PATCH',
  headers: { 'X-Api-Key': VIBE_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({ epicId: epic.id, storyPoints: '3' })
})

// ── 4. Проверить фактическое размещение ─────────────────────────
const placeRes = await fetch(`${BASE}/scrum/tasks/${task.id}`, {
  headers: { 'X-Api-Key': VIBE_KEY }
})
const { data: placement } = await placeRes.json()
console.log('Размещение:', placement)

Справочник эндпоинтов

Метод Путь Bitrix24 метод Описание
POST /v1/scrum/epics tasks.api.scrum.epic.add Создать эпик
GET /v1/scrum/epics tasks.api.scrum.epic.list Список эпиков
GET /v1/scrum/epics/:id tasks.api.scrum.epic.get Получить эпик
PATCH /v1/scrum/epics/:id tasks.api.scrum.epic.update Переименовать / изменить эпик
GET /v1/scrum/tasks/:taskId tasks.api.scrum.task.get Получить размещение задачи в скраме
PATCH /v1/scrum/tasks/:taskId tasks.api.scrum.task.update Разместить / переместить задачу
GET /v1/scrum/sprints tasks.api.scrum.sprint.list Спринты скрам-проекта
GET /v1/scrum/sprints/active tasks.api.scrum.sprint.list Активный спринт проекта
GET /v1/scrum/sprints/:id tasks.api.scrum.sprint.get Получить спринт по ID
GET /v1/scrum/sprints/:sprintId/stages tasks.api.scrum.kanban.getStages Колонки доски спринта
POST /v1/scrum/sprints/:sprintId/stages tasks.api.scrum.kanban.addStage Создать колонку
PATCH /v1/scrum/stages/:stageId tasks.api.scrum.kanban.updateStage Изменить колонку
GET /v1/scrum/groups/:groupId/dod/settings tasks.scrum.DoD.getSettings Настройки DoD
GET /v1/scrum/groups/:groupId/tasks/:taskId/dod/necessary tasks.scrum.DoD.isNecessary Нужен ли DoD
POST /v1/scrum/groups/:groupId/dod/types/:typeId/settings tasks.scrum.DoD.saveSettings Сохранить настройки DoD
POST /v1/scrum/tasks/:taskId/dod/:typeId tasks.scrum.DoD.saveList Сохранить список DoD задачи
GET /v1/scrum/groups/:groupId/burn-down tasks.scrum.Sprint.getBurnDownInfo Данные burn-down
GET /v1/scrum/groups/:groupId/team-speed tasks.scrum.Sprint.getTeamSpeedInfo Наличие завершённого спринта

| POST | /v1/scrum/backlogs | tasks.api.scrum.backlog.add | Создать бэклог | | PATCH | /v1/scrum/backlogs/:id | tasks.api.scrum.backlog.update | Обновить бэклог | | DELETE | /v1/scrum/backlogs/:id | tasks.api.scrum.backlog.delete | Удалить бэклог | | DELETE | /v1/scrum/epics/:id | tasks.api.scrum.epic.delete | Удалить эпик | | POST | /v1/scrum/sprints | tasks.api.scrum.sprint.add | Создать спринт | | PATCH | /v1/scrum/sprints/:id | tasks.api.scrum.sprint.update | Обновить спринт | | DELETE | /v1/scrum/sprints/:id | tasks.api.scrum.sprint.delete | Удалить спринт | | POST | /v1/scrum/sprints/:id/start | tasks.api.scrum.sprint.start | Начать спринт | | POST | /v1/scrum/groups/:groupId/sprints/active/complete | tasks.api.scrum.sprint.complete | Завершить активный спринт группы | | DELETE | /v1/scrum/stages/:stageId | tasks.api.scrum.kanban.deleteStage | Удалить этап | | POST | /v1/scrum/sprints/:sprintId/kanban/tasks/:taskId | tasks.api.scrum.kanban.addTask | Добавить задачу на доску | | DELETE | /v1/scrum/sprints/:sprintId/kanban/tasks/:taskId | tasks.api.scrum.kanban.deleteTask | Удалить задачу с доски |

Коды ошибок

HTTP Код Причина
400 INVALID_PARAMS Нарушена валидация полей запроса
400 TASK_NOT_IN_GROUP Задача без рабочей группы — авторазмещение в бэклог невозможно
403 SCOPE_DENIED У ключа нет скоупа task
422 BACKLOG_NOT_RESOLVED Группа задачи — не скрам-проект, бэклог не найден
404 STAGE_NOT_FOUND_OR_NO_ACCESS Этап канбана не существует либо он в недоступном скрам-проекте
422 BITRIX_ERROR Задача не найдена или не размещена в скраме, прочие ошибки Битрикс24

Полный список общих ошибок API — Ошибки.

Смотрите также