Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Search API
    • Все инструкции
      • Выполнение поисковых запросов в синхронном режиме
      • Выполнение поисковых запросов в отложенном режиме
      • Мобильная выдача
  • Управление доступом
  • Правила тарификации
  • Аудитные логи Audit Trails

В этой статье:

  • Перед началом работы
  • Подготовьте облако к работе
  • Сформируйте поисковый запрос
  • Убедитесь в успешном выполнении запроса
  • Получите ответ
  1. Пошаговые инструкции
  2. API v2
  3. Выполнение поисковых запросов в отложенном режиме

Выполнение поисковых запросов с помощью API v2 в отложенном режиме

Статья создана
Yandex Cloud
Обновлена 16 апреля 2025 г.
  • Перед началом работы
  • Подготовьте облако к работе
  • Сформируйте поисковый запрос
  • Убедитесь в успешном выполнении запроса
  • Получите ответ

API v2 сервиса Yandex Search API позволяет выполнять текстовый поиск в поисковой базе Яндекса и получать результат поиска в формате XML или HTML в отложенном (асинхронном) режиме. Выполнять запросы можно с помощью REST API и gPRC API. Поисковая выдача зависит от заданных в запросе параметров.

Перед началом работыПеред началом работы

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Чтобы воспользоваться примерами, установите утилиты cURL и jq, а также gRPCurl (если будете использовать gRPC API).

Подготовьте облако к работеПодготовьте облако к работе

  1. Для аутентификации в API v2 от имени сервисного аккаунта создайте сервисный аккаунт.

  2. Назначьте пользователю или сервисному аккаунту, от имени которого будут выполняться запросы, роль search-api.webSearch.user.

  3. Получите IAM-токен, необходимый для аутентификации.

    В приведенных примерах используется аутентификация с помощью IAM-токена. Чтобы использовать для аутентификации API-ключ сервисного аккаунта, измените в примерах запросов заголовок Authorization. Подробнее см. в разделе Аутентификация в API v2.

Сформируйте поисковый запросСформируйте поисковый запрос

