GET-запросы
Интерфейс API v1 сервиса Yandex Search API позволяет выполнять запросы к поисковой базе Яндекса с заданным набором параметров. Параметры поиска можно передавать в сервис в виде HTTP-запроса методом GET. Yandex Search API формирует ответ в виде документа в формате XML или в формате HTML.
Важно
Интерфейс API v1 устарел и перестанет поддерживаться 30 сентября 2025 года. До этого времени переведите свои проекты на интерфейс API v2, а также используйте API v2 в новых проектах.
Чтобы воспользоваться поиском, при регистрации в сервисе укажите список IP-адресов, с которых будут выполняться запросы к сервису, и выберите нужный тип поиска. В зависимости от выбранного типа поиска указывайте в запросе подходящее имя домена:
yandex.ru— для типа поискаРусский;yandex.com.tr— для типа поискаТурецкий;yandex.com— для типа поискаМеждународный.
Для выполнения запросов необходим сервисный аккаунт с ролью search-api.executor и созданный для него API-ключ.
Формат запроса
Важно
Специальные символы, передаваемые в качестве значений параметров, необходимо заменять на соответствующие экранированные последовательности в соответствии с percent-encoding. Например, вместо знака равно = используйте последовательность %3D.
URL запроса к сервису Yandex Search API и список поддерживаемых параметров различаются в зависимости от того, в каком формате требуется получить результат: XML или HTML.
https://yandex.<домен>/search/xml
? [folderid=<идентификатор_каталога>]
& [apikey=<API-ключ>]
& [query=<текст_поискового_запроса>]
& [lr=<идентификатор_региона_поиска>]
& [l10n=<язык_уведомлений>]
& [sortby=<тип_сортировки>]
& [filter=<тип_фильтрации>]
& [maxpassages=<количество_пассажей>]
& [groupby=<параметры_группировки_результатов>]
& [page=<номер_страницы>]
https://yandex.<домен>/search/xml/html
? [folderid=<идентификатор_каталога>]
& [apikey=<API-ключ>]
& [query=<текст_поискового_запроса>]
& [lr=<идентификатор_региона_поиска>]
& [filter=<тип_фильтрации>]
& [page=<номер_страницы>]
Параметры запроса
Идентификатор каталога и API-ключ
Поле folderid содержит идентификатор каталога сервисного аккаунта, от имени которого вы будете отправлять запросы. Вместе с параметром apikey — значением API-ключа сервисного аккаунта — необходим для аутентификации пользователя.
Запрос
Текст поискового запроса передается в поле query. При обработке учитываются особенности языка запросов Яндекса
Максимальная длина запроса — 40 слов и 400 символов.
Идентификатор региона поиска
Поддерживается только для типов поиска Русский и Турецкий.
Поле lr содержит идентификатор страны или региона поиска, который влияет на правила ранжирования документов. Например, если передать в данном поле значение 11316 (Новосибирская область), то при формировании результатов поиска используется формула, определенная для Новосибирской области.
Список идентификаторов часто используемых стран и регионов см. в разделе Регионы поиска.
Язык уведомлений
Параметр l10n не поддерживается при получении результата в HTML-формате.
Поле l10n определяет язык уведомлений поискового ответа влияет на текст, передаваемый в теге found-docs-human и в сообщениях об ошибках.
Возможные значения зависят от используемого типа поиска.
Тип поиска Русский (yandex.ru):
ru— русский язык (значение по умолчанию);uk— украинский язык;be— белорусский язык;kk— казахский язык.
Тип поиска Турецкий (yandex.com.tr) — поддерживается только значение tr (турецкий язык).
Тип поиска Международный (yandex.com) — поддерживается только значение en (английский язык).
Сортировка результатов
Параметр sortby не поддерживается при получении результата в HTML-формате.
Поле sortby содержит правило сортировки результатов поиска, которое определяет порядок выдачи результатов поиска. Возможные значения:
rlv— по релевантности (значение по умолчанию);tm— по времени изменения документа.
При сортировке по времени изменения параметр может содержать атрибут order — порядок сортировки документов:
descending— прямой — от наиболее свежего к наиболее старому (значение по умолчанию).ascending— обратный — от наиболее старого к наиболее свежему.
Формат: sortby=<тип_сортировки>.order%3D<порядок_сортировки>. Например, для обратной сортировки по дате необходимо использовать следующую конструкцию: sortby=tm.order%3Dascending.
Фильтрация результатов
Поле filter содержит правило фильтрации результатов поиска и определяет, исключать ли из результатов поиска какие-либо документы. Возможные значения:
none— фильтрация отключена. В выдачу включаются любые документы вне зависимости от содержимого.moderate— умеренный фильтр (значение по умолчанию). Из выдачи исключаются документы, относящиеся к категории "для взрослых", если запрос явно не направлен на поиск подобных ресурсов.strict— семейный фильтр. Вне зависимости от поискового запроса из выдачи исключаются документы, относящиеся к категории "для взрослых", а также содержащие ненормативную лексику.
Максимальное количество пассажей
Параметр maxpassages не поддерживается при получении результата в HTML-формате.
Пассаж — это фрагмент найденного документа, содержащий слова запроса. Пассажи используются для формирования сниппетов — текстовых аннотаций к найденному документу.
Поле maxpassages определяет максимальное количество пассажей, которое может быть использовано при формировании сниппета к документу.
Допустимы значения от 1 до 5. Результат поиска может содержать меньшее количество пассажей, чем значение, указанное в данном параметре. По умолчанию для каждого документа возвращается не более четырех пассажей с текстом запроса.
Правила группировки результатов
Параметр groupby не поддерживается при получении результата в HTML-формате.
Параметр groupby объединяет правила группировки результатов. Группировка используются для объединения документов одного домена в контейнер. В рамках контейнера документы ранжируются по правилам сортировки, определенным в поле sortby. Результаты, переданные в контейнере, могут быть использованы для включения в поисковую выдачу нескольких документов одного домена.
Параметры задаются через точку в формате:
attr%3D<служебный_атрибут>.mode%3D<тип_группировки>.groups-on-page%3D<количество_групп_на_одной_странице>.docs-in-group%3D<количество_документов_в_каждой_группе>
Где:
mode— метод группировки. Возможные значения:flat— плоская группировка. Каждая группа содержит один документ. Передается с пустым значением параметраattr.deep— группировка по доменам. Каждая группа содержит документы одного домена. Передается со значениемdпараметраattr.
Если параметр не задан, используется группировка по доменам.
attr— служебный атрибут. Зависит от значения атрибутаmode.groups-on-page— максимальное количество групп, которые могут быть возвращены на одной странице результатов поиска. Допустимые значения — от 1 до 100.docs-in-group— максимальное количество документов, которые могут быть возвращены в одной группе. Допустимые значения — от 1 до 3.
Номер запрашиваемой страницы
Поле page содержит номер запрашиваемой страницы поисковой выдачи. Номер определяет диапазон позиций документов, возвращаемых по запросу. Нумерация страниц начинается с нуля (первой странице соответствует значение 0).
Например, если количество документов, возвращаемых на странице, равно n, а в параметре передано значение p, то в результаты поиска будут включены документы, находящиеся в диапазоне позиций выдачи от p*n+1 до p*n+n включительно.
По умолчанию возвращается первая страница поисковой выдачи.
Пример GET-запроса
Следующий запрос возвращает пятую страницу результатов поиска по запросу <table>. Тип поиска — Русский (yandex.ru). Регион поиска — Новосибирская область. Язык уведомлений — русский. К результатам поиска применен семейный фильтр. Количество пассажей — три. Результаты группируются по домену и сортируются по релевантности. Каждая группа содержит три документа, а количество групп, возвращаемых на одной странице, равно пяти.
URL запроса к сервису Yandex Search API и список поддерживаемых параметров различаются в зависимости от того, в каком формате требуется получить результат: XML или HTML.
https://yandex.ru/search/xml?folderid=b1gt6g8ht345********&apikey=your_service_account_API_key********&query=%3Ctable%3E&lr=11316&l10n=ru&sortby=rlv&filter=strict&groupby=attr%3Dd.mode%3Ddeep.groups-on-page%3D5.docs-in-group%3D3&maxpassages=3&page=4
https://yandex.ru/search/xml/html?folderid=b1gt6g8ht345********&apikey=your_service_account_API_key********&query=%3Ctable%3E&lr=11316&filter=strict&page=4