Для AI-агентов: markdown этой страницы — /docs-content/entities/activities/todos/update.md индекс документации — /llms.txt
Изменить to-do
PATCH /v1/activity-todos/:id
Меняет срок, текст, ответственного, напоминания или родителя у дела типа «To-do». Передавайте только изменяемые поля, плоско в корне JSON.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
Параметрid (path) |
Типnumber | Обяз.да | ОписаниеID to-do. Список: GET /v1/activities с фильтром providerId=CRM_TODO |
Поля запроса (body)
Тело не может быть пустым: нужно хотя бы одно поле.
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
Полеdeadline |
Типstring | Обяз.нет | ОписаниеНовый срок в формате ISO 8601, например 2026-11-03T15:00:00+03:00 |
Полеtitle |
Типstring | Обяз.нет | ОписаниеНовый заголовок. В ответе приходит в поле subject |
Полеdescription |
Типstring | Обяз.нет | ОписаниеНовое описание |
ПолеresponsibleId |
Типnumber | Обяз.нет | ОписаниеID нового ответственного. Список: GET /v1/users |
ПолеparentActivityId |
Типnumber | Обяз.нет | ОписаниеID дела, к которому привязывается to-do. Родитель должен относиться к тому же объекту CRM. Список дел объекта: GET /v1/activities с фильтром по ownerTypeId и ownerId |
ПолеpingOffsets |
Типnumber[] | Обяз.нет | ОписаниеНапоминания: целые числа минут до срока, не меньше 0. Заменяют прежний набор целиком |
Объект CRM дела не меняется: ownerTypeId и ownerId в теле отклоняются с 400 INVALID_PARAMS, как и любое другое неизвестное поле. colorId из палитры отклоняется с 422, вне палитры — с 400, см. «Ошибки».
Примеры
curl — личный ключ
curl -X PATCH "https://vibecode.bitrix24.tech/v1/activity-todos/8379" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Проверить договор и счёт",
"pingOffsets": [0, 30]
}'
curl — OAuth-приложение
curl -X PATCH "https://vibecode.bitrix24.tech/v1/activity-todos/8379" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Проверить договор и счёт",
"pingOffsets": [0, 30]
}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/activity-todos/8379', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'Проверить договор и счёт',
pingOffsets: [0, 30],
}),
})
const { data } = await res.json()
console.log(data.subject)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/activity-todos/8379', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'Проверить договор и счёт',
pingOffsets: [0, 30],
}),
})
const { data } = await res.json()
Поля ответа
Ответ — дело, прочитанное после изменения. Форма та же, что у GET /v1/activities/:id.
| Поле | Тип | Описание |
|---|---|---|
Полеsuccess |
Типboolean | Описаниеtrue при успехе |
Полеdata |
Типobject | ОписаниеИзменённое дело, все поля — Поля дела |
Полеdata.id |
Типnumber | ОписаниеID дела |
Полеdata.subject |
Типstring | ОписаниеЗаголовок из поля title |
Полеdata.deadline |
Типstring | ОписаниеСрок дела в UTC |
Полеdata.associatedEntityId |
Типnumber | ОписаниеID родительского дела или 0 без родителя |
Полеdata.updatedAt |
Типstring | ОписаниеВремя последнего изменения в UTC |
Пример ответа
Показаны основные поля. Полный список: Поля дела.
{
"success": true,
"data": {
"id": 8379,
"ownerId": 8845,
"ownerTypeId": 2,
"providerId": "CRM_TODO",
"associatedEntityId": 0,
"subject": "Проверить договор и счёт",
"updatedAt": "2026-10-15T10:06:02.000Z",
"deadline": "2026-11-03T12:00:00.000Z",
"completed": false,
"status": 1,
"responsibleId": 1317,
"description": "Позвонить клиенту"
}
}
Пример ответа при ошибке
422 — to-do уже завершено:
{
"success": false,
"error": {
"code": "ACTIVITY_TODO_COMPLETED",
"message": "The to-do is completed and cannot be updated"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| HTTP400 | КодINVALID_PARAMS |
Описаниеid не положительное целое число |
| HTTP400 | КодINVALID_PARAMS |
ОписаниеНарушена валидация тела: пустое тело, responsibleId или parentActivityId не положительное целое число, title или description не строка, срок не в формате ISO 8601, pingOffsets не массив неотрицательных целых чисел, неизвестное поле, colorId вне палитры |
| HTTP400 | КодINVALID_PARAMS |
ОписаниеРодительское дело из parentActivityId относится к другому объекту CRM |
| HTTP400 | КодMISSING_REQUIRED_FIELDS |
ОписаниеТело запроса не JSON-объект |
| HTTP404 | КодENTITY_NOT_FOUND |
ОписаниеДело с таким id не to-do: у него другой провайдер, например звонок или открытая линия |
| HTTP404 | КодENTITY_NOT_FOUND |
ОписаниеДела с таким id или дела из parentActivityId не существует. To-do не меняется |
| HTTP422 | КодACTIVITY_TODO_COMPLETED |
ОписаниеTo-do завершено и не меняется |
| HTTP422 | КодUNSUPPORTED_ACTIVITY_BLOCKS |
ОписаниеВ теле передан colorId из палитры. Цвет задаётся только при создании |
| HTTP422 | КодACTIVITY_UPDATE_NOT_APPLIED |
ОписаниеПосле записи прочитанное дело не совпало с запросом, или поля, не переданные в запросе, могли не сохраниться. Изменение могло примениться частично: прочитайте дело через GET /v1/activities/:id и сравните с ожидаемым, прежде чем повторять PATCH |
| HTTP502 | КодBITRIX_ERROR |
ОписаниеНе удалось прочитать данные дела до или после записи. Изменение могло примениться: прочитайте дело, прежде чем повторять PATCH |
| HTTP403 | КодWRITE_BLOCKED_READONLY_KEY |
ОписаниеКлюч только для чтения |
| HTTP403 | КодSCOPE_DENIED |
ОписаниеУ ключа нет скоупа crm |
| HTTP401 | КодTOKEN_MISSING |
ОписаниеУ ключа нет подключения к Битрикс24 |
Полный список общих ошибок API — Ошибки.
Известные особенности
Непереданные поля сохраняются. Если в теле только одно из полей deadline, description или responsibleId, меняется только оно. При любом другом наборе полей сервис читает текущее дело и сам дописывает к запросу заголовок, описание, срок и напоминания, которых нет в теле.