Для AI-агентов: markdown этой страницы — /docs-content/entities/activities/todos/create.md индекс документации — /llms.txt

Создать to-do

POST /v1/activity-todos

Создаёт дело типа «To-do» у сделки, лида, контакта или компании. Поля передаются плоско в корне JSON, без обёртки fields.

Поля запроса (body)

Поле Тип Обяз. Описание
ПолеownerTypeId Типnumber Обяз.да ОписаниеТип объекта CRM, к которому относится дело. Для сделки — 2
ПолеownerId Типnumber Обяз.да ОписаниеID объекта CRM. Для сделки — ID из GET /v1/deals
Полеdeadline Типstring Обяз.да ОписаниеСрок дела в формате ISO 8601, например 2026-11-02T12:00:00+03:00
Полеtitle Типstring Обяз.нет ОписаниеЗаголовок дела. В ответе приходит в поле subject
Полеdescription Типstring Обяз.нет ОписаниеОписание дела
ПолеresponsibleId Типnumber Обяз.нет ОписаниеID ответственного. Список: GET /v1/users. Без поля ответственным становится пользователь ключа
ПолеparentActivityId Типnumber Обяз.нет ОписаниеID дела, к которому привязывается новое. Родитель должен относиться к тому же объекту CRM. Список дел объекта: GET /v1/activities с фильтром по ownerTypeId и ownerId
ПолеpingOffsets Типnumber[] Обяз.нет ОписаниеНапоминания: целые числа минут до срока, не меньше 0
ПолеcolorId Типstring Обяз.нет ОписаниеЦвет дела: default или от 1 до 7. После создания цвет не меняется

Других полей тело не принимает: неизвестное поле отклоняется с 400 INVALID_PARAMS.

Примеры

curl — личный ключ

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/activity-todos" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "ownerTypeId": 2,
    "ownerId": 8845,
    "deadline": "2026-11-02T12:00:00+03:00",
    "title": "Проверить договор",
    "description": "Позвонить клиенту"
  }'

curl — OAuth-приложение

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/activity-todos" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "ownerTypeId": 2,
    "ownerId": 8845,
    "deadline": "2026-11-02T12:00:00+03:00",
    "title": "Проверить договор",
    "description": "Позвонить клиенту"
  }'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/activity-todos', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    ownerTypeId: 2,
    ownerId: 8845,
    deadline: '2026-11-02T12:00:00+03:00',
    title: 'Проверить договор',
    description: 'Позвонить клиенту',
  }),
})

const { data } = await res.json()
console.log('To-do ID:', data.id)

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/activity-todos', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    ownerTypeId: 2,
    ownerId: 8845,
    deadline: '2026-11-02T12:00:00+03:00',
    title: 'Проверить договор',
    description: 'Позвонить клиенту',
  }),
})

const { data } = await res.json()

Поля ответа

Ответ — HTTP 201 с созданным делом, прочитанным после записи. Форма та же, что у GET /v1/activities/:id.

Поле Тип Описание
Полеsuccess Типboolean Описаниеtrue при успехе
Полеdata Типobject ОписаниеСозданное дело, все поля — Поля дела
Полеdata.id Типnumber ОписаниеID дела. По нему дело читается через GET /v1/activities/:id и меняется через PATCH /v1/activity-todos/:id
Полеdata.providerId Типstring ОписаниеВсегда CRM_TODO
Полеdata.subject Типstring ОписаниеЗаголовок из поля title запроса
Полеdata.deadline Типstring ОписаниеСрок дела в UTC
Полеdata.associatedEntityId Типnumber ОписаниеID родительского дела из parentActivityId или 0 без родителя
Полеdata.completed Типboolean ОписаниеЗавершено ли дело. У нового дела — false

Пример ответа

Показаны основные поля. Полный список: Поля дела.

JSON
{
  "success": true,
  "data": {
    "id": 8379,
    "ownerId": 8845,
    "ownerTypeId": 2,
    "typeId": 6,
    "providerId": "CRM_TODO",
    "providerTypeId": "TODO",
    "associatedEntityId": 0,
    "subject": "Проверить договор",
    "deadline": "2026-11-02T09:00:00.000Z",
    "completed": false,
    "status": 1,
    "responsibleId": 1317,
    "description": "Позвонить клиенту"
  }
}

Пример ответа при ошибке

400 — родительское дело относится к другому объекту CRM:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "Parent activity is not bound to the requested CRM owner"
  }
}

Ошибки

HTTP Код Описание
HTTP400 КодINVALID_PARAMS ОписаниеНарушена валидация тела: нет ownerTypeId, ownerId или deadline, ID-поле не положительное целое число, title или description не строка, срок не в формате ISO 8601, цвет вне палитры, pingOffsets не массив неотрицательных целых чисел, неизвестное поле
HTTP400 КодINVALID_PARAMS ОписаниеРодительское дело из parentActivityId относится к другому объекту CRM
HTTP400 КодMISSING_REQUIRED_FIELDS ОписаниеТело запроса не JSON-объект
HTTP422 КодACTIVITY_PARENT_NOT_APPLIED ОписаниеДело создано, но без привязки к родителю. ID нового дела — в error.createdId: проверьте его через GET /v1/activities/:id и родительское дело, а не отправляйте POST снова — повтор создаст второе дело
HTTP404 КодENTITY_NOT_FOUND ОписаниеДела из parentActivityId не существует. Дело не создаётся
HTTP502 КодBITRIX_ERROR ОписаниеНе удалось прочитать привязки родительского дела, или Битрикс24 не вернул ID созданного дела. Во втором случае проверьте список дел объекта, прежде чем повторять запрос
HTTP502 КодACTIVITY_CREATED_READ_FAILED ОписаниеДело создано, но прочитать его после записи не удалось. ID нового дела — в error.createdId: проверьте его через GET /v1/activities/:id, а не отправляйте POST снова — повтор создаст второе дело
HTTP403 КодWRITE_BLOCKED_READONLY_KEY ОписаниеКлюч только для чтения
HTTP403 КодSCOPE_DENIED ОписаниеУ ключа нет скоупа crm
HTTP401 КодTOKEN_MISSING ОписаниеУ ключа нет подключения к Битрикс24

Полный список общих ошибок API — Ошибки.

Известные особенности

Родитель завершается. Дело, указанное в parentActivityId, после создания нового становится завершённым: completed: true, status: 2.

Смотрите также