{"openapi":"3.1.0","info":{"title":"API Klepps","version":"1.0.0","description":"REST API таск-трекера Klepps. Документация: https://klepps.ru/developers"},"servers":[{"url":"https://klepps.ru/api/v1"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Ключ API klp_… (Klepps → «API» → «Новый ключ»)"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","invalid_key","key_expired","insufficient_scope","forbidden","ip_not_allowed","api_disabled","plan_required","not_found","archived","rejected","rate_limited"]},"message":{"type":"string"}}}}}}},"paths":{"/me":{"get":{"operationId":"me","summary":"Проверить ключ","description":"От чьего имени работает ключ, в какой компании и с какими правами. Удобно для проверки подключения.","tags":["Ключ и компания"],"parameters":[],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":{"user":{"id":"u-k3f9a2m1","name":"Анна Смирнова","login":"anna@romashka.ru","role":"Руководитель проекта","isAdmin":true,"teamIds":["tm-frontend"]},"workspace":{"id":"ws-5f2c…","name":"Ромашка"},"key":{"id":"key-a1b2c3","scopes":["tasks:read","tasks:write","time:read"],"projectIds":null},"rateLimitPerMinute":120}}}}}}}},"/users":{"get":{"operationId":"users","summary":"Пользователи","tags":["Ключ и компания"],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Поиск по имени, логину, должности"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Постраничная выдача"},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Постраничная выдача"}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":[{"id":"u-k3f9a2m1","name":"Анна Смирнова","login":"anna@romashka.ru","role":"Руководитель проекта","isAdmin":true,"teamIds":["tm-frontend"]},{"id":"u-p7d2x8q4","name":"Иван Петров","login":"ivan","role":"Разработчик","isAdmin":false,"teamIds":["tm-frontend"]}],"nextCursor":null,"total":2}}}}}}},"/teams":{"get":{"operationId":"teams","summary":"Команды","tags":["Ключ и компания"],"parameters":[],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":[{"id":"tm-frontend","name":"Фронтенд","description":"","memberIds":["u-k3f9a2m1","u-p7d2x8q4"],"leadId":"u-k3f9a2m1"}],"nextCursor":null,"total":1}}}}}}},"/labels":{"get":{"operationId":"labels","summary":"Метки","tags":["Ключ и компания"],"parameters":[],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":["frontend","срочно"]}}}}}}},"/projects":{"get":{"operationId":"projectsList","summary":"Список проектов","tags":["Проекты и доски"],"parameters":[],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":[{"id":"p-w1e8r5t2","key":"WEB","name":"Сайт","description":"Новый сайт компании","createdAt":1759300000000}],"nextCursor":null,"total":1}}}}}},"post":{"operationId":"projectCreate","summary":"Создать проект","description":"Создаёт проект с первой доской по шаблону. Лимиты тарифа действуют как в интерфейсе. Ключу, ограниченному проектами, недоступно.","tags":["Проекты и доски"],"x-klepps-scope":"projects:write","parameters":[],"responses":{"201":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"p-n3m4b5v6","key":"APP","name":"Мобильное приложение","description":"","createdAt":1759300000000,"boards":[{"id":"b-c4v5b6n7","projectId":"p-n3m4b5v6","name":"Скрам","description":"","statuses":[{"id":"s-todo1","name":"К выполнению","category":"todo"},{"id":"s-prog1","name":"В работе","category":"progress"},{"id":"s-done1","name":"Готово","category":"done"}]}]}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Название"},"key":{"type":"string","description":"Ключ задач, до 10 символов: WEB → WEB-1, WEB-2…"},"description":{"type":"string","description":"Описание"},"template":{"type":["string","null"],"enum":["scrum","simple","bugs"],"description":"Шаблон первой доски, по умолчанию simple; null — без доски"}},"required":["name","key"]},"example":{"name":"Мобильное приложение","key":"APP","template":"scrum"}}}}}},"/projects/{id}":{"get":{"operationId":"projectGet","summary":"Проект с досками и колонками","tags":["Проекты и доски"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"id проекта"}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"p-w1e8r5t2","key":"WEB","name":"Сайт","description":"Новый сайт компании","createdAt":1759300000000,"boards":[{"id":"b-9h4j2k7l","projectId":"p-w1e8r5t2","name":"Разработка","description":"","statuses":[{"id":"s-todo1","name":"К выполнению","category":"todo"},{"id":"s-prog1","name":"В работе","category":"progress"},{"id":"s-done1","name":"Готово","category":"done"}]}]}}}}}}},"patch":{"operationId":"projectPatch","summary":"Изменить проект","tags":["Проекты и доски"],"x-klepps-scope":"projects:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"p-w1e8r5t2","key":"WEB","name":"Сайт","description":"Сайт и лендинги","createdAt":1759300000000}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Любые из полей"},"description":{"type":"string","description":"Любые из полей"}}},"example":{"description":"Сайт и лендинги"}}}}}},"/boards":{"get":{"operationId":"boardsList","summary":"Доски","tags":["Проекты и доски"],"parameters":[{"name":"projectId","in":"query","required":false,"schema":{"type":"string"},"description":"Только доски проекта"}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":[{"id":"b-9h4j2k7l","projectId":"p-w1e8r5t2","name":"Разработка","description":"","statuses":[{"id":"s-todo1","name":"К выполнению","category":"todo"},{"id":"s-prog1","name":"В работе","category":"progress"},{"id":"s-done1","name":"Готово","category":"done"}]}],"nextCursor":null,"total":1}}}}}},"post":{"operationId":"boardCreate","summary":"Создать доску","tags":["Проекты и доски"],"x-klepps-scope":"projects:write","parameters":[],"responses":{"201":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"b-x1c2v3b4","projectId":"p-w1e8r5t2","name":"Баги","description":"","statuses":[{"id":"s-todo1","name":"К выполнению","category":"todo"},{"id":"s-prog1","name":"В работе","category":"progress"},{"id":"s-done1","name":"Готово","category":"done"}]}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projectId":{"type":"string","description":"Проект"},"name":{"type":"string","description":"Название"},"description":{"type":"string","description":"Описание"},"template":{"type":"string","enum":["scrum","simple","bugs"],"description":"Набор колонок, по умолчанию simple"}},"required":["projectId","name"]},"example":{"projectId":"p-w1e8r5t2","name":"Баги","template":"bugs"}}}}}},"/boards/{id}":{"get":{"operationId":"boardGet","summary":"Доска","tags":["Проекты и доски"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"b-9h4j2k7l","projectId":"p-w1e8r5t2","name":"Разработка","description":"","statuses":[{"id":"s-todo1","name":"К выполнению","category":"todo"},{"id":"s-prog1","name":"В работе","category":"progress"},{"id":"s-done1","name":"Готово","category":"done"}]}}}}}}}},"/boards/{id}/statuses":{"post":{"operationId":"statusCreate","summary":"Добавить колонку","tags":["Проекты и доски"],"x-klepps-scope":"projects:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"b-9h4j2k7l","projectId":"p-w1e8r5t2","name":"Разработка","description":"","statuses":[{"id":"s-todo1","name":"К выполнению","category":"todo"},{"id":"s-prog1","name":"В работе","category":"progress"},{"id":"s-done1","name":"Готово","category":"done"},{"id":"s-k8l9z0","name":"На проверке","category":"progress"}]}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Название колонки"}},"required":["name"]},"example":{"name":"На проверке"}}}}}},"/tasks":{"get":{"operationId":"tasksList","summary":"Список задач","description":"Краткие карточки без описания, по дате создания. Для синхронизации используйте updatedSince.","tags":["Задачи"],"x-klepps-scope":"tasks:read","parameters":[{"name":"projectId","in":"query","required":false,"schema":{"type":"string"},"description":"Где лежит задача"},{"name":"boardId","in":"query","required":false,"schema":{"type":"string"},"description":"Где лежит задача"},{"name":"statusId","in":"query","required":false,"schema":{"type":"string"},"description":"Где лежит задача"},{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["todo","progress","done"]},"description":"Тип колонки"},{"name":"assigneeId","in":"query","required":false,"schema":{"type":"string"},"description":"Исполнитель (любой из assigneeIds); none — без исполнителя"},{"name":"reporterId","in":"query","required":false,"schema":{"type":"string"},"description":"Автор"},{"name":"type","in":"query","required":false,"schema":{"type":"string"},"description":"Тип, можно несколько через запятую"},{"name":"priority","in":"query","required":false,"schema":{"type":"string"},"description":"Приоритет, можно несколько"},{"name":"label","in":"query","required":false,"schema":{"type":"string"},"description":"Метки через запятую — задача должна иметь все"},{"name":"parentId","in":"query","required":false,"schema":{"type":"string"},"description":"Подзадачи задачи; none — только верхнего уровня"},{"name":"dueBefore","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Срок не позже даты"},{"name":"updatedSince","in":"query","required":false,"schema":{"type":"string"},"description":"Изменённые после момента"},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Поиск по названию, ключу, описанию"},{"name":"archived","in":"query","required":false,"schema":{"type":"string","enum":["false","true","all"]},"description":"Архив: по умолчанию только активные"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Постраничная выдача"},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Постраничная выдача"}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":[{"id":"t-m4n8b2v6","key":"WEB-42","projectId":"p-w1e8r5t2","boardId":"b-9h4j2k7l","statusId":"s-prog1","status":{"name":"В работе","category":"progress"},"title":"Форма обратной связи","type":"task","priority":"high","assigneeId":"u-p7d2x8q4","assigneeIds":["u-p7d2x8q4"],"reporterId":"u-k3f9a2m1","labels":["frontend"],"dueDate":"2026-10-20","parentId":null,"timeEstimateSeconds":28800,"timeSpentSeconds":5400,"archived":false,"doneAt":null,"archivedAt":null,"createdAt":1760000000000,"updatedAt":1760090000000}],"nextCursor":null,"total":1}}}}}},"post":{"operationId":"taskCreate","summary":"Создать задачу","description":"Автором становится пользователь ключа. Исполнители получают уведомление, автоматизации доски срабатывают как обычно.","tags":["Задачи"],"x-klepps-scope":"tasks:write","parameters":[],"responses":{"201":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"t-m4n8b2v6","key":"WEB-42","projectId":"p-w1e8r5t2","boardId":"b-9h4j2k7l","statusId":"s-todo1","status":{"name":"К выполнению","category":"todo"},"title":"Форма обратной связи","type":"task","priority":"high","assigneeId":"u-p7d2x8q4","assigneeIds":["u-p7d2x8q4"],"reporterId":"u-k3f9a2m1","labels":["frontend"],"dueDate":"2026-10-20","parentId":null,"timeEstimateSeconds":28800,"timeSpentSeconds":0,"archived":false,"doneAt":null,"archivedAt":null,"createdAt":1760000000000,"updatedAt":1760090000000,"description":"<p>Поля: имя, контакт, сообщение. Отправка — на <b>/api/feedback</b>.</p>","descriptionText":"Поля: имя, контакт, сообщение. Отправка — на /api/feedback.","checklist":[{"id":"c-1","text":"Вёрстка","done":true},{"id":"c-2","text":"Валидация","done":false}],"subtaskIds":[],"timeLogs":[],"attachments":[{"id":"f-u8i9o0","name":"макет.png","size":182340,"type":"image/png"}],"docIds":["d-feedback"]}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Название"},"boardId":{"type":"string","description":"Доска; или projectId — тогда первая доска проекта"},"statusId":{"type":"string","description":"Колонка, по умолчанию первая"},"description":{"type":"string","description":"Описание в HTML или простым текстом"},"descriptionText":{"type":"string","description":"Описание в HTML или простым текстом"},"type":{"type":"string","enum":["task","bug","story","epic"],"description":"По умолчанию task"},"priority":{"type":"string","enum":["highest","high","medium","low","lowest"],"description":"По умолчанию medium"},"assigneeIds":{"type":"array","items":{"type":"string"},"description":"Исполнители"},"assigneeId":{"type":"string","description":"У кого задача сейчас (по умолчанию первый из assigneeIds)"},"labels":{"type":"array","items":{"type":"string"},"description":"Метки (новые создаются)"},"dueDate":{"type":["string","null"],"format":"date","description":"Срок"},"timeEstimateSeconds":{"type":"number","description":"Оценка времени"},"checklist":{"type":"array","items":{"type":"object"},"description":"Чек-лист"},"parentId":{"type":"string","description":"Родительская задача (тот же проект)"}},"required":["title"]},"example":{"projectId":"p-w1e8r5t2","title":"Форма обратной связи","descriptionText":"Поля: имя, контакт, сообщение.","priority":"high","assigneeIds":["u-p7d2x8q4"],"labels":["frontend"],"dueDate":"2026-10-20"}}}}}},"/tasks/{ref}":{"get":{"operationId":"taskGet","summary":"Задача целиком","description":"С описанием, чек-листом, подзадачами, записями времени, вложениями и связанными документами.","tags":["Задачи"],"x-klepps-scope":"tasks:read","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string"},"description":"id или ключ задачи"}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"t-m4n8b2v6","key":"WEB-42","projectId":"p-w1e8r5t2","boardId":"b-9h4j2k7l","statusId":"s-prog1","status":{"name":"В работе","category":"progress"},"title":"Форма обратной связи","type":"task","priority":"high","assigneeId":"u-p7d2x8q4","assigneeIds":["u-p7d2x8q4"],"reporterId":"u-k3f9a2m1","labels":["frontend"],"dueDate":"2026-10-20","parentId":null,"timeEstimateSeconds":28800,"timeSpentSeconds":5400,"archived":false,"doneAt":null,"archivedAt":null,"createdAt":1760000000000,"updatedAt":1760090000000,"description":"<p>Поля: имя, контакт, сообщение. Отправка — на <b>/api/feedback</b>.</p>","descriptionText":"Поля: имя, контакт, сообщение. Отправка — на /api/feedback.","checklist":[{"id":"c-1","text":"Вёрстка","done":true},{"id":"c-2","text":"Валидация","done":false}],"subtaskIds":[],"timeLogs":[{"id":"tl-a8s7d6f5","taskId":"t-m4n8b2v6","taskKey":"WEB-42","projectId":"p-w1e8r5t2","userId":"u-p7d2x8q4","seconds":5400,"date":"2026-10-09","note":"Вёрстка и валидация"}],"attachments":[{"id":"f-u8i9o0","name":"макет.png","size":182340,"type":"image/png"}],"docIds":["d-feedback"]}}}}}}},"patch":{"operationId":"taskPatch","summary":"Изменить задачу","description":"Передавайте только меняющиеся поля. statusId переносит задачу в колонку (наверх), boardId — на другую доску проекта, assigneeIds заменяет список исполнителей, assigneeId передаёт задачу.","tags":["Задачи"],"x-klepps-scope":"tasks:write","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"t-m4n8b2v6","key":"WEB-42","projectId":"p-w1e8r5t2","boardId":"b-9h4j2k7l","statusId":"s-done1","status":{"name":"Готово","category":"done"},"title":"Форма обратной связи","type":"task","priority":"medium","assigneeId":"u-p7d2x8q4","assigneeIds":["u-p7d2x8q4"],"reporterId":"u-k3f9a2m1","labels":["frontend"],"dueDate":"2026-10-20","parentId":null,"timeEstimateSeconds":28800,"timeSpentSeconds":5400,"archived":false,"doneAt":null,"archivedAt":null,"createdAt":1760000000000,"updatedAt":1760090000000,"description":"<p>Поля: имя, контакт, сообщение. Отправка — на <b>/api/feedback</b>.</p>","descriptionText":"Поля: имя, контакт, сообщение. Отправка — на /api/feedback.","checklist":[{"id":"c-1","text":"Вёрстка","done":true},{"id":"c-2","text":"Валидация","done":false}],"subtaskIds":[],"timeLogs":[{"id":"tl-a8s7d6f5","taskId":"t-m4n8b2v6","taskKey":"WEB-42","projectId":"p-w1e8r5t2","userId":"u-p7d2x8q4","seconds":5400,"date":"2026-10-09","note":"Вёрстка и валидация"}],"attachments":[{"id":"f-u8i9o0","name":"макет.png","size":182340,"type":"image/png"}],"docIds":["d-feedback"]}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Как при создании"},"description":{"type":"string","description":"Как при создании"},"descriptionText":{"type":"string","description":"Как при создании"},"type":{"type":"string","description":"Как при создании"},"priority":{"type":"string","description":"Как при создании"},"labels":{"type":"string","description":"Как при создании"},"dueDate":{"type":"string","description":"Как при создании"},"timeEstimateSeconds":{"type":"string","description":"Как при создании"},"checklist":{"type":"string","description":"Как при создании"},"statusId":{"type":"string","description":"Новая колонка"},"boardId":{"type":"string","description":"Другая доска того же проекта"},"assigneeIds":{"type":"array","items":{"type":"string"},"description":"Исполнители"},"assigneeId":{"type":"string","description":"Передать задачу"},"parentId":{"type":["string","null"],"description":"Сделать подзадачей / отвязать"}}},"example":{"statusId":"s-done1","priority":"medium"}}}}},"delete":{"operationId":"taskDelete","summary":"Удалить задачу","description":"Безвозвратно, вместе со списанным временем.","tags":["Задачи"],"x-klepps-scope":"tasks:write","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Нет содержимого"}}}},"/tasks/{ref}/context":{"get":{"operationId":"taskContext","summary":"Контекст для ИИ","description":"Задача одним Markdown-текстом: свойства, описание, чек-лист, подзадачи, обсуждение (последние 50 комментариев с id), связанные документы (с правом docs:read) и договорённости со встреч (с правом meetings:read). Готовый контекст для ИИ-агента; то же копирует кнопка «Скопировать для ИИ» в карточке задачи.","tags":["Задачи"],"x-klepps-scope":"tasks:read","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string"},"description":"id или ключ задачи"},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["markdown","json"]},"description":"По умолчанию text/markdown; json — {data: {taskId, key, markdown}}"}],"responses":{"204":{"description":"Нет содержимого"}}}},"/tasks/{ref}/move":{"post":{"operationId":"taskMove","summary":"Перенести в колонку","tags":["Задачи"],"x-klepps-scope":"tasks:write","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"t-m4n8b2v6","key":"WEB-42","projectId":"p-w1e8r5t2","boardId":"b-9h4j2k7l","statusId":"s-prog1","status":{"name":"В работе","category":"progress"},"title":"Форма обратной связи","type":"task","priority":"high","assigneeId":"u-p7d2x8q4","assigneeIds":["u-p7d2x8q4"],"reporterId":"u-k3f9a2m1","labels":["frontend"],"dueDate":"2026-10-20","parentId":null,"timeEstimateSeconds":28800,"timeSpentSeconds":5400,"archived":false,"doneAt":null,"archivedAt":null,"createdAt":1760000000000,"updatedAt":1760090000000,"description":"<p>Поля: имя, контакт, сообщение. Отправка — на <b>/api/feedback</b>.</p>","descriptionText":"Поля: имя, контакт, сообщение. Отправка — на /api/feedback.","checklist":[{"id":"c-1","text":"Вёрстка","done":true},{"id":"c-2","text":"Валидация","done":false}],"subtaskIds":[],"timeLogs":[{"id":"tl-a8s7d6f5","taskId":"t-m4n8b2v6","taskKey":"WEB-42","projectId":"p-w1e8r5t2","userId":"u-p7d2x8q4","seconds":5400,"date":"2026-10-09","note":"Вёрстка и валидация"}],"attachments":[{"id":"f-u8i9o0","name":"макет.png","size":182340,"type":"image/png"}],"docIds":["d-feedback"]}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"statusId":{"type":"string","description":"Колонка"},"position":{"type":"number","description":"Место в колонке, 0 — сверху (по умолчанию)"},"boardId":{"type":"string","description":"Другая доска того же проекта"}},"required":["statusId"]},"example":{"statusId":"s-prog1","position":2}}}}}},"/tasks/{ref}/comments":{"get":{"operationId":"comments","summary":"Комментарии","description":"Обсуждение задачи, старые сверху. Текст — простой, с переносами строк; упоминания — @логин.","tags":["Задачи"],"x-klepps-scope":"tasks:read","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string"},"description":"id или ключ задачи"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Постраничная выдача"},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Постраничная выдача"}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":[{"id":"m-z7x6c5v4","authorId":"u-p7d2x8q4","text":"Готово: форма отправляет заявку, валидация полей на клиенте и сервере.","replyTo":null,"createdAt":1760090000000},{"id":"m-q2w3e4r5","authorId":"u-k3f9a2m1","text":"Спасибо, проверю на стенде.","replyTo":"m-z7x6c5v4","createdAt":1760091200000}],"nextCursor":null,"total":2}}}}}},"post":{"operationId":"commentAdd","summary":"Написать комментарий","description":"От имени пользователя ключа. Автор и исполнители задачи, упомянутые и автор комментария, на который отвечают, получают уведомление во «Входящих». Сюда ИИ-агенту стоит писать результат работы, не меняя описание задачи.","tags":["Задачи"],"x-klepps-scope":"tasks:write","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"m-z7x6c5v4","authorId":"u-p7d2x8q4","text":"Готово: форма отправляет заявку, валидация полей на клиенте и сервере.","replyTo":null,"createdAt":1760090000000}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Текст, до 20 000 символов"},"replyTo":{"type":["string","null"],"description":"id комментария, на который это ответ"}},"required":["text"]},"example":{"text":"Готово: форма отправляет заявку, валидация полей на клиенте и сервере. @anna@romashka.ru посмотрите, пожалуйста."}}}}}},"/time/report":{"get":{"operationId":"timeReport","summary":"Отчёт по времени","description":"Суммы за период в разрезе людей, задач, проектов или дней — до трёх разрезов сразу (например, user,task — кто сколько потратил на каждую задачу).","tags":["Учёт времени"],"x-klepps-scope":"time:read","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Период включительно, не больше года; по умолчанию с 1-го числа по сегодня"},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Период включительно, не больше года; по умолчанию с 1-го числа по сегодня"},{"name":"groupBy","in":"query","required":false,"schema":{"type":"string"},"description":"Разрезы через запятую, по умолчанию user"},{"name":"userId","in":"query","required":false,"schema":{"type":"string"},"description":"Фильтры, можно несколько через запятую"},{"name":"projectId","in":"query","required":false,"schema":{"type":"string"},"description":"Фильтры, можно несколько через запятую"},{"name":"taskId","in":"query","required":false,"schema":{"type":"string"},"description":"Фильтры, можно несколько через запятую"}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"from":"2026-10-01","to":"2026-10-31","groupBy":["user","project"],"totalSeconds":129600,"totalHours":36,"data":[{"user":{"id":"u-p7d2x8q4","name":"Иван Петров"},"project":{"id":"p-w1e8r5t2","key":"WEB","name":"Сайт"},"seconds":86400,"entries":14,"hours":24},{"user":{"id":"u-k3f9a2m1","name":"Анна Смирнова"},"project":{"id":"p-w1e8r5t2","key":"WEB","name":"Сайт"},"seconds":43200,"entries":9,"hours":12}]}}}}}}},"/time/entries":{"get":{"operationId":"timeEntries","summary":"Записи времени","description":"Отдельные записи, новые сверху — для выгрузки в 1С, BI или табель.","tags":["Учёт времени"],"x-klepps-scope":"time:read","parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Период, как в отчёте"},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Период, как в отчёте"},{"name":"userId","in":"query","required":false,"schema":{"type":"string"},"description":"Фильтры через запятую"},{"name":"projectId","in":"query","required":false,"schema":{"type":"string"},"description":"Фильтры через запятую"},{"name":"taskId","in":"query","required":false,"schema":{"type":"string"},"description":"Фильтры через запятую"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Постраничная выдача"},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Постраничная выдача"}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":[{"id":"tl-a8s7d6f5","taskId":"t-m4n8b2v6","taskKey":"WEB-42","projectId":"p-w1e8r5t2","userId":"u-p7d2x8q4","seconds":5400,"date":"2026-10-09","note":"Вёрстка и валидация"}],"nextCursor":null,"total":1}}}}}}},"/tasks/{ref}/time":{"post":{"operationId":"timeAdd","summary":"Списать время","description":"Время записывается на пользователя ключа.","tags":["Учёт времени"],"x-klepps-scope":"time:write","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"tl-a8s7d6f5","taskId":"t-m4n8b2v6","taskKey":"WEB-42","projectId":"p-w1e8r5t2","userId":"u-p7d2x8q4","seconds":5400,"date":"2026-10-09","note":"Вёрстка и валидация"}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"minutes":{"type":"number","description":"Сколько (от 1 минуты до 7 суток)"},"seconds":{"type":"number","description":"Сколько (от 1 минуты до 7 суток)"},"date":{"type":"string","format":"date","description":"День, по умолчанию сегодня (МСК)"},"note":{"type":"string","description":"Что делали"}}},"example":{"minutes":90,"date":"2026-10-09","note":"Вёрстка и валидация"}}}}}},"/doc-spaces":{"get":{"operationId":"spaces","summary":"Разделы","tags":["Документы"],"x-klepps-scope":"docs:read","parameters":[],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":[{"id":"ds-tech","name":"Техническая документация","description":"Архитектура, API, инфраструктура"}]}}}}}}},"/docs":{"get":{"operationId":"docsList","summary":"Список страниц","description":"Без содержимого, в порядке дерева.","tags":["Документы"],"x-klepps-scope":"docs:read","parameters":[{"name":"spaceId","in":"query","required":false,"schema":{"type":"string"},"description":"Раздел"},{"name":"parentId","in":"query","required":false,"schema":{"type":"string"},"description":"Дочерние страницы; none — верхнего уровня"},{"name":"taskId","in":"query","required":false,"schema":{"type":"string"},"description":"Страницы, связанные с задачей"},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Поиск по названию и тексту"},{"name":"updatedSince","in":"query","required":false,"schema":{"type":"string"},"description":"Изменённые после момента"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Постраничная выдача"},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Постраничная выдача"}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":[{"id":"d-feedback","spaceId":"ds-tech","parentId":null,"title":"Форма обратной связи","taskIds":["t-m4n8b2v6"],"authorId":"u-k3f9a2m1","createdAt":1759900000000,"updatedAt":1760080000000}],"nextCursor":null,"total":1}}}}}},"post":{"operationId":"docCreate","summary":"Создать страницу","tags":["Документы"],"x-klepps-scope":"docs:write","parameters":[],"responses":{"201":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"d-r3l3as","spaceId":"ds-tech","parentId":null,"title":"Релиз 1.4.2","taskIds":[],"authorId":"u-k3f9a2m1","createdAt":1759900000000,"updatedAt":1760080000000,"content":"<p>Что вошло:<br>— форма обратной связи<br>— тёмная тема</p>","text":"Что вошло:\n— форма обратной связи\n— тёмная тема","attachments":[]}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"spaceId":{"type":"string","description":"Раздел"},"title":{"type":"string","description":"Заголовок"},"parentId":{"type":"string","description":"Родительская страница"},"content":{"type":"string","description":"Содержимое в HTML или простым текстом"},"text":{"type":"string","description":"Содержимое в HTML или простым текстом"}},"required":["spaceId","title"]},"example":{"spaceId":"ds-tech","title":"Релиз 1.4.2","text":"Что вошло:\n— форма обратной связи\n— тёмная тема"}}}}}},"/docs/{id}":{"get":{"operationId":"docGet","summary":"Страница целиком","tags":["Документы"],"x-klepps-scope":"docs:read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","markdown"]},"description":"markdown — страница простым Markdown-текстом (удобно для ИИ)"}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"d-feedback","spaceId":"ds-tech","parentId":null,"title":"Форма обратной связи","taskIds":["t-m4n8b2v6"],"authorId":"u-k3f9a2m1","createdAt":1759900000000,"updatedAt":1760080000000,"content":"<h2>Поля</h2><ul><li>Имя</li><li>Контакт</li></ul>","text":"Поля\nИмя\nКонтакт","attachments":[]}}}}}}},"patch":{"operationId":"docPatch","summary":"Изменить страницу","description":"Прежний текст сохраняется в истории версий (не чаще раза в час), изменение попадает в журнал документа.","tags":["Документы"],"x-klepps-scope":"docs:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"d-feedback","spaceId":"ds-tech","parentId":null,"title":"Форма обратной связи","taskIds":["t-m4n8b2v6"],"authorId":"u-k3f9a2m1","createdAt":1759900000000,"updatedAt":1760080000000,"content":"<h2>Поля</h2><ul><li>Имя</li><li>Контакт</li><li>Сообщение</li></ul>","text":"Поля\nИмя\nКонтакт\nСообщение","attachments":[]}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Заголовок"},"content":{"type":"string","description":"Новое содержимое целиком"},"text":{"type":"string","description":"Новое содержимое целиком"}}},"example":{"content":"<h2>Поля</h2><ul><li>Имя</li><li>Контакт</li><li>Сообщение</li></ul>"}}}}}},"/meeting-folders":{"get":{"operationId":"folders","summary":"Папки встреч","tags":["Транскрипты встреч"],"x-klepps-scope":"meetings:read","parameters":[],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":[{"id":"mf-dev","name":"Разработка","parentId":null,"teamIds":["tm-frontend"]}]}}}}}}},"/meetings":{"get":{"operationId":"meetingsList","summary":"Список встреч","description":"Новые сверху.","tags":["Транскрипты встреч"],"x-klepps-scope":"meetings:read","parameters":[{"name":"folderId","in":"query","required":false,"schema":{"type":"string"},"description":"Папка; personal — личные"},{"name":"projectId","in":"query","required":false,"schema":{"type":"string"},"description":"Проект встречи"},{"name":"status","in":"query","required":false,"schema":{"type":"string"},"description":"recording, transcribing, done, failed…"},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Дата встречи"},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Дата встречи"},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Поиск по названию и саммари"},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Постраничная выдача"},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Постраничная выдача"}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":[{"id":"mt-h5j6k7","title":"Планирование спринта","url":"https://telemost.yandex.ru/j/12345678901234","folderId":"mf-dev","projectId":"p-w1e8r5t2","createdBy":"u-k3f9a2m1","startedAt":1760010060000,"endedAt":1760012700000,"status":"done","participants":["Анна Смирнова","Иван Петров"],"transcriptReady":true,"hasSummary":true}],"nextCursor":null,"total":1}}}}}}},"/meetings/{id}":{"get":{"operationId":"meetingGet","summary":"Встреча с саммари","tags":["Транскрипты встреч"],"x-klepps-scope":"meetings:read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":{"id":"mt-h5j6k7","title":"Планирование спринта","url":"https://telemost.yandex.ru/j/12345678901234","folderId":"mf-dev","projectId":"p-w1e8r5t2","createdBy":"u-k3f9a2m1","startedAt":1760010060000,"endedAt":1760012700000,"status":"done","participants":["Анна Смирнова","Иван Петров"],"transcriptReady":true,"hasSummary":true,"summary":{"overview":"Спланировали спринт 14: форма обратной связи, тёмная тема, исправление оплаты.","topics":[{"title":"Форма обратной связи","points":["Нужна капча","Ответ — на e-mail или телефон"]}],"decisions":["Релиз 1.4.2 — 20 октября"],"actionItems":[{"text":"Сверстать форму","owner":"Иван Петров","due":"2026-10-15","taskId":"t-m4n8b2v6"}],"generatedAt":1760013000000}}}}}}}}},"/meetings/{id}/transcript":{"get":{"operationId":"transcript","summary":"Транскрипт","description":"Реплики по порядку. С format=text — простой текст «[чч:мм:сс] Имя: реплика» построчно.","tags":["Транскрипты встреч"],"x-klepps-scope":"meetings:read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","text"]},"description":"По умолчанию json"}],"responses":{"200":{"description":"Успех","content":{"application/json":{"example":{"data":{"meetingId":"mt-h5j6k7","replicas":[{"speaker":"Анна Смирнова","start":"00:00:04","end":"00:00:11","text":"Коллеги, начнём. Сегодня планируем четырнадцатый спринт."},{"speaker":"Иван Петров","start":"00:00:12","end":"00:00:20","text":"Предлагаю начать с формы обратной связи, макет уже готов."}]}}}}}}}}}}