Перейти к содержимому

Удаление и восстановление

Удаление задачи или события через API не окончательно. Запись уезжает в корзину, лежит там 30 дней и может быть восстановлена — вами через API или кем угодно из workspace через веб-приложение.

Метод Путь
DELETE /tasks/{id} Отправить задачу в корзину
GET /tasks/trash Список удалённых задач (курсорная пагинация)
POST /tasks/{id}/restore Вернуть задачу
DELETE /scheduled-events/{id} Отправить событие в корзину
GET /scheduled-events/trash Список удалённых событий
POST /scheduled-events/{id}/restore Вернуть событие

Для удаления нужно право tasks:write или events:write, для чтения корзины — соответствующее :read. Удалённая запись сразу пропадает из всех остальных списков и из отчётов: корзина — единственное место, где её ещё видно.

Terminal window
curl "https://api.bordio.com/public/v1/tasks/trash" \
-H "Authorization: Bearer brd_sk_live_..."
{
"data": [
{
"id": "task_65dcc9c66f2e4e001ab18859",
"object": "task",
"title": "Согласовать новый макет",
"project_id": "proj_65dcc9c66f2e4e001ab18801",
"deleted_at": "2026-09-01T10:00:00.000Z",
"expires_at": "2026-10-01T10:00:00.000Z",
"deleted_by": "user_65dcc9c66f2e4e001ab18802"
}
],
"pagination": { "next_cursor": null, "has_more": false }
}

expires_at — момент, после которого запись уходит из корзины. Дальше она пропадает окончательно, а restore отвечает 404. Остального в этом списке нет — ни описания, ни кастомных полей, ни комментариев: прочитайте запись обычным GET, когда вернёте её.

В корзине видно ровно то же, что и везде. Недоступный вам проект не добавляет в неё ничего, а project-scoped ключ видит только свой проект. Когда от вашего имени действует ассистент или приложение, ваша роль в workspace должна ещё и разрешать управление корзиной — иначе и список, и восстановление будут отклонены.

Terminal window
curl -X POST "https://api.bordio.com/public/v1/tasks/task_65dcc9c66f2e4e001ab18859/restore" \
-H "Authorization: Bearer brd_sk_live_..."

В ответе — полная задача, ровно та же, что вернул бы GET /tasks/{id}.

О чём стоит знать заранее:

  • Повторное восстановление отвечает 404. Вернувшаяся запись в корзине больше не лежит, восстанавливать нечего. Считайте 404 ответом «уже вернули или срок вышел», а не ошибкой в своём коде.
  • Проект должен быть жив. Задачу из удалённого проекта не вернуть, пока не восстановлен сам проект: запрос отвечает 400.
  • Повторение не восстанавливается повторением. Удаление одного вхождения открепляет его от серии, и обратно оно приходит разовой записью. Удаление серии целиком (?scope=all) уносит и само правило повторения — это необратимо.
  • Восстановленная задача встаёт в конец своей колонки, а не на прежнее место.
  • Комментарии и вложения возвращаются вместе с записью. Списанное на задачу время — тоже.

Такого метода в API нет. Записи уходят из корзины сами через 30 дней либо когда их удаляют навсегда в веб-приложении. Ни один вызов отсюда не стирает запись немедленно.

Проекты через API не удаляются. Завершённый проект отправляют в архив: он пропадает из workspace, но всё внутри остаётся на месте, и вернуть его можно в любой момент.

Метод Путь
POST /projects/{id}/archive В архив
POST /projects/{id}/unarchive Обратно
Terminal window
curl -X POST "https://api.bordio.com/public/v1/projects/proj_65dcc9c66f2e4e001ab18801/archive" \
-H "Authorization: Bearer brd_sk_live_..."

Обеим операциям нужно право projects:write, обе возвращают проект. Архивация уже архивного проекта отвечает 400, как и разархивация неархивного.

Архивные проекты остаются в GET /projects с заполненным archived_at. Сузить список можно параметром archived:

Terminal window
curl "https://api.bordio.com/public/v1/projects?archived=false" \
-H "Authorization: Bearer brd_sk_live_..."

Без параметра приходят и те, и другие — как раньше.

Задачи и события внутри архивного проекта не удаляются и в корзине не появляются.