aianswers Проверка ИИ-ответов Яндекса и Google по списку запросов
Для каждого запроса проверяет, показывают ли Яндекс (нейроответ Алисы) и Google (блок AI Overview) ИИ-ответ, и возвращает его текст, источники и место вашего сайта среди них — как инструмент «Проверка Алисы и AI Overview». Метод асинхронный: POST с JSON возвращает report_id, результат забирается тем же методом. Тот же метод доступен по адресу /api/iiotvety.
- Режим
- асинхронный:
report_id - Стоимость
- за запрос в каждой системе: Яндекс — 4, Google — 9, онлайн-Алиса — 750
- Объём
- до 1000 запросов и 6 систем-регионов
- Тело
- JSON
- Тариф
- только платные тарифы, до 5 задач одновременно
Справочник регионов и языков
/api/aianswers
Допустимые значения ss, коды регионов lr для каждой системы и языки Google. Задачу не ставит, лимиты не тратит.
Параметры query
-
optionsstring обязательныйЛюбое непустое значение.
Ответ
-
ss[]arrayПоисковые системы:name,value. -
lr.yandex[], lr.google[]arrayРегионы каждой системы:name,value— код дляlr. -
languages.google[]arrayЯзыки Google:name,value— код дляlanguage.
Постановка задачи
/api/aianswers
Тело — JSON-объект; поля формы метод не читает. Ключ — в адресе.
Параметры query и JSON-тело
-
requestsarray обязательныйПоисковые запросы, от 1 до 1000. -
searchSystemsarray обязательныйПоисковые системы и регионы, от 1 до 6 элементов. Одна система может повторяться с разными регионами.Вложенные поля
-
ssstring обязательныйyandexилиgoogle. -
lrstring обязательныйКод региона из справочника для этой системы, например213— Москва. -
languagestringЯзык интерфейса Google из справочника, напримерru. Обязателен дляgoogle.
-
-
urlstringВаш сайт: для него считаетсяpositionсреди источников ответа. -
subdomainsbooltrue— поддомены считаются вашим сайтом:blog.example.comзасчитывается заexample.com. -
collect_onlineboolТолько Яндекс.false— нейроответы из обычного поиска, только по популярным информационным запросам.true— режим «Поиск с Алисой»: ответ запрашивается для любых запросов, включая коммерческие и редкие. Цена — 750 вместо 4 за запрос. -
collect_google_ai_modeboolТолько Google.true— если блока AI Overview в выдаче нет, взять ответ из вкладки «Режим ИИ». На цену не влияет.
Получение результата
/api/aianswers
Повторяйте раз в 10–30 секунд: сбор идёт порциями, большая задача занимает десятки минут.
Параметры query
-
report_idint обязательныйID задачи из ответа на постановку.
Ответ
-
requestobjectПараметры задачи:requests,url,searchSystems,collect_online,collect_google_ai_mode— в том виде, в каком задача выполнялась. -
response.successboolfalse— не удалось собрать ни одной строки; текст вresponse.error, лимиты не списаны. -
response.costintСколько лимитов списано. -
response.dataobjectРезультаты по регионам. Ключ — код региона.Вложенные поля
-
region_infostringНазвание региона. -
requestsobjectКлюч — запрос, внутри — ответы по системамyandexиgoogle.Вложенные поля
-
has_answerboolЕсть ли ИИ-ответ в выдаче. -
answerstring|nullТекст ответа; может содержать HTML-разметку. -
collect_errorstring|nullТекст ошибки, если ответ не удалось собрать.null— проверка прошла (в том числе когда ответа в выдаче нет). Строки с ошибкой не оплачиваются. -
positionint|nullМесто сайта изurlсреди источников ответа, с 1. Сравнивается домен, не адрес страницы.null—urlне передан или сайта среди источников нет. -
linksarrayИсточники ответа:url,domain,favicon.
-
-
-
timestringВремя готовности. -
costintСколько лимитов списано за задачу. Приresponse.success = falseпоказывает расчётную цену, хотя списания не было.
Ошибки
| Код | Сообщение | Когда |
|---|---|---|
-100 |
tools errors |
Задача не поставлена, причины в details: число запросов не от 1 до 1000, систем — не от 1 до 6, неизвестная система, регион или язык, бесплатный тариф. |
-91 |
Invalid JSON: … |
Тело запроса — не JSON (например, передано полями формы). |
-60 |
tools errors |
Уже 5 незавершённых задач (MAX_PARALLEL_TASKS_FAIL). |
-51 |
No requests data |
Задача ставится не POST-запросом. |
50 |
In progress |
Задача ещё идёт; progress — процент готовности. |
-4 |
Access denied |
report_id чужой или другого инструмента. |
-104…-107, -125 |
Processing error и др. |
Задача завершилась сбоем — см. асинхронные задачи. |
-101 |
Unexpected error |
Непредвиденный статус задачи. |
-68, -80…-83 |
Not enough … limits |
Лимиты закончились — метод не отвечает даже на справочник и чтение отчёта. |
-1, -2 |
Access denied |
Ключ не передан или не найден. |
Стоимость
| Строка отчёта | Лимитов |
|---|---|
| Запрос × Яндекс | 4 |
Запрос × Яндекс, collect_online: true | 750; 4, если ответ взят из обычной выдачи, а не у онлайн-Алисы |
Запрос × Google (с collect_google_ai_mode или без) | 9 |
Пример: 10 запросов × (Яндекс + Google) = 10 × (4 + 9) = 130 лимитов. Лимиты списываются по завершении задачи и только за собранные строки: «ответа в выдаче нет» оплачивается, сорванный сбор (collect_error) — нет. При постановке достаточность лимитов на весь объём не проверяется — следите за балансом сами.
Ограничения
- Флаги передавайте JSON-булевыми
true/false: строка"false"считается включённой опцией. - Регионы, которых нет в справочнике выбранной системы, отклоняются при постановке.
/api/aianswersи/api/iiotvety— один и тот же метод; отчёты, поставленные через один адрес, читаются через другой.