Строка
  • Документация
  • API
Начало работы
Руководства
    Поиск компанийФильтрыСправочникиЭкспорт и сохранение
Примеры
Справка
API ReferenceAPI
Руководства

Фильтры

Strokka API поддерживает гибкую фильтрацию по 30+ полям с логическими условиями AND/OR.

Формат фильтров

В GET-запросе

Каждое условие задаётся тройкой в имени параметра:

Code
filter[<поле>][<оператор>][<логика>]=<значение>
  • логика — and / or; для первого условия не используется
  • Для нескольких условий повторите параметр нужное число раз

Пример (в curl квадратные скобки в URL нужно кодировать — иначе bad range in URL):

TerminalCode
curl -sS --get "https://app.strokka.com/api/v1/companies" \ --data-urlencode "filter[city][eq][and]=Москва" \ --data-urlencode "filter[sector][contains][and]=информ" \ --data-urlencode "limit=20"

Ошибка curl: (3) bad range in URL — это curl, не сервер: [ и ] в URL он воспринимает как спецсимволы. Используйте --get + --data-urlencode (как выше) или передайте фильтры через POST с JSON-телом.

В POST-запросе

Фильтры передаются как массив объектов в поле filters:

Code
{ "filters": [ {"field": "city", "operator": "eq", "value": "Москва", "logic": "and"}, {"field": "sector", "operator": "contains", "value": "информ", "logic": "and"} ] }

Типы полей и операторы

Текстовые поля

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 готово для фильтра:

ФильтрЭндпоинт
sectorGET /dictionaries/sectors
region, locationGET /dictionaries/regions
city, locationGET /dictionaries/localities?region_code=…&q=…
TerminalCode
# Сектор и гео из справочников curl -sS "https://app.strokka.com/api/v1/dictionaries/sectors" curl -sS "https://app.strokka.com/api/v1/dictionaries/regions" curl -sS --get "https://app.strokka.com/api/v1/companies" \ --data-urlencode "filter[sector][contains][and]=Информационные технологии" \ --data-urlencode "filter[region][eq][and]=Саратовская область" \ --data-urlencode "filter[city][eq][and]=г. Балаково" \ --data-urlencode "limit=20"

Подробнее — Справочники.

ОператорОписаниеПример значения
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

TerminalCode
curl -sS --get "https://app.strokka.com/api/v1/companies" \ --data-urlencode "searchMode=sql" \ --data-urlencode "filter[city][eq][and]=Москва" \ --data-urlencode "filter[dns_check][eq][and]=true" \ --data-urlencode "limit=20"

GET: Несколько городов

TerminalCode
curl -sS --get "https://app.strokka.com/api/v1/companies" \ --data-urlencode "filter[city][in][and]=Москва,Санкт-Петербург" \ --data-urlencode "limit=20"

GET: Обновлённые за квартал

TerminalCode
curl -sS --get "https://app.strokka.com/api/v1/companies" \ --data-urlencode "filter[updated_at][between][and]=2026-01-01,2026-06-01" \ --data-urlencode "limit=50"

GET: Компании без email

TerminalCode
curl -sS --get "https://app.strokka.com/api/v1/companies" \ --data-urlencode "filter[email][empty][and]=true" \ --data-urlencode "limit=10"

GET: Поиск + фильтры (hybrid + город + email)

TerminalCode
curl -sS --get "https://app.strokka.com/api/v1/companies" \ --data-urlencode "search=маркетинговое агентство" \ --data-urlencode "searchMode=hybrid" \ --data-urlencode "filter[city][eq][and]=Москва" \ --data-urlencode "filter[email][not_empty][and]=true" \ --data-urlencode "limit=10"

GET: Диапазон ID

TerminalCode
curl -sS --get "https://app.strokka.com/api/v1/companies" \ --data-urlencode "filter[id][between][and]=1000,5000" \ --data-urlencode "limit=100"

POST: Веб-студии с email

TerminalCode
curl -sS -X POST "https://app.strokka.com/api/v1/companies" \ -H "Content-Type: application/json" \ -d '{ "search": "веб-студия", "searchMode": "hybrid", "limit": 10, "filters": [ {"field": "email", "operator": "not_empty", "value": "true", "logic": "and"} ] }'

POST: Сортировка по ID, только с телефоном

TerminalCode
curl -sS -X POST "https://app.strokka.com/api/v1/companies" \ -H "Content-Type: application/json" \ -d '{ "searchMode": "sql", "sortBy": "id", "sortOrder": "desc", "limit": 50, "filters": [ {"field": "phone", "operator": "not_empty", "value": "true", "logic": "and"} ] }'

