/v1/search берёт выдачу настоящим браузером и отдаёт её разобранной: не
HTML поисковика, а JSON с органикой, рекламой, товарами и остальными секциями.
Разница с
/v1/fetch не в адресе, а в задаче. Search знает движки и
знает, где у них что лежит. Fetch не знает про содержимое ничего: адрес ваш,
разбор ваш.Первый запрос
Обязательных параметра два:q и engine. Умолчания у движка нет намеренно —
иначе запрос молча уходил бы не в тот поисковик, и разбираться, почему выдача
«не та», пришлось бы уже на проде.
search_metadata.id — номер запроса. По нему же забирается снимок и находится
запрос в истории кабинета.
Параметры
Устройство меняет выдачу, а не только вёрстку
device=mobile — это не «та же выдача в узкой колонке». У мобильной выдачи
другой состав блоков и другой порядок органики, и сравнивать позиции между
устройствами нельзя: это две разные выдачи.
Снимок выдачи
screenshot: true снимает страницу поисковика целиком — от строки запроса до
пагинации, вместе с рекламой и правой колонкой. Полезен ровно для одного:
убедиться, что выдача та самая, особенно когда клиент спорит о позициях.
search_metadata.screenshot_url, само изображение отдаёт
/v1/search/{job_id}/screenshot — JPEG,
шириной во всю ширину устройства (1920 для desktop).
Снимок — платная надстройка: 4 кредита, и ключу нужна возможность
screenshot. Если хранилище не приняло файл, ссылки в ответе не будет, а
надстройка вычитается из счёта — Кредиты и права.GET или POST
Одно и то же. GET удобен руками и в браузере, POST — когда параметров много и не хочется собирать строку запроса. Тело POST — те же имена полей.Сколько ждать
Ставьте клиентский таймаут не меньше 180 секунд: столько же держит и сервис,
дальше отвечает
504 timeout.
Дальше
Секции ответа
Полный список секций и форма каждой.
Кредиты и права
Цена запроса, движка, секций и снимка.
Ошибки
Что повторять, а что чинить кодом.
Справочник Search
Схема запроса и ответа, примеры на Python и Node.

