Фильтры
Strokka API поддерживает гибкую фильтрацию по 30+ полям с логическими условиями AND/OR.
Формат фильтров
В GET-запросе
Каждое условие задаётся тройкой в имени параметра:
Code
логика—and/or; для первого условия не используется- Для нескольких условий повторите параметр нужное число раз
Пример (в curl квадратные скобки в URL нужно кодировать — иначе bad range in URL):
Code
Ошибка curl: (3) bad range in URL — это curl, не сервер: [ и ] в URL он воспринимает как спецсимволы. Используйте --get + --data-urlencode (как выше) или передайте фильтры через POST с JSON-телом.
В POST-запросе
Фильтры передаются как массив объектов в поле filters:
Code
Типы полей и операторы
Текстовые поля
domain · name · description · sector · region · city · url · phone · email · whatsapp · telegram · vkontakte · odnoklassniki · youtube · twitter · linkedin · facebook · instagram · tiktok · pinterest · viber · dzen · employees · keywords · location · yandex_maps
Справочники: сектор, регион и город
Для полей sector, region, city и виртуального location используйте справочники — в ответе поле filterValue готово для фильтра:
| Фильтр | Эндпоинт |
|---|---|
sector | GET /dictionaries/sectors |
region, location | GET /dictionaries/regions |
city, location | GET /dictionaries/localities?region_code=…&q=… |
Code
Подробнее — Справочники.
| Оператор | Описание | Пример значения |
|---|---|---|
contains | Содержит подстроку | IT |
not_contains | Не содержит подстроку | тест |
starts_with | Начинается с | ООО |
ends_with | Заканчивается на | .ru |
eq | Равно (точное совпадение) | Москва |
neq | Не равно | Москва |
in | Одно из (через запятую) | Москва,Санкт-Петербург |
empty | Пустое значение | true |
not_empty | Не пустое значение | true |
Булевы поля
view · browser_check · dns_check · http_check
| Оператор | Описание | Пример значения |
|---|---|---|
eq | Равно | true |
neq | Не равно | false |
in | Одно из | true,false |
empty | Пустое | true |
not_empty | Не пустое | true |
Фильтр view=false даст пустую выборку — сервер всегда добавляет условие view = TRUE.
Поле id (целое число)
| Оператор | Описание | Пример значения |
|---|---|---|
eq | Равно | 42 |
neq | Не равно | 1 |
in | Одно из | 1,2,3,4,5 |
gt | Больше | 100 |
gte | Больше или равно | 100 |
lt | Меньше | 500 |
lte | Меньше или равно | 500 |
between | Диапазон (через запятую) | 100,500 |
empty | Пустое | true |
not_empty | Не пустое | true |
Поле updated_at (временна́я метка)
| Оператор | Описание | Пример значения |
|---|---|---|
eq | Равно | 2026-01-01 |
neq | Не равно | 2026-01-01 |
gt | Позже | 2026-01-01 |
gte | Позже или равно | 2026-01-01 |
lt | Раньше | 2026-04-01 |
lte | Раньше или равно | 2026-04-01 |
between | Диапазон | 2026-01-01,2026-04-01 |
empty | Пустое | true |
not_empty | Не пустое | true |
Значение updated_at — строка, понятная PostgreSQL: 2026-01-01 или полная метка 2026-01-01T00:00:00.
Логические условия (AND/OR)
При использовании нескольких фильтров можно задать логику связи с предыдущим правилом:
and— условие объединяется с предыдущим через логическое И (по умолчанию)or— условие объединяется с предыдущим через логическое ИЛИ
Параметр logic первого фильтра игнорируется (нет предыдущего условия).
Примеры запросов
GET: Компании в Москве с активным DNS
Code
GET: Несколько городов
Code
GET: Обновлённые за квартал
Code
GET: Компании без email
Code
GET: Поиск + фильтры (hybrid + город + email)
Code
GET: Диапазон ID
Code
POST: Веб-студии с email
Code
POST: Сортировка по ID, только с телефоном
Code
POST: Москва ИЛИ Санкт-Петербург (OR)
Code
POST: Сложная комбинация (поиск + регион + WhatsApp)
Code
Фильтр по whatsapp сработает (appliedFilters в ответе, totalCount уменьшится), но в режиме hybrid колонка whatsapp в карточках не появится автоматически — API подставляет набор полей по смыслу запроса (columnProjection: inferred), обычно email и phone, без мессенджеров.
Чтобы получить whatsapp в ответе — передайте параметр columns:
Code
В ответе: columnProjection: "explicit", в companies[] — только запрошенные поля + id и relevance. Пошаговый сценарий — Hybrid + filters + columns.
Полный WhatsApp без маски — только через экспорт.
Оценить объём выборки перед экспортом
Code
В ответе смотрите totalCount. Минимальный limit — 1.
Сводная таблица примеров
| Задача | Метод | Параметры |
|---|---|---|
| Первые 10 компаний | GET | ?searchMode=sql&limit=10 |
| Hybrid-поиск | GET | ?search=...&searchMode=hybrid |
| Москва + email | GET | filter[city][eq][and]=Москва&filter[email][not_empty][and]=true |
| Несколько городов | GET | filter[city][in][and]=Москва,СПб |
| Диапазон ID | GET | filter[id][between][and]=100,500 |
| Поиск + фильтры | POST | search + filters[] |
| Hybrid + фильтры + нужные поля | POST | search + filters[] + columns[] — см. пример |
| Уникальные email/телефоны | GET/POST | uniqueBy=email или uniqueBy=email,phone — см. Поиск |
| Секторы, регионы, города | GET | /dictionaries/sectors, /dictionaries/regions, /dictionaries/localities — см. Справочники |
| Сколько найдено | GET/POST | limit=1 → totalCount в ответе |
Пошаговые сценарии — в разделе Примеры. Справочник операторов — ниже на этой странице.
Больше примеров фильтрации — Фильтрация выборки.
Связаться