Списки
Методи цього розділу створюють і видаляють списки, змінюють їхні поля та ведуть записи: додають, читають, змінюють і видаляють. Наприклад, сайт може сам поповнювати список «Меню кафе», а бот — показувати його людям.
Як влаштований список
Список складається з двох частин:
- Схема — назва списку та його поля. З нею працюють методи на сторінці Списки й поля. У назвах методів схема так і називається:
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і будь-які імена, що починаються з__. На такийslugAPI відповість422з текстом «The slug is reserved.».
Загальні правила — ключ, частота запитів, коди помилок — описано на сторінці API.
Методи
| Метод | Що робить |
|---|---|
getListSchemas |
Усі списки ваших проєктів |
getListSchema |
Один список із полями |
createListSchema |
Створити список |
deleteListSchema |
Видалити список |
addListSchemaField |
Додати поле |
deleteListSchemaField |
Видалити поле |
getListItems |
Записи списку з відбором і сортуванням |
addListItem |
Додати запис |
updateListItem |
Змінити запис |
deleteListItem |
Видалити запис |