Спросить ИИ
Русский RU
Перейти в Watbot

Списки

Методы этого раздела создают и удаляют списки, меняют их поля и ведут записи: добавляют, читают, изменяют и удаляют. Например, сайт может сам пополнять список «Меню кофейни», а бот — показывать его людям.

Как устроен список

Список состоит из двух частей:

  • Схема — название списка и его поля. С ней работают методы на странице Списки и поля. В названиях методов схема так и называется: getListSchema, createListSchema.
  • Записи — строки списка со значениями полей. С ними работают методы на странице Записи.

Списки принадлежат проекту. Создать список можно в проекте или в боте — тогда он тоже попадает в проект этого бота. Через API доступны все списки проектов, владелец которых — хозяин ключа: и созданные в ботах, и созданные прямо в проекте.

Идентификаторы

Что Как выглядит Где взять
Список (schema_id, id в ответах) Строка из 24 символов: 6650a1f2c3d4e5f6a7b8c9d0 Ответы getListSchemas и createListSchema
Запись (item_id, id в ответах) Строка из 24 символов, как у списка Ответы getListItems и addListItem
Поле (slug) Буквы, цифры, - и _, лучше латиницей: price Ключи объекта fields в ответе getListSchema
Проект (project_uuid, project в ответах) UUID: 3f2b8c1e-… Адрес проекта в кабинете: /projects/<uuid>/…
Бот (bot_id) Число Адрес бота в кабинете: /bots/12345/…
Контакт Число Методы контактов

slug — это имя поля в подстановках: под ним значение лежит в записи и под ним же его читают блоки бота. Поля, созданные в кабинете, получают его автоматически; через API вы задаёте его сами.

Типы полей

Тип задаётся при создании поля в параметре type и потом не меняется.

type Тип в кабинете Что передавать Что приходит в ответе
string «Текст» Строку Строку
number «Число» Число или строку с числом: 12, "4.5" Число
bool «Логический» true или false (подойдут и 1, 0) true или false
date «Дата» Дату в любом понятном формате: "2026-10-15" Дату и время в UTC: "2026-10-15T00:00:00.000000Z"
datetime «Дата и время» Дату и время: "2026-10-15 14:30" или "2026-10-15T14:30:00+03:00" Дату и время в UTC
money «Денежный» Сумму в рублях, долларах и т. п.: 350 или 199.99 Сумму в тех же единицах: 350
file «Файл» Объект со ссылкой — см. ниже Объект с описанием файла
image «Картинка» Объект со ссылкой — см. ниже Объект с описанием файла
contact «ID контакта» Номер контакта Номер контакта
bot «ID бота» Номер бота Номер бота

Пустое поле приходит в ответе как null.

Дата и время

Время без часового пояса считается временем UTC: "2026-10-15 14:30" сохранится как 14:30 UTC. Чтобы передать местное время, укажите пояс: "2026-10-15T14:30:00+03:00". Поле date время не обрезает: если передать дату со временем, время сохранится.

Деньги

Валюта задаётся у поля при его создании (currency) и в записи не передаётся. Это трёхбуквенный код по ISO 4217: RUB, USD, EUR. В createListSchema валюту можно не указывать — тогда USD; в addListSchemaField она обязательна. Неизвестный код — 422.

Сумму передавайте в основных единицах — рублях, а не копейках. Она округляется до знаков валюты (у рубля и доллара — два), половина — в большую сторону: 0.295 сохранится как 0.30.

Файлы и картинки

Значение поля file или image — объект. Через API в него можно записать только ссылку на файл, который лежит в интернете:

{
  "url": "https://example.com/menu/cappuccino.jpg",
  "storage": "url",
  "name": "cappuccino.jpg",
  "type": "image"
}
Ключ Обязательный Описание
url да Ссылка http:// или https://
storage да Всегда "url"
name нет Имя файла
type нет Вид файла: image, video, audio или document
mime_type нет MIME-тип: image/jpeg
size нет Размер в байтах
caption нет Подпись

Внимание

Без "storage": "url" или со ссылкой другого вида (не http/https) значение молча не сохранится — в поле окажется null, ошибки не будет.

Другие ключи (например, uuid или path) игнорируются: в поле сохраняется только внешняя ссылка, и в ответе она приходит такой же, какой её передали. Ссылку на файл из хранилища платформы — ту, что приходит в ответах на файлы, загруженные в кабинете, — можно записать только в пределах своего аккаунта; ссылка на файл другого аккаунта не сохранится — в поле окажется null. Если в updateListItem передать файл, который уже лежит в записи, например целую запись из getListItems, он останется как был.

В ответе файл описан объектом с ключами type, mime_type, created_at, name, size, storage, caption, meta (ширина, высота, длительность, кодек) и url. Ссылки на файлы, загруженные в кабинете, — временные: скачивайте файл сразу или запрашивайте запись заново.

Контакт и бот

В поля contact и bot передают номер. Контакт должен принадлежать вашему боту, бот — вам: иначе ответ 403. Несуществующий номер не пройдёт проверку — 422.

Кроме значения самого поля, запись получает служебные contact_id или bot_id — по ним работает отбор в getListItems. Если в списке несколько таких полей, там окажется значение последнего из них.

Настройки поля

Параметр Тип По умолчанию Описание
is_required логический true «Обязательность заполнения поля»: без значения запись не добавится
is_hidden логический false «Скрыть поле из интерфейса»: поля не видно в таблице записей кабинета. API отдаёт его как обычно
is_encryptable логический false «Зашифровать поле»: значение хранится зашифрованным. API отдаёт его расшифрованным. В кабинете шифрование есть только у типов string и number — ставьте его только им. По зашифрованным полям не работают фильтры

Важно

По умолчанию поле, созданное через API, обязательное — в отличие от кабинета. Если поле можно оставлять пустым, передайте "is_required": false.

Ограничения

  • В проекте — не больше 5000 списков.
  • При создании списка — от 1 до 30 полей.
  • Название списка и поля — до 255 символов.
  • Нельзя использовать служебные имена полей: id, _id, contact, contact_id, bot, bot_id, user, user_id, project, project_id, data, schema_id, created_at, updated_at, deleted_at и любые имена, которые начинаются с __. На такой slug API ответит 422 с текстом «The slug is reserved.».

Общие правила — ключ, частота запросов, коды ошибок — описаны на странице API.

Методы

Метод Что делает
getListSchemas Все списки ваших проектов
getListSchema Один список с полями
createListSchema Создать список
deleteListSchema Удалить список
addListSchemaField Добавить поле
deleteListSchemaField Удалить поле
getListItems Записи списка с отбором и сортировкой
addListItem Добавить запись
updateListItem Изменить запись
deleteListItem Удалить запись