top10 Список URL в ТОП выдачи Яндекса или Google по запросам
Снимает выдачу Яндекса или Google на заданную глубину (до 70) по одному запросу или списку и возвращает для каждого результата URL, домен, заголовок, сниппет и признаки главной страницы и агрегатора. Метод асинхронный: первый запрос возвращает report_id, по нему приходит результат. То же, что инструмент Список URL в ТОП.
- Стоимость
- Яндекс — 1 лимит за запрос; Google — от 1 (ТОП-10) до 5 (ТОП-70) за запрос
- Режим
- асинхронный: report_id
- Запросов за задачу
- до 500
- Глубина
- до 70
Постановка задачи
/api/top10
Параметры принимаются и в query-строке, и в теле POST — для длинного списка запросов используйте POST. Лимиты списываются при постановке задачи.
Параметры query
-
keystring обязательныйКлюч API из настроек аккаунта. Всегда в query-строке. -
querystringОдин запрос. Если передан,queriesне используется. Нуженqueryилиqueries. -
queriesarrayСписок запросов, каждый отдельным элементом:queries[]=…&queries[]=…. До 500. -
lrint обязательныйРегион Яндекса, например213— Москва. Для Google переводится в его регион. -
deepint обязательныйГлубина выдачи, от 1 до 70. -
ssstringПоисковая система. Неизвестное значение — Яндекс. -
languagestringЯзык поиска: для Google — интерфейс (hl), для Яндекса — тип поиска.
Ответ
-
report_idintID задачи для получения результата.
Получение результата
/api/top10
Пока задача в работе, приходит {"error":"In progress","code":50}. Опрашивайте раз в 10–30 секунд.
Параметры query
-
keystring обязательныйКлюч API из настроек аккаунта. Всегда в query-строке. -
report_idint обязательныйID задачи из ответа на постановку. Только в query-строке.
Ответ
Выдача лежит в response.response.result: запрос → поисковая система с регионом → массив результатов по порядку позиций. Ключ поисковой системы — строка вида Я_Москва, Я(М)_Москва, G_Москва или G(М)_Москва.
-
status, msgstringsuccessиcompleted. -
timeintВремя завершения задачи, Unix timestamp. -
costintСтоимость задачи в лимитах. -
requestobjectПараметры задачи во внутреннем виде:queriesчерез перевод строки,lr1,ss1(1 — Яндекс, 2 — Google, 7 — Яндекс мобильный, 8 — Google мобильный),deep. -
response.response.resultobjectЗапрос → поисковая система → результаты.Вложенные поля
-
urlstringАдрес страницы. -
domainstringДомен. -
titlestringЗаголовок. -
snippetstringСниппет. -
is_mainint1— главная страница сайта. -
is_agrint1— сайт-агрегатор. -
breadcrumbs, url_color, domain_color, is_userstringСлужебные поля веб-версии.
-
-
response.response.popobjectСводка: сколько раз URL и домены встречаются в выдаче по всем запросам.
Ошибки
| Код | Сообщение | Когда |
|---|---|---|
-50 |
Not set |
Не передан lr, deep или ни один из query/queries (тогда ключ — requests). Все недостающие перечисляются в одном ответе. Тот же код с "deep":"Max value: 70" — глубина больше 70. |
-67 |
To much requests |
Больше 500 запросов. |
-60 |
To many tasks from one user. Try again later. |
У пользователя уже больше 5 незавершённых задач этого метода. |
50 |
In progress |
Задача ещё выполняется. |
-4 |
Access denied |
report_id не существует, принадлежит другому пользователю или другому инструменту. |
-104 |
Processing error |
Задача завершилась с ошибкой. Также -105 (кончились лимиты), -106 (отменена), -107 (дольше 6 часов), -125 (прочее). |
-68 |
Not enough daily limits |
На аккаунте не осталось лимитов. Для тарифов с ограничением по периодам — также -80, -81, -82, -83. |
-1 |
Access denied |
Не передан key. HTTP-код 404. |
-2 |
Access denied |
Ключ не найден. HTTP-код 403. |
Стоимость Google по глубине
| deep | Лимитов за запрос |
|---|---|
| до 10 | 1 |
| 11–20 | 2 |
| 21–40 | 3 |
| 41–50 | 4 |
| 51–70 | 5 |
Яндекс и мобильный Яндекс на любой допустимой глубине — 1 лимит за запрос; мобильный Google считается как Google.
queries передавайте массивом. Строка с переводами строк проходит проверку, но постановка задачи с ней падает с ошибкой сервера. Повторы и пустые строки из массива не удаляются: каждая строка оплачивается.