---
title: "Выбрать эталонную задачу проекта"
method: PUT
path: "/api/v1/tasks/scrum/{project}/reference"
tags: ["Tasks"]
---

# Выбрать эталонную задачу проекта

`PUT /api/v1/tasks/scrum/{project}/reference`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/tasks/scrum/{project}/reference`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)
  - HTTP bearer

Относительно эталона исполнитель быстро ставит баллы. Только владелец или совладелец проекта; null снимает эталон.

## Request body

- ScrumReferenceInput
  - `task` string, uuid, required

## Response `200`

Скрам проекта с эталоном

- Scrum
  - `project` string, uuid, required
  - `board` ScrumBoard, required
    - `mode` 'scrum' | 'stages', required: Действующий набор колонок; по умолчанию — stages из эталона кабинета
    - `source` string, uuid, required
    - `source_name` string, required
    - `explicit` boolean, required: Режим выбрал кабинет; false — действует умолчание
    - `hidden` UUID[], required: Этапы, скрытые на канбане спринта
  - `board_sources` ScrumBoardSource[], required: Разделы проекта, чью воронку можно взять для доски
    - `section` string, uuid, required
    - `name` string, required
  - `project_key` string, required
  - `project_name` string, required
  - `section` string, uuid, required
  - `columns` ScrumColumn[], required
    - `key` string, required: Четыре колонки скрама или копия этапа источника (scrum.stage.<hex>) в режиме «Этапы как у задач»
    - `status` string, uuid, required
    - `name` string, required
    - `color` string, required
    - `category` 'backlog' | 'todo' | 'in_progress' | 'review' | 'done' | 'cancelled', required
    - `default` boolean, required: Начальный этап — бэклог спринта, куда заводятся новые задачи
    - `hidden` boolean, required: Колонка скрыта на канбане спринта; задачи в ней не теряются и считаются в отчётах
    - `tasks` integer, required: Сколько задач скрама стоит на этом этапе во всех спринтах
  - `active_sprint` Sprint, required
    - `id` string, uuid, required
    - `project` string, uuid, required
    - `name` string, required
    - `goal` string, required
    - `starts_at` string, nullable, required
    - `ends_at` string, nullable, required
    - `status` 'planned' | 'active' | 'completed', required
    - `started_at` string, nullable, required
    - `completed_at` string, nullable, required
    - `order` integer, required
    - `length_days` integer, required
    - `members` integer[], required
    - `daily_time` string, nullable, required
    - `daily_minutes` 5 | 10 | 15 | 30, required: Длительность ежедневной встречи в минутах; по умолчанию 15
    - `timezone` string, required
    - `daily_event` string, uuid, required
    - `task_count` integer, required
    - `tasks_done` integer, required
    - `points` integer, required: Сумма баллов задач спринта сейчас
    - `points_done` integer, required
    - `planned_points` integer, nullable, required: Снимок плана на старте
    - `completed_points` integer, nullable, required: Снимок факта на завершении: только задачи в «Готово»
    - `points_in_progress` integer, required: Баллы задач в колонке «В работе» сейчас
    - `progress` SprintProgress, required: Где идущий спринт сейчас. Идеал — сколько баллов должно быть готово к началу сегодняшнего дня (план × (день − 1) / дней); «в графике», если отставание не больше 10% плана (не меньше 1 балла).
      - `day` integer, required: День спринта в его поясе
      - `days` integer, required
      - `days_left` integer, required
      - `plan` integer, required: Снимок плана на старте, без снимка — текущий объём
      - `plan_fixed` boolean, required
      - `scope` integer, required: Текущий объём спринта
      - `done` integer, required
      - `in_progress` integer, required
      - `todo` integer, required: Баллы ещё не начатых задач (бэклог спринта и «Туду»)
      - `ideal_done` number, required
      - `behind` integer, required: На сколько баллов готово меньше идеала
      - `on_track` boolean, required
    - `created_at` string, required
    - `updated_at` string, required
  - `active_sprints` Sprint[], required: Все идущие спринты проекта (их может быть несколько), раньше заканчивающийся — первым
    - `id` string, uuid, required
    - `project` string, uuid, required
    - `name` string, required
    - `goal` string, required
    - `starts_at` string, nullable, required
    - `ends_at` string, nullable, required
    - `status` 'planned' | 'active' | 'completed', required
    - `started_at` string, nullable, required
    - `completed_at` string, nullable, required
    - `order` integer, required
    - `length_days` integer, required
    - `members` integer[], required
    - `daily_time` string, nullable, required
    - `daily_minutes` 5 | 10 | 15 | 30, required: Длительность ежедневной встречи в минутах; по умолчанию 15
    - `timezone` string, required
    - `daily_event` string, uuid, required
    - `task_count` integer, required
    - `tasks_done` integer, required
    - `points` integer, required: Сумма баллов задач спринта сейчас
    - `points_done` integer, required
    - `planned_points` integer, nullable, required: Снимок плана на старте
    - `completed_points` integer, nullable, required: Снимок факта на завершении: только задачи в «Готово»
    - `points_in_progress` integer, required: Баллы задач в колонке «В работе» сейчас
    - `progress` SprintProgress, required: Где идущий спринт сейчас. Идеал — сколько баллов должно быть готово к началу сегодняшнего дня (план × (день − 1) / дней); «в графике», если отставание не больше 10% плана (не меньше 1 балла).
      - `day` integer, required: День спринта в его поясе
      - `days` integer, required
      - `days_left` integer, required
      - `plan` integer, required: Снимок плана на старте, без снимка — текущий объём
      - `plan_fixed` boolean, required
      - `scope` integer, required: Текущий объём спринта
      - `done` integer, required
      - `in_progress` integer, required
      - `todo` integer, required: Баллы ещё не начатых задач (бэклог спринта и «Туду»)
      - `ideal_done` number, required
      - `behind` integer, required: На сколько баллов готово меньше идеала
      - `on_track` boolean, required
    - `created_at` string, required
    - `updated_at` string, required
  - `sprint_defaults` SprintSettings, required
    - `length_days` integer, required
    - `members` integer[], required
    - `daily_time` string, nullable, required: Время ежедневной встречи ЧЧ:ММ в поясе спринта; null — не задано
    - `daily_minutes` 5 | 10 | 15 | 30, required: Длительность ежедневной встречи в минутах; по умолчанию 15
    - `timezone` string, required
  - `people` ScrumPerson[], required
    - `user` integer, required
    - `name` string, required
  - `reference` ScrumReference, required
    - `task` string, uuid, required
    - `identifier` string, required
    - `title` string, required
    - `points` integer, nullable, required
  - `velocity` Velocity, required: Сколько баллов команда обычно закрывает за спринт — по последним пяти завершённым спринтам. Прогноз — с трёх спринтов истории. Не мерило людей.
    - `sprints` integer, required
    - `average` number, required
    - `min` integer, required
    - `max` integer, required
    - `forecast_low` integer, nullable, required
    - `forecast_high` integer, nullable, required
  - `me` integer, required
  - `can_write` boolean, required
  - `can_manage` boolean, required

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `404`: Запись не найдена или не видима текущему пользователю

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/3c60ded179f2?raw)