POST: Москва ИЛИ Санкт-Петербург (OR)

TerminalCode
curl -sS -X POST "https://app.strokka.com/api/v1/companies" \ -H "Content-Type: application/json" \ -d '{ "searchMode": "sql", "limit": 20, "filters": [ {"field": "city", "operator": "eq", "value": "Москва"}, {"field": "city", "operator": "eq", "value": "Санкт-Петербург", "logic": "or"} ] }'

POST: Сложная комбинация (поиск + регион + WhatsApp)

TerminalCode
curl -sS -X POST "https://app.strokka.com/api/v1/companies" \ -H "Content-Type: application/json" \ -d '{ "search": "логистика", "searchMode": "hybrid", "limit": 30, "filters": [ {"field": "region", "operator": "contains", "value": "Москов", "logic": "and"}, {"field": "whatsapp", "operator": "not_empty", "value": "true", "logic": "and"} ] }'

Фильтр по whatsapp сработает (appliedFilters в ответе, totalCount уменьшится), но в режиме hybrid колонка whatsapp в карточках не появится автоматически — API подставляет набор полей по смыслу запроса (columnProjection: inferred), обычно email и phone, без мессенджеров.

Чтобы получить whatsapp в ответе — передайте параметр columns:

TerminalCode
curl -sS -X POST "https://app.strokka.com/api/v1/companies" \ -H "Content-Type: application/json" \ -d '{ "search": "логистика", "searchMode": "hybrid", "limit": 30, "columns": ["name", "email", "phone", "whatsapp"], "filters": [ {"field": "region", "operator": "contains", "value": "Москов", "logic": "and"}, {"field": "whatsapp", "operator": "not_empty", "value": "true", "logic": "and"} ] }'

В ответе: columnProjection: "explicit", в companies[] — только запрошенные поля + id и relevance. Пошаговый сценарий — Hybrid + filters + columns.

Полный WhatsApp без маски — только через экспорт.

Оценить объём выборки перед экспортом

TerminalCode
curl -sS --get "https://app.strokka.com/api/v1/companies" \ --data-urlencode "search=производство" \ --data-urlencode "searchMode=hybrid" \ --data-urlencode "filter[email][not_empty][and]=true" \ --data-urlencode "limit=1"

В ответе смотрите totalCount. Минимальный limit — 1.

Сводная таблица примеров

ЗадачаМетодПараметры
Первые 10 компанийGET?searchMode=sql&limit=10
Hybrid-поискGET?search=...&searchMode=hybrid
Москва + emailGETfilter[city][eq][and]=Москва&filter[email][not_empty][and]=true
Несколько городовGETfilter[city][in][and]=Москва,СПб
Диапазон IDGETfilter[id][between][and]=100,500
Поиск + фильтрыPOSTsearch + filters[]
Hybrid + фильтры + нужные поляPOSTsearch + filters[] + columns[] — см. пример
Уникальные email/телефоныGET/POSTuniqueBy=email или uniqueBy=email,phone — см. Поиск
Секторы, регионы, городаGET/dictionaries/sectors, /dictionaries/regions, /dictionaries/localities — см. Справочники
Сколько найденоGET/POSTlimit=1 → totalCount в ответе

Пошаговые сценарии — в разделе Примеры. Справочник операторов — ниже на этой странице.

Больше примеров фильтрации — Фильтрация выборки.

Нашли ошибку?

Связаться

Last modified on July 3, 2026
Поиск компанийСправочники
On this page
  • Формат фильтров
    • В GET-запросе
    • В POST-запросе
  • Типы полей и операторы
    • Текстовые поля
    • Справочники: сектор, регион и город
    • Булевы поля
    • Поле id (целое число)
    • Поле updated_at (временна́я метка)
  • Логические условия (AND/OR)
  • Примеры запросов
    • GET: Компании в Москве с активным DNS
    • GET: Несколько городов
    • GET: Обновлённые за квартал
    • GET: Компании без email
    • GET: Поиск + фильтры (hybrid + город + email)
    • GET: Диапазон ID
    • POST: Веб-студии с email
    • POST: Сортировка по ID, только с телефоном
    • POST: Москва ИЛИ Санкт-Петербург (OR)
    • POST: Сложная комбинация (поиск + регион + WhatsApp)
    • Оценить объём выборки перед экспортом
  • Сводная таблица примеров
JSON