Новости
Добавили асинхронные запросы в ЯндексXML Search Api
07.02.2025Уважаемые пользователи! В конце прошлого года Яндекс анонсировал в своем Search Api ввод асинхронных (отложенных) запросов. Новость об этом мы публиковали в ноябре.
Уже сейчас мы добавили поддержку асинхронных запросов в нашу систему и рекомендуем заранее протестировать и адаптировать свой софт для работы с асинхронной выдачей, так как цены на синхронную выдачу Яндекс может поднять в несколько раз уже в марте.
Как это работает?
Асинхронный режим позволяет выполнять поиск в два этапа:1. Отправляете запрос с параметром &delayed=1.
2. Получаете req_id в ответе.
3. Через 5 минут запрашиваете результат с этим req_id.
4. Если ответ не готов, повторяете запрос результатов с интервалом 10-60 секунд.
Пример запроса:
https://xmlstock.com/yandex/xml/?user=ID&key=KEY&query=окна&delayed=1
Пример ответа с req_id:
<?xml version="1.0" encoding="UTF-8"?>
<yandexsearch version="2.0">
<response date="20250204T185502">
<req_id>spr3s0ngc4citnd30muk</req_id>
</response>
</yandexsearch>
Забираем результаты через 5 минут:
https://xmlstock.com/yandex/xml/?user=ID&key=KEY&req_id=spr3s0ngc4citnd30muk
Важные моменты:
- Ответ обычно готов через 5 минут, но в редких случаях может занять несколько часов (зависит от нагрузки на стороне Яндекса).- Запросить результат можно не чаще чем раз в 10 секунд.
- Ответ хранится 24 часа.
- Стоимость на асинхронные запросы сейчас такая же как на синхронные. Окончательные цены, которые будут в марте, пока неизвестны.
- Функционал на стадии тестирования. При обнаружении ошибок и багов, просьба сообщить нам в чате поддержки.
Коды ошибок для асинхронных запросов:
201 - Повторный запрос результатов можно совершать не чаще одного раза в минуту202 - Запрос еще не обработан, попробуйте позже
203 - Запроса c заданным ID не существует либо вышло время его хранения
Подробнее о формате запросов в документации
Обновленный список кодов ошибок
Также можно переключать режимы работы по умолчанию в настройках инструмента Яндекс XML Proxy, выбирая тип поиска Синхронный (delayed=0), Асинхронный (delayed=1).