REST API
gRPC API
  1. Создайте файл с телом запроса (например, body.json):

    body.json

    {
        "query": {
          "searchType": "<тип_поиска>",
          "queryText": "<текст_поискового_запроса>",
          "familyMode": "<значение_настройки_фильтрации_результатов>",
          "page": "<номер_страницы>",
          "fixTypoMode": "<значение_настройки_режима_исправления_опечаток>"
        },
        "sortSpec": {
          "sortMode": "<правило_сортировки_результатов>",
          "sortOrder": "<порядок_сортировки_результатов>"
        },
        "groupSpec": {
          "groupMode": "<метод_группировки_результатов>",
          "groupsOnPage": "<количество_групп_на_странице>",
          "docsInGroup": "<количество_документов_в_группе>"
        },
        "maxPassages": "<максимальное_количество_пассажей>",
        "region": "<идентификатор_региона>",
        "l10N": "<язык_уведомлений>",
        "folderId": "<идентификатор_каталога>",
        "responseFormat": "<формат_результата>",
        "userAgent": "<заголовок_User-Agent>"
    }
    
    Описание полей

    Примечание

    Список поддерживаемых в запросе параметров зависит от того, в каком формате требуется получить результат: XML или HTML.

    • searchType — тип поиска. Возможные значения:

      • SEARCH_TYPE_RU — для типа поиска Русский.
      • SEARCH_TYPE_TR — для типа поиска Турецкий.
      • SEARCH_TYPE_COM — для типа поиска Международный.
      • SEARCH_TYPE_KK — для типа поиска Казахский.
      • SEARCH_TYPE_BE – для типа поиска Белорусский.
    • queryText — текст поискового запроса. Максимальная длина запроса — 400 символов.

    • familyMode — фильтрация результатов. Необязательный параметр. Возможные значения:

      • FAMILY_MODE_MODERATE — умеренный фильтр (значение по умолчанию). Из выдачи исключаются документы, относящиеся к категории "для взрослых", если запрос явно не направлен на поиск подобных ресурсов.
      • FAMILY_MODE_NONE — фильтрация отключена. В выдачу включаются любые документы вне зависимости от содержимого.
      • FAMILY_MODE_STRICT — семейный фильтр. Вне зависимости от поискового запроса из выдачи исключаются документы, относящиеся к категории "для взрослых", а также содержащие ненормативную лексику.
    • page — номер запрашиваемой страницы. Необязательный параметр. По умолчанию возвращается первая страница поисковой выдачи. Нумерация страниц начинается с нуля (первой странице соответствует значение 0).

    • fixTypoMode — значение настройки режима исправления опечаток в поисковом запросе. Необязательный параметр. Возможные значения:

      • FIX_TYPO_MODE_ON — исправление опечаток включено (значение по умолчанию). Опечатки в тексте поискового запроса автоматически исправляются.
      • FIX_TYPO_MODE_OFF — исправление опечаток отключено. Опечатки в тексте поискового запроса не исправляются, поиск выполняется в полном соответствии с переданным запросом.

      Параметр fixTypoMode не поддерживается при получении результата в HTML-формате.

    • sortMode — правило сортировки результатов поиска, которое определяет порядок выдачи результатов поиска. Необязательный параметр. Возможные значения:

      • SORT_MODE_BY_RELEVANCE — сортировка по релевантности (значение по умолчанию).
      • SORT_MODE_BY_TIME — сортировка по времени изменения документа.

      Параметр sortMode не поддерживается при получении результата в HTML-формате.

    • sortOrder — порядок сортировки результатов поиска. Необязательный параметр. Возможные значения:

      • SORT_ORDER_DESC — прямой порядок сортировки — от наиболее свежего к наиболее старому (значение по умолчанию).
      • SORT_ORDER_ASC — обратный порядок сортировки — от наиболее старого к наиболее свежему.

      Параметр sortOrder не поддерживается при получении результата в HTML-формате.

    • groupMode — метод группировки результатов. Необязательный параметр. Возможные значения:

      • GROUP_MODE_DEEP — группировка по доменам. Каждая группа содержит документы одного домена (значение по умолчанию).
      • GROUP_MODE_FLAT — плоская группировка. Каждая группа содержит один документ.

      Параметр groupMode не поддерживается при получении результата в HTML-формате.

    • groupsOnPage — максимальное количество групп, которые могут быть возвращены на одной странице результатов поиска. Необязательный параметр. Значение по умолчанию — 20.

      При получении результата в формате XML допустимые значения — от 1 до 100, при получении результата в формате HTML — от 5 до 50.

    • docsInGroup — максимальное количество документов, которые могут быть возвращены в одной группе. Необязательный параметр. Допустимые значения — от 1 до 3. Значение по умолчанию — 1.

      Параметр docsInGroup не поддерживается при получении результата в HTML-формате.

    • maxPassages — максимальное количество пассажей, которое может быть использовано при формировании сниппета к документу. Необязательный параметр. Допустимые значения — от 1 до 5. По умолчанию для каждого документа возвращается не более четырех пассажей с текстом запроса.

      Параметр maxPassages не поддерживается при получении результата в HTML-формате.

    • region — идентификатор страны или региона поиска, который влияет на правила ранжирования документов. Поддерживается только для типов поиска Русский и Турецкий.

      Список идентификаторов часто используемых стран и регионов см. в разделе Регионы поиска.

    • l10N — язык уведомлений поискового ответа. Влияет на текст, передаваемый в теге found-docs-human и в сообщениях об ошибках. Необязательный параметр. Возможные значения зависят от выбранного типа поиска:

      • Тип поиска Русский:

        • LOCALIZATION_RU — русский язык (значение по умолчанию).
        • LOCALIZATION_BE — белорусский язык.
        • LOCALIZATION_KK — казахский язык.
        • LOCALIZATION_UK — украинский язык.
      • Тип поиска Турецкий:

        • LOCALIZATION_TR — турецкий язык.
      • Тип поиска Международный:

        • LOCALIZATION_EN — английский язык.

      Параметр l10N не поддерживается при получении результата в HTML-формате.

    • folderId — идентификатор каталога пользователя или сервисного аккаунта, от имени которого вы будете выполнять запросы.

    • responseFormat — формат получения поисковой выдачи. Необязательный параметр. Возможные значения:

      • FORMAT_XML — результат запроса будет передан в формате XML (значение по умолчанию).
      • FORMAT_HTML — результат запроса будет передан в формате HTML.
    • userAgent — строка, содержащая заголовок User-Agent. Параметр позволяет получить поисковую выдачу, ориентированную на конкретные устройство и браузер, в том числе мобильную выдачу. Необязательный параметр. Если параметр не задан, сервис возвращает стандартную выдачу по умолчанию.

  2. Выполните HTTP-запрос, указав полученный ранее IAM-токен:

    curl \
      --request POST \
      --header "Authorization: Bearer <IAM-токен>" \
      --data "@body.json" \
      "https://searchapi.api.cloud.yandex.net/v2/web/searchAsync"
    

    Результат:

    {
     "done": false,
     "id": "sppger465oq1********",
     "description": "WEB search async",
     "createdAt": "2024-10-02T19:51:02Z",
     "createdBy": "bfbud0oddqp4********",
     "modifiedAt": "2024-10-02T19:51:03Z"
    }
    
  1. Создайте файл с телом запроса (например, body.json):

    body.json

    {
        "query": {
          "search_type": "<тип_поиска>",
          "query_text": "<текст_поискового_запроса>",
          "family_mode": "<значение_настройки_фильтрации_результатов>",
          "page": "<номер_страницы>",
          "fix_typo_mode": "<значение_настройки_режима_исправления_опечаток>"
        },
        "sort_spec": {
          "sort_mode": "<правило_сортировки_результатов>",
          "sort_order": "<порядок_сортировки_результатов>"
        },
        "group_spec": {
          "group_mode": "<метод_группировки_результатов>",
          "groups_on_page": "<количество_групп_на_странице>",
          "docs_in_group": "<количество_документов_в_группе>"
        },
        "max_passages": "<максимальное_количество_пассажей>",
        "region": "<идентификатор_региона>",
        "l10n": "<язык_уведомлений>",
        "folder_id": "<идентификатор_каталога>",
        "response_format": "<формат_результата>",
        "user_agent": "<заголовок_User-Agent>"
    }
    
    Описание полей

    Примечание

    Список поддерживаемых в запросе параметров зависит от того, в каком формате требуется получить результат: XML или HTML.

    • search_type — тип поиска. Возможные значения:

      • SEARCH_TYPE_RU — для типа поиска Русский.
      • SEARCH_TYPE_TR — для типа поиска Турецкий.
      • SEARCH_TYPE_COM — для типа поиска Международный.
      • SEARCH_TYPE_KK — для типа поиска Казахский.
      • SEARCH_TYPE_BE – для типа поиска Белорусский.
    • query_text — текст поискового запроса. Максимальная длина запроса — 400 символов.

    • family_mode — фильтрация результатов. Необязательный параметр. Возможные значения:

      • FAMILY_MODE_MODERATE — умеренный фильтр (значение по умолчанию). Из выдачи исключаются документы, относящиеся к категории "для взрослых", если запрос явно не направлен на поиск подобных ресурсов.
      • FAMILY_MODE_NONE — фильтрация отключена. В выдачу включаются любые документы вне зависимости от содержимого.
      • FAMILY_MODE_STRICT — семейный фильтр. Вне зависимости от поискового запроса из выдачи исключаются документы, относящиеся к категории "для взрослых", а также содержащие ненормативную лексику.
    • page — номер запрашиваемой страницы. Необязательный параметр. По умолчанию возвращается первая страница поисковой выдачи. Нумерация страниц начинается с нуля (первой странице соответствует значение 0).

    • fix_typo_mode — значение настройки режима исправления опечаток в поисковом запросе. Необязательный параметр. Возможные значения:

      • FIX_TYPO_MODE_ON — исправление опечаток включено (значение по умолчанию). Опечатки в тексте поискового запроса автоматически исправляются.
      • FIX_TYPO_MODE_OFF — исправление опечаток отключено. Опечатки в тексте поискового запроса не исправляются, поиск выполняется в полном соответствии с переданным запросом.

      Параметр fix_typo_mode не поддерживается при получении результата в HTML-формате.

    • sort_mode — правило сортировки результатов поиска, которое определяет порядок выдачи результатов поиска. Необязательный параметр. Возможные значения:

      • SORT_MODE_BY_RELEVANCE — сортировка по релевантности (значение по умолчанию).
      • SORT_MODE_BY_TIME — сортировка по времени изменения документа.

      Параметр sort_mode не поддерживается при получении результата в HTML-формате.

    • sort_order — порядок сортировки результатов поиска. Необязательный параметр. Возможные значения:

      • SORT_ORDER_DESC — прямой порядок сортировки — от наиболее свежего к наиболее старому (значение по умолчанию).
      • SORT_ORDER_ASC — обратный порядок сортировки — от наиболее старого к наиболее свежему.

      Параметр sort_order не поддерживается при получении результата в HTML-формате.

    • group_mode — метод группировки результатов. Необязательный параметр. Возможные значения:

      • GROUP_MODE_DEEP — группировка по доменам. Каждая группа содержит документы одного домена (значение по умолчанию).
      • GROUP_MODE_FLAT — плоская группировка. Каждая группа содержит один документ.

      Параметр group_mode не поддерживается при получении результата в HTML-формате.

    • groups_on_page — максимальное количество групп, которые могут быть возвращены на одной странице результатов поиска. Необязательный параметр. Значение по умолчанию — 20.

      При получении результата в формате XML допустимые значения — от 1 до 100, при получении результата в формате HTML — от 5 до 50.

    • docs_in_group — максимальное количество документов, которые могут быть возвращены в одной группе. Необязательный параметр. Допустимые значения — от 1 до 3. Значение по умолчанию — 1.

      Параметр docs_in_group не поддерживается при получении результата в HTML-формате.

    • max_passages — максимальное количество пассажей, которое может быть использовано при формировании сниппета к документу. Необязательный параметр. Допустимые значения — от 1 до 5. По умолчанию для каждого документа возвращается не более четырех пассажей с текстом запроса.

      Параметр max_passages не поддерживается при получении результата в HTML-формате.

    • region — идентификатор страны или региона поиска, который влияет на правила ранжирования документов. Поддерживается только для типов поиска Русский и Турецкий.

      Список идентификаторов часто используемых стран и регионов см. в разделе Регионы поиска.

    • l10n — язык уведомлений поискового ответа. Влияет на текст, передаваемый в теге found-docs-human и в сообщениях об ошибках. Необязательный параметр. Возможные значения зависят от выбранного типа поиска:

      • Тип поиска Русский:

        • LOCALIZATION_RU — русский язык (значение по умолчанию).
        • LOCALIZATION_BE — белорусский язык.
        • LOCALIZATION_KK — казахский язык.
        • LOCALIZATION_UK — украинский язык.
      • Тип поиска Турецкий:

        • LOCALIZATION_TR — турецкий язык.
      • Тип поиска Международный:

        • LOCALIZATION_EN — английский язык.

      Параметр l10n не поддерживается при получении результата в HTML-формате.

    • folder_id — идентификатор каталога пользователя или сервисного аккаунта, от имени которого вы будете выполнять запросы.

    • response_format — формат получения поисковой выдачи. Необязательный параметр. Возможные значения:

      • FORMAT_XML — результат запроса будет передан в формате XML (значение по умолчанию).
      • FORMAT_HTML — результат запроса будет передан в формате HTML.
    • user_agent — строка, содержащая заголовок User-Agent. Параметр позволяет получить поисковую выдачу, ориентированную на конкретные устройство и браузер, в том числе мобильную выдачу. Необязательный параметр. Если параметр не задан, сервис возвращает стандартную выдачу по умолчанию.

  2. Выполните gRPC-вызов, указав полученный ранее IAM-токен:

    grpcurl \
      -rpc-header "Authorization: Bearer <IAM-токен>" \
      -d @ < body.json \
      searchapi.api.cloud.yandex.net:443 yandex.cloud.searchapi.v2.WebSearchAsyncService/Search
    

    Результат:

    {
      "id": "spp3gp3vhna6********",
      "description": "WEB search async",
      "createdAt": "2024-10-02T19:14:41Z",
      "createdBy": "bfbud0oddqp4********",
      "modifiedAt": "2024-10-02T19:14:42Z"
    }
    

