[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-scrum":3,"docs-tabs-scrum":6},{"content":4,"lastmod":5},"# Scrum: эпики и размещение задач\n\nУправление скрамом в проектах Битрикс24: создание и переименование эпиков, привязка задач к эпикам, размещение в бэклоге, story points. Работает поверх обычных [Задач](\u002Fdocs\u002Fentities\u002Ftasks) — сначала задача создаётся через `POST \u002Fv1\u002Ftasks`, затем размещается в скраме.\n\n**Скоуп:** `task` | **Базовый URL:** `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1` | **Авторизация:** `X-Api-Key`\n\n## Разделы документации\n\n- [Эпики скрама](\u002Fdocs\u002Fscrum\u002Fepics) — создание, чтение, переименование и перекраска эпиков\n- [Размещение задач в скраме](\u002Fdocs\u002Fscrum\u002Ftasks) — чтение и изменение скрам-строки задачи: бэклог или спринт, эпик, story points\n\n## Быстрый старт\n\n### 1. Создать эпик\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fscrum\u002Fepics\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"name\": \"Папки в чатах\", \"groupId\": 7 }'\n```\n\n### 2. Привязать задачу к эпику\n\nЗадача уже создана через [`POST \u002Fv1\u002Ftasks`](\u002Fdocs\u002Fentities\u002Ftasks\u002Fcreate) и находится в скрам-проекте `groupId`. Привязка автоматически помещает её в бэклог проекта:\n\n```bash\ncurl -X PATCH \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fscrum\u002Ftasks\u002F59\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"epicId\": 87 }'\n```\n\n## Полный пример: зеркалирование внешнего трекера\n\nСоздать эпик, завести задачу в скрам-проекте, привязать её к эпику и проверить размещение. Бэклог определяется автоматически.\n\n```javascript\nconst VIBE_KEY = process.env.VIBE_KEY\nconst BASE = 'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1'\nconst GROUP_ID = 7 \u002F\u002F скрам-проект, список: GET \u002Fv1\u002Fworkgroups\n\n\u002F\u002F ── 1. Создать эпик ─────────────────────────────────────────────\nconst epicRes = await fetch(`${BASE}\u002Fscrum\u002Fepics`, {\n  method: 'POST',\n  headers: { 'X-Api-Key': VIBE_KEY, 'Content-Type': 'application\u002Fjson' },\n  body: JSON.stringify({ name: 'Папки в чатах', groupId: GROUP_ID })\n})\nconst { data: epic } = await epicRes.json()\nconsole.log(`Эпик создан, ID: ${epic.id}`)\n\n\u002F\u002F ── 2. Создать задачу в том же скрам-проекте ────────────────────\nconst taskRes = await fetch(`${BASE}\u002Ftasks`, {\n  method: 'POST',\n  headers: { 'X-Api-Key': VIBE_KEY, 'Content-Type': 'application\u002Fjson' },\n  body: JSON.stringify({ title: 'Сверстать список папок', groupId: GROUP_ID, responsibleId: 1 })\n})\nconst { data: task } = await taskRes.json()\nconsole.log(`Задача создана, ID: ${task.id}`)\n\n\u002F\u002F ── 3. Привязать задачу к эпику ─────────────────────────────────\n\u002F\u002F     entityId опущен → задача автоматически попадает в бэклог проекта\nawait fetch(`${BASE}\u002Fscrum\u002Ftasks\u002F${task.id}`, {\n  method: 'PATCH',\n  headers: { 'X-Api-Key': VIBE_KEY, 'Content-Type': 'application\u002Fjson' },\n  body: JSON.stringify({ epicId: epic.id, storyPoints: '3' })\n})\n\n\u002F\u002F ── 4. Проверить фактическое размещение ─────────────────────────\nconst placeRes = await fetch(`${BASE}\u002Fscrum\u002Ftasks\u002F${task.id}`, {\n  headers: { 'X-Api-Key': VIBE_KEY }\n})\nconst { data: placement } = await placeRes.json()\nconsole.log('Размещение:', placement)\n```\n\n## Справочник эндпоинтов\n\n| Метод | Путь | Bitrix24 метод | Описание |\n|-------|------|---------------|----------|\n| POST | [`\u002Fv1\u002Fscrum\u002Fepics`](\u002Fdocs\u002Fscrum\u002Fepics\u002Fcreate) | tasks.api.scrum.epic.add | Создать эпик |\n| GET | [`\u002Fv1\u002Fscrum\u002Fepics`](\u002Fdocs\u002Fscrum\u002Fepics\u002Flist) | tasks.api.scrum.epic.list | Список эпиков |\n| GET | [`\u002Fv1\u002Fscrum\u002Fepics\u002F:id`](\u002Fdocs\u002Fscrum\u002Fepics\u002Fget) | tasks.api.scrum.epic.get | Получить эпик |\n| PATCH | [`\u002Fv1\u002Fscrum\u002Fepics\u002F:id`](\u002Fdocs\u002Fscrum\u002Fepics\u002Fupdate) | tasks.api.scrum.epic.update | Переименовать \u002F изменить эпик |\n| GET | [`\u002Fv1\u002Fscrum\u002Ftasks\u002F:taskId`](\u002Fdocs\u002Fscrum\u002Ftasks\u002Fget) | tasks.api.scrum.task.get | Получить размещение задачи в скраме |\n| PATCH | [`\u002Fv1\u002Fscrum\u002Ftasks\u002F:taskId`](\u002Fdocs\u002Fscrum\u002Ftasks\u002Fupdate) | tasks.api.scrum.task.update | Разместить \u002F переместить задачу |\n\n## Коды ошибок\n\n| HTTP | Код | Причина |\n|------|-----|---------|\n| 400 | `INVALID_PARAMS` | Нарушена валидация полей запроса |\n| 400 | `TASK_NOT_IN_GROUP` | Задача без рабочей группы — авторазмещение в бэклог невозможно |\n| 403 | `SCOPE_DENIED` | У ключа нет скоупа `task` |\n| 422 | `BACKLOG_NOT_RESOLVED` | Группа задачи — не скрам-проект, бэклог не найден |\n| 422 | `BITRIX_ERROR` | Задача не найдена или не размещена в скраме, прочие ошибки Битрикс24 |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Задачи](\u002Fdocs\u002Fentities\u002Ftasks) — создание и обновление самих задач\n- [Чат задачи](\u002Fdocs\u002Fentities\u002Ftasks\u002Fchat) — чтение сообщений чата задачи\n- [Рабочие группы](\u002Fdocs\u002Fentities\u002Fworkgroups) — источник `groupId`\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization) — rate limits\n","2026-06-23",{}]