ЯндексXML. Руководство разработчика
ЯндексXML - Формат запроса
С последними нововведениями от Яндекса, появилось два режима отправки запросов и получения результатов: Синхронный режим (мгновенно) и Асинхронный режим (с задержкой).
Запрос результатов поиска в Синхронном режиме
Синхронный режим — режим работы API, при котором запрос выполняется и возвращает результат в рамках одного HTTP-запроса. В синхронном режиме клиент отправляет запрос и ожидает его обработки. По завершении выполнения запроса сервер сразу возвращает ответ с найденными результатами. Этот режим работает сейчас по умолчанию у всех пользователей.
Для получения результатов поиска в формате XML, необходимо сформировать GET-запрос и добавить к своему URL параметр &query=[Запрос]
Почти все параметры из настроек можно передавать в URL через GET запрос, тогда они имеют приоритет над настройками по умолчанию. Также поддерживается возможность передачи запроса методом POST. Подробнее об этом и об остальных параметрах описано в разделе Таблица параметров.
Запрос результатов мобильной выдачи
Для получения мобильных результатов выдачи необходимо к запросу добавить параметр &device=mobile
Запрос результатов поиска в Асинхронном режиме
Асинхронный режим — режим работы API, при котором запрос на поиск ставится в очередь, и результат можно получить позже с помощью отдельного запроса. Запросы выполняются в два этапа: сначала клиент отправляет запрос, получая идентификатор задачи (req_id), а затем отдельно запрашивает результат выполнения. Для отправки запроса в асинхронном режиме достаточно добавить дополнительный параметр к запросу: &delayed=1
В ответ вы получите идентификатор задачи в следующем формате:
<?xml version="1.0" encoding="UTF-8"?>
<yandexsearch version="2.0">
<response date="20250204T185502">
<req_id>spr3s0ngc4citnd30muk</req_id>
</response>
</yandexsearch>
Далее дождитесь, пока система выполнит запрос и сформирует ответ. На это может потребоваться от пяти минут до нескольких часов. Через 5 минут пробуйте получить результат используя индентификатор задачи, отправляя запрос с параметром &req_id=spr3s0ngc4citnd30muk
Если результат готов, сервер возвращает стандартный XML-ответ с данными поисковой выдачи. В противном случае отправляется ошибка с кодом 202, указывающая, что запрос еще не обработан, и рекомендуется повторить попытку позже. Повторную проверку готовности разрешается выполнять не чаще чем один раз в 10 секунд. Полный список возможных ошибок представлен на странице «Коды ошибок».