Фільтри
Усі списки (GET /api/v1/<сутність>) і /count приймають однаковий синтаксис фільтрів у query-параметрах.
Синтаксис
filter[ПОЛЕ;ОПЕРАТОР]=ЗНАЧЕННЯ filter[ПОЛЕ;ОПЕРАТОР;ЗВ'ЯЗКА]=ЗНАЧЕННЯ1,ЗНАЧЕННЯ2
| Частина | Опис |
|---|---|
| ПОЛЕ | Колонка запису в snake_case (owner_id, updated_at) або спеціальний префікс (див. нижче). |
| ОПЕРАТОР | Умова порівняння, див. таблицю нижче. |
| ЗВ'ЯЗКА | or (за замовчуванням) або and: як поєднуються значення через кому. |
На невідоме поле, оператор чи зв’язку API відповідає 400 з поясненням (а не мовчки ігнорований фільтр). Значення теж звіряється з типом поля: дата не у форматі 2026-10-01 / 2026-10-01 14:32:01 / RFC 3339 чи не число в числовому полі (кожне зі значень через кому) дає 400, а не порожній список. Поле з крапкою допустиме лише для спеціальних префіксів нижче. Кілька різних filter[...] в одному запиті поєднуються через AND. У URL квадратні дужки й ; екрануйте, якщо ваш HTTP-клієнт цього не робить.
Оператори
| Оператор | Значення |
|---|---|
eq | дорівнює |
neq / ne | не дорівнює |
like | містить підрядок (без урахування регістру) |
nlike | не містить підрядок |
gt / gte | більше / більше або дорівнює |
lt / lte | менше / менше або дорівнює |
Звичайні поля
Прізвище містить «Коваль»
GET /api/v1/contact?filter[last_name;like]=Коваль
Відповідальний: користувач 5
GET /api/v1/order?filter[owner_id;eq]=5
Кілька статусів (або)
GET /api/v1/order?filter[status_id;eq;or]=12,13,14
Змінені з 1 вересня
GET /api/v1/invoice?filter[updated_at;gte]=2026-09-01 00:00:00
Основа інкрементальної синхронізації, див. Синхронізація.
Діапазон сум (у копійках)
GET /api/v1/order?filter[cost;gte]=100000&filter[cost;lt]=500000
За зовнішнім ключем
GET /api/v1/contact?filter[external_id;eq]=site-1001
Спеціальні префікси
Канали зв’язку: channels
Телефони, email, месенджери контактів, контрагентів і лідів. Без типу пошук іде в усіх каналах, з типом (phone, email, link, social) лише в ньому. Телефони зберігаються як +380...: шукайте за цифрами без пробілів.
Телефон містить 067
GET /api/v1/contact?filter[channels.phone;like]=067
Будь-який канал містить «@acme.ua»
GET /api/v1/lead?filter[channels;like]=@acme.ua
Доп. поля: f_<id>
id поля беріть з довідника доп. полів. Для полів-списків значенням є id варіанту.
Доп. поле 5 = «Київ»
GET /api/v1/contact?filter[f_5;eq]=Київ
Теги: tags
З тегом 3 або 7
GET /api/v1/contact?filter[tags;eq;or]=3,7
Без тегу 3
GET /api/v1/contact?filter[tags;neq]=3
Адреси: address.<поле>
Поля: type, country, region, district, city, address, index.
Контрагенти зі Львова
GET /api/v1/account?filter[address.city;eq]=Львів
Реквізити: requisites.<поле>
Для контактів, контрагентів і лідів. Поля: tax_number (ЄДРПОУ/ІПН), legal_name, iban, bank_name,vat_payer, vat_number, contractor_type, country, currency та інші поля реквізитів.
Контрагент за ЄДРПОУ
GET /api/v1/account?filter[requisites.tax_number;eq]=12345678
Комплексний приклад
GET /api/v1/contact ?filter[owner_id;eq]=5 &filter[channels.phone;like]=067 &filter[tags;eq]=2 &filter[updated_at;gte]=2026-09-01 &order=-updated_at &per-page=100 &fields=id,first_name,last_name,updated_at
total рахується так само.