Инструменты · key

top10 Список URL в ТОП выдачи Яндекса или Google по запросам

Снимает выдачу Яндекса или Google на заданную глубину (до 70) по одному запросу или списку и возвращает для каждого результата URL, домен, заголовок, сниппет и признаки главной страницы и агрегатора. Метод асинхронный: первый запрос возвращает report_id, по нему приходит результат. То же, что инструмент Список URL в ТОП.

Стоимость
Яндекс — 1 лимит за запрос; Google — от 1 (ТОП-10) до 5 (ТОП-70) за запрос
Режим
асинхронный: report_id
Запросов за задачу
до 500
Глубина
до 70

Постановка задачи

GET /api/top10

Параметры принимаются и в query-строке, и в теле POST — для длинного списка запросов используйте POST. Лимиты списываются при постановке задачи.

Параметры query

  • key string обязательный
    Ключ API из настроек аккаунта. Всегда в query-строке.
  • query string
    Один запрос. Если передан, queries не используется. Нужен query или queries.
  • queries array
    Список запросов, каждый отдельным элементом: queries[]=…&queries[]=…. До 500.
  • lr int обязательный
    Регион Яндекса, например 213 — Москва. Для Google переводится в его регион.
  • deep int обязательный
    Глубина выдачи, от 1 до 70.
  • ss string
    Поисковая система. Неизвестное значение — Яндекс.
    yandex
    Яндекс
    google
    Google
    yandex_mobile
    Яндекс, мобильная выдача
    google_mobile
    Google, мобильная выдача
    По умолчанию yandex
  • language string
    Язык поиска: для Google — интерфейс (hl), для Яндекса — тип поиска.
    По умолчанию ru

Ответ

  • report_id int
    ID задачи для получения результата.

Получение результата

GET /api/top10

Пока задача в работе, приходит {"error":"In progress","code":50}. Опрашивайте раз в 10–30 секунд.

Параметры query

  • key string обязательный
    Ключ API из настроек аккаунта. Всегда в query-строке.
  • report_id int обязательный
    ID задачи из ответа на постановку. Только в query-строке.

Ответ

Выдача лежит в response.response.result: запрос → поисковая система с регионом → массив результатов по порядку позиций. Ключ поисковой системы — строка вида Я_Москва, Я(М)_Москва, G_Москва или G(М)_Москва.

  • status, msg string
    success и completed.
  • time int
    Время завершения задачи, Unix timestamp.
  • cost int
    Стоимость задачи в лимитах.
  • request object
    Параметры задачи во внутреннем виде: queries через перевод строки, lr1, ss1 (1 — Яндекс, 2 — Google, 7 — Яндекс мобильный, 8 — Google мобильный), deep.
  • response.response.result object
    Запрос → поисковая система → результаты.
    Вложенные поля
    • url string
      Адрес страницы.
    • domain string
      Домен.
    • title string
      Заголовок.
    • snippet string
      Сниппет.
    • is_main int
      1 — главная страница сайта.
    • is_agr int
      1 — сайт-агрегатор.
    • breadcrumbs, url_color, domain_color, is_user string
      Служебные поля веб-версии.
  • response.response.pop object
    Сводка: сколько раз 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Лимитов за запрос
до 101
11–202
21–403
41–504
51–705

Яндекс и мобильный Яндекс на любой допустимой глубине — 1 лимит за запрос; мобильный Google считается как Google.

queries передавайте массивом. Строка с переводами строк проходит проверку, но постановка задачи с ней падает с ошибкой сервера. Повторы и пустые строки из массива не удаляются: каждая строка оплачивается.

Обратная связь и помощь
Если у вас есть идеи, как улучшить данный инструмент или остались вопросы по работе с ним, напишите в нашу службу поддержки, мы обязательно вам поможем.