Сохраните идентификатор полученного объекта Operation (значение id) — он понадобится позднее.

Убедитесь в успешном выполнении запросаУбедитесь в успешном выполнении запроса

Дождитесь, пока Yandex Search API выполнит запрос и сформирует ответ. На это может потребоваться от пяти минут до нескольких часов.

Чтобы убедиться в успешном выполнении запроса:

REST API
gRPC API

Выполните HTTP-запрос:

curl \
  --request GET \
  --header "Authorization: Bearer <IAM-токен>" \
  https://operation.api.cloud.yandex.net/operations/<идентификатор_запроса>

Где:

  • <IAM-токен> — полученный ранее IAM-токен.
  • <идентификатор_запроса> — сохраненный на предыдущем шаге идентификатор объекта Operation.

Результат:

{
 "done": true,
 "response": {
  "@type": "type.googleapis.com/yandex.cloud.searchapi.v2.WebSearchResponse",
  "rawData": "<тело_XML_ответа_в_кодировке_Base64>"
 },
 "id": "spp82pc07ebl********",
 "description": "WEB search async",
 "createdAt": "2024-10-03T08:07:07Z",
 "createdBy": "bfbud0oddqp4********",
 "modifiedAt": "2024-10-03T08:12:09Z"
}

Выполните gRPC-вызов:

