Hybrid-поиск с фильтрами и колонками
Типичная задача: текстовый поиск + фильтры (регион, WhatsApp, email…) и нужны конкретные поля в карточках — не стандартный набор name, domain, city.
Без параметра columns API подбирает колонки автоматически (columnProjection: inferred). Фильтр по whatsapp отберёт компании, но не добавит whatsapp в ответ. Решение — явный columns.
Поиск бесплатен. Кредиты списываются только при экспорте. Полный список полей — в Поиск → Выбор колонок.
Сценарий: логистика в Подмосковье с WhatsApp
Задача: найти компании по запросу «логистика», отфильтровать по региону и наличию WhatsApp, в ответе получить название, описание, ключевые слова, email, phone и whatsapp.
-
POST-запрос (рекомендуется при нескольких фильтрах):
Code -
Проверьте ответ
Поле Ожидаемое значение columnProjection"explicit"displayFieldsname,description,keywords,email,phone,whatsapptotalCountЧисло компаний по фильтрам (например ~800) companies[].*Только запрошенные поля + id+relevanceКонтакты приходят с маской — для полных данных используйте экспорт.
-
Тот же запрос через GET (удобно для быстрой проверки в браузере/curl):
Code
Сравнение: с columns и без
Без columns — фильтр работает, но в карточках может не быть whatsapp:
Code
В ответе: columnProjection: "inferred", displayFields обычно без whatsapp.
С columns — строгая проекция, только то, что запросили:
Code
Ошибки
| Ситуация | HTTP | Что делать |
|---|---|---|
Неизвестное поле в columns, например "foo" | 422 | Исправьте имя; список допустимых полей — в тексте ошибки |
| Опечатка в фильтре | 422 | См. Фильтры |
| Слишком частые запросы | 429 | Пауза; см. Лимиты |
Пример 422:
Code
Что дальше?
- Поиск — все режимы и параметр
columns - Фильтрация выборки — больше сценариев с фильтрами
- Поиск и экспорт — полные контакты без маски
Связаться