Запитати ШІ
Українська UK
Перейти до Watbot

Списки

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

Як влаштований список

Список складається з двох частин:

  • Схема — назва списку та його поля. З нею працюють методи на сторінці Списки й поля. У назвах методів схема так і називається: getListSchema, createListSchema.
  • Записи — рядки списку зі значеннями полів. З ними працюють методи на сторінці Записи.

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

Ідентифікатори

Що Як виглядає Де взяти
Список (schema_id, id у відповідях) Рядок із 24 символів: 6650a1f2c3d4e5f6a7b8c9d0 Відповіді getListSchemas і createListSchema
Запис (item_id, id у відповідях) Рядок із 24 символів, як у списку Відповіді getListItems і addListItem
Поле (slug) Літери, цифри, - і _, краще латиницею: tsina Ключі об'єкта 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 «Грошовий» Суму в гривнях, доларах тощо: 65 або 129.99 Суму в тих самих одиницях: 65
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: UAH, 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 Видалити запис