grpcurl \
  -rpc-header "Authorization: Bearer <IAM-токен>" \
  -d '{"operation_id": "<идентификатор_запроса>"}' \
  operation.api.cloud.yandex.net:443 yandex.cloud.operation.OperationService/Get

Где:

  • <IAM-токен> — полученный ранее IAM-токен.
  • <идентификатор_запроса> — сохраненный на предыдущем шаге идентификатор объекта Operation.

Результат:

{
  "id": "spp82pc07ebl********",
  "description": "WEB search async",
  "createdAt": "2024-10-03T08:07:07Z",
  "createdBy": "bfbud0oddqp4********",
  "modifiedAt": "2024-10-03T08:12:09Z",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/yandex.cloud.searchapi.v2.WebSearchResponse",
    "rawData": "<тело_XML_ответа_в_кодировке_Base64>"
  }
}

Если поле done имеет значение true, и в выводе присутствует объект response, значит, запрос выполнен, и вы можете переходить к следующему шагу. В противном случае, повторите проверку через некоторое время.

Получите ответПолучите ответ

После того как сервис Yandex Search API успешно обработал запрос:

  1. Получите результат:

    REST API
    gRPC API
    curl \
      --request GET \
      --header "Authorization: Bearer <IAM-токен>" \
      https://operation.api.cloud.yandex.net/operations/<идентификатор_запроса> \
      > result.json
    
    grpcurl \
      -rpc-header "Authorization: Bearer <IAM-токен>" \
      -d '{"operation_id": "<идентификатор_запроса>"}' \
      operation.api.cloud.yandex.net:443 yandex.cloud.operation.OperationService/Get \
      > result.json
    

    В итоге в файл result.json будет сохранен результат выполнения поискового запроса, содержащий в поле response.rawData XML или HTML ответ в кодировке Base64.

  2. В зависимости от запрошенного формата ответа, декодируйте результат из формата Base64:

    XML
    HTML
    echo "$(< result.json)" | \
      jq -r .response.rawData | \
      base64 --decode > result.xml
    

    В результате в файл result.xml будет сохранен XML-ответ по запросу.

    echo "$(< result.json)" | \
      jq -r .response.rawData | \
      base64 --decode > result.html
    

    В результате в файл result.html будет сохранен HTML-ответ по запросу.

См. такжеСм. также

  • Выполнение поисковых запросов с помощью API v2 в синхронном режиме
  • Текстовый поиск с помощью API v2
  • Аутентификация в API v2
  • XML-формат ответа при текстовом поиске
  • HTML-формат ответа при текстовом поиске

Была ли статья полезна?

Предыдущая
Выполнение поисковых запросов в синхронном режиме
Следующая
Мобильная выдача
Проект Яндекса
© 2025 ООО «Яндекс.Облако»