Розділи документації API
Документація API/Запити/Фільтри

Фільтри

Усі списки (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 рахується так само.