xmlsearch.ru — API поисковой выдачи Яндекса

GET-запрос → XML-ответ в формате Яндекс XML. Органическая выдача с позициями, доменами, заголовками и сниппетами. Мобильная и десктопная выдача, выбор региона.

Обзор

Базовый эндпоинт принимает параметры в query-строке и возвращает XML. Авторизация — по паре user + key. Один вызов = один поисковый запрос; для пакетной обработки есть отдельный batch-эндпоинт.

GEThttps://xmlsearch.ru/search_yandex/xml

Пример:

https://xmlsearch.ru/search_yandex/xml?user=USER&key=KEY&query=пластиковые+окна&lr=213&device=desktop&groupby=10

Параметры запроса

ПараметрЗначенияОписание
user обяз.IDИдентификатор пользователя.
key обяз.строкаAPI-ключ пользователя.
query обяз.текстПоисковый запрос. Символ & кодировать как %26.
lrчисло
по умолч. 213
Регион (код Яндекса). 213 — Москва, 2 — СПб, 54 — Екатеринбург, 65 — Новосибирск, 43 — Казань и т.д.
devicemobile | desktop
по умолч. mobile
Тип выдачи: мобильная или десктопная (ранжирование различается).
groupby1–50
по умолч. 10
Сколько результатов вернуть (топ N).
page0, 1, 2…
по умолч. 0
Номер страницы выдачи (0 — первая).

Формат ответа

XML в формате Яндекс XML. Результаты идут группами <group> в порядке ранжирования; позиция — атрибут id у <doc>.

<?xml version="1.0" encoding="utf-8"?>
<yandexsearch version="1.0">
  <request>
    <query>пластиковые окна</query>
    <page>0</page>
    <groupings><groupby attr="d" mode="deep" groups-on-page="10" docs-in-group="1"/></groupings>
  </request>
  <response date="20260730T041500">
    <found priority="all">10</found>
    <results>
      <grouping attr="d" mode="deep" groups-on-page="10" docs-in-group="1">
        <page first="1" last="10">0</page>
        <group>
          <doccount>1</doccount>
          <doc id="1">
            <url>https://www.mosokna.ru/</url>
            <domain>www.mosokna.ru</domain>
            <title>Пластиковые окна от производителя в Москве</title>
            <passages><passage>Устанавливаем пластиковые окна и балконные двери…</passage></passages>
          </doc>
        </group>
        <!-- ещё group … -->
      </grouping>
    </results>
  </response>
</yandexsearch>

Поля результата

ТегОписание
foundЧисло возвращённых результатов.
groupdoc idРезультат; id = позиция в выдаче.
urlСсылка результата.
domainДомен результата.
titleЗаголовок сниппета.
passagespassageТекст сниппета.

Пакетные запросы (batch)

Один вызов на несколько запросов — обрабатываются параллельно на сервере, ответ приходит одним XML. Параметры lr, device, groupby, page применяются ко всем запросам пачки.

GET — несколько query

https://xmlsearch.ru/search_yandex/batch?user=USER&key=KEY&lr=213&device=desktop&query=пластиковые+окна&query=купить+велосипед&query=ремонт+холодильников

POST — по запросу на строку в теле

curl -X POST "https://xmlsearch.ru/search_yandex/batch?user=USER&key=KEY&lr=213&groupby=10" \
  --data-binary $'пластиковые окна\nкупить велосипед\nремонт холодильников'

Формат ответа batch

<?xml version="1.0" encoding="utf-8"?>
<batch>
  <item query="пластиковые окна">
    <yandexsearch version="1.0"> … </yandexsearch>
  </item>
  <item query="купить велосипед">
    <yandexsearch version="1.0"> … </yandexsearch>
  </item>
</batch>

Если отдельный запрос не удалось снять — у его <item> будет блок <error>, остальные вернутся нормально.

Ошибки

При ошибке возвращается XML с тегом <error>:

<yandexsearch version="1.0"><response><error code="100">wrong user or key</error></response></yandexsearch>
КодЗначение
100Неверный user или key.
15Пустой запрос.
500Не удалось снять выдачу (после нескольких попыток).

Служебное

GEThttps://xmlsearch.ru/health — проверка доступности (возвращает <ok/>).